Componente de pessoa no Microsoft Graph Toolkit

Cuidado

O Microsoft Graph Toolkit foi preterido. O período de aposentadoria começa em 1º de setembro de 2025, com aposentadoria total planejada para 28 de agosto de 2026. Os desenvolvedores devem migrar para o uso dos SDKs do Microsoft Graph ou outras ferramentas do Microsoft Graph com suporte para criar experiências na Web. Para obter mais informações, consulte o anúncio de substituição.

O componente de pessoa é usado para exibir uma pessoa ou contato usando sua foto, nome, endereço de email ou qualquer outro detalhe da pessoa.

O componente pessoa também usa o mgt-person-card para exibir um card de submenu com informações adicionais sobre o usuário. Para obter detalhes, consulte a seção Cartão de Visita .

Exemplo

O exemplo a seguir exibe uma pessoa usando o mgt-person componente. Você pode usar o editor de código para ver como as propriedades alteram o comportamento do componente.

Definindo os detalhes da pessoa

Você pode usar três propriedades para definir os detalhes da pessoa. Use apenas uma das seguintes propriedades por instância:

  • Defina o user-id atributo ou userId a propriedade para buscar o usuário no Microsoft Graph usando sua ID.

  • Defina o atributo ou personQuery a propriedade para pesquisar no person-query Microsoft Graph por uma determinada pessoa. Ele escolhe a primeira pessoa disponível e busca os detalhes da pessoa. Um email funciona melhor para garantir que a pessoa certa seja consultada, mas um nome também funciona.

  • Defina o person-presence atributo ou personPresence propriedade para adicionar um selo de presença ao avatar da pessoa manualmente.

  • Defina o avatar-size atributo ou avatarSize a propriedade para small ou large para determinar o tamanho do avatar. Isso ajuda a adicionar o selo de presença correta ao avatar. Você precisa escolher as propriedades personalizadas CSS correspondentes corretas mostradas abaixo para personalizar ainda mais o tamanho do avatar. Por padrão, o valor é definido para auto decidir automaticamente como renderizar a presença com base na view propriedade. Recomendamos usar small se o seu avatar for menor que 32 px por 32 px.

  • Use o atributo ou personDetails a person-details propriedade para definir manualmente os detalhes da pessoa, conforme mostrado no exemplo a seguir.

    let personControl = document.getElementById('myPersonControl');
    personControl.personDetails = {
        displayName: 'Nikola Metulev',
        mail: 'nikola@contoso.com',
        personImage: 'url'
    }
    

    Se nenhuma imagem for fornecida, uma será buscada (se disponível).

  • Por padrão, o componente pessoa solicita apenas o conjunto de propriedades padrão do usuário do Microsoft Graph. Para solicitar propriedades adicionais, declare-as como parte do line(x)Property.

Propriedades

Você pode usar várias propriedades para personalizar o componente.

