@strapi/content-manager 0.0.0-next.39c0188c3aa01bec7b64b948211571d5159e811d → 0.0.0-next.3a1d87a9c3b1d4d89f741c6ecd7f501230fd8d76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/CardDragPreview-C0QyJgRA.js +69 -0
- package/dist/_chunks/CardDragPreview-C0QyJgRA.js.map +1 -0
- package/dist/_chunks/CardDragPreview-DOxamsuj.mjs +70 -0
- package/dist/_chunks/CardDragPreview-DOxamsuj.mjs.map +1 -0
- package/dist/_chunks/ComponentConfigurationPage-DMxUlNOo.js +254 -0
- package/dist/_chunks/ComponentConfigurationPage-DMxUlNOo.js.map +1 -0
- package/dist/_chunks/ComponentConfigurationPage-baEkO-OV.mjs +236 -0
- package/dist/_chunks/ComponentConfigurationPage-baEkO-OV.mjs.map +1 -0
- package/dist/_chunks/ComponentIcon-CRbtQEUV.js +175 -0
- package/dist/_chunks/ComponentIcon-CRbtQEUV.js.map +1 -0
- package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs +157 -0
- package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs.map +1 -0
- package/dist/_chunks/EditConfigurationPage-CXxV7mKn.js +150 -0
- package/dist/_chunks/EditConfigurationPage-CXxV7mKn.js.map +1 -0
- package/dist/_chunks/EditConfigurationPage-YR8-4VCS.mjs +132 -0
- package/dist/_chunks/EditConfigurationPage-YR8-4VCS.mjs.map +1 -0
- package/dist/_chunks/EditViewPage-BfR6jAR6.js +209 -0
- package/dist/_chunks/EditViewPage-BfR6jAR6.js.map +1 -0
- package/dist/_chunks/EditViewPage-DFF7c27p.mjs +191 -0
- package/dist/_chunks/EditViewPage-DFF7c27p.mjs.map +1 -0
- package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs +50 -0
- package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs.map +1 -0
- package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js +49 -0
- package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js.map +1 -0
- package/dist/_chunks/Form-CjcMRP5A.js +778 -0
- package/dist/_chunks/Form-CjcMRP5A.js.map +1 -0
- package/dist/_chunks/Form-MSOSfGGN.mjs +758 -0
- package/dist/_chunks/Form-MSOSfGGN.mjs.map +1 -0
- package/dist/_chunks/History-BgZ7gVuF.js +1019 -0
- package/dist/_chunks/History-BgZ7gVuF.js.map +1 -0
- package/dist/_chunks/History-WOQNVho-.mjs +999 -0
- package/dist/_chunks/History-WOQNVho-.mjs.map +1 -0
- package/dist/_chunks/Input-BkKwZ6Qt.mjs +5585 -0
- package/dist/_chunks/Input-BkKwZ6Qt.mjs.map +1 -0
- package/dist/_chunks/Input-BwOibhc3.js +5617 -0
- package/dist/_chunks/Input-BwOibhc3.js.map +1 -0
- package/dist/_chunks/ListConfigurationPage-BeXfr6uW.mjs +633 -0
- package/dist/_chunks/ListConfigurationPage-BeXfr6uW.mjs.map +1 -0
- package/dist/_chunks/ListConfigurationPage-DnJ3nbwL.js +652 -0
- package/dist/_chunks/ListConfigurationPage-DnJ3nbwL.js.map +1 -0
- package/dist/_chunks/ListViewPage-CJFDudKl.js +877 -0
- package/dist/_chunks/ListViewPage-CJFDudKl.js.map +1 -0
- package/dist/_chunks/ListViewPage-VK2v44Q1.mjs +854 -0
- package/dist/_chunks/ListViewPage-VK2v44Q1.mjs.map +1 -0
- package/dist/_chunks/NoContentTypePage-T8ttty6K.mjs +51 -0
- package/dist/_chunks/NoContentTypePage-T8ttty6K.mjs.map +1 -0
- package/dist/_chunks/NoContentTypePage-en2PwWgI.js +51 -0
- package/dist/_chunks/NoContentTypePage-en2PwWgI.js.map +1 -0
- package/dist/_chunks/NoPermissionsPage-CcjILry3.js +23 -0
- package/dist/_chunks/NoPermissionsPage-CcjILry3.js.map +1 -0
- package/dist/_chunks/NoPermissionsPage-CokBHhhy.mjs +23 -0
- package/dist/_chunks/NoPermissionsPage-CokBHhhy.mjs.map +1 -0
- package/dist/_chunks/Preview-BF81YhRj.mjs +287 -0
- package/dist/_chunks/Preview-BF81YhRj.mjs.map +1 -0
- package/dist/_chunks/Preview-DgzAuzWQ.js +305 -0
- package/dist/_chunks/Preview-DgzAuzWQ.js.map +1 -0
- package/dist/_chunks/Relations-1O-JcM4t.js +747 -0
- package/dist/_chunks/Relations-1O-JcM4t.js.map +1 -0
- package/dist/_chunks/Relations-BncdhGCd.mjs +728 -0
- package/dist/_chunks/Relations-BncdhGCd.mjs.map +1 -0
- package/dist/_chunks/ar-BUUWXIYu.js +226 -0
- package/dist/{admin/chunks/ar-DckYq_WK.js.map → _chunks/ar-BUUWXIYu.js.map} +1 -1
- package/dist/_chunks/ar-CCEVvqGG.mjs +226 -0
- package/dist/_chunks/ar-CCEVvqGG.mjs.map +1 -0
- package/dist/_chunks/ca-5U32ON2v.mjs +201 -0
- package/dist/_chunks/ca-5U32ON2v.mjs.map +1 -0
- package/dist/_chunks/ca-Cmk45QO6.js +201 -0
- package/dist/{admin/chunks/de-CbImAUA5.js.map → _chunks/ca-Cmk45QO6.js.map} +1 -1
- package/dist/_chunks/cs-CM2aBUar.mjs +125 -0
- package/dist/_chunks/cs-CM2aBUar.mjs.map +1 -0
- package/dist/_chunks/cs-CkJy6B2v.js +125 -0
- package/dist/{admin/chunks/cs-C7OSYFQ7.js.map → _chunks/cs-CkJy6B2v.js.map} +1 -1
- package/dist/_chunks/de-C72KDNOl.mjs +199 -0
- package/dist/_chunks/de-C72KDNOl.mjs.map +1 -0
- package/dist/_chunks/de-CCEmbAah.js +199 -0
- package/dist/{admin/chunks/es-C8vLuvZL.js.map → _chunks/de-CCEmbAah.js.map} +1 -1
- package/dist/_chunks/en-BZaUty0m.mjs +311 -0
- package/dist/{admin/chunks/en-C1CjdAtC.js.map → _chunks/en-BZaUty0m.mjs.map} +1 -1
- package/dist/_chunks/en-CzCnBk4S.js +311 -0
- package/dist/{admin/chunks/en-LfhocNG2.js.map → _chunks/en-CzCnBk4S.js.map} +1 -1
- package/dist/_chunks/es-9K52xZIr.js +196 -0
- package/dist/{admin/chunks/de-5QRlDHyR.js.map → _chunks/es-9K52xZIr.js.map} +1 -1
- package/dist/_chunks/es-D34tqjMw.mjs +196 -0
- package/dist/_chunks/es-D34tqjMw.mjs.map +1 -0
- package/dist/_chunks/eu-CdALomew.mjs +202 -0
- package/dist/_chunks/eu-CdALomew.mjs.map +1 -0
- package/dist/_chunks/eu-VDH-3ovk.js +202 -0
- package/dist/_chunks/eu-VDH-3ovk.js.map +1 -0
- package/dist/_chunks/fr--pg5jUbt.mjs +216 -0
- package/dist/_chunks/fr--pg5jUbt.mjs.map +1 -0
- package/dist/_chunks/fr-B2Kyv8Z9.js +216 -0
- package/dist/_chunks/fr-B2Kyv8Z9.js.map +1 -0
- package/dist/_chunks/gu-BRmF601H.js +200 -0
- package/dist/_chunks/gu-BRmF601H.js.map +1 -0
- package/dist/_chunks/gu-CNpaMDpH.mjs +200 -0
- package/dist/_chunks/gu-CNpaMDpH.mjs.map +1 -0
- package/dist/_chunks/hi-CCJBptSq.js +200 -0
- package/dist/_chunks/hi-CCJBptSq.js.map +1 -0
- package/dist/_chunks/hi-Dwvd04m3.mjs +200 -0
- package/dist/_chunks/hi-Dwvd04m3.mjs.map +1 -0
- package/dist/{admin/chunks/hooks-D-sOYd1s.js → _chunks/hooks-BAaaKPS_.js} +3 -6
- package/dist/_chunks/hooks-BAaaKPS_.js.map +1 -0
- package/dist/_chunks/hooks-E5u1mcgM.mjs +8 -0
- package/dist/_chunks/hooks-E5u1mcgM.mjs.map +1 -0
- package/dist/_chunks/hu-CeYvaaO0.mjs +202 -0
- package/dist/_chunks/hu-CeYvaaO0.mjs.map +1 -0
- package/dist/_chunks/hu-sNV_yLYy.js +202 -0
- package/dist/_chunks/hu-sNV_yLYy.js.map +1 -0
- package/dist/_chunks/id-B5Ser98A.js +160 -0
- package/dist/{admin/chunks/it-BAHrwmYS.js.map → _chunks/id-B5Ser98A.js.map} +1 -1
- package/dist/_chunks/id-BtwA9WJT.mjs +160 -0
- package/dist/_chunks/id-BtwA9WJT.mjs.map +1 -0
- package/dist/_chunks/index-DiluOUp6.mjs +4423 -0
- package/dist/_chunks/index-DiluOUp6.mjs.map +1 -0
- package/dist/_chunks/index-EXJvmn4t.js +4442 -0
- package/dist/_chunks/index-EXJvmn4t.js.map +1 -0
- package/dist/_chunks/it-BrVPqaf1.mjs +162 -0
- package/dist/_chunks/it-BrVPqaf1.mjs.map +1 -0
- package/dist/_chunks/it-DkBIs7vD.js +162 -0
- package/dist/{admin/chunks/id-D7V5S1rB.js.map → _chunks/it-DkBIs7vD.js.map} +1 -1
- package/dist/_chunks/ja-7sfIbjxE.js +196 -0
- package/dist/{admin/chunks/it-CQFpa_Dc.js.map → _chunks/ja-7sfIbjxE.js.map} +1 -1
- package/dist/_chunks/ja-BHqhDq4V.mjs +196 -0
- package/dist/_chunks/ja-BHqhDq4V.mjs.map +1 -0
- package/dist/_chunks/ko-HVQRlfUI.mjs +195 -0
- package/dist/_chunks/ko-HVQRlfUI.mjs.map +1 -0
- package/dist/_chunks/ko-woFZPmLk.js +195 -0
- package/dist/{admin/chunks/es-DkoWSExG.js.map → _chunks/ko-woFZPmLk.js.map} +1 -1
- package/dist/_chunks/layout-4TbKVax8.js +488 -0
- package/dist/_chunks/layout-4TbKVax8.js.map +1 -0
- package/dist/_chunks/layout-mSwsYzxv.mjs +471 -0
- package/dist/_chunks/layout-mSwsYzxv.mjs.map +1 -0
- package/dist/_chunks/ml-BihZwQit.mjs +200 -0
- package/dist/_chunks/ml-BihZwQit.mjs.map +1 -0
- package/dist/_chunks/ml-C2W8N8k1.js +200 -0
- package/dist/_chunks/ml-C2W8N8k1.js.map +1 -0
- package/dist/_chunks/ms-BuFotyP_.js +144 -0
- package/dist/{admin/chunks/cs-BJFxwIWj.js.map → _chunks/ms-BuFotyP_.js.map} +1 -1
- package/dist/_chunks/ms-m_WjyWx7.mjs +144 -0
- package/dist/_chunks/ms-m_WjyWx7.mjs.map +1 -0
- package/dist/_chunks/nl-D4R9gHx5.mjs +202 -0
- package/dist/_chunks/nl-D4R9gHx5.mjs.map +1 -0
- package/dist/_chunks/nl-bbEOHChV.js +202 -0
- package/dist/_chunks/nl-bbEOHChV.js.map +1 -0
- package/dist/_chunks/objects-BcXOv6_9.js +47 -0
- package/dist/_chunks/objects-BcXOv6_9.js.map +1 -0
- package/dist/_chunks/objects-D6yBsdmx.mjs +45 -0
- package/dist/_chunks/objects-D6yBsdmx.mjs.map +1 -0
- package/dist/_chunks/pl-sbx9mSt_.mjs +199 -0
- package/dist/_chunks/pl-sbx9mSt_.mjs.map +1 -0
- package/dist/_chunks/pl-uzwG-hk7.js +199 -0
- package/dist/{admin/chunks/ca-DviY7mRj.js.map → _chunks/pl-uzwG-hk7.js.map} +1 -1
- package/dist/_chunks/pt-BR-BiOz37D9.js +201 -0
- package/dist/{admin/chunks/pt-BR-CcotyBGJ.js.map → _chunks/pt-BR-BiOz37D9.js.map} +1 -1
- package/dist/_chunks/pt-BR-C71iDxnh.mjs +201 -0
- package/dist/_chunks/pt-BR-C71iDxnh.mjs.map +1 -0
- package/dist/_chunks/pt-BsaFvS8-.mjs +95 -0
- package/dist/_chunks/pt-BsaFvS8-.mjs.map +1 -0
- package/dist/_chunks/pt-CeXQuq50.js +95 -0
- package/dist/_chunks/pt-CeXQuq50.js.map +1 -0
- package/dist/_chunks/relations--YOvQBqv.mjs +134 -0
- package/dist/_chunks/relations--YOvQBqv.mjs.map +1 -0
- package/dist/_chunks/relations-Ai6Izh7h.js +133 -0
- package/dist/_chunks/relations-Ai6Izh7h.js.map +1 -0
- package/dist/_chunks/ru-BE6A4Exp.mjs +231 -0
- package/dist/{admin/chunks/ar-DeQBSsfl.js.map → _chunks/ru-BE6A4Exp.mjs.map} +1 -1
- package/dist/_chunks/ru-BT3ybNny.js +231 -0
- package/dist/{admin/chunks/ru-CB4BUyQp.js.map → _chunks/ru-BT3ybNny.js.map} +1 -1
- package/dist/_chunks/sa-CcvkYInH.js +200 -0
- package/dist/_chunks/sa-CcvkYInH.js.map +1 -0
- package/dist/_chunks/sa-Dag0k-Z8.mjs +200 -0
- package/dist/_chunks/sa-Dag0k-Z8.mjs.map +1 -0
- package/dist/_chunks/sk-BFg-R8qJ.mjs +202 -0
- package/dist/_chunks/sk-BFg-R8qJ.mjs.map +1 -0
- package/dist/_chunks/sk-CvY09Xjv.js +202 -0
- package/dist/_chunks/sk-CvY09Xjv.js.map +1 -0
- package/dist/_chunks/sv-CUnfWGsh.mjs +202 -0
- package/dist/_chunks/sv-CUnfWGsh.mjs.map +1 -0
- package/dist/_chunks/sv-MYDuzgvT.js +202 -0
- package/dist/_chunks/sv-MYDuzgvT.js.map +1 -0
- package/dist/_chunks/th-BqbI8lIT.mjs +148 -0
- package/dist/_chunks/th-BqbI8lIT.mjs.map +1 -0
- package/dist/_chunks/th-D9_GfAjc.js +148 -0
- package/dist/{admin/chunks/ms-CvSC0OdG.js.map → _chunks/th-D9_GfAjc.js.map} +1 -1
- package/dist/_chunks/tr-CgeK3wJM.mjs +199 -0
- package/dist/_chunks/tr-CgeK3wJM.mjs.map +1 -0
- package/dist/_chunks/tr-D9UH-O_R.js +199 -0
- package/dist/_chunks/tr-D9UH-O_R.js.map +1 -0
- package/dist/_chunks/uk-C8EiqJY7.js +144 -0
- package/dist/{admin/chunks/ms-Bh09NFff.js.map → _chunks/uk-C8EiqJY7.js.map} +1 -1
- package/dist/_chunks/uk-CR-zDhAY.mjs +144 -0
- package/dist/_chunks/uk-CR-zDhAY.mjs.map +1 -0
- package/dist/_chunks/useDragAndDrop-BMtgCYzL.js +245 -0
- package/dist/_chunks/useDragAndDrop-BMtgCYzL.js.map +1 -0
- package/dist/_chunks/useDragAndDrop-DJ6jqvZN.mjs +228 -0
- package/dist/_chunks/useDragAndDrop-DJ6jqvZN.mjs.map +1 -0
- package/dist/_chunks/usePrev-CZGy2Vjf.mjs +29 -0
- package/dist/_chunks/usePrev-CZGy2Vjf.mjs.map +1 -0
- package/dist/_chunks/usePrev-D5J_2fEu.js +28 -0
- package/dist/_chunks/usePrev-D5J_2fEu.js.map +1 -0
- package/dist/_chunks/vi-CJlYDheJ.js +111 -0
- package/dist/{admin/chunks/vi-CvBGlTjr.js.map → _chunks/vi-CJlYDheJ.js.map} +1 -1
- package/dist/_chunks/vi-DUXIk_fw.mjs +111 -0
- package/dist/_chunks/vi-DUXIk_fw.mjs.map +1 -0
- package/dist/_chunks/zh-BWZspA60.mjs +209 -0
- package/dist/_chunks/zh-BWZspA60.mjs.map +1 -0
- package/dist/_chunks/zh-CQQfszqR.js +209 -0
- package/dist/{admin/chunks/ca-ClDTvatJ.js.map → _chunks/zh-CQQfszqR.js.map} +1 -1
- package/dist/_chunks/zh-Hans-9kOncHGw.js +952 -0
- package/dist/{admin/chunks/zh-Hans-CI0HKio3.js.map → _chunks/zh-Hans-9kOncHGw.js.map} +1 -1
- package/dist/_chunks/zh-Hans-BPQcRIyH.mjs +952 -0
- package/dist/{admin/chunks/zh-Hans-JVK9x7xr.js.map → _chunks/zh-Hans-BPQcRIyH.mjs.map} +1 -1
- package/dist/admin/index.js +4 -23
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +13 -16
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useDocument.d.ts +2 -2
- package/dist/admin/src/preview/components/PreviewContent.d.ts +1 -2
- package/dist/admin/src/preview/components/PreviewHeader.d.ts +1 -2
- package/dist/admin/src/preview/index.d.ts +3 -2
- package/dist/server/index.js +4396 -5468
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +4368 -5442
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/utils/metadata.d.ts +1 -1
- package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/services/utils/count.d.ts +1 -1
- package/dist/server/src/services/utils/count.d.ts.map +1 -1
- package/dist/server/src/services/utils/populate.d.ts +1 -1
- package/dist/server/src/services/utils/populate.d.ts.map +1 -1
- package/dist/shared/contracts/collection-types.d.ts +1 -0
- package/dist/shared/contracts/components.d.ts +1 -0
- package/dist/shared/contracts/content-types.d.ts +1 -0
- package/dist/shared/contracts/history-versions.d.ts +1 -0
- package/dist/shared/contracts/index.d.ts +1 -0
- package/dist/shared/contracts/init.d.ts +1 -0
- package/dist/shared/contracts/preview.d.ts +1 -0
- package/dist/shared/contracts/relations.d.ts +2 -1
- package/dist/shared/contracts/relations.d.ts.map +1 -1
- package/dist/shared/contracts/review-workflows.d.ts +1 -0
- package/dist/shared/contracts/single-types.d.ts +1 -0
- package/dist/shared/contracts/uid.d.ts +1 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.js +24 -35
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +25 -34
- package/dist/shared/index.mjs.map +1 -1
- package/package.json +10 -13
- package/dist/admin/chunks/CardDragPreview-DwuraT0K.js +0 -80
- package/dist/admin/chunks/CardDragPreview-DwuraT0K.js.map +0 -1
- package/dist/admin/chunks/CardDragPreview-_dubYgXO.js +0 -82
- package/dist/admin/chunks/CardDragPreview-_dubYgXO.js.map +0 -1
- package/dist/admin/chunks/ComponentConfigurationPage-Co2eC_-C.js +0 -276
- package/dist/admin/chunks/ComponentConfigurationPage-Co2eC_-C.js.map +0 -1
- package/dist/admin/chunks/ComponentConfigurationPage-Dj1bNvEF.js +0 -298
- package/dist/admin/chunks/ComponentConfigurationPage-Dj1bNvEF.js.map +0 -1
- package/dist/admin/chunks/ComponentIcon-BZcTc4rj.js +0 -153
- package/dist/admin/chunks/ComponentIcon-BZcTc4rj.js.map +0 -1
- package/dist/admin/chunks/ComponentIcon-C-EjOUPA.js +0 -176
- package/dist/admin/chunks/ComponentIcon-C-EjOUPA.js.map +0 -1
- package/dist/admin/chunks/EditConfigurationPage-Dm5woBp9.js +0 -180
- package/dist/admin/chunks/EditConfigurationPage-Dm5woBp9.js.map +0 -1
- package/dist/admin/chunks/EditConfigurationPage-zd9OLaVh.js +0 -158
- package/dist/admin/chunks/EditConfigurationPage-zd9OLaVh.js.map +0 -1
- package/dist/admin/chunks/EditViewPage-DsBKmSPb.js +0 -337
- package/dist/admin/chunks/EditViewPage-DsBKmSPb.js.map +0 -1
- package/dist/admin/chunks/EditViewPage-kAIaYTg0.js +0 -314
- package/dist/admin/chunks/EditViewPage-kAIaYTg0.js.map +0 -1
- package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.js +0 -56
- package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.js.map +0 -1
- package/dist/admin/chunks/FieldTypeIcon-Bxh-7Jin.js +0 -58
- package/dist/admin/chunks/FieldTypeIcon-Bxh-7Jin.js.map +0 -1
- package/dist/admin/chunks/Form-BO69oITe.js +0 -955
- package/dist/admin/chunks/Form-BO69oITe.js.map +0 -1
- package/dist/admin/chunks/Form-BPIhJKyf.js +0 -978
- package/dist/admin/chunks/Form-BPIhJKyf.js.map +0 -1
- package/dist/admin/chunks/History-BzvpM-Gw.js +0 -1357
- package/dist/admin/chunks/History-BzvpM-Gw.js.map +0 -1
- package/dist/admin/chunks/History-DBQ96jv2.js +0 -1380
- package/dist/admin/chunks/History-DBQ96jv2.js.map +0 -1
- package/dist/admin/chunks/Input-BlDcbhUC.js +0 -6755
- package/dist/admin/chunks/Input-BlDcbhUC.js.map +0 -1
- package/dist/admin/chunks/Input-Dh1MtWno.js +0 -6786
- package/dist/admin/chunks/Input-Dh1MtWno.js.map +0 -1
- package/dist/admin/chunks/ListConfigurationPage-8d3BsQIr.js +0 -818
- package/dist/admin/chunks/ListConfigurationPage-8d3BsQIr.js.map +0 -1
- package/dist/admin/chunks/ListConfigurationPage-DK0ARecn.js +0 -795
- package/dist/admin/chunks/ListConfigurationPage-DK0ARecn.js.map +0 -1
- package/dist/admin/chunks/ListViewPage-BF2q7N6W.js +0 -1132
- package/dist/admin/chunks/ListViewPage-BF2q7N6W.js.map +0 -1
- package/dist/admin/chunks/ListViewPage-CS1ED-vI.js +0 -1154
- package/dist/admin/chunks/ListViewPage-CS1ED-vI.js.map +0 -1
- package/dist/admin/chunks/NoContentTypePage-C5Qxz3I4.js +0 -59
- package/dist/admin/chunks/NoContentTypePage-C5Qxz3I4.js.map +0 -1
- package/dist/admin/chunks/NoContentTypePage-DjdXr1-j.js +0 -57
- package/dist/admin/chunks/NoContentTypePage-DjdXr1-j.js.map +0 -1
- package/dist/admin/chunks/NoPermissionsPage-BUwtKUEP.js +0 -36
- package/dist/admin/chunks/NoPermissionsPage-BUwtKUEP.js.map +0 -1
- package/dist/admin/chunks/NoPermissionsPage-C5dC0MtL.js +0 -38
- package/dist/admin/chunks/NoPermissionsPage-C5dC0MtL.js.map +0 -1
- package/dist/admin/chunks/Preview-C9kXTY6C.js +0 -531
- package/dist/admin/chunks/Preview-C9kXTY6C.js.map +0 -1
- package/dist/admin/chunks/Preview-DBvmhR7Q.js +0 -553
- package/dist/admin/chunks/Preview-DBvmhR7Q.js.map +0 -1
- package/dist/admin/chunks/Relations-Cn0atFpd.js +0 -827
- package/dist/admin/chunks/Relations-Cn0atFpd.js.map +0 -1
- package/dist/admin/chunks/Relations-XHxDKEvT.js +0 -853
- package/dist/admin/chunks/Relations-XHxDKEvT.js.map +0 -1
- package/dist/admin/chunks/ar-DckYq_WK.js +0 -222
- package/dist/admin/chunks/ar-DeQBSsfl.js +0 -227
- package/dist/admin/chunks/ca-ClDTvatJ.js +0 -202
- package/dist/admin/chunks/ca-DviY7mRj.js +0 -197
- package/dist/admin/chunks/cs-BJFxwIWj.js +0 -126
- package/dist/admin/chunks/cs-C7OSYFQ7.js +0 -122
- package/dist/admin/chunks/de-5QRlDHyR.js +0 -195
- package/dist/admin/chunks/de-CbImAUA5.js +0 -200
- package/dist/admin/chunks/en-C1CjdAtC.js +0 -313
- package/dist/admin/chunks/en-LfhocNG2.js +0 -308
- package/dist/admin/chunks/es-C8vLuvZL.js +0 -197
- package/dist/admin/chunks/es-DkoWSExG.js +0 -192
- package/dist/admin/chunks/eu-BG1xX7HK.js +0 -198
- package/dist/admin/chunks/eu-BG1xX7HK.js.map +0 -1
- package/dist/admin/chunks/eu-BJW3AvXu.js +0 -203
- package/dist/admin/chunks/eu-BJW3AvXu.js.map +0 -1
- package/dist/admin/chunks/fr-CFdRaRVj.js +0 -215
- package/dist/admin/chunks/fr-CFdRaRVj.js.map +0 -1
- package/dist/admin/chunks/fr-gQSilC7w.js +0 -220
- package/dist/admin/chunks/fr-gQSilC7w.js.map +0 -1
- package/dist/admin/chunks/gu-D5MMMXRs.js +0 -196
- package/dist/admin/chunks/gu-D5MMMXRs.js.map +0 -1
- package/dist/admin/chunks/gu-DPU4wyx7.js +0 -201
- package/dist/admin/chunks/gu-DPU4wyx7.js.map +0 -1
- package/dist/admin/chunks/hi-Dp4omeBb.js +0 -201
- package/dist/admin/chunks/hi-Dp4omeBb.js.map +0 -1
- package/dist/admin/chunks/hi-lp17SCjr.js +0 -196
- package/dist/admin/chunks/hi-lp17SCjr.js.map +0 -1
- package/dist/admin/chunks/hooks-D-sOYd1s.js.map +0 -1
- package/dist/admin/chunks/hooks-DMvik5y_.js +0 -7
- package/dist/admin/chunks/hooks-DMvik5y_.js.map +0 -1
- package/dist/admin/chunks/hu-CLka1U2C.js +0 -198
- package/dist/admin/chunks/hu-CLka1U2C.js.map +0 -1
- package/dist/admin/chunks/hu-CtFJuhTd.js +0 -203
- package/dist/admin/chunks/hu-CtFJuhTd.js.map +0 -1
- package/dist/admin/chunks/id-D7V5S1rB.js +0 -161
- package/dist/admin/chunks/id-USfY9m1g.js +0 -156
- package/dist/admin/chunks/id-USfY9m1g.js.map +0 -1
- package/dist/admin/chunks/index-BczuAULz.js +0 -5416
- package/dist/admin/chunks/index-BczuAULz.js.map +0 -1
- package/dist/admin/chunks/index-BkyR-Bnu.js +0 -5350
- package/dist/admin/chunks/index-BkyR-Bnu.js.map +0 -1
- package/dist/admin/chunks/it-BAHrwmYS.js +0 -158
- package/dist/admin/chunks/it-CQFpa_Dc.js +0 -163
- package/dist/admin/chunks/ja-BWKmBJFT.js +0 -192
- package/dist/admin/chunks/ja-BWKmBJFT.js.map +0 -1
- package/dist/admin/chunks/ja-jdQM-B79.js +0 -197
- package/dist/admin/chunks/ja-jdQM-B79.js.map +0 -1
- package/dist/admin/chunks/ko-CgADGBNt.js +0 -191
- package/dist/admin/chunks/ko-CgADGBNt.js.map +0 -1
- package/dist/admin/chunks/ko-k46sEyzt.js +0 -196
- package/dist/admin/chunks/ko-k46sEyzt.js.map +0 -1
- package/dist/admin/chunks/layout-DcDoRT8g.js +0 -618
- package/dist/admin/chunks/layout-DcDoRT8g.js.map +0 -1
- package/dist/admin/chunks/layout-fghBgRgX.js +0 -598
- package/dist/admin/chunks/layout-fghBgRgX.js.map +0 -1
- package/dist/admin/chunks/ml-CnhCfOn_.js +0 -196
- package/dist/admin/chunks/ml-CnhCfOn_.js.map +0 -1
- package/dist/admin/chunks/ml-DqxPwODx.js +0 -201
- package/dist/admin/chunks/ml-DqxPwODx.js.map +0 -1
- package/dist/admin/chunks/ms-Bh09NFff.js +0 -140
- package/dist/admin/chunks/ms-CvSC0OdG.js +0 -145
- package/dist/admin/chunks/nl-BEubhS8C.js +0 -203
- package/dist/admin/chunks/nl-BEubhS8C.js.map +0 -1
- package/dist/admin/chunks/nl-C8HYflTc.js +0 -198
- package/dist/admin/chunks/nl-C8HYflTc.js.map +0 -1
- package/dist/admin/chunks/objects-C3EebVVe.js +0 -76
- package/dist/admin/chunks/objects-C3EebVVe.js.map +0 -1
- package/dist/admin/chunks/objects-wl73iEma.js +0 -73
- package/dist/admin/chunks/objects-wl73iEma.js.map +0 -1
- package/dist/admin/chunks/pl-DWhGDzmM.js +0 -200
- package/dist/admin/chunks/pl-DWhGDzmM.js.map +0 -1
- package/dist/admin/chunks/pl-MFCZJZuZ.js +0 -195
- package/dist/admin/chunks/pl-MFCZJZuZ.js.map +0 -1
- package/dist/admin/chunks/pt-BR-CPtAXD-4.js +0 -202
- package/dist/admin/chunks/pt-BR-CPtAXD-4.js.map +0 -1
- package/dist/admin/chunks/pt-BR-CcotyBGJ.js +0 -197
- package/dist/admin/chunks/pt-BoPxN80n.js +0 -96
- package/dist/admin/chunks/pt-BoPxN80n.js.map +0 -1
- package/dist/admin/chunks/pt-HbmgeiYO.js +0 -93
- package/dist/admin/chunks/pt-HbmgeiYO.js.map +0 -1
- package/dist/admin/chunks/relations-CgaydhiM.js +0 -178
- package/dist/admin/chunks/relations-CgaydhiM.js.map +0 -1
- package/dist/admin/chunks/relations-DPVgU_rq.js +0 -173
- package/dist/admin/chunks/relations-DPVgU_rq.js.map +0 -1
- package/dist/admin/chunks/ru-C0op0ALG.js +0 -232
- package/dist/admin/chunks/ru-C0op0ALG.js.map +0 -1
- package/dist/admin/chunks/ru-CB4BUyQp.js +0 -230
- package/dist/admin/chunks/sa-B_FuPyMw.js +0 -201
- package/dist/admin/chunks/sa-B_FuPyMw.js.map +0 -1
- package/dist/admin/chunks/sa-n_aPA-pU.js +0 -196
- package/dist/admin/chunks/sa-n_aPA-pU.js.map +0 -1
- package/dist/admin/chunks/sk-D_iXML2C.js +0 -203
- package/dist/admin/chunks/sk-D_iXML2C.js.map +0 -1
- package/dist/admin/chunks/sk-tn_BDjE2.js +0 -198
- package/dist/admin/chunks/sk-tn_BDjE2.js.map +0 -1
- package/dist/admin/chunks/sv-BstBC1Yp.js +0 -203
- package/dist/admin/chunks/sv-BstBC1Yp.js.map +0 -1
- package/dist/admin/chunks/sv-cq4ZrQRd.js +0 -198
- package/dist/admin/chunks/sv-cq4ZrQRd.js.map +0 -1
- package/dist/admin/chunks/th-lXoOCqPC.js +0 -149
- package/dist/admin/chunks/th-lXoOCqPC.js.map +0 -1
- package/dist/admin/chunks/th-mUH7hEtc.js +0 -144
- package/dist/admin/chunks/th-mUH7hEtc.js.map +0 -1
- package/dist/admin/chunks/tr-CkS6sLIE.js +0 -200
- package/dist/admin/chunks/tr-CkS6sLIE.js.map +0 -1
- package/dist/admin/chunks/tr-Yt38daxh.js +0 -195
- package/dist/admin/chunks/tr-Yt38daxh.js.map +0 -1
- package/dist/admin/chunks/uk-B24MoTVg.js +0 -145
- package/dist/admin/chunks/uk-B24MoTVg.js.map +0 -1
- package/dist/admin/chunks/uk-Cpgmm7gE.js +0 -140
- package/dist/admin/chunks/uk-Cpgmm7gE.js.map +0 -1
- package/dist/admin/chunks/useDragAndDrop-HYwNDExe.js +0 -247
- package/dist/admin/chunks/useDragAndDrop-HYwNDExe.js.map +0 -1
- package/dist/admin/chunks/useDragAndDrop-gcqEJMnO.js +0 -271
- package/dist/admin/chunks/useDragAndDrop-gcqEJMnO.js.map +0 -1
- package/dist/admin/chunks/usePrev-Bjw2dhmq.js +0 -18
- package/dist/admin/chunks/usePrev-Bjw2dhmq.js.map +0 -1
- package/dist/admin/chunks/usePrev-DIYl-IAL.js +0 -21
- package/dist/admin/chunks/usePrev-DIYl-IAL.js.map +0 -1
- package/dist/admin/chunks/vi-BGr1X_HZ.js +0 -112
- package/dist/admin/chunks/vi-BGr1X_HZ.js.map +0 -1
- package/dist/admin/chunks/vi-CvBGlTjr.js +0 -108
- package/dist/admin/chunks/zh-BmF-sHaT.js +0 -205
- package/dist/admin/chunks/zh-BmF-sHaT.js.map +0 -1
- package/dist/admin/chunks/zh-DwFu_Kfj.js +0 -210
- package/dist/admin/chunks/zh-DwFu_Kfj.js.map +0 -1
- package/dist/admin/chunks/zh-Hans-CI0HKio3.js +0 -934
- package/dist/admin/chunks/zh-Hans-JVK9x7xr.js +0 -953
@@ -0,0 +1,488 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
4
|
+
const React = require("react");
|
5
|
+
const strapiAdmin = require("@strapi/admin/strapi-admin");
|
6
|
+
const reactIntl = require("react-intl");
|
7
|
+
const reactRouterDom = require("react-router-dom");
|
8
|
+
const designSystem = require("@strapi/design-system");
|
9
|
+
const reactDnd = require("react-dnd");
|
10
|
+
const CardDragPreview = require("./CardDragPreview-C0QyJgRA.js");
|
11
|
+
const Icons = require("@strapi/icons");
|
12
|
+
const styledComponents = require("styled-components");
|
13
|
+
const index = require("./index-EXJvmn4t.js");
|
14
|
+
const Relations = require("./Relations-1O-JcM4t.js");
|
15
|
+
const qs = require("qs");
|
16
|
+
const hooks = require("./hooks-BAaaKPS_.js");
|
17
|
+
const useDragAndDrop = require("./useDragAndDrop-BMtgCYzL.js");
|
18
|
+
function _interopNamespace(e) {
|
19
|
+
if (e && e.__esModule) return e;
|
20
|
+
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
21
|
+
if (e) {
|
22
|
+
for (const k in e) {
|
23
|
+
if (k !== "default") {
|
24
|
+
const d = Object.getOwnPropertyDescriptor(e, k);
|
25
|
+
Object.defineProperty(n, k, d.get ? d : {
|
26
|
+
enumerable: true,
|
27
|
+
get: () => e[k]
|
28
|
+
});
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
n.default = e;
|
33
|
+
return Object.freeze(n);
|
34
|
+
}
|
35
|
+
const React__namespace = /* @__PURE__ */ _interopNamespace(React);
|
36
|
+
function getStyle(initialOffset, currentOffset, mouseOffset) {
|
37
|
+
if (!initialOffset || !currentOffset || !mouseOffset) {
|
38
|
+
return { display: "none" };
|
39
|
+
}
|
40
|
+
const { x, y } = mouseOffset;
|
41
|
+
return {
|
42
|
+
transform: `translate(${x}px, ${y}px)`
|
43
|
+
};
|
44
|
+
}
|
45
|
+
const DragLayer = ({ renderItem }) => {
|
46
|
+
const { itemType, isDragging, item, initialOffset, currentOffset, mouseOffset } = reactDnd.useDragLayer(
|
47
|
+
(monitor) => ({
|
48
|
+
item: monitor.getItem(),
|
49
|
+
itemType: monitor.getItemType(),
|
50
|
+
initialOffset: monitor.getInitialSourceClientOffset(),
|
51
|
+
currentOffset: monitor.getSourceClientOffset(),
|
52
|
+
isDragging: monitor.isDragging(),
|
53
|
+
mouseOffset: monitor.getClientOffset()
|
54
|
+
})
|
55
|
+
);
|
56
|
+
if (!isDragging) {
|
57
|
+
return null;
|
58
|
+
}
|
59
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
60
|
+
designSystem.Box,
|
61
|
+
{
|
62
|
+
height: "100%",
|
63
|
+
left: 0,
|
64
|
+
position: "fixed",
|
65
|
+
pointerEvents: "none",
|
66
|
+
top: 0,
|
67
|
+
zIndex: 100,
|
68
|
+
width: "100%",
|
69
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { style: getStyle(initialOffset, currentOffset, mouseOffset), children: renderItem({ type: itemType, item }) })
|
70
|
+
}
|
71
|
+
);
|
72
|
+
};
|
73
|
+
const ComponentDragPreview = ({ displayedValue }) => {
|
74
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
75
|
+
designSystem.Flex,
|
76
|
+
{
|
77
|
+
background: "neutral0",
|
78
|
+
borderColor: "neutral200",
|
79
|
+
justifyContent: "space-between",
|
80
|
+
gap: 3,
|
81
|
+
padding: 3,
|
82
|
+
width: "30rem",
|
83
|
+
children: [
|
84
|
+
/* @__PURE__ */ jsxRuntime.jsx(ToggleButton, { type: "button", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 6, children: [
|
85
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
86
|
+
DropdownIconWrapper,
|
87
|
+
{
|
88
|
+
alignItems: "center",
|
89
|
+
justifyContent: "center",
|
90
|
+
background: "neutral200",
|
91
|
+
height: "3.2rem",
|
92
|
+
width: "3.2rem",
|
93
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.CaretDown, {})
|
94
|
+
}
|
95
|
+
),
|
96
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { maxWidth: "15rem", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral700", ellipsis: true, children: displayedValue }) })
|
97
|
+
] }) }),
|
98
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
99
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { withTooltip: false, label: "", variant: "ghost", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Trash, {}) }),
|
100
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { withTooltip: false, label: "", variant: "ghost", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Drag, {}) })
|
101
|
+
] })
|
102
|
+
]
|
103
|
+
}
|
104
|
+
);
|
105
|
+
};
|
106
|
+
const DropdownIconWrapper = styledComponents.styled(designSystem.Flex)`
|
107
|
+
border-radius: 50%;
|
108
|
+
|
109
|
+
svg {
|
110
|
+
height: 0.6rem;
|
111
|
+
width: 1.1rem;
|
112
|
+
> path {
|
113
|
+
fill: ${({ theme }) => theme.colors.neutral600};
|
114
|
+
}
|
115
|
+
}
|
116
|
+
`;
|
117
|
+
const ToggleButton = styledComponents.styled.button`
|
118
|
+
border: none;
|
119
|
+
background: transparent;
|
120
|
+
display: block;
|
121
|
+
width: 100%;
|
122
|
+
text-align: unset;
|
123
|
+
padding: 0;
|
124
|
+
`;
|
125
|
+
const RelationDragPreview = ({ status, displayedValue, width }) => {
|
126
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { style: { width }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
127
|
+
designSystem.Flex,
|
128
|
+
{
|
129
|
+
paddingTop: 2,
|
130
|
+
paddingBottom: 2,
|
131
|
+
paddingLeft: 2,
|
132
|
+
paddingRight: 4,
|
133
|
+
hasRadius: true,
|
134
|
+
borderWidth: 1,
|
135
|
+
background: "neutral0",
|
136
|
+
borderColor: "neutral200",
|
137
|
+
justifyContent: "space-between",
|
138
|
+
gap: 4,
|
139
|
+
children: [
|
140
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Relations.FlexWrapper, { gap: 1, children: [
|
141
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { withTooltip: false, label: "", variant: "ghost", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Drag, {}) }),
|
142
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { width: "100%", minWidth: 0, justifyContent: "space-between", children: [
|
143
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { minWidth: 0, paddingTop: 1, paddingBottom: 1, paddingRight: 4, children: /* @__PURE__ */ jsxRuntime.jsx(Relations.LinkEllipsis, { href: "", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "primary600", ellipsis: true, children: displayedValue }) }) }),
|
144
|
+
status ? /* @__PURE__ */ jsxRuntime.jsx(index.DocumentStatus, { status }) : null
|
145
|
+
] })
|
146
|
+
] }),
|
147
|
+
/* @__PURE__ */ jsxRuntime.jsx(Relations.DisconnectButton, { type: "button", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Cross, { width: "12px" }) })
|
148
|
+
]
|
149
|
+
}
|
150
|
+
) });
|
151
|
+
};
|
152
|
+
const SubNavLinkCustom = styledComponents.styled(designSystem.SubNavLink)`
|
153
|
+
div {
|
154
|
+
width: inherit;
|
155
|
+
span:nth-child(2) {
|
156
|
+
white-space: nowrap;
|
157
|
+
overflow: hidden;
|
158
|
+
text-overflow: ellipsis;
|
159
|
+
width: inherit;
|
160
|
+
}
|
161
|
+
}
|
162
|
+
`;
|
163
|
+
const LeftMenu = () => {
|
164
|
+
const [search, setSearch] = React__namespace.useState("");
|
165
|
+
const [{ query }] = strapiAdmin.useQueryParams();
|
166
|
+
const { formatMessage, locale } = reactIntl.useIntl();
|
167
|
+
const collectionTypeLinks = hooks.useTypedSelector(
|
168
|
+
(state) => state["content-manager"].app.collectionTypeLinks
|
169
|
+
);
|
170
|
+
const singleTypeLinks = hooks.useTypedSelector((state) => state["content-manager"].app.singleTypeLinks);
|
171
|
+
const { schemas } = index.useContentTypeSchema();
|
172
|
+
const { startsWith } = designSystem.useFilter(locale, {
|
173
|
+
sensitivity: "base"
|
174
|
+
});
|
175
|
+
const formatter = designSystem.useCollator(locale, {
|
176
|
+
sensitivity: "base"
|
177
|
+
});
|
178
|
+
const menu = React__namespace.useMemo(
|
179
|
+
() => [
|
180
|
+
{
|
181
|
+
id: "collectionTypes",
|
182
|
+
title: formatMessage({
|
183
|
+
id: index.getTranslation("components.LeftMenu.collection-types"),
|
184
|
+
defaultMessage: "Collection Types"
|
185
|
+
}),
|
186
|
+
searchable: true,
|
187
|
+
links: collectionTypeLinks
|
188
|
+
},
|
189
|
+
{
|
190
|
+
id: "singleTypes",
|
191
|
+
title: formatMessage({
|
192
|
+
id: index.getTranslation("components.LeftMenu.single-types"),
|
193
|
+
defaultMessage: "Single Types"
|
194
|
+
}),
|
195
|
+
searchable: true,
|
196
|
+
links: singleTypeLinks
|
197
|
+
}
|
198
|
+
].map((section) => ({
|
199
|
+
...section,
|
200
|
+
links: section.links.filter((link) => startsWith(link.title, search)).sort((a, b) => formatter.compare(a.title, b.title)).map((link) => {
|
201
|
+
return {
|
202
|
+
...link,
|
203
|
+
title: formatMessage({ id: link.title, defaultMessage: link.title })
|
204
|
+
};
|
205
|
+
})
|
206
|
+
})),
|
207
|
+
[collectionTypeLinks, search, singleTypeLinks, startsWith, formatMessage, formatter]
|
208
|
+
);
|
209
|
+
const handleClear = () => {
|
210
|
+
setSearch("");
|
211
|
+
};
|
212
|
+
const handleChangeSearch = ({ target: { value } }) => {
|
213
|
+
setSearch(value);
|
214
|
+
};
|
215
|
+
const label = formatMessage({
|
216
|
+
id: index.getTranslation("header.name"),
|
217
|
+
defaultMessage: "Content Manager"
|
218
|
+
});
|
219
|
+
const getPluginsParamsForLink = (link) => {
|
220
|
+
const schema = schemas.find((schema2) => schema2.uid === link.uid);
|
221
|
+
const isI18nEnabled = Boolean(schema?.pluginOptions?.i18n?.localized);
|
222
|
+
if (query.plugins && "i18n" in query.plugins) {
|
223
|
+
const { i18n, ...restPlugins } = query.plugins;
|
224
|
+
if (!isI18nEnabled) {
|
225
|
+
return restPlugins;
|
226
|
+
}
|
227
|
+
return { i18n, ...restPlugins };
|
228
|
+
}
|
229
|
+
return query.plugins;
|
230
|
+
};
|
231
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.SubNav, { "aria-label": label, children: [
|
232
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
233
|
+
designSystem.SubNavHeader,
|
234
|
+
{
|
235
|
+
label,
|
236
|
+
searchable: true,
|
237
|
+
value: search,
|
238
|
+
onChange: handleChangeSearch,
|
239
|
+
onClear: handleClear,
|
240
|
+
searchLabel: formatMessage({
|
241
|
+
id: "content-manager.components.LeftMenu.Search.label",
|
242
|
+
defaultMessage: "Search for a content type"
|
243
|
+
})
|
244
|
+
}
|
245
|
+
),
|
246
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SubNavSections, { children: menu.map((section) => {
|
247
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
248
|
+
designSystem.SubNavSection,
|
249
|
+
{
|
250
|
+
label: section.title,
|
251
|
+
badgeLabel: section.links.length.toString(),
|
252
|
+
children: section.links.map((link) => {
|
253
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
254
|
+
SubNavLinkCustom,
|
255
|
+
{
|
256
|
+
tag: reactRouterDom.NavLink,
|
257
|
+
to: {
|
258
|
+
pathname: link.to,
|
259
|
+
search: qs.stringify({
|
260
|
+
...qs.parse(link.search ?? ""),
|
261
|
+
plugins: getPluginsParamsForLink(link)
|
262
|
+
})
|
263
|
+
},
|
264
|
+
width: "100%",
|
265
|
+
children: link.title
|
266
|
+
},
|
267
|
+
link.uid
|
268
|
+
);
|
269
|
+
})
|
270
|
+
},
|
271
|
+
section.id
|
272
|
+
);
|
273
|
+
}) })
|
274
|
+
] });
|
275
|
+
};
|
276
|
+
const { MUTATE_COLLECTION_TYPES_LINKS, MUTATE_SINGLE_TYPES_LINKS } = index.HOOKS;
|
277
|
+
const useContentManagerInitData = () => {
|
278
|
+
const { toggleNotification } = strapiAdmin.useNotification();
|
279
|
+
const dispatch = hooks.useTypedDispatch();
|
280
|
+
const runHookWaterfall = strapiAdmin.useStrapiApp(
|
281
|
+
"useContentManagerInitData",
|
282
|
+
(state2) => state2.runHookWaterfall
|
283
|
+
);
|
284
|
+
const { notifyStatus } = designSystem.useNotifyAT();
|
285
|
+
const { formatMessage } = reactIntl.useIntl();
|
286
|
+
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler(index.getTranslation);
|
287
|
+
const checkUserHasPermissions = strapiAdmin.useAuth(
|
288
|
+
"useContentManagerInitData",
|
289
|
+
(state2) => state2.checkUserHasPermissions
|
290
|
+
);
|
291
|
+
const state = hooks.useTypedSelector((state2) => state2["content-manager"].app);
|
292
|
+
const initialDataQuery = index.useGetInitialDataQuery(void 0, {
|
293
|
+
/**
|
294
|
+
* TODO: remove this when the CTB has been refactored to use redux-toolkit-query
|
295
|
+
* and it can invalidate the cache on mutation
|
296
|
+
*/
|
297
|
+
refetchOnMountOrArgChange: true
|
298
|
+
});
|
299
|
+
React.useEffect(() => {
|
300
|
+
if (initialDataQuery.data) {
|
301
|
+
notifyStatus(
|
302
|
+
formatMessage({
|
303
|
+
id: index.getTranslation("App.schemas.data-loaded"),
|
304
|
+
defaultMessage: "The schemas have been successfully loaded."
|
305
|
+
})
|
306
|
+
);
|
307
|
+
}
|
308
|
+
}, [formatMessage, initialDataQuery.data, notifyStatus]);
|
309
|
+
React.useEffect(() => {
|
310
|
+
if (initialDataQuery.error) {
|
311
|
+
toggleNotification({ type: "danger", message: formatAPIError(initialDataQuery.error) });
|
312
|
+
}
|
313
|
+
}, [formatAPIError, initialDataQuery.error, toggleNotification]);
|
314
|
+
const contentTypeSettingsQuery = index.useGetAllContentTypeSettingsQuery();
|
315
|
+
React.useEffect(() => {
|
316
|
+
if (contentTypeSettingsQuery.error) {
|
317
|
+
toggleNotification({
|
318
|
+
type: "danger",
|
319
|
+
message: formatAPIError(contentTypeSettingsQuery.error)
|
320
|
+
});
|
321
|
+
}
|
322
|
+
}, [formatAPIError, contentTypeSettingsQuery.error, toggleNotification]);
|
323
|
+
const formatData = async (components, contentTypes, fieldSizes, contentTypeConfigurations) => {
|
324
|
+
const { collectionType: collectionTypeLinks, singleType: singleTypeLinks } = contentTypes.reduce(
|
325
|
+
(acc, model) => {
|
326
|
+
acc[model.kind].push(model);
|
327
|
+
return acc;
|
328
|
+
},
|
329
|
+
{
|
330
|
+
collectionType: [],
|
331
|
+
singleType: []
|
332
|
+
}
|
333
|
+
);
|
334
|
+
const collectionTypeSectionLinks = generateLinks(
|
335
|
+
collectionTypeLinks,
|
336
|
+
"collectionTypes",
|
337
|
+
contentTypeConfigurations
|
338
|
+
);
|
339
|
+
const singleTypeSectionLinks = generateLinks(singleTypeLinks, "singleTypes");
|
340
|
+
const collectionTypeLinksPermissions = await Promise.all(
|
341
|
+
collectionTypeSectionLinks.map(({ permissions }) => checkUserHasPermissions(permissions))
|
342
|
+
);
|
343
|
+
const authorizedCollectionTypeLinks = collectionTypeSectionLinks.filter(
|
344
|
+
(_, index2) => collectionTypeLinksPermissions[index2].length > 0
|
345
|
+
);
|
346
|
+
const singleTypeLinksPermissions = await Promise.all(
|
347
|
+
singleTypeSectionLinks.map(({ permissions }) => checkUserHasPermissions(permissions))
|
348
|
+
);
|
349
|
+
const authorizedSingleTypeLinks = singleTypeSectionLinks.filter(
|
350
|
+
(_, index2) => singleTypeLinksPermissions[index2].length > 0
|
351
|
+
);
|
352
|
+
const { ctLinks } = runHookWaterfall(MUTATE_COLLECTION_TYPES_LINKS, {
|
353
|
+
ctLinks: authorizedCollectionTypeLinks,
|
354
|
+
models: contentTypes
|
355
|
+
});
|
356
|
+
const { stLinks } = runHookWaterfall(MUTATE_SINGLE_TYPES_LINKS, {
|
357
|
+
stLinks: authorizedSingleTypeLinks,
|
358
|
+
models: contentTypes
|
359
|
+
});
|
360
|
+
dispatch(
|
361
|
+
index.setInitialData({
|
362
|
+
authorizedCollectionTypeLinks: ctLinks,
|
363
|
+
authorizedSingleTypeLinks: stLinks,
|
364
|
+
components,
|
365
|
+
contentTypeSchemas: contentTypes,
|
366
|
+
fieldSizes
|
367
|
+
})
|
368
|
+
);
|
369
|
+
};
|
370
|
+
React.useEffect(() => {
|
371
|
+
if (initialDataQuery.data && contentTypeSettingsQuery.data) {
|
372
|
+
formatData(
|
373
|
+
initialDataQuery.data.components,
|
374
|
+
initialDataQuery.data.contentTypes,
|
375
|
+
initialDataQuery.data.fieldSizes,
|
376
|
+
contentTypeSettingsQuery.data
|
377
|
+
);
|
378
|
+
}
|
379
|
+
}, [initialDataQuery.data, contentTypeSettingsQuery.data]);
|
380
|
+
return { ...state };
|
381
|
+
};
|
382
|
+
const generateLinks = (links, type, configurations = []) => {
|
383
|
+
return links.filter((link) => link.isDisplayed).map((link) => {
|
384
|
+
const collectionTypesPermissions = [
|
385
|
+
{ action: "plugin::content-manager.explorer.create", subject: link.uid },
|
386
|
+
{ action: "plugin::content-manager.explorer.read", subject: link.uid }
|
387
|
+
];
|
388
|
+
const singleTypesPermissions = [
|
389
|
+
{ action: "plugin::content-manager.explorer.read", subject: link.uid }
|
390
|
+
];
|
391
|
+
const permissions = type === "collectionTypes" ? collectionTypesPermissions : singleTypesPermissions;
|
392
|
+
const currentContentTypeConfig = configurations.find(({ uid }) => uid === link.uid);
|
393
|
+
let search = null;
|
394
|
+
if (currentContentTypeConfig) {
|
395
|
+
const searchParams = {
|
396
|
+
page: 1,
|
397
|
+
pageSize: currentContentTypeConfig.settings.pageSize,
|
398
|
+
sort: `${currentContentTypeConfig.settings.defaultSortBy}:${currentContentTypeConfig.settings.defaultSortOrder}`
|
399
|
+
};
|
400
|
+
search = qs.stringify(searchParams, { encode: false });
|
401
|
+
}
|
402
|
+
return {
|
403
|
+
permissions,
|
404
|
+
search,
|
405
|
+
kind: link.kind,
|
406
|
+
title: link.info.displayName,
|
407
|
+
to: `/content-manager/${link.kind === "collectionType" ? index.COLLECTION_TYPES : index.SINGLE_TYPES}/${link.uid}`,
|
408
|
+
uid: link.uid,
|
409
|
+
// Used for the list item key in the helper plugin
|
410
|
+
name: link.uid,
|
411
|
+
isDisplayed: link.isDisplayed
|
412
|
+
};
|
413
|
+
});
|
414
|
+
};
|
415
|
+
const Layout = () => {
|
416
|
+
const contentTypeMatch = reactRouterDom.useMatch("/content-manager/:kind/:uid/*");
|
417
|
+
const { isLoading, collectionTypeLinks, models, singleTypeLinks } = useContentManagerInitData();
|
418
|
+
const authorisedModels = [...collectionTypeLinks, ...singleTypeLinks].sort(
|
419
|
+
(a, b) => a.title.localeCompare(b.title)
|
420
|
+
);
|
421
|
+
const { pathname } = reactRouterDom.useLocation();
|
422
|
+
const { formatMessage } = reactIntl.useIntl();
|
423
|
+
const startSection = strapiAdmin.useGuidedTour("Layout", (state) => state.startSection);
|
424
|
+
const startSectionRef = React__namespace.useRef(startSection);
|
425
|
+
React__namespace.useEffect(() => {
|
426
|
+
if (startSectionRef.current) {
|
427
|
+
startSectionRef.current("contentManager");
|
428
|
+
}
|
429
|
+
}, []);
|
430
|
+
if (isLoading) {
|
431
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
432
|
+
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Title, { children: formatMessage({
|
433
|
+
id: index.getTranslation("plugin.name"),
|
434
|
+
defaultMessage: "Content Manager"
|
435
|
+
}) }),
|
436
|
+
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Loading, {})
|
437
|
+
] });
|
438
|
+
}
|
439
|
+
const supportedModelsToDisplay = models.filter(({ isDisplayed }) => isDisplayed);
|
440
|
+
if (authorisedModels.length === 0 && supportedModelsToDisplay.length > 0 && pathname !== "/content-manager/403") {
|
441
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/403" });
|
442
|
+
}
|
443
|
+
if (supportedModelsToDisplay.length === 0 && pathname !== "/no-content-types") {
|
444
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/no-content-types" });
|
445
|
+
}
|
446
|
+
if (!contentTypeMatch && authorisedModels.length > 0) {
|
447
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
448
|
+
reactRouterDom.Navigate,
|
449
|
+
{
|
450
|
+
to: {
|
451
|
+
pathname: authorisedModels[0].to,
|
452
|
+
search: authorisedModels[0].search ?? ""
|
453
|
+
},
|
454
|
+
replace: true
|
455
|
+
}
|
456
|
+
);
|
457
|
+
}
|
458
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
459
|
+
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Title, { children: formatMessage({
|
460
|
+
id: index.getTranslation("plugin.name"),
|
461
|
+
defaultMessage: "Content Manager"
|
462
|
+
}) }),
|
463
|
+
/* @__PURE__ */ jsxRuntime.jsxs(strapiAdmin.Layouts.Root, { sideNav: /* @__PURE__ */ jsxRuntime.jsx(LeftMenu, {}), children: [
|
464
|
+
/* @__PURE__ */ jsxRuntime.jsx(DragLayer, { renderItem: renderDraglayerItem }),
|
465
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Outlet, {})
|
466
|
+
] })
|
467
|
+
] });
|
468
|
+
};
|
469
|
+
function renderDraglayerItem({ type, item }) {
|
470
|
+
if (!type || type && typeof type !== "string") {
|
471
|
+
return null;
|
472
|
+
}
|
473
|
+
const [actualType] = type.split("_");
|
474
|
+
switch (actualType) {
|
475
|
+
case useDragAndDrop.ItemTypes.EDIT_FIELD:
|
476
|
+
case useDragAndDrop.ItemTypes.FIELD:
|
477
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CardDragPreview.CardDragPreview, { label: item.label });
|
478
|
+
case useDragAndDrop.ItemTypes.COMPONENT:
|
479
|
+
case useDragAndDrop.ItemTypes.DYNAMIC_ZONE:
|
480
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ComponentDragPreview, { displayedValue: item.displayedValue });
|
481
|
+
case useDragAndDrop.ItemTypes.RELATION:
|
482
|
+
return /* @__PURE__ */ jsxRuntime.jsx(RelationDragPreview, { ...item });
|
483
|
+
default:
|
484
|
+
return null;
|
485
|
+
}
|
486
|
+
}
|
487
|
+
exports.Layout = Layout;
|
488
|
+
//# sourceMappingURL=layout-4TbKVax8.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"layout-4TbKVax8.js","sources":["../../admin/src/components/DragLayer.tsx","../../admin/src/components/DragPreviews/ComponentDragPreview.tsx","../../admin/src/components/DragPreviews/RelationDragPreview.tsx","../../admin/src/components/LeftMenu.tsx","../../admin/src/hooks/useContentManagerInitData.ts","../../admin/src/layout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport { DragLayerMonitor, XYCoord, useDragLayer } from 'react-dnd';\n\nfunction getStyle(\n initialOffset: XYCoord | null,\n currentOffset: XYCoord | null,\n mouseOffset: XYCoord | null\n) {\n if (!initialOffset || !currentOffset || !mouseOffset) {\n return { display: 'none' };\n }\n\n const { x, y } = mouseOffset;\n\n return {\n transform: `translate(${x}px, ${y}px)`,\n };\n}\n\nexport interface DragLayerProps {\n renderItem: (item: {\n /**\n * TODO: it'd be great if we could make this a union where the type infers the item.\n */\n item: any;\n type: ReturnType<DragLayerMonitor['getItemType']>;\n }) => React.ReactNode;\n}\n\nconst DragLayer = ({ renderItem }: DragLayerProps) => {\n const { itemType, isDragging, item, initialOffset, currentOffset, mouseOffset } = useDragLayer(\n (monitor) => ({\n item: monitor.getItem(),\n itemType: monitor.getItemType(),\n initialOffset: monitor.getInitialSourceClientOffset(),\n currentOffset: monitor.getSourceClientOffset(),\n isDragging: monitor.isDragging(),\n mouseOffset: monitor.getClientOffset(),\n })\n );\n\n if (!isDragging) {\n return null;\n }\n\n return (\n <Box\n height=\"100%\"\n left={0}\n position=\"fixed\"\n pointerEvents=\"none\"\n top={0}\n zIndex={100}\n width=\"100%\"\n >\n <Box style={getStyle(initialOffset, currentOffset, mouseOffset)}>\n {renderItem({ type: itemType, item })}\n </Box>\n </Box>\n );\n};\n\nexport { DragLayer };\n","import { Flex, FlexComponent, IconButton, Typography } from '@strapi/design-system';\nimport { CaretDown, Drag, Trash } from '@strapi/icons';\nimport { styled } from 'styled-components';\n\ninterface ComponentDragPreviewProps {\n displayedValue: string;\n}\n\nconst ComponentDragPreview = ({ displayedValue }: ComponentDragPreviewProps) => {\n return (\n <Flex\n background=\"neutral0\"\n borderColor=\"neutral200\"\n justifyContent=\"space-between\"\n gap={3}\n padding={3}\n width=\"30rem\"\n >\n <ToggleButton type=\"button\">\n <Flex gap={6}>\n <DropdownIconWrapper\n alignItems=\"center\"\n justifyContent=\"center\"\n background=\"neutral200\"\n height=\"3.2rem\"\n width=\"3.2rem\"\n >\n <CaretDown />\n </DropdownIconWrapper>\n\n <Flex maxWidth=\"15rem\">\n <Typography textColor=\"neutral700\" ellipsis>\n {displayedValue}\n </Typography>\n </Flex>\n </Flex>\n </ToggleButton>\n\n <Flex gap={2}>\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Trash />\n </IconButton>\n\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Drag />\n </IconButton>\n </Flex>\n </Flex>\n );\n};\n\nconst DropdownIconWrapper = styled<FlexComponent>(Flex)`\n border-radius: 50%;\n\n svg {\n height: 0.6rem;\n width: 1.1rem;\n > path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\n// TODO: we shouldn't have to reset a whole button\nconst ToggleButton = styled.button`\n border: none;\n background: transparent;\n display: block;\n width: 100%;\n text-align: unset;\n padding: 0;\n`;\n\nexport { ComponentDragPreview };\nexport type { ComponentDragPreviewProps };\n","import { Box, Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Cross, Drag } from '@strapi/icons';\n\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport {\n DisconnectButton,\n LinkEllipsis,\n FlexWrapper,\n} from '../../pages/EditView/components/FormInputs/Relations';\n\nimport type { Data } from '@strapi/types';\n\ninterface RelationDragPreviewProps {\n status?: string;\n displayedValue: string;\n id: Data.ID;\n index: number;\n width: number;\n}\n\nconst RelationDragPreview = ({ status, displayedValue, width }: RelationDragPreviewProps) => {\n return (\n <Box style={{ width }}>\n <Flex\n paddingTop={2}\n paddingBottom={2}\n paddingLeft={2}\n paddingRight={4}\n hasRadius\n borderWidth={1}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n justifyContent=\"space-between\"\n gap={4}\n >\n <FlexWrapper gap={1}>\n <IconButton withTooltip={false} label=\"\" variant=\"ghost\">\n <Drag />\n </IconButton>\n <Flex width=\"100%\" minWidth={0} justifyContent=\"space-between\">\n <Box minWidth={0} paddingTop={1} paddingBottom={1} paddingRight={4}>\n <LinkEllipsis href=\"\">\n <Typography textColor=\"primary600\" ellipsis>\n {displayedValue}\n </Typography>\n </LinkEllipsis>\n </Box>\n {status ? <DocumentStatus status={status} /> : null}\n </Flex>\n </FlexWrapper>\n <DisconnectButton type=\"button\">\n <Cross width=\"12px\" />\n </DisconnectButton>\n </Flex>\n </Box>\n );\n};\n\nexport { RelationDragPreview };\nexport type { RelationDragPreviewProps };\n","import * as React from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\nimport {\n useCollator,\n useFilter,\n SubNav,\n SubNavHeader,\n SubNavLink,\n SubNavSection,\n SubNavSections,\n} from '@strapi/design-system';\nimport { parse, stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useContentTypeSchema } from '../hooks/useContentTypeSchema';\nimport { useTypedSelector } from '../modules/hooks';\nimport { getTranslation } from '../utils/translations';\n\nimport type { ContentManagerLink } from '../hooks/useContentManagerInitData';\n\nconst SubNavLinkCustom = styled(SubNavLink)`\n div {\n width: inherit;\n span:nth-child(2) {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: inherit;\n }\n }\n`;\n\nconst LeftMenu = () => {\n const [search, setSearch] = React.useState('');\n const [{ query }] = useQueryParams<{ plugins?: object }>();\n const { formatMessage, locale } = useIntl();\n\n const collectionTypeLinks = useTypedSelector(\n (state) => state['content-manager'].app.collectionTypeLinks\n );\n\n const singleTypeLinks = useTypedSelector((state) => state['content-manager'].app.singleTypeLinks);\n const { schemas } = useContentTypeSchema();\n\n const { startsWith } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const menu = React.useMemo(\n () =>\n [\n {\n id: 'collectionTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.collection-types'),\n defaultMessage: 'Collection Types',\n }),\n searchable: true,\n links: collectionTypeLinks,\n },\n {\n id: 'singleTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.single-types'),\n defaultMessage: 'Single Types',\n }),\n searchable: true,\n links: singleTypeLinks,\n },\n ].map((section) => ({\n ...section,\n links: section.links\n /**\n * Filter by the search value\n */\n .filter((link) => startsWith(link.title, search))\n /**\n * Sort correctly using the language\n */\n .sort((a, b) => formatter.compare(a.title, b.title))\n /**\n * Apply the formated strings to the links from react-intl\n */\n .map((link) => {\n return {\n ...link,\n title: formatMessage({ id: link.title, defaultMessage: link.title }),\n };\n }),\n })),\n [collectionTypeLinks, search, singleTypeLinks, startsWith, formatMessage, formatter]\n );\n\n const handleClear = () => {\n setSearch('');\n };\n\n const handleChangeSearch = ({ target: { value } }: { target: { value: string } }) => {\n setSearch(value);\n };\n\n const label = formatMessage({\n id: getTranslation('header.name'),\n defaultMessage: 'Content Manager',\n });\n\n const getPluginsParamsForLink = (link: ContentManagerLink) => {\n const schema = schemas.find((schema) => schema.uid === link.uid);\n const isI18nEnabled = Boolean((schema?.pluginOptions?.i18n as any)?.localized);\n\n // The search params have the i18n plugin\n if (query.plugins && 'i18n' in query.plugins) {\n // Prepare removal of i18n from the plugins search params\n const { i18n, ...restPlugins } = query.plugins;\n\n // i18n is not enabled, remove it from the plugins search params\n if (!isI18nEnabled) {\n return restPlugins;\n }\n\n // i18n is enabled, put the plugins search params back together\n return { i18n, ...restPlugins };\n }\n\n return query.plugins;\n };\n\n return (\n <SubNav aria-label={label}>\n <SubNavHeader\n label={label}\n searchable\n value={search}\n onChange={handleChangeSearch}\n onClear={handleClear}\n searchLabel={formatMessage({\n id: 'content-manager.components.LeftMenu.Search.label',\n defaultMessage: 'Search for a content type',\n })}\n />\n <SubNavSections>\n {menu.map((section) => {\n return (\n <SubNavSection\n key={section.id}\n label={section.title}\n badgeLabel={section.links.length.toString()}\n >\n {section.links.map((link) => {\n return (\n <SubNavLinkCustom\n tag={NavLink}\n key={link.uid}\n to={{\n pathname: link.to,\n search: stringify({\n ...parse(link.search ?? ''),\n plugins: getPluginsParamsForLink(link),\n }),\n }}\n width=\"100%\"\n >\n {link.title}\n </SubNavLinkCustom>\n );\n })}\n </SubNavSection>\n );\n })}\n </SubNavSections>\n </SubNav>\n );\n};\n\nexport { LeftMenu };\n","import { useEffect } from 'react';\n\nimport {\n useAuth,\n type Permission,\n useNotification,\n useStrapiApp,\n useAPIErrorHandler,\n} from '@strapi/admin/strapi-admin';\nimport { useNotifyAT } from '@strapi/design-system';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\n\nimport { COLLECTION_TYPES, SINGLE_TYPES } from '../constants/collections';\nimport { HOOKS } from '../constants/hooks';\nimport { AppState, setInitialData } from '../modules/app';\nimport { useTypedDispatch, useTypedSelector } from '../modules/hooks';\nimport { useGetAllContentTypeSettingsQuery } from '../services/contentTypes';\nimport { useGetInitialDataQuery } from '../services/init';\nimport { getTranslation } from '../utils/translations';\n\nimport type { Component } from '../../../shared/contracts/components';\nimport type {\n ContentType,\n FindContentTypesSettings,\n} from '../../../shared/contracts/content-types';\nimport type { GetInitData } from '../../../shared/contracts/init';\n\nconst { MUTATE_COLLECTION_TYPES_LINKS, MUTATE_SINGLE_TYPES_LINKS } = HOOKS;\n\ninterface ContentManagerLink {\n permissions: Permission[];\n search: string | null;\n kind: string;\n title: string;\n to: string;\n uid: string;\n name: string;\n isDisplayed: boolean;\n}\n\nconst useContentManagerInitData = (): AppState => {\n const { toggleNotification } = useNotification();\n const dispatch = useTypedDispatch();\n const runHookWaterfall = useStrapiApp(\n 'useContentManagerInitData',\n (state) => state.runHookWaterfall\n );\n const { notifyStatus } = useNotifyAT();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n const checkUserHasPermissions = useAuth(\n 'useContentManagerInitData',\n (state) => state.checkUserHasPermissions\n );\n\n const state = useTypedSelector((state) => state['content-manager'].app);\n\n const initialDataQuery = useGetInitialDataQuery(undefined, {\n /**\n * TODO: remove this when the CTB has been refactored to use redux-toolkit-query\n * and it can invalidate the cache on mutation\n */\n refetchOnMountOrArgChange: true,\n });\n\n useEffect(() => {\n if (initialDataQuery.data) {\n notifyStatus(\n formatMessage({\n id: getTranslation('App.schemas.data-loaded'),\n defaultMessage: 'The schemas have been successfully loaded.',\n })\n );\n }\n }, [formatMessage, initialDataQuery.data, notifyStatus]);\n\n useEffect(() => {\n if (initialDataQuery.error) {\n toggleNotification({ type: 'danger', message: formatAPIError(initialDataQuery.error) });\n }\n }, [formatAPIError, initialDataQuery.error, toggleNotification]);\n\n const contentTypeSettingsQuery = useGetAllContentTypeSettingsQuery();\n\n useEffect(() => {\n if (contentTypeSettingsQuery.error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(contentTypeSettingsQuery.error),\n });\n }\n }, [formatAPIError, contentTypeSettingsQuery.error, toggleNotification]);\n\n const formatData = async (\n components: Component[],\n contentTypes: ContentType[],\n fieldSizes: GetInitData.Response['data']['fieldSizes'],\n contentTypeConfigurations: FindContentTypesSettings.Response['data']\n ) => {\n /**\n * We group these by the two types we support. We do with an object because we can use default\n * values of arrays to make sure we always have an array to manipulate further on if, for example,\n * a user has not made any single types.\n *\n * This means we have to manually add new content types to this hook if we add a new type – but\n * the safety is worth it.\n */\n const { collectionType: collectionTypeLinks, singleType: singleTypeLinks } =\n contentTypes.reduce<{\n collectionType: ContentType[];\n singleType: ContentType[];\n }>(\n (acc, model) => {\n acc[model.kind].push(model);\n return acc;\n },\n {\n collectionType: [],\n singleType: [],\n }\n );\n const collectionTypeSectionLinks = generateLinks(\n collectionTypeLinks,\n 'collectionTypes',\n contentTypeConfigurations\n );\n const singleTypeSectionLinks = generateLinks(singleTypeLinks, 'singleTypes');\n\n // Collection Types verifications\n const collectionTypeLinksPermissions = await Promise.all(\n collectionTypeSectionLinks.map(({ permissions }) => checkUserHasPermissions(permissions))\n );\n\n const authorizedCollectionTypeLinks = collectionTypeSectionLinks.filter(\n (_, index) => collectionTypeLinksPermissions[index].length > 0\n );\n\n // Single Types verifications\n const singleTypeLinksPermissions = await Promise.all(\n singleTypeSectionLinks.map(({ permissions }) => checkUserHasPermissions(permissions))\n );\n const authorizedSingleTypeLinks = singleTypeSectionLinks.filter(\n (_, index) => singleTypeLinksPermissions[index].length > 0\n );\n const { ctLinks } = runHookWaterfall(MUTATE_COLLECTION_TYPES_LINKS, {\n ctLinks: authorizedCollectionTypeLinks,\n models: contentTypes,\n });\n const { stLinks } = runHookWaterfall(MUTATE_SINGLE_TYPES_LINKS, {\n stLinks: authorizedSingleTypeLinks,\n models: contentTypes,\n });\n\n dispatch(\n setInitialData({\n authorizedCollectionTypeLinks: ctLinks,\n authorizedSingleTypeLinks: stLinks,\n components,\n contentTypeSchemas: contentTypes,\n fieldSizes,\n })\n );\n };\n\n useEffect(() => {\n if (initialDataQuery.data && contentTypeSettingsQuery.data) {\n formatData(\n initialDataQuery.data.components,\n initialDataQuery.data.contentTypes,\n initialDataQuery.data.fieldSizes,\n contentTypeSettingsQuery.data\n );\n }\n }, [initialDataQuery.data, contentTypeSettingsQuery.data]);\n\n return { ...state };\n};\n\nconst generateLinks = (\n links: ContentType[],\n type: 'collectionTypes' | 'singleTypes',\n configurations: FindContentTypesSettings.Response['data'] = []\n) => {\n return links\n .filter((link) => link.isDisplayed)\n .map((link) => {\n const collectionTypesPermissions = [\n { action: 'plugin::content-manager.explorer.create', subject: link.uid },\n { action: 'plugin::content-manager.explorer.read', subject: link.uid },\n ];\n const singleTypesPermissions = [\n { action: 'plugin::content-manager.explorer.read', subject: link.uid },\n ];\n const permissions =\n type === 'collectionTypes' ? collectionTypesPermissions : singleTypesPermissions;\n\n const currentContentTypeConfig = configurations.find(({ uid }) => uid === link.uid);\n\n let search = null;\n\n if (currentContentTypeConfig) {\n const searchParams = {\n page: 1,\n pageSize: currentContentTypeConfig.settings.pageSize,\n sort: `${currentContentTypeConfig.settings.defaultSortBy}:${currentContentTypeConfig.settings.defaultSortOrder}`,\n };\n\n search = stringify(searchParams, { encode: false });\n }\n\n return {\n permissions,\n search,\n kind: link.kind,\n title: link.info.displayName,\n to: `/content-manager/${link.kind === 'collectionType' ? COLLECTION_TYPES : SINGLE_TYPES}/${\n link.uid\n }`,\n uid: link.uid,\n // Used for the list item key in the helper plugin\n name: link.uid,\n isDisplayed: link.isDisplayed,\n } satisfies ContentManagerLink;\n });\n};\n\nexport { useContentManagerInitData };\nexport type { ContentManagerLink };\n","/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport { Page, useGuidedTour, Layouts } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { Navigate, Outlet, useLocation, useMatch } from 'react-router-dom';\n\nimport { DragLayer, DragLayerProps } from './components/DragLayer';\nimport { CardDragPreview } from './components/DragPreviews/CardDragPreview';\nimport { ComponentDragPreview } from './components/DragPreviews/ComponentDragPreview';\nimport { RelationDragPreview } from './components/DragPreviews/RelationDragPreview';\nimport { LeftMenu } from './components/LeftMenu';\nimport { ItemTypes } from './constants/dragAndDrop';\nimport { useContentManagerInitData } from './hooks/useContentManagerInitData';\nimport { getTranslation } from './utils/translations';\n\n/* -------------------------------------------------------------------------------------------------\n * Layout\n * -----------------------------------------------------------------------------------------------*/\n\nconst Layout = () => {\n const contentTypeMatch = useMatch('/content-manager/:kind/:uid/*');\n\n const { isLoading, collectionTypeLinks, models, singleTypeLinks } = useContentManagerInitData();\n const authorisedModels = [...collectionTypeLinks, ...singleTypeLinks].sort((a, b) =>\n a.title.localeCompare(b.title)\n );\n\n const { pathname } = useLocation();\n const { formatMessage } = useIntl();\n const startSection = useGuidedTour('Layout', (state) => state.startSection);\n const startSectionRef = React.useRef(startSection);\n\n React.useEffect(() => {\n if (startSectionRef.current) {\n startSectionRef.current('contentManager');\n }\n }, []);\n\n if (isLoading) {\n return (\n <>\n <Page.Title>\n {formatMessage({\n id: getTranslation('plugin.name'),\n defaultMessage: 'Content Manager',\n })}\n </Page.Title>\n <Page.Loading />\n </>\n );\n }\n\n // Array of models that are displayed in the content manager\n const supportedModelsToDisplay = models.filter(({ isDisplayed }) => isDisplayed);\n\n // Redirect the user to the 403 page\n if (\n authorisedModels.length === 0 &&\n supportedModelsToDisplay.length > 0 &&\n pathname !== '/content-manager/403'\n ) {\n return <Navigate to=\"/403\" />;\n }\n\n // Redirect the user to the create content type page\n if (supportedModelsToDisplay.length === 0 && pathname !== '/no-content-types') {\n return <Navigate to=\"/no-content-types\" />;\n }\n\n if (!contentTypeMatch && authorisedModels.length > 0) {\n return (\n <Navigate\n to={{\n pathname: authorisedModels[0].to,\n search: authorisedModels[0].search ?? '',\n }}\n replace\n />\n );\n }\n\n return (\n <>\n <Page.Title>\n {formatMessage({\n id: getTranslation('plugin.name'),\n defaultMessage: 'Content Manager',\n })}\n </Page.Title>\n <Layouts.Root sideNav={<LeftMenu />}>\n <DragLayer renderItem={renderDraglayerItem} />\n <Outlet />\n </Layouts.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * renderDraglayerItem\n * -----------------------------------------------------------------------------------------------*/\n\nfunction renderDraglayerItem({ type, item }: Parameters<DragLayerProps['renderItem']>[0]) {\n if (!type || (type && typeof type !== 'string')) {\n return null;\n }\n\n /**\n * Because a user may have multiple relations / dynamic zones / repeable fields in the same content type,\n * we append the fieldName for the item type to make them unique, however, we then want to extract that\n * first type to apply the correct preview.\n */\n const [actualType] = type.split('_');\n\n switch (actualType) {\n case ItemTypes.EDIT_FIELD:\n case ItemTypes.FIELD:\n return <CardDragPreview label={item.label} />;\n case ItemTypes.COMPONENT:\n case ItemTypes.DYNAMIC_ZONE:\n return <ComponentDragPreview displayedValue={item.displayedValue} />;\n\n case ItemTypes.RELATION:\n return <RelationDragPreview {...item} />;\n\n default:\n return null;\n }\n}\n\nexport { Layout };\n"],"names":["useDragLayer","jsx","Box","jsxs","Flex","CaretDown","Typography","IconButton","Trash","Drag","styled","FlexWrapper","LinkEllipsis","DocumentStatus","DisconnectButton","Cross","SubNavLink","React","useQueryParams","useIntl","useTypedSelector","useContentTypeSchema","useFilter","useCollator","getTranslation","schema","SubNav","SubNavHeader","SubNavSections","SubNavSection","NavLink","stringify","parse","HOOKS","useNotification","useTypedDispatch","useStrapiApp","state","useNotifyAT","useAPIErrorHandler","useAuth","useGetInitialDataQuery","useEffect","useGetAllContentTypeSettingsQuery","index","setInitialData","COLLECTION_TYPES","SINGLE_TYPES","useMatch","useLocation","useGuidedTour","Fragment","Page","Navigate","Layouts","Outlet","ItemTypes","CardDragPreview"],"mappings":"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"}
|