@strapi/admin 4.15.1 → 4.15.2
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/{AuthenticatedApp-092ef2be.js → AuthenticatedApp-d1e28164.js} +30 -30
- package/dist/_chunks/{AuthenticatedApp-092ef2be.js.map → AuthenticatedApp-d1e28164.js.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-b0ada7e9.mjs → AuthenticatedApp-fd7e406d.mjs} +30 -30
- package/dist/_chunks/{AuthenticatedApp-b0ada7e9.mjs.map → AuthenticatedApp-fd7e406d.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-5798ba6f.mjs → HomePage-2a7f678a.mjs} +7 -8
- package/dist/_chunks/{HomePage-5798ba6f.mjs.map → HomePage-2a7f678a.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-5ae473e6.js → HomePage-2ac5c213.js} +7 -8
- package/dist/_chunks/{HomePage-5ae473e6.js.map → HomePage-2ac5c213.js.map} +1 -1
- package/dist/_chunks/{HomePage-bdcb51be.js → HomePage-616a2985.js} +12 -13
- package/dist/_chunks/HomePage-616a2985.js.map +1 -0
- package/dist/_chunks/{HomePage-a3cc32d2.mjs → HomePage-ded37c60.mjs} +12 -13
- package/dist/_chunks/HomePage-ded37c60.mjs.map +1 -0
- package/dist/_chunks/{InstalledPluginsPage-cc2d6a36.js → InstalledPluginsPage-189010c1.js} +10 -12
- package/dist/_chunks/{InstalledPluginsPage-cc2d6a36.js.map → InstalledPluginsPage-189010c1.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-6284aaff.mjs → InstalledPluginsPage-afa9edc3.mjs} +10 -12
- package/dist/_chunks/{InstalledPluginsPage-6284aaff.mjs.map → InstalledPluginsPage-afa9edc3.mjs.map} +1 -1
- package/dist/_chunks/{index-305a03f4.mjs → Login-02ddabf7.mjs} +25 -29
- package/dist/_chunks/Login-02ddabf7.mjs.map +1 -0
- package/dist/_chunks/{index-137490ba.js → Login-28127829.js} +25 -30
- package/dist/_chunks/Login-28127829.js.map +1 -0
- package/dist/_chunks/{MarketplacePage-7dee72f5.mjs → MarketplacePage-40f76f3d.mjs} +6 -8
- package/dist/_chunks/{MarketplacePage-7dee72f5.mjs.map → MarketplacePage-40f76f3d.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-209ec658.js → MarketplacePage-946134e6.js} +6 -8
- package/dist/_chunks/{MarketplacePage-209ec658.js.map → MarketplacePage-946134e6.js.map} +1 -1
- package/dist/_chunks/{ProfilePage-26c14ba4.mjs → ProfilePage-4c94e332.mjs} +7 -9
- package/dist/_chunks/{ProfilePage-26c14ba4.mjs.map → ProfilePage-4c94e332.mjs.map} +1 -1
- package/dist/_chunks/{ProfilePage-4f8c127b.js → ProfilePage-6506e401.js} +7 -9
- package/dist/_chunks/{ProfilePage-4f8c127b.js.map → ProfilePage-6506e401.js.map} +1 -1
- package/dist/_chunks/{SSOProviders-1d062c95.mjs → SSOProviders-62bfad92.mjs} +29 -61
- package/dist/_chunks/SSOProviders-62bfad92.mjs.map +1 -0
- package/dist/_chunks/{SSOProviders-1ef0a89e.js → SSOProviders-b395a4e6.js} +28 -80
- package/dist/_chunks/SSOProviders-b395a4e6.js.map +1 -0
- package/dist/_chunks/{build-f36bfc97.js → build-55ba3e68.js} +4 -2
- package/dist/_chunks/{build-f36bfc97.js.map → build-55ba3e68.js.map} +1 -1
- package/dist/_chunks/{build-e1ca35da.mjs → build-b67ecc59.mjs} +4 -2
- package/dist/_chunks/{build-e1ca35da.mjs.map → build-b67ecc59.mjs.map} +1 -1
- package/dist/_chunks/{constants-70e05152.js → constants-42f4f7b3.js} +6 -6
- package/dist/_chunks/{constants-70e05152.js.map → constants-42f4f7b3.js.map} +1 -1
- package/dist/_chunks/{constants-921eda17.mjs → constants-6ecddc43.mjs} +43 -15
- package/dist/_chunks/constants-6ecddc43.mjs.map +1 -0
- package/dist/_chunks/{constants-727a113c.js → constants-733b0568.js} +26 -26
- package/dist/_chunks/constants-733b0568.js.map +1 -0
- package/dist/_chunks/{constants-86aa3e70.js → constants-7596f6f3.js} +60 -13
- package/dist/_chunks/constants-7596f6f3.js.map +1 -0
- package/dist/_chunks/{constants-32975b2e.js → constants-82e97fee.js} +11 -12
- package/dist/_chunks/{constants-32975b2e.js.map → constants-82e97fee.js.map} +1 -1
- package/dist/_chunks/{constants-90c20a6f.mjs → constants-952c50be.mjs} +11 -12
- package/dist/_chunks/{constants-90c20a6f.mjs.map → constants-952c50be.mjs.map} +1 -1
- package/dist/_chunks/{constants-9de7641c.mjs → constants-c0280aed.mjs} +28 -28
- package/dist/_chunks/constants-c0280aed.mjs.map +1 -0
- package/dist/_chunks/{constants-a773ff9b.js → constants-c9fce26f.js} +13 -12
- package/dist/_chunks/{constants-a773ff9b.js.map → constants-c9fce26f.js.map} +1 -1
- package/dist/_chunks/{constants-6157f648.mjs → constants-cbadfd36.mjs} +6 -6
- package/dist/_chunks/{constants-6157f648.mjs.map → constants-cbadfd36.mjs.map} +1 -1
- package/dist/_chunks/{constants-27319180.mjs → constants-cd1acf1b.mjs} +13 -12
- package/dist/_chunks/{constants-27319180.mjs.map → constants-cd1acf1b.mjs.map} +1 -1
- package/dist/_chunks/{develop-513c9644.js → develop-69e28e61.js} +4 -2
- package/dist/_chunks/{develop-513c9644.js.map → develop-69e28e61.js.map} +1 -1
- package/dist/_chunks/{develop-e45b460e.mjs → develop-d97e7494.mjs} +4 -2
- package/dist/_chunks/{develop-e45b460e.mjs.map → develop-d97e7494.mjs.map} +1 -1
- package/dist/_chunks/formatAPIErrors-b599cf27.js +20 -0
- package/dist/_chunks/formatAPIErrors-b599cf27.js.map +1 -0
- package/dist/_chunks/formatAPIErrors-db6ed675.mjs +21 -0
- package/dist/_chunks/formatAPIErrors-db6ed675.mjs.map +1 -0
- package/dist/_chunks/{index-af69bc98.mjs → index-01dfec54.mjs} +11 -11
- package/dist/_chunks/{index-af69bc98.mjs.map → index-01dfec54.mjs.map} +1 -1
- package/dist/_chunks/{index-fcd5bc14.mjs → index-0ed0c104.mjs} +14 -13
- package/dist/_chunks/{index-fcd5bc14.mjs.map → index-0ed0c104.mjs.map} +1 -1
- package/dist/_chunks/{index-1f1e2465.js → index-13a78498.js} +9 -11
- package/dist/_chunks/{index-1f1e2465.js.map → index-13a78498.js.map} +1 -1
- package/dist/_chunks/{index-6b9e3d60.js → index-150ec200.js} +9 -10
- package/dist/_chunks/{index-6b9e3d60.js.map → index-150ec200.js.map} +1 -1
- package/dist/_chunks/{index-b2257157.js → index-17acbe23.js} +49 -12
- package/dist/_chunks/index-17acbe23.js.map +1 -0
- package/dist/_chunks/{index-f5342ea5.js → index-17fbff58.js} +14 -13
- package/dist/_chunks/{index-f5342ea5.js.map → index-17fbff58.js.map} +1 -1
- package/dist/_chunks/{index-bb8093ea.mjs → index-18155022.mjs} +12 -12
- package/dist/_chunks/{index-bb8093ea.mjs.map → index-18155022.mjs.map} +1 -1
- package/dist/_chunks/{index-e22d1a84.mjs → index-22993544.mjs} +14 -13
- package/dist/_chunks/{index-e22d1a84.mjs.map → index-22993544.mjs.map} +1 -1
- package/dist/_chunks/{index-16030b74.js → index-2f4b78ee.js} +3 -3
- package/dist/_chunks/index-2f4b78ee.js.map +1 -0
- package/dist/_chunks/{index-35e4bad6.mjs → index-30933e3e.mjs} +8 -9
- package/dist/_chunks/{index-35e4bad6.mjs.map → index-30933e3e.mjs.map} +1 -1
- package/dist/_chunks/{index-928b18d2.mjs → index-31227291.mjs} +3 -3
- package/dist/_chunks/{index-928b18d2.mjs.map → index-31227291.mjs.map} +1 -1
- package/dist/_chunks/{index-24189ec9.js → index-3b888524.js} +6 -6
- package/dist/_chunks/{index-24189ec9.js.map → index-3b888524.js.map} +1 -1
- package/dist/_chunks/{index-5752584c.mjs → index-44360544.mjs} +182 -76
- package/dist/_chunks/index-44360544.mjs.map +1 -0
- package/dist/_chunks/{index-be2ca313.mjs → index-45ae7be1.mjs} +13 -13
- package/dist/_chunks/{index-be2ca313.mjs.map → index-45ae7be1.mjs.map} +1 -1
- package/dist/_chunks/{index-62b4b3fc.js → index-470a72bf.js} +11 -11
- package/dist/_chunks/{index-62b4b3fc.js.map → index-470a72bf.js.map} +1 -1
- package/dist/_chunks/{index-00202c8a.mjs → index-4a46c368.mjs} +13 -12
- package/dist/_chunks/{index-00202c8a.mjs.map → index-4a46c368.mjs.map} +1 -1
- package/dist/_chunks/{index-332f319e.mjs → index-52b70b56.mjs} +8 -10
- package/dist/_chunks/{index-332f319e.mjs.map → index-52b70b56.mjs.map} +1 -1
- package/dist/_chunks/{index-5ad8482b.mjs → index-55f9b6b3.mjs} +7 -7
- package/dist/_chunks/{index-5ad8482b.mjs.map → index-55f9b6b3.mjs.map} +1 -1
- package/dist/_chunks/{index-6cc54f3b.mjs → index-59e31a9f.mjs} +8 -9
- package/dist/_chunks/{index-6cc54f3b.mjs.map → index-59e31a9f.mjs.map} +1 -1
- package/dist/_chunks/{index-1e973c03.mjs → index-5df8a59e.mjs} +14 -13
- package/dist/_chunks/{index-1e973c03.mjs.map → index-5df8a59e.mjs.map} +1 -1
- package/dist/_chunks/{index-34de382e.mjs → index-60a57d31.mjs} +688 -824
- package/dist/_chunks/index-60a57d31.mjs.map +1 -0
- package/dist/_chunks/{index-77e0e5d7.js → index-62264743.js} +8 -7
- package/dist/_chunks/{index-77e0e5d7.js.map → index-62264743.js.map} +1 -1
- package/dist/_chunks/{index-4565fcbd.js → index-6931e33c.js} +3 -3
- package/dist/_chunks/{index-4565fcbd.js.map → index-6931e33c.js.map} +1 -1
- package/dist/_chunks/{index-3c58de6f.js → index-748f8264.js} +14 -13
- package/dist/_chunks/{index-3c58de6f.js.map → index-748f8264.js.map} +1 -1
- package/dist/_chunks/{index-bdfc1149.mjs → index-768b7de9.mjs} +49 -12
- package/dist/_chunks/index-768b7de9.mjs.map +1 -0
- package/dist/_chunks/{index-1763a04f.js → index-7739ddf5.js} +8 -9
- package/dist/_chunks/{index-1763a04f.js.map → index-7739ddf5.js.map} +1 -1
- package/dist/_chunks/{index-89d27faa.js → index-794eb0b6.js} +14 -13
- package/dist/_chunks/{index-89d27faa.js.map → index-794eb0b6.js.map} +1 -1
- package/dist/_chunks/{index-f448aed2.js → index-7e9cd960.js} +13 -12
- package/dist/_chunks/{index-f448aed2.js.map → index-7e9cd960.js.map} +1 -1
- package/dist/_chunks/{index-0af587c3.js → index-7f642760.js} +78 -147
- package/dist/_chunks/index-7f642760.js.map +1 -0
- package/dist/_chunks/{index-56ced4ab.mjs → index-853bd239.mjs} +8 -7
- package/dist/_chunks/{index-56ced4ab.mjs.map → index-853bd239.mjs.map} +1 -1
- package/dist/_chunks/{index-b98ea3ce.mjs → index-8a4d0275.mjs} +13 -14
- package/dist/_chunks/{index-b98ea3ce.mjs.map → index-8a4d0275.mjs.map} +1 -1
- package/dist/_chunks/{index-6dbc94a9.mjs → index-9c45bda7.mjs} +6 -6
- package/dist/_chunks/{index-6dbc94a9.mjs.map → index-9c45bda7.mjs.map} +1 -1
- package/dist/_chunks/{index-4c5acc70.js → index-9eb160a3.js} +9 -10
- package/dist/_chunks/{index-4c5acc70.js.map → index-9eb160a3.js.map} +1 -1
- package/dist/_chunks/{index-51a15b27.js → index-9f155b14.js} +4 -4
- package/dist/_chunks/{index-51a15b27.js.map → index-9f155b14.js.map} +1 -1
- package/dist/_chunks/{index-066ee02e.js → index-9f50c8b0.js} +8 -10
- package/dist/_chunks/{index-066ee02e.js.map → index-9f50c8b0.js.map} +1 -1
- package/dist/_chunks/{index-284c5926.js → index-9f900c47.js} +33 -47
- package/dist/_chunks/index-9f900c47.js.map +1 -0
- package/dist/_chunks/{index-5d8d89a7.js → index-a163001f.js} +13 -13
- package/dist/_chunks/{index-5d8d89a7.js.map → index-a163001f.js.map} +1 -1
- package/dist/_chunks/{index-34a2909e.mjs → index-a3176d19.mjs} +12 -12
- package/dist/_chunks/{index-34a2909e.mjs.map → index-a3176d19.mjs.map} +1 -1
- package/dist/_chunks/{index-ea23ee9f.mjs → index-a7d28c42.mjs} +9 -11
- package/dist/_chunks/{index-ea23ee9f.mjs.map → index-a7d28c42.mjs.map} +1 -1
- package/dist/_chunks/{index-a4348f3b.js → index-a8358156.js} +12 -12
- package/dist/_chunks/index-a8358156.js.map +1 -0
- package/dist/_chunks/{index-58db145d.mjs → index-a8d13f01.mjs} +3 -3
- package/dist/_chunks/{index-58db145d.mjs.map → index-a8d13f01.mjs.map} +1 -1
- package/dist/_chunks/{index-59d22949.mjs → index-b4cc14ad.mjs} +8 -9
- package/dist/_chunks/{index-59d22949.mjs.map → index-b4cc14ad.mjs.map} +1 -1
- package/dist/_chunks/{index-6a512cec.js → index-bad666f0.js} +8 -9
- package/dist/_chunks/{index-6a512cec.js.map → index-bad666f0.js.map} +1 -1
- package/dist/_chunks/{index-53ba81f9.mjs → index-bf788868.mjs} +9 -10
- package/dist/_chunks/{index-53ba81f9.mjs.map → index-bf788868.mjs.map} +1 -1
- package/dist/_chunks/{index-da04b144.js → index-bfb5b3ab.js} +14 -13
- package/dist/_chunks/{index-da04b144.js.map → index-bfb5b3ab.js.map} +1 -1
- package/dist/_chunks/{index-cadd3ee0.js → index-c0603138.js} +4 -4
- package/dist/_chunks/{index-cadd3ee0.js.map → index-c0603138.js.map} +1 -1
- package/dist/_chunks/{index-c604806d.js → index-c3761887.js} +12 -12
- package/dist/_chunks/{index-c604806d.js.map → index-c3761887.js.map} +1 -1
- package/dist/_chunks/{index-1da8c640.mjs → index-c4d3a07b.mjs} +9 -10
- package/dist/_chunks/{index-1da8c640.mjs.map → index-c4d3a07b.mjs.map} +1 -1
- package/dist/_chunks/{index-36e0d449.mjs → index-c7386be1.mjs} +32 -45
- package/dist/_chunks/index-c7386be1.mjs.map +1 -0
- package/dist/_chunks/{index-8d4d361d.mjs → index-cc7bedec.mjs} +13 -13
- package/dist/_chunks/{index-8d4d361d.mjs.map → index-cc7bedec.mjs.map} +1 -1
- package/dist/_chunks/{index-86dfbe3a.js → index-cce8ecb6.js} +178 -72
- package/dist/_chunks/index-cce8ecb6.js.map +1 -0
- package/dist/_chunks/{index-acd6d64f.js → index-cdadc366.js} +8 -7
- package/dist/_chunks/{index-acd6d64f.js.map → index-cdadc366.js.map} +1 -1
- package/dist/_chunks/{index-48322669.mjs → index-d81f74c4.mjs} +3 -3
- package/dist/_chunks/index-d81f74c4.mjs.map +1 -0
- package/dist/_chunks/{index-b81f7273.mjs → index-d93367d2.mjs} +78 -147
- package/dist/_chunks/index-d93367d2.mjs.map +1 -0
- package/dist/_chunks/{index-85069cac.mjs → index-dace55d9.mjs} +9 -10
- package/dist/_chunks/{index-85069cac.mjs.map → index-dace55d9.mjs.map} +1 -1
- package/dist/_chunks/{index-f179c7ea.js → index-db37fbe6.js} +13 -13
- package/dist/_chunks/{index-f179c7ea.js.map → index-db37fbe6.js.map} +1 -1
- package/dist/_chunks/{index-d1620260.js → index-dcb2c919.js} +13 -14
- package/dist/_chunks/{index-d1620260.js.map → index-dcb2c919.js.map} +1 -1
- package/dist/_chunks/{index-52b5db8a.js → index-dd3259f3.js} +8 -9
- package/dist/_chunks/{index-52b5db8a.js.map → index-dd3259f3.js.map} +1 -1
- package/dist/_chunks/{index-7d40adea.mjs → index-df42dfec.mjs} +8 -7
- package/dist/_chunks/{index-7d40adea.mjs.map → index-df42dfec.mjs.map} +1 -1
- package/dist/_chunks/{index-edc9bb0b.js → index-e2663a88.js} +673 -811
- package/dist/_chunks/index-e2663a88.js.map +1 -0
- package/dist/_chunks/{index-7aed99db.js → index-e2c5346d.js} +12 -12
- package/dist/_chunks/{index-7aed99db.js.map → index-e2c5346d.js.map} +1 -1
- package/dist/_chunks/{index-e414353b.js → index-e7381e58.js} +8 -8
- package/dist/_chunks/{index-e414353b.js.map → index-e7381e58.js.map} +1 -1
- package/dist/_chunks/{index-73ba6bdd.mjs → index-e8eff6c5.mjs} +3 -3
- package/dist/_chunks/{index-73ba6bdd.mjs.map → index-e8eff6c5.mjs.map} +1 -1
- package/dist/_chunks/{index-370a4ee8.mjs → index-f69d3930.mjs} +12 -12
- package/dist/_chunks/index-f69d3930.mjs.map +1 -0
- package/dist/_chunks/{index-8ea5a488.js → index-f9e95b10.js} +9 -10
- package/dist/_chunks/{index-8ea5a488.js.map → index-f9e95b10.js.map} +1 -1
- package/dist/_chunks/{index-1b7e986c.mjs → index-fe29b1fd.mjs} +14 -13
- package/dist/_chunks/{index-1b7e986c.mjs.map → index-fe29b1fd.mjs.map} +1 -1
- package/dist/_chunks/{schema-f49c76d7.js → schema-8eebfdf9.js} +2 -2
- package/dist/_chunks/{schema-f49c76d7.js.map → schema-8eebfdf9.js.map} +1 -1
- package/dist/_chunks/{schema-a95f2514.mjs → schema-ac25a47b.mjs} +2 -2
- package/dist/_chunks/{schema-a95f2514.mjs.map → schema-ac25a47b.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-d051b610.mjs → validateWorkflow-2511dc85.mjs} +3 -3
- package/dist/_chunks/{validateWorkflow-d051b610.mjs.map → validateWorkflow-2511dc85.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-e66d7d2e.js → validateWorkflow-c0f3148d.js} +3 -3
- package/dist/_chunks/{validateWorkflow-e66d7d2e.js.map → validateWorkflow-c0f3148d.js.map} +1 -1
- package/dist/admin/index.js +9 -10
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +9 -10
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/constants.d.ts +10 -0
- package/dist/admin/src/contexts/admin.d.ts +2 -2
- package/dist/admin/src/hooks/__mocks__/useSettingsMenu.d.ts +2 -0
- package/dist/admin/src/hooks/useEnterprise.d.ts +6 -4
- package/dist/admin/src/hooks/useSettingsMenu.d.ts +24 -0
- package/dist/admin/src/pages/Auth/AuthPage.d.ts +6 -0
- package/dist/admin/src/pages/Auth/components/FieldActionWrapper.d.ts +3 -0
- package/dist/admin/src/pages/Auth/components/ForgotPassword.d.ts +3 -0
- package/dist/admin/src/pages/Auth/components/ForgotPasswordSuccess.d.ts +2 -0
- package/dist/admin/src/pages/Auth/components/Login.d.ts +8 -0
- package/dist/admin/src/pages/Auth/components/Oops.d.ts +2 -0
- package/dist/admin/src/pages/Auth/components/Register.d.ts +7 -0
- package/dist/admin/src/pages/Auth/components/ResetPassword.d.ts +3 -0
- package/dist/admin/src/pages/Auth/constants.d.ts +14 -0
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
- package/dist/admin/src/types/permissions.d.ts +10 -0
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +3 -1
- package/dist/cli.mjs.map +1 -1
- package/dist/ee/admin/src/constants.d.ts +3 -1
- package/dist/ee/admin/src/pages/AuthPage/components/Login.d.ts +3 -0
- package/dist/ee/admin/src/pages/AuthPage/components/Providers.d.ts +2 -0
- package/dist/ee/admin/src/pages/AuthPage/components/SSOProviders.d.ts +8 -0
- package/dist/ee/admin/src/pages/AuthPage/constants.d.ts +3 -0
- package/dist/ee/admin/src/pages/AuthResponse.d.ts +2 -0
- package/dist/ee/admin/src/pages/HomePage.d.ts +1 -1
- package/dist/shared/contracts/authentication.d.ts +126 -0
- package/dist/shared/contracts/providers.d.ts +18 -0
- package/package.json +21 -21
- package/dist/_chunks/HomePage-a3cc32d2.mjs.map +0 -1
- package/dist/_chunks/HomePage-bdcb51be.js.map +0 -1
- package/dist/_chunks/SSOProviders-1d062c95.mjs.map +0 -1
- package/dist/_chunks/SSOProviders-1ef0a89e.js.map +0 -1
- package/dist/_chunks/constants-12dfb222.mjs +0 -34
- package/dist/_chunks/constants-12dfb222.mjs.map +0 -1
- package/dist/_chunks/constants-1aea1185.js +0 -34
- package/dist/_chunks/constants-1aea1185.js.map +0 -1
- package/dist/_chunks/constants-727a113c.js.map +0 -1
- package/dist/_chunks/constants-86aa3e70.js.map +0 -1
- package/dist/_chunks/constants-921eda17.mjs.map +0 -1
- package/dist/_chunks/constants-9de7641c.mjs.map +0 -1
- package/dist/_chunks/index-0af587c3.js.map +0 -1
- package/dist/_chunks/index-137490ba.js.map +0 -1
- package/dist/_chunks/index-16030b74.js.map +0 -1
- package/dist/_chunks/index-284c5926.js.map +0 -1
- package/dist/_chunks/index-305a03f4.mjs.map +0 -1
- package/dist/_chunks/index-34de382e.mjs.map +0 -1
- package/dist/_chunks/index-36e0d449.mjs.map +0 -1
- package/dist/_chunks/index-370a4ee8.mjs.map +0 -1
- package/dist/_chunks/index-48322669.mjs.map +0 -1
- package/dist/_chunks/index-5752584c.mjs.map +0 -1
- package/dist/_chunks/index-86dfbe3a.js.map +0 -1
- package/dist/_chunks/index-a4348f3b.js.map +0 -1
- package/dist/_chunks/index-b2257157.js.map +0 -1
- package/dist/_chunks/index-b81f7273.mjs.map +0 -1
- package/dist/_chunks/index-bdfc1149.mjs.map +0 -1
- package/dist/_chunks/index-edc9bb0b.js.map +0 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { CheckPagePermissions } from "@strapi/helper-plugin";
|
|
3
3
|
import { useSelector } from "react-redux";
|
|
4
|
-
import { s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
5
|
-
import { E as EditView } from "./index-
|
|
4
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-fd7e406d.mjs";
|
|
5
|
+
import { E as EditView } from "./index-e8eff6c5.mjs";
|
|
6
6
|
import "react";
|
|
7
7
|
import "react-query";
|
|
8
8
|
import "semver/functions/lt";
|
|
9
9
|
import "semver/functions/valid";
|
|
10
|
-
import "./index-
|
|
10
|
+
import "./index-60a57d31.mjs";
|
|
11
11
|
import "react-dom/client";
|
|
12
12
|
import "@strapi/design-system";
|
|
13
13
|
import "invariant";
|
|
@@ -18,25 +18,25 @@ import "react-helmet";
|
|
|
18
18
|
import "react-router-dom";
|
|
19
19
|
import "react-intl";
|
|
20
20
|
import "@radix-ui/react-context";
|
|
21
|
-
import "
|
|
22
|
-
import "lodash/camelCase";
|
|
23
|
-
import "lodash/get";
|
|
24
|
-
import "lodash/omit";
|
|
25
|
-
import "prop-types";
|
|
26
|
-
import "lodash/defaultsDeep";
|
|
27
|
-
import "styled-components";
|
|
21
|
+
import "@strapi/design-system/v2";
|
|
28
22
|
import "@strapi/icons";
|
|
29
23
|
import "formik";
|
|
24
|
+
import "lodash/camelCase";
|
|
25
|
+
import "styled-components";
|
|
30
26
|
import "yup";
|
|
27
|
+
import "lodash/defaultsDeep";
|
|
28
|
+
import "lodash/omit";
|
|
29
|
+
import "qs";
|
|
31
30
|
import "immer";
|
|
31
|
+
import "lodash/get";
|
|
32
32
|
import "lodash/set";
|
|
33
|
-
import "qs";
|
|
34
33
|
import "@reduxjs/toolkit";
|
|
35
34
|
import "react-dnd";
|
|
36
35
|
import "react-dnd-html5-backend";
|
|
37
|
-
import "@strapi/design-system/v2";
|
|
38
36
|
import "lodash/cloneDeep";
|
|
39
37
|
import "./useContentTypes-53b449bb.mjs";
|
|
38
|
+
import "axios";
|
|
39
|
+
import "prop-types";
|
|
40
40
|
const ProtectedEditView = () => {
|
|
41
41
|
const permissions = useSelector(selectAdminPermissions);
|
|
42
42
|
return /* @__PURE__ */ jsx(CheckPagePermissions, { permissions: permissions.settings.webhooks.update, children: /* @__PURE__ */ jsx(EditView, {}) });
|
|
@@ -44,4 +44,4 @@ const ProtectedEditView = () => {
|
|
|
44
44
|
export {
|
|
45
45
|
ProtectedEditView as default
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=index-
|
|
47
|
+
//# sourceMappingURL=index-45ae7be1.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-45ae7be1.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Webhooks/ProtectedEditView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditView from '../EditView';\n\nconst ProtectedEditView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.webhooks.update}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedEditView;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,oBAAoB,MAAM;AACxB,QAAA,cAAc,YAAY,sBAAsB;AAGpD,SAAA,oBAAC,wBAAqB,aAAa,YAAY,SAAS,SAAS,QAC/D,UAAC,oBAAA,UAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const helperPlugin = require("@strapi/helper-plugin");
|
|
5
5
|
const reactRedux = require("react-redux");
|
|
6
|
-
const AuthenticatedApp = require("./AuthenticatedApp-
|
|
6
|
+
const AuthenticatedApp = require("./AuthenticatedApp-d1e28164.js");
|
|
7
7
|
const React = require("react");
|
|
8
8
|
const designSystem = require("@strapi/design-system");
|
|
9
9
|
const Icons = require("@strapi/icons");
|
|
@@ -19,7 +19,7 @@ const constants = require("./constants-85da8cc4.js");
|
|
|
19
19
|
const useReviewWorkflows = require("./useReviewWorkflows-799e0305.js");
|
|
20
20
|
require("semver/functions/lt");
|
|
21
21
|
require("semver/functions/valid");
|
|
22
|
-
require("./index-
|
|
22
|
+
require("./index-e2663a88.js");
|
|
23
23
|
require("react-dom/client");
|
|
24
24
|
require("invariant");
|
|
25
25
|
require("lodash/isFunction");
|
|
@@ -27,23 +27,23 @@ require("lodash/merge");
|
|
|
27
27
|
require("lodash/pick");
|
|
28
28
|
require("react-helmet");
|
|
29
29
|
require("@radix-ui/react-context");
|
|
30
|
-
require("
|
|
31
|
-
require("lodash/camelCase");
|
|
32
|
-
require("lodash/get");
|
|
33
|
-
require("lodash/omit");
|
|
34
|
-
require("prop-types");
|
|
35
|
-
require("lodash/defaultsDeep");
|
|
30
|
+
require("@strapi/design-system/v2");
|
|
36
31
|
require("formik");
|
|
32
|
+
require("lodash/camelCase");
|
|
37
33
|
require("yup");
|
|
34
|
+
require("lodash/defaultsDeep");
|
|
35
|
+
require("lodash/omit");
|
|
36
|
+
require("qs");
|
|
38
37
|
require("immer");
|
|
38
|
+
require("lodash/get");
|
|
39
39
|
require("lodash/set");
|
|
40
|
-
require("qs");
|
|
41
40
|
require("@reduxjs/toolkit");
|
|
42
41
|
require("react-dnd");
|
|
43
42
|
require("react-dnd-html5-backend");
|
|
44
|
-
require("@strapi/design-system/v2");
|
|
45
43
|
require("lodash/cloneDeep");
|
|
44
|
+
require("axios");
|
|
46
45
|
require("./DragLayer-f07eee6c.js");
|
|
46
|
+
require("prop-types");
|
|
47
47
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
48
48
|
const React__default = /* @__PURE__ */ _interopDefault(React);
|
|
49
49
|
const styled__default = /* @__PURE__ */ _interopDefault(styled);
|
|
@@ -308,4 +308,4 @@ function index() {
|
|
|
308
308
|
return /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.CheckPagePermissions, { permissions: permissions.settings["review-workflows"].main, children: /* @__PURE__ */ jsxRuntime.jsx(ReviewWorkflowsListView, {}) });
|
|
309
309
|
}
|
|
310
310
|
exports.default = index;
|
|
311
|
-
//# sourceMappingURL=index-
|
|
311
|
+
//# sourceMappingURL=index-470a72bf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-62b4b3fc.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Flex,\n IconButton,\n Loader,\n Table,\n Thead,\n Tbody,\n Tr,\n Td,\n TFooter,\n Th,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n Link,\n LinkButton,\n onRowClick,\n pxToRem,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useContentTypes } from '../../../../../../../../../admin/src/hooks/useContentTypes';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport * as Layout from '../../components/Layout';\nimport * as LimitsModal from '../../components/LimitsModal';\nimport { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from '../../constants';\nimport { useReviewWorkflows } from '../../hooks/useReviewWorkflows';\n\nconst ActionLink = styled(Link)`\n align-items: center;\n height: ${pxToRem(32)};\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}}`};\n width: ${pxToRem(32)};\n\n svg {\n height: ${pxToRem(12)};\n width: ${pxToRem(12)};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nexport function ReviewWorkflowsListView() {\n const { formatMessage } = useIntl();\n const { push } = useHistory();\n const { collectionTypes, singleTypes, isLoading: isLoadingModels } = useContentTypes();\n const { meta, workflows, isLoading, refetch } = useReviewWorkflows();\n const [workflowToDelete, setWorkflowToDelete] = React.useState(null);\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n const { del } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { trackUsage } = useTracking();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete },\n } = useRBAC(permissions.settings['review-workflows']);\n\n const limits = getFeature('review-workflows');\n\n const { mutateAsync, isLoading: isLoadingMutation } = useMutation(\n async ({ workflowId, stages }) => {\n const {\n data: { data },\n } = await del(`/admin/review-workflows/workflows/${workflowId}`, {\n data: stages,\n });\n\n return data;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.deleted', defaultMessage: 'Deleted' },\n });\n },\n }\n );\n\n const getContentTypeDisplayName = (uid) => {\n const contentType = [...collectionTypes, ...singleTypes].find(\n (contentType) => contentType.uid === uid\n );\n\n return contentType.info.displayName;\n };\n\n const handleDeleteWorkflow = (workflowId) => {\n setWorkflowToDelete(workflowId);\n };\n\n const toggleConfirmDeleteDialog = () => {\n setWorkflowToDelete(null);\n };\n\n const handleConfirmDeleteDialog = async () => {\n try {\n const res = await mutateAsync({ workflowId: workflowToDelete });\n\n await refetch();\n setWorkflowToDelete(null);\n\n return res;\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n\n return null;\n }\n };\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n\n React.useEffect(() => {\n if (!isLoading && !isLicenseLoading) {\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n }\n }\n }, [isLicenseLoading, isLoading, limits, meta?.workflowCount, meta.workflowsTotal]);\n\n return (\n <>\n <Layout.Header\n primaryAction={\n canCreate && (\n <LinkButton\n startIcon={<Plus />}\n size=\"S\"\n to=\"/settings/review-workflows/create\"\n onClick={(event) => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit. If so,\n * prevent the navigation and show the limits overlay.\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >= parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n event.preventDefault();\n setShowLimitModal(true);\n } else {\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </LinkButton>\n )\n }\n subtitle={formatMessage({\n id: 'Settings.review-workflows.list.page.subtitle',\n defaultMessage: 'Manage your content review process',\n })}\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n\n <Layout.Root>\n {isLoading || isLoadingModels ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.list.isLoading',\n defaultMessage: 'Workflows are loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Table\n colCount={3}\n footer={\n // TODO: we should be able to use a link here instead of an (inaccessible onClick) handler\n canCreate && (\n <TFooter\n icon={<Plus />}\n onClick={() => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >=\n parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n } else {\n push('/settings/review-workflows/create');\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </TFooter>\n )\n }\n rowCount={1}\n >\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.name.title',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.stages.title',\n defaultMessage: 'Stages',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.contentTypes.title',\n defaultMessage: 'Content Types',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.actions.title',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n\n <Tbody>\n {workflows.map((workflow) => (\n <Tr\n {...onRowClick({\n fn(event) {\n // Abort row onClick event when the user click on the delete button\n if (event.target.nodeName === 'BUTTON') {\n return;\n }\n\n push(`/settings/review-workflows/${workflow.id}`);\n },\n })}\n key={`workflow-${workflow.id}`}\n >\n <Td width={pxToRem(250)}>\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {workflow.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{workflow.stages.length}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {(workflow?.contentTypes ?? []).map(getContentTypeDisplayName).join(', ')}\n </Typography>\n </Td>\n <Td>\n <Flex alignItems=\"center\" justifyContent=\"end\">\n <ActionLink\n to={`/settings/review-workflows/${workflow.id}`}\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',\n defaultMessage: 'Edit {name}',\n },\n { name: workflow.name }\n )}\n >\n <Pencil />\n </ActionLink>\n\n {workflows.length > 1 && canDelete && (\n <IconButton\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.delete.label',\n defaultMessage: 'Delete {name}',\n },\n { name: 'Default workflow' }\n )}\n icon={<Trash />}\n noBorder\n onClick={() => {\n handleDeleteWorkflow(workflow.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n )}\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.review-workflows.list.page.delete.confirm.body',\n defaultMessage:\n 'If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?',\n }}\n isConfirmButtonLoading={isLoadingMutation}\n isOpen={!!workflowToDelete}\n onToggleDialog={toggleConfirmDeleteDialog}\n onConfirm={handleConfirmDeleteDialog}\n />\n\n <LimitsModal.Root isOpen={showLimitModal} onClose={() => setShowLimitModal(false)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </Layout.Root>\n </>\n );\n}\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\n\nimport { ReviewWorkflowsListView } from './ListView';\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['review-workflows'].main}>\n <ReviewWorkflowsListView />\n </CheckPagePermissions>\n );\n}\n"],"names":["styled","Link","pxToRem","useIntl","useHistory","useContentTypes","useReviewWorkflows","React","useFetchClient","useAPIErrorHandler","useNotification","useLicenseLimits","useTracking","useSelector","selectAdminPermissions","useRBAC","useMutation","contentType","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","jsxs","Fragment","jsx","Layout.Header","LinkButton","Plus","Layout.Root","Flex","Loader","Table","TFooter","Thead","Tr","Th","Typography","VisuallyHidden","Tbody","createElement","onRowClick","Td","Pencil","IconButton","Trash","ConfirmDialog","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body","CheckPagePermissions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-470a72bf.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Flex,\n IconButton,\n Loader,\n Table,\n Thead,\n Tbody,\n Tr,\n Td,\n TFooter,\n Th,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n Link,\n LinkButton,\n onRowClick,\n pxToRem,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useContentTypes } from '../../../../../../../../../admin/src/hooks/useContentTypes';\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\nimport * as Layout from '../../components/Layout';\nimport * as LimitsModal from '../../components/LimitsModal';\nimport { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from '../../constants';\nimport { useReviewWorkflows } from '../../hooks/useReviewWorkflows';\n\nconst ActionLink = styled(Link)`\n align-items: center;\n height: ${pxToRem(32)};\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}}`};\n width: ${pxToRem(32)};\n\n svg {\n height: ${pxToRem(12)};\n width: ${pxToRem(12)};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nexport function ReviewWorkflowsListView() {\n const { formatMessage } = useIntl();\n const { push } = useHistory();\n const { collectionTypes, singleTypes, isLoading: isLoadingModels } = useContentTypes();\n const { meta, workflows, isLoading, refetch } = useReviewWorkflows();\n const [workflowToDelete, setWorkflowToDelete] = React.useState(null);\n const [showLimitModal, setShowLimitModal] = React.useState(false);\n const { del } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { trackUsage } = useTracking();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete },\n } = useRBAC(permissions.settings['review-workflows']);\n\n const limits = getFeature('review-workflows');\n\n const { mutateAsync, isLoading: isLoadingMutation } = useMutation(\n async ({ workflowId, stages }) => {\n const {\n data: { data },\n } = await del(`/admin/review-workflows/workflows/${workflowId}`, {\n data: stages,\n });\n\n return data;\n },\n {\n onSuccess() {\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.deleted', defaultMessage: 'Deleted' },\n });\n },\n }\n );\n\n const getContentTypeDisplayName = (uid) => {\n const contentType = [...collectionTypes, ...singleTypes].find(\n (contentType) => contentType.uid === uid\n );\n\n return contentType.info.displayName;\n };\n\n const handleDeleteWorkflow = (workflowId) => {\n setWorkflowToDelete(workflowId);\n };\n\n const toggleConfirmDeleteDialog = () => {\n setWorkflowToDelete(null);\n };\n\n const handleConfirmDeleteDialog = async () => {\n try {\n const res = await mutateAsync({ workflowId: workflowToDelete });\n\n await refetch();\n setWorkflowToDelete(null);\n\n return res;\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n\n return null;\n }\n };\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n\n React.useEffect(() => {\n if (!isLoading && !isLicenseLoading) {\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n }\n }\n }, [isLicenseLoading, isLoading, limits, meta?.workflowCount, meta.workflowsTotal]);\n\n return (\n <>\n <Layout.Header\n primaryAction={\n canCreate && (\n <LinkButton\n startIcon={<Plus />}\n size=\"S\"\n to=\"/settings/review-workflows/create\"\n onClick={(event) => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit. If so,\n * prevent the navigation and show the limits overlay.\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >= parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n event.preventDefault();\n setShowLimitModal(true);\n } else {\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </LinkButton>\n )\n }\n subtitle={formatMessage({\n id: 'Settings.review-workflows.list.page.subtitle',\n defaultMessage: 'Manage your content review process',\n })}\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n\n <Layout.Root>\n {isLoading || isLoadingModels ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.list.isLoading',\n defaultMessage: 'Workflows are loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Table\n colCount={3}\n footer={\n // TODO: we should be able to use a link here instead of an (inaccessible onClick) handler\n canCreate && (\n <TFooter\n icon={<Plus />}\n onClick={() => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n meta?.workflowCount >=\n parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)\n ) {\n setShowLimitModal(true);\n } else {\n push('/settings/review-workflows/create');\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </TFooter>\n )\n }\n rowCount={1}\n >\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.name.title',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.stages.title',\n defaultMessage: 'Stages',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.contentTypes.title',\n defaultMessage: 'Content Types',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.actions.title',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n\n <Tbody>\n {workflows.map((workflow) => (\n <Tr\n {...onRowClick({\n fn(event) {\n // Abort row onClick event when the user click on the delete button\n if (event.target.nodeName === 'BUTTON') {\n return;\n }\n\n push(`/settings/review-workflows/${workflow.id}`);\n },\n })}\n key={`workflow-${workflow.id}`}\n >\n <Td width={pxToRem(250)}>\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {workflow.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{workflow.stages.length}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {(workflow?.contentTypes ?? []).map(getContentTypeDisplayName).join(', ')}\n </Typography>\n </Td>\n <Td>\n <Flex alignItems=\"center\" justifyContent=\"end\">\n <ActionLink\n to={`/settings/review-workflows/${workflow.id}`}\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',\n defaultMessage: 'Edit {name}',\n },\n { name: workflow.name }\n )}\n >\n <Pencil />\n </ActionLink>\n\n {workflows.length > 1 && canDelete && (\n <IconButton\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.delete.label',\n defaultMessage: 'Delete {name}',\n },\n { name: 'Default workflow' }\n )}\n icon={<Trash />}\n noBorder\n onClick={() => {\n handleDeleteWorkflow(workflow.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n )}\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.review-workflows.list.page.delete.confirm.body',\n defaultMessage:\n 'If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?',\n }}\n isConfirmButtonLoading={isLoadingMutation}\n isOpen={!!workflowToDelete}\n onToggleDialog={toggleConfirmDeleteDialog}\n onConfirm={handleConfirmDeleteDialog}\n />\n\n <LimitsModal.Root isOpen={showLimitModal} onClose={() => setShowLimitModal(false)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </Layout.Root>\n </>\n );\n}\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\n\nimport { ReviewWorkflowsListView } from './ListView';\n\nexport default function () {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['review-workflows'].main}>\n <ReviewWorkflowsListView />\n </CheckPagePermissions>\n );\n}\n"],"names":["styled","Link","pxToRem","useIntl","useHistory","useContentTypes","useReviewWorkflows","React","useFetchClient","useAPIErrorHandler","useNotification","useLicenseLimits","useTracking","useSelector","selectAdminPermissions","useRBAC","useMutation","contentType","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","jsxs","Fragment","jsx","Layout.Header","LinkButton","Plus","Layout.Root","Flex","Loader","Table","TFooter","Thead","Tr","Th","Typography","VisuallyHidden","Tbody","createElement","onRowClick","Td","Pencil","IconButton","Trash","ConfirmDialog","LimitsModal.Root","LimitsModal.Title","LimitsModal.Body","CheckPagePermissions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,aAAaA,gBAAAA,QAAOC,aAAAA,IAAI;AAAA;AAAA,YAElBC,aAAAA,QAAQ,EAAE,CAAC;AAAA;AAAA;AAAA,aAGV,CAAC,EAAE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,CAAC,GAAG;AAAA,WACtCA,aAAAA,QAAQ,EAAE,CAAC;AAAA;AAAA;AAAA,cAGRA,aAAAA,QAAQ,EAAE,CAAC;AAAA,aACZA,aAAAA,QAAQ,EAAE,CAAC;AAAA;AAAA;AAAA,cAGV,CAAC,EAAE,MAAA,MAAY,MAAM,OAAO,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAQpC,CAAC,EAAE,MAAA,MAAY,MAAM,OAAO,UAAU;AAAA;AAAA;AAAA;AAAA;AAM/C,SAAS,0BAA0B;AAClC,QAAA,EAAE,kBAAkBC,UAAAA;AACpB,QAAA,EAAE,SAASC,eAAAA;AACjB,QAAM,EAAE,iBAAiB,aAAa,WAAW,gBAAA,IAAoBC,gBAAAA;AACrE,QAAM,EAAE,MAAM,WAAW,WAAW,QAAA,IAAYC,mBAAAA;AAChD,QAAM,CAAC,kBAAkB,mBAAmB,IAAIC,eAAAA,QAAM,SAAS,IAAI;AACnE,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,eAAAA,QAAM,SAAS,KAAK;AAC1D,QAAA,EAAE,QAAQC,aAAAA;AACV,QAAA,EAAE,mBAAmBC,aAAAA;AAC3B,QAAM,qBAAqBC,aAAAA;AAC3B,QAAM,EAAE,YAAY,WAAW,qBAAqBC,iBAAiB,iBAAA;AAC/D,QAAA,EAAE,eAAeC,aAAAA;AACjB,QAAA,cAAcC,uBAAYC,iBAAAA,sBAAsB;AAChD,QAAA;AAAA,IACJ,gBAAgB,EAAE,WAAW,UAAU;AAAA,EACrC,IAAAC,aAAA,QAAQ,YAAY,SAAS,kBAAkB,CAAC;AAE9C,QAAA,SAAS,WAAW,kBAAkB;AAE5C,QAAM,EAAE,aAAa,WAAW,kBAAsB,IAAAC,WAAA;AAAA,IACpD,OAAO,EAAE,YAAY,aAAa;AAC1B,YAAA;AAAA,QACJ,MAAM,EAAE,KAAK;AAAA,MACX,IAAA,MAAM,IAAI,qCAAqC,UAAU,IAAI;AAAA,QAC/D,MAAM;AAAA,MAAA,CACP;AAEM,aAAA;AAAA,IACT;AAAA,IACA;AAAA,MACE,YAAY;AACS,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,EAAE,IAAI,gCAAgC,gBAAgB,UAAU;AAAA,QAAA,CAC1E;AAAA,MACH;AAAA,IACF;AAAA,EAAA;AAGI,QAAA,4BAA4B,CAAC,QAAQ;AACzC,UAAM,cAAc,CAAC,GAAG,iBAAiB,GAAG,WAAW,EAAE;AAAA,MACvD,CAACC,iBAAgBA,aAAY,QAAQ;AAAA,IAAA;AAGvC,WAAO,YAAY,KAAK;AAAA,EAAA;AAGpB,QAAA,uBAAuB,CAAC,eAAe;AAC3C,wBAAoB,UAAU;AAAA,EAAA;AAGhC,QAAM,4BAA4B,MAAM;AACtC,wBAAoB,IAAI;AAAA,EAAA;AAG1B,QAAM,4BAA4B,YAAY;AACxC,QAAA;AACF,YAAM,MAAM,MAAM,YAAY,EAAE,YAAY,iBAAkB,CAAA;AAE9D,YAAM,QAAQ;AACd,0BAAoB,IAAI;AAEjB,aAAA;AAAA,aACA,OAAO;AACK,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,eAAe,KAAK;AAAA,MAAA,CAC9B;AAEM,aAAA;AAAA,IACT;AAAA,EAAA;AAgBFV,iBAAA,QAAM,UAAU,MAAM;AAChB,QAAA,CAAC,aAAa,CAAC,kBAAkB;AAEjC,UAAA,SAASW,6CAAmC,KAC5C,MAAM,gBAAgB,SAAS,OAAOA,UAAAA,mCAAmC,GAAG,EAAE,GAC9E;AACA,0BAAkB,IAAI;AAAA,MACxB;AAAA,IACF;AAAA,EAAA,GACC,CAAC,kBAAkB,WAAW,QAAQ,MAAM,eAAe,KAAK,cAAc,CAAC;AAElF,SAEIC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IAAAC,2BAAA;AAAA,MAACC,OAAO;AAAA,MAAP;AAAA,QACC,eACE,aACED,2BAAA;AAAA,UAACE,aAAA;AAAA,UAAA;AAAA,YACC,0CAAYC,MAAK,MAAA,EAAA;AAAA,YACjB,MAAK;AAAA,YACL,IAAG;AAAA,YACH,SAAS,CAAC,UAAU;AAYhB,kBAAA,SAASN,6CAAmC,KAC5C,MAAM,iBAAiB,SAAS,OAAOA,UAAAA,mCAAmC,GAAG,EAAE,GAC/E;AACA,sBAAM,eAAe;AACrB,kCAAkB,IAAI;AAAA,cAAA,OACjB;AACL,2BAAW,oBAAoB;AAAA,cACjC;AAAA,YACF;AAAA,YAEC,UAAc,cAAA;AAAA,cACb,IAAI;AAAA,cACJ,gBAAgB;AAAA,YAAA,CACjB;AAAA,UAAA;AAAA,QACH;AAAA,QAGJ,UAAU,cAAc;AAAA,UACtB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,QACD,OAAO,cAAc;AAAA,UACnB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IACH;AAAA,IAEAC,gCAACM,OAAAA,MAAA,EACE,UAAA;AAAA,MAAA,aAAa,kBACXJ,+BAAAK,aAAAA,MAAA,EAAK,gBAAe,UACnB,UAAAL,2BAAAA,IAACM,aAAAA,UACE,UAAc,cAAA;AAAA,QACb,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAAA,CACjB,EACH,CAAA,EACF,CAAA,IAEAR,2BAAA;AAAA,QAACS,aAAA;AAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV;AAAA;AAAA,YAEE,aACEP,2BAAA;AAAA,cAACQ,aAAA;AAAA,cAAA;AAAA,gBACC,qCAAOL,MAAK,MAAA,EAAA;AAAA,gBACZ,SAAS,MAAM;AAWX,sBAAA,SAASN,6CAAmC,KAC5C,MAAM,iBACJ,SAAS,OAAOA,UAAAA,mCAAmC,GAAG,EAAE,GAC1D;AACA,sCAAkB,IAAI;AAAA,kBAAA,OACjB;AACL,yBAAK,mCAAmC;AACxC,+BAAW,oBAAoB;AAAA,kBACjC;AAAA,gBACF;AAAA,gBAEC,UAAc,cAAA;AAAA,kBACb,IAAI;AAAA,kBACJ,gBAAgB;AAAA,gBAAA,CACjB;AAAA,cAAA;AAAA,YACH;AAAA;AAAA,UAGJ,UAAU;AAAA,UAEV,UAAA;AAAA,YAACG,2BAAA,IAAAS,aAAA,OAAA,EACC,0CAACC,aAAAA,IACC,EAAA,UAAA;AAAA,cAAAV,+BAACW,aAAAA,IACC,EAAA,UAAAX,2BAAA,IAACY,yBAAW,EAAA,SAAQ,SACjB,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB,GACH,EACF,CAAA;AAAA,6CACCD,aAAAA,IACC,EAAA,UAAAX,2BAAA,IAACY,yBAAW,EAAA,SAAQ,SACjB,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB,GACH,EACF,CAAA;AAAA,6CACCD,aAAAA,IACC,EAAA,UAAAX,2BAAA,IAACY,yBAAW,EAAA,SAAQ,SACjB,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB,GACH,EACF,CAAA;AAAA,cACCZ,2BAAA,IAAAW,aAAA,IAAA,EACC,UAACX,2BAAA,IAAAa,6BAAA,EACE,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB,GACH,EACF,CAAA;AAAA,YAAA,EAAA,CACF,EACF,CAAA;AAAA,YAECb,2BAAA,IAAAc,aAAA,OAAA,EACE,UAAU,UAAA,IAAI,CAAC,aACdC,sBAAA;AAAA,cAACL,aAAA;AAAA,cAAA;AAAA,gBACE,GAAGM,wBAAW;AAAA,kBACb,GAAG,OAAO;AAEJ,wBAAA,MAAM,OAAO,aAAa,UAAU;AACtC;AAAA,oBACF;AAEK,yBAAA,8BAA8B,SAAS,EAAE,EAAE;AAAA,kBAClD;AAAA,gBAAA,CACD;AAAA,gBACD,KAAK,YAAY,SAAS,EAAE;AAAA,cAAA;AAAA,6CAE3BC,aAAAA,IAAG,EAAA,OAAOpC,aAAAA,QAAQ,GAAG,GACpB,UAACmB,2BAAA,IAAAY,yBAAA,EAAW,WAAU,cAAa,YAAW,QAAO,UAAQ,MAC1D,UAAA,SAAS,KACZ,CAAA,GACF;AAAA,cACAZ,2BAAAA,IAACiB,aAAAA,MACC,UAACjB,2BAAA,IAAAY,aAAA,YAAA,EAAW,WAAU,cAAc,UAAA,SAAS,OAAO,OAAA,CAAO,EAC7D,CAAA;AAAA,6CACCK,aAAAA,IACC,EAAA,UAAAjB,2BAAAA,IAACY,aAAAA,YAAW,EAAA,WAAU,cAClB,WAAU,UAAA,gBAAgB,CAAC,GAAG,IAAI,yBAAyB,EAAE,KAAK,IAAI,EAC1E,CAAA,GACF;AAAA,6CACCK,aACC,IAAA,EAAA,UAAAnB,gCAACO,aAAAA,QAAK,YAAW,UAAS,gBAAe,OACvC,UAAA;AAAA,gBAAAL,2BAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,IAAI,8BAA8B,SAAS,EAAE;AAAA,oBAC7C,cAAY;AAAA,sBACV;AAAA,wBACE,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAClB;AAAA,sBACA,EAAE,MAAM,SAAS,KAAK;AAAA,oBACxB;AAAA,oBAEA,yCAACkB,MAAO,QAAA,EAAA;AAAA,kBAAA;AAAA,gBACV;AAAA,gBAEC,UAAU,SAAS,KAAK,aACvBlB,2BAAA;AAAA,kBAACmB,aAAA;AAAA,kBAAA;AAAA,oBACC,cAAY;AAAA,sBACV;AAAA,wBACE,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBAClB;AAAA,sBACA,EAAE,MAAM,mBAAmB;AAAA,oBAC7B;AAAA,oBACA,qCAAOC,MAAM,OAAA,EAAA;AAAA,oBACb,UAAQ;AAAA,oBACR,SAAS,MAAM;AACb,2CAAqB,SAAS,EAAE;AAAA,oBAClC;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA,EAAA,CAEJ,EACF,CAAA;AAAA,YAEH,CAAA,GACH;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,MAGFpB,2BAAA;AAAA,QAACqB,aAAA;AAAA,QAAA;AAAA,UACC,UAAU;AAAA,YACR,IAAI;AAAA,YACJ,gBACE;AAAA,UACJ;AAAA,UACA,wBAAwB;AAAA,UACxB,QAAQ,CAAC,CAAC;AAAA,UACV,gBAAgB;AAAA,UAChB,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAEAvB,gCAACwB,YAAAA,aAAA,EAAiB,QAAQ,gBAAgB,SAAS,MAAM,kBAAkB,KAAK,GAC9E,UAAA;AAAA,QAACtB,2BAAAA,IAAAuB,YAAA,OAAA,EACE,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QACjB,CAAA,GACH;AAAA,QAECvB,2BAAAA,IAAAwB,YAAA,MAAA,EACE,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QACjB,CAAA,GACH;AAAA,MAAA,GACF;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;ACrY2B,SAAA,QAAA;AACnB,QAAA,cAAchC,uBAAYC,iBAAAA,sBAAsB;AAGpD,SAAAO,2BAAA,IAACyB,aAAqB,sBAAA,EAAA,aAAa,YAAY,SAAS,kBAAkB,EAAE,MAC1E,UAACzB,2BAAA,IAAA,yBAAA,CAAwB,CAAA,EAC3B,CAAA;AAEJ;;"}
|
|
@@ -9,14 +9,14 @@ import "lodash/cloneDeep";
|
|
|
9
9
|
import "lodash/get";
|
|
10
10
|
import "lodash/omit";
|
|
11
11
|
import "lodash/isNaN";
|
|
12
|
-
import "./schema-
|
|
12
|
+
import "./schema-ac25a47b.mjs";
|
|
13
13
|
import "lodash/merge";
|
|
14
14
|
import "lodash/set";
|
|
15
|
-
import { g as getDisplayName } from "./index-
|
|
15
|
+
import { g as getDisplayName } from "./index-768b7de9.mjs";
|
|
16
16
|
import "react";
|
|
17
17
|
import "react-dnd";
|
|
18
18
|
import "@reduxjs/toolkit";
|
|
19
|
-
import "./index-
|
|
19
|
+
import "./index-60a57d31.mjs";
|
|
20
20
|
import "react-dom/client";
|
|
21
21
|
import "invariant";
|
|
22
22
|
import "lodash/isFunction";
|
|
@@ -25,27 +25,27 @@ import "react-helmet";
|
|
|
25
25
|
import "react-router-dom";
|
|
26
26
|
import "react-redux";
|
|
27
27
|
import "@radix-ui/react-context";
|
|
28
|
-
import "
|
|
29
|
-
import "lodash/camelCase";
|
|
30
|
-
import "lodash/defaultsDeep";
|
|
31
|
-
import "styled-components";
|
|
28
|
+
import "@strapi/design-system/v2";
|
|
32
29
|
import "@strapi/icons";
|
|
33
30
|
import "formik";
|
|
34
|
-
import "
|
|
31
|
+
import "lodash/camelCase";
|
|
35
32
|
import "react-query";
|
|
36
|
-
import "
|
|
33
|
+
import "styled-components";
|
|
34
|
+
import "yup";
|
|
35
|
+
import "lodash/defaultsDeep";
|
|
37
36
|
import "qs";
|
|
37
|
+
import "immer";
|
|
38
38
|
import "lodash/isBoolean";
|
|
39
39
|
import "lodash/isEmpty";
|
|
40
40
|
import "lodash/toNumber";
|
|
41
41
|
import "lodash/sortBy";
|
|
42
42
|
import "./DragLayer-bff96835.mjs";
|
|
43
|
-
import "./AuthenticatedApp-
|
|
43
|
+
import "./AuthenticatedApp-fd7e406d.mjs";
|
|
44
44
|
import "semver/functions/lt";
|
|
45
45
|
import "semver/functions/valid";
|
|
46
46
|
import "react-dnd-html5-backend";
|
|
47
|
-
import "@strapi/design-system/v2";
|
|
48
47
|
import "react-error-boundary";
|
|
48
|
+
import "axios";
|
|
49
49
|
import "lodash/isObject";
|
|
50
50
|
import "lodash/isEqual";
|
|
51
51
|
import "lodash/upperFirst";
|
|
@@ -81,6 +81,7 @@ import "lodash/isArray";
|
|
|
81
81
|
import "lodash/flatMap";
|
|
82
82
|
import "lodash/uniq";
|
|
83
83
|
import "./useAdminUsers-09f86a58.mjs";
|
|
84
|
+
import "./formatAPIErrors-db6ed675.mjs";
|
|
84
85
|
import "date-fns/parseISO";
|
|
85
86
|
import "lodash/isNumber";
|
|
86
87
|
import "lodash/groupBy";
|
|
@@ -123,4 +124,4 @@ export {
|
|
|
123
124
|
ReviewWorkflowsAssigneeEE,
|
|
124
125
|
ReviewWorkflowsStageEE
|
|
125
126
|
};
|
|
126
|
-
//# sourceMappingURL=index-
|
|
127
|
+
//# sourceMappingURL=index-4a46c368.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-4a46c368.mjs","sources":["../../ee/admin/src/content-manager/pages/ListView/ReviewWorkflowsColumn/ReviewWorkflowsStageEE.js","../../ee/admin/src/content-manager/pages/ListView/ReviewWorkflowsColumn/ReviewWorkflowsAssigneeEE.js"],"sourcesContent":["import React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { pxToRem } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nimport { STAGE_COLOR_DEFAULT } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/constants';\nimport { getStageColorByHex } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\nexport function ReviewWorkflowsStageEE({ color, name }) {\n const { themeColorName } = getStageColorByHex(color);\n\n return (\n <Flex alignItems=\"center\" gap={2} maxWidth={pxToRem(300)}>\n <Box\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n\n <Typography fontWeight=\"regular\" textColor=\"neutral700\" ellipsis>\n {name}\n </Typography>\n </Flex>\n );\n}\n\nReviewWorkflowsStageEE.defaultProps = {\n color: STAGE_COLOR_DEFAULT,\n};\n\nReviewWorkflowsStageEE.propTypes = {\n color: PropTypes.string,\n name: PropTypes.string.isRequired,\n};\n","import React from 'react';\n\nimport { Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../admin/src/content-manager/utils';\n\nexport function ReviewWorkflowsAssigneeEE({ user }) {\n const { formatMessage } = useIntl();\n\n return <Typography textColor=\"neutral800\">{getDisplayName(user, formatMessage)}</Typography>;\n}\n\nReviewWorkflowsAssigneeEE.propTypes = {\n user: PropTypes.shape({\n firstname: PropTypes.string,\n lastname: PropTypes.string,\n username: PropTypes.string,\n }).isRequired,\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,SAAS,uBAAuB,EAAE,OAAO,QAAQ;AACtD,QAAM,EAAE,eAAA,IAAmB,mBAAmB,KAAK;AAGjD,SAAA,qBAAC,QAAK,YAAW,UAAS,KAAK,GAAG,UAAU,QAAQ,GAAG,GACrD,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,aAAa,mBAAmB,aAAa,eAAe;AAAA,QAC5D,WAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEA,oBAAC,cAAW,YAAW,WAAU,WAAU,cAAa,UAAQ,MAC7D,UACH,KAAA,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;AAEA,uBAAuB,eAAe;AAAA,EACpC,OAAO;AACT;AAEA,uBAAuB,YAAY;AAAA,EACjC,OAAO,UAAU;AAAA,EACjB,MAAM,UAAU,OAAO;AACzB;AC7BgB,SAAA,0BAA0B,EAAE,QAAQ;AAC5C,QAAA,EAAE,kBAAkB;AAE1B,6BAAQ,YAAW,EAAA,WAAU,cAAc,UAAe,eAAA,MAAM,aAAa,EAAE,CAAA;AACjF;AAEA,0BAA0B,YAAY;AAAA,EACpC,MAAM,UAAU,MAAM;AAAA,IACpB,WAAW,UAAU;AAAA,IACrB,UAAU,UAAU;AAAA,IACpB,UAAU,UAAU;AAAA,EACrB,CAAA,EAAE;AACL;"}
|
|
@@ -5,13 +5,13 @@ import { useRBAC, pxToRem } from "@strapi/helper-plugin";
|
|
|
5
5
|
import { ExclamationMarkCircle, ExternalLink } from "@strapi/icons";
|
|
6
6
|
import { useIntl } from "react-intl";
|
|
7
7
|
import { useSelector } from "react-redux";
|
|
8
|
-
import { s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
8
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-fd7e406d.mjs";
|
|
9
9
|
import { u as useLicenseLimits } from "./useLicenseLimits-13a102d3.mjs";
|
|
10
10
|
import "react";
|
|
11
11
|
import "react-query";
|
|
12
12
|
import "semver/functions/lt";
|
|
13
13
|
import "semver/functions/valid";
|
|
14
|
-
import "./index-
|
|
14
|
+
import "./index-60a57d31.mjs";
|
|
15
15
|
import "react-dom/client";
|
|
16
16
|
import "invariant";
|
|
17
17
|
import "lodash/isFunction";
|
|
@@ -20,18 +20,16 @@ import "lodash/pick";
|
|
|
20
20
|
import "react-helmet";
|
|
21
21
|
import "react-router-dom";
|
|
22
22
|
import "@radix-ui/react-context";
|
|
23
|
-
import "
|
|
23
|
+
import "formik";
|
|
24
24
|
import "lodash/camelCase";
|
|
25
|
-
import "lodash/get";
|
|
26
|
-
import "lodash/omit";
|
|
27
|
-
import "prop-types";
|
|
28
|
-
import "lodash/defaultsDeep";
|
|
29
25
|
import "styled-components";
|
|
30
|
-
import "formik";
|
|
31
26
|
import "yup";
|
|
27
|
+
import "lodash/defaultsDeep";
|
|
28
|
+
import "lodash/omit";
|
|
29
|
+
import "qs";
|
|
32
30
|
import "immer";
|
|
31
|
+
import "lodash/get";
|
|
33
32
|
import "lodash/set";
|
|
34
|
-
import "qs";
|
|
35
33
|
import "@reduxjs/toolkit";
|
|
36
34
|
import "react-dnd";
|
|
37
35
|
import "react-dnd-html5-backend";
|
|
@@ -124,4 +122,4 @@ const AdminSeatInfoEE = () => {
|
|
|
124
122
|
export {
|
|
125
123
|
AdminSeatInfoEE
|
|
126
124
|
};
|
|
127
|
-
//# sourceMappingURL=index-
|
|
125
|
+
//# sourceMappingURL=index-52b70b56.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-52b70b56.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Flex, GridItem, Icon, Tooltip, Typography } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { pxToRem, useRBAC } from '@strapi/helper-plugin';\nimport { ExclamationMarkCircle, ExternalLink } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\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 AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(permissions.settings.users);\n const {\n license: { licenseLimitStatus, enforcementUserCount, permittedSeats, isHostedOnStrapiCloud },\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !permittedSeats) {\n return null;\n }\n\n return (\n <GridItem col={6} s={12}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography as=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n // eslint-disable-next-line react/no-unstable-nested-components\n text: (chunks) => (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : null}\n >\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n description={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <Icon\n width={`${pxToRem(14)}rem`}\n height={`${pxToRem(14)}rem`}\n color=\"danger500\"\n as={ExclamationMarkCircle}\n />\n </Tooltip>\n )}\n </Flex>\n <Link\n href={isHostedOnStrapiCloud ? BILLING_STRAPI_CLOUD_URL : BILLING_SELF_HOSTED_URL}\n isExternal\n endIcon={<ExternalLink />}\n >\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage:\n '{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}',\n },\n { isHostedOnStrapiCloud }\n )}\n </Link>\n </GridItem>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,2BAA2B;AACjC,MAAM,0BAA0B;AAEzB,MAAM,kBAAkB,MAAM;AAC7B,QAAA,EAAE,kBAAkB;AACpB,QAAA,cAAc,YAAY,sBAAsB;AAChD,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,gBAAgB,EAAE,SAAS,WAAW,WAAW,UAAU;AAAA,EACzD,IAAA,QAAQ,YAAY,SAAS,KAAK;AAChC,QAAA;AAAA,IACJ,SAAS,EAAE,oBAAoB,sBAAsB,gBAAgB,sBAAsB;AAAA,IAC3F;AAAA,IACA,WAAW;AAAA,MACT,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,IAKnB,SAAS,CAAC,iBAAiB,WAAW,aAAa,aAAa;AAAA,EAAA,CACjE;AAED,QAAM,YAAY,iBAAiB;AAE/B,MAAA,WAAW,aAAa,CAAC,gBAAgB;AACpC,WAAA;AAAA,EACT;AAEA,SACG,qBAAA,UAAA,EAAS,KAAK,GAAG,GAAG,IACnB,UAAA;AAAA,IAAA,oBAAC,YAAW,EAAA,SAAQ,SAAQ,WAAU,cACnC,UAAc,cAAA;AAAA,MACb,IAAI;AAAA,MACJ,gBAAgB;AAAA,IACjB,CAAA,GACH;AAAA,IACA,qBAAC,MAAK,EAAA,KAAK,GACT,UAAA;AAAA,MAAA,oBAAC,MACC,EAAA,UAAA,oBAAC,YAAW,EAAA,IAAG,KACZ,UAAA;AAAA,QACC;AAAA,UACE,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,UACE;AAAA,UACA;AAAA;AAAA,UAEA,MAAM,CAAC,WACL;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,YAAW;AAAA,cACX,WAAW,uBAAuB,iBAAiB,cAAc;AAAA,cAEhE,UAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAEJ;AAAA,SAEJ,EACF,CAAA;AAAA,MACC,uBAAuB,gBACtB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,aAAa,cAAc;AAAA,YACzB,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB;AAAA,UAED,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO,GAAG,QAAQ,EAAE,CAAC;AAAA,cACrB,QAAQ,GAAG,QAAQ,EAAE,CAAC;AAAA,cACtB,OAAM;AAAA,cACN,IAAI;AAAA,YAAA;AAAA,UACN;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,wBAAwB,2BAA2B;AAAA,QACzD,YAAU;AAAA,QACV,6BAAU,cAAa,EAAA;AAAA,QAEtB,UAAA;AAAA,UACC;AAAA,YACE,IAAI;AAAA,YACJ,gBACE;AAAA,UACJ;AAAA,UACA,EAAE,sBAAsB;AAAA,QAC1B;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
|
|
@@ -3,7 +3,7 @@ import React__default, { useEffect } from "react";
|
|
|
3
3
|
import { getFetchClient, useAppInfo, useNotification, useOverlayBlocker, useFocusWhenNavigate, SettingsPageTitle, Link, LoadingIndicatorPage, Form, GenericInput, auth, useRBAC } from "@strapi/helper-plugin";
|
|
4
4
|
import { useSelector } from "react-redux";
|
|
5
5
|
import { useRouteMatch, useHistory, useLocation, Redirect } from "react-router-dom";
|
|
6
|
-
import { g as getFullName, s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
6
|
+
import { g as getFullName, s as selectAdminPermissions } from "./AuthenticatedApp-fd7e406d.mjs";
|
|
7
7
|
import { Main, HeaderLayout, Button, ContentLayout, Box, Flex, Typography, Grid, GridItem } from "@strapi/design-system";
|
|
8
8
|
import { Check, ArrowLeft } from "@strapi/icons";
|
|
9
9
|
import { Formik } from "formik";
|
|
@@ -13,8 +13,9 @@ import pick from "lodash/pick";
|
|
|
13
13
|
import PropTypes from "prop-types";
|
|
14
14
|
import { useIntl } from "react-intl";
|
|
15
15
|
import { u as useAdminUsers } from "./useAdminUsers-09f86a58.mjs";
|
|
16
|
-
import { p as useEnterprise
|
|
17
|
-
import {
|
|
16
|
+
import { p as useEnterprise } from "./index-60a57d31.mjs";
|
|
17
|
+
import { f as formatAPIErrors } from "./formatAPIErrors-db6ed675.mjs";
|
|
18
|
+
import { M as MagicLinkCE, S as SelectRoles } from "./index-d81f74c4.mjs";
|
|
18
19
|
import { a as schema } from "./edit-923cefa0.mjs";
|
|
19
20
|
import "react-query";
|
|
20
21
|
import "semver/functions/lt";
|
|
@@ -32,10 +33,9 @@ import "lodash/isFunction";
|
|
|
32
33
|
import "lodash/merge";
|
|
33
34
|
import "react-helmet";
|
|
34
35
|
import "@radix-ui/react-context";
|
|
35
|
-
import "axios";
|
|
36
36
|
import "lodash/camelCase";
|
|
37
|
-
import "lodash/defaultsDeep";
|
|
38
37
|
import "yup";
|
|
38
|
+
import "lodash/defaultsDeep";
|
|
39
39
|
import "qs";
|
|
40
40
|
import "@reduxjs/toolkit";
|
|
41
41
|
const putUser = async (id, body) => {
|
|
@@ -169,7 +169,7 @@ const EditPage = ({ canUpdate }) => {
|
|
|
169
169
|
const { lockApp, unlockApp } = useOverlayBlocker();
|
|
170
170
|
const MagicLink = useEnterprise(
|
|
171
171
|
MagicLinkCE,
|
|
172
|
-
async () => (await import("./index-
|
|
172
|
+
async () => (await import("./index-f69d3930.mjs")).MagicLinkEE
|
|
173
173
|
);
|
|
174
174
|
useFocusWhenNavigate();
|
|
175
175
|
const {
|
|
@@ -409,4 +409,4 @@ const ProtectedEditPage = () => {
|
|
|
409
409
|
export {
|
|
410
410
|
ProtectedEditPage as default
|
|
411
411
|
};
|
|
412
|
-
//# sourceMappingURL=index-
|
|
412
|
+
//# sourceMappingURL=index-55f9b6b3.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-5ad8482b.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Users/EditPage/utils/api.js","../../admin/src/pages/SettingsPage/pages/Users/EditPage/utils/layout.js","../../admin/src/pages/SettingsPage/pages/Users/EditPage/index.js","../../admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js"],"sourcesContent":["import { getFetchClient } from '@strapi/helper-plugin';\n\nconst putUser = async (id, body) => {\n const { put } = getFetchClient();\n\n const { data } = await put(`/admin/users/${id}`, body);\n\n return data.data;\n};\n\nexport { putUser };\n","const layout = [\n [\n {\n intlLabel: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n {\n intlLabel: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n [\n {\n intlLabel: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n {\n intlLabel: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n [\n {\n intlLabel: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password',\n size: {\n col: 6,\n xs: 12,\n },\n autoComplete: 'new-password',\n },\n {\n intlLabel: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password',\n size: {\n col: 6,\n xs: 12,\n },\n autoComplete: 'new-password',\n },\n ],\n [\n {\n intlLabel: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'bool',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n];\n\nexport default layout;\n","import React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Main,\n Typography,\n} from '@strapi/design-system';\nimport {\n auth,\n Form,\n GenericInput,\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAppInfo,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft, Check } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport get from 'lodash/get';\nimport omit from 'lodash/omit';\nimport pick from 'lodash/pick';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../hooks/useAdminUsers';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { formatAPIErrors } from '../../../../../utils/formatAPIErrors';\nimport { getFullName } from '../../../../../utils/getFullName';\nimport { MagicLinkCE } from '../components/MagicLink';\nimport SelectRoles from '../components/SelectRoles';\nimport { editValidation } from '../utils/validations/users';\n\nimport { putUser } from './utils/api';\nimport layout from './utils/layout';\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'];\n\nconst EditPage = ({ canUpdate }) => {\n const { formatMessage } = useIntl();\n const {\n params: { id },\n } = useRouteMatch('/settings/users/:id');\n const { push } = useHistory();\n const { setUserDisplayName } = useAppInfo();\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLink'\n )\n ).MagicLinkEE\n );\n\n useFocusWhenNavigate();\n\n const {\n users: [user],\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n cacheTime: 0,\n\n onError(error) {\n const { status } = error.response;\n\n // Redirect the use to the homepage if is not allowed to read\n if (status === 403) {\n toggleNotification({\n type: 'info',\n message: {\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n },\n });\n\n push('/');\n } else {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const handleSubmit = async (body, actions) => {\n lockApp();\n\n try {\n const data = await putUser(id, omit(body, 'confirmPassword'));\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n const userInfos = auth.getUserInfo();\n\n // The user is updating himself\n if (id.toString() === userInfos.id.toString()) {\n auth.setUserInfo(data);\n\n const userDisplayName = get(body, 'username') || getFullName(body.firstname, body.lastname);\n\n setUserDisplayName(userDisplayName);\n }\n actions.setValues(pick(body, fieldsToPick));\n } catch (err) {\n // FIXME when API errors are ready\n const errors = formatAPIErrors(err.response.data);\n const fieldsErrors = Object.keys(errors).reduce((acc, current) => {\n acc[current] = errors[current].id;\n\n return acc;\n }, {});\n\n actions.setErrors(fieldsErrors);\n toggleNotification({\n type: 'warning',\n message: get(err, 'response.data.error.message', 'notification.error'),\n });\n }\n\n unlockApp();\n };\n\n const isLoading = isLoadingAdminUsers || !MagicLink;\n\n const headerLabel = isLoading\n ? { id: 'app.containers.Users.EditPage.header.label-loading', defaultMessage: 'Edit user' }\n : { id: 'app.containers.Users.EditPage.header.label', defaultMessage: 'Edit {name}' };\n\n const initialData = Object.keys(pick(user, fieldsToPick)).reduce((acc, current) => {\n if (current === 'roles') {\n acc[current] = (user?.roles || []).map(({ id }) => id);\n\n return acc;\n }\n\n acc[current] = user?.[current];\n\n return acc;\n }, {});\n\n const headerLabelName =\n initialData.username || getFullName(initialData.firstname, initialData.lastname);\n\n const title = formatMessage(headerLabel, { name: headerLabelName });\n\n if (isLoading) {\n return (\n <Main aria-busy=\"true\">\n {/* TODO: translate */}\n <SettingsPageTitle name=\"Users\" />\n <HeaderLayout\n primaryAction={\n <Button disabled startIcon={<Check />} type=\"button\" size=\"L\">\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={title}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/users?pageSize=10&page=1&sort=firstname\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <LoadingIndicatorPage />\n </ContentLayout>\n </Main>\n );\n }\n\n return (\n <Main>\n <SettingsPageTitle name=\"Users\" />\n <Formik\n onSubmit={handleSubmit}\n initialValues={initialData}\n validateOnChange={false}\n validationSchema={editValidation}\n >\n {({ errors, values, handleChange, isSubmitting, dirty }) => {\n return (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate ? true : !dirty}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={title}\n navigationAction={\n <Link\n startIcon={<ArrowLeft />}\n to=\"/settings/users?pageSize=10&page=1&sort=firstname\"\n >\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n {layout.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={!canUpdate}\n error={errors[input.name]}\n onChange={handleChange}\n value={values[input.name] || ''}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles\n disabled={!canUpdate}\n error={errors.roles}\n onChange={handleChange}\n value={values.roles}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n </Flex>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Main>\n );\n};\n\nEditPage.propTypes = {\n canUpdate: PropTypes.bool.isRequired,\n};\n\nexport default EditPage;\n","import React, { useEffect } from 'react';\n\nimport { LoadingIndicatorPage, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\nimport { Redirect, useLocation } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditPage from '../EditPage';\n\nconst ProtectedEditPage = () => {\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n\n const memoizedPermissions = React.useMemo(\n () => ({\n read: permissions.settings.users.read,\n update: permissions.settings.users.update,\n }),\n [permissions.settings.users]\n );\n\n const {\n isLoading,\n allowedActions: { canRead, canUpdate },\n } = useRBAC(memoizedPermissions);\n const { state } = useLocation();\n const from = state?.from ?? '/';\n\n useEffect(() => {\n if (!isLoading) {\n if (!canRead && !canUpdate) {\n toggleNotification({\n type: 'info',\n message: {\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n },\n });\n }\n }\n }, [isLoading, canRead, canUpdate, toggleNotification]);\n\n if (isLoading) {\n return <LoadingIndicatorPage />;\n }\n\n if (!canRead && !canUpdate) {\n return <Redirect to={from} />;\n }\n\n return <EditPage canUpdate={canUpdate} />;\n};\n\nexport default ProtectedEditPage;\n"],"names":["id","editValidation","React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,UAAU,OAAO,IAAI,SAAS;AAC5B,QAAA,EAAE,QAAQ;AAEV,QAAA,EAAE,KAAS,IAAA,MAAM,IAAI,gBAAgB,EAAE,IAAI,IAAI;AAErD,SAAO,KAAK;AACd;ACRA,MAAM,SAAS;AAAA,EACb;AAAA,IACE;AAAA,MACE,WAAW;AAAA,QACT,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,aAAa;AAAA,QACX,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,IAAI;AAAA,MACN;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,WAAW;AAAA,QACT,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,aAAa;AAAA,QACX,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,IAAI;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,WAAW;AAAA,QACT,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,aAAa;AAAA,QACX,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,IAAI;AAAA,MACN;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,WAAW;AAAA,QACT,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,aAAa;AAAA,QACX,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,IAAI;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,WAAW;AAAA,QACT,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,IAAI;AAAA,MACN;AAAA,MACA,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,MACE,WAAW;AAAA,QACT,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,IAAI;AAAA,MACN;AAAA,MACA,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,WAAW;AAAA,QACT,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,IAAI;AAAA,MACN;AAAA,IACF;AAAA,EACF;AACF;ACpEA,MAAM,eAAe,CAAC,SAAS,aAAa,YAAY,YAAY,YAAY,OAAO;AAEvF,MAAM,WAAW,CAAC,EAAE,gBAAgB;AAC5B,QAAA,EAAE,kBAAkB;AACpB,QAAA;AAAA,IACJ,QAAQ,EAAE,GAAG;AAAA,EAAA,IACX,cAAc,qBAAqB;AACjC,QAAA,EAAE,SAAS;AACX,QAAA,EAAE,uBAAuB;AAC/B,QAAM,qBAAqB;AAC3B,QAAM,EAAE,SAAS,UAAU,IAAI,kBAAkB;AACjD,QAAM,YAAY;AAAA,IAChB;AAAA,IACA,aAEI,MAAM,OACJ,sBACF,GACA;AAAA,EAAA;AAGe;AAEf,QAAA;AAAA,IACJ,OAAO,CAAC,IAAI;AAAA,IACZ,WAAW;AAAA,EAAA,IACT;AAAA,IACF,EAAE,GAAG;AAAA,IACL;AAAA,MACE,WAAW;AAAA,MAEX,QAAQ,OAAO;AACP,cAAA,EAAE,OAAO,IAAI,MAAM;AAGzB,YAAI,WAAW,KAAK;AACC,6BAAA;AAAA,YACjB,MAAM;AAAA,YACN,SAAS;AAAA,cACP,IAAI;AAAA,cACJ,gBAAgB;AAAA,YAClB;AAAA,UAAA,CACD;AAED,eAAK,GAAG;AAAA,QAAA,OACH;AACc,6BAAA;AAAA,YACjB,MAAM;AAAA,YACN,SAAS,EAAE,IAAI,sBAAsB,gBAAgB,mBAAmB;AAAA,UAAA,CACzE;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EAAA;AAGI,QAAA,eAAe,OAAO,MAAM,YAAY;AACpC;AAEJ,QAAA;AACF,YAAM,OAAO,MAAM,QAAQ,IAAI,KAAK,MAAM,iBAAiB,CAAC;AAEzC,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,cAAc,EAAE,IAAI,8BAA8B,gBAAgB,SAAS;AAAA,MAAA,CACrF;AAEK,YAAA,YAAY,KAAK;AAGvB,UAAI,GAAG,SAAS,MAAM,UAAU,GAAG,YAAY;AAC7C,aAAK,YAAY,IAAI;AAEf,cAAA,kBAAkB,IAAI,MAAM,UAAU,KAAK,YAAY,KAAK,WAAW,KAAK,QAAQ;AAE1F,2BAAmB,eAAe;AAAA,MACpC;AACA,cAAQ,UAAU,KAAK,MAAM,YAAY,CAAC;AAAA,aACnC,KAAK;AAEZ,YAAM,SAAS,gBAAgB,IAAI,SAAS,IAAI;AAC1C,YAAA,eAAe,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,KAAK,YAAY;AAChE,YAAI,OAAO,IAAI,OAAO,OAAO,EAAE;AAExB,eAAA;AAAA,MACT,GAAG,CAAE,CAAA;AAEL,cAAQ,UAAU,YAAY;AACX,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,IAAI,KAAK,+BAA+B,oBAAoB;AAAA,MAAA,CACtE;AAAA,IACH;AAEU;EAAA;AAGN,QAAA,YAAY,uBAAuB,CAAC;AAE1C,QAAM,cAAc,YAChB,EAAE,IAAI,sDAAsD,gBAAgB,YAAY,IACxF,EAAE,IAAI,8CAA8C,gBAAgB,cAAc;AAEhF,QAAA,cAAc,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,YAAY;AACjF,QAAI,YAAY,SAAS;AACvB,UAAI,OAAO,KAAK,MAAM,SAAS,CAAA,GAAI,IAAI,CAAC,EAAE,IAAAA,IAAG,MAAMA,GAAE;AAE9C,aAAA;AAAA,IACT;AAEI,QAAA,OAAO,IAAI,OAAO,OAAO;AAEtB,WAAA;AAAA,EACT,GAAG,CAAE,CAAA;AAEL,QAAM,kBACJ,YAAY,YAAY,YAAY,YAAY,WAAW,YAAY,QAAQ;AAEjF,QAAM,QAAQ,cAAc,aAAa,EAAE,MAAM,iBAAiB;AAElE,MAAI,WAAW;AAEX,WAAA,qBAAC,MAAK,EAAA,aAAU,QAEd,UAAA;AAAA,MAAC,oBAAA,mBAAA,EAAkB,MAAK,QAAQ,CAAA;AAAA,MAChC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,mCACG,QAAO,EAAA,UAAQ,MAAC,WAAW,oBAAC,SAAM,GAAI,MAAK,UAAS,MAAK,KACvD,wBAAc,EAAE,IAAI,eAAe,gBAAgB,OAAQ,CAAA,GAC9D;AAAA,UAEF;AAAA,UACA,sCACG,MAAK,EAAA,+BAAY,WAAU,CAAA,CAAA,GAAI,IAAG,qDAChC,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB,CAAA,GACH;AAAA,QAAA;AAAA,MAEJ;AAAA,MACC,oBAAA,eAAA,EACC,UAAC,oBAAA,sBAAA,CAAqB,CAAA,GACxB;AAAA,IACF,EAAA,CAAA;AAAA,EAEJ;AAEA,8BACG,MACC,EAAA,UAAA;AAAA,IAAC,oBAAA,mBAAA,EAAkB,MAAK,QAAQ,CAAA;AAAA,IAChC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAU;AAAA,QACV,eAAe;AAAA,QACf,kBAAkB;AAAA,QAClB,kBAAkBC;AAAAA,QAEjB,WAAC,EAAE,QAAQ,QAAQ,cAAc,cAAc,YAAY;AAC1D,sCACG,MACC,EAAA,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,eACE;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,UAAU,gBAAgB,CAAC,YAAY,OAAO,CAAC;AAAA,oBAC/C,+BAAY,OAAM,EAAA;AAAA,oBAClB,SAAS;AAAA,oBACT,MAAK;AAAA,oBACL,MAAK;AAAA,oBAEJ,wBAAc,EAAE,IAAI,eAAe,gBAAgB,QAAQ;AAAA,kBAAA;AAAA,gBAC9D;AAAA,gBAEF;AAAA,gBACA,kBACE;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,+BAAY,WAAU,EAAA;AAAA,oBACtB,IAAG;AAAA,oBAEF,UAAc,cAAA;AAAA,sBACb,IAAI;AAAA,sBACJ,gBAAgB;AAAA,oBAAA,CACjB;AAAA,kBAAA;AAAA,gBACH;AAAA,cAAA;AAAA,YAEJ;AAAA,iCACC,eACE,EAAA,UAAA;AAAA,cAAM,MAAA,qBACJ,oBAAA,KAAA,EAAI,eAAe,GAClB,8BAAC,WAAU,EAAA,mBAAmB,KAAK,kBAAA,CAAmB,EACxD,CAAA;AAAA,mCAED,MAAK,EAAA,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UAAA;AAAA,gBAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,YAAW;AAAA,oBACX,WAAS;AAAA,oBACT,QAAO;AAAA,oBACP,YAAY;AAAA,oBACZ,eAAe;AAAA,oBACf,aAAa;AAAA,oBACb,cAAc;AAAA,oBAEd,+BAAC,MAAK,EAAA,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UAAA;AAAA,sBAAA,oBAAC,YAAW,EAAA,SAAQ,SAAQ,IAAG,MAC5B,UAAc,cAAA;AAAA,wBACb,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBACjB,CAAA,GACH;AAAA,0CACC,MAAK,EAAA,KAAK,GACR,UAAO,OAAA,IAAI,CAAC,QAAQ;AACZ,+BAAA,IAAI,IAAI,CAAC,UAAU;AACxB,iCACG,oBAAA,UAAA,EAA2B,GAAG,MAAM,MACnC,UAAA;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACE,GAAG;AAAA,8BACJ,UAAU,CAAC;AAAA,8BACX,OAAO,OAAO,MAAM,IAAI;AAAA,8BACxB,UAAU;AAAA,8BACV,OAAO,OAAO,MAAM,IAAI,KAAK;AAAA,4BAAA;AAAA,0BAAA,KANlB,MAAM,IAQrB;AAAA,wBAAA,CAEH;AAAA,sBACF,CAAA,GACH;AAAA,oBAAA,GACF;AAAA,kBAAA;AAAA,gBACF;AAAA,gBACA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,YAAW;AAAA,oBACX,WAAS;AAAA,oBACT,QAAO;AAAA,oBACP,YAAY;AAAA,oBACZ,eAAe;AAAA,oBACf,aAAa;AAAA,oBACb,cAAc;AAAA,oBAEd,+BAAC,MAAK,EAAA,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UAAA;AAAA,sBAAA,oBAAC,YAAW,EAAA,SAAQ,SAAQ,IAAG,MAC5B,UAAc,cAAA;AAAA,wBACb,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBACjB,CAAA,GACH;AAAA,sBACA,oBAAC,QAAK,KAAK,GACT,8BAAC,UAAS,EAAA,KAAK,GAAG,IAAI,IACpB,UAAA;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,UAAU,CAAC;AAAA,0BACX,OAAO,OAAO;AAAA,0BACd,UAAU;AAAA,0BACV,OAAO,OAAO;AAAA,wBAAA;AAAA,yBAElB,EACF,CAAA;AAAA,oBAAA,GACF;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA,GACF;AAAA,YAAA,GACF;AAAA,UACF,EAAA,CAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;AAEA,SAAS,YAAY;AAAA,EACnB,WAAW,UAAU,KAAK;AAC5B;AC9SA,MAAM,oBAAoB,MAAM;AAC9B,QAAM,qBAAqB;AACrB,QAAA,cAAc,YAAY,sBAAsB;AAEtD,QAAM,sBAAsBC,eAAM;AAAA,IAChC,OAAO;AAAA,MACL,MAAM,YAAY,SAAS,MAAM;AAAA,MACjC,QAAQ,YAAY,SAAS,MAAM;AAAA,IAAA;AAAA,IAErC,CAAC,YAAY,SAAS,KAAK;AAAA,EAAA;AAGvB,QAAA;AAAA,IACJ;AAAA,IACA,gBAAgB,EAAE,SAAS,UAAU;AAAA,EAAA,IACnC,QAAQ,mBAAmB;AACzB,QAAA,EAAE,UAAU;AACZ,QAAA,OAAO,OAAO,QAAQ;AAE5B,YAAU,MAAM;AACd,QAAI,CAAC,WAAW;AACV,UAAA,CAAC,WAAW,CAAC,WAAW;AACP,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS;AAAA,YACP,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAClB;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IACF;AAAA,KACC,CAAC,WAAW,SAAS,WAAW,kBAAkB,CAAC;AAEtD,MAAI,WAAW;AACb,+BAAQ,sBAAqB,CAAA,CAAA;AAAA,EAC/B;AAEI,MAAA,CAAC,WAAW,CAAC,WAAW;AACnB,WAAA,oBAAC,UAAS,EAAA,IAAI,KAAM,CAAA;AAAA,EAC7B;AAEO,SAAA,oBAAC,YAAS,UAAsB,CAAA;AACzC;"}
|
|
1
|
+
{"version":3,"file":"index-55f9b6b3.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Users/EditPage/utils/api.js","../../admin/src/pages/SettingsPage/pages/Users/EditPage/utils/layout.js","../../admin/src/pages/SettingsPage/pages/Users/EditPage/index.js","../../admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js"],"sourcesContent":["import { getFetchClient } from '@strapi/helper-plugin';\n\nconst putUser = async (id, body) => {\n const { put } = getFetchClient();\n\n const { data } = await put(`/admin/users/${id}`, body);\n\n return data.data;\n};\n\nexport { putUser };\n","const layout = [\n [\n {\n intlLabel: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n {\n intlLabel: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n [\n {\n intlLabel: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n {\n intlLabel: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n [\n {\n intlLabel: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password',\n size: {\n col: 6,\n xs: 12,\n },\n autoComplete: 'new-password',\n },\n {\n intlLabel: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password',\n size: {\n col: 6,\n xs: 12,\n },\n autoComplete: 'new-password',\n },\n ],\n [\n {\n intlLabel: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'bool',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n];\n\nexport default layout;\n","import React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Main,\n Typography,\n} from '@strapi/design-system';\nimport {\n auth,\n Form,\n GenericInput,\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAppInfo,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft, Check } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport get from 'lodash/get';\nimport omit from 'lodash/omit';\nimport pick from 'lodash/pick';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../hooks/useAdminUsers';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { formatAPIErrors } from '../../../../../utils/formatAPIErrors';\nimport { getFullName } from '../../../../../utils/getFullName';\nimport { MagicLinkCE } from '../components/MagicLink';\nimport SelectRoles from '../components/SelectRoles';\nimport { editValidation } from '../utils/validations/users';\n\nimport { putUser } from './utils/api';\nimport layout from './utils/layout';\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'];\n\nconst EditPage = ({ canUpdate }) => {\n const { formatMessage } = useIntl();\n const {\n params: { id },\n } = useRouteMatch('/settings/users/:id');\n const { push } = useHistory();\n const { setUserDisplayName } = useAppInfo();\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLink'\n )\n ).MagicLinkEE\n );\n\n useFocusWhenNavigate();\n\n const {\n users: [user],\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n cacheTime: 0,\n\n onError(error) {\n const { status } = error.response;\n\n // Redirect the use to the homepage if is not allowed to read\n if (status === 403) {\n toggleNotification({\n type: 'info',\n message: {\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n },\n });\n\n push('/');\n } else {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const handleSubmit = async (body, actions) => {\n lockApp();\n\n try {\n const data = await putUser(id, omit(body, 'confirmPassword'));\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n const userInfos = auth.getUserInfo();\n\n // The user is updating himself\n if (id.toString() === userInfos.id.toString()) {\n auth.setUserInfo(data);\n\n const userDisplayName = get(body, 'username') || getFullName(body.firstname, body.lastname);\n\n setUserDisplayName(userDisplayName);\n }\n actions.setValues(pick(body, fieldsToPick));\n } catch (err) {\n // FIXME when API errors are ready\n const errors = formatAPIErrors(err.response.data);\n const fieldsErrors = Object.keys(errors).reduce((acc, current) => {\n acc[current] = errors[current].id;\n\n return acc;\n }, {});\n\n actions.setErrors(fieldsErrors);\n toggleNotification({\n type: 'warning',\n message: get(err, 'response.data.error.message', 'notification.error'),\n });\n }\n\n unlockApp();\n };\n\n const isLoading = isLoadingAdminUsers || !MagicLink;\n\n const headerLabel = isLoading\n ? { id: 'app.containers.Users.EditPage.header.label-loading', defaultMessage: 'Edit user' }\n : { id: 'app.containers.Users.EditPage.header.label', defaultMessage: 'Edit {name}' };\n\n const initialData = Object.keys(pick(user, fieldsToPick)).reduce((acc, current) => {\n if (current === 'roles') {\n acc[current] = (user?.roles || []).map(({ id }) => id);\n\n return acc;\n }\n\n acc[current] = user?.[current];\n\n return acc;\n }, {});\n\n const headerLabelName =\n initialData.username || getFullName(initialData.firstname, initialData.lastname);\n\n const title = formatMessage(headerLabel, { name: headerLabelName });\n\n if (isLoading) {\n return (\n <Main aria-busy=\"true\">\n {/* TODO: translate */}\n <SettingsPageTitle name=\"Users\" />\n <HeaderLayout\n primaryAction={\n <Button disabled startIcon={<Check />} type=\"button\" size=\"L\">\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={title}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/users?pageSize=10&page=1&sort=firstname\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <LoadingIndicatorPage />\n </ContentLayout>\n </Main>\n );\n }\n\n return (\n <Main>\n <SettingsPageTitle name=\"Users\" />\n <Formik\n onSubmit={handleSubmit}\n initialValues={initialData}\n validateOnChange={false}\n validationSchema={editValidation}\n >\n {({ errors, values, handleChange, isSubmitting, dirty }) => {\n return (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate ? true : !dirty}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={title}\n navigationAction={\n <Link\n startIcon={<ArrowLeft />}\n to=\"/settings/users?pageSize=10&page=1&sort=firstname\"\n >\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n {layout.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={!canUpdate}\n error={errors[input.name]}\n onChange={handleChange}\n value={values[input.name] || ''}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles\n disabled={!canUpdate}\n error={errors.roles}\n onChange={handleChange}\n value={values.roles}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n </Flex>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Main>\n );\n};\n\nEditPage.propTypes = {\n canUpdate: PropTypes.bool.isRequired,\n};\n\nexport default EditPage;\n","import React, { useEffect } from 'react';\n\nimport { LoadingIndicatorPage, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\nimport { Redirect, useLocation } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditPage from '../EditPage';\n\nconst ProtectedEditPage = () => {\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n\n const memoizedPermissions = React.useMemo(\n () => ({\n read: permissions.settings.users.read,\n update: permissions.settings.users.update,\n }),\n [permissions.settings.users]\n );\n\n const {\n isLoading,\n allowedActions: { canRead, canUpdate },\n } = useRBAC(memoizedPermissions);\n const { state } = useLocation();\n const from = state?.from ?? '/';\n\n useEffect(() => {\n if (!isLoading) {\n if (!canRead && !canUpdate) {\n toggleNotification({\n type: 'info',\n message: {\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n },\n });\n }\n }\n }, [isLoading, canRead, canUpdate, toggleNotification]);\n\n if (isLoading) {\n return <LoadingIndicatorPage />;\n }\n\n if (!canRead && !canUpdate) {\n return <Redirect to={from} />;\n }\n\n return <EditPage canUpdate={canUpdate} />;\n};\n\nexport default ProtectedEditPage;\n"],"names":["id","editValidation","React"],"mappings":"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"}
|
|
@@ -10,13 +10,13 @@ import { useIntl } from "react-intl";
|
|
|
10
10
|
import { useSelector } from "react-redux";
|
|
11
11
|
import { useRouteMatch, useHistory } from "react-router-dom";
|
|
12
12
|
import styled from "styled-components";
|
|
13
|
-
import { s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
13
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-fd7e406d.mjs";
|
|
14
14
|
import { u as useAdminRolePermissionLayout, a as useAdminRolePermissions, P as Permissions } from "./useAdminRolePermissions-603a2709.mjs";
|
|
15
15
|
import * as yup from "yup";
|
|
16
16
|
import "react-query";
|
|
17
17
|
import "semver/functions/lt";
|
|
18
18
|
import "semver/functions/valid";
|
|
19
|
-
import "./index-
|
|
19
|
+
import "./index-60a57d31.mjs";
|
|
20
20
|
import "react-dom/client";
|
|
21
21
|
import "invariant";
|
|
22
22
|
import "lodash/isFunction";
|
|
@@ -24,21 +24,20 @@ import "lodash/merge";
|
|
|
24
24
|
import "lodash/pick";
|
|
25
25
|
import "react-helmet";
|
|
26
26
|
import "@radix-ui/react-context";
|
|
27
|
-
import "
|
|
27
|
+
import "@strapi/design-system/v2";
|
|
28
28
|
import "lodash/camelCase";
|
|
29
|
-
import "lodash/get";
|
|
30
|
-
import "lodash/omit";
|
|
31
|
-
import "prop-types";
|
|
32
29
|
import "lodash/defaultsDeep";
|
|
30
|
+
import "lodash/omit";
|
|
31
|
+
import "qs";
|
|
33
32
|
import "immer";
|
|
33
|
+
import "lodash/get";
|
|
34
34
|
import "lodash/set";
|
|
35
|
-
import "qs";
|
|
36
35
|
import "@reduxjs/toolkit";
|
|
37
36
|
import "react-dnd";
|
|
38
37
|
import "react-dnd-html5-backend";
|
|
39
|
-
import "@strapi/design-system/v2";
|
|
40
38
|
import "lodash/cloneDeep";
|
|
41
39
|
import "lodash/has";
|
|
40
|
+
import "prop-types";
|
|
42
41
|
import "lodash/sortBy";
|
|
43
42
|
import "lodash/groupBy";
|
|
44
43
|
import "lodash/upperFirst";
|
|
@@ -242,4 +241,4 @@ export {
|
|
|
242
241
|
CreatePage,
|
|
243
242
|
index as default
|
|
244
243
|
};
|
|
245
|
-
//# sourceMappingURL=index-
|
|
244
|
+
//# sourceMappingURL=index-59e31a9f.mjs.map
|