Люди компонент средства выбора в наборе средств Microsoft Graph
Веб-компонент mgt-people-picker
можно использовать для поиска людей и (или) групп. По умолчанию компонент ищет всех людей и пользователей в организации, но вы можете изменить его поведение, чтобы также искать группы или только группы. Вы также можете отфильтровать поиск по определенной группе. Кроме того, можно разрешить пользователю ввести и выбрать любой адрес электронной почты.
Пример
В примере ниже показан компонент mgt-people-picker
. Начните поиск имени, чтобы отобразить результаты, и используйте редактор кода, чтобы увидеть, как свойства изменяют поведение компонента.
Свойства
По умолчанию компонент mgt-people-picker
извлекает людей из конечных точек /me/people
и /users
. Используйте следующие атрибуты, чтобы изменить его поведение.
Атрибут | Свойство | Описание |
---|---|---|
show-max | showMax | Числовое значение, указывающее максимальное количество отображаемых людей. Значение по умолчанию — 6. |
group-id | groupId | Значение строки, принадлежащее определенной группе Microsoft Graph для дальнейшей фильтрации результатов поиска. |
transitive-search | transitiveSearch | Логическое значение для выполнения транзитивного поиска, возвращающего плоский список всех вложенных элементов. По умолчанию транзитивный поиск не используется. |
type | type | Тип объектов, которые необходимо найти. Доступные варианты — person , group , any . Значение по умолчанию — person . Этот атрибут не оказывает влияния, если задано свойство group-id . |
тип пользователя | userType | Тип пользователя для поиска. Доступны следующие варианты: any , user для пользователей организации или contact для контактов. Значение по умолчанию — any . |
group-type | groupType | Тип группы, которую необходимо найти. Доступные варианты — unified , security , mailenabledsecurity , distribution , any . Значение по умолчанию — any . Этот атрибут не оказывает влияния, если для свойства type задано значение person . |
selected-people | selectedPeople | Массив выбранных людей. Установите это значение, чтобы выбрать людей программным образом. |
people | people | Массив людей, найденных и отображенных в результатах поиска. |
placeholder | placeholder | Текст по умолчанию, который объясняет, как использовать компонент. Значение по умолчанию — Start typing a name . |
default-selected-user-ids | defaultSelectedUserIds | При предоставлении строки разделенных запятой ИД пользователей Microsoft Graph, компонент отображает соответствующих пользователей как выбранных после инициализации. |
default-selected-group-ids | defaultSelectedGroupIds | Как и в случае с выбранными по умолчанию идентификаторами пользователей, при указании строки идентификаторов групп Microsoft Graph, разделенных запятыми, компонент отрисовывает соответствующие группы, выбранные при инициализации. |
selection-mode | selectionMode | Используется, чтобы указать следует ли разрешить выбирать несколько элементов (пользователей или групп) или только один элемент. Доступные варианты — single , multiple . Значение по умолчанию — multiple . |
отключено | отключено | Задает значение, отключаемое средство выбора людей. Если этот параметр отключен, пользователь не сможет искать или выбирать людей. |
disable-images | disableImages | Указывает, следует ли отключить получение и отображение изображений пользователей. Если задано значение true , вместо этого отображаются пользовательские инициалы. |
allow-any-email | allowAnyEmail | Указывает, может ли средство выбора людей принимать адреса электронной почты без выбора пользователя. Значение по умолчанию — false . Завершив ввод адреса электронной почты, можно нажать клавишу запятую (, ), точку с запятой (; ), вкладку или ввести клавиши, чтобы добавить его. |
user-ids | userIds | Строка идентификаторов пользователей, разделенных запятыми. Они будут отображаться только в раскрывающемся меню или в результатах поиска при вводе запроса. Например, 48d31887-5fad-4d73-a9f5-3c356e68a038,24fcbca3-c3e2-48bf-9ffc-c7f81b81483d два пользователя будут отображаться в раскрывающемся списке только при сосредоточении входных данных. При вводе текста поиска будут возвращены результаты, соответствующие только пользователям в двух идентификаторах пользователей. |
пользовательские фильтры | userFilters | Указывает критерии фильтра, используемые при запросе конечной точки пользователей. Требуется, чтобы для user-type параметра было задано значение user или contact . По умолчанию объект имеет значение any , и это приводит к тому, user-type что запрос выполняется в блоке конечной people точки. Пример: user-filters="startsWith(displayName,'a')" . Этот атрибут является необязательным. Узнайте больше о поддержке фильтрации свойств пользователей объектов каталога Azure AD. |
group-filters | groupFilters | Указывает критерии фильтра, используемые при запросе к конечной точке groups . Требуется, чтобы для type параметра было задано значение group . Пример: group-filters="startsWith(displayName,'a')" . Этот атрибут является необязательным. |
фильтры людей | peopleFilters | Указывает критерии фильтра, используемые при запросе к конечной точке people . Используется как есть. Пример: people-filters="jobTitle eq 'Web Marketing Manager'" . Этот атрибут является необязательным. Узнайте больше о фильтрации и поддерживаемых возможностях ресурса "Люди". |
идентификаторы групп | groupIds | Строка идентификаторов групп, разделенных запятыми. Доступные результаты должны быть ограничены указанными группами. Пользователи, которые будут отображаться в раскрывающемся меню и в интерфейсе поиска, должны поступать только из указанных идентификаторов групп. Например, будут отображаться только пользователи, 02bd9fd6-8f93-4758-87c3-1fb73740a315,06f62f70-9827-4e6e-93ef-8e0f2d9b7b23 принадлежащие к этим группам. При вводе текста поиска будут возвращены результаты, которые соответствуют только пользователям в двух идентификаторах групп. Это свойство не используется, если group-id задано значение . Если свойство задано, type по умолчанию используется group значение , а transitive-search значение — true по умолчанию. group-type Если задано со свойством , type может иметь значение any или group . type Если имеет значение person , свойство не используется. |
aria-label | ariaLabel | Строка, предоставляемая для помощи в аситивных технологиях, предоставляет контекст для средства выбора людей. |
Ниже приведен пример show-max
.
<mgt-people-picker show-max="4"> </mgt-people-picker>
Выбранные люди
В разделе "Выбранные люди" компонента отображаются люди, выбранные разработчиком или пользователем.
Вы можете заполнить данные о выбранных людях, выполнив одно из следующих действий.
Задайте свойство
selectedPeople
напрямую, как показано в примере ниже.// personObject = User or Person from Microsoft Graph document.querySelector('mgt-people-picker').selectedPeople.push(personObject);
Используйте метод
selectUsersById()
, принимающий массив ИД пользователей Microsoft Graph, чтобы найти сведения о связанных пользователях для выбора.Примечание. Если пользователь не найден по
id
, данные для этогоid
не будут отображаться.// id = Microsoft graph User "id" document.querySelector('mgt-people-picker').selectUsersById(["id","id"])
selectGroupsById()
Использование метода , который принимает массив идентификаторов групп Microsoft Graph для поиска групп со связанными пользователями.// groupid = Microsoft graph group "id" document.querySelector('mgt-people-picker').selectGroupsById(["groupid","groupid"])
События
Из компонента инициируются следующие события.
Событие | Когда он генерируется | Пользовательские данные | Отменяемым | Пузыри | Работает с пользовательским шаблоном |
---|---|---|---|---|---|
selectionChanged |
Пользователь добавил или удалил пользователя из списка выбранных или выбранных пользователей | Массив выбранных людей, где пользователь может быть пользователем Graph, пользователем или контактом с дополнительным personImage свойством, содержащим URL-адрес фотографии пользователя |
Нет | Нет | Да, если вы не переопределяете шаблон по умолчанию |
Дополнительные сведения об обработке событий см. в разделе События.
Настраиваемые свойства CSS
Компонент mgt-people-picker
определяет следующие настраиваемые свойства CSS.
mgt-people-picker {
--input-border: 2px rgba(255, 255, 255, 0.5) solid; /* sets all input area border */
/* OR individual input border sides */
--input-border-bottom: 2px rgba(255, 255, 255, 0.5) solid;
--input-border-right: 2px rgba(255, 255, 255, 0.5) solid;
--input-border-left: 2px rgba(255, 255, 255, 0.5) solid;
--input-border-top: 2px rgba(255, 255, 255, 0.5) solid;
--input-background-color: #1f1f1f; /* input area background color */
--input-border-color--hover: #008394; /* input area border hover color */
--input-border-color--focus: #0f78d4; /* input area border focus color */
--dropdown-background-color: #ca00ca; /* selection area background color */
--dropdown-item-hover-background: purple; /* person background color on hover */
--dropdown-item-text-color: white; /* person item text color */
--dropdown-item-text-hover-color: gold; /* person item text color on hover */
--selected-person-background-color: #f1f1f1; /* person item background color */
--color: white; /* input area border focus color */
--placeholder-color: #f1f1f1; /* placeholder text color */
--placeholder-color--focus: rgba(255, 255, 255, 0.8); /* placeholder text focus color */
}
Шаблоны
Компонент mgt-people-picker
поддерживает несколько шаблонов, позволяющих заменить его определенные части. Чтобы указать шаблон, добавьте элемент <template>
в компонент и присвойте параметру data-type
одно из следующих значений.
Тип данных | Контекст данных | Описание |
---|---|---|
default | null: нет данных | Шаблон, используемый для переопределения отображения всего компонента. |
loading | null: нет данных | Шаблон, используемый для отображения состояния средства выбора при выполнении запроса к Microsoft Graph. |
error | null: нет данных | Шаблон, используемый в том случае, если поиск не возвращает пользователей. |
no-data | null: нет данных | Альтернативный шаблон, используемый в том случае, если поиск не возвращает пользователей. |
selected-person | person: объект сведений о пользователе | Шаблон, отображающий выбранных людей. |
person | person: объект сведений о пользователе | Шаблон, отображающий людей в раскрывающемся списке. |
В следующих примерах показано, как использовать шаблон error
.
<mgt-people-picker>
<template data-type="error">
<p>Sorry, no people were found</p>
</template>
</mgt-people-picker>
Разрешения Microsoft Graph
Этот компонент использует следующие API и разрешения Microsoft Graph.
Конфигурация | Разрешение | API |
---|---|---|
group-id Установить |
Люди. Read, User.Read.All, GroupMember.Read.All | /groups/${groupId}/members |
type задайте значение Person или any |
People.Read | /me/people |
type задайте значение Group или выполните поиск пользователей, а type для — Group или any |
Group.Read.All | /groups |
default-selected-user-ids Установить |
User.ReadBasic.All | /users |
поиск пользователей и type установка значения Person или any |
Люди. Read, User.ReadBasic.All | /me/people, /users |
Проверка подлинности
В элементе управления используется глобальный поставщик проверки подлинности, описанный в документации по проверке подлинности.
Кэш
Хранилище объектов | Кэшированные данные | Замечания |
---|---|---|
groups |
Список групп | Используется, если type задано значение PersonType.group |
people |
List of people | Используется, если type задано значение PersonType.person или PersonType.any |
users |
Список пользователей | Используется при groupId указании |
Дополнительные сведения о настройке кэша см. в разделе Кэширование .
Расширение для дополнительного управления
В более сложных сценариях или настраиваемых пользовательских интерфейсах этот компонент предоставляет несколько методов protected render*
для переопределения в расширениях компонента.
Метод | Описание |
---|---|
renderInput | Отображает поле ввода. |
renderSelectedPeople | Отображает маркеры выбранных людей. |
renderSelectedPerson | Отображает маркер одного пользователя. |
renderFlyout | Отображает хром всплывающего окна. |
renderFlyoutContent | Отображает соответствующее состояние во всплывающем окне результатов. |
renderLoading | Отображает состояние загрузки. |
renderNoData | Отображает состояние, если для поискового запроса не найдено результатов. |
renderSearchResults | Отображает список результатов поиска. |
renderPersonResult | Отображает результаты поиска для одного пользователя. |