Atributo Propriedade Descrição
ID do usuário userId Defina como uma ID de usuário para buscar os detalhes e a imagem desse usuário no Microsoft Graph.
consulta de pessoa personQuery Defina como um nome ou email de uma pessoa para pesquisar uma pessoa no Microsoft Graph e buscar os detalhes e a imagem da primeira pessoa.
Detalhes da pessoa personDetails Definido como um objeto que representa uma pessoa. Trabalha com objetos de pessoas, usuários, contatos ou grupos, recursos.
Detalhes de fallback Detalhes de fallback Definido como um objeto que representa uma pessoa quando nenhum usuário/pessoa/contato é encontrado no Microsoft Graph.
pessoa-imagem personImage Defina a imagem para mostrar para a pessoa.
presença de pessoa personPresence Defina a presença para a pessoa.
fetch-image fetchImage Defina o personDetails sinalizador para buscar personImage automaticamente do Microsoft Graph com base no objeto fornecido pelo usuário.
disable-image-fetch disableImageFetch Defina o sinalizador para desabilitar a busca da imagem da pessoa. Ele pode ser usado para evitar a busca desnecessária do Microsoft Graph ao especificar personImage a propriedade.
tipo avatar avatarType Defina como initials ou photo para renderizar o estado de exibição - o padrão é foto.
tamanho do avatar avatarTamanho Defina o tamanho do avatar como small, large, ou auto, ajudando também a determinar o tamanho correto para o selo de presença. O valor padrão é auto. Se o view atributo estiver definido como threelines ou fourlines, avatar-size será automaticamente tratado como large, independentemente de seu valor real.
de layout vertical verticalLayout Defina o layout do componente como vertical.
modo de exibição modo de exibição Definido para controlar como a pessoa é renderizada. O padrão é image.
image - mostrar apenas avatar
oneline - mostrar avatar e primeira linha (displayName por padrão)
twolines - mostrar avatar e duas linhas de texto (displayName e jobTitle por padrão)
threelines - mostrar avatar e três linhas de texto (displayNamee jobTitledepartment por padrão)
fourlines - mostrar avatar e quatro linhas de texto (displayName, jobTitle, department e email por padrão)
Em vertical-layout, ver alterações.
twolines - mostrar avatar e duas linhas de texto (displayName e email por padrão)
threelines - mostrar avatar e três linhas de texto (displayName e emaildepartment por padrão)
propriedade line1 line1Property Define a propriedade de personDetails a ser usada para a primeira linha de texto. O padrão é displayName.
propriedade line2 line2Property Define a propriedade de personDetails a ser usada para a segunda linha de texto. O padrão é jobTitle.
propriedade line3 line3Property Define a propriedade de personDetails a ser usada para a terceira linha de texto. O padrão é department.
propriedade line4 line4Property Define a propriedade de personDetails a ser usada para a quarta linha de texto. O padrão é email.
mostrar presença showPresence Definir sinalizador para exibir a presença da pessoa - o padrão é false.
Utilização Utilização Especifique onde o componente está sendo usado para adicionar personalização personalizada a ele. Atualmente, só há suporte people como usado no componente pessoas.
person-card personCardInteraction Define o comportamento para mostrar o card de pessoa no componente de pessoa renderizado. Os valores permitidos são none, hover ou click. O padrão é none.

Propriedades personalizadas CSS

O mgt-person componente define as seguintes propriedades personalizadas CSS.

<mgt-person class="person" person-query="me" view="fourlines" id="online" show-presence></mgt-person>
.person {
  --person-background-color: #616161;
  --person-background-border-radius: 30%;
  --person-avatar-size: 40px;
  --person-avatar-border: 3px solid yellow;
  --person-avatar-border-radius: 54%;
  --person-initials-text-color: white;
  --person-initials-background-color: blue;
  --person-line1-font-size: 32px;
  --person-line1-font-weight: 600;
  --person-line1-text-color: red;
  --person-line1-text-transform: capitalize;
  --person-line1-text-line-height: 20px;
  --person-line2-font-size: 28px;
  --person-line2-font-weight: 500;
  --person-line2-text-color: orange;
  --person-line2-text-transform: full-width;
  --person-line2-text-line-height: 16px;
  --person-line3-font-size: 24px;
  --person-line3-font-weight: 400;
  --person-line3-text-color: blue;
  --person-line3-text-transform: uppercase;
  --person-line3-text-line-height: 12px;
  --person-line4-font-size: 20px;
  --person-line4-font-weight: 300;
  --person-line4-text-color: green;
  --person-line4-text-transform: lowercase;
  --person-line4-text-line-height: 12px;
  --person-details-spacing: 30px;
}

Para saber mais, consulte Componentes de estilo.

Eventos

Os eventos a seguir são disparados do componente.

Evento Quando é emitido Dados personalizados Cancelável Bolhas Funciona com modelo personalizado
line1clicked Acionado quando linha1 é clicada O person objeto que pode ser um usuário do Microsoft Graph, pessoa ou contato com uma propriedade adicional personImage que contém a URL da foto do usuário. Não Não Sim, a menos que você substitua o modelo padrão.
line2clicked Acionado quando a linha2 é clicada O person objeto que pode ser um usuário do Microsoft Graph, pessoa ou contato com uma propriedade adicional personImage que contém a URL da foto do usuário. Não Não Sim, a menos que você substitua o modelo padrão.
line3clicked Acionado quando a linha3 é clicada O person objeto, que pode ser um usuário do Microsoft Graph, uma pessoa ou um contato com uma propriedade adicional personImage que contém a URL da foto do usuário. Não Não Sim, a menos que você substitua o modelo padrão.
line4clicked Acionado quando a linha4 é clicada O person objeto, que pode ser um usuário do Microsoft Graph, uma pessoa ou um contato com uma propriedade adicional personImage que contém a URL da foto do usuário. Não Não Sim, a menos que você substitua o modelo padrão.

