{"version":3,"file":"index.mjs","sources":["../../../../admin/src/components/UsersPermissions/index.jsx"],"sourcesContent":["import React, { forwardRef, memo, useImperativeHandle, useReducer } from 'react';\n\nimport { Flex, Grid, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { UsersPermissionsProvider } from '../../contexts/UsersPermissionsContext';\nimport getTrad from '../../utils/getTrad';\nimport Permissions from '../Permissions';\nimport Policies from '../Policies';\n\nimport init from './init';\nimport reducer, { initialState } from './reducer';\n\nconst UsersPermissions = forwardRef(({ permissions, routes }, ref) => {\n  const { formatMessage } = useIntl();\n  const [state, dispatch] = useReducer(reducer, initialState, (state) =>\n    init(state, permissions, routes)\n  );\n\n  useImperativeHandle(ref, () => ({\n    getPermissions() {\n      return {\n        permissions: state.modifiedData,\n      };\n    },\n    resetForm() {\n      dispatch({ type: 'ON_RESET' });\n    },\n    setFormAfterSubmit() {\n      dispatch({ type: 'ON_SUBMIT_SUCCEEDED' });\n    },\n  }));\n\n  const handleChange = ({ target: { name, value } }) =>\n    dispatch({\n      type: 'ON_CHANGE',\n      keys: name.split('.'),\n      value: value === 'empty__string_value' ? '' : value,\n    });\n\n  const handleChangeSelectAll = ({ target: { name, value } }) =>\n    dispatch({\n      type: 'ON_CHANGE_SELECT_ALL',\n      keys: name.split('.'),\n      value,\n    });\n\n  const handleSelectedAction = (actionToSelect) =>\n    dispatch({\n      type: 'SELECT_ACTION',\n      actionToSelect,\n    });\n\n  const providerValue = {\n    ...state,\n    onChange: handleChange,\n    onChangeSelectAll: handleChangeSelectAll,\n    onSelectedAction: handleSelectedAction,\n  };\n\n  return (\n    <UsersPermissionsProvider value={providerValue}>\n      <Grid.Root gap={0} shadow=\"filterShadow\" hasRadius background=\"neutral0\">\n        <Grid.Item\n          col={7}\n          xs={12}\n          paddingTop={6}\n          paddingBottom={6}\n          paddingLeft={7}\n          paddingRight={7}\n          direction=\"column\"\n          alignItems=\"stretch\"\n        >\n          <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n            <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n              <Typography variant=\"delta\" tag=\"h2\">\n                {formatMessage({\n                  id: getTrad('Plugins.header.title'),\n                  defaultMessage: 'Permissions',\n                })}\n              </Typography>\n              <Typography tag=\"p\" textColor=\"neutral600\">\n                {formatMessage({\n                  id: getTrad('Plugins.header.description'),\n                  defaultMessage: 'Only actions bound by a route are listed below.',\n                })}\n              </Typography>\n            </Flex>\n            <Permissions />\n          </Flex>\n        </Grid.Item>\n        <Policies />\n      </Grid.Root>\n    </UsersPermissionsProvider>\n  );\n});\n\nUsersPermissions.propTypes = {\n  permissions: PropTypes.object.isRequired,\n  routes: PropTypes.object.isRequired,\n};\n\nexport default memo(UsersPermissions);\n"],"names":["UsersPermissions","forwardRef","permissions","routes","ref","formatMessage","useIntl","state","dispatch","useReducer","reducer","initialState","init","useImperativeHandle","getPermissions","modifiedData","resetForm","type","setFormAfterSubmit","handleChange","target","name","value","keys","split","handleChangeSelectAll","handleSelectedAction","actionToSelect","providerValue","onChange","onChangeSelectAll","onSelectedAction","_jsx","UsersPermissionsProvider","_jsxs","Grid","Root","gap","shadow","hasRadius","background","Item","col","xs","paddingTop","paddingBottom","paddingLeft","paddingRight","direction","alignItems","Flex","Typography","variant","tag","id","getTrad","defaultMessage","textColor","Permissions","Policies","propTypes","PropTypes","object","isRequired","memo"],"mappings":"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"}