@strapi/admin 5.19.0 → 5.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/components/Filters.js +10 -1
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Filters.mjs +10 -1
- package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Context.js +18 -43
- package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Context.mjs +17 -42
- package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Overview.js +10 -6
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Overview.mjs +11 -7
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Step.js +6 -6
- package/dist/admin/admin/src/components/GuidedTour/Step.js.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Step.mjs +7 -7
- package/dist/admin/admin/src/components/GuidedTour/Step.mjs.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Tours.js +10 -16
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Tours.mjs +11 -17
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -0
- package/dist/admin/admin/src/components/LeftMenu.js +1 -1
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs +1 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/admin/src/components/Providers.js +9 -10
- package/dist/admin/admin/src/components/Providers.js.map +1 -1
- package/dist/admin/admin/src/components/Providers.mjs +9 -10
- package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +1 -1
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js +34 -16
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs +34 -16
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +1 -18
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +1 -18
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +0 -11
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs +0 -11
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +2 -3
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +2 -3
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +2 -2
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs +2 -2
- package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +6 -6
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +6 -6
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +1 -7
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs +2 -8
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +1 -8
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +1 -8
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +0 -2
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +0 -2
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +7 -3
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +7 -3
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/tests/utils.js +25 -28
- package/dist/admin/admin/tests/utils.js.map +1 -1
- package/dist/admin/admin/tests/utils.mjs +25 -28
- package/dist/admin/admin/tests/utils.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +3 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +3 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
- package/dist/admin/index.js +2 -4
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -2
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/Filters.d.ts +3 -1
- package/dist/admin/src/components/{UnstableGuidedTour → GuidedTour}/Context.d.ts +3 -3
- package/dist/admin/src/components/GuidedTour/Overview.d.ts +1 -0
- package/dist/admin/src/components/{UnstableGuidedTour → GuidedTour}/Step.d.ts +1 -1
- package/dist/admin/src/core/apis/Widgets.d.ts +8 -5
- package/dist/admin/src/features/Tracking.d.ts +1 -1
- package/dist/admin/src/index.d.ts +2 -3
- package/dist/admin/src/pages/Settings/components/Tokens/TokenBox.d.ts +1 -1
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +9 -8
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +9 -8
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
- package/dist/server/server/src/domain/user.js +3 -1
- package/dist/server/server/src/domain/user.js.map +1 -1
- package/dist/server/server/src/domain/user.mjs +3 -1
- package/dist/server/server/src/domain/user.mjs.map +1 -1
- package/dist/server/src/domain/user.d.ts.map +1 -1
- package/package.json +8 -9
- package/dist/admin/admin/src/components/GuidedTour/Homepage.js +0 -132
- package/dist/admin/admin/src/components/GuidedTour/Homepage.js.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Homepage.mjs +0 -130
- package/dist/admin/admin/src/components/GuidedTour/Homepage.mjs.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Modal.js +0 -278
- package/dist/admin/admin/src/components/GuidedTour/Modal.js.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Modal.mjs +0 -276
- package/dist/admin/admin/src/components/GuidedTour/Modal.mjs.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Ornaments.js +0 -54
- package/dist/admin/admin/src/components/GuidedTour/Ornaments.js.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Ornaments.mjs +0 -51
- package/dist/admin/admin/src/components/GuidedTour/Ornaments.mjs.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Provider.js +0 -206
- package/dist/admin/admin/src/components/GuidedTour/Provider.js.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Provider.mjs +0 -184
- package/dist/admin/admin/src/components/GuidedTour/Provider.mjs.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/constants.js +0 -167
- package/dist/admin/admin/src/components/GuidedTour/constants.js.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/constants.mjs +0 -164
- package/dist/admin/admin/src/components/GuidedTour/constants.mjs.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Context.js.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Context.mjs.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Overview.js.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Overview.mjs.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Step.js.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Step.mjs.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.js.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Home/components/GuidedTour.js +0 -19
- package/dist/admin/admin/src/pages/Home/components/GuidedTour.js.map +0 -1
- package/dist/admin/admin/src/pages/Home/components/GuidedTour.mjs +0 -17
- package/dist/admin/admin/src/pages/Home/components/GuidedTour.mjs.map +0 -1
- package/dist/admin/src/components/GuidedTour/Homepage.d.ts +0 -2
- package/dist/admin/src/components/GuidedTour/Modal.d.ts +0 -2
- package/dist/admin/src/components/GuidedTour/Ornaments.d.ts +0 -13
- package/dist/admin/src/components/GuidedTour/Provider.d.ts +0 -39
- package/dist/admin/src/components/GuidedTour/constants.d.ts +0 -165
- package/dist/admin/src/components/UnstableGuidedTour/Overview.d.ts +0 -1
- package/dist/admin/src/pages/Home/components/GuidedTour.d.ts +0 -1
- /package/dist/admin/src/components/{UnstableGuidedTour → GuidedTour}/Tours.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\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 [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\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 <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\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\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","err","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","user","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\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 [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\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 <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\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\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","err","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","zIndex","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","user","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
|
|
@@ -832,6 +832,8 @@ var en = {
|
|
|
832
832
|
"tours.contentTypeBuilder.SingleTypes.content": "A content structure that can manage only one entry, such as a homepage or a contact page.",
|
|
833
833
|
"tours.contentTypeBuilder.Components.title": "Components",
|
|
834
834
|
"tours.contentTypeBuilder.Components.content": "A content structure that can be used in multiple collection types or single types.",
|
|
835
|
+
"tours.contentTypeBuilder.Finish.title": "It's time to create content!",
|
|
836
|
+
"tours.contentTypeBuilder.Finish.content": "Now that you created content types, you'll be able to create content in the content manager.",
|
|
835
837
|
"tours.contentManager.Introduction.title": "Content manager",
|
|
836
838
|
"tours.contentManager.Introduction.content": "Create and manage content from your collection types and single types.",
|
|
837
839
|
"tours.apiTokens.Introduction.title": "API tokens",
|
|
@@ -839,13 +841,15 @@ var en = {
|
|
|
839
841
|
"tours.apiTokens.CreateAnAPIToken.title": "Create an API token",
|
|
840
842
|
"tours.apiTokens.CreateAnAPIToken.content": "Create a new API token. Choose a name, duration and type.",
|
|
841
843
|
"tours.apiTokens.CopyAPIToken.title": "Copy your new API token",
|
|
842
|
-
"tours.apiTokens.CopyAPIToken.content": "Make sure to do it now, you won
|
|
844
|
+
"tours.apiTokens.CopyAPIToken.content": "Make sure to do it now, you won't be able to see it again. You'll need to generate a new one if you lose it.",
|
|
845
|
+
"tours.apiTokens.FinalStep.title": "It's time to deploy your application!",
|
|
846
|
+
"tours.apiTokens.FinalStep.content": "Your application is ready to be deployed and its content to be shared with the world!",
|
|
843
847
|
"tours.contentManager.Fields.title": "Fields",
|
|
844
848
|
"tours.contentManager.Fields.content": "Add content to the fields created in the Content-Type Builder.",
|
|
845
849
|
"tours.contentManager.Publish.title": "Publish",
|
|
846
850
|
"tours.contentManager.Publish.content": "Publish entries to make their content available through the content API.",
|
|
847
|
-
"tours.contentManager.FinalStep.title": "It
|
|
848
|
-
"tours.contentManager.FinalStep.content": "Now that you
|
|
851
|
+
"tours.contentManager.FinalStep.title": "It's time to create API Tokens!",
|
|
852
|
+
"tours.contentManager.FinalStep.content": "Now that you've created and published content, time to create API tokens and set up permissions.",
|
|
849
853
|
"tours.stepCount": "Step {currentStep} of {tourLength}",
|
|
850
854
|
"tours.skip": "Skip",
|
|
851
855
|
"tours.next": "Next",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -828,6 +828,8 @@ var en = {
|
|
|
828
828
|
"tours.contentTypeBuilder.SingleTypes.content": "A content structure that can manage only one entry, such as a homepage or a contact page.",
|
|
829
829
|
"tours.contentTypeBuilder.Components.title": "Components",
|
|
830
830
|
"tours.contentTypeBuilder.Components.content": "A content structure that can be used in multiple collection types or single types.",
|
|
831
|
+
"tours.contentTypeBuilder.Finish.title": "It's time to create content!",
|
|
832
|
+
"tours.contentTypeBuilder.Finish.content": "Now that you created content types, you'll be able to create content in the content manager.",
|
|
831
833
|
"tours.contentManager.Introduction.title": "Content manager",
|
|
832
834
|
"tours.contentManager.Introduction.content": "Create and manage content from your collection types and single types.",
|
|
833
835
|
"tours.apiTokens.Introduction.title": "API tokens",
|
|
@@ -835,13 +837,15 @@ var en = {
|
|
|
835
837
|
"tours.apiTokens.CreateAnAPIToken.title": "Create an API token",
|
|
836
838
|
"tours.apiTokens.CreateAnAPIToken.content": "Create a new API token. Choose a name, duration and type.",
|
|
837
839
|
"tours.apiTokens.CopyAPIToken.title": "Copy your new API token",
|
|
838
|
-
"tours.apiTokens.CopyAPIToken.content": "Make sure to do it now, you won
|
|
840
|
+
"tours.apiTokens.CopyAPIToken.content": "Make sure to do it now, you won't be able to see it again. You'll need to generate a new one if you lose it.",
|
|
841
|
+
"tours.apiTokens.FinalStep.title": "It's time to deploy your application!",
|
|
842
|
+
"tours.apiTokens.FinalStep.content": "Your application is ready to be deployed and its content to be shared with the world!",
|
|
839
843
|
"tours.contentManager.Fields.title": "Fields",
|
|
840
844
|
"tours.contentManager.Fields.content": "Add content to the fields created in the Content-Type Builder.",
|
|
841
845
|
"tours.contentManager.Publish.title": "Publish",
|
|
842
846
|
"tours.contentManager.Publish.content": "Publish entries to make their content available through the content API.",
|
|
843
|
-
"tours.contentManager.FinalStep.title": "It
|
|
844
|
-
"tours.contentManager.FinalStep.content": "Now that you
|
|
847
|
+
"tours.contentManager.FinalStep.title": "It's time to create API Tokens!",
|
|
848
|
+
"tours.contentManager.FinalStep.content": "Now that you've created and published content, time to create API tokens and set up permissions.",
|
|
845
849
|
"tours.stepCount": "Step {currentStep} of {tourLength}",
|
|
846
850
|
"tours.skip": "Skip",
|
|
847
851
|
"tours.next": "Next",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -12,10 +12,9 @@ var reactDndHtml5Backend = require('react-dnd-html5-backend');
|
|
|
12
12
|
var reactQuery = require('react-query');
|
|
13
13
|
var reactRedux = require('react-redux');
|
|
14
14
|
var reactRouterDom = require('react-router-dom');
|
|
15
|
-
var
|
|
15
|
+
var Context = require('../src/components/GuidedTour/Context.js');
|
|
16
16
|
var LanguageProvider = require('../src/components/LanguageProvider.js');
|
|
17
17
|
var Theme = require('../src/components/Theme.js');
|
|
18
|
-
var Context = require('../src/components/UnstableGuidedTour/Context.js');
|
|
19
18
|
var rbac = require('../src/core/apis/rbac.js');
|
|
20
19
|
var AppInfo = require('../src/features/AppInfo.js');
|
|
21
20
|
var Auth = require('../src/features/Auth.js');
|
|
@@ -82,7 +81,7 @@ const Providers = ({ children, initialEntries, storeConfig, permissions = [] })=
|
|
|
82
81
|
components: {},
|
|
83
82
|
rbac: new rbac.RBAC(),
|
|
84
83
|
widgets: {
|
|
85
|
-
widgets:
|
|
84
|
+
widgets: [],
|
|
86
85
|
getAll: jest.fn(),
|
|
87
86
|
register: jest.fn()
|
|
88
87
|
},
|
|
@@ -136,32 +135,30 @@ const Providers = ({ children, initialEntries, storeConfig, permissions = [] })=
|
|
|
136
135
|
light: designSystem.lightTheme
|
|
137
136
|
},
|
|
138
137
|
children: /*#__PURE__*/ jsxRuntime.jsx(Notifications.NotificationsProvider, {
|
|
139
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
default: 'default'
|
|
147
|
-
},
|
|
148
|
-
menu: {
|
|
149
|
-
default: 'default'
|
|
150
|
-
}
|
|
138
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Context.GuidedTourContext, {
|
|
139
|
+
enabled: false,
|
|
140
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Configuration._internalConfigurationContextProvider, {
|
|
141
|
+
showReleaseNotification: false,
|
|
142
|
+
logos: {
|
|
143
|
+
auth: {
|
|
144
|
+
default: 'default'
|
|
151
145
|
},
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
146
|
+
menu: {
|
|
147
|
+
default: 'default'
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
updateProjectSettings: jest.fn(),
|
|
151
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(AppInfo.AppInfoProvider, {
|
|
152
|
+
autoReload: true,
|
|
153
|
+
useYarn: true,
|
|
154
|
+
dependencies: {
|
|
155
|
+
'@strapi/plugin-documentation': '4.2.0',
|
|
156
|
+
'@strapi/provider-upload-cloudinary': '4.2.0'
|
|
157
|
+
},
|
|
158
|
+
strapiVersion: "4.1.0",
|
|
159
|
+
communityEdition: true,
|
|
160
|
+
shouldUpdateStrapi: false,
|
|
161
|
+
children: children
|
|
165
162
|
})
|
|
166
163
|
})
|
|
167
164
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../admin/tests/utils.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport * as React from 'react';\n\nimport { ConfigureStoreOptions, configureStore } from '@reduxjs/toolkit';\nimport { fixtures } from '@strapi/admin-test-utils';\nimport { darkTheme, lightTheme } from '@strapi/design-system';\nimport {\n fireEvent,\n renderHook as renderHookRTL,\n render as renderRTL,\n waitFor,\n RenderOptions as RTLRenderOptions,\n RenderResult,\n act,\n screen,\n RenderHookOptions,\n RenderHookResult,\n Queries,\n} from '@testing-library/react';\nimport { userEvent } from '@testing-library/user-event';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { QueryClient, QueryClientProvider, setLogger } from 'react-query';\nimport { Provider } from 'react-redux';\nimport { MemoryRouterProps, RouterProvider, createMemoryRouter } from 'react-router-dom';\n\nimport { GuidedTourProvider } from '../src/components/GuidedTour/Provider';\nimport { LanguageProvider } from '../src/components/LanguageProvider';\nimport { Theme } from '../src/components/Theme';\nimport { UnstableGuidedTourContext } from '../src/components/UnstableGuidedTour/Context';\nimport { RBAC } from '../src/core/apis/rbac';\nimport { AppInfoProvider } from '../src/features/AppInfo';\nimport { AuthProvider, type Permission } from '../src/features/Auth';\nimport { _internalConfigurationContextProvider as ConfigurationContextProvider } from '../src/features/Configuration';\nimport { NotificationsProvider } from '../src/features/Notifications';\nimport { StrapiAppProvider } from '../src/features/StrapiApp';\nimport { reducer as appReducer } from '../src/reducer';\nimport { adminApi } from '../src/services/api';\n\nimport { server } from './server';\nimport { initialState } from './store';\n\nsetLogger({\n log: () => {},\n warn: () => {},\n error: () => {},\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n initialEntries?: MemoryRouterProps['initialEntries'];\n storeConfig?: Partial<ConfigureStoreOptions>;\n permissions?: Permission[] | ((defaultPermissions: Permission[]) => Permission[] | undefined);\n}\n\nconst defaultTestStoreConfig = () => ({\n preloadedState: initialState(),\n reducer: {\n [adminApi.reducerPath]: adminApi.reducer,\n admin_app: appReducer,\n },\n // @ts-expect-error – this fails.\n middleware: (getDefaultMiddleware) => [\n ...getDefaultMiddleware({\n // Disable timing checks for test env\n immutableCheck: false,\n serializableCheck: false,\n }),\n adminApi.middleware,\n ],\n});\n\nconst DEFAULT_PERMISSIONS = [\n ...fixtures.permissions.allPermissions,\n {\n id: 314,\n action: 'admin::users.read',\n subject: null,\n properties: {},\n conditions: [],\n actionParameters: {},\n },\n];\n\nconst Providers = ({ children, initialEntries, storeConfig, permissions = [] }: ProvidersProps) => {\n const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: false,\n },\n },\n });\n\n const store = configureStore({\n ...defaultTestStoreConfig(),\n ...storeConfig,\n });\n\n const allPermissions =\n typeof permissions === 'function'\n ? permissions(DEFAULT_PERMISSIONS)\n : [...DEFAULT_PERMISSIONS, ...permissions];\n\n const router = createMemoryRouter(\n [\n {\n path: '/*',\n element: (\n <StrapiAppProvider\n components={{}}\n rbac={new RBAC()}\n widgets={{\n widgets: {},\n getAll: jest.fn(),\n register: jest.fn(),\n }}\n customFields={{\n customFields: {},\n get: jest.fn().mockReturnValue({\n name: 'color',\n pluginId: 'mycustomfields',\n type: 'text',\n icon: jest.fn(),\n intlLabel: {\n id: 'mycustomfields.color.label',\n defaultMessage: 'Color',\n },\n intlDescription: {\n id: 'mycustomfields.color.description',\n defaultMessage: 'Select any color',\n },\n components: {\n Input: jest.fn().mockResolvedValue({ default: jest.fn() }),\n },\n }),\n getAll: jest.fn(),\n register: jest.fn(),\n }}\n fields={{}}\n menu={[]}\n getAdminInjectedComponents={jest.fn()}\n getPlugin={jest.fn()}\n plugins={{}}\n runHookParallel={jest.fn()}\n runHookWaterfall={jest.fn().mockImplementation((_name, initialValue) => initialValue)}\n runHookSeries={jest.fn()}\n settings={{}}\n >\n <Provider store={store}>\n <AuthProvider _defaultPermissions={allPermissions} _disableRenewToken={true}>\n <QueryClientProvider client={queryClient}>\n <DndProvider backend={HTML5Backend}>\n <LanguageProvider messages={{}}>\n <Theme\n themes={{\n dark: darkTheme,\n light: lightTheme,\n }}\n >\n <NotificationsProvider>\n <GuidedTourProvider>\n <UnstableGuidedTourContext enabled={false}>\n <ConfigurationContextProvider\n showReleaseNotification={false}\n logos={{\n auth: { default: 'default' },\n menu: { default: 'default' },\n }}\n updateProjectSettings={jest.fn()}\n >\n <AppInfoProvider\n autoReload\n useYarn\n dependencies={{\n '@strapi/plugin-documentation': '4.2.0',\n '@strapi/provider-upload-cloudinary': '4.2.0',\n }}\n strapiVersion=\"4.1.0\"\n communityEdition\n shouldUpdateStrapi={false}\n >\n {children}\n </AppInfoProvider>\n </ConfigurationContextProvider>\n </UnstableGuidedTourContext>\n </GuidedTourProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </DndProvider>\n </QueryClientProvider>\n </AuthProvider>\n </Provider>\n </StrapiAppProvider>\n ),\n },\n ],\n {\n initialEntries,\n }\n );\n\n // en is the default locale of the admin app.\n return <RouterProvider router={router} />;\n};\n\n// eslint-disable-next-line react/jsx-no-useless-fragment\nconst fallbackWrapper = ({ children }: { children: React.ReactNode }) => <>{children}</>;\n\nexport interface RenderOptions {\n renderOptions?: RTLRenderOptions;\n userEventOptions?: Parameters<typeof userEvent.setup>[0];\n initialEntries?: MemoryRouterProps['initialEntries'];\n providerOptions?: Pick<ProvidersProps, 'storeConfig' | 'permissions'>;\n}\n\n/**\n * @alpha\n * @description A custom render function that wraps the component with the necessary providers,\n * for use of testing components within the Strapi Admin.\n */\nconst render = (\n ui: React.ReactElement,\n { renderOptions, userEventOptions, initialEntries, providerOptions }: RenderOptions = {}\n): RenderResult & { user: ReturnType<typeof userEvent.setup> } => {\n const { wrapper: Wrapper = fallbackWrapper, ...restOptions } = renderOptions ?? {};\n\n return {\n ...renderRTL(ui, {\n wrapper: ({ children }) => (\n <Providers initialEntries={initialEntries} {...providerOptions}>\n <Wrapper>{children}</Wrapper>\n </Providers>\n ),\n ...restOptions,\n }),\n user: userEvent.setup({\n skipHover: true,\n ...userEventOptions,\n }),\n };\n};\n\n/**\n * @alpha\n * @description A custom render-hook function that wraps the component with the necessary providers,\n * for use of testing hooks within the Strapi Admin.\n */\nconst renderHook = <\n Result,\n Props,\n Q extends Queries,\n Container extends Element | DocumentFragment = HTMLElement,\n BaseElement extends Element | DocumentFragment = Container,\n>(\n hook: (initialProps: Props) => Result,\n options?: RenderHookOptions<Props, Q, Container, BaseElement> &\n Pick<RenderOptions, 'initialEntries' | 'providerOptions'>\n): RenderHookResult<Result, Props> => {\n const {\n wrapper: Wrapper = fallbackWrapper,\n initialEntries,\n providerOptions,\n ...restOptions\n } = options ?? {};\n\n return renderHookRTL(hook, {\n wrapper: ({ children }) => (\n <Providers initialEntries={initialEntries} {...providerOptions}>\n <Wrapper>{children}</Wrapper>\n </Providers>\n ),\n ...restOptions,\n });\n};\n\nexport { render, renderHook, waitFor, server, act, screen, fireEvent, defaultTestStoreConfig };\n"],"names":["setLogger","log","warn","error","defaultTestStoreConfig","preloadedState","initialState","reducer","adminApi","reducerPath","admin_app","appReducer","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","DEFAULT_PERMISSIONS","fixtures","permissions","allPermissions","id","action","subject","properties","conditions","actionParameters","Providers","children","initialEntries","storeConfig","queryClient","QueryClient","defaultOptions","queries","retry","store","configureStore","router","createMemoryRouter","path","element","_jsx","StrapiAppProvider","components","rbac","RBAC","widgets","getAll","jest","fn","register","customFields","get","mockReturnValue","name","pluginId","type","icon","intlLabel","defaultMessage","intlDescription","Input","mockResolvedValue","default","fields","menu","getAdminInjectedComponents","getPlugin","plugins","runHookParallel","runHookWaterfall","mockImplementation","_name","initialValue","runHookSeries","settings","Provider","AuthProvider","_defaultPermissions","_disableRenewToken","QueryClientProvider","client","DndProvider","backend","HTML5Backend","LanguageProvider","messages","Theme","themes","dark","darkTheme","light","lightTheme","NotificationsProvider","GuidedTourProvider","UnstableGuidedTourContext","enabled","ConfigurationContextProvider","showReleaseNotification","logos","auth","updateProjectSettings","AppInfoProvider","autoReload","useYarn","dependencies","strapiVersion","communityEdition","shouldUpdateStrapi","RouterProvider","fallbackWrapper","_Fragment","render","ui","renderOptions","userEventOptions","providerOptions","wrapper","Wrapper","restOptions","renderRTL","user","userEvent","setup","skipHover","renderHook","hook","options","renderHookRTL"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../admin/tests/utils.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport * as React from 'react';\n\nimport { ConfigureStoreOptions, configureStore } from '@reduxjs/toolkit';\nimport { fixtures } from '@strapi/admin-test-utils';\nimport { darkTheme, lightTheme } from '@strapi/design-system';\nimport {\n fireEvent,\n renderHook as renderHookRTL,\n render as renderRTL,\n waitFor,\n RenderOptions as RTLRenderOptions,\n RenderResult,\n act,\n screen,\n RenderHookOptions,\n RenderHookResult,\n Queries,\n} from '@testing-library/react';\nimport { userEvent } from '@testing-library/user-event';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { QueryClient, QueryClientProvider, setLogger } from 'react-query';\nimport { Provider } from 'react-redux';\nimport { MemoryRouterProps, RouterProvider, createMemoryRouter } from 'react-router-dom';\n\nimport { GuidedTourContext } from '../src/components/GuidedTour/Context';\nimport { LanguageProvider } from '../src/components/LanguageProvider';\nimport { Theme } from '../src/components/Theme';\nimport { RBAC } from '../src/core/apis/rbac';\nimport { AppInfoProvider } from '../src/features/AppInfo';\nimport { AuthProvider, type Permission } from '../src/features/Auth';\nimport { _internalConfigurationContextProvider as ConfigurationContextProvider } from '../src/features/Configuration';\nimport { NotificationsProvider } from '../src/features/Notifications';\nimport { StrapiAppProvider } from '../src/features/StrapiApp';\nimport { reducer as appReducer } from '../src/reducer';\nimport { adminApi } from '../src/services/api';\n\nimport { server } from './server';\nimport { initialState } from './store';\n\nsetLogger({\n log: () => {},\n warn: () => {},\n error: () => {},\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n initialEntries?: MemoryRouterProps['initialEntries'];\n storeConfig?: Partial<ConfigureStoreOptions>;\n permissions?: Permission[] | ((defaultPermissions: Permission[]) => Permission[] | undefined);\n}\n\nconst defaultTestStoreConfig = () => ({\n preloadedState: initialState(),\n reducer: {\n [adminApi.reducerPath]: adminApi.reducer,\n admin_app: appReducer,\n },\n // @ts-expect-error – this fails.\n middleware: (getDefaultMiddleware) => [\n ...getDefaultMiddleware({\n // Disable timing checks for test env\n immutableCheck: false,\n serializableCheck: false,\n }),\n adminApi.middleware,\n ],\n});\n\nconst DEFAULT_PERMISSIONS = [\n ...fixtures.permissions.allPermissions,\n {\n id: 314,\n action: 'admin::users.read',\n subject: null,\n properties: {},\n conditions: [],\n actionParameters: {},\n },\n];\n\nconst Providers = ({ children, initialEntries, storeConfig, permissions = [] }: ProvidersProps) => {\n const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: false,\n },\n },\n });\n\n const store = configureStore({\n ...defaultTestStoreConfig(),\n ...storeConfig,\n });\n\n const allPermissions =\n typeof permissions === 'function'\n ? permissions(DEFAULT_PERMISSIONS)\n : [...DEFAULT_PERMISSIONS, ...permissions];\n\n const router = createMemoryRouter(\n [\n {\n path: '/*',\n element: (\n <StrapiAppProvider\n components={{}}\n rbac={new RBAC()}\n widgets={\n {\n widgets: [],\n getAll: jest.fn(),\n register: jest.fn(),\n } as any\n }\n customFields={{\n customFields: {},\n get: jest.fn().mockReturnValue({\n name: 'color',\n pluginId: 'mycustomfields',\n type: 'text',\n icon: jest.fn(),\n intlLabel: {\n id: 'mycustomfields.color.label',\n defaultMessage: 'Color',\n },\n intlDescription: {\n id: 'mycustomfields.color.description',\n defaultMessage: 'Select any color',\n },\n components: {\n Input: jest.fn().mockResolvedValue({ default: jest.fn() }),\n },\n }),\n getAll: jest.fn(),\n register: jest.fn(),\n }}\n fields={{}}\n menu={[]}\n getAdminInjectedComponents={jest.fn()}\n getPlugin={jest.fn()}\n plugins={{}}\n runHookParallel={jest.fn()}\n runHookWaterfall={jest.fn().mockImplementation((_name, initialValue) => initialValue)}\n runHookSeries={jest.fn()}\n settings={{}}\n >\n <Provider store={store}>\n <AuthProvider _defaultPermissions={allPermissions} _disableRenewToken={true}>\n <QueryClientProvider client={queryClient}>\n <DndProvider backend={HTML5Backend}>\n <LanguageProvider messages={{}}>\n <Theme\n themes={{\n dark: darkTheme,\n light: lightTheme,\n }}\n >\n <NotificationsProvider>\n <GuidedTourContext enabled={false}>\n <ConfigurationContextProvider\n showReleaseNotification={false}\n logos={{\n auth: { default: 'default' },\n menu: { default: 'default' },\n }}\n updateProjectSettings={jest.fn()}\n >\n <AppInfoProvider\n autoReload\n useYarn\n dependencies={{\n '@strapi/plugin-documentation': '4.2.0',\n '@strapi/provider-upload-cloudinary': '4.2.0',\n }}\n strapiVersion=\"4.1.0\"\n communityEdition\n shouldUpdateStrapi={false}\n >\n {children}\n </AppInfoProvider>\n </ConfigurationContextProvider>\n </GuidedTourContext>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </DndProvider>\n </QueryClientProvider>\n </AuthProvider>\n </Provider>\n </StrapiAppProvider>\n ),\n },\n ],\n {\n initialEntries,\n }\n );\n\n // en is the default locale of the admin app.\n return <RouterProvider router={router} />;\n};\n\n// eslint-disable-next-line react/jsx-no-useless-fragment\nconst fallbackWrapper = ({ children }: { children: React.ReactNode }) => <>{children}</>;\n\nexport interface RenderOptions {\n renderOptions?: RTLRenderOptions;\n userEventOptions?: Parameters<typeof userEvent.setup>[0];\n initialEntries?: MemoryRouterProps['initialEntries'];\n providerOptions?: Pick<ProvidersProps, 'storeConfig' | 'permissions'>;\n}\n\n/**\n * @alpha\n * @description A custom render function that wraps the component with the necessary providers,\n * for use of testing components within the Strapi Admin.\n */\nconst render = (\n ui: React.ReactElement,\n { renderOptions, userEventOptions, initialEntries, providerOptions }: RenderOptions = {}\n): RenderResult & { user: ReturnType<typeof userEvent.setup> } => {\n const { wrapper: Wrapper = fallbackWrapper, ...restOptions } = renderOptions ?? {};\n\n return {\n ...renderRTL(ui, {\n wrapper: ({ children }) => (\n <Providers initialEntries={initialEntries} {...providerOptions}>\n <Wrapper>{children}</Wrapper>\n </Providers>\n ),\n ...restOptions,\n }),\n user: userEvent.setup({\n skipHover: true,\n ...userEventOptions,\n }),\n };\n};\n\n/**\n * @alpha\n * @description A custom render-hook function that wraps the component with the necessary providers,\n * for use of testing hooks within the Strapi Admin.\n */\nconst renderHook = <\n Result,\n Props,\n Q extends Queries,\n Container extends Element | DocumentFragment = HTMLElement,\n BaseElement extends Element | DocumentFragment = Container,\n>(\n hook: (initialProps: Props) => Result,\n options?: RenderHookOptions<Props, Q, Container, BaseElement> &\n Pick<RenderOptions, 'initialEntries' | 'providerOptions'>\n): RenderHookResult<Result, Props> => {\n const {\n wrapper: Wrapper = fallbackWrapper,\n initialEntries,\n providerOptions,\n ...restOptions\n } = options ?? {};\n\n return renderHookRTL(hook, {\n wrapper: ({ children }) => (\n <Providers initialEntries={initialEntries} {...providerOptions}>\n <Wrapper>{children}</Wrapper>\n </Providers>\n ),\n ...restOptions,\n });\n};\n\nexport { render, renderHook, waitFor, server, act, screen, fireEvent, defaultTestStoreConfig };\n"],"names":["setLogger","log","warn","error","defaultTestStoreConfig","preloadedState","initialState","reducer","adminApi","reducerPath","admin_app","appReducer","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","DEFAULT_PERMISSIONS","fixtures","permissions","allPermissions","id","action","subject","properties","conditions","actionParameters","Providers","children","initialEntries","storeConfig","queryClient","QueryClient","defaultOptions","queries","retry","store","configureStore","router","createMemoryRouter","path","element","_jsx","StrapiAppProvider","components","rbac","RBAC","widgets","getAll","jest","fn","register","customFields","get","mockReturnValue","name","pluginId","type","icon","intlLabel","defaultMessage","intlDescription","Input","mockResolvedValue","default","fields","menu","getAdminInjectedComponents","getPlugin","plugins","runHookParallel","runHookWaterfall","mockImplementation","_name","initialValue","runHookSeries","settings","Provider","AuthProvider","_defaultPermissions","_disableRenewToken","QueryClientProvider","client","DndProvider","backend","HTML5Backend","LanguageProvider","messages","Theme","themes","dark","darkTheme","light","lightTheme","NotificationsProvider","GuidedTourContext","enabled","ConfigurationContextProvider","showReleaseNotification","logos","auth","updateProjectSettings","AppInfoProvider","autoReload","useYarn","dependencies","strapiVersion","communityEdition","shouldUpdateStrapi","RouterProvider","fallbackWrapper","_Fragment","render","ui","renderOptions","userEventOptions","providerOptions","wrapper","Wrapper","restOptions","renderRTL","user","userEvent","setup","skipHover","renderHook","hook","options","renderHookRTL"],"mappings":"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"}
|
|
@@ -11,10 +11,9 @@ import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
|
11
11
|
import { setLogger, QueryClient, QueryClientProvider } from 'react-query';
|
|
12
12
|
import { Provider } from 'react-redux';
|
|
13
13
|
import { createMemoryRouter, RouterProvider } from 'react-router-dom';
|
|
14
|
-
import {
|
|
14
|
+
import { GuidedTourContext } from '../src/components/GuidedTour/Context.mjs';
|
|
15
15
|
import { LanguageProvider } from '../src/components/LanguageProvider.mjs';
|
|
16
16
|
import { Theme } from '../src/components/Theme.mjs';
|
|
17
|
-
import { UnstableGuidedTourContext } from '../src/components/UnstableGuidedTour/Context.mjs';
|
|
18
17
|
import { RBAC } from '../src/core/apis/rbac.mjs';
|
|
19
18
|
import { AppInfoProvider } from '../src/features/AppInfo.mjs';
|
|
20
19
|
import { AuthProvider } from '../src/features/Auth.mjs';
|
|
@@ -81,7 +80,7 @@ const Providers = ({ children, initialEntries, storeConfig, permissions = [] })=
|
|
|
81
80
|
components: {},
|
|
82
81
|
rbac: new RBAC(),
|
|
83
82
|
widgets: {
|
|
84
|
-
widgets:
|
|
83
|
+
widgets: [],
|
|
85
84
|
getAll: jest.fn(),
|
|
86
85
|
register: jest.fn()
|
|
87
86
|
},
|
|
@@ -135,32 +134,30 @@ const Providers = ({ children, initialEntries, storeConfig, permissions = [] })=
|
|
|
135
134
|
light: lightTheme
|
|
136
135
|
},
|
|
137
136
|
children: /*#__PURE__*/ jsx(NotificationsProvider, {
|
|
138
|
-
children: /*#__PURE__*/ jsx(
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
default: 'default'
|
|
146
|
-
},
|
|
147
|
-
menu: {
|
|
148
|
-
default: 'default'
|
|
149
|
-
}
|
|
137
|
+
children: /*#__PURE__*/ jsx(GuidedTourContext, {
|
|
138
|
+
enabled: false,
|
|
139
|
+
children: /*#__PURE__*/ jsx(ConfigurationContextProvider, {
|
|
140
|
+
showReleaseNotification: false,
|
|
141
|
+
logos: {
|
|
142
|
+
auth: {
|
|
143
|
+
default: 'default'
|
|
150
144
|
},
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
145
|
+
menu: {
|
|
146
|
+
default: 'default'
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
updateProjectSettings: jest.fn(),
|
|
150
|
+
children: /*#__PURE__*/ jsx(AppInfoProvider, {
|
|
151
|
+
autoReload: true,
|
|
152
|
+
useYarn: true,
|
|
153
|
+
dependencies: {
|
|
154
|
+
'@strapi/plugin-documentation': '4.2.0',
|
|
155
|
+
'@strapi/provider-upload-cloudinary': '4.2.0'
|
|
156
|
+
},
|
|
157
|
+
strapiVersion: "4.1.0",
|
|
158
|
+
communityEdition: true,
|
|
159
|
+
shouldUpdateStrapi: false,
|
|
160
|
+
children: children
|
|
164
161
|
})
|
|
165
162
|
})
|
|
166
163
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","sources":["../../../../admin/tests/utils.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport * as React from 'react';\n\nimport { ConfigureStoreOptions, configureStore } from '@reduxjs/toolkit';\nimport { fixtures } from '@strapi/admin-test-utils';\nimport { darkTheme, lightTheme } from '@strapi/design-system';\nimport {\n fireEvent,\n renderHook as renderHookRTL,\n render as renderRTL,\n waitFor,\n RenderOptions as RTLRenderOptions,\n RenderResult,\n act,\n screen,\n RenderHookOptions,\n RenderHookResult,\n Queries,\n} from '@testing-library/react';\nimport { userEvent } from '@testing-library/user-event';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { QueryClient, QueryClientProvider, setLogger } from 'react-query';\nimport { Provider } from 'react-redux';\nimport { MemoryRouterProps, RouterProvider, createMemoryRouter } from 'react-router-dom';\n\nimport { GuidedTourProvider } from '../src/components/GuidedTour/Provider';\nimport { LanguageProvider } from '../src/components/LanguageProvider';\nimport { Theme } from '../src/components/Theme';\nimport { UnstableGuidedTourContext } from '../src/components/UnstableGuidedTour/Context';\nimport { RBAC } from '../src/core/apis/rbac';\nimport { AppInfoProvider } from '../src/features/AppInfo';\nimport { AuthProvider, type Permission } from '../src/features/Auth';\nimport { _internalConfigurationContextProvider as ConfigurationContextProvider } from '../src/features/Configuration';\nimport { NotificationsProvider } from '../src/features/Notifications';\nimport { StrapiAppProvider } from '../src/features/StrapiApp';\nimport { reducer as appReducer } from '../src/reducer';\nimport { adminApi } from '../src/services/api';\n\nimport { server } from './server';\nimport { initialState } from './store';\n\nsetLogger({\n log: () => {},\n warn: () => {},\n error: () => {},\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n initialEntries?: MemoryRouterProps['initialEntries'];\n storeConfig?: Partial<ConfigureStoreOptions>;\n permissions?: Permission[] | ((defaultPermissions: Permission[]) => Permission[] | undefined);\n}\n\nconst defaultTestStoreConfig = () => ({\n preloadedState: initialState(),\n reducer: {\n [adminApi.reducerPath]: adminApi.reducer,\n admin_app: appReducer,\n },\n // @ts-expect-error – this fails.\n middleware: (getDefaultMiddleware) => [\n ...getDefaultMiddleware({\n // Disable timing checks for test env\n immutableCheck: false,\n serializableCheck: false,\n }),\n adminApi.middleware,\n ],\n});\n\nconst DEFAULT_PERMISSIONS = [\n ...fixtures.permissions.allPermissions,\n {\n id: 314,\n action: 'admin::users.read',\n subject: null,\n properties: {},\n conditions: [],\n actionParameters: {},\n },\n];\n\nconst Providers = ({ children, initialEntries, storeConfig, permissions = [] }: ProvidersProps) => {\n const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: false,\n },\n },\n });\n\n const store = configureStore({\n ...defaultTestStoreConfig(),\n ...storeConfig,\n });\n\n const allPermissions =\n typeof permissions === 'function'\n ? permissions(DEFAULT_PERMISSIONS)\n : [...DEFAULT_PERMISSIONS, ...permissions];\n\n const router = createMemoryRouter(\n [\n {\n path: '/*',\n element: (\n <StrapiAppProvider\n components={{}}\n rbac={new RBAC()}\n widgets={{\n widgets: {},\n getAll: jest.fn(),\n register: jest.fn(),\n }}\n customFields={{\n customFields: {},\n get: jest.fn().mockReturnValue({\n name: 'color',\n pluginId: 'mycustomfields',\n type: 'text',\n icon: jest.fn(),\n intlLabel: {\n id: 'mycustomfields.color.label',\n defaultMessage: 'Color',\n },\n intlDescription: {\n id: 'mycustomfields.color.description',\n defaultMessage: 'Select any color',\n },\n components: {\n Input: jest.fn().mockResolvedValue({ default: jest.fn() }),\n },\n }),\n getAll: jest.fn(),\n register: jest.fn(),\n }}\n fields={{}}\n menu={[]}\n getAdminInjectedComponents={jest.fn()}\n getPlugin={jest.fn()}\n plugins={{}}\n runHookParallel={jest.fn()}\n runHookWaterfall={jest.fn().mockImplementation((_name, initialValue) => initialValue)}\n runHookSeries={jest.fn()}\n settings={{}}\n >\n <Provider store={store}>\n <AuthProvider _defaultPermissions={allPermissions} _disableRenewToken={true}>\n <QueryClientProvider client={queryClient}>\n <DndProvider backend={HTML5Backend}>\n <LanguageProvider messages={{}}>\n <Theme\n themes={{\n dark: darkTheme,\n light: lightTheme,\n }}\n >\n <NotificationsProvider>\n <GuidedTourProvider>\n <UnstableGuidedTourContext enabled={false}>\n <ConfigurationContextProvider\n showReleaseNotification={false}\n logos={{\n auth: { default: 'default' },\n menu: { default: 'default' },\n }}\n updateProjectSettings={jest.fn()}\n >\n <AppInfoProvider\n autoReload\n useYarn\n dependencies={{\n '@strapi/plugin-documentation': '4.2.0',\n '@strapi/provider-upload-cloudinary': '4.2.0',\n }}\n strapiVersion=\"4.1.0\"\n communityEdition\n shouldUpdateStrapi={false}\n >\n {children}\n </AppInfoProvider>\n </ConfigurationContextProvider>\n </UnstableGuidedTourContext>\n </GuidedTourProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </DndProvider>\n </QueryClientProvider>\n </AuthProvider>\n </Provider>\n </StrapiAppProvider>\n ),\n },\n ],\n {\n initialEntries,\n }\n );\n\n // en is the default locale of the admin app.\n return <RouterProvider router={router} />;\n};\n\n// eslint-disable-next-line react/jsx-no-useless-fragment\nconst fallbackWrapper = ({ children }: { children: React.ReactNode }) => <>{children}</>;\n\nexport interface RenderOptions {\n renderOptions?: RTLRenderOptions;\n userEventOptions?: Parameters<typeof userEvent.setup>[0];\n initialEntries?: MemoryRouterProps['initialEntries'];\n providerOptions?: Pick<ProvidersProps, 'storeConfig' | 'permissions'>;\n}\n\n/**\n * @alpha\n * @description A custom render function that wraps the component with the necessary providers,\n * for use of testing components within the Strapi Admin.\n */\nconst render = (\n ui: React.ReactElement,\n { renderOptions, userEventOptions, initialEntries, providerOptions }: RenderOptions = {}\n): RenderResult & { user: ReturnType<typeof userEvent.setup> } => {\n const { wrapper: Wrapper = fallbackWrapper, ...restOptions } = renderOptions ?? {};\n\n return {\n ...renderRTL(ui, {\n wrapper: ({ children }) => (\n <Providers initialEntries={initialEntries} {...providerOptions}>\n <Wrapper>{children}</Wrapper>\n </Providers>\n ),\n ...restOptions,\n }),\n user: userEvent.setup({\n skipHover: true,\n ...userEventOptions,\n }),\n };\n};\n\n/**\n * @alpha\n * @description A custom render-hook function that wraps the component with the necessary providers,\n * for use of testing hooks within the Strapi Admin.\n */\nconst renderHook = <\n Result,\n Props,\n Q extends Queries,\n Container extends Element | DocumentFragment = HTMLElement,\n BaseElement extends Element | DocumentFragment = Container,\n>(\n hook: (initialProps: Props) => Result,\n options?: RenderHookOptions<Props, Q, Container, BaseElement> &\n Pick<RenderOptions, 'initialEntries' | 'providerOptions'>\n): RenderHookResult<Result, Props> => {\n const {\n wrapper: Wrapper = fallbackWrapper,\n initialEntries,\n providerOptions,\n ...restOptions\n } = options ?? {};\n\n return renderHookRTL(hook, {\n wrapper: ({ children }) => (\n <Providers initialEntries={initialEntries} {...providerOptions}>\n <Wrapper>{children}</Wrapper>\n </Providers>\n ),\n ...restOptions,\n });\n};\n\nexport { render, renderHook, waitFor, server, act, screen, fireEvent, defaultTestStoreConfig };\n"],"names":["setLogger","log","warn","error","defaultTestStoreConfig","preloadedState","initialState","reducer","adminApi","reducerPath","admin_app","appReducer","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","DEFAULT_PERMISSIONS","fixtures","permissions","allPermissions","id","action","subject","properties","conditions","actionParameters","Providers","children","initialEntries","storeConfig","queryClient","QueryClient","defaultOptions","queries","retry","store","configureStore","router","createMemoryRouter","path","element","_jsx","StrapiAppProvider","components","rbac","RBAC","widgets","getAll","jest","fn","register","customFields","get","mockReturnValue","name","pluginId","type","icon","intlLabel","defaultMessage","intlDescription","Input","mockResolvedValue","default","fields","menu","getAdminInjectedComponents","getPlugin","plugins","runHookParallel","runHookWaterfall","mockImplementation","_name","initialValue","runHookSeries","settings","Provider","AuthProvider","_defaultPermissions","_disableRenewToken","QueryClientProvider","client","DndProvider","backend","HTML5Backend","LanguageProvider","messages","Theme","themes","dark","darkTheme","light","lightTheme","NotificationsProvider","GuidedTourProvider","UnstableGuidedTourContext","enabled","ConfigurationContextProvider","showReleaseNotification","logos","auth","updateProjectSettings","AppInfoProvider","autoReload","useYarn","dependencies","strapiVersion","communityEdition","shouldUpdateStrapi","RouterProvider","fallbackWrapper","_Fragment","render","ui","renderOptions","userEventOptions","providerOptions","wrapper","Wrapper","restOptions","renderRTL","user","userEvent","setup","skipHover","renderHook","hook","options","renderHookRTL"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.mjs","sources":["../../../../admin/tests/utils.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport * as React from 'react';\n\nimport { ConfigureStoreOptions, configureStore } from '@reduxjs/toolkit';\nimport { fixtures } from '@strapi/admin-test-utils';\nimport { darkTheme, lightTheme } from '@strapi/design-system';\nimport {\n fireEvent,\n renderHook as renderHookRTL,\n render as renderRTL,\n waitFor,\n RenderOptions as RTLRenderOptions,\n RenderResult,\n act,\n screen,\n RenderHookOptions,\n RenderHookResult,\n Queries,\n} from '@testing-library/react';\nimport { userEvent } from '@testing-library/user-event';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { QueryClient, QueryClientProvider, setLogger } from 'react-query';\nimport { Provider } from 'react-redux';\nimport { MemoryRouterProps, RouterProvider, createMemoryRouter } from 'react-router-dom';\n\nimport { GuidedTourContext } from '../src/components/GuidedTour/Context';\nimport { LanguageProvider } from '../src/components/LanguageProvider';\nimport { Theme } from '../src/components/Theme';\nimport { RBAC } from '../src/core/apis/rbac';\nimport { AppInfoProvider } from '../src/features/AppInfo';\nimport { AuthProvider, type Permission } from '../src/features/Auth';\nimport { _internalConfigurationContextProvider as ConfigurationContextProvider } from '../src/features/Configuration';\nimport { NotificationsProvider } from '../src/features/Notifications';\nimport { StrapiAppProvider } from '../src/features/StrapiApp';\nimport { reducer as appReducer } from '../src/reducer';\nimport { adminApi } from '../src/services/api';\n\nimport { server } from './server';\nimport { initialState } from './store';\n\nsetLogger({\n log: () => {},\n warn: () => {},\n error: () => {},\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n initialEntries?: MemoryRouterProps['initialEntries'];\n storeConfig?: Partial<ConfigureStoreOptions>;\n permissions?: Permission[] | ((defaultPermissions: Permission[]) => Permission[] | undefined);\n}\n\nconst defaultTestStoreConfig = () => ({\n preloadedState: initialState(),\n reducer: {\n [adminApi.reducerPath]: adminApi.reducer,\n admin_app: appReducer,\n },\n // @ts-expect-error – this fails.\n middleware: (getDefaultMiddleware) => [\n ...getDefaultMiddleware({\n // Disable timing checks for test env\n immutableCheck: false,\n serializableCheck: false,\n }),\n adminApi.middleware,\n ],\n});\n\nconst DEFAULT_PERMISSIONS = [\n ...fixtures.permissions.allPermissions,\n {\n id: 314,\n action: 'admin::users.read',\n subject: null,\n properties: {},\n conditions: [],\n actionParameters: {},\n },\n];\n\nconst Providers = ({ children, initialEntries, storeConfig, permissions = [] }: ProvidersProps) => {\n const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: false,\n },\n },\n });\n\n const store = configureStore({\n ...defaultTestStoreConfig(),\n ...storeConfig,\n });\n\n const allPermissions =\n typeof permissions === 'function'\n ? permissions(DEFAULT_PERMISSIONS)\n : [...DEFAULT_PERMISSIONS, ...permissions];\n\n const router = createMemoryRouter(\n [\n {\n path: '/*',\n element: (\n <StrapiAppProvider\n components={{}}\n rbac={new RBAC()}\n widgets={\n {\n widgets: [],\n getAll: jest.fn(),\n register: jest.fn(),\n } as any\n }\n customFields={{\n customFields: {},\n get: jest.fn().mockReturnValue({\n name: 'color',\n pluginId: 'mycustomfields',\n type: 'text',\n icon: jest.fn(),\n intlLabel: {\n id: 'mycustomfields.color.label',\n defaultMessage: 'Color',\n },\n intlDescription: {\n id: 'mycustomfields.color.description',\n defaultMessage: 'Select any color',\n },\n components: {\n Input: jest.fn().mockResolvedValue({ default: jest.fn() }),\n },\n }),\n getAll: jest.fn(),\n register: jest.fn(),\n }}\n fields={{}}\n menu={[]}\n getAdminInjectedComponents={jest.fn()}\n getPlugin={jest.fn()}\n plugins={{}}\n runHookParallel={jest.fn()}\n runHookWaterfall={jest.fn().mockImplementation((_name, initialValue) => initialValue)}\n runHookSeries={jest.fn()}\n settings={{}}\n >\n <Provider store={store}>\n <AuthProvider _defaultPermissions={allPermissions} _disableRenewToken={true}>\n <QueryClientProvider client={queryClient}>\n <DndProvider backend={HTML5Backend}>\n <LanguageProvider messages={{}}>\n <Theme\n themes={{\n dark: darkTheme,\n light: lightTheme,\n }}\n >\n <NotificationsProvider>\n <GuidedTourContext enabled={false}>\n <ConfigurationContextProvider\n showReleaseNotification={false}\n logos={{\n auth: { default: 'default' },\n menu: { default: 'default' },\n }}\n updateProjectSettings={jest.fn()}\n >\n <AppInfoProvider\n autoReload\n useYarn\n dependencies={{\n '@strapi/plugin-documentation': '4.2.0',\n '@strapi/provider-upload-cloudinary': '4.2.0',\n }}\n strapiVersion=\"4.1.0\"\n communityEdition\n shouldUpdateStrapi={false}\n >\n {children}\n </AppInfoProvider>\n </ConfigurationContextProvider>\n </GuidedTourContext>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </DndProvider>\n </QueryClientProvider>\n </AuthProvider>\n </Provider>\n </StrapiAppProvider>\n ),\n },\n ],\n {\n initialEntries,\n }\n );\n\n // en is the default locale of the admin app.\n return <RouterProvider router={router} />;\n};\n\n// eslint-disable-next-line react/jsx-no-useless-fragment\nconst fallbackWrapper = ({ children }: { children: React.ReactNode }) => <>{children}</>;\n\nexport interface RenderOptions {\n renderOptions?: RTLRenderOptions;\n userEventOptions?: Parameters<typeof userEvent.setup>[0];\n initialEntries?: MemoryRouterProps['initialEntries'];\n providerOptions?: Pick<ProvidersProps, 'storeConfig' | 'permissions'>;\n}\n\n/**\n * @alpha\n * @description A custom render function that wraps the component with the necessary providers,\n * for use of testing components within the Strapi Admin.\n */\nconst render = (\n ui: React.ReactElement,\n { renderOptions, userEventOptions, initialEntries, providerOptions }: RenderOptions = {}\n): RenderResult & { user: ReturnType<typeof userEvent.setup> } => {\n const { wrapper: Wrapper = fallbackWrapper, ...restOptions } = renderOptions ?? {};\n\n return {\n ...renderRTL(ui, {\n wrapper: ({ children }) => (\n <Providers initialEntries={initialEntries} {...providerOptions}>\n <Wrapper>{children}</Wrapper>\n </Providers>\n ),\n ...restOptions,\n }),\n user: userEvent.setup({\n skipHover: true,\n ...userEventOptions,\n }),\n };\n};\n\n/**\n * @alpha\n * @description A custom render-hook function that wraps the component with the necessary providers,\n * for use of testing hooks within the Strapi Admin.\n */\nconst renderHook = <\n Result,\n Props,\n Q extends Queries,\n Container extends Element | DocumentFragment = HTMLElement,\n BaseElement extends Element | DocumentFragment = Container,\n>(\n hook: (initialProps: Props) => Result,\n options?: RenderHookOptions<Props, Q, Container, BaseElement> &\n Pick<RenderOptions, 'initialEntries' | 'providerOptions'>\n): RenderHookResult<Result, Props> => {\n const {\n wrapper: Wrapper = fallbackWrapper,\n initialEntries,\n providerOptions,\n ...restOptions\n } = options ?? {};\n\n return renderHookRTL(hook, {\n wrapper: ({ children }) => (\n <Providers initialEntries={initialEntries} {...providerOptions}>\n <Wrapper>{children}</Wrapper>\n </Providers>\n ),\n ...restOptions,\n });\n};\n\nexport { render, renderHook, waitFor, server, act, screen, fireEvent, defaultTestStoreConfig };\n"],"names":["setLogger","log","warn","error","defaultTestStoreConfig","preloadedState","initialState","reducer","adminApi","reducerPath","admin_app","appReducer","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","DEFAULT_PERMISSIONS","fixtures","permissions","allPermissions","id","action","subject","properties","conditions","actionParameters","Providers","children","initialEntries","storeConfig","queryClient","QueryClient","defaultOptions","queries","retry","store","configureStore","router","createMemoryRouter","path","element","_jsx","StrapiAppProvider","components","rbac","RBAC","widgets","getAll","jest","fn","register","customFields","get","mockReturnValue","name","pluginId","type","icon","intlLabel","defaultMessage","intlDescription","Input","mockResolvedValue","default","fields","menu","getAdminInjectedComponents","getPlugin","plugins","runHookParallel","runHookWaterfall","mockImplementation","_name","initialValue","runHookSeries","settings","Provider","AuthProvider","_defaultPermissions","_disableRenewToken","QueryClientProvider","client","DndProvider","backend","HTML5Backend","LanguageProvider","messages","Theme","themes","dark","darkTheme","light","lightTheme","NotificationsProvider","GuidedTourContext","enabled","ConfigurationContextProvider","showReleaseNotification","logos","auth","updateProjectSettings","AppInfoProvider","autoReload","useYarn","dependencies","strapiVersion","communityEdition","shouldUpdateStrapi","RouterProvider","fallbackWrapper","_Fragment","render","ui","renderOptions","userEventOptions","providerOptions","wrapper","Wrapper","restOptions","renderRTL","user","userEvent","setup","skipHover","renderHook","hook","options","renderHookRTL"],"mappings":"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"}
|
|
@@ -98,7 +98,9 @@ const ListPage = ()=>{
|
|
|
98
98
|
options: displayedFilters,
|
|
99
99
|
children: [
|
|
100
100
|
/*#__PURE__*/ jsxRuntime.jsx(Filters.Filters.Trigger, {}),
|
|
101
|
-
/*#__PURE__*/ jsxRuntime.jsx(Filters.Filters.Popover, {
|
|
101
|
+
/*#__PURE__*/ jsxRuntime.jsx(Filters.Filters.Popover, {
|
|
102
|
+
zIndex: 499
|
|
103
|
+
}),
|
|
102
104
|
/*#__PURE__*/ jsxRuntime.jsx(Filters.Filters.List, {})
|
|
103
105
|
]
|
|
104
106
|
})
|