@strapi/admin 5.0.0-beta.0 → 5.0.0-beta.1
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-_XP-L7m2.js → AdminSeatInfo-Gp4BFR1_.js} +4 -4
- package/dist/admin/{AdminSeatInfo-_XP-L7m2.js.map → AdminSeatInfo-Gp4BFR1_.js.map} +1 -1
- package/dist/admin/{AdminSeatInfo-CcqY0G1v.mjs → AdminSeatInfo-dDgFBcLY.mjs} +4 -4
- package/dist/admin/{AdminSeatInfo-CcqY0G1v.mjs.map → AdminSeatInfo-dDgFBcLY.mjs.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-RZ5VPA_M.mjs → ApplicationInfoPage-GQLKLk5T.mjs} +5 -5
- package/dist/admin/{ApplicationInfoPage-RZ5VPA_M.mjs.map → ApplicationInfoPage-GQLKLk5T.mjs.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-dcW27-S0.js → ApplicationInfoPage-e_sOqQMh.js} +5 -5
- package/dist/admin/{ApplicationInfoPage-dcW27-S0.js.map → ApplicationInfoPage-e_sOqQMh.js.map} +1 -1
- package/dist/admin/{AuthResponse-829u1Bgr.mjs → AuthResponse-gf-zZkxm.mjs} +2 -2
- package/dist/admin/{AuthResponse-829u1Bgr.mjs.map → AuthResponse-gf-zZkxm.mjs.map} +1 -1
- package/dist/admin/{AuthResponse-jXbQnvQx.js → AuthResponse-l5QiAAK7.js} +2 -2
- package/dist/admin/{AuthResponse-jXbQnvQx.js.map → AuthResponse-l5QiAAK7.js.map} +1 -1
- package/dist/admin/{AuthenticatedLayout-a3vBuls_.mjs → AuthenticatedLayout-3fYM18Xy.mjs} +17 -17
- package/dist/admin/{AuthenticatedLayout-a3vBuls_.mjs.map → AuthenticatedLayout-3fYM18Xy.mjs.map} +1 -1
- package/dist/admin/{AuthenticatedLayout-hl04NCFE.js → AuthenticatedLayout-gGQYIisy.js} +17 -17
- package/dist/admin/{AuthenticatedLayout-hl04NCFE.js.map → AuthenticatedLayout-gGQYIisy.js.map} +1 -1
- package/dist/admin/{ComponentConfigurationPage-bbpuW93V.mjs → ComponentConfigurationPage-0kf7a5LK.mjs} +4 -4
- package/dist/admin/{ComponentConfigurationPage-bbpuW93V.mjs.map → ComponentConfigurationPage-0kf7a5LK.mjs.map} +1 -1
- package/dist/admin/{ComponentConfigurationPage-hNHSQ40m.js → ComponentConfigurationPage-U7RcNJFs.js} +4 -4
- package/dist/admin/{ComponentConfigurationPage-hNHSQ40m.js.map → ComponentConfigurationPage-U7RcNJFs.js.map} +1 -1
- package/dist/admin/ComponentIcon-AkrHxAkm.mjs.map +1 -1
- package/dist/admin/ComponentIcon-wcNWpdCz.js.map +1 -1
- package/dist/admin/{CreateActionEE-3ppNGqrP.js → CreateActionEE-HO-FmNjw.js} +2 -2
- package/dist/admin/{CreateActionEE-3ppNGqrP.js.map → CreateActionEE-HO-FmNjw.js.map} +1 -1
- package/dist/admin/{CreateActionEE-zqa6Hnzk.mjs → CreateActionEE-OscS6KZj.mjs} +2 -2
- package/dist/admin/{CreateActionEE-zqa6Hnzk.mjs.map → CreateActionEE-OscS6KZj.mjs.map} +1 -1
- package/dist/admin/{CreatePage-5GygA62E.mjs → CreatePage-1a_Nb-RK.mjs} +9 -9
- package/dist/admin/CreatePage-1a_Nb-RK.mjs.map +1 -0
- package/dist/admin/{CreatePage-oegPjlEc.mjs → CreatePage-8rG8fSZv.mjs} +4 -4
- package/dist/admin/{CreatePage-oegPjlEc.mjs.map → CreatePage-8rG8fSZv.mjs.map} +1 -1
- package/dist/admin/{CreatePage-92_pj9pV.js → CreatePage-B0kLot_Q.js} +3 -3
- package/dist/admin/{CreatePage-92_pj9pV.js.map → CreatePage-B0kLot_Q.js.map} +1 -1
- package/dist/admin/{CreatePage-99wXBVyY.mjs → CreatePage-c92hDTE3.mjs} +3 -3
- package/dist/admin/{CreatePage-99wXBVyY.mjs.map → CreatePage-c92hDTE3.mjs.map} +1 -1
- package/dist/admin/{CreatePage-52sUoJpg.js → CreatePage-h9gJgINE.js} +4 -4
- package/dist/admin/{CreatePage-52sUoJpg.js.map → CreatePage-h9gJgINE.js.map} +1 -1
- package/dist/admin/{CreatePage-yBddklgC.js → CreatePage-pN8WcSWM.js} +9 -9
- package/dist/admin/CreatePage-pN8WcSWM.js.map +1 -0
- package/dist/admin/{CreateView-nS-FdJkE.js → CreateView-Gd7sLphf.js} +3 -3
- package/dist/admin/{CreateView-nS-FdJkE.js.map → CreateView-Gd7sLphf.js.map} +1 -1
- package/dist/admin/{CreateView-Ic6HHrsX.mjs → CreateView-PIPvgwa8.mjs} +3 -3
- package/dist/admin/{CreateView-Ic6HHrsX.mjs.map → CreateView-PIPvgwa8.mjs.map} +1 -1
- package/dist/admin/{CreateView-vQmc3UBu.js → CreateView-kVD9MjAf.js} +3 -3
- package/dist/admin/{CreateView-vQmc3UBu.js.map → CreateView-kVD9MjAf.js.map} +1 -1
- package/dist/admin/{CreateView-4i8XqKqF.mjs → CreateView-nXkGgZTO.mjs} +3 -3
- package/dist/admin/{CreateView-4i8XqKqF.mjs.map → CreateView-nXkGgZTO.mjs.map} +1 -1
- package/dist/admin/{EditConfigurationPage-lpPR7rS-.js → EditConfigurationPage-YAS-MAtE.js} +4 -4
- package/dist/admin/{EditConfigurationPage-lpPR7rS-.js.map → EditConfigurationPage-YAS-MAtE.js.map} +1 -1
- package/dist/admin/{EditConfigurationPage-6doXCBmp.mjs → EditConfigurationPage-jugWslla.mjs} +4 -4
- package/dist/admin/{EditConfigurationPage-6doXCBmp.mjs.map → EditConfigurationPage-jugWslla.mjs.map} +1 -1
- package/dist/admin/{EditPage-foeIMKkr.mjs → EditPage-6pGLGlrZ.mjs} +6 -6
- package/dist/admin/EditPage-6pGLGlrZ.mjs.map +1 -0
- package/dist/admin/{EditPage-4n8-yx0o.mjs → EditPage-I99-ASjb.mjs} +8 -8
- package/dist/admin/{EditPage-4n8-yx0o.mjs.map → EditPage-I99-ASjb.mjs.map} +1 -1
- package/dist/admin/{EditPage-LUNpO2Hs.mjs → EditPage-NrM8ZRAf.mjs} +9 -9
- package/dist/admin/{EditPage-LUNpO2Hs.mjs.map → EditPage-NrM8ZRAf.mjs.map} +1 -1
- package/dist/admin/{EditPage-qKcSRKvg.js → EditPage-ci9fcWte.js} +9 -9
- package/dist/admin/{EditPage-qKcSRKvg.js.map → EditPage-ci9fcWte.js.map} +1 -1
- package/dist/admin/{EditPage-YN3E4YNP.mjs → EditPage-fT6nuOwT.mjs} +5 -5
- package/dist/admin/{EditPage-YN3E4YNP.mjs.map → EditPage-fT6nuOwT.mjs.map} +1 -1
- package/dist/admin/{EditPage-WEpVsF5C.js → EditPage-hEDFGDcC.js} +6 -6
- package/dist/admin/EditPage-hEDFGDcC.js.map +1 -0
- package/dist/admin/{EditPage-d7F-x_Y0.js → EditPage-m5HVhxC-.js} +5 -5
- package/dist/admin/{EditPage-d7F-x_Y0.js.map → EditPage-m5HVhxC-.js.map} +1 -1
- package/dist/admin/{EditPage-Id--0zN8.js → EditPage-um8Yysr-.js} +8 -8
- package/dist/admin/{EditPage-Id--0zN8.js.map → EditPage-um8Yysr-.js.map} +1 -1
- package/dist/admin/{EditView-GXGcvgNt.mjs → EditView-79rujo0b.mjs} +4 -4
- package/dist/admin/{EditView-GXGcvgNt.mjs.map → EditView-79rujo0b.mjs.map} +1 -1
- package/dist/admin/{EditView-awLo_z9u.js → EditView-zEf-a-YM.js} +4 -4
- package/dist/admin/{EditView-awLo_z9u.js.map → EditView-zEf-a-YM.js.map} +1 -1
- package/dist/admin/{EditViewPage-1NY3YGcc.mjs → EditViewPage-BJdNfzBZ.mjs} +6 -6
- package/dist/admin/{EditViewPage-1NY3YGcc.mjs.map → EditViewPage-BJdNfzBZ.mjs.map} +1 -1
- package/dist/admin/{EditViewPage-cZsfhXI4.js → EditViewPage-Y67V7K7l.js} +6 -6
- package/dist/admin/{EditViewPage-cZsfhXI4.js.map → EditViewPage-Y67V7K7l.js.map} +1 -1
- package/dist/admin/{EditViewPage-QWb2DMRg.mjs → EditViewPage-iuq_KY3C.mjs} +4 -4
- package/dist/admin/{EditViewPage-QWb2DMRg.mjs.map → EditViewPage-iuq_KY3C.mjs.map} +1 -1
- package/dist/admin/{EditViewPage-1ZxYkrZ9.js → EditViewPage-vrE8FNb1.js} +4 -4
- package/dist/admin/{EditViewPage-1ZxYkrZ9.js.map → EditViewPage-vrE8FNb1.js.map} +1 -1
- package/dist/admin/{EventsTable-Iv41t-aJ.mjs → EventsTable-LOh2EX0N.mjs} +2 -2
- package/dist/admin/{EventsTable-Iv41t-aJ.mjs.map → EventsTable-LOh2EX0N.mjs.map} +1 -1
- package/dist/admin/{EventsTable-3Mp9Iad-.js → EventsTable-bm16Pj4a.js} +2 -2
- package/dist/admin/{EventsTable-3Mp9Iad-.js.map → EventsTable-bm16Pj4a.js.map} +1 -1
- package/dist/admin/{FieldTypeIcon-AibcTcXN.mjs → FieldTypeIcon-SCwhXPf6.mjs} +2 -2
- package/dist/admin/FieldTypeIcon-SCwhXPf6.mjs.map +1 -0
- package/dist/admin/{FieldTypeIcon--WKPFDG2.js → FieldTypeIcon-u9dTaLwb.js} +2 -2
- package/dist/admin/FieldTypeIcon-u9dTaLwb.js.map +1 -0
- package/dist/admin/{Filters-l2eZFcAk.js → Filters-5FAHd62q.js} +4 -4
- package/dist/admin/Filters-5FAHd62q.js.map +1 -0
- package/dist/admin/{Filters-Jm3DRgjx.mjs → Filters-hYfcsahl.mjs} +4 -4
- package/dist/admin/Filters-hYfcsahl.mjs.map +1 -0
- package/dist/admin/{Form-f20Ab8pl.mjs → Form-7gccxUtH.mjs} +5 -5
- package/dist/admin/Form-7gccxUtH.mjs.map +1 -0
- package/dist/admin/{Form-V8XluZgD.js → Form-m0qUJusG.js} +5 -5
- package/dist/admin/Form-m0qUJusG.js.map +1 -0
- package/dist/admin/{History-eZH2Aqa1.js → History-UVk6YZaL.js} +5 -5
- package/dist/admin/{History-eZH2Aqa1.js.map → History-UVk6YZaL.js.map} +1 -1
- package/dist/admin/{History-0MMslhUv.mjs → History-gNttF1-u.mjs} +5 -5
- package/dist/admin/{History-0MMslhUv.mjs.map → History-gNttF1-u.mjs.map} +1 -1
- package/dist/admin/{HomePage-PNJzW3TF.mjs → HomePage-2q7ngwX4.mjs} +3 -3
- package/dist/admin/{HomePage-PNJzW3TF.mjs.map → HomePage-2q7ngwX4.mjs.map} +1 -1
- package/dist/admin/{HomePage-Mt5yKmaK.mjs → HomePage-_eHszm7N.mjs} +5 -5
- package/dist/admin/{HomePage-Mt5yKmaK.mjs.map → HomePage-_eHszm7N.mjs.map} +1 -1
- package/dist/admin/{HomePage-HylT9MsA.js → HomePage-jwm3AAzI.js} +5 -5
- package/dist/admin/{HomePage-HylT9MsA.js.map → HomePage-jwm3AAzI.js.map} +1 -1
- package/dist/admin/{HomePage-Zoe67a6N.js → HomePage-ozwWqZdZ.js} +3 -3
- package/dist/admin/{HomePage-Zoe67a6N.js.map → HomePage-ozwWqZdZ.js.map} +1 -1
- package/dist/admin/{InputRenderer-89lhMw5B.js → InputRenderer-tdeZayqM.js} +4 -6
- package/dist/admin/InputRenderer-tdeZayqM.js.map +1 -0
- package/dist/admin/{InputRenderer-ddUokGFQ.mjs → InputRenderer-uXGu-VvL.mjs} +4 -6
- package/dist/admin/InputRenderer-uXGu-VvL.mjs.map +1 -0
- package/dist/admin/{InstalledPluginsPage-F_LdmUvc.mjs → InstalledPluginsPage-rGp1BINi.mjs} +3 -3
- package/dist/admin/{InstalledPluginsPage-F_LdmUvc.mjs.map → InstalledPluginsPage-rGp1BINi.mjs.map} +1 -1
- package/dist/admin/{InstalledPluginsPage-4hUy0Kzu.js → InstalledPluginsPage-relNbZiA.js} +3 -3
- package/dist/admin/{InstalledPluginsPage-4hUy0Kzu.js.map → InstalledPluginsPage-relNbZiA.js.map} +1 -1
- package/dist/admin/{Layout-yOQ2mhrf.mjs → Layout-JSg7Wwnx.mjs} +3 -3
- package/dist/admin/{Layout-yOQ2mhrf.mjs.map → Layout-JSg7Wwnx.mjs.map} +1 -1
- package/dist/admin/{Layout-y3dNAJVd.mjs → Layout-gqm-mRb2.mjs} +5 -5
- package/dist/admin/{Layout-y3dNAJVd.mjs.map → Layout-gqm-mRb2.mjs.map} +1 -1
- package/dist/admin/{Layout-8VTNG14A.js → Layout-rp7YlCuF.js} +5 -5
- package/dist/admin/{Layout-8VTNG14A.js.map → Layout-rp7YlCuF.js.map} +1 -1
- package/dist/admin/{Layout-0VrIQ4NX.js → Layout-tPXv8ts4.js} +3 -3
- package/dist/admin/{Layout-0VrIQ4NX.js.map → Layout-tPXv8ts4.js.map} +1 -1
- package/dist/admin/{ListConfigurationPage-duFCwpIH.mjs → ListConfigurationPage-1JkDop6y.mjs} +5 -5
- package/dist/admin/{ListConfigurationPage-duFCwpIH.mjs.map → ListConfigurationPage-1JkDop6y.mjs.map} +1 -1
- package/dist/admin/{ListConfigurationPage-9EnV4loI.js → ListConfigurationPage-egv99PTx.js} +5 -5
- package/dist/admin/{ListConfigurationPage-9EnV4loI.js.map → ListConfigurationPage-egv99PTx.js.map} +1 -1
- package/dist/admin/{ListPage-2i4GNvMp.js → ListPage-5VIwPlnG.js} +5 -5
- package/dist/admin/{ListPage-2i4GNvMp.js.map → ListPage-5VIwPlnG.js.map} +1 -1
- package/dist/admin/{ListPage-v6SUIF_T.js → ListPage-85XB15gk.js} +7 -6
- package/dist/admin/ListPage-85XB15gk.js.map +1 -0
- package/dist/admin/{ListPage-ICxXUAUL.js → ListPage-NG7c9Zx-.js} +5 -5
- package/dist/admin/{ListPage-ICxXUAUL.js.map → ListPage-NG7c9Zx-.js.map} +1 -1
- package/dist/admin/{ListPage-EmtzWMVt.js → ListPage-Wf8HxliA.js} +3 -3
- package/dist/admin/{ListPage-EmtzWMVt.js.map → ListPage-Wf8HxliA.js.map} +1 -1
- package/dist/admin/{ListPage-Cq-wLIdK.mjs → ListPage-Y0vGfxO1.mjs} +5 -5
- package/dist/admin/{ListPage-Cq-wLIdK.mjs.map → ListPage-Y0vGfxO1.mjs.map} +1 -1
- package/dist/admin/{ListPage-hxaNrHLd.mjs → ListPage-_1MCPNWC.mjs} +3 -3
- package/dist/admin/{ListPage-hxaNrHLd.mjs.map → ListPage-_1MCPNWC.mjs.map} +1 -1
- package/dist/admin/{ListPage-v1vvnXr3.mjs → ListPage-bdblB4wE.mjs} +4 -4
- package/dist/admin/{ListPage-v1vvnXr3.mjs.map → ListPage-bdblB4wE.mjs.map} +1 -1
- package/dist/admin/{ListPage-i77Lk7qj.js → ListPage-d0uTS6lH.js} +4 -4
- package/dist/admin/{ListPage-i77Lk7qj.js.map → ListPage-d0uTS6lH.js.map} +1 -1
- package/dist/admin/{ListPage-gP4TzJZw.js → ListPage-e0975Wh-.js} +9 -9
- package/dist/admin/ListPage-e0975Wh-.js.map +1 -0
- package/dist/admin/{ListPage-wpMBvGVG.mjs → ListPage-eMKRFxzM.mjs} +5 -5
- package/dist/admin/{ListPage-wpMBvGVG.mjs.map → ListPage-eMKRFxzM.mjs.map} +1 -1
- package/dist/admin/{ListPage-Z663tCxD.mjs → ListPage-tFqx6zb_.mjs} +9 -9
- package/dist/admin/ListPage-tFqx6zb_.mjs.map +1 -0
- package/dist/admin/{ListPage-0jv2yLPQ.mjs → ListPage-v07yRAHk.mjs} +8 -7
- package/dist/admin/ListPage-v07yRAHk.mjs.map +1 -0
- package/dist/admin/{ListView-4givZ4Eb.mjs → ListView-9shnR2xp.mjs} +4 -4
- package/dist/admin/ListView-9shnR2xp.mjs.map +1 -0
- package/dist/admin/{ListView-IqhnTHjC.js → ListView-IaEe1_Uy.js} +4 -4
- package/dist/admin/ListView-IaEe1_Uy.js.map +1 -0
- package/dist/admin/{ListView-NPtyW54W.js → ListView-_EZZ571X.js} +4 -4
- package/dist/admin/ListView-_EZZ571X.js.map +1 -0
- package/dist/admin/{ListView-A1dYCFAI.mjs → ListView-z9G1Eash.mjs} +4 -4
- package/dist/admin/ListView-z9G1Eash.mjs.map +1 -0
- package/dist/admin/{ListViewPage-rkQXnquk.mjs → ListViewPage-FE12IpwT.mjs} +9 -9
- package/dist/admin/ListViewPage-FE12IpwT.mjs.map +1 -0
- package/dist/admin/{ListViewPage-67EL6F80.js → ListViewPage-u5WSF93L.js} +9 -9
- package/dist/admin/ListViewPage-u5WSF93L.js.map +1 -0
- package/dist/admin/{Login-IanfGhcK.mjs → Login-9iKNSYCJ.mjs} +3 -3
- package/dist/admin/{Login-IanfGhcK.mjs.map → Login-9iKNSYCJ.mjs.map} +1 -1
- package/dist/admin/{Login-69DnR_WO.js → Login-ug0ICazL.js} +3 -3
- package/dist/admin/{Login-69DnR_WO.js.map → Login-ug0ICazL.js.map} +1 -1
- package/dist/admin/{MagicLinkEE-pA-tsFIv.mjs → MagicLinkEE-3a4aj5bM.mjs} +3 -3
- package/dist/admin/{MagicLinkEE-pA-tsFIv.mjs.map → MagicLinkEE-3a4aj5bM.mjs.map} +1 -1
- package/dist/admin/{MagicLinkEE-uUVMUi92.js → MagicLinkEE-TlpYCgSF.js} +3 -3
- package/dist/admin/{MagicLinkEE-uUVMUi92.js.map → MagicLinkEE-TlpYCgSF.js.map} +1 -1
- package/dist/admin/{MarketplacePage-FFt5PPmM.mjs → MarketplacePage-BBs4GMeX.mjs} +3 -3
- package/dist/admin/{MarketplacePage-FFt5PPmM.mjs.map → MarketplacePage-BBs4GMeX.mjs.map} +1 -1
- package/dist/admin/{MarketplacePage-io_-I4d2.js → MarketplacePage-GuZItQkJ.js} +3 -3
- package/dist/admin/{MarketplacePage-io_-I4d2.js.map → MarketplacePage-GuZItQkJ.js.map} +1 -1
- package/dist/admin/{NoContentTypePage-6mgFtik-.mjs → NoContentTypePage-MI-TNgDm.mjs} +2 -2
- package/dist/admin/{NoContentTypePage-6mgFtik-.mjs.map → NoContentTypePage-MI-TNgDm.mjs.map} +1 -1
- package/dist/admin/{NoContentTypePage-7GuJBa-V.js → NoContentTypePage-WM9PSeKc.js} +2 -2
- package/dist/admin/{NoContentTypePage-7GuJBa-V.js.map → NoContentTypePage-WM9PSeKc.js.map} +1 -1
- package/dist/admin/{NoPermissionsPage-6oZ4iqff.mjs → NoPermissionsPage-K6eIf5zl.mjs} +2 -2
- package/dist/admin/{NoPermissionsPage-6oZ4iqff.mjs.map → NoPermissionsPage-K6eIf5zl.mjs.map} +1 -1
- package/dist/admin/{NoPermissionsPage-E2ro9iCX.js → NoPermissionsPage-PP92ItBk.js} +2 -2
- package/dist/admin/{NoPermissionsPage-E2ro9iCX.js.map → NoPermissionsPage-PP92ItBk.js.map} +1 -1
- package/dist/admin/NotAllowed-9d8xvtvI.mjs.map +1 -1
- package/dist/admin/NotAllowed-FmDlK9I3.js.map +1 -1
- package/dist/admin/{Permissions-VR9Rnqkr.js → Permissions-jsl-R7bI.js} +2 -2
- package/dist/admin/{Permissions-VR9Rnqkr.js.map → Permissions-jsl-R7bI.js.map} +1 -1
- package/dist/admin/{Permissions-kvKR0BEy.mjs → Permissions-v99MLjbi.mjs} +2 -2
- package/dist/admin/{Permissions-kvKR0BEy.mjs.map → Permissions-v99MLjbi.mjs.map} +1 -1
- package/dist/admin/{PrivateRoute-dcpEjhVL.js → PrivateRoute-AFoVG5Bk.js} +2 -2
- package/dist/admin/{PrivateRoute-dcpEjhVL.js.map → PrivateRoute-AFoVG5Bk.js.map} +1 -1
- package/dist/admin/{PrivateRoute-jEzBQwGq.mjs → PrivateRoute-XiRz2oSq.mjs} +2 -2
- package/dist/admin/{PrivateRoute-jEzBQwGq.mjs.map → PrivateRoute-XiRz2oSq.mjs.map} +1 -1
- package/dist/admin/{ProfilePage-vP1WwOSo.mjs → ProfilePage-HjJiMiTt.mjs} +4 -4
- package/dist/admin/{ProfilePage-vP1WwOSo.mjs.map → ProfilePage-HjJiMiTt.mjs.map} +1 -1
- package/dist/admin/{ProfilePage-5zMiyfq8.js → ProfilePage-wGM1mvXn.js} +4 -4
- package/dist/admin/{ProfilePage-5zMiyfq8.js.map → ProfilePage-wGM1mvXn.js.map} +1 -1
- package/dist/admin/{ReviewWorkflowsColumn-m0_IsejA.mjs → ReviewWorkflowsColumn-NUu47oVz.mjs} +3 -3
- package/dist/admin/{ReviewWorkflowsColumn-m0_IsejA.mjs.map → ReviewWorkflowsColumn-NUu47oVz.mjs.map} +1 -1
- package/dist/admin/{ReviewWorkflowsColumn--7xdU3EE.js → ReviewWorkflowsColumn-uIqJfjyd.js} +3 -3
- package/dist/admin/{ReviewWorkflowsColumn--7xdU3EE.js.map → ReviewWorkflowsColumn-uIqJfjyd.js.map} +1 -1
- package/dist/admin/{SelectRoles-3rrUCBYq.js → SelectRoles-5vr-vXOm.js} +4 -4
- package/dist/admin/{SelectRoles-3rrUCBYq.js.map → SelectRoles-5vr-vXOm.js.map} +1 -1
- package/dist/admin/{SelectRoles-6zNSDXAX.mjs → SelectRoles-ytHc3di2.mjs} +4 -4
- package/dist/admin/{SelectRoles-6zNSDXAX.mjs.map → SelectRoles-ytHc3di2.mjs.map} +1 -1
- package/dist/admin/{SingleSignOnPage-yqv1ULMO.js → SingleSignOnPage-1Wqj_7y-.js} +3 -3
- package/dist/admin/{SingleSignOnPage-yqv1ULMO.js.map → SingleSignOnPage-1Wqj_7y-.js.map} +1 -1
- package/dist/admin/{SingleSignOnPage-7AQ0D0BD.mjs → SingleSignOnPage-7oJES3UH.mjs} +3 -3
- package/dist/admin/{SingleSignOnPage-7AQ0D0BD.mjs.map → SingleSignOnPage-7oJES3UH.mjs.map} +1 -1
- package/dist/admin/{Table-hIWrkIyR.mjs → Table-LQhGojNx.mjs} +4 -4
- package/dist/admin/Table-LQhGojNx.mjs.map +1 -0
- package/dist/admin/{Table-9qwpBhgp.js → Table-M5UsBfFs.js} +4 -4
- package/dist/admin/Table-M5UsBfFs.js.map +1 -0
- package/dist/admin/{TokenTypeSelect-I0IiW8L9.mjs → TokenTypeSelect-5o9mvFd7.mjs} +3 -3
- package/dist/admin/TokenTypeSelect-5o9mvFd7.mjs.map +1 -0
- package/dist/admin/{TokenTypeSelect-O5IkOZVo.js → TokenTypeSelect-ZBDI26vJ.js} +3 -3
- package/dist/admin/TokenTypeSelect-ZBDI26vJ.js.map +1 -0
- package/dist/admin/{UseCasePage-BwOhufaK.mjs → UseCasePage-e7rn-aW-.mjs} +4 -4
- package/dist/admin/{UseCasePage-BwOhufaK.mjs.map → UseCasePage-e7rn-aW-.mjs.map} +1 -1
- package/dist/admin/{UseCasePage-vqdvr-uv.js → UseCasePage-q3u-xs7F.js} +4 -4
- package/dist/admin/{UseCasePage-vqdvr-uv.js.map → UseCasePage-q3u-xs7F.js.map} +1 -1
- package/dist/admin/{apiTokens-RqehzGhC.js → apiTokens-_gKUBKPQ.js} +2 -2
- package/dist/admin/{apiTokens-RqehzGhC.js.map → apiTokens-_gKUBKPQ.js.map} +1 -1
- package/dist/admin/{apiTokens-HBaRXE71.mjs → apiTokens-nD8zbNlc.mjs} +2 -2
- package/dist/admin/{apiTokens-HBaRXE71.mjs.map → apiTokens-nD8zbNlc.mjs.map} +1 -1
- package/dist/admin/{constants-gHOCp7wo.js → constants-6E1OwHx7.js} +5 -5
- package/dist/admin/{constants-gHOCp7wo.js.map → constants-6E1OwHx7.js.map} +1 -1
- package/dist/admin/{constants-ZPElfE3j.mjs → constants-AdKxCt0x.mjs} +3 -3
- package/dist/admin/{constants-ZPElfE3j.mjs.map → constants-AdKxCt0x.mjs.map} +1 -1
- package/dist/admin/{constants--j5MCV5y.mjs → constants-D6NLEhwu.mjs} +5 -5
- package/dist/admin/{constants--j5MCV5y.mjs.map → constants-D6NLEhwu.mjs.map} +1 -1
- package/dist/admin/{constants-AAeFmxXA.js → constants-ZZWbRAQT.js} +3 -3
- package/dist/admin/{constants-AAeFmxXA.js.map → constants-ZZWbRAQT.js.map} +1 -1
- package/dist/admin/{index-NzLAHRwx.mjs → index-1NFAbkxM.mjs} +67 -48
- package/dist/admin/index-1NFAbkxM.mjs.map +1 -0
- package/dist/admin/{index-dBY0pLkw.js → index-mQQPK-ix.js} +67 -48
- package/dist/admin/index-mQQPK-ix.js.map +1 -0
- package/dist/admin/index.js +3 -3
- package/dist/admin/index.mjs +3 -3
- package/dist/admin/{reducers-TOuLOGw_.mjs → reducers-IQWvK_9L.mjs} +11 -9
- package/dist/admin/reducers-IQWvK_9L.mjs.map +1 -0
- package/dist/admin/{reducers-uDxSALD_.js → reducers-wZUQqmNX.js} +11 -9
- package/dist/admin/reducers-wZUQqmNX.js.map +1 -0
- package/dist/admin/{selectors-ka781RNf.js → selectors-PTHjHMQi.js} +2 -2
- package/dist/admin/{selectors-ka781RNf.js.map → selectors-PTHjHMQi.js.map} +1 -1
- package/dist/admin/{selectors-NvWWczps.mjs → selectors-nn3C3YKE.mjs} +2 -2
- package/dist/admin/{selectors-NvWWczps.mjs.map → selectors-nn3C3YKE.mjs.map} +1 -1
- package/dist/admin/src/components/FormInputs/types.d.ts +3 -3
- package/dist/admin/src/constants/filters.d.ts +2 -2
- package/dist/admin/src/content-manager/components/ComponentIcon.d.ts +2 -2
- package/dist/admin/src/content-manager/components/ConfigurationForm/EditFieldForm.d.ts +2 -2
- package/dist/admin/src/content-manager/components/DragPreviews/RelationDragPreview.d.ts +2 -2
- package/dist/admin/src/content-manager/components/FieldTypeIcon.d.ts +2 -2
- package/dist/admin/src/content-manager/features/DocumentRBAC.d.ts +2 -2
- package/dist/admin/src/content-manager/history/services/historyVersion.d.ts +2 -2
- package/dist/admin/src/content-manager/hooks/useDocumentLayout.d.ts +7 -7
- package/dist/admin/src/content-manager/hooks/useDragAndDrop.d.ts +2 -2
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +3 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.d.ts +2 -2
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.d.ts +1 -1
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.d.ts +1 -1
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.d.ts +1 -1
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.d.ts +1 -1
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/types.d.ts +4 -4
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/NotAllowed.d.ts +2 -2
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/UID.d.ts +2 -2
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/Field.d.ts +2 -2
- package/dist/admin/src/content-manager/pages/EditView/utils/data.d.ts +2 -2
- package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/Actions.d.ts +52 -0
- package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/PublishAction.d.ts +31 -0
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/CellContent.d.ts +3 -3
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/CellValue.d.ts +2 -2
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/Components.d.ts +3 -3
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/Media.d.ts +2 -2
- package/dist/admin/src/content-manager/services/documents.d.ts +5 -0
- package/dist/admin/src/content-manager/services/relations.d.ts +5 -5
- package/dist/admin/src/content-manager/services/uid.d.ts +2 -2
- package/dist/admin/src/content-manager/utils/attributes.d.ts +4 -4
- package/dist/admin/src/core/apis/content-manager.d.ts +33 -5
- package/dist/admin/src/index.d.ts +2 -1
- package/dist/admin/src/pages/Settings/components/Tokens/FormHead.d.ts +2 -2
- package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Users/components/NewUserForm.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.d.ts +5 -5
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +3 -3
- package/dist/admin/src/render.d.ts +2 -2
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +6 -6
- package/dist/admin/src/services/webhooks.d.ts +1 -1
- package/dist/admin/test.js +1 -1
- package/dist/admin/test.mjs +1 -1
- package/dist/admin/{transferTokens-HxKzbhZt.js → transferTokens-P5z1yVh2.js} +2 -2
- package/dist/admin/{transferTokens-HxKzbhZt.js.map → transferTokens-P5z1yVh2.js.map} +1 -1
- package/dist/admin/{transferTokens-QOZjk416.mjs → transferTokens-PlBVZdw3.mjs} +2 -2
- package/dist/admin/{transferTokens-QOZjk416.mjs.map → transferTokens-PlBVZdw3.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-PSfwOXiz.mjs → useAdminRoles-BG7b996L.mjs} +2 -2
- package/dist/admin/{useAdminRoles-PSfwOXiz.mjs.map → useAdminRoles-BG7b996L.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-eaHgHT8Y.js → useAdminRoles-THWXour6.js} +2 -2
- package/dist/admin/{useAdminRoles-eaHgHT8Y.js.map → useAdminRoles-THWXour6.js.map} +1 -1
- package/dist/admin/{useContentTypes-Or3rDVks.mjs → useContentTypes-PEGh0Cg-.mjs} +2 -2
- package/dist/admin/{useContentTypes-Or3rDVks.mjs.map → useContentTypes-PEGh0Cg-.mjs.map} +1 -1
- package/dist/admin/{useContentTypes-RJRHsheR.js → useContentTypes-RoSvxizj.js} +2 -2
- package/dist/admin/{useContentTypes-RJRHsheR.js.map → useContentTypes-RoSvxizj.js.map} +1 -1
- package/dist/admin/{useDocumentLayout-5UQF9Yls.mjs → useDocumentLayout-4trWL6Jz.mjs} +2 -2
- package/dist/admin/useDocumentLayout-4trWL6Jz.mjs.map +1 -0
- package/dist/admin/{useDocumentLayout-wBQQmFJL.js → useDocumentLayout-V_N5dUwQ.js} +2 -2
- package/dist/admin/useDocumentLayout-V_N5dUwQ.js.map +1 -0
- package/dist/admin/{useLicenseLimitNotification-kTCLbD6I.mjs → useLicenseLimitNotification-9DqSZuyc.mjs} +3 -3
- package/dist/admin/{useLicenseLimitNotification-kTCLbD6I.mjs.map → useLicenseLimitNotification-9DqSZuyc.mjs.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-mOmwgQuN.js → useLicenseLimitNotification-SiWQ5LGo.js} +3 -3
- package/dist/admin/{useLicenseLimitNotification-mOmwgQuN.js.map → useLicenseLimitNotification-SiWQ5LGo.js.map} +1 -1
- package/dist/admin/{useReviewWorkflows-ZcRZstgn.js → useReviewWorkflows-0ty4mwQd.js} +2 -2
- package/dist/admin/{useReviewWorkflows-ZcRZstgn.js.map → useReviewWorkflows-0ty4mwQd.js.map} +1 -1
- package/dist/admin/{useReviewWorkflows-Ji_rsoyJ.mjs → useReviewWorkflows-HwyFyit7.mjs} +2 -2
- package/dist/admin/{useReviewWorkflows-Ji_rsoyJ.mjs.map → useReviewWorkflows-HwyFyit7.mjs.map} +1 -1
- package/dist/admin/{useSyncRbac-Od0wrAnD.mjs → useSyncRbac-LNOzRXJ5.mjs} +2 -2
- package/dist/admin/{useSyncRbac-Od0wrAnD.mjs.map → useSyncRbac-LNOzRXJ5.mjs.map} +1 -1
- package/dist/admin/{useSyncRbac-fR63KADE.js → useSyncRbac-vkWgDJTE.js} +2 -2
- package/dist/admin/{useSyncRbac-fR63KADE.js.map → useSyncRbac-vkWgDJTE.js.map} +1 -1
- package/dist/admin/{useWebhooks-KtPvzcTB.js → useWebhooks-DmGNXCdi.js} +2 -2
- package/dist/admin/{useWebhooks-KtPvzcTB.js.map → useWebhooks-DmGNXCdi.js.map} +1 -1
- package/dist/admin/{useWebhooks-7Grr2wYu.mjs → useWebhooks-dOVyaYlw.mjs} +2 -2
- package/dist/admin/{useWebhooks-7Grr2wYu.mjs.map → useWebhooks-dOVyaYlw.mjs.map} +1 -1
- package/dist/admin/{validateWorkflow-lzkdakmi.js → validateWorkflow-99y3bkNx.js} +3 -3
- package/dist/admin/validateWorkflow-99y3bkNx.js.map +1 -0
- package/dist/admin/{validateWorkflow-cwVWZu1s.mjs → validateWorkflow-ubLwZqCK.mjs} +3 -3
- package/dist/admin/validateWorkflow-ubLwZqCK.mjs.map +1 -0
- package/dist/admin/{validation-uxcqs4Uq.mjs → validation-cpJKCQz1.mjs} +2 -2
- package/dist/admin/{validation-uxcqs4Uq.mjs.map → validation-cpJKCQz1.mjs.map} +1 -1
- package/dist/admin/{validation-aKPvEh9F.js → validation-lIVymZ0n.js} +2 -2
- package/dist/admin/{validation-aKPvEh9F.js.map → validation-lIVymZ0n.js.map} +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/actions.d.ts +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/reducer.d.ts +3 -3
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/selectors.d.ts +4 -4
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/admin/src/services/reviewWorkflows.d.ts +4 -4
- package/dist/ee/server/index.js +5 -5
- package/dist/ee/server/index.js.map +1 -1
- package/dist/ee/server/index.mjs +6 -6
- package/dist/ee/server/index.mjs.map +1 -1
- package/dist/package.json.d.ts +11 -11
- package/dist/server/index.js +80 -76
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +81 -77
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts +2 -2
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/webhooks.d.ts.map +1 -1
- package/dist/server/src/domain/action/index.d.ts +21 -8
- package/dist/server/src/domain/action/index.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts +1 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/domain/user.d.ts +1 -1
- package/dist/server/src/middlewares/index.d.ts +1 -1
- package/dist/server/src/middlewares/rateLimit.d.ts +2 -2
- package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -1
- package/dist/server/src/register.d.ts +2 -2
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/serve-admin-panel.d.ts +2 -2
- package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
- package/dist/server/src/services/content-type.d.ts +5 -5
- package/dist/server/src/services/content-type.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +9 -9
- package/dist/server/src/services/metrics.d.ts +3 -3
- package/dist/server/src/services/metrics.d.ts.map +1 -1
- package/dist/server/src/services/passport/local-strategy.d.ts +2 -2
- package/dist/server/src/services/passport/local-strategy.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
- package/dist/server/src/services/permission/queries.d.ts +5 -6
- package/dist/server/src/services/permission/queries.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts +2 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts.map +1 -1
- package/dist/server/src/services/permission.d.ts +6 -2
- package/dist/server/src/services/permission.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts +6 -6
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts +5 -5
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/server/src/validation/api-tokens.d.ts +27 -4
- package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
- package/dist/server/src/validation/authentication/register.d.ts +8 -2
- package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
- package/dist/server/src/validation/permission.d.ts +53 -4
- package/dist/server/src/validation/permission.d.ts.map +1 -1
- package/dist/server/src/validation/policies/hasPermissions.d.ts +7 -2
- package/dist/server/src/validation/policies/hasPermissions.d.ts.map +1 -1
- package/dist/server/src/validation/role.d.ts +23 -6
- package/dist/server/src/validation/role.d.ts.map +1 -1
- package/dist/server/src/validation/transfer/token.d.ts +23 -4
- package/dist/server/src/validation/transfer/token.d.ts.map +1 -1
- package/dist/server/src/validation/user.d.ts +56 -8
- package/dist/server/src/validation/user.d.ts.map +1 -1
- package/dist/shared/contracts/api-token.d.ts +5 -5
- package/dist/shared/contracts/api-token.d.ts.map +1 -1
- package/dist/shared/contracts/content-api.d.ts +2 -2
- package/dist/shared/contracts/content-api.d.ts.map +1 -1
- package/dist/shared/contracts/review-workflows.d.ts +2 -2
- package/dist/shared/contracts/review-workflows.d.ts.map +1 -1
- package/dist/shared/contracts/roles.d.ts +3 -3
- package/dist/shared/contracts/roles.d.ts.map +1 -1
- package/dist/shared/contracts/shared.d.ts +4 -4
- package/dist/shared/contracts/shared.d.ts.map +1 -1
- package/dist/shared/contracts/user.d.ts +6 -6
- package/dist/shared/contracts/user.d.ts.map +1 -1
- package/dist/shared/contracts/webhooks.d.ts +8 -8
- package/dist/shared/contracts/webhooks.d.ts.map +1 -1
- package/package.json +12 -12
- package/dist/admin/CreatePage-5GygA62E.mjs.map +0 -1
- package/dist/admin/CreatePage-yBddklgC.js.map +0 -1
- package/dist/admin/EditPage-WEpVsF5C.js.map +0 -1
- package/dist/admin/EditPage-foeIMKkr.mjs.map +0 -1
- package/dist/admin/FieldTypeIcon--WKPFDG2.js.map +0 -1
- package/dist/admin/FieldTypeIcon-AibcTcXN.mjs.map +0 -1
- package/dist/admin/Filters-Jm3DRgjx.mjs.map +0 -1
- package/dist/admin/Filters-l2eZFcAk.js.map +0 -1
- package/dist/admin/Form-V8XluZgD.js.map +0 -1
- package/dist/admin/Form-f20Ab8pl.mjs.map +0 -1
- package/dist/admin/InputRenderer-89lhMw5B.js.map +0 -1
- package/dist/admin/InputRenderer-ddUokGFQ.mjs.map +0 -1
- package/dist/admin/ListPage-0jv2yLPQ.mjs.map +0 -1
- package/dist/admin/ListPage-Z663tCxD.mjs.map +0 -1
- package/dist/admin/ListPage-gP4TzJZw.js.map +0 -1
- package/dist/admin/ListPage-v6SUIF_T.js.map +0 -1
- package/dist/admin/ListView-4givZ4Eb.mjs.map +0 -1
- package/dist/admin/ListView-A1dYCFAI.mjs.map +0 -1
- package/dist/admin/ListView-IqhnTHjC.js.map +0 -1
- package/dist/admin/ListView-NPtyW54W.js.map +0 -1
- package/dist/admin/ListViewPage-67EL6F80.js.map +0 -1
- package/dist/admin/ListViewPage-rkQXnquk.mjs.map +0 -1
- package/dist/admin/Table-9qwpBhgp.js.map +0 -1
- package/dist/admin/Table-hIWrkIyR.mjs.map +0 -1
- package/dist/admin/TokenTypeSelect-I0IiW8L9.mjs.map +0 -1
- package/dist/admin/TokenTypeSelect-O5IkOZVo.js.map +0 -1
- package/dist/admin/index-NzLAHRwx.mjs.map +0 -1
- package/dist/admin/index-dBY0pLkw.js.map +0 -1
- package/dist/admin/reducers-TOuLOGw_.mjs.map +0 -1
- package/dist/admin/reducers-uDxSALD_.js.map +0 -1
- package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/Buttons.d.ts +0 -12
- package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/SelectedEntriesModal.d.ts +0 -29
- package/dist/admin/useDocumentLayout-5UQF9Yls.mjs.map +0 -1
- package/dist/admin/useDocumentLayout-wBQQmFJL.js.map +0 -1
- package/dist/admin/validateWorkflow-cwVWZu1s.mjs.map +0 -1
- package/dist/admin/validateWorkflow-lzkdakmi.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDocumentLayout-4trWL6Jz.mjs","sources":["../../admin/src/utils/users.ts","../../admin/src/content-manager/features/DocumentRBAC.tsx","../../admin/src/components/RelativeTime.tsx","../../admin/src/components/FormInputs/Boolean.tsx","../../admin/src/components/FormInputs/Checkbox.tsx","../../admin/src/components/FormInputs/Date.tsx","../../admin/src/components/FormInputs/DateTime.tsx","../../admin/src/components/FormInputs/Email.tsx","../../admin/src/components/FormInputs/Enumeration.tsx","../../admin/src/components/FormInputs/Json.tsx","../../admin/src/components/FormInputs/Number.tsx","../../admin/src/components/FormInputs/Password.tsx","../../admin/src/components/FormInputs/String.tsx","../../admin/src/components/FormInputs/Textarea.tsx","../../admin/src/components/FormInputs/Time.tsx","../../admin/src/components/FormInputs/Renderer.tsx","../../admin/src/content-manager/utils/attributes.ts","../../admin/src/content-manager/hooks/useDocumentLayout.ts"],"sourcesContent":["import type { SanitizedAdminUser } from '../../../shared/contracts/shared';\nimport type { IntlShape } from 'react-intl';\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = (\n {\n firstname,\n lastname,\n username,\n email,\n }: Pick<SanitizedAdminUser, 'firstname' | 'lastname' | 'username' | 'email'> = {},\n formatMessage: IntlShape['formatMessage']\n): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return formatMessage(\n {\n id: 'global.fullname',\n defaultMessage: '{firstname} {lastname}',\n },\n {\n firstname,\n lastname,\n }\n ).trim();\n }\n\n return email ?? '';\n};\n\nexport { getDisplayName };\n","import * as React from 'react';\n\nimport { useParams } from 'react-router-dom';\n\nimport { createContext } from '../../components/Context';\nimport { useAuth, type Permission } from '../../features/Auth';\nimport { useRBAC } from '../../hooks/useRBAC';\n\nimport type { Schema } from '@strapi/types';\n\n/**\n * The boolean values indicate the global actions a user can perform on the document.\n * The `string[]` values tell us specifically which fields the actions can be performed on,\n * for example, if the `canReadFields` array is empty, than no fields can be read by the user.\n * This can happen even if the user can read the document.\n */\ninterface DocumentRBACContextValue {\n canCreate?: boolean;\n canCreateFields: string[];\n canDelete?: boolean;\n canPublish?: boolean;\n canRead?: boolean;\n canReadFields: string[];\n canUpdate?: boolean;\n canUpdateFields: string[];\n canUserAction: (\n fieldName: string,\n fieldsUserCanAction: string[],\n fieldType: Schema.Attribute.Kind\n ) => boolean;\n isLoading: boolean;\n}\n\nconst [DocumentRBACProvider, useDocumentRBAC] = createContext<DocumentRBACContextValue>(\n 'DocumentRBAC',\n {\n canCreate: false,\n canCreateFields: [],\n canDelete: false,\n canPublish: false,\n canRead: false,\n canReadFields: [],\n canUpdate: false,\n canUpdateFields: [],\n canUserAction: () => false,\n isLoading: false,\n }\n);\n\ninterface DocumentRBACProps {\n children: React.ReactNode;\n permissions: Permission[] | null;\n}\n\n/**\n * @internal This component is not meant to be used outside of the Content Manager plugin.\n * It depends on knowing the slug/model of the content-type using the params of the URL.\n * If you do use the hook outside of the context, we default to `false` for all actions.\n *\n * It then creates an list of `can{Action}` that are passed to the context for consumption\n * within the app to enforce RBAC.\n */\nconst DocumentRBAC = ({ children, permissions }: DocumentRBACProps) => {\n const { slug } = useParams<{ slug: string }>();\n\n if (!slug) {\n throw new Error('Cannot find the slug param in the URL');\n }\n\n const userPermissions = useAuth('DocumentRBAC', (state) => state.permissions);\n\n const contentTypePermissions = React.useMemo(() => {\n const contentTypePermissions = userPermissions.filter(\n (permission) => permission.subject === slug\n );\n return contentTypePermissions.reduce<Record<string, Permission[]>>((acc, permission) => {\n const [action] = permission.action.split('.').slice(-1);\n return { ...acc, [action]: [permission] };\n }, {});\n }, [slug, userPermissions]);\n\n const { isLoading, allowedActions } = useRBAC(contentTypePermissions, permissions ?? undefined);\n\n const canCreateFields =\n !isLoading && allowedActions.canCreate\n ? extractAndDedupeFields(contentTypePermissions.create)\n : [];\n\n const canReadFields =\n !isLoading && allowedActions.canRead ? extractAndDedupeFields(contentTypePermissions.read) : [];\n\n const canUpdateFields =\n !isLoading && allowedActions.canUpdate\n ? extractAndDedupeFields(contentTypePermissions.update)\n : [];\n\n /**\n * @description Checks if the user can perform an action on a field based on the field names\n * provided as the second argument.\n */\n const canUserAction: DocumentRBACContextValue['canUserAction'] = React.useCallback(\n (fieldName, fieldsUserCanAction, fieldType) => {\n const name = removeNumericalStrings(fieldName.split('.'));\n\n const componentFieldNames = fieldsUserCanAction\n // filter out fields that aren't components (components are dot separated)\n .filter((field) => field.split('.').length > 1);\n\n if (fieldType === 'component') {\n const componentOrDynamicZoneFields = componentFieldNames\n // then map to give us the dot separate path as an array\n .map((field) => field.split('.'));\n // check if the field name is within any of those arrays\n return componentOrDynamicZoneFields.some((field) => {\n return field.includes(fieldName);\n });\n }\n\n /**\n * The field is within a component.\n */\n if (name.length > 1) {\n return componentFieldNames.includes(name.join('.'));\n }\n\n /**\n * just a regular field\n */\n return fieldsUserCanAction.includes(fieldName);\n },\n []\n );\n\n return (\n <DocumentRBACProvider\n isLoading={isLoading}\n canCreateFields={canCreateFields}\n canReadFields={canReadFields}\n canUpdateFields={canUpdateFields}\n canUserAction={canUserAction}\n {...allowedActions}\n >\n {children}\n </DocumentRBACProvider>\n );\n};\n\n/**\n * @internal it's really small, but it's used three times in a row and DRY for something this straight forward.\n */\nconst extractAndDedupeFields = (permissions: Permission[] = []) =>\n permissions\n .flatMap((permission) => permission.properties?.fields)\n .filter(\n (field, index, arr): field is string =>\n arr.indexOf(field) === index && typeof field === 'string'\n );\n\n/**\n * @internal removes numerical strings from arrays.\n * @example\n * ```ts\n * const name = 'a.0.b';\n * const res = removeNumericalStrings(name.split('.'));\n * console.log(res); // ['a', 'b']\n * ```\n */\nconst removeNumericalStrings = (arr: string[]) => arr.filter((item) => isNaN(Number(item)));\n\nexport { DocumentRBAC, useDocumentRBAC, DocumentRBACContextValue, DocumentRBACProps };\n","import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n","import { forwardRef } from 'react';\n\nimport { ToggleInput, useComposedRefs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst BooleanInput = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const { formatMessage } = useIntl();\n const field = useField<boolean | null>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <ToggleInput\n ref={composedRefs}\n checked={field.value === null ? null : field.value || false}\n error={field.error}\n /**\n * TODO: reintroduce labelActions\n */\n // labelAction={labelAction}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'False',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'True',\n })}\n onChange={field.onChange}\n onClear={() => {\n field.onChange(props.name, null);\n }}\n {...props}\n />\n );\n});\n\nexport { BooleanInput };\n","import { forwardRef } from 'react';\n\nimport { Checkbox, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst CheckboxInput = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const field = useField<boolean>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n\n return (\n <Checkbox\n onValueChange={(checked) => field.onChange(props.name, checked)}\n ref={composedRefs}\n value={field.value}\n {...props}\n >\n {props.label || props['aria-label']}\n </Checkbox>\n );\n});\n\nexport { CheckboxInput };\n","import { forwardRef } from 'react';\n\nimport { DatePicker, useComposedRefs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst DateInput = forwardRef<HTMLInputElement, InputProps>(({ type: _type, ...props }, ref) => {\n const { formatMessage } = useIntl();\n const field = useField<Date>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n const value = typeof field.value === 'string' ? new Date(field.value) : field.value;\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <DatePicker\n ref={composedRefs}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n error={field.error}\n id={props.name}\n onChange={(date) => {\n field.onChange(props.name, date);\n }}\n onClear={() => field.onChange(props.name, undefined)}\n selectedDate={value}\n {...props}\n />\n );\n});\n\nexport { DateInput };\n","import { forwardRef } from 'react';\n\nimport { DateTimePicker, useComposedRefs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst DateTimeInput = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const { formatMessage } = useIntl();\n const field = useField<Date>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n const value = typeof field.value === 'string' ? new Date(field.value) : field.value;\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <DateTimePicker\n ref={composedRefs}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n error={field.error}\n id={props.name}\n onChange={(date) => {\n field.onChange(props.name, date);\n }}\n onClear={() => field.onChange(props.name, undefined)}\n value={value}\n {...props}\n />\n );\n});\n\nexport { DateTimeInput };\n","import { forwardRef } from 'react';\n\nimport { TextInput, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nexport const EmailInput = forwardRef<any, StringProps>((props, ref) => {\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <TextInput\n ref={composedRefs}\n autoComplete=\"email\"\n error={field.error}\n id={props.name}\n onChange={field.onChange}\n defaultValue={field.initialValue}\n value={field.value}\n {...props}\n type=\"email\"\n />\n );\n});\n","import { forwardRef } from 'react';\n\nimport { SingleSelect, SingleSelectOption, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { EnumerationProps } from './types';\n\nexport const EnumerationInput = forwardRef<any, EnumerationProps>(\n ({ options = [], ...props }, ref) => {\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <SingleSelect\n ref={composedRefs}\n error={field.error}\n onChange={(value) => {\n field.onChange(props.name, value);\n }}\n value={field.value}\n {...props}\n >\n {options.map(({ value, label, disabled, hidden }) => {\n return (\n <SingleSelectOption key={value} value={value} disabled={disabled} hidden={hidden}>\n {label ?? value}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n }\n);\n","import { forwardRef } from 'react';\n\nimport { JSONInput as JSONInputImpl, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\n/**\n * TODO: fix the ref type when the design system is fixed.\n */\nexport const JsonInput = forwardRef<any, InputProps>((props, ref) => {\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <JSONInputImpl\n ref={composedRefs}\n value={field.value}\n error={field.error}\n onChange={(json) => {\n // Default to null when the field is not required and there is no input value\n const value = props.required && !json.length ? null : json;\n field.onChange(props.name, value);\n }}\n minHeight={`${252 / 16}rem`}\n maxHeight={`${504 / 16}rem`}\n {...props}\n />\n );\n});\n","import { forwardRef } from 'react';\n\nimport { NumberInput, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst NumberInputImpl = forwardRef<HTMLInputElement, InputProps>(({ type, ...props }, ref) => {\n const field = useField<number>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <NumberInput\n ref={composedRefs}\n defaultValue={field.initialValue}\n error={field.error}\n id={props.name}\n onValueChange={(value) => {\n field.onChange(props.name, value);\n }}\n step={type === 'float' || type == 'decimal' ? 0.01 : 1}\n value={field.value}\n {...props}\n />\n );\n});\n\nexport { NumberInputImpl as NumberInput };\n","import { forwardRef, useState } from 'react';\n\nimport { Icon, TextInput, useComposedRefs } from '@strapi/design-system';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nexport const PasswordInput = forwardRef<any, StringProps>((props, ref) => {\n const [showPassword, setShowPassword] = useState(false);\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <TextInput\n ref={composedRefs}\n autoComplete=\"password\"\n error={field.error}\n endAction={\n <button\n aria-label={formatMessage({\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n })}\n onClick={() => {\n setShowPassword((prev) => !prev);\n }}\n style={{\n border: 'none',\n padding: 0,\n background: 'transparent',\n }}\n type=\"button\"\n >\n {showPassword ? (\n <Icon as={Eye} color=\"neutral500\" />\n ) : (\n <Icon as={EyeStriked} color=\"neutral500\" />\n )}\n </button>\n }\n id={props.name}\n onChange={field.onChange}\n defaultValue={field.initialValue}\n value={field.value}\n {...props}\n type={showPassword ? 'text' : 'password'}\n />\n );\n});\n","import { forwardRef } from 'react';\n\nimport { TextInput, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { type InputProps, useField } from '../Form';\n\n/**\n * TODO: fix the ref type when the design system is fixed.\n */\nexport const StringInput = forwardRef<any, InputProps>(({ ...props }, ref) => {\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <TextInput\n ref={composedRefs}\n error={field.error}\n defaultValue={field.initialValue}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n );\n});\n","import { forwardRef } from 'react';\n\nimport { Textarea, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nexport const TextareaInput = forwardRef<any, StringProps>((props, ref) => {\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <Textarea\n ref={composedRefs}\n defaultValue={field.initialValue}\n error={field.error}\n id={props.name}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n );\n});\n","import { forwardRef } from 'react';\n\nimport { TimePicker, useComposedRefs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst TimeInput = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const { formatMessage } = useIntl();\n const field = useField<string>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <TimePicker\n ref={composedRefs}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n error={field.error}\n id={props.name}\n onChange={(time) => {\n field.onChange(props.name, time);\n }}\n onClear={() => field.onChange(props.name, undefined)}\n value={field.value ?? ''}\n {...props}\n />\n );\n});\n\nexport { TimeInput };\n","import { forwardRef, memo } from 'react';\n\nimport { TextInput, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { BooleanInput } from './Boolean';\nimport { CheckboxInput } from './Checkbox';\nimport { DateInput } from './Date';\nimport { DateTimeInput } from './DateTime';\nimport { EmailInput } from './Email';\nimport { EnumerationInput } from './Enumeration';\nimport { JsonInput } from './Json';\nimport { NumberInput } from './Number';\nimport { PasswordInput } from './Password';\nimport { StringInput } from './String';\nimport { TextareaInput } from './Textarea';\nimport { TimeInput } from './Time';\n\nimport type { InputProps } from '../Form';\n\n/* -------------------------------------------------------------------------------------------------\n * InputRenderer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal This needs to be tested before being exposed as a public API.\n * @experimental\n * @description A generic form renderer for Strapi forms. Similar to GenericInputs but with a different API.\n * The entire component is memoized to avoid re-renders in large forms.\n */\nconst InputRenderer = memo(\n forwardRef<any, InputProps>((props, forwardRef) => {\n switch (props.type) {\n case 'biginteger':\n case 'timestamp':\n case 'string':\n return <StringInput ref={forwardRef} {...props} />;\n case 'boolean':\n return <BooleanInput ref={forwardRef} {...props} />;\n case 'checkbox':\n return <CheckboxInput ref={forwardRef} {...props} />;\n case 'datetime':\n return <DateTimeInput ref={forwardRef} {...props} />;\n case 'date':\n return <DateInput ref={forwardRef} {...props} />;\n case 'decimal':\n case 'float':\n case 'integer':\n return <NumberInput ref={forwardRef} {...props} />;\n case 'json':\n return <JsonInput ref={forwardRef} {...props} />;\n case 'email':\n return <EmailInput ref={forwardRef} {...props} />;\n case 'enumeration':\n return <EnumerationInput ref={forwardRef} {...props} />;\n case 'password':\n return <PasswordInput ref={forwardRef} {...props} />;\n case 'text':\n return <TextareaInput ref={forwardRef} {...props} />;\n case 'time':\n return <TimeInput ref={forwardRef} {...props} />;\n default:\n // This is cast because this renderer tackles all the possibilities of the InputProps, but this is for runtime catches.\n return <NotSupportedField ref={forwardRef} {...(props as InputProps)} />;\n }\n })\n);\n\nconst NotSupportedField = forwardRef<any, InputProps>((props, ref) => {\n const { error } = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <TextInput\n ref={composedRefs}\n disabled\n error={error}\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n label={props.label}\n id={props.name}\n hint={props.hint}\n name={props.name}\n placeholder={`Unsupported field type: ${props.type}`}\n required={props.required}\n type=\"text\"\n value=\"\"\n />\n );\n});\n\nexport { InputRenderer };\n","import type { ComponentsDictionary, Schema } from '../hooks/useDocument';\nimport type { Schema as SchemaUtils } from '@strapi/types';\n\nconst checkIfAttributeIsDisplayable = (attribute: SchemaUtils.Attribute.AnyAttribute) => {\n const { type } = attribute;\n\n if (type === 'relation') {\n return !attribute.relation.toLowerCase().includes('morph');\n }\n\n return !['json', 'dynamiczone', 'richtext', 'password', 'blocks'].includes(type) && !!type;\n};\n\ninterface MainField {\n name: string;\n type: SchemaUtils.Attribute.Kind | 'custom';\n}\n\n/**\n * @internal\n * @description given an attribute, content-type schemas & component schemas, find the mainField name & type.\n * If the attribute does not need a `mainField` then we return undefined. If we do not find the type\n * of the field, we assume it's a string #sensible-defaults\n */\nconst getMainField = (\n attribute: SchemaUtils.Attribute.AnyAttribute,\n mainFieldName: string | undefined,\n { schemas, components }: { schemas: Schema[]; components: ComponentsDictionary }\n): MainField | undefined => {\n if (!mainFieldName) {\n return undefined;\n }\n\n const mainFieldType =\n attribute.type === 'component'\n ? components[attribute.component].attributes[mainFieldName].type\n : // @ts-expect-error – `targetModel` does exist on the attribute for a relation.\n schemas.find((schema) => schema.uid === attribute.targetModel)?.attributes[mainFieldName]\n .type;\n\n return {\n name: mainFieldName,\n type: mainFieldType ?? 'string',\n };\n};\n\nexport { checkIfAttributeIsDisplayable, getMainField };\nexport type { MainField };\n","import * as React from 'react';\n\nimport { SerializedError } from '@reduxjs/toolkit';\n\nimport { HOOKS } from '../../constants';\nimport { useNotification } from '../../features/Notifications';\nimport { useStrapiApp } from '../../features/StrapiApp';\nimport { useAPIErrorHandler } from '../../hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../hooks/useQueryParams';\nimport { BaseQueryError } from '../../utils/baseQuery';\nimport { useGetContentTypeConfigurationQuery } from '../services/contentTypes';\nimport { getMainField } from '../utils/attributes';\n\nimport { useContentTypeSchema } from './useContentTypeSchema';\nimport {\n type ComponentsDictionary,\n type Document,\n type Schema,\n useDoc,\n useDocument,\n} from './useDocument';\n\nimport type { Filters } from '../../components/Filters';\nimport type { InputProps } from '../../components/FormInputs/types';\nimport type { Table } from '../../components/Table';\nimport type { Contracts } from '@strapi/plugin-content-manager/_internal/shared';\nimport type { Schema as SchemaUtils } from '@strapi/types';\n\ntype LayoutOptions = Schema['options'] & Schema['pluginOptions'] & object;\n\ninterface LayoutSettings extends Contracts.ContentTypes.Settings {\n displayName?: string;\n icon?: never;\n}\n\ninterface ListFieldLayout\n extends Table.Header<Document, ListFieldLayout>,\n Pick<Filters.Filter, 'mainField'> {\n attribute: SchemaUtils.Attribute.AnyAttribute | { type: 'custom' };\n}\n\ninterface ListLayout {\n layout: ListFieldLayout[];\n components?: never;\n metadatas: {\n [K in keyof Contracts.ContentTypes.Metadatas]: Contracts.ContentTypes.Metadatas[K]['list'];\n };\n options: LayoutOptions;\n settings: LayoutSettings;\n}\ninterface EditFieldSharedProps\n extends Omit<InputProps, 'hint' | 'label' | 'type'>,\n Pick<Filters.Filter, 'mainField'> {\n hint?: string;\n label: string;\n size: number;\n unique?: boolean;\n visible?: boolean;\n}\n\n/**\n * Map over all the types in Attribute Types and use that to create a union of new types where the attribute type\n * is under the property attribute and the type is under the property type.\n */\ntype EditFieldLayout = {\n [K in SchemaUtils.Attribute.Kind]: EditFieldSharedProps & {\n attribute: Extract<SchemaUtils.Attribute.AnyAttribute, { type: K }>;\n type: K;\n };\n}[SchemaUtils.Attribute.Kind];\n\ninterface EditLayout {\n layout: Array<Array<EditFieldLayout[]>>;\n components: {\n [uid: string]: {\n layout: Array<EditFieldLayout[]>;\n settings: Contracts.Components.ComponentConfiguration['settings'] & {\n displayName?: string;\n icon?: string;\n };\n };\n };\n metadatas: {\n [K in keyof Contracts.ContentTypes.Metadatas]: Contracts.ContentTypes.Metadatas[K]['edit'];\n };\n options: LayoutOptions;\n settings: LayoutSettings;\n}\n\ntype UseDocumentLayout = (model: string) => {\n error?: BaseQueryError | SerializedError;\n isLoading: boolean;\n /**\n * This is the layout for the edit view,\n */\n edit: EditLayout;\n list: ListLayout;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * useDocumentLayout\n * -----------------------------------------------------------------------------------------------*/\n\nconst DEFAULT_SETTINGS = {\n bulkable: false,\n filterable: false,\n searchable: false,\n pagination: false,\n defaultSortBy: '',\n defaultSortOrder: 'asc',\n mainField: 'id',\n pageSize: 10,\n};\n\n/**\n * @alpha\n * @description This hook is used to get the layouts for either the edit view or list view of a specific content-type\n * including the layouts for the components used in the content-type. It also runs the mutation hook waterfall so the data\n * is consistent wherever it is used. It's a light wrapper around the `useDocument` hook, but provides the `skip` option a document\n * is not fetched, however, it does fetch the schemas & components if they do not already exist in the cache.\n *\n * If the fetch fails, it will display a notification to the user.\n *\n * @example\n * ```tsx\n * const { model } = useParams<{ model: string }>();\n * const { edit: { schema: layout } } = useDocumentLayout(model);\n *\n * return layout.map(panel => panel.map(row => row.map(field => <Field {...field} />)))\n * ```\n *\n */\nconst useDocumentLayout: UseDocumentLayout = (model) => {\n const { schema, components } = useDocument({ model, collectionType: '' }, { skip: true });\n const [{ query }] = useQueryParams();\n const runHookWaterfall = useStrapiApp('useDocumentLayout', (state) => state.runHookWaterfall);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { isLoading: isLoadingSchemas, schemas } = useContentTypeSchema();\n\n const { data, isLoading: isLoadingConfigs, error } = useGetContentTypeConfigurationQuery(model);\n\n const isLoading = isLoadingSchemas || isLoadingConfigs;\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const editLayout = React.useMemo(\n () =>\n data\n ? formatEditLayout(data, { schemas, schema, components })\n : ({\n layout: [],\n components: {},\n metadatas: {},\n options: {},\n settings: DEFAULT_SETTINGS,\n } as EditLayout),\n [data, schema, components, schemas]\n );\n\n const listLayout = React.useMemo(() => {\n return data\n ? formatListLayout(data, { schemas, schema, components })\n : ({\n layout: [],\n metadatas: {},\n options: {},\n settings: DEFAULT_SETTINGS,\n } as ListLayout);\n }, [data, schema, schemas, components]);\n\n const { layout: edit } = React.useMemo(\n () =>\n runHookWaterfall(HOOKS.MUTATE_EDIT_VIEW_LAYOUT, {\n layout: editLayout,\n query,\n }),\n [editLayout, query, runHookWaterfall]\n );\n\n return {\n error,\n isLoading,\n edit,\n list: listLayout,\n } satisfies ReturnType<UseDocumentLayout>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * useDocLayout\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal this hook uses the internal useDoc hook, as such it shouldn't be used outside of the\n * content-manager because it won't work as intended.\n */\nconst useDocLayout = () => {\n const { model } = useDoc();\n return useDocumentLayout(model);\n};\n\n/* -------------------------------------------------------------------------------------------------\n * formatEditLayout\n * -----------------------------------------------------------------------------------------------*/\ntype LayoutData = Contracts.ContentTypes.FindContentTypeConfiguration.Response['data'];\n\n/**\n * @internal\n * @description takes the configuration data, the schema & the components used in the schema and formats the edit view\n * vesions of the schema & components. This is then used to redner the edit view of the content-type.\n */\nconst formatEditLayout = (\n data: LayoutData,\n {\n schemas,\n schema,\n components,\n }: { schemas: Schema[]; schema?: Schema; components: ComponentsDictionary }\n): EditLayout => {\n let currentPanelIndex = 0;\n /**\n * The fields arranged by the panels, new panels are made for dynamic zones only.\n */\n const panelledEditAttributes = convertEditLayoutToFieldLayouts(\n data.contentType.layouts.edit,\n schema?.attributes,\n data.contentType.metadatas,\n { configurations: data.components, schemas: components },\n schemas\n ).reduce<Array<EditFieldLayout[][]>>((panels, row) => {\n if (row.some((field) => field.type === 'dynamiczone')) {\n panels.push([row]);\n currentPanelIndex += 2;\n } else {\n if (!panels[currentPanelIndex]) {\n panels.push([]);\n }\n panels[currentPanelIndex].push(row);\n }\n\n return panels;\n }, []);\n\n const componentEditAttributes = Object.entries(data.components).reduce<EditLayout['components']>(\n (acc, [uid, configuration]) => {\n acc[uid] = {\n layout: convertEditLayoutToFieldLayouts(\n configuration.layouts.edit,\n components[uid].attributes,\n configuration.metadatas\n ),\n settings: {\n ...configuration.settings,\n icon: components[uid].info.icon,\n displayName: components[uid].info.displayName,\n },\n };\n return acc;\n },\n {}\n );\n\n const editMetadatas = Object.entries(data.contentType.metadatas).reduce<EditLayout['metadatas']>(\n (acc, [attribute, metadata]) => {\n return {\n ...acc,\n [attribute]: metadata.edit,\n };\n },\n {}\n );\n\n return {\n layout: panelledEditAttributes,\n components: componentEditAttributes,\n metadatas: editMetadatas,\n settings: {\n ...data.contentType.settings,\n displayName: schema?.info.displayName,\n },\n options: {\n ...schema?.options,\n ...schema?.pluginOptions,\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * convertEditLayoutToFieldLayouts\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description takes the edit layout from either a content-type or a component\n * and formats it into a generic object that can be used to correctly render\n * the form fields.\n */\nconst convertEditLayoutToFieldLayouts = (\n rows: LayoutData['contentType']['layouts']['edit'],\n attributes: Schema['attributes'] = {},\n metadatas: Contracts.ContentTypes.Metadatas,\n components?: {\n configurations: Record<string, Contracts.Components.ComponentConfiguration>;\n schemas: ComponentsDictionary;\n },\n schemas: Schema[] = []\n) => {\n return rows.map((row) =>\n row\n .map((field) => {\n const attribute = attributes[field.name];\n\n if (!attribute) {\n return null;\n }\n\n const { edit: metadata } = metadatas[field.name];\n\n const settings: Partial<Contracts.ContentTypes.Settings> =\n attribute.type === 'component' && components\n ? components.configurations[attribute.component].settings\n : {};\n\n return {\n attribute,\n disabled: !metadata.editable,\n hint: metadata.description,\n label: metadata.label ?? '',\n name: field.name,\n // @ts-expect-error – mainField does exist on the metadata for a relation.\n mainField: getMainField(attribute, metadata.mainField || settings.mainField, {\n schemas,\n components: components?.schemas ?? {},\n }),\n placeholder: metadata.placeholder ?? '',\n required: attribute.required ?? false,\n size: field.size,\n unique: 'unique' in attribute ? attribute.unique : false,\n visible: metadata.visible ?? true,\n type: attribute.type,\n };\n })\n .filter((field) => field !== null)\n ) as EditFieldLayout[][];\n};\n\n/* -------------------------------------------------------------------------------------------------\n * formatListLayout\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description takes the complete configuration data, the schema & the components used in the schema and\n * formats a list view layout for the content-type. This is much simpler than the edit view layout as there\n * are less options to consider.\n */\nconst formatListLayout = (\n data: LayoutData,\n {\n schemas,\n schema,\n components,\n }: { schemas: Schema[]; schema?: Schema; components: ComponentsDictionary }\n): ListLayout => {\n const listMetadatas = Object.entries(data.contentType.metadatas).reduce<ListLayout['metadatas']>(\n (acc, [attribute, metadata]) => {\n return {\n ...acc,\n [attribute]: metadata.list,\n };\n },\n {}\n );\n /**\n * The fields arranged by the panels, new panels are made for dynamic zones only.\n */\n const listAttributes = convertListLayoutToFieldLayouts(\n data.contentType.layouts.list,\n schema?.attributes,\n listMetadatas,\n { configurations: data.components, schemas: components },\n schemas\n );\n\n return {\n layout: listAttributes,\n settings: { ...data.contentType.settings, displayName: schema?.info.displayName },\n metadatas: listMetadatas,\n options: {\n ...schema?.options,\n ...schema?.pluginOptions,\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * convertListLayoutToFieldLayouts\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description takes the columns from the list view configuration and formats them into a generic object\n * combinining metadata and attribute data.\n *\n * @note We do use this to reformat the list of strings when updating the displayed headers for the list view.\n */\nconst convertListLayoutToFieldLayouts = (\n columns: LayoutData['contentType']['layouts']['list'],\n attributes: Schema['attributes'] = {},\n metadatas: ListLayout['metadatas'],\n components?: {\n configurations: Record<string, Contracts.Components.ComponentConfiguration>;\n schemas: ComponentsDictionary;\n },\n schemas: Schema[] = []\n) => {\n return columns\n .map((name) => {\n const attribute = attributes[name];\n\n if (!attribute) {\n return null;\n }\n\n const metadata = metadatas[name];\n\n const settings: Partial<Contracts.ContentTypes.Settings> =\n attribute.type === 'component' && components\n ? components.configurations[attribute.component].settings\n : {};\n\n return {\n attribute,\n label: metadata.label ?? '',\n mainField: getMainField(attribute, metadata.mainField || settings.mainField, {\n schemas,\n components: components?.schemas ?? {},\n }),\n name: name,\n searchable: metadata.searchable ?? true,\n sortable: metadata.sortable ?? true,\n } satisfies ListFieldLayout;\n })\n .filter((field) => field !== null) as ListFieldLayout[];\n};\n\nexport {\n useDocLayout,\n useDocumentLayout,\n convertListLayoutToFieldLayouts,\n convertEditLayoutToFieldLayouts,\n DEFAULT_SETTINGS,\n};\nexport type { EditLayout, EditFieldLayout, ListLayout, ListFieldLayout, UseDocumentLayout };\n"],"names":["contentTypePermissions","JSONInputImpl","forwardRef","NumberInput"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
const React = require('react');
|
|
5
5
|
const reactRouterDom = require('react-router-dom');
|
|
6
|
-
const layout = require('./reducers-
|
|
6
|
+
const layout = require('./reducers-wZUQqmNX.js');
|
|
7
7
|
const dateFns = require('date-fns');
|
|
8
8
|
const reactIntl = require('react-intl');
|
|
9
9
|
const designSystem = require('@strapi/design-system');
|
|
@@ -761,4 +761,4 @@ exports.getMainField = getMainField;
|
|
|
761
761
|
exports.useDocLayout = useDocLayout;
|
|
762
762
|
exports.useDocumentLayout = useDocumentLayout;
|
|
763
763
|
exports.useDocumentRBAC = useDocumentRBAC;
|
|
764
|
-
//# sourceMappingURL=useDocumentLayout-
|
|
764
|
+
//# sourceMappingURL=useDocumentLayout-V_N5dUwQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDocumentLayout-V_N5dUwQ.js","sources":["../../admin/src/utils/users.ts","../../admin/src/content-manager/features/DocumentRBAC.tsx","../../admin/src/components/RelativeTime.tsx","../../admin/src/components/FormInputs/Boolean.tsx","../../admin/src/components/FormInputs/Checkbox.tsx","../../admin/src/components/FormInputs/Date.tsx","../../admin/src/components/FormInputs/DateTime.tsx","../../admin/src/components/FormInputs/Email.tsx","../../admin/src/components/FormInputs/Enumeration.tsx","../../admin/src/components/FormInputs/Json.tsx","../../admin/src/components/FormInputs/Number.tsx","../../admin/src/components/FormInputs/Password.tsx","../../admin/src/components/FormInputs/String.tsx","../../admin/src/components/FormInputs/Textarea.tsx","../../admin/src/components/FormInputs/Time.tsx","../../admin/src/components/FormInputs/Renderer.tsx","../../admin/src/content-manager/utils/attributes.ts","../../admin/src/content-manager/hooks/useDocumentLayout.ts"],"sourcesContent":["import type { SanitizedAdminUser } from '../../../shared/contracts/shared';\nimport type { IntlShape } from 'react-intl';\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = (\n {\n firstname,\n lastname,\n username,\n email,\n }: Pick<SanitizedAdminUser, 'firstname' | 'lastname' | 'username' | 'email'> = {},\n formatMessage: IntlShape['formatMessage']\n): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return formatMessage(\n {\n id: 'global.fullname',\n defaultMessage: '{firstname} {lastname}',\n },\n {\n firstname,\n lastname,\n }\n ).trim();\n }\n\n return email ?? '';\n};\n\nexport { getDisplayName };\n","import * as React from 'react';\n\nimport { useParams } from 'react-router-dom';\n\nimport { createContext } from '../../components/Context';\nimport { useAuth, type Permission } from '../../features/Auth';\nimport { useRBAC } from '../../hooks/useRBAC';\n\nimport type { Schema } from '@strapi/types';\n\n/**\n * The boolean values indicate the global actions a user can perform on the document.\n * The `string[]` values tell us specifically which fields the actions can be performed on,\n * for example, if the `canReadFields` array is empty, than no fields can be read by the user.\n * This can happen even if the user can read the document.\n */\ninterface DocumentRBACContextValue {\n canCreate?: boolean;\n canCreateFields: string[];\n canDelete?: boolean;\n canPublish?: boolean;\n canRead?: boolean;\n canReadFields: string[];\n canUpdate?: boolean;\n canUpdateFields: string[];\n canUserAction: (\n fieldName: string,\n fieldsUserCanAction: string[],\n fieldType: Schema.Attribute.Kind\n ) => boolean;\n isLoading: boolean;\n}\n\nconst [DocumentRBACProvider, useDocumentRBAC] = createContext<DocumentRBACContextValue>(\n 'DocumentRBAC',\n {\n canCreate: false,\n canCreateFields: [],\n canDelete: false,\n canPublish: false,\n canRead: false,\n canReadFields: [],\n canUpdate: false,\n canUpdateFields: [],\n canUserAction: () => false,\n isLoading: false,\n }\n);\n\ninterface DocumentRBACProps {\n children: React.ReactNode;\n permissions: Permission[] | null;\n}\n\n/**\n * @internal This component is not meant to be used outside of the Content Manager plugin.\n * It depends on knowing the slug/model of the content-type using the params of the URL.\n * If you do use the hook outside of the context, we default to `false` for all actions.\n *\n * It then creates an list of `can{Action}` that are passed to the context for consumption\n * within the app to enforce RBAC.\n */\nconst DocumentRBAC = ({ children, permissions }: DocumentRBACProps) => {\n const { slug } = useParams<{ slug: string }>();\n\n if (!slug) {\n throw new Error('Cannot find the slug param in the URL');\n }\n\n const userPermissions = useAuth('DocumentRBAC', (state) => state.permissions);\n\n const contentTypePermissions = React.useMemo(() => {\n const contentTypePermissions = userPermissions.filter(\n (permission) => permission.subject === slug\n );\n return contentTypePermissions.reduce<Record<string, Permission[]>>((acc, permission) => {\n const [action] = permission.action.split('.').slice(-1);\n return { ...acc, [action]: [permission] };\n }, {});\n }, [slug, userPermissions]);\n\n const { isLoading, allowedActions } = useRBAC(contentTypePermissions, permissions ?? undefined);\n\n const canCreateFields =\n !isLoading && allowedActions.canCreate\n ? extractAndDedupeFields(contentTypePermissions.create)\n : [];\n\n const canReadFields =\n !isLoading && allowedActions.canRead ? extractAndDedupeFields(contentTypePermissions.read) : [];\n\n const canUpdateFields =\n !isLoading && allowedActions.canUpdate\n ? extractAndDedupeFields(contentTypePermissions.update)\n : [];\n\n /**\n * @description Checks if the user can perform an action on a field based on the field names\n * provided as the second argument.\n */\n const canUserAction: DocumentRBACContextValue['canUserAction'] = React.useCallback(\n (fieldName, fieldsUserCanAction, fieldType) => {\n const name = removeNumericalStrings(fieldName.split('.'));\n\n const componentFieldNames = fieldsUserCanAction\n // filter out fields that aren't components (components are dot separated)\n .filter((field) => field.split('.').length > 1);\n\n if (fieldType === 'component') {\n const componentOrDynamicZoneFields = componentFieldNames\n // then map to give us the dot separate path as an array\n .map((field) => field.split('.'));\n // check if the field name is within any of those arrays\n return componentOrDynamicZoneFields.some((field) => {\n return field.includes(fieldName);\n });\n }\n\n /**\n * The field is within a component.\n */\n if (name.length > 1) {\n return componentFieldNames.includes(name.join('.'));\n }\n\n /**\n * just a regular field\n */\n return fieldsUserCanAction.includes(fieldName);\n },\n []\n );\n\n return (\n <DocumentRBACProvider\n isLoading={isLoading}\n canCreateFields={canCreateFields}\n canReadFields={canReadFields}\n canUpdateFields={canUpdateFields}\n canUserAction={canUserAction}\n {...allowedActions}\n >\n {children}\n </DocumentRBACProvider>\n );\n};\n\n/**\n * @internal it's really small, but it's used three times in a row and DRY for something this straight forward.\n */\nconst extractAndDedupeFields = (permissions: Permission[] = []) =>\n permissions\n .flatMap((permission) => permission.properties?.fields)\n .filter(\n (field, index, arr): field is string =>\n arr.indexOf(field) === index && typeof field === 'string'\n );\n\n/**\n * @internal removes numerical strings from arrays.\n * @example\n * ```ts\n * const name = 'a.0.b';\n * const res = removeNumericalStrings(name.split('.'));\n * console.log(res); // ['a', 'b']\n * ```\n */\nconst removeNumericalStrings = (arr: string[]) => arr.filter((item) => isNaN(Number(item)));\n\nexport { DocumentRBAC, useDocumentRBAC, DocumentRBACContextValue, DocumentRBACProps };\n","import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n","import { forwardRef } from 'react';\n\nimport { ToggleInput, useComposedRefs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst BooleanInput = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const { formatMessage } = useIntl();\n const field = useField<boolean | null>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <ToggleInput\n ref={composedRefs}\n checked={field.value === null ? null : field.value || false}\n error={field.error}\n /**\n * TODO: reintroduce labelActions\n */\n // labelAction={labelAction}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'False',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'True',\n })}\n onChange={field.onChange}\n onClear={() => {\n field.onChange(props.name, null);\n }}\n {...props}\n />\n );\n});\n\nexport { BooleanInput };\n","import { forwardRef } from 'react';\n\nimport { Checkbox, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst CheckboxInput = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const field = useField<boolean>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n\n return (\n <Checkbox\n onValueChange={(checked) => field.onChange(props.name, checked)}\n ref={composedRefs}\n value={field.value}\n {...props}\n >\n {props.label || props['aria-label']}\n </Checkbox>\n );\n});\n\nexport { CheckboxInput };\n","import { forwardRef } from 'react';\n\nimport { DatePicker, useComposedRefs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst DateInput = forwardRef<HTMLInputElement, InputProps>(({ type: _type, ...props }, ref) => {\n const { formatMessage } = useIntl();\n const field = useField<Date>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n const value = typeof field.value === 'string' ? new Date(field.value) : field.value;\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <DatePicker\n ref={composedRefs}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n error={field.error}\n id={props.name}\n onChange={(date) => {\n field.onChange(props.name, date);\n }}\n onClear={() => field.onChange(props.name, undefined)}\n selectedDate={value}\n {...props}\n />\n );\n});\n\nexport { DateInput };\n","import { forwardRef } from 'react';\n\nimport { DateTimePicker, useComposedRefs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst DateTimeInput = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const { formatMessage } = useIntl();\n const field = useField<Date>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n const value = typeof field.value === 'string' ? new Date(field.value) : field.value;\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <DateTimePicker\n ref={composedRefs}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n error={field.error}\n id={props.name}\n onChange={(date) => {\n field.onChange(props.name, date);\n }}\n onClear={() => field.onChange(props.name, undefined)}\n value={value}\n {...props}\n />\n );\n});\n\nexport { DateTimeInput };\n","import { forwardRef } from 'react';\n\nimport { TextInput, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nexport const EmailInput = forwardRef<any, StringProps>((props, ref) => {\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <TextInput\n ref={composedRefs}\n autoComplete=\"email\"\n error={field.error}\n id={props.name}\n onChange={field.onChange}\n defaultValue={field.initialValue}\n value={field.value}\n {...props}\n type=\"email\"\n />\n );\n});\n","import { forwardRef } from 'react';\n\nimport { SingleSelect, SingleSelectOption, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { EnumerationProps } from './types';\n\nexport const EnumerationInput = forwardRef<any, EnumerationProps>(\n ({ options = [], ...props }, ref) => {\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <SingleSelect\n ref={composedRefs}\n error={field.error}\n onChange={(value) => {\n field.onChange(props.name, value);\n }}\n value={field.value}\n {...props}\n >\n {options.map(({ value, label, disabled, hidden }) => {\n return (\n <SingleSelectOption key={value} value={value} disabled={disabled} hidden={hidden}>\n {label ?? value}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n }\n);\n","import { forwardRef } from 'react';\n\nimport { JSONInput as JSONInputImpl, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\n/**\n * TODO: fix the ref type when the design system is fixed.\n */\nexport const JsonInput = forwardRef<any, InputProps>((props, ref) => {\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <JSONInputImpl\n ref={composedRefs}\n value={field.value}\n error={field.error}\n onChange={(json) => {\n // Default to null when the field is not required and there is no input value\n const value = props.required && !json.length ? null : json;\n field.onChange(props.name, value);\n }}\n minHeight={`${252 / 16}rem`}\n maxHeight={`${504 / 16}rem`}\n {...props}\n />\n );\n});\n","import { forwardRef } from 'react';\n\nimport { NumberInput, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst NumberInputImpl = forwardRef<HTMLInputElement, InputProps>(({ type, ...props }, ref) => {\n const field = useField<number>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <NumberInput\n ref={composedRefs}\n defaultValue={field.initialValue}\n error={field.error}\n id={props.name}\n onValueChange={(value) => {\n field.onChange(props.name, value);\n }}\n step={type === 'float' || type == 'decimal' ? 0.01 : 1}\n value={field.value}\n {...props}\n />\n );\n});\n\nexport { NumberInputImpl as NumberInput };\n","import { forwardRef, useState } from 'react';\n\nimport { Icon, TextInput, useComposedRefs } from '@strapi/design-system';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nexport const PasswordInput = forwardRef<any, StringProps>((props, ref) => {\n const [showPassword, setShowPassword] = useState(false);\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <TextInput\n ref={composedRefs}\n autoComplete=\"password\"\n error={field.error}\n endAction={\n <button\n aria-label={formatMessage({\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n })}\n onClick={() => {\n setShowPassword((prev) => !prev);\n }}\n style={{\n border: 'none',\n padding: 0,\n background: 'transparent',\n }}\n type=\"button\"\n >\n {showPassword ? (\n <Icon as={Eye} color=\"neutral500\" />\n ) : (\n <Icon as={EyeStriked} color=\"neutral500\" />\n )}\n </button>\n }\n id={props.name}\n onChange={field.onChange}\n defaultValue={field.initialValue}\n value={field.value}\n {...props}\n type={showPassword ? 'text' : 'password'}\n />\n );\n});\n","import { forwardRef } from 'react';\n\nimport { TextInput, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { type InputProps, useField } from '../Form';\n\n/**\n * TODO: fix the ref type when the design system is fixed.\n */\nexport const StringInput = forwardRef<any, InputProps>(({ ...props }, ref) => {\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <TextInput\n ref={composedRefs}\n error={field.error}\n defaultValue={field.initialValue}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n );\n});\n","import { forwardRef } from 'react';\n\nimport { Textarea, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nexport const TextareaInput = forwardRef<any, StringProps>((props, ref) => {\n const field = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <Textarea\n ref={composedRefs}\n defaultValue={field.initialValue}\n error={field.error}\n id={props.name}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n );\n});\n","import { forwardRef } from 'react';\n\nimport { TimePicker, useComposedRefs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst TimeInput = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const { formatMessage } = useIntl();\n const field = useField<string>(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs<HTMLInputElement | null>(ref, fieldRef);\n\n return (\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n <TimePicker\n ref={composedRefs}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n error={field.error}\n id={props.name}\n onChange={(time) => {\n field.onChange(props.name, time);\n }}\n onClear={() => field.onChange(props.name, undefined)}\n value={field.value ?? ''}\n {...props}\n />\n );\n});\n\nexport { TimeInput };\n","import { forwardRef, memo } from 'react';\n\nimport { TextInput, useComposedRefs } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { BooleanInput } from './Boolean';\nimport { CheckboxInput } from './Checkbox';\nimport { DateInput } from './Date';\nimport { DateTimeInput } from './DateTime';\nimport { EmailInput } from './Email';\nimport { EnumerationInput } from './Enumeration';\nimport { JsonInput } from './Json';\nimport { NumberInput } from './Number';\nimport { PasswordInput } from './Password';\nimport { StringInput } from './String';\nimport { TextareaInput } from './Textarea';\nimport { TimeInput } from './Time';\n\nimport type { InputProps } from '../Form';\n\n/* -------------------------------------------------------------------------------------------------\n * InputRenderer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal This needs to be tested before being exposed as a public API.\n * @experimental\n * @description A generic form renderer for Strapi forms. Similar to GenericInputs but with a different API.\n * The entire component is memoized to avoid re-renders in large forms.\n */\nconst InputRenderer = memo(\n forwardRef<any, InputProps>((props, forwardRef) => {\n switch (props.type) {\n case 'biginteger':\n case 'timestamp':\n case 'string':\n return <StringInput ref={forwardRef} {...props} />;\n case 'boolean':\n return <BooleanInput ref={forwardRef} {...props} />;\n case 'checkbox':\n return <CheckboxInput ref={forwardRef} {...props} />;\n case 'datetime':\n return <DateTimeInput ref={forwardRef} {...props} />;\n case 'date':\n return <DateInput ref={forwardRef} {...props} />;\n case 'decimal':\n case 'float':\n case 'integer':\n return <NumberInput ref={forwardRef} {...props} />;\n case 'json':\n return <JsonInput ref={forwardRef} {...props} />;\n case 'email':\n return <EmailInput ref={forwardRef} {...props} />;\n case 'enumeration':\n return <EnumerationInput ref={forwardRef} {...props} />;\n case 'password':\n return <PasswordInput ref={forwardRef} {...props} />;\n case 'text':\n return <TextareaInput ref={forwardRef} {...props} />;\n case 'time':\n return <TimeInput ref={forwardRef} {...props} />;\n default:\n // This is cast because this renderer tackles all the possibilities of the InputProps, but this is for runtime catches.\n return <NotSupportedField ref={forwardRef} {...(props as InputProps)} />;\n }\n })\n);\n\nconst NotSupportedField = forwardRef<any, InputProps>((props, ref) => {\n const { error } = useField(props.name);\n const fieldRef = useFocusInputField(props.name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <TextInput\n ref={composedRefs}\n disabled\n error={error}\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n label={props.label}\n id={props.name}\n hint={props.hint}\n name={props.name}\n placeholder={`Unsupported field type: ${props.type}`}\n required={props.required}\n type=\"text\"\n value=\"\"\n />\n );\n});\n\nexport { InputRenderer };\n","import type { ComponentsDictionary, Schema } from '../hooks/useDocument';\nimport type { Schema as SchemaUtils } from '@strapi/types';\n\nconst checkIfAttributeIsDisplayable = (attribute: SchemaUtils.Attribute.AnyAttribute) => {\n const { type } = attribute;\n\n if (type === 'relation') {\n return !attribute.relation.toLowerCase().includes('morph');\n }\n\n return !['json', 'dynamiczone', 'richtext', 'password', 'blocks'].includes(type) && !!type;\n};\n\ninterface MainField {\n name: string;\n type: SchemaUtils.Attribute.Kind | 'custom';\n}\n\n/**\n * @internal\n * @description given an attribute, content-type schemas & component schemas, find the mainField name & type.\n * If the attribute does not need a `mainField` then we return undefined. If we do not find the type\n * of the field, we assume it's a string #sensible-defaults\n */\nconst getMainField = (\n attribute: SchemaUtils.Attribute.AnyAttribute,\n mainFieldName: string | undefined,\n { schemas, components }: { schemas: Schema[]; components: ComponentsDictionary }\n): MainField | undefined => {\n if (!mainFieldName) {\n return undefined;\n }\n\n const mainFieldType =\n attribute.type === 'component'\n ? components[attribute.component].attributes[mainFieldName].type\n : // @ts-expect-error – `targetModel` does exist on the attribute for a relation.\n schemas.find((schema) => schema.uid === attribute.targetModel)?.attributes[mainFieldName]\n .type;\n\n return {\n name: mainFieldName,\n type: mainFieldType ?? 'string',\n };\n};\n\nexport { checkIfAttributeIsDisplayable, getMainField };\nexport type { MainField };\n","import * as React from 'react';\n\nimport { SerializedError } from '@reduxjs/toolkit';\n\nimport { HOOKS } from '../../constants';\nimport { useNotification } from '../../features/Notifications';\nimport { useStrapiApp } from '../../features/StrapiApp';\nimport { useAPIErrorHandler } from '../../hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../hooks/useQueryParams';\nimport { BaseQueryError } from '../../utils/baseQuery';\nimport { useGetContentTypeConfigurationQuery } from '../services/contentTypes';\nimport { getMainField } from '../utils/attributes';\n\nimport { useContentTypeSchema } from './useContentTypeSchema';\nimport {\n type ComponentsDictionary,\n type Document,\n type Schema,\n useDoc,\n useDocument,\n} from './useDocument';\n\nimport type { Filters } from '../../components/Filters';\nimport type { InputProps } from '../../components/FormInputs/types';\nimport type { Table } from '../../components/Table';\nimport type { Contracts } from '@strapi/plugin-content-manager/_internal/shared';\nimport type { Schema as SchemaUtils } from '@strapi/types';\n\ntype LayoutOptions = Schema['options'] & Schema['pluginOptions'] & object;\n\ninterface LayoutSettings extends Contracts.ContentTypes.Settings {\n displayName?: string;\n icon?: never;\n}\n\ninterface ListFieldLayout\n extends Table.Header<Document, ListFieldLayout>,\n Pick<Filters.Filter, 'mainField'> {\n attribute: SchemaUtils.Attribute.AnyAttribute | { type: 'custom' };\n}\n\ninterface ListLayout {\n layout: ListFieldLayout[];\n components?: never;\n metadatas: {\n [K in keyof Contracts.ContentTypes.Metadatas]: Contracts.ContentTypes.Metadatas[K]['list'];\n };\n options: LayoutOptions;\n settings: LayoutSettings;\n}\ninterface EditFieldSharedProps\n extends Omit<InputProps, 'hint' | 'label' | 'type'>,\n Pick<Filters.Filter, 'mainField'> {\n hint?: string;\n label: string;\n size: number;\n unique?: boolean;\n visible?: boolean;\n}\n\n/**\n * Map over all the types in Attribute Types and use that to create a union of new types where the attribute type\n * is under the property attribute and the type is under the property type.\n */\ntype EditFieldLayout = {\n [K in SchemaUtils.Attribute.Kind]: EditFieldSharedProps & {\n attribute: Extract<SchemaUtils.Attribute.AnyAttribute, { type: K }>;\n type: K;\n };\n}[SchemaUtils.Attribute.Kind];\n\ninterface EditLayout {\n layout: Array<Array<EditFieldLayout[]>>;\n components: {\n [uid: string]: {\n layout: Array<EditFieldLayout[]>;\n settings: Contracts.Components.ComponentConfiguration['settings'] & {\n displayName?: string;\n icon?: string;\n };\n };\n };\n metadatas: {\n [K in keyof Contracts.ContentTypes.Metadatas]: Contracts.ContentTypes.Metadatas[K]['edit'];\n };\n options: LayoutOptions;\n settings: LayoutSettings;\n}\n\ntype UseDocumentLayout = (model: string) => {\n error?: BaseQueryError | SerializedError;\n isLoading: boolean;\n /**\n * This is the layout for the edit view,\n */\n edit: EditLayout;\n list: ListLayout;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * useDocumentLayout\n * -----------------------------------------------------------------------------------------------*/\n\nconst DEFAULT_SETTINGS = {\n bulkable: false,\n filterable: false,\n searchable: false,\n pagination: false,\n defaultSortBy: '',\n defaultSortOrder: 'asc',\n mainField: 'id',\n pageSize: 10,\n};\n\n/**\n * @alpha\n * @description This hook is used to get the layouts for either the edit view or list view of a specific content-type\n * including the layouts for the components used in the content-type. It also runs the mutation hook waterfall so the data\n * is consistent wherever it is used. It's a light wrapper around the `useDocument` hook, but provides the `skip` option a document\n * is not fetched, however, it does fetch the schemas & components if they do not already exist in the cache.\n *\n * If the fetch fails, it will display a notification to the user.\n *\n * @example\n * ```tsx\n * const { model } = useParams<{ model: string }>();\n * const { edit: { schema: layout } } = useDocumentLayout(model);\n *\n * return layout.map(panel => panel.map(row => row.map(field => <Field {...field} />)))\n * ```\n *\n */\nconst useDocumentLayout: UseDocumentLayout = (model) => {\n const { schema, components } = useDocument({ model, collectionType: '' }, { skip: true });\n const [{ query }] = useQueryParams();\n const runHookWaterfall = useStrapiApp('useDocumentLayout', (state) => state.runHookWaterfall);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { isLoading: isLoadingSchemas, schemas } = useContentTypeSchema();\n\n const { data, isLoading: isLoadingConfigs, error } = useGetContentTypeConfigurationQuery(model);\n\n const isLoading = isLoadingSchemas || isLoadingConfigs;\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const editLayout = React.useMemo(\n () =>\n data\n ? formatEditLayout(data, { schemas, schema, components })\n : ({\n layout: [],\n components: {},\n metadatas: {},\n options: {},\n settings: DEFAULT_SETTINGS,\n } as EditLayout),\n [data, schema, components, schemas]\n );\n\n const listLayout = React.useMemo(() => {\n return data\n ? formatListLayout(data, { schemas, schema, components })\n : ({\n layout: [],\n metadatas: {},\n options: {},\n settings: DEFAULT_SETTINGS,\n } as ListLayout);\n }, [data, schema, schemas, components]);\n\n const { layout: edit } = React.useMemo(\n () =>\n runHookWaterfall(HOOKS.MUTATE_EDIT_VIEW_LAYOUT, {\n layout: editLayout,\n query,\n }),\n [editLayout, query, runHookWaterfall]\n );\n\n return {\n error,\n isLoading,\n edit,\n list: listLayout,\n } satisfies ReturnType<UseDocumentLayout>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * useDocLayout\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal this hook uses the internal useDoc hook, as such it shouldn't be used outside of the\n * content-manager because it won't work as intended.\n */\nconst useDocLayout = () => {\n const { model } = useDoc();\n return useDocumentLayout(model);\n};\n\n/* -------------------------------------------------------------------------------------------------\n * formatEditLayout\n * -----------------------------------------------------------------------------------------------*/\ntype LayoutData = Contracts.ContentTypes.FindContentTypeConfiguration.Response['data'];\n\n/**\n * @internal\n * @description takes the configuration data, the schema & the components used in the schema and formats the edit view\n * vesions of the schema & components. This is then used to redner the edit view of the content-type.\n */\nconst formatEditLayout = (\n data: LayoutData,\n {\n schemas,\n schema,\n components,\n }: { schemas: Schema[]; schema?: Schema; components: ComponentsDictionary }\n): EditLayout => {\n let currentPanelIndex = 0;\n /**\n * The fields arranged by the panels, new panels are made for dynamic zones only.\n */\n const panelledEditAttributes = convertEditLayoutToFieldLayouts(\n data.contentType.layouts.edit,\n schema?.attributes,\n data.contentType.metadatas,\n { configurations: data.components, schemas: components },\n schemas\n ).reduce<Array<EditFieldLayout[][]>>((panels, row) => {\n if (row.some((field) => field.type === 'dynamiczone')) {\n panels.push([row]);\n currentPanelIndex += 2;\n } else {\n if (!panels[currentPanelIndex]) {\n panels.push([]);\n }\n panels[currentPanelIndex].push(row);\n }\n\n return panels;\n }, []);\n\n const componentEditAttributes = Object.entries(data.components).reduce<EditLayout['components']>(\n (acc, [uid, configuration]) => {\n acc[uid] = {\n layout: convertEditLayoutToFieldLayouts(\n configuration.layouts.edit,\n components[uid].attributes,\n configuration.metadatas\n ),\n settings: {\n ...configuration.settings,\n icon: components[uid].info.icon,\n displayName: components[uid].info.displayName,\n },\n };\n return acc;\n },\n {}\n );\n\n const editMetadatas = Object.entries(data.contentType.metadatas).reduce<EditLayout['metadatas']>(\n (acc, [attribute, metadata]) => {\n return {\n ...acc,\n [attribute]: metadata.edit,\n };\n },\n {}\n );\n\n return {\n layout: panelledEditAttributes,\n components: componentEditAttributes,\n metadatas: editMetadatas,\n settings: {\n ...data.contentType.settings,\n displayName: schema?.info.displayName,\n },\n options: {\n ...schema?.options,\n ...schema?.pluginOptions,\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * convertEditLayoutToFieldLayouts\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description takes the edit layout from either a content-type or a component\n * and formats it into a generic object that can be used to correctly render\n * the form fields.\n */\nconst convertEditLayoutToFieldLayouts = (\n rows: LayoutData['contentType']['layouts']['edit'],\n attributes: Schema['attributes'] = {},\n metadatas: Contracts.ContentTypes.Metadatas,\n components?: {\n configurations: Record<string, Contracts.Components.ComponentConfiguration>;\n schemas: ComponentsDictionary;\n },\n schemas: Schema[] = []\n) => {\n return rows.map((row) =>\n row\n .map((field) => {\n const attribute = attributes[field.name];\n\n if (!attribute) {\n return null;\n }\n\n const { edit: metadata } = metadatas[field.name];\n\n const settings: Partial<Contracts.ContentTypes.Settings> =\n attribute.type === 'component' && components\n ? components.configurations[attribute.component].settings\n : {};\n\n return {\n attribute,\n disabled: !metadata.editable,\n hint: metadata.description,\n label: metadata.label ?? '',\n name: field.name,\n // @ts-expect-error – mainField does exist on the metadata for a relation.\n mainField: getMainField(attribute, metadata.mainField || settings.mainField, {\n schemas,\n components: components?.schemas ?? {},\n }),\n placeholder: metadata.placeholder ?? '',\n required: attribute.required ?? false,\n size: field.size,\n unique: 'unique' in attribute ? attribute.unique : false,\n visible: metadata.visible ?? true,\n type: attribute.type,\n };\n })\n .filter((field) => field !== null)\n ) as EditFieldLayout[][];\n};\n\n/* -------------------------------------------------------------------------------------------------\n * formatListLayout\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description takes the complete configuration data, the schema & the components used in the schema and\n * formats a list view layout for the content-type. This is much simpler than the edit view layout as there\n * are less options to consider.\n */\nconst formatListLayout = (\n data: LayoutData,\n {\n schemas,\n schema,\n components,\n }: { schemas: Schema[]; schema?: Schema; components: ComponentsDictionary }\n): ListLayout => {\n const listMetadatas = Object.entries(data.contentType.metadatas).reduce<ListLayout['metadatas']>(\n (acc, [attribute, metadata]) => {\n return {\n ...acc,\n [attribute]: metadata.list,\n };\n },\n {}\n );\n /**\n * The fields arranged by the panels, new panels are made for dynamic zones only.\n */\n const listAttributes = convertListLayoutToFieldLayouts(\n data.contentType.layouts.list,\n schema?.attributes,\n listMetadatas,\n { configurations: data.components, schemas: components },\n schemas\n );\n\n return {\n layout: listAttributes,\n settings: { ...data.contentType.settings, displayName: schema?.info.displayName },\n metadatas: listMetadatas,\n options: {\n ...schema?.options,\n ...schema?.pluginOptions,\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * convertListLayoutToFieldLayouts\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description takes the columns from the list view configuration and formats them into a generic object\n * combinining metadata and attribute data.\n *\n * @note We do use this to reformat the list of strings when updating the displayed headers for the list view.\n */\nconst convertListLayoutToFieldLayouts = (\n columns: LayoutData['contentType']['layouts']['list'],\n attributes: Schema['attributes'] = {},\n metadatas: ListLayout['metadatas'],\n components?: {\n configurations: Record<string, Contracts.Components.ComponentConfiguration>;\n schemas: ComponentsDictionary;\n },\n schemas: Schema[] = []\n) => {\n return columns\n .map((name) => {\n const attribute = attributes[name];\n\n if (!attribute) {\n return null;\n }\n\n const metadata = metadatas[name];\n\n const settings: Partial<Contracts.ContentTypes.Settings> =\n attribute.type === 'component' && components\n ? components.configurations[attribute.component].settings\n : {};\n\n return {\n attribute,\n label: metadata.label ?? '',\n mainField: getMainField(attribute, metadata.mainField || settings.mainField, {\n schemas,\n components: components?.schemas ?? {},\n }),\n name: name,\n searchable: metadata.searchable ?? true,\n sortable: metadata.sortable ?? true,\n } satisfies ListFieldLayout;\n })\n .filter((field) => field !== null) as ListFieldLayout[];\n};\n\nexport {\n useDocLayout,\n useDocumentLayout,\n convertListLayoutToFieldLayouts,\n convertEditLayoutToFieldLayouts,\n DEFAULT_SETTINGS,\n};\nexport type { EditLayout, EditFieldLayout, ListLayout, ListFieldLayout, UseDocumentLayout };\n"],"names":["createContext","useParams","useAuth","React","contentTypePermissions","useRBAC","jsx","useIntl","intervalToDuration","isPast","forwardRef","useField","useFocusInputField","useComposedRefs","ToggleInput","Checkbox","DatePicker","DateTimePicker","TextInput","SingleSelect","SingleSelectOption","JSONInputImpl","NumberInput","useState","Icon","Eye","EyeStriked","Textarea","TimePicker","memo","useDocument","useQueryParams","useStrapiApp","useNotification","useAPIErrorHandler","useContentTypeSchema","useGetContentTypeConfigurationQuery","HOOKS","useDoc"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import * as React from 'react';
|
|
|
2
2
|
import isNil from 'lodash/isNil';
|
|
3
3
|
import { useIntl } from 'react-intl';
|
|
4
4
|
import { useLocation } from 'react-router-dom';
|
|
5
|
-
import { j as useNotification } from './reducers-
|
|
6
|
-
import { f as useLicenseLimits } from './index-
|
|
5
|
+
import { j as useNotification } from './reducers-IQWvK_9L.mjs';
|
|
6
|
+
import { f as useLicenseLimits } from './index-1NFAbkxM.mjs';
|
|
7
7
|
|
|
8
8
|
const STORAGE_KEY_PREFIX = "strapi-notification-seat-limit";
|
|
9
9
|
const BILLING_STRAPI_CLOUD_URL = "https://cloud.strapi.io/profile/billing";
|
|
@@ -77,4 +77,4 @@ const useLicenseLimitNotification = () => {
|
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
export { useLicenseLimitNotification as u };
|
|
80
|
-
//# sourceMappingURL=useLicenseLimitNotification-
|
|
80
|
+
//# sourceMappingURL=useLicenseLimitNotification-9DqSZuyc.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLicenseLimitNotification-
|
|
1
|
+
{"version":3,"file":"useLicenseLimitNotification-9DqSZuyc.mjs","sources":["../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_STRAPI_CLOUD_URL = 'https://cloud.strapi.io/profile/billing';\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, isHostedOnStrapiCloud } =\n license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n (licenseLimitStatus === 'AT_LIMIT' || licenseLimitStatus === 'OVER_LIMIT');\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n } else if (licenseLimitStatus === 'AT_LIMIT') {\n notificationType = 'warning';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: isHostedOnStrapiCloud ? BILLING_STRAPI_CLOUD_URL : BILLING_SELF_HOSTED_URL,\n label: formatMessage(\n {\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage:\n '{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}',\n },\n { isHostedOnStrapiCloud }\n ),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isHostedOnStrapiCloud,\n isError,\n ]);\n};\n"],"names":[],"mappings":";;;;;;;AAeA,MAAM,kBAAqB,GAAA,gCAAA,CAAA;AAE3B,MAAM,wBAA2B,GAAA,yCAAA,CAAA;AACjC,MAAM,uBAA0B,GAAA,yCAAA,CAAA;AAEzB,MAAM,8BAA8B,MAAM;AAC/C,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,EAAE,OAAA,EAAS,OAAS,EAAA,SAAA,KAAc,gBAAiB,EAAA,CAAA;AACzD,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAI,eAAgB,EAAA,CAAA;AAC/C,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,WAAY,EAAA,CAAA;AAEjC,EAAA,MAAM,EAAE,oBAAsB,EAAA,cAAA,EAAgB,oBAAoB,qBAAsB,EAAA,GACtF,WAAW,EAAC,CAAA;AAEd,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,WAAW,SAAW,EAAA;AACxB,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,MAAM,4BACJ,CAAC,KAAA,CAAM,cAAc,CAAA,IACrB,CAAC,MAAO,CAAA,cAAA,CAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,EAAE,CACjE,KAAA,kBAAA,KAAuB,cAAc,kBAAuB,KAAA,YAAA,CAAA,CAAA;AAE/D,IAAI,IAAA,gBAAA,CAAA;AAEJ,IAAA,IAAI,uBAAuB,YAAc,EAAA;AACvC,MAAmB,gBAAA,GAAA,QAAA,CAAA;AAAA,KACrB,MAAA,IAAW,uBAAuB,UAAY,EAAA;AAC5C,MAAmB,gBAAA,GAAA,SAAA,CAAA;AAAA,KACrB;AAEA,IAAA,IAAI,yBAA2B,EAAA;AAC7B,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,gBAAA;AAAA,QACN,OAAS,EAAA,aAAA;AAAA,UACP;AAAA,YACE,EAAI,EAAA,uCAAA;AAAA,YACJ,cACE,EAAA,oLAAA;AAAA,WACJ;AAAA,UACA,EAAE,kBAAmB,EAAA;AAAA,SACvB;AAAA,QACA,KAAO,EAAA,aAAA;AAAA,UACL;AAAA,YACE,EAAI,EAAA,6CAAA;AAAA,YACJ,cACE,EAAA,iHAAA;AAAA,WACJ;AAAA,UACA;AAAA,YACE,kBAAA;AAAA,YACA,oBAAA;AAAA,YACA,cAAA;AAAA,WACF;AAAA,SACF;AAAA,QACA,IAAM,EAAA;AAAA,UACJ,GAAA,EAAK,wBAAwB,wBAA2B,GAAA,uBAAA;AAAA,UACxD,KAAO,EAAA,aAAA;AAAA,YACL;AAAA,cACE,EAAI,EAAA,yCAAA;AAAA,cACJ,cACE,EAAA,yEAAA;AAAA,aACJ;AAAA,YACA,EAAE,qBAAsB,EAAA;AAAA,WAC1B;AAAA,SACF;AAAA,QACA,eAAiB,EAAA,IAAA;AAAA,QACjB,OAAU,GAAA;AACR,UAAA,MAAA,CAAO,eAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,IAAI,MAAM,CAAA,CAAA;AAAA,SAC3E;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACC,EAAA;AAAA,IACD,kBAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA,qBAAA;AAAA,IACA,OAAA;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
|
|
@@ -4,8 +4,8 @@ const React = require('react');
|
|
|
4
4
|
const isNil = require('lodash/isNil');
|
|
5
5
|
const reactIntl = require('react-intl');
|
|
6
6
|
const reactRouterDom = require('react-router-dom');
|
|
7
|
-
const layout = require('./reducers-
|
|
8
|
-
const index = require('./index-
|
|
7
|
+
const layout = require('./reducers-wZUQqmNX.js');
|
|
8
|
+
const index = require('./index-mQQPK-ix.js');
|
|
9
9
|
|
|
10
10
|
const _interopDefault = e => e && e.__esModule ? e : { default: e };
|
|
11
11
|
|
|
@@ -102,4 +102,4 @@ const useLicenseLimitNotification = () => {
|
|
|
102
102
|
};
|
|
103
103
|
|
|
104
104
|
exports.useLicenseLimitNotification = useLicenseLimitNotification;
|
|
105
|
-
//# sourceMappingURL=useLicenseLimitNotification-
|
|
105
|
+
//# sourceMappingURL=useLicenseLimitNotification-SiWQ5LGo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLicenseLimitNotification-
|
|
1
|
+
{"version":3,"file":"useLicenseLimitNotification-SiWQ5LGo.js","sources":["../../ee/admin/src/hooks/useLicenseLimitNotification.ts"],"sourcesContent":["/**\n *\n * useLicenseLimitNotification\n *\n */\nimport * as React from 'react';\n\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { NotificationConfig, useNotification } from '../../../../admin/src/features/Notifications';\n\nimport { useLicenseLimits } from './useLicenseLimits';\n\nconst STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';\n\nconst BILLING_STRAPI_CLOUD_URL = 'https://cloud.strapi.io/profile/billing';\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\n\nexport const useLicenseLimitNotification = () => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n const { toggleNotification } = useNotification();\n const { pathname } = useLocation();\n\n const { enforcementUserCount, permittedSeats, licenseLimitStatus, isHostedOnStrapiCloud } =\n license ?? {};\n\n React.useEffect(() => {\n if (isError || isLoading) {\n return;\n }\n\n const shouldDisplayNotification =\n !isNil(permittedSeats) &&\n !window.sessionStorage.getItem(`${STORAGE_KEY_PREFIX}-${pathname}`) &&\n (licenseLimitStatus === 'AT_LIMIT' || licenseLimitStatus === 'OVER_LIMIT');\n\n let notificationType: NotificationConfig['type'];\n\n if (licenseLimitStatus === 'OVER_LIMIT') {\n notificationType = 'danger';\n } else if (licenseLimitStatus === 'AT_LIMIT') {\n notificationType = 'warning';\n }\n\n if (shouldDisplayNotification) {\n toggleNotification({\n type: notificationType,\n message: formatMessage(\n {\n id: 'notification.ee.warning.over-.message',\n defaultMessage:\n \"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.\",\n },\n { licenseLimitStatus }\n ),\n title: formatMessage(\n {\n id: 'notification.ee.warning.at-seat-limit.title',\n defaultMessage:\n '{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})',\n },\n {\n licenseLimitStatus,\n enforcementUserCount,\n permittedSeats,\n }\n ),\n link: {\n url: isHostedOnStrapiCloud ? BILLING_STRAPI_CLOUD_URL : BILLING_SELF_HOSTED_URL,\n label: formatMessage(\n {\n id: 'notification.ee.warning.seat-limit.link',\n defaultMessage:\n '{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}',\n },\n { isHostedOnStrapiCloud }\n ),\n },\n blockTransition: true,\n onClose() {\n window.sessionStorage.setItem(`${STORAGE_KEY_PREFIX}-${pathname}`, 'true');\n },\n });\n }\n }, [\n toggleNotification,\n license,\n pathname,\n formatMessage,\n isLoading,\n permittedSeats,\n licenseLimitStatus,\n enforcementUserCount,\n isHostedOnStrapiCloud,\n isError,\n ]);\n};\n"],"names":["useIntl","useLicenseLimits","useNotification","useLocation","React","isNil"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,kBAAqB,GAAA,gCAAA,CAAA;AAE3B,MAAM,wBAA2B,GAAA,yCAAA,CAAA;AACjC,MAAM,uBAA0B,GAAA,yCAAA,CAAA;AAEzB,MAAM,8BAA8B,MAAM;AAC/C,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIA,iBAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,EAAE,OAAA,EAAS,OAAS,EAAA,SAAA,KAAcC,sBAAiB,EAAA,CAAA;AACzD,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAIC,sBAAgB,EAAA,CAAA;AAC/C,EAAM,MAAA,EAAE,QAAS,EAAA,GAAIC,0BAAY,EAAA,CAAA;AAEjC,EAAA,MAAM,EAAE,oBAAsB,EAAA,cAAA,EAAgB,oBAAoB,qBAAsB,EAAA,GACtF,WAAW,EAAC,CAAA;AAEd,EAAAC,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,WAAW,SAAW,EAAA;AACxB,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,MAAM,4BACJ,CAACC,sBAAA,CAAM,cAAc,CAAA,IACrB,CAAC,MAAO,CAAA,cAAA,CAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,EAAE,CACjE,KAAA,kBAAA,KAAuB,cAAc,kBAAuB,KAAA,YAAA,CAAA,CAAA;AAE/D,IAAI,IAAA,gBAAA,CAAA;AAEJ,IAAA,IAAI,uBAAuB,YAAc,EAAA;AACvC,MAAmB,gBAAA,GAAA,QAAA,CAAA;AAAA,KACrB,MAAA,IAAW,uBAAuB,UAAY,EAAA;AAC5C,MAAmB,gBAAA,GAAA,SAAA,CAAA;AAAA,KACrB;AAEA,IAAA,IAAI,yBAA2B,EAAA;AAC7B,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,gBAAA;AAAA,QACN,OAAS,EAAA,aAAA;AAAA,UACP;AAAA,YACE,EAAI,EAAA,uCAAA;AAAA,YACJ,cACE,EAAA,oLAAA;AAAA,WACJ;AAAA,UACA,EAAE,kBAAmB,EAAA;AAAA,SACvB;AAAA,QACA,KAAO,EAAA,aAAA;AAAA,UACL;AAAA,YACE,EAAI,EAAA,6CAAA;AAAA,YACJ,cACE,EAAA,iHAAA;AAAA,WACJ;AAAA,UACA;AAAA,YACE,kBAAA;AAAA,YACA,oBAAA;AAAA,YACA,cAAA;AAAA,WACF;AAAA,SACF;AAAA,QACA,IAAM,EAAA;AAAA,UACJ,GAAA,EAAK,wBAAwB,wBAA2B,GAAA,uBAAA;AAAA,UACxD,KAAO,EAAA,aAAA;AAAA,YACL;AAAA,cACE,EAAI,EAAA,yCAAA;AAAA,cACJ,cACE,EAAA,yEAAA;AAAA,aACJ;AAAA,YACA,EAAE,qBAAsB,EAAA;AAAA,WAC1B;AAAA,SACF;AAAA,QACA,eAAiB,EAAA,IAAA;AAAA,QACjB,OAAU,GAAA;AACR,UAAA,MAAA,CAAO,eAAe,OAAQ,CAAA,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,QAAQ,IAAI,MAAM,CAAA,CAAA;AAAA,SAC3E;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACC,EAAA;AAAA,IACD,kBAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA,qBAAA;AAAA,IACA,OAAA;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const index = require('./index-
|
|
3
|
+
const index = require('./index-mQQPK-ix.js');
|
|
4
4
|
|
|
5
5
|
function useReviewWorkflows(params = {}) {
|
|
6
6
|
const { id = "", ...queryParams } = params;
|
|
@@ -26,4 +26,4 @@ function useReviewWorkflows(params = {}) {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
exports.useReviewWorkflows = useReviewWorkflows;
|
|
29
|
-
//# sourceMappingURL=useReviewWorkflows-
|
|
29
|
+
//# sourceMappingURL=useReviewWorkflows-0ty4mwQd.js.map
|
package/dist/admin/{useReviewWorkflows-ZcRZstgn.js.map → useReviewWorkflows-0ty4mwQd.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReviewWorkflows-
|
|
1
|
+
{"version":3,"file":"useReviewWorkflows-0ty4mwQd.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.ts"],"sourcesContent":["import {\n GetWorkflowsParams,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useGetWorkflowsQuery,\n useUpdateWorkflowMutation,\n} from '../../../../../services/reviewWorkflows';\n\nexport function useReviewWorkflows(params: GetWorkflowsParams = {}) {\n const { id = '', ...queryParams } = params;\n\n const { data, isLoading } = useGetWorkflowsQuery({\n id,\n populate: 'stages',\n ...queryParams,\n });\n\n const [createWorkflow] = useCreateWorkflowMutation();\n const [updateWorkflow] = useUpdateWorkflowMutation();\n const [deleteWorkflow] = useDeleteWorkflowMutation();\n\n const { workflows, meta } = data ?? {};\n\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n workflows,\n isLoading,\n createWorkflow,\n updateWorkflow,\n deleteWorkflow,\n };\n}\n"],"names":["useGetWorkflowsQuery","useCreateWorkflowMutation","useUpdateWorkflowMutation","useDeleteWorkflowMutation"],"mappings":";;;;AAQgB,SAAA,kBAAA,CAAmB,MAA6B,GAAA,EAAI,EAAA;AAClE,EAAA,MAAM,EAAE,EAAA,GAAK,EAAI,EAAA,GAAG,aAAgB,GAAA,MAAA,CAAA;AAEpC,EAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAIA,0BAAqB,CAAA;AAAA,IAC/C,EAAA;AAAA,IACA,QAAU,EAAA,QAAA;AAAA,IACV,GAAG,WAAA;AAAA,GACJ,CAAA,CAAA;AAED,EAAM,MAAA,CAAC,cAAc,CAAA,GAAIC,+BAA0B,EAAA,CAAA;AACnD,EAAM,MAAA,CAAC,cAAc,CAAA,GAAIC,+BAA0B,EAAA,CAAA;AACnD,EAAM,MAAA,CAAC,cAAc,CAAA,GAAIC,+BAA0B,EAAA,CAAA;AAEnD,EAAA,MAAM,EAAE,SAAA,EAAW,IAAK,EAAA,GAAI,QAAQ,EAAC,CAAA;AAErC,EAAO,OAAA;AAAA;AAAA;AAAA,IAGL,IAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,GACF,CAAA;AACF;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as useGetWorkflowsQuery, j as useCreateWorkflowMutation, k as useUpdateWorkflowMutation, l as useDeleteWorkflowMutation } from './index-
|
|
1
|
+
import { i as useGetWorkflowsQuery, j as useCreateWorkflowMutation, k as useUpdateWorkflowMutation, l as useDeleteWorkflowMutation } from './index-1NFAbkxM.mjs';
|
|
2
2
|
|
|
3
3
|
function useReviewWorkflows(params = {}) {
|
|
4
4
|
const { id = "", ...queryParams } = params;
|
|
@@ -24,4 +24,4 @@ function useReviewWorkflows(params = {}) {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export { useReviewWorkflows as u };
|
|
27
|
-
//# sourceMappingURL=useReviewWorkflows-
|
|
27
|
+
//# sourceMappingURL=useReviewWorkflows-HwyFyit7.mjs.map
|
package/dist/admin/{useReviewWorkflows-Ji_rsoyJ.mjs.map → useReviewWorkflows-HwyFyit7.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReviewWorkflows-
|
|
1
|
+
{"version":3,"file":"useReviewWorkflows-HwyFyit7.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.ts"],"sourcesContent":["import {\n GetWorkflowsParams,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useGetWorkflowsQuery,\n useUpdateWorkflowMutation,\n} from '../../../../../services/reviewWorkflows';\n\nexport function useReviewWorkflows(params: GetWorkflowsParams = {}) {\n const { id = '', ...queryParams } = params;\n\n const { data, isLoading } = useGetWorkflowsQuery({\n id,\n populate: 'stages',\n ...queryParams,\n });\n\n const [createWorkflow] = useCreateWorkflowMutation();\n const [updateWorkflow] = useUpdateWorkflowMutation();\n const [deleteWorkflow] = useDeleteWorkflowMutation();\n\n const { workflows, meta } = data ?? {};\n\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n workflows,\n isLoading,\n createWorkflow,\n updateWorkflow,\n deleteWorkflow,\n };\n}\n"],"names":[],"mappings":";;AAQgB,SAAA,kBAAA,CAAmB,MAA6B,GAAA,EAAI,EAAA;AAClE,EAAA,MAAM,EAAE,EAAA,GAAK,EAAI,EAAA,GAAG,aAAgB,GAAA,MAAA,CAAA;AAEpC,EAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAI,oBAAqB,CAAA;AAAA,IAC/C,EAAA;AAAA,IACA,QAAU,EAAA,QAAA;AAAA,IACV,GAAG,WAAA;AAAA,GACJ,CAAA,CAAA;AAED,EAAM,MAAA,CAAC,cAAc,CAAA,GAAI,yBAA0B,EAAA,CAAA;AACnD,EAAM,MAAA,CAAC,cAAc,CAAA,GAAI,yBAA0B,EAAA,CAAA;AACnD,EAAM,MAAA,CAAC,cAAc,CAAA,GAAI,yBAA0B,EAAA,CAAA;AAEnD,EAAA,MAAM,EAAE,SAAA,EAAW,IAAK,EAAA,GAAI,QAAQ,EAAC,CAAA;AAErC,EAAO,OAAA;AAAA;AAAA;AAAA,IAGL,IAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,GACF,CAAA;AACF;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { Y as useTypedDispatch, $ as useAuth, aG as setPermissions, aH as resetPermissions, h as useTypedSelector } from './reducers-
|
|
2
|
+
import { Y as useTypedDispatch, $ as useAuth, aG as setPermissions, aH as resetPermissions, h as useTypedSelector } from './reducers-IQWvK_9L.mjs';
|
|
3
3
|
|
|
4
4
|
const useSyncRbac = (collectionTypeUID, query, containerName = "listView") => {
|
|
5
5
|
const [isLoading, setIsLoading] = React.useState(true);
|
|
@@ -42,4 +42,4 @@ const useSyncRbac = (collectionTypeUID, query, containerName = "listView") => {
|
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
export { useSyncRbac as u };
|
|
45
|
-
//# sourceMappingURL=useSyncRbac-
|
|
45
|
+
//# sourceMappingURL=useSyncRbac-LNOzRXJ5.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSyncRbac-
|
|
1
|
+
{"version":3,"file":"useSyncRbac-LNOzRXJ5.mjs","sources":["../../admin/src/content-manager/hooks/useSyncRbac.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useTypedDispatch, useTypedSelector } from '../../core/store/hooks';\nimport { useAuth, type Permission } from '../../features/Auth';\nimport { resetPermissions, setPermissions } from '../modules/rbac';\n\ntype UseSyncRbac = (\n uid: string,\n query: { plugins?: object },\n containerName?: string\n) => {\n isLoading: boolean;\n isError: boolean;\n permissions?: Permission[];\n};\n\n/* -------------------------------------------------------------------------------------------------\n * useSyncRbac\n * -----------------------------------------------------------------------------------------------*/\n/**\n * TODO: figure out how to get rid of this. It's a bit of a weird hack to mutate permissions only\n * for the content-manager, if we devise a better way to handle RBAC in the entire app then this\n * can probably go...\n */\nconst useSyncRbac: UseSyncRbac = (collectionTypeUID, query, containerName = 'listView') => {\n const [isLoading, setIsLoading] = React.useState(true);\n const dispatch = useTypedDispatch();\n\n const userPermissions = useAuth('useSyncRbac', (state) => state.permissions);\n\n const relatedPermissions = React.useMemo(() => {\n const contentTypePermissions = userPermissions.filter(\n (permission) => permission.subject === collectionTypeUID\n );\n return contentTypePermissions.reduce<Record<string, Permission[]>>(\n (acc, permission) => ({ ...acc, [permission.action]: [permission] }),\n {}\n );\n }, [collectionTypeUID, userPermissions]);\n\n React.useEffect(() => {\n setIsLoading(true);\n\n if (relatedPermissions) {\n dispatch(\n setPermissions({\n permissions: relatedPermissions,\n __meta__: {\n plugins: query ? query.plugins : undefined,\n containerName,\n },\n })\n );\n }\n\n setIsLoading(false);\n\n return () => {\n dispatch(resetPermissions());\n };\n }, [relatedPermissions, dispatch, query, containerName]);\n\n const permissions = useTypedSelector((state) => state['content-manager'].rbac.permissions);\n\n // Check if the permissions are related to the current collectionTypeUID\n const isPermissionMismatch =\n permissions && permissions.some((permission) => permission.subject !== collectionTypeUID)\n ? true\n : false;\n\n return {\n isLoading,\n isError: !isLoading && isPermissionMismatch,\n permissions,\n };\n};\n\nexport { useSyncRbac };\n"],"names":[],"mappings":";;;AAwBA,MAAM,WAA2B,GAAA,CAAC,iBAAmB,EAAA,KAAA,EAAO,gBAAgB,UAAe,KAAA;AACzF,EAAA,MAAM,CAAC,SAAW,EAAA,YAAY,CAAI,GAAA,KAAA,CAAM,SAAS,IAAI,CAAA,CAAA;AACrD,EAAA,MAAM,WAAW,gBAAiB,EAAA,CAAA;AAElC,EAAA,MAAM,kBAAkB,OAAQ,CAAA,aAAA,EAAe,CAAC,KAAA,KAAU,MAAM,WAAW,CAAA,CAAA;AAE3E,EAAM,MAAA,kBAAA,GAAqB,KAAM,CAAA,OAAA,CAAQ,MAAM;AAC7C,IAAA,MAAM,yBAAyB,eAAgB,CAAA,MAAA;AAAA,MAC7C,CAAC,UAAe,KAAA,UAAA,CAAW,OAAY,KAAA,iBAAA;AAAA,KACzC,CAAA;AACA,IAAA,OAAO,sBAAuB,CAAA,MAAA;AAAA,MAC5B,CAAC,GAAA,EAAK,UAAgB,MAAA,EAAE,GAAG,GAAA,EAAK,CAAC,UAAA,CAAW,MAAM,GAAG,CAAC,UAAU,CAAE,EAAA,CAAA;AAAA,MAClE,EAAC;AAAA,KACH,CAAA;AAAA,GACC,EAAA,CAAC,iBAAmB,EAAA,eAAe,CAAC,CAAA,CAAA;AAEvC,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,YAAA,CAAa,IAAI,CAAA,CAAA;AAEjB,IAAA,IAAI,kBAAoB,EAAA;AACtB,MAAA,QAAA;AAAA,QACE,cAAe,CAAA;AAAA,UACb,WAAa,EAAA,kBAAA;AAAA,UACb,QAAU,EAAA;AAAA,YACR,OAAA,EAAS,KAAQ,GAAA,KAAA,CAAM,OAAU,GAAA,KAAA,CAAA;AAAA,YACjC,aAAA;AAAA,WACF;AAAA,SACD,CAAA;AAAA,OACH,CAAA;AAAA,KACF;AAEA,IAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAElB,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,kBAAkB,CAAA,CAAA;AAAA,KAC7B,CAAA;AAAA,KACC,CAAC,kBAAA,EAAoB,QAAU,EAAA,KAAA,EAAO,aAAa,CAAC,CAAA,CAAA;AAEvD,EAAM,MAAA,WAAA,GAAc,iBAAiB,CAAC,KAAA,KAAU,MAAM,iBAAiB,CAAA,CAAE,KAAK,WAAW,CAAA,CAAA;AAGzF,EAAM,MAAA,oBAAA,GACJ,WAAe,IAAA,WAAA,CAAY,IAAK,CAAA,CAAC,eAAe,UAAW,CAAA,OAAA,KAAY,iBAAiB,CAAA,GACpF,IACA,GAAA,KAAA,CAAA;AAEN,EAAO,OAAA;AAAA,IACL,SAAA;AAAA,IACA,OAAA,EAAS,CAAC,SAAa,IAAA,oBAAA;AAAA,IACvB,WAAA;AAAA,GACF,CAAA;AACF;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const React = require('react');
|
|
4
|
-
const layout = require('./reducers-
|
|
4
|
+
const layout = require('./reducers-wZUQqmNX.js');
|
|
5
5
|
|
|
6
6
|
function _interopNamespace(e) {
|
|
7
7
|
if (e && e.__esModule) return e;
|
|
@@ -64,4 +64,4 @@ const useSyncRbac = (collectionTypeUID, query, containerName = "listView") => {
|
|
|
64
64
|
};
|
|
65
65
|
|
|
66
66
|
exports.useSyncRbac = useSyncRbac;
|
|
67
|
-
//# sourceMappingURL=useSyncRbac-
|
|
67
|
+
//# sourceMappingURL=useSyncRbac-vkWgDJTE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSyncRbac-
|
|
1
|
+
{"version":3,"file":"useSyncRbac-vkWgDJTE.js","sources":["../../admin/src/content-manager/hooks/useSyncRbac.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useTypedDispatch, useTypedSelector } from '../../core/store/hooks';\nimport { useAuth, type Permission } from '../../features/Auth';\nimport { resetPermissions, setPermissions } from '../modules/rbac';\n\ntype UseSyncRbac = (\n uid: string,\n query: { plugins?: object },\n containerName?: string\n) => {\n isLoading: boolean;\n isError: boolean;\n permissions?: Permission[];\n};\n\n/* -------------------------------------------------------------------------------------------------\n * useSyncRbac\n * -----------------------------------------------------------------------------------------------*/\n/**\n * TODO: figure out how to get rid of this. It's a bit of a weird hack to mutate permissions only\n * for the content-manager, if we devise a better way to handle RBAC in the entire app then this\n * can probably go...\n */\nconst useSyncRbac: UseSyncRbac = (collectionTypeUID, query, containerName = 'listView') => {\n const [isLoading, setIsLoading] = React.useState(true);\n const dispatch = useTypedDispatch();\n\n const userPermissions = useAuth('useSyncRbac', (state) => state.permissions);\n\n const relatedPermissions = React.useMemo(() => {\n const contentTypePermissions = userPermissions.filter(\n (permission) => permission.subject === collectionTypeUID\n );\n return contentTypePermissions.reduce<Record<string, Permission[]>>(\n (acc, permission) => ({ ...acc, [permission.action]: [permission] }),\n {}\n );\n }, [collectionTypeUID, userPermissions]);\n\n React.useEffect(() => {\n setIsLoading(true);\n\n if (relatedPermissions) {\n dispatch(\n setPermissions({\n permissions: relatedPermissions,\n __meta__: {\n plugins: query ? query.plugins : undefined,\n containerName,\n },\n })\n );\n }\n\n setIsLoading(false);\n\n return () => {\n dispatch(resetPermissions());\n };\n }, [relatedPermissions, dispatch, query, containerName]);\n\n const permissions = useTypedSelector((state) => state['content-manager'].rbac.permissions);\n\n // Check if the permissions are related to the current collectionTypeUID\n const isPermissionMismatch =\n permissions && permissions.some((permission) => permission.subject !== collectionTypeUID)\n ? true\n : false;\n\n return {\n isLoading,\n isError: !isLoading && isPermissionMismatch,\n permissions,\n };\n};\n\nexport { useSyncRbac };\n"],"names":["React","useTypedDispatch","useAuth","setPermissions","resetPermissions","useTypedSelector"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAM,WAA2B,GAAA,CAAC,iBAAmB,EAAA,KAAA,EAAO,gBAAgB,UAAe,KAAA;AACzF,EAAA,MAAM,CAAC,SAAW,EAAA,YAAY,CAAI,GAAAA,gBAAA,CAAM,SAAS,IAAI,CAAA,CAAA;AACrD,EAAA,MAAM,WAAWC,uBAAiB,EAAA,CAAA;AAElC,EAAA,MAAM,kBAAkBC,cAAQ,CAAA,aAAA,EAAe,CAAC,KAAA,KAAU,MAAM,WAAW,CAAA,CAAA;AAE3E,EAAM,MAAA,kBAAA,GAAqBF,gBAAM,CAAA,OAAA,CAAQ,MAAM;AAC7C,IAAA,MAAM,yBAAyB,eAAgB,CAAA,MAAA;AAAA,MAC7C,CAAC,UAAe,KAAA,UAAA,CAAW,OAAY,KAAA,iBAAA;AAAA,KACzC,CAAA;AACA,IAAA,OAAO,sBAAuB,CAAA,MAAA;AAAA,MAC5B,CAAC,GAAA,EAAK,UAAgB,MAAA,EAAE,GAAG,GAAA,EAAK,CAAC,UAAA,CAAW,MAAM,GAAG,CAAC,UAAU,CAAE,EAAA,CAAA;AAAA,MAClE,EAAC;AAAA,KACH,CAAA;AAAA,GACC,EAAA,CAAC,iBAAmB,EAAA,eAAe,CAAC,CAAA,CAAA;AAEvC,EAAAA,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,YAAA,CAAa,IAAI,CAAA,CAAA;AAEjB,IAAA,IAAI,kBAAoB,EAAA;AACtB,MAAA,QAAA;AAAA,QACEG,qBAAe,CAAA;AAAA,UACb,WAAa,EAAA,kBAAA;AAAA,UACb,QAAU,EAAA;AAAA,YACR,OAAA,EAAS,KAAQ,GAAA,KAAA,CAAM,OAAU,GAAA,KAAA,CAAA;AAAA,YACjC,aAAA;AAAA,WACF;AAAA,SACD,CAAA;AAAA,OACH,CAAA;AAAA,KACF;AAEA,IAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAElB,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAASC,yBAAkB,CAAA,CAAA;AAAA,KAC7B,CAAA;AAAA,KACC,CAAC,kBAAA,EAAoB,QAAU,EAAA,KAAA,EAAO,aAAa,CAAC,CAAA,CAAA;AAEvD,EAAM,MAAA,WAAA,GAAcC,wBAAiB,CAAC,KAAA,KAAU,MAAM,iBAAiB,CAAA,CAAE,KAAK,WAAW,CAAA,CAAA;AAGzF,EAAM,MAAA,oBAAA,GACJ,WAAe,IAAA,WAAA,CAAY,IAAK,CAAA,CAAC,eAAe,UAAW,CAAA,OAAA,KAAY,iBAAiB,CAAA,GACpF,IACA,GAAA,KAAA,CAAA;AAEN,EAAO,OAAA;AAAA,IACL,SAAA;AAAA,IACA,OAAA,EAAS,CAAC,SAAa,IAAA,oBAAA;AAAA,IACvB,WAAA;AAAA,GACF,CAAA;AACF;;;;"}
|