Para obter mais informações sobre como lidar com eventos, consulte eventos.

Modelos

O mgt-person componente suporta vários modelos que permitem substituir certas partes do componente. Para especificar um modelo, inclua um <template> elemento dentro de um componente e defina como data-type um dos seguintes valores:

Tipo de dados Contexto de dados Descrição
carregando none O modelo a ser renderizado enquanto o componente está em um estado de carregamento.
sem dados none O modelo a ser renderizado quando nenhuma pessoa, imagem ou dado estiver disponível.
Padrão. pessoa: o objeto de detalhes da pessoa
personImage: a URL da imagem
personPresence: O objeto de detalhes de presença para pessoa.
O modelo padrão substitui todo o componente pelo seu.
person-card pessoa: o objeto de detalhes da pessoa
personImage: a URL da imagem.
O modelo para atualizar o mgt-person-card exibido ao focalizar ou clicar.
linha1 pessoa: o objeto de detalhes da pessoa O modelo para a primeira linha dos metadados da pessoa.
linha2 pessoa: o objeto de detalhes da pessoa O modelo para a segunda linha dos metadados da pessoa.
linha3 pessoa: o objeto de detalhes da pessoa O modelo para a terceira linha de metadados da pessoa.
linha4 pessoa: o objeto de detalhes da pessoa O modelo para a quarta linha dos metadados da pessoa.

O exemplo a seguir define um modelo para o componente pessoa.

<!-- Retemplate the entire person component -->
<mgt-person>
  <template>
    <div data-if="personImage">
      <img src="{{personImage}}" />
    </div>
    <div data-else>
      {{person.displayName}}
    </div>
  </template>
</mgt-person>

<!-- Retemplate the line properties -->
<mgt-person view="threeLines">
  <template data-type="line1">
    <div>
      Hello, my name is: {{person.displayName}}
    </div>
  </template>
  <template data-type="line2">
    <div>
      Super cool
    </div>
  </template>
  <template data-type="line3">
    <div>
      Loves MGT
    </div>
  </template>
</mgt-person>

<mgt-person view="fourLines">
  <template data-type="line1">
    <div>
      Hello, my name is: {{person.displayName}}
    </div>
  </template>
  <template data-type="line2">
    <div>
      Musician
    </div>
  </template>
  <template data-type="line3">
    <div>
      Calif records
    </div>
  </template>
  <template data-type="line4">
    <div>
      {{person.mail}}
    </div>
  </template>
</mgt-person>

<!-- Person-card template -->
<mgt-person person-query="me" view="twolines" person-card="hover">
	<template data-type="person-card">
		My custom person card experience
	</template>
</mgt-person>

Cartão pessoal

O mgt-person componente pode mostrar um mgt-person-card ao focalizar ou clicar.

Adicionar o controle à página HTML

<mgt-person person-query="me" person-card="hover"></mgt-person>
Atributo Propriedade Descrição
person-card personCardInteraction Uma enumeração para determinar a ação do usuário necessária para ativar o painel de submenu - hover ou click. O valor padrão é none.

Para obter mais informações sobre modelos, estilos e atributos, consulte Componente Cartão de Visita.

Configuração global do componente

A MgtPerson classe expõe um objeto estático config que configura todos os componentes da pessoa no aplicativo.

O exemplo a seguir mostra como usar o objeto de configuração.

import { MgtPerson } from '@microsoft/mgt-components';

MgtPerson.config.useContactApis = false;

As propriedades a seguir estão disponíveis no objeto de configuração.

Propriedade Descrição
useContactApis boolean - Indica se o componente pessoa pode usar a API de contatos pessoais do Microsoft Graph para pesquisar detalhes e fotos de contato. O valor padrão é true.

Permissões do Microsoft Graph

Esse controle usa as seguintes APIs e permissões do Microsoft Graph. Para cada API chamada, o usuário deve ter pelo menos uma das permissões listadas. Algumas configurações podem resultar em várias chamadas para o Microsoft Graph. Quando essas chamadas podem usar permissões diferentes, cada API e conjunto de permissões está em uma linha separada.

