{"version":3,"file":"SelectRoles-9hg1dCdr.mjs","sources":["../../admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper.tsx","../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE.tsx","../../admin/src/pages/Settings/pages/Users/components/SelectRoles.tsx"],"sourcesContent":["import { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification } from '@strapi/helper-plugin';\nimport { Duplicate } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface MagicLinkWrapperProps {\n  children: string;\n  target: string;\n}\n\nconst MagicLinkWrapper = ({ children, target }: MagicLinkWrapperProps) => {\n  const toggleNotification = useNotification();\n  const { formatMessage } = useIntl();\n  const { copy } = useClipboard();\n\n  const copyLabel = formatMessage({\n    id: 'app.component.CopyToClipboard.label',\n    defaultMessage: 'Copy to clipboard',\n  });\n\n  const handleClick = async () => {\n    const didCopy = await copy(target);\n\n    if (didCopy) {\n      toggleNotification({ type: 'info', message: { id: 'notification.link-copied' } });\n    }\n  };\n\n  return (\n    <ContentBox\n      endAction={\n        <IconButton label={copyLabel} noBorder icon={<Duplicate />} onClick={handleClick} />\n      }\n      title={target}\n      titleEllipsis\n      subtitle={children}\n      icon={<span style={{ fontSize: 32 }}>✉️</span>}\n      iconBackground=\"neutral100\"\n    />\n  );\n};\n\nexport { MagicLinkWrapper };\nexport type { MagicLinkWrapperProps };\n","import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../core/utils/basename';\n\nimport { MagicLinkWrapper } from './MagicLinkWrapper';\n\ninterface MagicLinkCEProps {\n  registrationToken: string;\n}\n\nconst MagicLinkCE = ({ registrationToken }: MagicLinkCEProps) => {\n  const { formatMessage } = useIntl();\n  const target = `${\n    window.location.origin\n  }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n  return (\n    <MagicLinkWrapper target={target}>\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\nexport { MagicLinkCE };\nexport type { MagicLinkCEProps };\n","import { MultiSelect, MultiSelectOption } from '@strapi/design-system';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport { FieldInputProps } from 'formik';\nimport { useIntl } from 'react-intl';\nimport styled, { keyframes } from 'styled-components';\n\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\n\nimport type { Entity } from '@strapi/types';\n\ninterface SelectRolesProps extends Pick<FieldInputProps<Entity.ID[]>, 'onChange' | 'value'> {\n  disabled?: boolean;\n  error?: string;\n}\n\nconst SelectRoles = ({ disabled, error, onChange, value }: SelectRolesProps) => {\n  const { isLoading, roles } = useAdminRoles();\n\n  const { formatMessage } = useIntl();\n  const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n  const label = formatMessage({\n    id: 'app.components.Users.ModalCreateBody.block-title.roles',\n    defaultMessage: \"User's roles\",\n  });\n  const hint = formatMessage({\n    id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n    defaultMessage: 'A user can have one or several roles',\n  });\n  const placeholder = formatMessage({\n    id: 'app.components.Select.placeholder',\n    defaultMessage: 'Select',\n  });\n\n  return (\n    <MultiSelect\n      id=\"roles\"\n      disabled={disabled}\n      error={errorMessage}\n      hint={hint}\n      label={label}\n      name=\"roles\"\n      onChange={(v) => {\n        onChange({ target: { name: 'roles', value: v } });\n      }}\n      placeholder={placeholder}\n      startIcon={isLoading ? <Loader /> : undefined}\n      value={value.map((v) => v.toString())}\n      withTags\n      required\n    >\n      {roles.map((role) => {\n        return (\n          <MultiSelectOption key={role.id} value={role.id.toString()}>\n            {formatMessage({\n              id: `global.${role.code}`,\n              defaultMessage: role.name,\n            })}\n          </MultiSelectOption>\n        );\n      })}\n    </MultiSelect>\n  );\n};\n\nconst rotation = keyframes`\n  from {\n    transform: rotate(0deg);\n  }\n  to {\n    transform: rotate(359deg);\n  }\n`;\n\nconst LoadingWrapper = styled.div`\n  animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n  <LoadingWrapper>\n    <LoadingIcon />\n  </LoadingWrapper>\n);\n\nexport { SelectRoles };\n"],"names":["LoadingIcon"],"mappings":";;;;;;;;AAUA,MAAM,mBAAmB,CAAC,EAAE,UAAU,aAAoC;AACxE,QAAM,qBAAqB;AACrB,QAAA,EAAE,kBAAkB;AACpB,QAAA,EAAE,SAAS;AAEjB,QAAM,YAAY,cAAc;AAAA,IAC9B,IAAI;AAAA,IACJ,gBAAgB;AAAA,EAAA,CACjB;AAED,QAAM,cAAc,YAAY;AACxB,UAAA,UAAU,MAAM,KAAK,MAAM;AAEjC,QAAI,SAAS;AACQ,yBAAA,EAAE,MAAM,QAAQ,SAAS,EAAE,IAAI,8BAA8B;AAAA,IAClF;AAAA,EAAA;AAIA,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WACE,oBAAC,YAAW,EAAA,OAAO,WAAW,UAAQ,MAAC,MAAO,oBAAA,WAAA,CAAA,CAAU,GAAI,SAAS,YAAa,CAAA;AAAA,MAEpF,OAAO;AAAA,MACP,eAAa;AAAA,MACb,UAAU;AAAA,MACV,0BAAO,QAAK,EAAA,OAAO,EAAE,UAAU,MAAM,UAAE,MAAA;AAAA,MACvC,gBAAe;AAAA,IAAA;AAAA,EAAA;AAGrB;AC9BA,MAAM,cAAc,CAAC,EAAE,wBAA0C;AACzD,QAAA,EAAE,kBAAkB;AACpB,QAAA,SAAS,GACb,OAAO,SAAS,MAClB,GAAG,aAAa,oCAAoC,iBAAiB;AAGnE,SAAA,oBAAC,kBAAiB,EAAA,QACf,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAA,EACH,CAAA;AAEJ;ACTA,MAAM,cAAc,CAAC,EAAE,UAAU,OAAO,UAAU,YAA8B;AAC9E,QAAM,EAAE,WAAW,MAAM,IAAI,cAAc;AAErC,QAAA,EAAE,kBAAkB;AACpB,QAAA,eAAe,QAAQ,cAAc,EAAE,IAAI,OAAO,gBAAgB,OAAO,IAAI;AACnF,QAAM,QAAQ,cAAc;AAAA,IAC1B,IAAI;AAAA,IACJ,gBAAgB;AAAA,EAAA,CACjB;AACD,QAAM,OAAO,cAAc;AAAA,IACzB,IAAI;AAAA,IACJ,gBAAgB;AAAA,EAAA,CACjB;AACD,QAAM,cAAc,cAAc;AAAA,IAChC,IAAI;AAAA,IACJ,gBAAgB;AAAA,EAAA,CACjB;AAGC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAG;AAAA,MACH;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,MAAK;AAAA,MACL,UAAU,CAAC,MAAM;AACN,iBAAA,EAAE,QAAQ,EAAE,MAAM,SAAS,OAAO,KAAK;AAAA,MAClD;AAAA,MACA;AAAA,MACA,WAAW,YAAa,oBAAA,QAAA,CAAO,CAAA,IAAK;AAAA,MACpC,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU;AAAA,MACpC,UAAQ;AAAA,MACR,UAAQ;AAAA,MAEP,UAAA,MAAM,IAAI,CAAC,SAAS;AACnB,mCACG,mBAAgC,EAAA,OAAO,KAAK,GAAG,SAAA,GAC7C,UAAc,cAAA;AAAA,UACb,IAAI,UAAU,KAAK,IAAI;AAAA,UACvB,gBAAgB,KAAK;AAAA,QAAA,CACtB,EAJqB,GAAA,KAAK,EAK7B;AAAA,MAAA,CAEH;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASjB,MAAM,iBAAiB,OAAO;AAAA,eACf,QAAQ;AAAA;AAGvB,MAAM,SAAS,MACb,oBAAC,gBACC,EAAA,UAAA,oBAACA,WAAY,CAAA,GACf;"}