@strapi/admin 4.15.5-alpha.3 → 4.15.5-alpha.5
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-2cfb41e2.mjs → AuthenticatedApp-1e10546a.mjs} +21 -21
- package/dist/_chunks/{AuthenticatedApp-2cfb41e2.mjs.map → AuthenticatedApp-1e10546a.mjs.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-79e3f141.js → AuthenticatedApp-eea6970a.js} +21 -21
- package/dist/_chunks/{AuthenticatedApp-79e3f141.js.map → AuthenticatedApp-eea6970a.js.map} +1 -1
- package/dist/_chunks/{HomePage-a617d19a.js → HomePage-3ce777a2.js} +4 -4
- package/dist/_chunks/{HomePage-a617d19a.js.map → HomePage-3ce777a2.js.map} +1 -1
- package/dist/_chunks/{HomePage-e333ff90.mjs → HomePage-96c4aa5b.mjs} +4 -4
- package/dist/_chunks/{HomePage-e333ff90.mjs.map → HomePage-96c4aa5b.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-1376624b.mjs → HomePage-970b8c5a.mjs} +4 -4
- package/dist/_chunks/{HomePage-1376624b.mjs.map → HomePage-970b8c5a.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-a9e9942a.js → HomePage-ec67248d.js} +4 -4
- package/dist/_chunks/{HomePage-a9e9942a.js.map → HomePage-ec67248d.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-fb2aaa1f.js → InstalledPluginsPage-1e0d2ae1.js} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-fb2aaa1f.js.map → InstalledPluginsPage-1e0d2ae1.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-c7ccd2b2.mjs → InstalledPluginsPage-7743670e.mjs} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-c7ccd2b2.mjs.map → InstalledPluginsPage-7743670e.mjs.map} +1 -1
- package/dist/_chunks/{Login-d6fd38ea.js → Login-04fc2757.js} +2 -2
- package/dist/_chunks/{Login-d6fd38ea.js.map → Login-04fc2757.js.map} +1 -1
- package/dist/_chunks/{Login-69bf063c.mjs → Login-a6af5d62.mjs} +2 -2
- package/dist/_chunks/{Login-69bf063c.mjs.map → Login-a6af5d62.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-c829d0de.mjs → MarketplacePage-61d66050.mjs} +3 -3
- package/dist/_chunks/{MarketplacePage-c829d0de.mjs.map → MarketplacePage-61d66050.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-7c516084.js → MarketplacePage-aeb425cc.js} +3 -3
- package/dist/_chunks/{MarketplacePage-7c516084.js.map → MarketplacePage-aeb425cc.js.map} +1 -1
- package/dist/_chunks/{ProfilePage-c6d8c69f.mjs → ProfilePage-862401de.mjs} +3 -3
- package/dist/_chunks/{ProfilePage-c6d8c69f.mjs.map → ProfilePage-862401de.mjs.map} +1 -1
- package/dist/_chunks/{ProfilePage-a2e54283.js → ProfilePage-f3915e86.js} +3 -3
- package/dist/_chunks/{ProfilePage-a2e54283.js.map → ProfilePage-f3915e86.js.map} +1 -1
- package/dist/_chunks/{build-20299009.mjs → build-92e15b93.mjs} +13 -13
- package/dist/_chunks/{build-20299009.mjs.map → build-92e15b93.mjs.map} +1 -1
- package/dist/_chunks/{build-58827c7a.js → build-df2f219f.js} +13 -13
- package/dist/_chunks/{build-58827c7a.js.map → build-df2f219f.js.map} +1 -1
- package/dist/_chunks/{constants-842c6449.mjs → constants-14dd24d9.mjs} +6 -6
- package/dist/_chunks/{constants-842c6449.mjs.map → constants-14dd24d9.mjs.map} +1 -1
- package/dist/_chunks/{constants-962e9922.js → constants-298d4e08.js} +5 -5
- package/dist/_chunks/{constants-962e9922.js.map → constants-298d4e08.js.map} +1 -1
- package/dist/_chunks/{constants-5f0670d7.mjs → constants-94ec0c39.mjs} +5 -5
- package/dist/_chunks/{constants-5f0670d7.mjs.map → constants-94ec0c39.mjs.map} +1 -1
- package/dist/_chunks/{constants-fad06b7f.mjs → constants-98046873.mjs} +2 -2
- package/dist/_chunks/{constants-fad06b7f.mjs.map → constants-98046873.mjs.map} +1 -1
- package/dist/_chunks/{constants-4c06740e.js → constants-9ee3d5d7.js} +3 -3
- package/dist/_chunks/{constants-4c06740e.js.map → constants-9ee3d5d7.js.map} +1 -1
- package/dist/_chunks/{constants-9212941b.js → constants-a0698a4a.js} +6 -6
- package/dist/_chunks/{constants-9212941b.js.map → constants-a0698a4a.js.map} +1 -1
- package/dist/_chunks/{constants-a16f9961.js → constants-ca23be5d.js} +2 -2
- package/dist/_chunks/{constants-a16f9961.js.map → constants-ca23be5d.js.map} +1 -1
- package/dist/_chunks/{constants-a3372db6.mjs → constants-fb780d44.mjs} +3 -3
- package/dist/_chunks/{constants-a3372db6.mjs.map → constants-fb780d44.mjs.map} +1 -1
- package/dist/_chunks/{develop-a7d5cf0c.js → develop-4d25a6e0.js} +13 -13
- package/dist/_chunks/{develop-a7d5cf0c.js.map → develop-4d25a6e0.js.map} +1 -1
- package/dist/_chunks/{develop-7066af5e.mjs → develop-a46fed01.mjs} +13 -13
- package/dist/_chunks/{develop-7066af5e.mjs.map → develop-a46fed01.mjs.map} +1 -1
- package/dist/_chunks/{index-e8b17b94.js → index-008328ba.js} +5 -5
- package/dist/_chunks/{index-e8b17b94.js.map → index-008328ba.js.map} +1 -1
- package/dist/_chunks/{index-693383db.mjs → index-04dc85bf.mjs} +5 -5
- package/dist/_chunks/{index-693383db.mjs.map → index-04dc85bf.mjs.map} +1 -1
- package/dist/_chunks/{index-9b3107a4.mjs → index-0a328691.mjs} +3 -3
- package/dist/_chunks/{index-9b3107a4.mjs.map → index-0a328691.mjs.map} +1 -1
- package/dist/_chunks/{index-1316edb2.mjs → index-15fddb85.mjs} +4 -4
- package/dist/_chunks/{index-1316edb2.mjs.map → index-15fddb85.mjs.map} +1 -1
- package/dist/_chunks/{index-341222f2.js → index-1930d662.js} +3 -3
- package/dist/_chunks/{index-341222f2.js.map → index-1930d662.js.map} +1 -1
- package/dist/_chunks/{index-b84b9fee.js → index-1a74fa41.js} +348 -302
- package/dist/_chunks/index-1a74fa41.js.map +1 -0
- package/dist/_chunks/{index-7338912f.js → index-1e7b6d32.js} +5 -5
- package/dist/_chunks/{index-7338912f.js.map → index-1e7b6d32.js.map} +1 -1
- package/dist/_chunks/{index-3444ab6f.js → index-2609696f.js} +4 -4
- package/dist/_chunks/{index-3444ab6f.js.map → index-2609696f.js.map} +1 -1
- package/dist/_chunks/{index-9e5d59f5.mjs → index-27d910b7.mjs} +5 -5
- package/dist/_chunks/{index-9e5d59f5.mjs.map → index-27d910b7.mjs.map} +1 -1
- package/dist/_chunks/{index-252284ed.js → index-3266a985.js} +3 -3
- package/dist/_chunks/{index-252284ed.js.map → index-3266a985.js.map} +1 -1
- package/dist/_chunks/{index-5b44cba5.mjs → index-372f70ce.mjs} +2 -2
- package/dist/_chunks/{index-5b44cba5.mjs.map → index-372f70ce.mjs.map} +1 -1
- package/dist/_chunks/{index-ecb3cfba.js → index-392a9490.js} +5 -5
- package/dist/_chunks/{index-ecb3cfba.js.map → index-392a9490.js.map} +1 -1
- package/dist/_chunks/{index-48ebb88c.js → index-401d5daa.js} +5 -5
- package/dist/_chunks/{index-48ebb88c.js.map → index-401d5daa.js.map} +1 -1
- package/dist/_chunks/{index-2aed5618.js → index-435b6463.js} +3 -3
- package/dist/_chunks/{index-2aed5618.js.map → index-435b6463.js.map} +1 -1
- package/dist/_chunks/{index-25c9158f.js → index-470c6923.js} +2 -2
- package/dist/_chunks/{index-25c9158f.js.map → index-470c6923.js.map} +1 -1
- package/dist/_chunks/{index-df70cfd7.mjs → index-4b12f2e9.mjs} +5 -5
- package/dist/_chunks/{index-df70cfd7.mjs.map → index-4b12f2e9.mjs.map} +1 -1
- package/dist/_chunks/{index-2b331655.js → index-51aa0dc6.js} +3 -3
- package/dist/_chunks/{index-2b331655.js.map → index-51aa0dc6.js.map} +1 -1
- package/dist/_chunks/{index-9910aa5a.mjs → index-527a80ef.mjs} +3 -3
- package/dist/_chunks/{index-9910aa5a.mjs.map → index-527a80ef.mjs.map} +1 -1
- package/dist/_chunks/{index-4c29f67c.js → index-56a6576d.js} +3 -3
- package/dist/_chunks/{index-4c29f67c.js.map → index-56a6576d.js.map} +1 -1
- package/dist/_chunks/{index-6b7dceb1.mjs → index-5a15fb17.mjs} +3 -3
- package/dist/_chunks/{index-6b7dceb1.mjs.map → index-5a15fb17.mjs.map} +1 -1
- package/dist/_chunks/{index-25feef65.js → index-5d3982dd.js} +6 -6
- package/dist/_chunks/{index-25feef65.js.map → index-5d3982dd.js.map} +1 -1
- package/dist/_chunks/{index-703c58c8.mjs → index-5de6defe.mjs} +4 -4
- package/dist/_chunks/{index-703c58c8.mjs.map → index-5de6defe.mjs.map} +1 -1
- package/dist/_chunks/{index-35fc9959.js → index-65d8637e.js} +3 -3
- package/dist/_chunks/{index-35fc9959.js.map → index-65d8637e.js.map} +1 -1
- package/dist/_chunks/{index-f097ccea.mjs → index-6b269800.mjs} +3 -3
- package/dist/_chunks/{index-f097ccea.mjs.map → index-6b269800.mjs.map} +1 -1
- package/dist/_chunks/{index-dcbab202.mjs → index-6c56f4c2.mjs} +3 -3
- package/dist/_chunks/{index-dcbab202.mjs.map → index-6c56f4c2.mjs.map} +1 -1
- package/dist/_chunks/{index-242c514c.mjs → index-6e082128.mjs} +3 -3
- package/dist/_chunks/{index-242c514c.mjs.map → index-6e082128.mjs.map} +1 -1
- package/dist/_chunks/{index-25bb4a4d.js → index-75d51788.js} +5 -5
- package/dist/_chunks/{index-25bb4a4d.js.map → index-75d51788.js.map} +1 -1
- package/dist/_chunks/{index-9d03d359.js → index-7b53073e.js} +3 -3
- package/dist/_chunks/{index-9d03d359.js.map → index-7b53073e.js.map} +1 -1
- package/dist/_chunks/{index-12b7d75f.js → index-7b5707cd.js} +4 -4
- package/dist/_chunks/{index-12b7d75f.js.map → index-7b5707cd.js.map} +1 -1
- package/dist/_chunks/{index-45a78b18.mjs → index-7d60e3dc.mjs} +20 -20
- package/dist/_chunks/{index-45a78b18.mjs.map → index-7d60e3dc.mjs.map} +1 -1
- package/dist/_chunks/{index-cf4fe6b7.mjs → index-7e1f48fc.mjs} +8 -8
- package/dist/_chunks/{index-cf4fe6b7.mjs.map → index-7e1f48fc.mjs.map} +1 -1
- package/dist/_chunks/{index-80574f48.mjs → index-80b911e7.mjs} +3 -3
- package/dist/_chunks/{index-80574f48.mjs.map → index-80b911e7.mjs.map} +1 -1
- package/dist/_chunks/{index-bef99193.mjs → index-83133812.mjs} +4 -4
- package/dist/_chunks/{index-bef99193.mjs.map → index-83133812.mjs.map} +1 -1
- package/dist/_chunks/{index-7a1a0c5c.mjs → index-8600b6e5.mjs} +3 -3
- package/dist/_chunks/{index-7a1a0c5c.mjs.map → index-8600b6e5.mjs.map} +1 -1
- package/dist/_chunks/{index-07d155a0.js → index-8c004453.js} +2 -2
- package/dist/_chunks/{index-07d155a0.js.map → index-8c004453.js.map} +1 -1
- package/dist/_chunks/{index-66177bc5.js → index-92a2ece4.js} +4 -4
- package/dist/_chunks/{index-66177bc5.js.map → index-92a2ece4.js.map} +1 -1
- package/dist/_chunks/{index-1e3a2719.mjs → index-92f311b0.mjs} +5 -5
- package/dist/_chunks/{index-1e3a2719.mjs.map → index-92f311b0.mjs.map} +1 -1
- package/dist/_chunks/{index-b53ba38d.mjs → index-9a307bbd.mjs} +4 -4
- package/dist/_chunks/{index-b53ba38d.mjs.map → index-9a307bbd.mjs.map} +1 -1
- package/dist/_chunks/{index-18fed2cd.js → index-9afe0455.js} +3 -3
- package/dist/_chunks/{index-18fed2cd.js.map → index-9afe0455.js.map} +1 -1
- package/dist/_chunks/{index-ea8946fb.js → index-9d9b9769.js} +2 -2
- package/dist/_chunks/{index-ea8946fb.js.map → index-9d9b9769.js.map} +1 -1
- package/dist/_chunks/{index-4a241498.js → index-a299ce97.js} +8 -8
- package/dist/_chunks/{index-4a241498.js.map → index-a299ce97.js.map} +1 -1
- package/dist/_chunks/{index-adb714e8.mjs → index-a3bc2b4e.mjs} +2 -2
- package/dist/_chunks/{index-adb714e8.mjs.map → index-a3bc2b4e.mjs.map} +1 -1
- package/dist/_chunks/{index-9f88ad83.mjs → index-a81ae30e.mjs} +3 -3
- package/dist/_chunks/{index-9f88ad83.mjs.map → index-a81ae30e.mjs.map} +1 -1
- package/dist/_chunks/{index-c4116296.mjs → index-aa35df09.mjs} +6 -6
- package/dist/_chunks/{index-c4116296.mjs.map → index-aa35df09.mjs.map} +1 -1
- package/dist/_chunks/{index-fbe9dba1.js → index-b1141822.js} +3 -3
- package/dist/_chunks/{index-fbe9dba1.js.map → index-b1141822.js.map} +1 -1
- package/dist/_chunks/{index-d4029932.js → index-b4277486.js} +4 -4
- package/dist/_chunks/{index-d4029932.js.map → index-b4277486.js.map} +1 -1
- package/dist/_chunks/{index-dede2234.mjs → index-b51842fb.mjs} +3 -3
- package/dist/_chunks/{index-dede2234.mjs.map → index-b51842fb.mjs.map} +1 -1
- package/dist/_chunks/{index-ef0c2ffb.js → index-b5ff3031.js} +4 -4
- package/dist/_chunks/{index-ef0c2ffb.js.map → index-b5ff3031.js.map} +1 -1
- package/dist/_chunks/{index-dcd31235.js → index-bff8cad7.js} +3 -3
- package/dist/_chunks/{index-dcd31235.js.map → index-bff8cad7.js.map} +1 -1
- package/dist/_chunks/{index-ed287ba8.mjs → index-c145ae06.mjs} +3 -3
- package/dist/_chunks/{index-ed287ba8.mjs.map → index-c145ae06.mjs.map} +1 -1
- package/dist/_chunks/{index-61c915cd.mjs → index-c5ed938c.mjs} +2 -2
- package/dist/_chunks/{index-61c915cd.mjs.map → index-c5ed938c.mjs.map} +1 -1
- package/dist/_chunks/{index-314f72f4.mjs → index-c66a60bb.mjs} +4 -4
- package/dist/_chunks/{index-314f72f4.mjs.map → index-c66a60bb.mjs.map} +1 -1
- package/dist/_chunks/{index-7d449292.mjs → index-c8abc905.mjs} +3 -3
- package/dist/_chunks/{index-7d449292.mjs.map → index-c8abc905.mjs.map} +1 -1
- package/dist/_chunks/{index-563a992a.js → index-cf35f9e7.js} +4 -4
- package/dist/_chunks/{index-563a992a.js.map → index-cf35f9e7.js.map} +1 -1
- package/dist/_chunks/{index-c2b86584.js → index-da0be0d5.js} +3 -3
- package/dist/_chunks/{index-c2b86584.js.map → index-da0be0d5.js.map} +1 -1
- package/dist/_chunks/{index-b53cf07d.mjs → index-dc89c18c.mjs} +340 -294
- package/dist/_chunks/index-dc89c18c.mjs.map +1 -0
- package/dist/_chunks/{index-f088fe2c.js → index-e12cacd1.js} +3 -3
- package/dist/_chunks/{index-f088fe2c.js.map → index-e12cacd1.js.map} +1 -1
- package/dist/_chunks/{index-61e392e8.mjs → index-e17a9e33.mjs} +5 -5
- package/dist/_chunks/{index-61e392e8.mjs.map → index-e17a9e33.mjs.map} +1 -1
- package/dist/_chunks/{index-edf62e62.mjs → index-e628615b.mjs} +4 -4
- package/dist/_chunks/{index-edf62e62.mjs.map → index-e628615b.mjs.map} +1 -1
- package/dist/_chunks/{index-517fbe00.mjs → index-e7e7f75d.mjs} +5 -5
- package/dist/_chunks/{index-517fbe00.mjs.map → index-e7e7f75d.mjs.map} +1 -1
- package/dist/_chunks/{index-68ae52b6.js → index-ea2ed45d.js} +5 -5
- package/dist/_chunks/{index-68ae52b6.js.map → index-ea2ed45d.js.map} +1 -1
- package/dist/_chunks/{index-dfc0437b.mjs → index-eafb6c8c.mjs} +4 -4
- package/dist/_chunks/{index-dfc0437b.mjs.map → index-eafb6c8c.mjs.map} +1 -1
- package/dist/_chunks/{index-996f7ad1.mjs → index-ebd41ad5.mjs} +3 -3
- package/dist/_chunks/{index-996f7ad1.mjs.map → index-ebd41ad5.mjs.map} +1 -1
- package/dist/_chunks/{index-c3469f69.js → index-f3c7f6a9.js} +3 -3
- package/dist/_chunks/{index-c3469f69.js.map → index-f3c7f6a9.js.map} +1 -1
- package/dist/_chunks/{index-fc7a00f0.js → index-f6e45499.js} +20 -20
- package/dist/_chunks/{index-fc7a00f0.js.map → index-f6e45499.js.map} +1 -1
- package/dist/_chunks/{index-174cc6b9.js → index-ffafceee.js} +4 -4
- package/dist/_chunks/{index-174cc6b9.js.map → index-ffafceee.js.map} +1 -1
- package/dist/_chunks/{schema-1808aa2d.mjs → schema-666ecce4.mjs} +2 -2
- package/dist/_chunks/{schema-1808aa2d.mjs.map → schema-666ecce4.mjs.map} +1 -1
- package/dist/_chunks/{schema-e73a6250.js → schema-755747ac.js} +2 -2
- package/dist/_chunks/{schema-e73a6250.js.map → schema-755747ac.js.map} +1 -1
- package/dist/_chunks/{validateWorkflow-11ecf8ee.js → validateWorkflow-ae45d3d4.js} +3 -3
- package/dist/_chunks/{validateWorkflow-11ecf8ee.js.map → validateWorkflow-ae45d3d4.js.map} +1 -1
- package/dist/_chunks/{validateWorkflow-1ec1040b.mjs → validateWorkflow-e77a9ab3.mjs} +3 -3
- package/dist/_chunks/{validateWorkflow-1ec1040b.mjs.map → validateWorkflow-e77a9ab3.mjs.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/cli.js +12 -12
- package/dist/cli.mjs +12 -12
- package/package.json +12 -12
- package/dist/_chunks/index-b53cf07d.mjs.map +0 -1
- package/dist/_chunks/index-b84b9fee.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-6b7dceb1.mjs","sources":["../../admin/src/pages/SettingsPage/pages/TransferTokens/ListView/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedListView/index.js"],"sourcesContent":["const tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport default tableHeaders;\n","import React, { useEffect, useRef } from 'react';\n\nimport { ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LinkButton,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { TRANSFER_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport Table from '../../../components/Tokens/Table';\n\nimport tableHeaders from './utils/tableHeaders';\n\nconst TransferTokenListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions.settings['transfer-tokens']);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n\n const { startSection } = useGuidedTour();\n const startSectionRef = useRef(startSection);\n const { get, del } = useFetchClient();\n\n useEffect(() => {\n if (startSectionRef.current) {\n startSectionRef.current('transferTokens');\n }\n }, []);\n\n useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const {\n data: transferTokens,\n status,\n isFetching,\n refetch,\n } = useQuery(\n ['transfer-tokens'],\n async () => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n const {\n data: { data },\n } = await get(`/admin/transfer/tokens`);\n\n trackUsage('didAccessTokenList', { number: data.length, tokenType: TRANSFER_TOKEN_TYPE });\n\n return data;\n },\n {\n enabled: canRead,\n onError(err) {\n if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.invalid.configuration',\n defaultMessage:\n 'You have an invalid configuration, check your server log for more information.',\n },\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const isLoading =\n canRead &&\n ((status !== 'success' && status !== 'error') || (status === 'success' && isFetching));\n\n const deleteMutation = useMutation(\n async (id) => {\n await del(`/admin/transfer/tokens/${id}`);\n },\n {\n async onSuccess() {\n await refetch(['transfer-tokens']);\n },\n onError(err) {\n if (err?.response?.data?.data) {\n toggleNotification({ type: 'warning', message: err.response.data.data });\n } else if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.invalid.configuration',\n defaultMessage:\n 'You have an invalid configuration, check your server log for more information.',\n },\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const hasTransferTokens = transferTokens && transferTokens?.length > 0;\n const shouldDisplayDynamicTable = canRead && hasTransferTokens;\n const shouldDisplayNoContent = canRead && !hasTransferTokens && !canCreate;\n const shouldDisplayNoContentWithCreationButton = canRead && !hasTransferTokens && canCreate;\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <HeaderLayout\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {shouldDisplayDynamicTable && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"trasfer-tokens\"\n rows={transferTokens}\n isLoading={isLoading}\n onConfirmDelete={(id) => deleteMutation.mutateAsync(id)}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {shouldDisplayNoContentWithCreationButton && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n }}\n action={\n <LinkButton\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n />\n )}\n {shouldDisplayNoContent && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport default TransferTokenListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListView from '../ListView';\n\nconst ProtectedTransferTokenListView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['transfer-tokens'].main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedTransferTokenListView;\n"],"names":["qs","ListView"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-5a15fb17.mjs","sources":["../../admin/src/pages/SettingsPage/pages/TransferTokens/ListView/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js","../../admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedListView/index.js"],"sourcesContent":["const tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport default tableHeaders;\n","import React, { useEffect, useRef } from 'react';\n\nimport { ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LinkButton,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { TRANSFER_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport Table from '../../../components/Tokens/Table';\n\nimport tableHeaders from './utils/tableHeaders';\n\nconst TransferTokenListView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions.settings['transfer-tokens']);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n\n const { startSection } = useGuidedTour();\n const startSectionRef = useRef(startSection);\n const { get, del } = useFetchClient();\n\n useEffect(() => {\n if (startSectionRef.current) {\n startSectionRef.current('transferTokens');\n }\n }, []);\n\n useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const {\n data: transferTokens,\n status,\n isFetching,\n refetch,\n } = useQuery(\n ['transfer-tokens'],\n async () => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n const {\n data: { data },\n } = await get(`/admin/transfer/tokens`);\n\n trackUsage('didAccessTokenList', { number: data.length, tokenType: TRANSFER_TOKEN_TYPE });\n\n return data;\n },\n {\n enabled: canRead,\n onError(err) {\n if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.invalid.configuration',\n defaultMessage:\n 'You have an invalid configuration, check your server log for more information.',\n },\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const isLoading =\n canRead &&\n ((status !== 'success' && status !== 'error') || (status === 'success' && isFetching));\n\n const deleteMutation = useMutation(\n async (id) => {\n await del(`/admin/transfer/tokens/${id}`);\n },\n {\n async onSuccess() {\n await refetch(['transfer-tokens']);\n },\n onError(err) {\n if (err?.response?.data?.data) {\n toggleNotification({ type: 'warning', message: err.response.data.data });\n } else if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.invalid.configuration',\n defaultMessage:\n 'You have an invalid configuration, check your server log for more information.',\n },\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n },\n }\n );\n\n const hasTransferTokens = transferTokens && transferTokens?.length > 0;\n const shouldDisplayDynamicTable = canRead && hasTransferTokens;\n const shouldDisplayNoContent = canRead && !hasTransferTokens && !canCreate;\n const shouldDisplayNoContentWithCreationButton = canRead && !hasTransferTokens && canCreate;\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Transfer Tokens\" />\n <HeaderLayout\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {shouldDisplayDynamicTable && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"trasfer-tokens\"\n rows={transferTokens}\n isLoading={isLoading}\n onConfirmDelete={(id) => deleteMutation.mutateAsync(id)}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {shouldDisplayNoContentWithCreationButton && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n }}\n action={\n <LinkButton\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n />\n )}\n {shouldDisplayNoContent && (\n <NoContent\n content={{\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport default TransferTokenListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListView from '../ListView';\n\nconst ProtectedTransferTokenListView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['transfer-tokens'].main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedTransferTokenListView;\n"],"names":["qs","ListView"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const jsxRuntime = require("react/jsx-runtime");
|
|
3
3
|
const helperPlugin = require("@strapi/helper-plugin");
|
|
4
4
|
const reactRedux = require("react-redux");
|
|
5
|
-
const AuthenticatedApp = require("./AuthenticatedApp-
|
|
5
|
+
const AuthenticatedApp = require("./AuthenticatedApp-eea6970a.js");
|
|
6
6
|
const React = require("react");
|
|
7
7
|
const designSystem = require("@strapi/design-system");
|
|
8
8
|
const qs = require("qs");
|
|
@@ -10,13 +10,13 @@ const reactIntl = require("react-intl");
|
|
|
10
10
|
const reactQuery = require("react-query");
|
|
11
11
|
const reactRouterDom = require("react-router-dom");
|
|
12
12
|
const useAdminUsers = require("./useAdminUsers-05d6b26a.js");
|
|
13
|
-
const index$1 = require("./index-
|
|
13
|
+
const index$1 = require("./index-2609696f.js");
|
|
14
14
|
const index$3 = require("./index-88298941.js");
|
|
15
15
|
const Icons = require("@strapi/icons");
|
|
16
16
|
const PropTypes = require("prop-types");
|
|
17
17
|
const v2 = require("@strapi/design-system/v2");
|
|
18
18
|
const formik = require("formik");
|
|
19
|
-
const index$2 = require("./index-
|
|
19
|
+
const index$2 = require("./index-9d9b9769.js");
|
|
20
20
|
const yup = require("yup");
|
|
21
21
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
22
22
|
function _interopNamespace(e) {
|
|
@@ -264,7 +264,7 @@ const ModalForm = ({ onSuccess, onToggle }) => {
|
|
|
264
264
|
);
|
|
265
265
|
const MagicLink = index$1.useEnterprise(
|
|
266
266
|
index$2.MagicLinkCE,
|
|
267
|
-
async () => (await Promise.resolve().then(() => require("./index-
|
|
267
|
+
async () => (await Promise.resolve().then(() => require("./index-65d8637e.js"))).MagicLinkEE
|
|
268
268
|
);
|
|
269
269
|
const postMutation = reactQuery.useMutation(
|
|
270
270
|
(body) => {
|
|
@@ -676,7 +676,7 @@ const UsersListPageSwitch = () => {
|
|
|
676
676
|
UserListPageCE,
|
|
677
677
|
async () => (
|
|
678
678
|
// eslint-disable-next-line import/no-cycle
|
|
679
|
-
(await Promise.resolve().then(() => require("./index-
|
|
679
|
+
(await Promise.resolve().then(() => require("./index-75d51788.js"))).UserListPageEE
|
|
680
680
|
)
|
|
681
681
|
);
|
|
682
682
|
if (!UsersListPage) {
|
|
@@ -694,4 +694,4 @@ const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
|
|
|
694
694
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
695
695
|
exports.UserListPageCE = UserListPageCE;
|
|
696
696
|
exports.index = index;
|
|
697
|
-
//# sourceMappingURL=index-
|
|
697
|
+
//# sourceMappingURL=index-5d3982dd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-25feef65.js","sources":["../../admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/displayedFilters.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/index.js","../../admin/src/pages/SettingsPage/pages/Users/ProtectedListPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Button } from '@strapi/design-system';\nimport { Envelop } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nexport const CreateActionCE = ({ onClick }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button onClick={onClick} startIcon={<Envelop />} size=\"S\">\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n};\n\nCreateActionCE.propTypes = {\n onClick: PropTypes.func.isRequired,\n};\n","import React from 'react';\n\nimport {\n BaseCheckbox,\n Box,\n Flex,\n IconButton,\n Tbody,\n Td,\n Tr,\n Typography,\n} from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { getFullName } from '../../../../../../../utils/getFullName';\n\nconst TableRows = ({\n canDelete,\n headers,\n entriesToDelete,\n onClickDelete,\n onSelectRow,\n withMainAction,\n withBulkActions,\n rows,\n}) => {\n const {\n push,\n location: { pathname },\n } = useHistory();\n const { formatMessage } = useIntl();\n\n return (\n <Tbody>\n {rows.map((data) => {\n const isChecked = entriesToDelete.findIndex((id) => id === data.id) !== -1;\n\n return (\n <Tr\n key={data.id}\n {...onRowClick({\n fn: () => push(`${pathname}/${data.id}`),\n condition: withBulkActions,\n })}\n >\n {withMainAction && (\n <Td {...stopPropagation}>\n <BaseCheckbox\n aria-label={formatMessage(\n {\n id: 'app.component.table.select.one-entry',\n defaultMessage: `Select {target}`,\n },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n checked={isChecked}\n onChange={() => {\n onSelectRow({ name: data.id, value: !isChecked });\n }}\n />\n </Td>\n )}\n {headers.map(({ key, cellFormatter, name, ...rest }) => {\n return (\n <Td key={key}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(data, { key, name, formatMessage, ...rest })\n ) : (\n <Typography textColor=\"neutral800\">{data[name] || '-'}</Typography>\n )}\n </Td>\n );\n })}\n\n {withBulkActions && (\n <Td>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => push(`${pathname}/${data.id}`)}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Pencil />}\n />\n\n {canDelete && (\n <Box paddingLeft={1} {...stopPropagation}>\n <IconButton\n onClick={() => onClickDelete(data.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Trash />}\n />\n </Box>\n )}\n </Flex>\n </Td>\n )}\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n\nTableRows.defaultProps = {\n canDelete: false,\n entriesToDelete: [],\n onClickDelete() {},\n onSelectRow() {},\n rows: [],\n withBulkActions: false,\n withMainAction: false,\n};\n\nTableRows.propTypes = {\n canDelete: PropTypes.bool,\n entriesToDelete: PropTypes.array,\n headers: PropTypes.array.isRequired,\n onClickDelete: PropTypes.func,\n onSelectRow: PropTypes.func,\n rows: PropTypes.array,\n withBulkActions: PropTypes.bool,\n withMainAction: PropTypes.bool,\n};\n\nexport default TableRows;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nexport const FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nexport const ROLE_LAYOUT = [];\n\nexport const FORM_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];\n\nexport const FORM_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required(translatedErrors.required),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).required(translatedErrors.required),\n roles: yup.array().min(1, translatedErrors.required).required(translatedErrors.required),\n});\n\nexport const STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n};\n","import React, { useState } from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport {\n Form,\n GenericInput,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport { Formik } from 'formik';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { useEnterprise } from '../../../../../../hooks/useEnterprise';\nimport { MagicLinkCE } from '../../components/MagicLink';\nimport SelectRoles from '../../components/SelectRoles';\n\nimport { FORM_LAYOUT, FORM_SCHEMA, FORM_INITIAL_VALUES, ROLE_LAYOUT, STEPPER } from './constants';\n\nconst ModalForm = ({ onSuccess, onToggle }) => {\n const [currentStep, setStep] = useState('create');\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [registrationToken, setRegistrationToken] = useState(null);\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { post } = useFetchClient();\n const roleLayout = useEnterprise(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, eeRoles];\n },\n\n defaultValue: [],\n }\n );\n const initialValues = useEnterprise(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\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 const postMutation = useMutation(\n (body) => {\n return post('/admin/users', body);\n },\n {\n async onSuccess({ data }) {\n setRegistrationToken(data.data.registrationToken);\n\n await onSuccess();\n\n goNext();\n setIsSubmitting(false);\n },\n onError(err) {\n setIsSubmitting(false);\n\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n\n throw err;\n },\n onSettled() {\n unlockApp();\n },\n }\n );\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body, { setErrors }) => {\n lockApp();\n setIsSubmitting(true);\n try {\n await postMutation.mutateAsync(body);\n } catch (err) {\n unlockApp();\n\n if (err?.response?.data?.error.message === 'Email already taken') {\n setErrors({ email: err.response.data.error.message });\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n const endActions =\n currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n );\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <ModalLayout onClose={onToggle} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <Formik\n enableReinitialize\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n validateOnChange={false}\n >\n {({ errors, handleChange, values }) => {\n return (\n <Form>\n <ModalBody>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && <MagicLink registrationToken={registrationToken} />}\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\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 <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles\n disabled={isDisabled}\n error={errors.roles}\n onChange={handleChange}\n value={values.roles}\n />\n </GridItem>\n {roleLayout.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\n onChange={handleChange}\n value={values[input.name]}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Box>\n </Box>\n </Flex>\n </ModalBody>\n <ModalFooter\n startActions={\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n }\n endActions={endActions}\n />\n </Form>\n );\n }}\n </Formik>\n </ModalLayout>\n );\n};\n\nModalForm.propTypes = {\n onToggle: PropTypes.func.isRequired,\n onSuccess: PropTypes.func.isRequired,\n};\n\nexport default ModalForm;\n","import React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nconst PaginationFooter = ({ pagination }) => {\n return (\n <Box paddingTop={4}>\n <Flex alignItems=\"flex-end\" justifyContent=\"space-between\">\n <PageSizeURLQuery />\n <PaginationURLQuery pagination={pagination} />\n </Flex>\n </Box>\n );\n};\n\nPaginationFooter.defaultProps = {\n pagination: {\n pageCount: 0,\n pageSize: 10,\n total: 0,\n },\n};\n\nPaginationFooter.propTypes = {\n pagination: PropTypes.shape({\n page: PropTypes.number,\n pageCount: PropTypes.number,\n pageSize: PropTypes.number,\n total: PropTypes.number,\n }),\n};\n\nexport default PaginationFooter;\n","const displayedFilters = [\n {\n name: 'firstname',\n metadatas: { label: 'Firstname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'lastname',\n metadatas: { label: 'Lastname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'email',\n metadatas: { label: 'Email' },\n fieldSchema: { type: 'email' },\n },\n {\n name: 'username',\n metadatas: { label: 'Username' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'isActive',\n metadatas: { label: 'Active user' },\n fieldSchema: { type: 'boolean' },\n },\n];\n\nexport default displayedFilters;\n","import React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport { Status } from '@strapi/helper-plugin';\n\nconst tableHeaders = [\n {\n name: 'firstname',\n key: 'firstname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n },\n {\n name: 'lastname',\n key: 'lastname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n },\n {\n key: 'email',\n name: 'email',\n metadatas: {\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n },\n {\n key: 'roles',\n name: 'roles',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n },\n cellFormatter({ roles }, { formatMessage }) {\n return (\n <Typography textColor=\"neutral800\">\n {roles\n .map((role) =>\n formatMessage({\n id: `Settings.permissions.users.${role.code}`,\n defaultMessage: role.name,\n })\n )\n .join(',\\n')}\n </Typography>\n );\n },\n },\n {\n key: 'username',\n name: 'username',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n },\n {\n key: 'isActive',\n name: 'isActive',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n },\n cellFormatter({ isActive }, { formatMessage }) {\n return (\n <Flex>\n <Status isActive={isActive} variant={isActive ? 'success' : 'danger'} />\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: isActive\n ? 'Settings.permissions.users.active'\n : 'Settings.permissions.users.inactive',\n defaultMessage: isActive ? 'Active' : 'Inactive',\n })}\n </Typography>\n </Flex>\n );\n },\n },\n];\n\nexport default tableHeaders;\n","import React, { useState } from 'react';\n\nimport { ActionLayout, ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n DynamicTable,\n NoPermissions,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../hooks/useAdminUsers';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport Filters from '../../../components/Filters';\n\nimport { CreateActionCE } from './CreateAction';\nimport TableRows from './DynamicTable/TableRows';\nimport ModalForm from './ModalForm';\nimport PaginationFooter from './PaginationFooter';\nimport displayedFilters from './utils/displayedFilters';\nimport tableHeaders from './utils/tableHeaders';\n\nconst EE_LICENSE_LIMIT_QUERY_KEY = ['ee', 'license-limit-info'];\n\nexport const UserListPageCE = () => {\n const { post } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = useState(false);\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings.users);\n const queryClient = useQueryClient();\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n useFocusWhenNavigate();\n const {\n users,\n pagination,\n isError,\n isLoading,\n refetch: refetchAdminUsers,\n } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }), {\n cacheTime: 0,\n enabled: canRead,\n });\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction'\n )\n ).CreateActionEE\n );\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const deleteAllMutation = useMutation(\n async (ids) => {\n await post('/admin/users/batch-delete', { ids });\n },\n {\n async onSuccess() {\n await refetchAdminUsers();\n\n // Toggle enabled/ disabled state on the invite button\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n },\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n message: formatAPIError(error),\n defaultMessage: 'An error occured',\n },\n });\n },\n }\n );\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Users\" />\n <HeaderLayout\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n {canRead && (\n <ActionLayout\n startActions={\n <>\n <SearchURLQuery\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters displayedFilters={displayedFilters} />\n </>\n }\n />\n )}\n\n <ContentLayout canRead={canRead}>\n {!canRead && <NoPermissions />}\n {/* TODO: Replace error message with something better */}\n {isError && <div>TODO: An error occurred</div>}\n {canRead && (\n <>\n <DynamicTable\n contentType=\"Users\"\n isLoading={isLoading}\n onConfirmDeleteAll={deleteAllMutation.mutateAsync}\n onConfirmDelete={(id) => deleteAllMutation.mutateAsync([id])}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n >\n <TableRows\n canDelete={canDelete}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n />\n </DynamicTable>\n\n {pagination && <PaginationFooter pagination={pagination} />}\n </>\n )}\n </ContentLayout>\n {isModalOpened && (\n <ModalForm\n onSuccess={async () => {\n await refetchAdminUsers();\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n }}\n onToggle={handleToggle}\n />\n )}\n </Main>\n );\n};\n\n// component which determines whether this page should render the CE or EE page\nconst UsersListPageSwitch = () => {\n const UsersListPage = useEnterprise(\n UserListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\nexport default UsersListPageSwitch;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListPage from '../ListPage';\n\nconst ProtectedListPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.users.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["useIntl","jsx","Button","Envelop","PropTypes","useHistory","Tbody","jsxs","Tr","onRowClick","Td","stopPropagation","BaseCheckbox","getFullName","Typography","Flex","IconButton","Pencil","Box","Trash","yup","translatedErrors","useState","useNotification","useOverlayBlocker","useFetchClient","useEnterprise","MagicLinkCE","useMutation","ModalLayout","ModalHeader","Breadcrumbs","Crumb","Formik","Form","ModalBody","Grid","GridItem","GenericInput","SelectRoles","ModalFooter","PageSizeURLQuery","PaginationURLQuery","Status","useAPIErrorHandler","useSelector","selectAdminPermissions","useRBAC","useQueryClient","useLocation","useFocusWhenNavigate","useAdminUsers","qs","Main","SettingsPageTitle","HeaderLayout","ActionLayout","Fragment","SearchURLQuery","Filters","ContentLayout","NoPermissions","DynamicTable","CheckPagePermissions","ListPage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-5d3982dd.js","sources":["../../admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/displayedFilters.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/index.js","../../admin/src/pages/SettingsPage/pages/Users/ProtectedListPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Button } from '@strapi/design-system';\nimport { Envelop } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nexport const CreateActionCE = ({ onClick }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button onClick={onClick} startIcon={<Envelop />} size=\"S\">\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n};\n\nCreateActionCE.propTypes = {\n onClick: PropTypes.func.isRequired,\n};\n","import React from 'react';\n\nimport {\n BaseCheckbox,\n Box,\n Flex,\n IconButton,\n Tbody,\n Td,\n Tr,\n Typography,\n} from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { getFullName } from '../../../../../../../utils/getFullName';\n\nconst TableRows = ({\n canDelete,\n headers,\n entriesToDelete,\n onClickDelete,\n onSelectRow,\n withMainAction,\n withBulkActions,\n rows,\n}) => {\n const {\n push,\n location: { pathname },\n } = useHistory();\n const { formatMessage } = useIntl();\n\n return (\n <Tbody>\n {rows.map((data) => {\n const isChecked = entriesToDelete.findIndex((id) => id === data.id) !== -1;\n\n return (\n <Tr\n key={data.id}\n {...onRowClick({\n fn: () => push(`${pathname}/${data.id}`),\n condition: withBulkActions,\n })}\n >\n {withMainAction && (\n <Td {...stopPropagation}>\n <BaseCheckbox\n aria-label={formatMessage(\n {\n id: 'app.component.table.select.one-entry',\n defaultMessage: `Select {target}`,\n },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n checked={isChecked}\n onChange={() => {\n onSelectRow({ name: data.id, value: !isChecked });\n }}\n />\n </Td>\n )}\n {headers.map(({ key, cellFormatter, name, ...rest }) => {\n return (\n <Td key={key}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(data, { key, name, formatMessage, ...rest })\n ) : (\n <Typography textColor=\"neutral800\">{data[name] || '-'}</Typography>\n )}\n </Td>\n );\n })}\n\n {withBulkActions && (\n <Td>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => push(`${pathname}/${data.id}`)}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Pencil />}\n />\n\n {canDelete && (\n <Box paddingLeft={1} {...stopPropagation}>\n <IconButton\n onClick={() => onClickDelete(data.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Trash />}\n />\n </Box>\n )}\n </Flex>\n </Td>\n )}\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n\nTableRows.defaultProps = {\n canDelete: false,\n entriesToDelete: [],\n onClickDelete() {},\n onSelectRow() {},\n rows: [],\n withBulkActions: false,\n withMainAction: false,\n};\n\nTableRows.propTypes = {\n canDelete: PropTypes.bool,\n entriesToDelete: PropTypes.array,\n headers: PropTypes.array.isRequired,\n onClickDelete: PropTypes.func,\n onSelectRow: PropTypes.func,\n rows: PropTypes.array,\n withBulkActions: PropTypes.bool,\n withMainAction: PropTypes.bool,\n};\n\nexport default TableRows;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nexport const FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nexport const ROLE_LAYOUT = [];\n\nexport const FORM_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];\n\nexport const FORM_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required(translatedErrors.required),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).required(translatedErrors.required),\n roles: yup.array().min(1, translatedErrors.required).required(translatedErrors.required),\n});\n\nexport const STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n};\n","import React, { useState } from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport {\n Form,\n GenericInput,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport { Formik } from 'formik';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { useEnterprise } from '../../../../../../hooks/useEnterprise';\nimport { MagicLinkCE } from '../../components/MagicLink';\nimport SelectRoles from '../../components/SelectRoles';\n\nimport { FORM_LAYOUT, FORM_SCHEMA, FORM_INITIAL_VALUES, ROLE_LAYOUT, STEPPER } from './constants';\n\nconst ModalForm = ({ onSuccess, onToggle }) => {\n const [currentStep, setStep] = useState('create');\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [registrationToken, setRegistrationToken] = useState(null);\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { post } = useFetchClient();\n const roleLayout = useEnterprise(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, eeRoles];\n },\n\n defaultValue: [],\n }\n );\n const initialValues = useEnterprise(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\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 const postMutation = useMutation(\n (body) => {\n return post('/admin/users', body);\n },\n {\n async onSuccess({ data }) {\n setRegistrationToken(data.data.registrationToken);\n\n await onSuccess();\n\n goNext();\n setIsSubmitting(false);\n },\n onError(err) {\n setIsSubmitting(false);\n\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n\n throw err;\n },\n onSettled() {\n unlockApp();\n },\n }\n );\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body, { setErrors }) => {\n lockApp();\n setIsSubmitting(true);\n try {\n await postMutation.mutateAsync(body);\n } catch (err) {\n unlockApp();\n\n if (err?.response?.data?.error.message === 'Email already taken') {\n setErrors({ email: err.response.data.error.message });\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n const endActions =\n currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n );\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <ModalLayout onClose={onToggle} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <Formik\n enableReinitialize\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n validateOnChange={false}\n >\n {({ errors, handleChange, values }) => {\n return (\n <Form>\n <ModalBody>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && <MagicLink registrationToken={registrationToken} />}\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\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 <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles\n disabled={isDisabled}\n error={errors.roles}\n onChange={handleChange}\n value={values.roles}\n />\n </GridItem>\n {roleLayout.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\n onChange={handleChange}\n value={values[input.name]}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Box>\n </Box>\n </Flex>\n </ModalBody>\n <ModalFooter\n startActions={\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n }\n endActions={endActions}\n />\n </Form>\n );\n }}\n </Formik>\n </ModalLayout>\n );\n};\n\nModalForm.propTypes = {\n onToggle: PropTypes.func.isRequired,\n onSuccess: PropTypes.func.isRequired,\n};\n\nexport default ModalForm;\n","import React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nconst PaginationFooter = ({ pagination }) => {\n return (\n <Box paddingTop={4}>\n <Flex alignItems=\"flex-end\" justifyContent=\"space-between\">\n <PageSizeURLQuery />\n <PaginationURLQuery pagination={pagination} />\n </Flex>\n </Box>\n );\n};\n\nPaginationFooter.defaultProps = {\n pagination: {\n pageCount: 0,\n pageSize: 10,\n total: 0,\n },\n};\n\nPaginationFooter.propTypes = {\n pagination: PropTypes.shape({\n page: PropTypes.number,\n pageCount: PropTypes.number,\n pageSize: PropTypes.number,\n total: PropTypes.number,\n }),\n};\n\nexport default PaginationFooter;\n","const displayedFilters = [\n {\n name: 'firstname',\n metadatas: { label: 'Firstname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'lastname',\n metadatas: { label: 'Lastname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'email',\n metadatas: { label: 'Email' },\n fieldSchema: { type: 'email' },\n },\n {\n name: 'username',\n metadatas: { label: 'Username' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'isActive',\n metadatas: { label: 'Active user' },\n fieldSchema: { type: 'boolean' },\n },\n];\n\nexport default displayedFilters;\n","import React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport { Status } from '@strapi/helper-plugin';\n\nconst tableHeaders = [\n {\n name: 'firstname',\n key: 'firstname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n },\n {\n name: 'lastname',\n key: 'lastname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n },\n {\n key: 'email',\n name: 'email',\n metadatas: {\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n },\n {\n key: 'roles',\n name: 'roles',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n },\n cellFormatter({ roles }, { formatMessage }) {\n return (\n <Typography textColor=\"neutral800\">\n {roles\n .map((role) =>\n formatMessage({\n id: `Settings.permissions.users.${role.code}`,\n defaultMessage: role.name,\n })\n )\n .join(',\\n')}\n </Typography>\n );\n },\n },\n {\n key: 'username',\n name: 'username',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n },\n {\n key: 'isActive',\n name: 'isActive',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n },\n cellFormatter({ isActive }, { formatMessage }) {\n return (\n <Flex>\n <Status isActive={isActive} variant={isActive ? 'success' : 'danger'} />\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: isActive\n ? 'Settings.permissions.users.active'\n : 'Settings.permissions.users.inactive',\n defaultMessage: isActive ? 'Active' : 'Inactive',\n })}\n </Typography>\n </Flex>\n );\n },\n },\n];\n\nexport default tableHeaders;\n","import React, { useState } from 'react';\n\nimport { ActionLayout, ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n DynamicTable,\n NoPermissions,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../hooks/useAdminUsers';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport Filters from '../../../components/Filters';\n\nimport { CreateActionCE } from './CreateAction';\nimport TableRows from './DynamicTable/TableRows';\nimport ModalForm from './ModalForm';\nimport PaginationFooter from './PaginationFooter';\nimport displayedFilters from './utils/displayedFilters';\nimport tableHeaders from './utils/tableHeaders';\n\nconst EE_LICENSE_LIMIT_QUERY_KEY = ['ee', 'license-limit-info'];\n\nexport const UserListPageCE = () => {\n const { post } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = useState(false);\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings.users);\n const queryClient = useQueryClient();\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n useFocusWhenNavigate();\n const {\n users,\n pagination,\n isError,\n isLoading,\n refetch: refetchAdminUsers,\n } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }), {\n cacheTime: 0,\n enabled: canRead,\n });\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction'\n )\n ).CreateActionEE\n );\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const deleteAllMutation = useMutation(\n async (ids) => {\n await post('/admin/users/batch-delete', { ids });\n },\n {\n async onSuccess() {\n await refetchAdminUsers();\n\n // Toggle enabled/ disabled state on the invite button\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n },\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n message: formatAPIError(error),\n defaultMessage: 'An error occured',\n },\n });\n },\n }\n );\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Users\" />\n <HeaderLayout\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n {canRead && (\n <ActionLayout\n startActions={\n <>\n <SearchURLQuery\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters displayedFilters={displayedFilters} />\n </>\n }\n />\n )}\n\n <ContentLayout canRead={canRead}>\n {!canRead && <NoPermissions />}\n {/* TODO: Replace error message with something better */}\n {isError && <div>TODO: An error occurred</div>}\n {canRead && (\n <>\n <DynamicTable\n contentType=\"Users\"\n isLoading={isLoading}\n onConfirmDeleteAll={deleteAllMutation.mutateAsync}\n onConfirmDelete={(id) => deleteAllMutation.mutateAsync([id])}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n >\n <TableRows\n canDelete={canDelete}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n />\n </DynamicTable>\n\n {pagination && <PaginationFooter pagination={pagination} />}\n </>\n )}\n </ContentLayout>\n {isModalOpened && (\n <ModalForm\n onSuccess={async () => {\n await refetchAdminUsers();\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n }}\n onToggle={handleToggle}\n />\n )}\n </Main>\n );\n};\n\n// component which determines whether this page should render the CE or EE page\nconst UsersListPageSwitch = () => {\n const UsersListPage = useEnterprise(\n UserListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\nexport default UsersListPageSwitch;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListPage from '../ListPage';\n\nconst ProtectedListPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.users.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["useIntl","jsx","Button","Envelop","PropTypes","useHistory","Tbody","jsxs","Tr","onRowClick","Td","stopPropagation","BaseCheckbox","getFullName","Typography","Flex","IconButton","Pencil","Box","Trash","yup","translatedErrors","useState","useNotification","useOverlayBlocker","useFetchClient","useEnterprise","MagicLinkCE","useMutation","ModalLayout","ModalHeader","Breadcrumbs","Crumb","Formik","Form","ModalBody","Grid","GridItem","GenericInput","SelectRoles","ModalFooter","PageSizeURLQuery","PaginationURLQuery","Status","useAPIErrorHandler","useSelector","selectAdminPermissions","useRBAC","useQueryClient","useLocation","useFocusWhenNavigate","useAdminUsers","qs","Main","SettingsPageTitle","HeaderLayout","ActionLayout","Fragment","SearchURLQuery","Filters","ContentLayout","NoPermissions","DynamicTable","CheckPagePermissions","ListPage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,iBAAiB,CAAC,EAAE,cAAc;AACvC,QAAA,EAAE,kBAAkBA,UAAAA;AAGxB,SAAAC,2BAAA,IAACC,uBAAO,SAAkB,0CAAYC,eAAQ,CAAA,CAAA,GAAI,MAAK,KACpD,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAA,EACH,CAAA;AAEJ;AAEA,eAAe,YAAY;AAAA,EACzB,SAASC,mBAAAA,QAAU,KAAK;AAC1B;ACFA,MAAM,YAAY,CAAC;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA;AAAA,IACJ;AAAA,IACA,UAAU,EAAE,SAAS;AAAA,MACnBC,eAAW,WAAA;AACT,QAAA,EAAE,kBAAkBL,UAAAA;AAE1B,SACGC,2BAAAA,IAAAK,aAAAA,OAAA,EACE,UAAK,KAAA,IAAI,CAAC,SAAS;AACZ,UAAA,YAAY,gBAAgB,UAAU,CAAC,OAAO,OAAO,KAAK,EAAE,MAAM;AAGtE,WAAAC,2BAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QAEE,GAAGC,wBAAW;AAAA,UACb,IAAI,MAAM,KAAK,GAAG,QAAQ,IAAI,KAAK,EAAE,EAAE;AAAA,UACvC,WAAW;AAAA,QAAA,CACZ;AAAA,QAEA,UAAA;AAAA,UACC,kBAAAR,2BAAA,IAACS,aAAI,IAAA,EAAA,GAAGC,aACN,iBAAA,UAAAV,2BAAA;AAAA,YAACW,aAAA;AAAA,YAAA;AAAA,cACC,cAAY;AAAA,gBACV;AAAA,kBACE,IAAI;AAAA,kBACJ,gBAAgB;AAAA,gBAClB;AAAA,gBACA,EAAE,QAAQC,iBAAAA,YAAY,KAAK,WAAW,KAAK,QAAQ,EAAE;AAAA,cACvD;AAAA,cACA,SAAS;AAAA,cACT,UAAU,MAAM;AACd,4BAAY,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,WAAW;AAAA,cAClD;AAAA,YAAA;AAAA,UAAA,GAEJ;AAAA,UAED,QAAQ,IAAI,CAAC,EAAE,KAAK,eAAe,MAAM,GAAG,WAAW;AAEpD,mBAAAZ,2BAAA,IAACS,aACE,IAAA,EAAA,UAAA,OAAO,kBAAkB,aACxB,cAAc,MAAM,EAAE,KAAK,MAAM,eAAe,GAAG,MAAM,IAExDT,2BAAA,IAAAa,aAAA,YAAA,EAAW,WAAU,cAAc,eAAK,IAAI,KAAK,IAAI,CAAA,EAAA,GAJjD,GAMT;AAAA,UAAA,CAEH;AAAA,UAEA,mBACEb,2BAAAA,IAAAS,aAAA,IAAA,EACC,UAACH,gCAAAQ,aAAAA,MAAA,EAAK,gBAAe,OACnB,UAAA;AAAA,YAAAd,2BAAA;AAAA,cAACe,aAAA;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,KAAK,GAAG,QAAQ,IAAI,KAAK,EAAE,EAAE;AAAA,gBAC5C,OAAO;AAAA,kBACL,EAAE,IAAI,4BAA4B,gBAAgB,gBAAgB;AAAA,kBAClE,EAAE,QAAQH,iBAAAA,YAAY,KAAK,WAAW,KAAK,QAAQ,EAAE;AAAA,gBACvD;AAAA,gBACA,UAAQ;AAAA,gBACR,qCAAOI,MAAO,QAAA,EAAA;AAAA,cAAA;AAAA,YAChB;AAAA,YAEC,aACEhB,2BAAAA,IAAAiB,aAAAA,KAAA,EAAI,aAAa,GAAI,GAAGP,aAAAA,iBACvB,UAAAV,2BAAA;AAAA,cAACe,aAAA;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,cAAc,KAAK,EAAE;AAAA,gBACpC,OAAO;AAAA,kBACL,EAAE,IAAI,wBAAwB,gBAAgB,kBAAkB;AAAA,kBAChE,EAAE,QAAQH,iBAAAA,YAAY,KAAK,WAAW,KAAK,QAAQ,EAAE;AAAA,gBACvD;AAAA,gBACA,UAAQ;AAAA,gBACR,qCAAOM,MAAM,OAAA,EAAA;AAAA,cAAA;AAAA,YAAA,GAEjB;AAAA,UAAA,EAAA,CAEJ,EACF,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MA9DG,KAAK;AAAA,IAAA;AAAA,EAkEf,CAAA,EACH,CAAA;AAEJ;AAEA,UAAU,eAAe;AAAA,EACvB,WAAW;AAAA,EACX,iBAAiB,CAAC;AAAA,EAClB,gBAAgB;AAAA,EAAC;AAAA,EACjB,cAAc;AAAA,EAAC;AAAA,EACf,MAAM,CAAC;AAAA,EACP,iBAAiB;AAAA,EACjB,gBAAgB;AAClB;AAEA,UAAU,YAAY;AAAA,EACpB,WAAWf,mBAAU,QAAA;AAAA,EACrB,iBAAiBA,mBAAU,QAAA;AAAA,EAC3B,SAASA,mBAAAA,QAAU,MAAM;AAAA,EACzB,eAAeA,mBAAU,QAAA;AAAA,EACzB,aAAaA,mBAAU,QAAA;AAAA,EACvB,MAAMA,mBAAU,QAAA;AAAA,EAChB,iBAAiBA,mBAAU,QAAA;AAAA,EAC3B,gBAAgBA,mBAAU,QAAA;AAC5B;AClIO,MAAM,sBAAsB;AAAA,EACjC,WAAW;AAAA,EACX,UAAU;AAAA,EACV,OAAO;AAAA,EACP,OAAO,CAAC;AACV;AAEO,MAAM,cAAc,CAAA;AAEpB,MAAM,cAAc;AAAA,EACzB;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,EACF;AACF;AAEO,MAAM,cAAcgB,eAAI,OAAO,EAAE,MAAM;AAAA,EAC5C,WAAWA,eAAI,OAAO,EAAE,OAAO,SAASC,8BAAiB,QAAQ;AAAA,EACjE,UAAUD,eAAI,OAAO;AAAA,EACrB,OAAOA,eAAI,OAAA,EAAS,MAAMC,8BAAiB,KAAK,EAAE,SAASA,aAAA,iBAAiB,QAAQ;AAAA,EACpF,OAAOD,eAAI,MAAQ,EAAA,IAAI,GAAGC,aAAA,iBAAiB,QAAQ,EAAE,SAASA,aAAAA,iBAAiB,QAAQ;AACzF,CAAC;AAEM,MAAM,UAAU;AAAA,EACrB,QAAQ;AAAA,IACN,mBAAmB;AAAA,MACjB,IAAI;AAAA,MACJ,gBAAgB;AAAA,IAClB;AAAA,IACA,YAAY;AAAA,IACZ,MAAM;AAAA,EACR;AAAA,EACA,cAAc;AAAA,IACZ,mBAAmB,EAAE,IAAI,iBAAiB,gBAAgB,SAAS;AAAA,IACnE,YAAY;AAAA,IACZ,MAAM;AAAA,EACR;AACF;ACzDA,MAAM,YAAY,CAAC,EAAE,WAAW,eAAe;AAC7C,QAAM,CAAC,aAAa,OAAO,IAAIC,eAAS,QAAQ;AAChD,QAAM,CAAC,cAAc,eAAe,IAAIA,eAAS,KAAK;AACtD,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,eAAS,IAAI;AACzD,QAAA,EAAE,kBAAkBtB,UAAAA;AAC1B,QAAM,qBAAqBuB,aAAAA;AAC3B,QAAM,EAAE,SAAS,UAAU,IAAIC,aAAkB,kBAAA;AAC3C,QAAA,EAAE,SAASC,aAAAA;AACjB,QAAM,aAAaC,QAAA;AAAA,IACjB;AAAA,IACA,aAEI,MAAM,qCACJ,yBACF,CAAA,GACA;AAAA,IACJ;AAAA,MACE,QAAQ,SAAS,SAAS;AACjB,eAAA,CAAC,GAAG,SAAS,OAAO;AAAA,MAC7B;AAAA,MAEA,cAAc,CAAC;AAAA,IACjB;AAAA,EAAA;AAEF,QAAM,gBAAgBA,QAAA;AAAA,IACpB;AAAA,IACA,aAEI,MAAM,qCACJ,yBACF,CAAA,GACA;AAAA,IACJ;AAAA,MACE,QAAQ,UAAU,UAAU;AACnB,eAAA;AAAA,UACL,GAAG;AAAA,UACH,GAAG;AAAA,QAAA;AAAA,MAEP;AAAA,MAEA,cAAc;AAAA,IAChB;AAAA,EAAA;AAEF,QAAM,YAAYA,QAAA;AAAA,IAChBC,QAAA;AAAA,IACA,aAEI,MAAM,qCACJ,qBACF,CAAA,GACA;AAAA,EAAA;AAEN,QAAM,eAAeC,WAAA;AAAA,IACnB,CAAC,SAAS;AACD,aAAA,KAAK,gBAAgB,IAAI;AAAA,IAClC;AAAA,IACA;AAAA,MACE,MAAM,UAAU,EAAE,QAAQ;AACH,6BAAA,KAAK,KAAK,iBAAiB;AAEhD,cAAM,UAAU;AAET;AACP,wBAAgB,KAAK;AAAA,MACvB;AAAA,MACA,QAAQ,KAAK;AACX,wBAAgB,KAAK;AAEF,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,EAAE,IAAI,sBAAsB,gBAAgB,mBAAmB;AAAA,QAAA,CACzE;AAEK,cAAA;AAAA,MACR;AAAA,MACA,YAAY;AACA;MACZ;AAAA,IACF;AAAA,EAAA;AAGF,QAAM,cAAc,cAAc;AAAA,IAChC,IAAI;AAAA,IACJ,gBAAgB;AAAA,EAAA,CACjB;AAED,QAAM,eAAe,OAAO,MAAM,EAAE,gBAAgB;AAC1C;AACR,oBAAgB,IAAI;AAChB,QAAA;AACI,YAAA,aAAa,YAAY,IAAI;AAAA,aAC5B,KAAK;AACF;AAEV,UAAI,KAAK,UAAU,MAAM,MAAM,YAAY,uBAAuB;AAChE,kBAAU,EAAE,OAAO,IAAI,SAAS,KAAK,MAAM,SAAS;AAAA,MACtD;AAAA,IACF;AAAA,EAAA;AAGF,QAAM,SAAS,MAAM;AACnB,QAAI,MAAM;AACR,cAAQ,IAAI;AAAA,IAAA,OACP;AACI;IACX;AAAA,EAAA;AAGF,QAAM,EAAE,mBAAmB,YAAY,KAAK,IAAI,QAAQ,WAAW;AAC7D,QAAA,aACJ,gBAAgB,WACd3B,2BAAAA,IAACC,aAAAA,UAAO,MAAK,UAAS,SAAS,cAC5B,UAAc,cAAA,iBAAiB,GAClC,IAEAD,2BAAAA,IAACC,aAAAA,QAAO,EAAA,MAAK,UAAS,SAAS,cAAc,SAAS,UACnD,UAAc,cAAA,iBAAiB,EAClC,CAAA;AAIJ,MAAI,CAAC,WAAW;AACP,WAAA;AAAA,EACT;AAEA,SACGK,2BAAAA,KAAAsB,aAAAA,aAAA,EAAY,SAAS,UAAU,YAAW,SACzC,UAAA;AAAA,IAAC5B,2BAAA,IAAA6B,aAAA,aAAA,EAIC,UAAC7B,2BAAA,IAAA8B,gBAAA,EAAY,OAAO,aAClB,UAAC9B,2BAAAA,IAAA+B,GAAA,OAAA,EAAM,WAAS,MAAE,UAAY,YAAA,CAAA,EAChC,CAAA,GACF;AAAA,IACA/B,2BAAA;AAAA,MAACgC,OAAA;AAAA,MAAA;AAAA,QACC,oBAAkB;AAAA,QAClB;AAAA,QACA,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAEjB,UAAC,CAAA,EAAE,QAAQ,cAAc,aAAa;AACrC,iDACGC,mBACC,EAAA,UAAA;AAAA,YAACjC,2BAAAA,IAAAkC,aAAAA,WAAA,EACC,0CAACpB,aAAAA,MAAK,EAAA,WAAU,UAAS,YAAW,WAAU,KAAK,GAChD,UAAA;AAAA,cAAgB,gBAAA,YAAad,2BAAAA,IAAA,WAAA,EAAU,kBAAsC,CAAA;AAAA,8CAC7EiB,aAAAA,KACC,EAAA,UAAA;AAAA,gBAAAjB,+BAACa,aAAAA,YAAW,EAAA,SAAQ,QAAO,IAAG,MAC3B,UAAc,cAAA;AAAA,kBACb,IAAI;AAAA,kBACJ,gBAAgB;AAAA,gBACjB,CAAA,GACH;AAAA,+CACCI,aAAI,KAAA,EAAA,YAAY,GACf,UAACjB,2BAAA,IAAAc,mBAAA,EAAK,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,yCAACqB,aAAK,MAAA,EAAA,KAAK,GACR,UAAY,YAAA,IAAI,CAAC,QAAQ;AACjB,yBAAA,IAAI,IAAI,CAAC,UAAU;AACxB,2BACGnC,2BAAAA,IAAAoC,aAAAA,UAAA,EAA2B,GAAG,MAAM,MACnC,UAAApC,2BAAA;AAAA,sBAACqC,aAAA;AAAA,sBAAA;AAAA,wBACE,GAAG;AAAA,wBACJ,UAAU;AAAA,wBACV,OAAO,OAAO,MAAM,IAAI;AAAA,wBACxB,UAAU;AAAA,wBACV,OAAO,OAAO,MAAM,IAAI;AAAA,sBAAA;AAAA,oBAAA,KANb,MAAM,IAQrB;AAAA,kBAAA,CAEH;AAAA,gBAAA,CACF,EACH,CAAA,EACF,CAAA,GACF;AAAA,cAAA,GACF;AAAA,8CACCpB,aAAAA,KACC,EAAA,UAAA;AAAA,gBAAAjB,+BAACa,aAAAA,YAAW,EAAA,SAAQ,QAAO,IAAG,MAC3B,UAAc,cAAA;AAAA,kBACb,IAAI;AAAA,kBACJ,gBAAgB;AAAA,gBACjB,CAAA,GACH;AAAA,+CACCI,aAAI,KAAA,EAAA,YAAY,GACf,UAACX,2BAAA,KAAA6B,mBAAA,EAAK,KAAK,GACT,UAAA;AAAA,kBAAAnC,2BAAA,IAACoC,aAAS,UAAA,EAAA,KAAK,GAAG,IAAI,IACpB,UAAApC,2BAAA;AAAA,oBAACsC,QAAA;AAAA,oBAAA;AAAA,sBACC,UAAU;AAAA,sBACV,OAAO,OAAO;AAAA,sBACd,UAAU;AAAA,sBACV,OAAO,OAAO;AAAA,oBAAA;AAAA,kBAAA,GAElB;AAAA,kBACC,WAAW,IAAI,CAAC,QAAQ;AAChB,2BAAA,IAAI,IAAI,CAAC,UAAU;AACxB,6BACGtC,2BAAAA,IAAAoC,aAAAA,UAAA,EAA2B,GAAG,MAAM,MACnC,UAAApC,2BAAA;AAAA,wBAACqC,aAAA;AAAA,wBAAA;AAAA,0BACE,GAAG;AAAA,0BACJ,UAAU;AAAA,0BACV,UAAU;AAAA,0BACV,OAAO,OAAO,MAAM,IAAI;AAAA,wBAAA;AAAA,sBAAA,KALb,MAAM,IAOrB;AAAA,oBAAA,CAEH;AAAA,kBAAA,CACF;AAAA,gBAAA,EAAA,CACH,EACF,CAAA;AAAA,cAAA,GACF;AAAA,YAAA,EAAA,CACF,EACF,CAAA;AAAA,YACArC,2BAAA;AAAA,cAACuC,aAAA;AAAA,cAAA;AAAA,gBACC,6CACGtC,qBAAO,EAAA,SAAQ,YAAW,SAAS,UAAU,MAAK,UAChD,UAAc,cAAA;AAAA,kBACb,IAAI;AAAA,kBACJ,gBAAgB;AAAA,gBACjB,CAAA,GACH;AAAA,gBAEF;AAAA,cAAA;AAAA,YACF;AAAA,UACF,EAAA,CAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;AAEA,UAAU,YAAY;AAAA,EACpB,UAAUE,mBAAAA,QAAU,KAAK;AAAA,EACzB,WAAWA,mBAAAA,QAAU,KAAK;AAC5B;ACtQA,MAAM,mBAAmB,CAAC,EAAE,iBAAiB;AAEzC,SAAAH,2BAAA,IAACiB,oBAAI,YAAY,GACf,0CAACH,aAAK,MAAA,EAAA,YAAW,YAAW,gBAAe,iBACzC,UAAA;AAAA,IAAAd,2BAAA,IAACwC,aAAiB,kBAAA,EAAA;AAAA,IAClBxC,+BAACyC,aAAAA,sBAAmB,YAAwB;AAAA,EAAA,EAC9C,CAAA,EACF,CAAA;AAEJ;AAEA,iBAAiB,eAAe;AAAA,EAC9B,YAAY;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF;AAEA,iBAAiB,YAAY;AAAA,EAC3B,YAAYtC,2BAAU,MAAM;AAAA,IAC1B,MAAMA,mBAAU,QAAA;AAAA,IAChB,WAAWA,mBAAU,QAAA;AAAA,IACrB,UAAUA,mBAAU,QAAA;AAAA,IACpB,OAAOA,mBAAU,QAAA;AAAA,EAAA,CAClB;AACH;AChCA,MAAM,mBAAmB;AAAA,EACvB;AAAA,IACE,MAAM;AAAA,IACN,WAAW,EAAE,OAAO,YAAY;AAAA,IAChC,aAAa,EAAE,MAAM,SAAS;AAAA,EAChC;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAW,EAAE,OAAO,WAAW;AAAA,IAC/B,aAAa,EAAE,MAAM,SAAS;AAAA,EAChC;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAW,EAAE,OAAO,QAAQ;AAAA,IAC5B,aAAa,EAAE,MAAM,QAAQ;AAAA,EAC/B;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAW,EAAE,OAAO,WAAW;AAAA,IAC/B,aAAa,EAAE,MAAM,SAAS;AAAA,EAChC;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAW,EAAE,OAAO,cAAc;AAAA,IAClC,aAAa,EAAE,MAAM,UAAU;AAAA,EACjC;AACF;ACrBA,MAAM,eAAe;AAAA,EACnB;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,MACT,OAAO,EAAE,IAAI,oCAAoC,gBAAgB,QAAQ;AAAA,MACzE,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,IACA,cAAc,EAAE,SAAS,EAAE,iBAAiB;AAC1C,aACGH,2BAAAA,IAAAa,aAAAA,YAAA,EAAW,WAAU,cACnB,UACE,MAAA;AAAA,QAAI,CAAC,SACJ,cAAc;AAAA,UACZ,IAAI,8BAA8B,KAAK,IAAI;AAAA,UAC3C,gBAAgB,KAAK;AAAA,QAAA,CACtB;AAAA,MAAA,EAEF,KAAK,KAAK,EACf,CAAA;AAAA,IAEJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,IACA,cAAc,EAAE,YAAY,EAAE,iBAAiB;AAC7C,6CACGC,mBACC,EAAA,UAAA;AAAA,QAAAd,2BAAA,IAAC0C,aAAO,QAAA,EAAA,UAAoB,SAAS,WAAW,YAAY,UAAU;AAAA,QACrE1C,2BAAA,IAAAa,aAAA,YAAA,EAAW,WAAU,cACnB,UAAc,cAAA;AAAA,UACb,IAAI,WACA,sCACA;AAAA,UACJ,gBAAgB,WAAW,WAAW;AAAA,QACvC,CAAA,GACH;AAAA,MACF,EAAA,CAAA;AAAA,IAEJ;AAAA,EACF;AACF;AClEA,MAAM,6BAA6B,CAAC,MAAM,oBAAoB;AAEvD,MAAM,iBAAiB,MAAM;AAC5B,QAAA,EAAE,SAASW,aAAAA;AACX,QAAA,EAAE,mBAAmBmB,aAAAA;AAC3B,QAAM,CAAC,eAAe,cAAc,IAAItB,eAAS,KAAK;AAChD,QAAA,cAAcuB,uBAAYC,iBAAAA,sBAAsB;AAChD,QAAA;AAAA,IACJ,gBAAgB,EAAE,WAAW,WAAW,QAAQ;AAAA,EAC9C,IAAAC,qBAAQ,YAAY,SAAS,KAAK;AACtC,QAAM,cAAcC,WAAAA;AACpB,QAAM,qBAAqBzB,aAAAA;AACrB,QAAA,EAAE,kBAAkBvB,UAAAA;AACpB,QAAA,EAAE,WAAWiD,eAAAA;AACEC,eAAAA;AACf,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EAAA,IACPC,cAAAA,cAAcC,YAAAA,QAAG,MAAM,QAAQ,EAAE,mBAAmB,KAAK,CAAC,GAAG;AAAA,IAC/D,WAAW;AAAA,IACX,SAAS;AAAA,EAAA,CACV;AACD,QAAM,eAAe1B,QAAA;AAAA,IACnB;AAAA,IACA,aAEI,MAAM,qCACJ,qBACF,CAAA,GACA;AAAA,EAAA;AAGN,QAAM,UAAU,aAAa,IAAI,CAAC,YAAY;AAAA,IAC5C,GAAG;AAAA,IACH,WAAW;AAAA,MACT,GAAG,OAAO;AAAA,MACV,OAAO,cAAc,OAAO,UAAU,KAAK;AAAA,IAC7C;AAAA,EACA,EAAA;AAEF,QAAM,QAAQ,cAAc;AAAA,IAC1B,IAAI;AAAA,IACJ,gBAAgB;AAAA,EAAA,CACjB;AAED,QAAM,eAAe,MAAM;AACV,mBAAA,CAAC,SAAS,CAAC,IAAI;AAAA,EAAA;AAGhC,QAAM,oBAAoBE,WAAA;AAAA,IACxB,OAAO,QAAQ;AACb,YAAM,KAAK,6BAA6B,EAAE,IAAK,CAAA;AAAA,IACjD;AAAA,IACA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,kBAAkB;AAGlB,cAAA,YAAY,eAAe,0BAA0B;AAAA,MAC7D;AAAA,MACA,QAAQ,OAAO;AACM,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS;AAAA,YACP,IAAI;AAAA,YACJ,SAAS,eAAe,KAAK;AAAA,YAC7B,gBAAgB;AAAA,UAClB;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IACF;AAAA,EAAA;AAIF,MAAI,CAAC,cAAc;AACV,WAAA;AAAA,EACT;AAGE,SAAArB,2BAAA,KAAC8C,aAAK,MAAA,EAAA,aAAW,WACf,UAAA;AAAA,IAACpD,2BAAAA,IAAAqD,aAAA,mBAAA,EAAkB,MAAK,QAAQ,CAAA;AAAA,IAChCrD,2BAAA;AAAA,MAACsD,aAAA;AAAA,MAAA;AAAA,QACC,eAAe,aAActD,2BAAA,IAAA,cAAA,EAAa,SAAS,cAAc;AAAA,QACjE;AAAA,QACA,UAAU,cAAc;AAAA,UACtB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IACH;AAAA,IACC,WACCA,2BAAA;AAAA,MAACuD,aAAA;AAAA,MAAA;AAAA,QACC,cAEIjD,2BAAA,KAAAkD,qBAAA,EAAA,UAAA;AAAA,UAAAxD,2BAAA;AAAA,YAACyD,aAAA;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,EAAE,IAAI,8BAA8B,gBAAgB,sBAAsB;AAAA,gBAC1E,EAAE,QAAQ,MAAM;AAAA,cAClB;AAAA,YAAA;AAAA,UACF;AAAA,UACAzD,+BAAC0D,QAAAA,WAAQ,kBAAoC;AAAA,QAAA,GAC/C;AAAA,MAAA;AAAA,IAEJ;AAAA,IAGFpD,2BAAAA,KAACqD,8BAAc,SACZ,UAAA;AAAA,MAAC,CAAA,0CAAYC,aAAc,eAAA,EAAA;AAAA,MAE3B,WAAY5D,2BAAAA,IAAA,OAAA,EAAI,UAAuB,0BAAA,CAAA;AAAA,MACvC,WAEGM,2BAAA,KAAAkD,qBAAA,EAAA,UAAA;AAAA,QAAAxD,2BAAA;AAAA,UAAC6D,aAAA;AAAA,UAAA;AAAA,YACC,aAAY;AAAA,YACZ;AAAA,YACA,oBAAoB,kBAAkB;AAAA,YACtC,iBAAiB,CAAC,OAAO,kBAAkB,YAAY,CAAC,EAAE,CAAC;AAAA,YAC3D;AAAA,YACA,MAAM;AAAA,YACN,iBAAe;AAAA,YACf,gBAAgB;AAAA,YAEhB,UAAA7D,2BAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC;AAAA,gBACA;AAAA,gBACA,MAAM;AAAA,gBACN,iBAAe;AAAA,gBACf,gBAAgB;AAAA,cAAA;AAAA,YAClB;AAAA,UAAA;AAAA,QACF;AAAA,QAEC,cAAeA,2BAAA,IAAA,kBAAA,EAAiB,WAAwB,CAAA;AAAA,MAAA,GAC3D;AAAA,IAAA,GAEJ;AAAA,IACC,iBACCA,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,YAAY;AACrB,gBAAM,kBAAkB;AAClB,gBAAA,YAAY,eAAe,0BAA0B;AAAA,QAC7D;AAAA,QACA,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,EAEJ,EAAA,CAAA;AAEJ;AAGA,MAAM,sBAAsB,MAAM;AAChC,QAAM,gBAAgByB,QAAA;AAAA,IACpB;AAAA,IACA;AAAA;AAAA,OAEG,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,qBAA2E,CAAA,GACtF;AAAA;AAAA,EAAA;AAIP,MAAI,CAAC,eAAe;AACX,WAAA;AAAA,EACT;AAEA,wCAAQ,eAAc,CAAA,CAAA;AACxB;AC9LA,MAAM,oBAAoB,MAAM;AACxB,QAAA,cAAcmB,uBAAYC,iBAAAA,sBAAsB;AAGpD,SAAA7C,2BAAA,IAAC8D,qCAAqB,aAAa,YAAY,SAAS,MAAM,MAC5D,UAAC9D,2BAAA,IAAA+D,qBAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;;;;;;;"}
|
|
@@ -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 { T as TransferTokenCreateView } from "./index-
|
|
4
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-1e10546a.mjs";
|
|
5
|
+
import { T as TransferTokenCreateView } from "./index-372f70ce.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-83133812.mjs";
|
|
11
11
|
import "react-dom/client";
|
|
12
12
|
import "@strapi/design-system";
|
|
13
13
|
import "invariant";
|
|
@@ -48,4 +48,4 @@ const ProtectedTransferTokenCreateView = () => {
|
|
|
48
48
|
export {
|
|
49
49
|
ProtectedTransferTokenCreateView as default
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=index-
|
|
51
|
+
//# sourceMappingURL=index-5de6defe.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-5de6defe.mjs","sources":["../../admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedCreateView/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 ProtectedTransferTokenCreateView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['transfer-tokens'].create}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedTransferTokenCreateView;\n"],"names":["EditView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,mCAAmC,MAAM;AACvC,QAAA,cAAc,YAAY,sBAAsB;AAGpD,SAAA,oBAAC,sBAAqB,EAAA,aAAa,YAAY,SAAS,iBAAiB,EAAE,QACzE,UAAC,oBAAAA,yBAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;"}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const PropTypes = require("prop-types");
|
|
5
5
|
const reactIntl = require("react-intl");
|
|
6
|
-
const index$1 = require("./index-
|
|
7
|
-
const index = require("./index-
|
|
6
|
+
const index$1 = require("./index-2609696f.js");
|
|
7
|
+
const index = require("./index-9d9b9769.js");
|
|
8
8
|
require("@strapi/helper-plugin");
|
|
9
9
|
require("react-dom/client");
|
|
10
10
|
require("@strapi/design-system");
|
|
@@ -59,4 +59,4 @@ MagicLinkEE.propTypes = {
|
|
|
59
59
|
registrationToken: PropTypes__default.default.string
|
|
60
60
|
};
|
|
61
61
|
exports.MagicLinkEE = MagicLinkEE;
|
|
62
|
-
//# sourceMappingURL=index-
|
|
62
|
+
//# sourceMappingURL=index-65d8637e.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-65d8637e.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/index.js"],"sourcesContent":["import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../../../../../admin/src/core/utils/basename';\nimport MagicLinkWrapper from '../../../../../../../../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper';\n\n// FIXME replace with parts compo when ready\nexport const MagicLinkEE = ({ registrationToken }) => {\n const { formatMessage } = useIntl();\n\n if (registrationToken) {\n return (\n <MagicLinkWrapper\n target={`${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`}\n >\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n }\n\n return (\n <MagicLinkWrapper target={`${window.location.origin}${getBasename()}auth/login`}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect.sso',\n defaultMessage:\n 'Send this link to the user, the first login can be made via a SSO provider.',\n })}\n </MagicLinkWrapper>\n );\n};\n\nMagicLinkEE.defaultProps = {\n registrationToken: '',\n};\n\nMagicLinkEE.propTypes = {\n registrationToken: PropTypes.string,\n};\n"],"names":["useIntl","jsx","MagicLinkWrapper","getBasename","PropTypes"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,MAAM,cAAc,CAAC,EAAE,wBAAwB;AAC9C,QAAA,EAAE,kBAAkBA,UAAAA;AAE1B,MAAI,mBAAmB;AAEnB,WAAAC,2BAAA;AAAA,MAACC,MAAA;AAAA,MAAA;AAAA,QACC,QAAQ,GACN,OAAO,SAAS,MAClB,GAAGC,oBAAa,CAAA,oCAAoC,iBAAiB;AAAA,QAEpE,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AAGE,SAAAF,2BAAA,IAACC,MAAiB,kBAAA,EAAA,QAAQ,GAAG,OAAO,SAAS,MAAM,GAAGC,QAAAA,YAAa,CAAA,cAChE,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBACE;AAAA,EACH,CAAA,EACH,CAAA;AAEJ;AAEA,YAAY,eAAe;AAAA,EACzB,mBAAmB;AACrB;AAEA,YAAY,YAAY;AAAA,EACtB,mBAAmBC,mBAAU,QAAA;AAC/B;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useFocusWhenNavigate, useNotification, useRBAC, useTracking, useGuidedTour, useFetchClient, useAPIErrorHandler, SettingsPageTitle, LinkButton, NoPermissions, NoContent, CheckPagePermissions } from "@strapi/helper-plugin";
|
|
3
3
|
import { useSelector } from "react-redux";
|
|
4
|
-
import { s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
4
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-1e10546a.mjs";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { Main, HeaderLayout, ContentLayout } from "@strapi/design-system";
|
|
7
7
|
import { Plus } from "@strapi/icons";
|
|
@@ -13,7 +13,7 @@ import { A as API_TOKEN_TYPE } from "./constants-d3dd8ed6.mjs";
|
|
|
13
13
|
import { T as Table } from "./index-eb67694f.mjs";
|
|
14
14
|
import "semver/functions/lt";
|
|
15
15
|
import "semver/functions/valid";
|
|
16
|
-
import "./index-
|
|
16
|
+
import "./index-83133812.mjs";
|
|
17
17
|
import "react-dom/client";
|
|
18
18
|
import "invariant";
|
|
19
19
|
import "lodash/isFunction";
|
|
@@ -229,4 +229,4 @@ const ProtectedApiTokenListView = () => {
|
|
|
229
229
|
export {
|
|
230
230
|
ProtectedApiTokenListView as default
|
|
231
231
|
};
|
|
232
|
-
//# sourceMappingURL=index-
|
|
232
|
+
//# sourceMappingURL=index-6b269800.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-f097ccea.mjs","sources":["../../admin/src/pages/SettingsPage/pages/ApiTokens/ListView/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedListView/index.js"],"sourcesContent":["const tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport default tableHeaders;\n","import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LinkButton,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { API_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport Table from '../../../components/Tokens/Table';\n\nimport tableHeaders from './utils/tableHeaders';\n\nconst ApiTokenListView = () => {\n useFocusWhenNavigate();\n const queryClient = useQueryClient();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions.settings['api-tokens']);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { startSection } = useGuidedTour();\n const startSectionRef = React.useRef(startSection);\n const { get, del } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n if (startSectionRef.current) {\n startSectionRef.current('apiTokens');\n }\n }, []);\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const { data: apiTokens, isLoading: isLoadingTokens } = useQuery(\n ['api-tokens'],\n async () => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n\n const {\n data: { data },\n } = await get(`/admin/api-tokens`);\n\n trackUsage('didAccessTokenList', { number: data.length, tokenType: API_TOKEN_TYPE });\n\n return data;\n },\n {\n cacheTime: 0,\n enabled: canRead,\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n },\n }\n );\n\n const isLoading = isLoadingTokens;\n\n const deleteMutation = useMutation(\n async (id) => {\n await del(`/admin/api-tokens/${id}`);\n },\n {\n async onSuccess() {\n await queryClient.invalidateQueries(['api-tokens']);\n trackUsage('didDeleteToken');\n },\n onError(error) {\n toggleNotification({ type: 'warning', message: formatAPIError(error) });\n },\n }\n );\n\n const hasApiTokens = apiTokens && apiTokens.length > 0;\n const shouldDisplayDynamicTable = canRead && hasApiTokens;\n const shouldDisplayNoContent = canRead && !hasApiTokens && !canCreate;\n const shouldDisplayNoContentWithCreationButton = canRead && !hasApiTokens && canCreate;\n\n return (\n <Main aria-busy={isLoading}>\n {/* TODO: this needs to be translated */}\n <SettingsPageTitle name=\"API Tokens\" />\n <HeaderLayout\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {shouldDisplayDynamicTable && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"api-tokens\"\n rows={apiTokens}\n isLoading={isLoading}\n onConfirmDelete={(id) => deleteMutation.mutateAsync(id)}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {shouldDisplayNoContentWithCreationButton && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n }}\n action={\n <LinkButton variant=\"secondary\" startIcon={<Plus />} to=\"/settings/api-tokens/create\">\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n )}\n {shouldDisplayNoContent && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport default ApiTokenListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListView from '../ListView';\n\nconst ProtectedApiTokenListView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['api-tokens'].main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedApiTokenListView;\n"],"names":["qs","ListView"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-6b269800.mjs","sources":["../../admin/src/pages/SettingsPage/pages/ApiTokens/ListView/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js","../../admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedListView/index.js"],"sourcesContent":["const tableHeaders = [\n {\n name: 'name',\n key: 'name',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n },\n {\n name: 'description',\n key: 'description',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n },\n {\n name: 'createdAt',\n key: 'createdAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n },\n {\n name: 'lastUsedAt',\n key: 'lastUsedAt',\n metadatas: {\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n },\n];\n\nexport default tableHeaders;\n","import * as React from 'react';\n\nimport { ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n LinkButton,\n NoContent,\n NoPermissions,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useGuidedTour,\n useNotification,\n useRBAC,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Plus } from '@strapi/icons';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport { API_TOKEN_TYPE } from '../../../components/Tokens/constants';\nimport Table from '../../../components/Tokens/Table';\n\nimport tableHeaders from './utils/tableHeaders';\n\nconst ApiTokenListView = () => {\n useFocusWhenNavigate();\n const queryClient = useQueryClient();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions.settings['api-tokens']);\n const { push } = useHistory();\n const { trackUsage } = useTracking();\n const { startSection } = useGuidedTour();\n const startSectionRef = React.useRef(startSection);\n const { get, del } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n if (startSectionRef.current) {\n startSectionRef.current('apiTokens');\n }\n }, []);\n\n React.useEffect(() => {\n push({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [push]);\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const { data: apiTokens, isLoading: isLoadingTokens } = useQuery(\n ['api-tokens'],\n async () => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n\n const {\n data: { data },\n } = await get(`/admin/api-tokens`);\n\n trackUsage('didAccessTokenList', { number: data.length, tokenType: API_TOKEN_TYPE });\n\n return data;\n },\n {\n cacheTime: 0,\n enabled: canRead,\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n },\n }\n );\n\n const isLoading = isLoadingTokens;\n\n const deleteMutation = useMutation(\n async (id) => {\n await del(`/admin/api-tokens/${id}`);\n },\n {\n async onSuccess() {\n await queryClient.invalidateQueries(['api-tokens']);\n trackUsage('didDeleteToken');\n },\n onError(error) {\n toggleNotification({ type: 'warning', message: formatAPIError(error) });\n },\n }\n );\n\n const hasApiTokens = apiTokens && apiTokens.length > 0;\n const shouldDisplayDynamicTable = canRead && hasApiTokens;\n const shouldDisplayNoContent = canRead && !hasApiTokens && !canCreate;\n const shouldDisplayNoContentWithCreationButton = canRead && !hasApiTokens && canCreate;\n\n return (\n <Main aria-busy={isLoading}>\n {/* TODO: this needs to be translated */}\n <SettingsPageTitle name=\"API Tokens\" />\n <HeaderLayout\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n <ContentLayout>\n {!canRead && <NoPermissions />}\n {shouldDisplayDynamicTable && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n contentType=\"api-tokens\"\n rows={apiTokens}\n isLoading={isLoading}\n onConfirmDelete={(id) => deleteMutation.mutateAsync(id)}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {shouldDisplayNoContentWithCreationButton && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n }}\n action={\n <LinkButton variant=\"secondary\" startIcon={<Plus />} to=\"/settings/api-tokens/create\">\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n )}\n {shouldDisplayNoContent && (\n <NoContent\n content={{\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n }}\n />\n )}\n </ContentLayout>\n </Main>\n );\n};\n\nexport default ApiTokenListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListView from '../ListView';\n\nconst ProtectedApiTokenListView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['api-tokens'].main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedApiTokenListView;\n"],"names":["qs","ListView"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Link, pxToRem, useFetchClient, useAPIErrorHandler, useNotification, useTracking, useRBAC, LinkButton, onRowClick, ConfirmDialog, CheckPagePermissions } from "@strapi/helper-plugin";
|
|
3
3
|
import { useSelector } from "react-redux";
|
|
4
|
-
import { s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
4
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-1e10546a.mjs";
|
|
5
5
|
import React__default, { createElement } from "react";
|
|
6
6
|
import { Flex, Loader, Table, TFooter, Thead, Tr, Th, Typography, VisuallyHidden, Tbody, Td, IconButton } from "@strapi/design-system";
|
|
7
7
|
import { Plus, Pencil, Trash } from "@strapi/icons";
|
|
@@ -17,7 +17,7 @@ import { C as CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from "./constants-8092eeb5.m
|
|
|
17
17
|
import { u as useReviewWorkflows } from "./useReviewWorkflows-9e6b8986.mjs";
|
|
18
18
|
import "semver/functions/lt";
|
|
19
19
|
import "semver/functions/valid";
|
|
20
|
-
import "./index-
|
|
20
|
+
import "./index-83133812.mjs";
|
|
21
21
|
import "react-dom/client";
|
|
22
22
|
import "invariant";
|
|
23
23
|
import "lodash/isFunction";
|
|
@@ -305,4 +305,4 @@ function index() {
|
|
|
305
305
|
export {
|
|
306
306
|
index as default
|
|
307
307
|
};
|
|
308
|
-
//# sourceMappingURL=index-
|
|
308
|
+
//# sourceMappingURL=index-6c56f4c2.mjs.map
|