Configuração Permissão API
personDetails Defina sem imagem, fetchImage defina como true, avatarType defina como photo, a pessoa recuperada é um contato e useContactApis defina como true Contacts.Read, Contacts.ReadWrite /eu/contatos/*
personDetails Defina sem imagem, fetchImage defina como true, avatarType defina como photo e a pessoa não é um contato ou useContactApis está definida como false User.ReadBasic.All, User.Read.All, User.ReadWrite.All /users/{id}/foto/$value
personDetails Defina sem imagem, fetchImage defina como true, avatarType defina como photo e especifique o usuário por email User.ReadBasic.All, User.Read.All, Directory.Read.All, User.ReadWrite.All, Directory.ReadWrite.All /usuários?$search=
personDetails Defina sem imagem, fetchImage defina como true, avatarType defina como photo e especifique o usuário por email User.ReadBasic.All, User.Read.All, User.ReadWrite.All /users/{id}/foto/$value
personDetails Defina sem imagem, fetchImage defina como true, avatarType defina como photo e contato especificado por email e useContactApis defina como true Contacts.Read, Contacts.ReadWrite /eu/contatos/*
personDetails defina sem imagem para um grupo, fetchImage defina para true, avatarType defina para photo Group.Read.All, Group.ReadWrite.All' /groups/${groupId}/photo/$value
userId conjunto User.ReadBasic.All /users/{id}
userId definir ou personQuery definir para me e avatarType definir para photo e disableImageFetch é false User.ReadBasic.All, User.Read.All, Directory.Read.All, User.ReadWrite.All, Directory.ReadWrite.All /users/{id}
userId definir ou personQuery definir para me e avatarType definir para photo e disableImageFetch é false User.ReadBasic.All, User.Read.All, User.ReadWrite.All users/${userId}/foto/*
userId Definido como me e avatarType Definido como photo e disableImageFetch é false User.Read, User.ReadWrite, User.ReadBasic.All, User.Read.All, Directory.Read.All, User.ReadWrite.All, Directory.ReadWrite.All /me
userId Definido como me e avatarType Definido como photo e disableImageFetch é false User.Read, User.ReadWrite, User.ReadBasic.All, User.Read.All, User.ReadWrite.All /eu/foto/$value
personQuery definido como me e avatarType definido como algo diferente de photo User.Read, User.ReadWrite /me
personQuery definido como um valor diferente de me e avatarType definido como algo diferente de photo People.Read, People.Read.All /eu/pessoas
personQuery definido como um valor diferente de me e avatarType definido como algo diferente de photo e /me/people não retornou nenhum dado que corresponda ao fornecido personQuery User.ReadBasic.All, User.Read.All, Directory.Read.All, User.ReadWrite.All, Directory.ReadWrite.All /usuário?$search=
personQuery defina como um valor diferente de me e useContactApis defina como false People. Read, User.ReadBasic.All /me/people/?$search=, /users?$search=
showPresence Defina como true e personQuery defina como me Presence.Read /me/presence
showPresence Defina como true e personQuery defina como um valor diferente de me Presence.Read.All /users/{id}/presence
personCardInteraction Defina com um valor diferente de PersonCardInteraction.none Ver permissões do card de pessoa Ver chamadas à API do card de pessoa

Subcomponentes

O mgt-person componente consiste em um ou mais subcomponentes que podem exigir outras permissões além das listadas anteriormente. Para obter mais informações, consulte a documentação de cada subcomponente: mgt-person-card.

Autenticação

O controle usa o provedor de autenticação global descrito na documentação de autenticação para buscar os dados necessários.

Cache

Loja de objetos Dados armazenados em cache Comentários
photos Foto da pessoa Usado quando avatarType está definido como photo e fetchImage está definido como true.
presence Presença da pessoa Usado quando está definido como showPresencetrue.
users Informações de usuário da pessoa.

Consulte Cache para obter mais detalhes sobre como configurar o cache.

Estenda para mais controle

Para cenários mais complexos ou uma experiência de usuário verdadeiramente personalizada, esse componente expõe vários protected render* métodos de substituição em extensões de componente.

Método Descrição
renderLoading Renderiza o estado de carregamento.
renderNoData Renderiza quando nenhum dado de imagem ou pessoa está disponível.
renderAvatar Renderiza o avatar.
renderDetails Renderiza a parte de detalhes da pessoa.

Localização

O controle expõe as variáveis a seguir que podem ser localizadas. Para obter detalhes sobre como configurar a localização, consulte Localizando componentes.

Nome da cadeia de caracteres Valor padrão
photoFor Photo for
emailAddress Email address