@devsym/graph-toolkit-react 1.1.0 → 1.2.1
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/README.md +3 -1
- package/dist/components/People/People.d.ts.map +1 -1
- package/dist/components/Person/Person.d.ts.map +1 -1
- package/dist/components/Person/Person.types.d.ts +20 -0
- package/dist/components/Person/Person.types.d.ts.map +1 -1
- package/dist/components/Person/PersonCard.d.ts +32 -0
- package/dist/components/Person/PersonCard.d.ts.map +1 -0
- package/dist/components/Person/index.d.ts +3 -1
- package/dist/components/Person/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.mjs +1133 -874
- package/dist/utils/graph.d.ts +25 -2
- package/dist/utils/graph.d.ts.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -146,7 +146,8 @@ The README keeps component examples intentionally short so it stays useful as ne
|
|
|
146
146
|
|
|
147
147
|
| Component or hook | Purpose | Where to start |
|
|
148
148
|
| --- | --- | --- |
|
|
149
|
-
| `Person` | Render a Microsoft Graph user with Fluent UI `Persona`, profile photo, presence, and configurable text lines. | Storybook examples for profile views, line rendering, direct data, and presence. |
|
|
149
|
+
| `Person` | Render a Microsoft Graph user with Fluent UI `Persona`, profile photo, presence, and configurable text lines. Set `personCardInteraction` to `"hover"` or `"click"` to reveal a contact details card. | Storybook examples for profile views, line rendering, direct data, and presence. |
|
|
150
|
+
| `PersonCard` | Standalone contact details card with profile fields and quick actions (email, Teams chat, call). Rendered automatically by `Person` when `personCardInteraction` is enabled, or used directly with resolved `PersonDetails`. | Storybook person-card hover and click examples. |
|
|
150
151
|
| `People` | Render compact avatar groups from direct data, explicit user IDs, group membership, or directory defaults. | Storybook examples for avatar layouts, group lookups, direct data, and overflow behavior. |
|
|
151
152
|
| `PeoplePicker` | Search, select, exclude, and manage people using Fluent UI `TagPicker`. | Storybook examples for default selections, exclusions, limits, and controlled selection. |
|
|
152
153
|
| `usePersonData` | Resolve person data for custom UI. | Use when the built-in `Person` layout is not enough. |
|
|
@@ -168,6 +169,7 @@ Request the smallest set of Microsoft Graph delegated scopes needed by the featu
|
|
|
168
169
|
| `PeoplePicker` focus suggestions | `User.ReadBasic.All` | Uses the initial `/users` directory list shown before typing. |
|
|
169
170
|
| Presence | `Presence.Read` | UI still renders without presence if unavailable. |
|
|
170
171
|
| Profile photo | `User.Read` | Falls back to initials if no photo is available. |
|
|
172
|
+
| `Person` card details (`personCardInteraction`) | `User.Read` for `userId="me"`, otherwise `User.ReadBasic.All` | Surfaces extra profile fields (`jobTitle`, `department`, `officeLocation`, `mobilePhone`, `businessPhones`). Add `Presence.Read` for the card's presence badge. |
|
|
171
173
|
|
|
172
174
|
## Examples and Documentation
|
|
173
175
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"People.d.ts","sourceRoot":"","sources":["../../../src/components/People/People.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAoB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"People.d.ts","sourceRoot":"","sources":["../../../src/components/People/People.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAoB,MAAM,OAAO,CAAC;AAUzC,OAAO,EAAgB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA+C3D;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAoExC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Person.d.ts","sourceRoot":"","sources":["../../../src/components/Person/Person.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"Person.d.ts","sourceRoot":"","sources":["../../../src/components/Person/Person.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA+C,MAAM,OAAO,CAAC;AAapE,OAAO,EAA8D,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAiLrH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAgWxC,CAAC"}
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
import type { PersonaProps } from '@fluentui/react-components';
|
|
5
5
|
import type { ReactElement } from 'react';
|
|
6
6
|
export type PersonView = 'avatar' | 'oneline' | 'twolines' | 'threelines' | 'fourlines';
|
|
7
|
+
/**
|
|
8
|
+
* Interaction mode used to open a person details card.
|
|
9
|
+
*/
|
|
10
|
+
export type PersonCardInteraction = 'none' | 'hover' | 'click';
|
|
7
11
|
/**
|
|
8
12
|
* Triggers reported by the {@link PersonProps.onUpdated} callback.
|
|
9
13
|
*/
|
|
@@ -62,6 +66,14 @@ export interface PersonDetails {
|
|
|
62
66
|
* The person's email address (alias for some data sources).
|
|
63
67
|
*/
|
|
64
68
|
email?: string | null;
|
|
69
|
+
/**
|
|
70
|
+
* The person's mobile phone number.
|
|
71
|
+
*/
|
|
72
|
+
mobilePhone?: string | null;
|
|
73
|
+
/**
|
|
74
|
+
* The person's business phone numbers.
|
|
75
|
+
*/
|
|
76
|
+
businessPhones?: string[] | null;
|
|
65
77
|
/**
|
|
66
78
|
* Current presence activity (for example, "InAMeeting" or "Presenting"), when available.
|
|
67
79
|
*/
|
|
@@ -133,6 +145,14 @@ export interface PersonProps extends PersonaProps {
|
|
|
133
145
|
personDetails?: PersonDetails;
|
|
134
146
|
view?: PersonView;
|
|
135
147
|
showPresence?: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Determines whether a details card is shown when users interact with the person.
|
|
150
|
+
*
|
|
151
|
+
* - `none`: disables the details card.
|
|
152
|
+
* - `hover`: opens on hover with a short delay.
|
|
153
|
+
* - `click`: toggles on click or Enter/Space.
|
|
154
|
+
*/
|
|
155
|
+
personCardInteraction?: PersonCardInteraction;
|
|
136
156
|
/**
|
|
137
157
|
* Mapping for the first text line.
|
|
138
158
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Person.types.d.ts","sourceRoot":"","sources":["../../../src/components/Person/Person.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAE/F;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;;OAIG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,uBAAuB,KAAK,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC;AAEpG;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,EAAE,mBAAmB,CAAC;IAC7B;;OAEG;IACH,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAE/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,aAAa,CAAC,EAAE,aAAa,CAAC;IAG9B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Person.types.d.ts","sourceRoot":"","sources":["../../../src/components/Person/Person.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PersonDetails } from './Person.types';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the {@link PersonCard} component.
|
|
5
|
+
*/
|
|
6
|
+
export interface PersonCardProps {
|
|
7
|
+
/**
|
|
8
|
+
* Resolved person details displayed by the card.
|
|
9
|
+
*/
|
|
10
|
+
person: PersonDetails;
|
|
11
|
+
/**
|
|
12
|
+
* Display name shown in the card header.
|
|
13
|
+
*/
|
|
14
|
+
displayName: string;
|
|
15
|
+
/**
|
|
16
|
+
* Invoked when users press Escape while focused in the card.
|
|
17
|
+
*/
|
|
18
|
+
onEscape?: () => void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Standalone contact details card for a Microsoft Graph person.
|
|
22
|
+
*
|
|
23
|
+
* Renders profile information (name, title, department, office location) alongside quick
|
|
24
|
+
* contact actions (email, Teams chat, call) derived from the supplied {@link PersonDetails}.
|
|
25
|
+
* `Person` renders this card automatically when `personCardInteraction` is enabled, and it can
|
|
26
|
+
* also be used directly with pre-resolved person data.
|
|
27
|
+
*
|
|
28
|
+
* @param props - The {@link PersonCardProps} describing the person and card behavior.
|
|
29
|
+
* @returns The rendered person card element.
|
|
30
|
+
*/
|
|
31
|
+
export declare const PersonCard: React.FC<PersonCardProps>;
|
|
32
|
+
//# sourceMappingURL=PersonCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersonCard.d.ts","sourceRoot":"","sources":["../../../src/components/Person/PersonCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA6B/C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AA8CD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsHhD,CAAC"}
|
|
@@ -2,5 +2,7 @@
|
|
|
2
2
|
* Person component exports
|
|
3
3
|
*/
|
|
4
4
|
export { Person } from './Person';
|
|
5
|
-
export
|
|
5
|
+
export { PersonCard } from './PersonCard';
|
|
6
|
+
export type { PersonCardProps } from './PersonCard';
|
|
7
|
+
export type { PersonCardInteraction, PersonLineRenderContext, PersonLineRenderer, PersonProps, PersonUpdatedEvent, PersonUpdateTrigger, } from './Person.types';
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Person/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Person/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`react`),l=s(c,1);c=s(c);let u=require(`@fluentui/react-components`),d=require(`react/jsx-runtime`),f=require(`@microsoft/microsoft-graph-client`);var p=`graph-toolkit-person-cache`,m=`personData`,h=1,g={enabled:!0,userTtlMs:3600*1e3,photoTtlMs:3600*1e3,presenceTtlMs:300*1e3},_=()=>typeof window<`u`&&window.indexedDB!==void 0,v=e=>new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)}),y=()=>new Promise((e,t)=>{if(!_()){t(Error(`IndexedDB unavailable`));return}let n=window.indexedDB.open(p,h);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(m)||e.createObjectStore(m)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)}),b=e=>`person:${e.trim().toLowerCase()}`,x=(e,t)=>e?Date.now()-e<t:!1,S=async e=>{if(!_())return null;let t=null;try{return t=await y(),await v(t.transaction(m,`readonly`).objectStore(m).get(e))??null}catch{return null}finally{t?.close()}},C=async(e,t)=>{if(!_())return;let n=null;try{n=await y(),await v(n.transaction(m,`readwrite`).objectStore(m).put(t,e))}catch{return}finally{n?.close()}},w=(0,c.createContext)({provider:null,state:`Loading`,personCacheOptions:g}),T=({provider:e,children:t,personCacheOptions:n})=>{let r=(0,c.useCallback)(()=>e?.getState?.()??`Loading`,[e]),i=(0,c.useSyncExternalStore)((0,c.useCallback)(t=>(e.onStateChanged?.(t),()=>{let n=e;typeof n.removeStateChangedHandler==`function`&&n.removeStateChangedHandler(t)}),[e]),r,r),a=(0,c.useMemo)(()=>({...g,...n??{}}),[n]),o=(0,c.useMemo)(()=>({provider:e,state:i,personCacheOptions:a}),[e,i,a]);return(0,d.jsx)(w.Provider,{value:o,children:t})},E=()=>{let{provider:e}=(0,c.useContext)(w);return e},D=()=>{let{state:e}=(0,c.useContext)(w);return e},O=()=>{let{personCacheOptions:e}=(0,c.useContext)(w);return e},k=e=>f.Client.init({authProvider:async t=>{try{t(null,await e.getAccessToken())}catch(e){t(e,null)}}}),A=e=>{if(!e)return``;let t=e.trim().split(` `);return t.length===1?t[0].substring(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()},j=async e=>{if(!e)return null;if(typeof e==`string`)return e;let t=e instanceof Blob?e:e instanceof ArrayBuffer?new Blob([e]):null;return t?new Promise((e,n)=>{let r=new FileReader;r.onloadend=()=>e(typeof r.result==`string`?r.result:null),r.onerror=()=>n(r.error),r.readAsDataURL(t)}):null},M=e=>encodeURIComponent(e.trim()),N=()=>{let e=E(),t=D();return(0,c.useMemo)(()=>!e||t!==`SignedIn`?null:k(e),[e,t])},P=e=>typeof e==`object`&&!!e&&typeof e.getPersonData==`function`,F=e=>typeof e==`object`&&!!e&&typeof e.searchPeople==`function`,I=[`id`,`displayName`,`jobTitle`,`mail`,`department`,`officeLocation`,`userPrincipalName`],L=e=>{let t=N(),n=E(),r=D(),i=O(),{userId:a,userPrincipalName:o,fetchPresence:s=!1,fetchPhoto:l=!0,selectFields:u}=e,d=[...new Set([...I,...(u??[]).map(e=>e.trim()).filter(e=>e.length>0&&/^[a-zA-Z0-9_./]+$/.test(e))])].join(`,`),[f,p]=(0,c.useState)({user:null,presence:null,photoUrl:null,loading:!0,error:null});return(0,c.useEffect)(()=>{let e=!1,c=d.split(`,`).filter(e=>!I.includes(e));return(async()=>{let u=a||o;if(P(n)){try{let t=await n.getPersonData({identifier:u,fetchPresence:s,fetchPhoto:l,selectFields:c.length>0?c:void 0});e||p({user:t.user,presence:t.presence,photoUrl:t.photoUrl,loading:!1,error:null})}catch(t){e||p({user:null,presence:null,photoUrl:null,loading:!1,error:t})}return}if(r!==`SignedIn`){e||p({user:null,presence:null,photoUrl:null,loading:!1,error:r===`SignedOut`?null:Error(`Provider not signed in`)});return}if(!t){e||p(e=>({...e,loading:!0}));return}if(!u){e||p({user:null,presence:null,photoUrl:null,loading:!1,error:null});return}let f=b(u),m=i.enabled?await S(f):null,h=!!(m?.user&&x(m.userCachedAt,i.userTtlMs)),g=!!(m?.presenceCachedAt&&x(m.presenceCachedAt,i.presenceTtlMs)),_=!!(m?.photoCachedAt&&x(m.photoCachedAt,i.photoTtlMs));if(h&&(!s||g)&&(!l||_)){e||p({user:m?.user??null,presence:s?m?.presence??null:null,photoUrl:l?m?.photoUrl??null:null,loading:!1,error:null});return}try{p(e=>({...e,loading:!0,error:null}));let n=u.toLowerCase()===`me`,r=Date.now(),a=!1,o=!1,c=!1,v=h?m?.user??null:null;if(v||(v=await t.api(n?`/me`:`/users/${M(u)}`).select(d).get(),a=!0),e)return;let y=null,b=null;if(s){if(g)y=m?.presence??null;else if(v?.id){try{y=await t.api(n?`/me/presence`:`/users/${M(v.id)}/presence`).get()}catch(e){console.warn(`Failed to fetch presence:`,e)}o=!0}}if(l){if(_)b=m?.photoUrl??null;else if(v?.id){try{b=await j(await t.api(n?`/me/photo/$value`:`/users/${M(v.id)}/photo/$value`).get())}catch(e){console.warn(`Failed to fetch photo:`,e)}c=!0}}let x={...m??{}};a&&v&&(x.user=v,x.userCachedAt=r),s&&(o||g)&&(x.presence=o?y:m?.presence,x.presenceCachedAt=o?r:m?.presenceCachedAt),l&&(c||_)&&(x.photoUrl=c?b:m?.photoUrl,x.photoCachedAt=c?r:m?.photoCachedAt),i.enabled&&(a||o||c)&&x.user&&await C(f,x),e||p({user:v,presence:y,photoUrl:b,loading:!1,error:null})}catch(t){e||p({user:null,presence:null,photoUrl:null,loading:!1,error:t})}})(),()=>{e=!0}},[t,n,r,a,o,s,l,i,d]),f},ee=e=>{switch(e?.toLowerCase()){case`available`:case`availableidle`:return`available`;case`away`:case`berightback`:return`away`;case`busy`:case`busyidle`:case`donotdisturb`:return`busy`;default:return`offline`}},te={avatar:[void 0,void 0,void 0,void 0],oneline:[`displayName`,void 0,void 0,void 0],twolines:[`displayName`,`jobTitle`,void 0,void 0],threelines:[`displayName`,`jobTitle`,`department`,void 0],fourlines:[`displayName`,`jobTitle`,`department`,`officeLocation,mail`]},ne=new Set([`presenceActivity`,`presenceAvailability`]),re=new Set([`email`,...ne]),ie=16,ae=12,oe={1:`8rem`,2:`6rem`,3:`5rem`,4:`7rem`},se=e=>e?.split(`,`).map(e=>e.trim()).filter(Boolean)??[],R=e=>{if(e!=null){if(typeof e==`string`)return e||void 0;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(Array.isArray(e)){let t=e.map(e=>R(e)).filter(e=>!!e);return t.length>0?t.join(`, `):void 0}}},ce=e=>R(e.mail)??R(e.email)??R(e.userPrincipalName),z=(e,t)=>{let n=se(t);for(let t of n)switch(t){case`mail`:case`email`:{let t=ce(e);if(t)return t;break}default:{let n=R(e[t]);if(n)return n}}},le=(e,t,n)=>({line:e,person:t,text:n}),B=(e,t,n,r)=>r?r(le(e,t,n)):n,V=e=>(0,d.jsx)(u.Skeleton,{children:(0,d.jsx)(u.SkeletonItem,{size:e===1?ie:ae,style:{width:oe[e],maxWidth:`100%`}})}),H=(e,t,n)=>n??te[e][t-1],ue=e=>{switch(e){case`avatar`:return 0;case`oneline`:return 1;case`twolines`:return 2;case`threelines`:return 3;default:return 4}},U=(e,t)=>t<=ue(e),de=e=>[...new Set(e.flatMap(e=>se(e)))].filter(e=>!re.has(e)),fe=({userId:e,userPrincipalName:t,email:n,personDetails:r,view:i=`oneline`,showPresence:a=!1,line1Property:o,line2Property:s,line3Property:l,line4Property:f,renderLine1:p,renderLine2:m,renderLine3:h,renderLine4:g,fetchImage:_=!0,onUpdated:v,...y})=>{let b=i===`avatar`,x=U(i,1)?H(i,1,o):void 0,S=U(i,2)?H(i,2,s):void 0,C=U(i,3)?H(i,3,l):void 0,w=U(i,4)?H(i,4,f):void 0,T=[x,S,C,w].some(e=>se(e).some(e=>ne.has(e))),{user:E,presence:D,photoUrl:O,loading:k,error:j}=L({userId:r?void 0:e||t||n,fetchPresence:a||T,fetchPhoto:_,selectFields:de([x,S,C,w])}),M=r||E,N=M||null,P=(0,c.useMemo)(()=>N?{...N,email:n??R(N.email),presenceActivity:D?.activity??R(N.presenceActivity),presenceAvailability:D?.availability??R(N.presenceAvailability)}:null,[n,D?.activity,D?.availability,N]);if((0,c.useEffect)(()=>{if(!(!v||k)){if(r&&P){v({trigger:`personDetailsChanged`,person:P,loading:!1,error:j});return}if(j){v({trigger:`personLoadFailed`,person:null,loading:!1,error:j});return}P&&v({trigger:`personLoaded`,person:P,loading:!1,error:null})}},[j,k,v,r,P]),k)return(0,d.jsx)(u.Persona,{...y,name:b?void 0:y.name,primaryText:b||!U(i,1)?void 0:y.primaryText===void 0?V(1):y.primaryText,secondaryText:b||!U(i,2)?void 0:y.secondaryText===void 0?V(2):y.secondaryText,tertiaryText:b||!U(i,3)?void 0:y.tertiaryText===void 0?V(3):y.tertiaryText,quaternaryText:b||!U(i,4)?void 0:y.quaternaryText===void 0?V(4):y.quaternaryText});if(!M)return null;let F=P??N,I=M.displayName||`Unknown User`,te=A(I),re=z(F,x),ie=z(F,S),ae=z(F,C),oe=z(F,w),ce=U(i,1)?x&&re!==I||p?B(1,F,re,p):y.primaryText:void 0,le=U(i,2)?B(2,F,ie,m):void 0,ue=U(i,3)?B(3,F,ae,h):void 0,fe=U(i,4)?B(4,F,oe,g):void 0,W=a&&D?{status:ee(D.availability)}:void 0,G=y.presence??W,K=(typeof F.photoUrl==`string`&&F.photoUrl.length>0?F.photoUrl:void 0)??O??void 0,pe=y.avatar??{image:K?{src:K}:void 0,initials:K?void 0:te,name:I},me=b?void 0:y.name??I,q=b?void 0:y.primaryText??ce,he=b?void 0:y.secondaryText??le,ge=b?void 0:y.tertiaryText??ue,_e=b?void 0:y.quaternaryText??fe;return(0,d.jsx)(u.Persona,{...y,name:me,primaryText:q,avatar:pe,presence:G,secondaryText:he,tertiaryText:ge,quaternaryText:_e})},W=[`id`,`displayName`,`mail`,`userPrincipalName`,`jobTitle`,`department`],G=new Set(W),K=10,pe=/^[a-zA-Z0-9_./]+$/,me=`asc`,q=e=>({id:e.id??e.userPrincipalName??e.mail??`unknown-user`,givenName:e.givenName??null,surname:e.surname??null,displayName:e.displayName??null,mail:e.mail??null,userPrincipalName:e.userPrincipalName??null,jobTitle:e.jobTitle??null,department:e.department??null}),he=(e,t)=>({...e,presenceActivity:t?.activity??null,presenceAvailability:t?.availability??null}),ge=e=>e.id??e.userPrincipalName??e.mail??void 0,_e=e=>e.userPrincipalName??e.mail??e.id??void 0,ve=e=>Array.from(new Set((e??[]).map(e=>e.trim()).filter(Boolean))),ye=e=>Array.from(new Set((e??[]).map(e=>e.trim()).filter(e=>e.length>0&&pe.test(e)))),be=(e,t)=>{let n=[...W,...ye(e)];return(t===`givenName`||t===`surname`)&&n.push(t),Array.from(new Set(n))},xe=e=>{let t=e.filter(e=>!G.has(e));return t.length>0?t:void 0},Se=(e,t)=>{let n=e[t];return typeof n==`string`&&n.trim().length>0?n:e.displayName??e.mail??e.userPrincipalName??e.id},Ce=(e,t,n=me)=>{if(!t)return e;let r=new Intl.Collator(void 0,{sensitivity:`base`,numeric:!0}),i=n===`desc`?-1:1;return e.map((e,t)=>({person:e,index:t})).sort((e,n)=>{let a=r.compare(Se(e.person,t),Se(n.person,t));return a===0?e.index-n.index:a*i}).map(e=>e.person)},we=e=>{let t=N(),n=E(),r=D(),i=JSON.stringify(e?.people??null),a=JSON.stringify(ve(e?.userIds)),o=JSON.stringify(ye(e?.selectFields).filter(e=>!G.has(e))),s=(0,c.useMemo)(()=>{if(i!==`null`)return JSON.parse(i)},[i]),l=(0,c.useMemo)(()=>JSON.parse(a),[a]),u=(0,c.useMemo)(()=>JSON.parse(o),[o]),d=(0,c.useMemo)(()=>be(u,e?.sortBy),[u,e?.sortBy]),f=(0,c.useMemo)(()=>xe(d),[d]),p=(0,c.useMemo)(()=>e?.groupId?.trim(),[e?.groupId]),m=e?.maxPeople??K,h=e?.showPresence??!1,g=e?.sortBy,_=e?.sortDirection??me,[v,y]=(0,c.useState)({people:[],loading:!0,error:null});return(0,c.useEffect)(()=>{let e=!1,i=async e=>{if(P(n)){let t=await n.getPersonData({identifier:e,fetchPresence:h,fetchPhoto:!0,selectFields:f});return t.user?{...q(t.user),photoUrl:t.photoUrl,presenceActivity:t.presence?.activity??null,presenceAvailability:t.presence?.availability??null}:null}if(r!==`SignedIn`||!t)return null;let i=e.toLowerCase()===`me`,a=await t.api(i?`/me`:`/users/${M(e)}`).select(d.join(`,`)).get(),o=null,s=null;if(h&&a.id)try{o=await t.api(i?`/me/presence`:`/users/${M(a.id)}/presence`).get()}catch{o=null}if(a.id)try{s=await j(await t.api(i?`/me/photo/$value`:`/users/${M(a.id)}/photo/$value`).get())}catch{s=null}return{...q(a),photoUrl:s,presenceActivity:o?.activity??null,presenceAvailability:o?.availability??null}},a=async(e,t=ge)=>(await Promise.all(e.map(async e=>{let n=t(e);if(!n)return h?he(e,null):e;let r=h&&!e.presenceAvailability&&!e.presenceActivity,a=!e.photoUrl;if(!r&&!a)return e;try{let t=await i(n);return t?{...e,photoUrl:e.photoUrl??t.photoUrl,presenceActivity:e.presenceActivity??t.presenceActivity,presenceAvailability:e.presenceAvailability??t.presenceAvailability}:e}catch{return e}}))).filter(e=>!!e.id);return(async()=>{if(e||y(e=>({...e,loading:!0,error:null})),s){let t=h||s.some(e=>!e.photoUrl)?await a(s,_e):s;e||y({people:Ce(t,g,_),loading:!1,error:null});return}if(l.length>0){let t=(await Promise.allSettled(l.map(e=>i(e)))).flatMap(e=>e.status===`fulfilled`&&e.value?[e.value]:[]);e||y({people:Ce(t,g,_),loading:!1,error:null});return}if(!F(n)&&r!==`SignedIn`){e||y({people:[],loading:!1,error:null});return}try{let i=[];p?t&&r===`SignedIn`&&(i=((await t.api(`/groups/${M(p)}/members/microsoft.graph.user`).select(d.join(`,`)).top(m).get()).value??[]).map(q)):F(n)?i=(await n.searchPeople(``,m)).map(e=>({...e,presenceActivity:null,presenceAvailability:null})):t&&r===`SignedIn`&&(i=((await t.api(`/users`).select(d.join(`,`)).top(m).get()).value??[]).map(q)),(h||i.some(e=>!e.photoUrl))&&(i=await a(i)),e||y({people:Ce(i,g,_),loading:!1,error:null})}catch(t){e||y({people:[],loading:!1,error:t})}})(),()=>{e=!0}},[s,i,t,p,m,n,f,r,d,h,g,_,l]),v},Te=3,Ee=10,De=e=>{switch(e?.toLowerCase()){case`available`:case`availableidle`:return`available`;case`away`:case`berightback`:return`away`;case`busy`:case`busyidle`:case`donotdisturb`:return`busy`;case`offline`:case`presenceunknown`:return`offline`;default:return}},Oe=e=>e.displayName??e.mail??e.userPrincipalName??e.id,ke=e=>{let t=Oe(e),n=De(e.presenceAvailability);return(0,d.jsx)(u.AvatarGroupItem,{name:t,avatar:{name:t,image:e.photoUrl?{src:e.photoUrl}:void 0,badge:n?{status:n}:void 0,color:`colorful`}},e.id)},Ae=({people:e,userIds:t,selectFields:n,sortBy:r,sortDirection:i,groupId:a,showMax:o=Te,showPresence:s=!1,layout:l=`stack`,size:f=32,onUpdated:p,...m})=>{let{people:h,loading:g,error:_}=we({people:e,userIds:t,selectFields:n,sortBy:r,sortDirection:i,groupId:a,maxPeople:Math.max(Ee,o+5),showPresence:s});if((0,c.useEffect)(()=>{if(!p||g)return;let t=`peopleLoaded`;_?t=`peopleLoadFailed`:e&&(t=`peopleChanged`),p({trigger:t,people:h,loading:!1,error:_})},[_,g,p,e,h]),g)return(0,d.jsx)(u.Spinner,{size:`tiny`});if(h.length===0)return null;let v=Math.max(0,o),y=h.slice(0,v),b=h.slice(v);return(0,d.jsxs)(u.AvatarGroup,{layout:l,size:f,...m,children:[y.map(ke),b.length>0&&(0,d.jsx)(u.AvatarGroupPopover,{count:b.length,children:b.map(ke)})]})},je=typeof window>`u`?global:window,Me=`@griffel/`;function Ne(e,t){return je[Symbol.for(Me+e)]||(je[Symbol.for(Me+e)]=t),je[Symbol.for(Me+e)]}var Pe=Ne(`DEBUG_RESET_CLASSES`,{}),J=Ne(`DEFINITION_LOOKUP_TABLE`,{}),Y=`data-make-styles-bucket`,Fe=`data-priority`,Ie=process.env.NODE_ENV===`production`?10:18;function Le(e){for(var t=0,n,r=0,i=e.length;i>=4;++r,i-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}function Re(e){let t=e.length;if(t===7)return e;for(let n=t;n<7;n++)e+=`0`;return e}function ze(e,t,n=[]){return process.env.NODE_ENV===`production`?`___`+Re(Le(e+t)):`___`+Re(Le(e+t))+`_`+Re(Le(n.join(``)))}function Be(e,t){let n=``,r=``;for(let i in e){let a=e[i];if(a===0){r+=i+` `;continue}let o=Array.isArray(a),s=t===`rtl`?(o?a[1]:a)+` `:(o?a[0]:a)+` `;n+=s,r+=s}return[n.slice(0,-1),r.slice(0,-1)]}function Ve(e,t){let n={};for(let r in e){let[i,a]=Be(e[r],t);if(a===``){n[r]=``;continue}let o=ze(a,t),s=o+(i===``?``:` `+i);J[o]=[e[r],t],n[r]=s}return n}var X={};function He(){let e=null,t=``,n=``,r=Array(arguments.length),i=``;for(let e=0;e<arguments.length;e++){let a=arguments[e];if(typeof a==`string`&&a!==``){let o=a.indexOf(`___`);if(o===-1)process.env.NODE_ENV!==`production`&&a.split(` `).forEach(e=>{e.startsWith(`r`)&&Pe[e]&&(i?console.error(`mergeClasses(): a passed string contains multiple classes produced by makeResetStyles (${a} & ${t}, this will lead to non-deterministic behavior. Learn more:https://griffel.js.org/react/api/make-reset-styles#limitations
|
|
2
|
-
Source string: ${a}`):i=e)}),t+=a+` `;else{let i=a.substr(o,
|
|
3
|
-
`));return e===void 0?void 0:Qe(e)?.loc}function lt(e){for(let t=e.length-1;t>=0;--t)if(e[t].includes(`at getSourceURLfromError`))return e[t+3]}function ut(e){if(!Array.isArray(e))return[e];if(process.env.NODE_ENV!==`production`&&e.length>2)throw Error(`CSS Bucket contains an entry with greater than 2 items, please report this to https://github.com/microsoft/griffel/issues`);return e}function dt(e,t,n,r){let i=[];if(r[Y]=t,r[Fe]=String(n),e)for(let t in r)e.setAttribute(t,r[t]);function a(t){return e?.sheet?e.sheet.insertRule(t,e.sheet.cssRules.length):i.push(t)}return{elementAttributes:r,insertRule:a,element:e,bucketName:t,cssRules(){return e?.sheet?Array.from(e.sheet.cssRules).map(e=>e.cssText):i}}}var ft=[`r`,`d`,`l`,`v`,`w`,`f`,`i`,`h`,`a`,`s`,`k`,`t`,`m`,`c`].reduce((e,t,n)=>(e[t]=n,e),{});function pt(e,t,n){return(e===`m`?e+t:e)+n}function mt(e,t,n,r,i={}){let a=e===`m`,o=i.m??`0`,s=i.p??0,c=pt(e,o,s);if(!r.stylesheets[c]){let l=t&&t.createElement(`style`),u=dt(l,e,s,{...r.styleElementAttributes,...a&&{media:o}});r.stylesheets[c]=u,t?.head&&l&&t.head.insertBefore(l,gt(t,n,e,r,i))}return r.stylesheets[c]}function ht(e,t,n){return t+(n.m??``)===e.getAttribute(Y)+(e.media??``)}function gt(e,t,n,r,i={}){let a=ft[n],o=i.m??``,s=i.p??0,c=e=>a-ft[e.getAttribute(Y)],l=e.head.querySelectorAll(`[${Y}]`);if(n===`m`){let t=e.head.querySelectorAll(`[${Y}="${n}"]`);t.length&&(l=t,c=e=>r.compareMediaQueries(o,e.media))}let u=e=>ht(e,n,i)?s-Number(e.getAttribute(`data-priority`)):c(e),d=l.length,f=d-1;for(;f>=0;){let e=l.item(f);if(u(e)>0)return e.nextSibling;f--}return d>0?l.item(0):t?t.nextSibling:null}var _t=RegExp(`:(${[`-moz-placeholder`,`-moz-focus-inner`,`-moz-focusring`,`-ms-input-placeholder`,`-moz-read-write`,`-moz-read-only`].join(`|`)})`);function vt(e,t){try{e.insertRule(t)}catch(e){process.env.NODE_ENV!==`production`&&!_t.test(t)&&console.error(`There was a problem inserting the following rule: "${t}"`,e)}}var yt=0,bt=(e,t)=>e<t?-1:+(e>t);function xt(e=typeof document>`u`?void 0:document,t={}){let{classNameHashSalt:n,unstable_filterCSSRule:r,insertionPoint:i,styleElementAttributes:a,compareMediaQueries:o=bt}=t,s={classNameHashSalt:n,insertionCache:{},stylesheets:{},styleElementAttributes:Object.freeze(a),compareMediaQueries:o,id:`d${yt++}`,insertCSSRules(t){for(let n in t){let a=t[n];for(let t=0,o=a.length;t<o;t++){let[o,c]=ut(a[t]),l=mt(n,e,i||null,s,c);s.insertionCache[o]||(s.insertionCache[o]=n,process.env.NODE_ENV!==`production`&&Q&&Z.addCSSRule(o),r?r(o)&&vt(l,o):vt(l,o))}}}};return e&&process.env.NODE_ENV!==`production`&&Q&&Xe(e),s}var St=()=>{let e={};return function(t,n){e[t.id]===void 0&&(t.insertCSSRules(n),e[t.id]=!0)}};function Ct(e,t,n=St){let r=n(),i=null,a=null,o;process.env.NODE_ENV!==`production`&&Q&&(o=ct());function s(n){let{dir:s,renderer:c}=n,l=s===`ltr`;l?i===null&&(i=Ve(e,s)):a===null&&(a=Ve(e,s)),r(c,t);let u=l?i:a;return process.env.NODE_ENV!==`production`&&Q&&Z.addSequenceDetails(u,o),u}return s}function wt(){return typeof window<`u`&&!!(window.document&&window.document.createElement)}var Tt=l.default.useInsertionEffect?l.default.useInsertionEffect:void 0,Et=()=>{let e={};return function(t,n){if(Tt&&wt()){Tt(()=>{t.insertCSSRules(n)},[t,n]);return}e[t.id]===void 0&&(t.insertCSSRules(n),e[t.id]=!0)}},Dt=(0,l.createContext)(xt());function Ot(){return(0,l.useContext)(Dt)}var kt=(0,l.createContext)(`ltr`);function At(){return(0,l.useContext)(kt)}function jt(e,t){let n=Ct(e,t,Et);return function(){return n({dir:At(),renderer:Ot()})}}var Mt=c.createContext(void 0),Nt={};Mt.Provider;var Pt=()=>c.useContext(Mt)??Nt,Ft=jt({root:{mc9l5x:`f1w7gpdv`,Bg96gwp:`fez10in`},rtl:{Bz10aip:`f13rod7r`}},{d:[`.f1w7gpdv{display:inline;}`,`.fez10in{line-height:0;}`,`.f13rod7r{transform:scaleX(-1);}`]}),It=(e,t)=>{let{filled:n,title:r,primaryFill:i=`currentColor`,...a}=e,o={...a,fill:i},s=Ft(),c=Pt();return o.className=He(s.root,t?.flipInRtl&&c?.textDirection===`rtl`&&s.rtl,o.className),r&&(o[`aria-label`]=r),!o[`aria-label`]&&!o[`aria-labelledby`]?o[`aria-hidden`]=!0:o.role=`img`,o},Lt=jt({root:{B8gzw0y:`f1dd5bof`}},{m:[[`@media (forced-colors: active){.f1dd5bof{forced-color-adjust:auto;}}`,{m:`(forced-colors: active)`}]]}),Rt=`fui-Icon`,zt=(e,t)=>{let[n,r,...i]=e;return c.createElement(n,{...r,key:t},...i.map(zt))},Bt=((e,t,n,r)=>{let i=t===`1em`?`20`:t,a=typeof n!=`string`&&(r?.color||Array.isArray(n[0]))?n.map(zt):void 0,o=c.forwardRef((e,o)=>{let s=Lt(),l=It(e,{flipInRtl:r?.flipInRtl}),u={...l,className:He(Rt,l.className,s.root),ref:o,width:t,height:t,viewBox:`0 0 ${i} ${i}`,xmlns:`http://www.w3.org/2000/svg`};return typeof n==`string`?c.createElement(`svg`,{...u,dangerouslySetInnerHTML:{__html:n}}):a?c.createElement(`svg`,u,...a):c.createElement(`svg`,u,...n.map(e=>c.createElement(`path`,{d:e,fill:u.fill})))});return o.displayName=e,o})(`SearchRegular`,`1em`,[`M13.73 14.44a6.5 6.5 0 1 1 .7-.7l3.42 3.4a.5.5 0 0 1-.63.77l-.07-.06-3.42-3.41Zm-.71-.71A5.54 5.54 0 0 0 15 9.5a5.5 5.5 0 1 0-1.98 4.23Z`]),Vt=`id,displayName,mail,userPrincipalName,jobTitle,department`,Ht=[],Ut=e=>e.trim().replace(/"/g,``).trim(),Wt=(e,t)=>{let n=N(),r=E(),i=D(),a=t?.minChars??1,o=t?.maxResults??10,s=t?.loadInitialResults??!1,[l,u]=(0,c.useState)([]),[d,f]=(0,c.useState)(!1),p=Ut(e),m=s&&e.length===0,h=!m&&(!p||p.length<a);return(0,c.useEffect)(()=>{if(h)return;let e=!1,t=async()=>{f(!0);try{if(F(r)){let t=await r.searchPeople(m?``:p,o);e||u(t)}else if(i===`SignedIn`&&n){let t;t=m?(await n.api(`/users`).select(Vt).top(o).get()).value??[]:(await n.api(`/users`).header(`ConsistencyLevel`,`eventual`).search(`"displayName:${p}" OR "mail:${p}" OR "userPrincipalName:${p}"`).select(Vt).top(o).get()).value??[],e||u(t)}else e||u([])}catch{e||u([])}finally{e||f(!1)}};if(m)return t(),()=>{e=!0,f(!1)};let a=setTimeout(()=>{t()},300);return()=>{e=!0,clearTimeout(a),f(!1)}},[e,n,r,i,a,o,s,p,m,h]),{results:h?Ht:l,loading:h?!1:d}},Gt=`__no_results__`,Kt=50,qt=(e,t,n,r)=>e.filter(e=>!t.includes(e.id)&&!n.includes(e.id)).slice(0,r),Jt=e=>e.displayName||e.mail||e.userPrincipalName||e.id,Yt=e=>e.mail??e.userPrincipalName??void 0,Xt=({person:e,size:t,photoUrl:n})=>(0,d.jsx)(u.Avatar,{name:e.displayName??void 0,image:n?{src:n}:void 0,initials:n?void 0:A(e.displayName??void 0),size:t}),Zt=({person:e,size:t})=>{let{photoUrl:n}=L({userId:e.id,fetchPhoto:!0});return(0,d.jsx)(Xt,{person:e,size:t,photoUrl:n})},Qt=({person:e,size:t})=>e.photoUrl?(0,d.jsx)(Xt,{person:e,size:t,photoUrl:e.photoUrl}):(0,d.jsx)(Zt,{person:e,size:t}),$t=({selectedPeople:e,defaultSelectedPeople:t,onSelectionChange:n,placeholder:r=`Search for people...`,maxPeople:i,searchMinChars:a=1,maxSearchResults:o=10,excludeUserIds:s=[],appearance:l,size:f,disabled:p,onUpdated:m})=>{let h=e!==void 0,[g,_]=(0,c.useState)(t??[]),v=h?e:g,[y,b]=(0,c.useState)(``),[x,S]=(0,c.useState)(!1),C=(0,c.useMemo)(()=>Array.from(new Set(s)),[s]),{results:w,loading:T}=Wt(y,{minChars:a,maxResults:Math.min(o+C.length,Kt),loadInitialResults:x}),E=(0,c.useMemo)(()=>{let e=new Map;for(let t of v)e.set(t.id,t);for(let t of w)e.set(t.id,t);return e},[v,w]),D=(0,c.useMemo)(()=>v.map(e=>e.id),[v]),O=(0,c.useMemo)(()=>qt(w,D,C,o),[w,D,C,o]),k=(0,c.useCallback)((e,t)=>{let r=t.selectedOptions.filter(e=>e!==Gt).map(e=>E.get(e)).filter(e=>e!==void 0),i=qt(w,r.map(e=>e.id),C,o);h||_(r),n?.(r),m?.({trigger:`selectionChanged`,searchQuery:``,selectedPeople:r,searchResults:i,loading:T}),b(``)},[h,o,n,m,E,T,w,C]),A=(0,c.useCallback)(e=>{b(e.target.value)},[]),j=(0,c.useCallback)(()=>{S(!0)},[]),M=(0,c.useCallback)(()=>{S(!1)},[]),N=i!==void 0&&v.length>=i,P=(0,c.useRef)(!0);return(0,c.useEffect)(()=>{if(!m||T)return;let e=P.current&&y.length===0&&O.length===0;P.current=!1,!e&&m({trigger:`searchResultsUpdated`,searchQuery:y,selectedPeople:v,searchResults:O,loading:!1})},[v,O,m,T,y]),(0,d.jsxs)(u.TagPicker,{onOptionSelect:k,selectedOptions:D,appearance:l,size:f,disabled:p,children:[(0,d.jsxs)(u.TagPickerControl,{expandIcon:(0,d.jsx)(Bt,{}),children:[(0,d.jsx)(u.TagPickerGroup,{children:v.map(e=>(0,d.jsxs)(u.InteractionTag,{value:e.id,shape:`rounded`,children:[(0,d.jsx)(u.InteractionTagPrimary,{hasSecondaryAction:!0,media:(0,d.jsx)(Qt,{person:e,size:16}),children:Jt(e)}),(0,d.jsx)(u.InteractionTagSecondary,{"aria-label":`Remove ${Jt(e)}`})]},e.id))}),!N&&(0,d.jsx)(u.TagPickerInput,{value:y,onChange:A,onFocus:j,onBlur:M,placeholder:v.length===0?r:void 0,disabled:p})]}),(0,d.jsxs)(u.TagPickerList,{children:[y.length>=a&&!T&&O.length===0&&(0,d.jsx)(u.TagPickerOption,{value:Gt,text:`No people found`,style:{pointerEvents:`none`,color:`var(--colorNeutralForegroundDisabled)`},children:`No people found`}),O.map(e=>(0,d.jsx)(u.TagPickerOption,{value:e.id,media:(0,d.jsx)(Qt,{person:e,size:32}),secondaryContent:Yt(e),children:Jt(e)},e.id))]})]})},en=`data:image/jpeg;base64,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`,$=[{id:`00000000-0000-0000-0000-000000000001`,givenName:`Adele`,surname:`Vance`,displayName:`Adele Vance`,mail:`adelev@contoso.com`,userPrincipalName:`adelev@contoso.com`,jobTitle:`Product Manager`,department:`Marketing`},{id:`00000000-0000-0000-0000-000000000002`,givenName:`Alex`,surname:`Wilber`,displayName:`Alex Wilber`,mail:`alexw@contoso.com`,userPrincipalName:`alexw@contoso.com`,jobTitle:`Marketing Assistant`,department:`Marketing`},{id:`00000000-0000-0000-0000-000000000003`,givenName:`Diego`,surname:`Siciliani`,displayName:`Diego Siciliani`,mail:`diegosi@contoso.com`,userPrincipalName:`diegosi@contoso.com`,jobTitle:`HR Manager`,department:`Human Resources`},{id:`00000000-0000-0000-0000-000000000004`,givenName:`Grady`,surname:`Archie`,displayName:`Grady Archie`,mail:`gradya@contoso.com`,userPrincipalName:`gradya@contoso.com`,jobTitle:`Accountant`,department:`Finance`},{id:`00000000-0000-0000-0000-000000000005`,givenName:`Henrietta`,surname:`Mueller`,displayName:`Henrietta Mueller`,mail:`henriettam@contoso.com`,userPrincipalName:`henriettam@contoso.com`,jobTitle:`Graphic Designer`,department:`Creative`},{id:`00000000-0000-0000-0000-000000000006`,givenName:`Isaiah`,surname:`Langer`,displayName:`Isaiah Langer`,mail:`isaiahl@contoso.com`,userPrincipalName:`isaiahl@contoso.com`,jobTitle:`Sales Rep`,department:`Sales`},{id:`00000000-0000-0000-0000-000000000007`,givenName:`Johanna`,surname:`Lorenz`,displayName:`Johanna Lorenz`,mail:`johannal@contoso.com`,userPrincipalName:`johannal@contoso.com`,jobTitle:`Research Lead`,department:`R&D`},{id:`00000000-0000-0000-0000-000000000008`,givenName:`Joni`,surname:`Sherman`,displayName:`Joni Sherman`,mail:`jonis@contoso.com`,userPrincipalName:`jonis@contoso.com`,jobTitle:`Paralegal`,department:`Legal`},{id:`00000000-0000-0000-0000-000000000009`,givenName:`Lee`,surname:`Gu`,displayName:`Lee Gu`,mail:`leeg@contoso.com`,userPrincipalName:`leeg@contoso.com`,jobTitle:`Director`,department:`Engineering`},{id:`00000000-0000-0000-0000-000000000010`,givenName:`Megan`,surname:`Bowen`,displayName:`Megan Bowen`,mail:`meganb@contoso.com`,userPrincipalName:`meganb@contoso.com`,jobTitle:`Marketing Manager`,department:`Marketing`}].map(e=>({...e,photoUrl:en})),tn=class{state=`SignedOut`;listeners=[];constructor(e){e?.autoSignIn&&(this.state=`SignedIn`)}getAccessToken(){return this.state===`SignedIn`?Promise.resolve(`mock-token`):Promise.reject(Error(`Not signed in`))}async getPersonData(e){let t=e.identifier?.trim(),n=t?.toLowerCase(),r=n&&n!==`me`?$.find(e=>e.id.toLowerCase()===n||e.mail?.toLowerCase()===n||e.userPrincipalName?.toLowerCase()===n||e.displayName?.toLowerCase()===n):$[0],i=r??$[0],a=r||!t||t===`me`?i.userPrincipalName:t,o={id:i.id,givenName:i.givenName,surname:i.surname,displayName:i.displayName,userPrincipalName:a,jobTitle:i.jobTitle,department:i.department,officeLocation:`19/3106`,mail:i.mail},s={availability:`Available`,activity:`Available`,id:o.id,odataType:`#microsoft.graph.presence`};return{user:o,presence:e.fetchPresence?s:null,photoUrl:e.fetchPhoto?en:null}}async searchPeople(e,t=10){let n=e.trim();if(!n)return $.slice(0,t);let r=n.toLowerCase();return $.filter(e=>e.displayName?.toLowerCase().includes(r)||e.mail?.toLowerCase().includes(r)||e.userPrincipalName?.toLowerCase().includes(r)).slice(0,t)}async login(){this.state=`SignedIn`,this.emit()}async logout(){this.state=`SignedOut`,this.emit()}getState(){return this.state}onStateChanged(e){this.listeners.push(e)}removeStateChangedHandler(e){this.listeners=this.listeners.filter(t=>t!==e)}emit(){for(let e of this.listeners)try{e()}catch{}}},nn=()=>new tn({autoSignIn:!0});function rn(e){return`See https://aka.ms/msal.js.errors#${e} for details`}var an=class e extends Error{constructor(t,n,r,i){let a=r||(t?rn(t):``),o=a?`${t}: ${a}`:t;super(o),Object.setPrototypeOf(this,e.prototype),this.errorCode=t||``,this.errorMessage=a||``,this.subError=i||``,this.correlationId=n,this.name=`AuthError`}},on=class e extends an{constructor(t,n,r,i,a,o,s,c){super(t,n,r,i),Object.setPrototypeOf(this,e.prototype),this.timestamp=a||``,this.traceId=o||``,this.claims=s||``,this.name=`InteractionRequiredAuthError`,this.errorNo=c}},sn=class extends Error{constructor(e){super(e),this.name=`RedirectInProgressError`}},cn=class{msalInstance;defaultScopes;account=null;state=`Loading`;listeners=[];constructor(e,t){this.msalInstance=e,this.defaultScopes=t}async initialize(){await this.msalInstance.initialize();let e=await this.msalInstance.handleRedirectPromise();if(e?.account){this.account=e.account,this.msalInstance.setActiveAccount(this.account),this.setState(`SignedIn`);return}let t=this.msalInstance.getActiveAccount(),n=this.msalInstance.getAllAccounts();this.account=t??n[0]??null,this.account?(this.msalInstance.setActiveAccount(this.account),this.setState(`SignedIn`)):this.setState(`SignedOut`)}async login(){let e={scopes:this.defaultScopes};await this.msalInstance.loginRedirect(e)}async logout(){let e=this.msalInstance.getActiveAccount()??this.account??void 0;this.account=null,this.msalInstance.setActiveAccount(null),this.setState(`SignedOut`),await this.msalInstance.logoutRedirect({account:e})}async getAccessToken(e){let t=e&&e.length>0?e:this.defaultScopes,n=this.msalInstance.getActiveAccount()??this.account;if(!n)throw Error(`No active account. User must sign in first.`);let r={scopes:t,account:n};try{return(await this.msalInstance.acquireTokenSilent(r)).accessToken}catch(e){if(e instanceof on){let e={scopes:t,account:n};throw await this.msalInstance.acquireTokenRedirect(e),new sn(`Redirecting for interactive token acquisition.`)}throw e}}getState(){return this.state}onStateChanged(e){this.listeners.push(e)}removeStateChangedHandler(e){this.listeners=this.listeners.filter(t=>t!==e)}setState(e){this.state=e,this.emit()}emit(){for(let e of this.listeners)try{e()}catch{}}},ln=6e4;function un(e){let t=e.fetchFn??fetch;return async({ssoToken:n,scopes:r})=>{let i=await t(e.endpoint,{method:`POST`,headers:{Authorization:`Bearer ${n}`,"Content-Type":`application/json`},body:JSON.stringify({scopes:r})}),a=await i.json().catch(()=>({error:i.statusText||`Token exchange failed`}));if(!i.ok){let e=a?.error||a?.message||i.statusText;throw Error(`Backend token exchange failed: ${e}`)}if(!a?.accessToken)throw Error(`Backend token exchange response did not include accessToken.`);return{accessToken:a.accessToken,expiresAt:a.expiresAt}}}var dn=class{defaultScopes;getTeamsSsoTokenFn;exchangeForGraphTokenFn;refreshSkewMs;state=`SignedOut`;listeners=[];tokenCache=new Map;constructor(e){if(!e.defaultScopes||e.defaultScopes.length===0)throw Error(`TeamsHostedProvider requires at least one default scope.`);this.defaultScopes=[...new Set(e.defaultScopes)],this.getTeamsSsoTokenFn=e.getTeamsSsoToken,this.exchangeForGraphTokenFn=e.exchangeForGraphToken,this.refreshSkewMs=e.refreshSkewMs??ln}async login(){try{await this.getAccessToken(),this.setState(`SignedIn`)}catch(e){throw this.clearCache(),this.setState(`SignedOut`),e}}async logout(){this.clearCache(),this.setState(`SignedOut`)}async getAccessToken(e){let t=this.normalizeScopes(e),n=this.buildScopeKey(t),r=this.tokenCache.get(n);if(r&&this.isTokenValid(r))return r.accessToken;let i=await this.getTeamsSsoTokenFn(t);if(!i)throw Error(`Teams SSO token acquisition returned empty token.`);let a=await this.exchangeForGraphTokenFn({ssoToken:i,scopes:t}),o=this.normalizeExchangedToken(a);return this.tokenCache.set(n,o),this.setState(`SignedIn`),o.accessToken}getState(){return this.state}onStateChanged(e){this.listeners.push(e)}removeStateChangedHandler(e){this.listeners=this.listeners.filter(t=>t!==e)}normalizeScopes(e){let t=e&&e.length>0?e:this.defaultScopes,n=[...new Set(t.filter(Boolean))];if(n.length===0)throw Error(`At least one scope is required to request a Graph token.`);return n}buildScopeKey(e){return[...e].sort().join(` `)}isTokenValid(e){return e.expiresAtMs?Date.now()+this.refreshSkewMs<e.expiresAtMs:!0}normalizeExchangedToken(e){if(typeof e==`string`){if(!e)throw Error(`Graph token exchange returned empty access token.`);return{accessToken:e}}if(!e.accessToken)throw Error(`Graph token exchange returned empty access token.`);return{accessToken:e.accessToken,expiresAtMs:this.toEpochMs(e.expiresAt)}}toEpochMs(e){if(e)return e instanceof Date?e.getTime():e}clearCache(){this.tokenCache.clear()}setState(e){this.state!==e&&(this.state=e,this.emit())}emit(){for(let e of this.listeners)try{e()}catch{}}};exports.GraphProvider=T,exports.MockProvider=tn,exports.MsalBrowserProvider=cn,exports.People=Ae,exports.PeoplePicker=$t,exports.Person=fe,exports.RedirectInProgressError=sn,exports.TeamsHostedProvider=dn,exports.createBackendTokenExchange=un,exports.createMockSignedInProvider=nn,exports.isPeopleSearchProvider=F,exports.isPersonDataProvider=P,exports.useGraphClient=N,exports.usePeopleList=we,exports.usePeopleSearch=Wt,exports.usePersonCacheOptions=O,exports.usePersonData=L,exports.useProvider=E,exports.useProviderState=D;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`react`),l=s(c,1);c=s(c);let u=require(`@fluentui/react-components`),d=require(`react/jsx-runtime`),f=require(`@microsoft/microsoft-graph-client`);var p=`graph-toolkit-person-cache`,m=`personData`,h=1,g={enabled:!0,userTtlMs:3600*1e3,photoTtlMs:3600*1e3,presenceTtlMs:300*1e3},_=()=>typeof window<`u`&&window.indexedDB!==void 0,v=e=>new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)}),y=()=>new Promise((e,t)=>{if(!_()){t(Error(`IndexedDB unavailable`));return}let n=window.indexedDB.open(p,h);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(m)||e.createObjectStore(m)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)}),b=e=>`person:${e.trim().toLowerCase()}`,x=(e,t)=>e?Date.now()-e<t:!1,S=async e=>{if(!_())return null;let t=null;try{return t=await y(),await v(t.transaction(m,`readonly`).objectStore(m).get(e))??null}catch{return null}finally{t?.close()}},C=async(e,t)=>{if(!_())return;let n=null;try{n=await y(),await v(n.transaction(m,`readwrite`).objectStore(m).put(t,e))}catch{return}finally{n?.close()}},w=(0,c.createContext)({provider:null,state:`Loading`,personCacheOptions:g}),T=({provider:e,children:t,personCacheOptions:n})=>{let r=(0,c.useCallback)(()=>e?.getState?.()??`Loading`,[e]),i=(0,c.useSyncExternalStore)((0,c.useCallback)(t=>(e.onStateChanged?.(t),()=>{let n=e;typeof n.removeStateChangedHandler==`function`&&n.removeStateChangedHandler(t)}),[e]),r,r),a=(0,c.useMemo)(()=>({...g,...n??{}}),[n]),o=(0,c.useMemo)(()=>({provider:e,state:i,personCacheOptions:a}),[e,i,a]);return(0,d.jsx)(w.Provider,{value:o,children:t})},E=()=>{let{provider:e}=(0,c.useContext)(w);return e},D=()=>{let{state:e}=(0,c.useContext)(w);return e},O=()=>{let{personCacheOptions:e}=(0,c.useContext)(w);return e},k=e=>f.Client.init({authProvider:async t=>{try{t(null,await e.getAccessToken())}catch(e){t(e,null)}}}),A=e=>{let t=typeof e==`string`?{displayName:e}:e,n=t?.givenName?.trim(),r=t?.surname?.trim(),i=t?.displayName?.trim(),a=``;if(n&&(a+=n[0]?.toUpperCase()??``),r&&(a+=r[0]?.toUpperCase()??``),a)return a;if(!i)return``;let o=i.split(/\s+/);return o.length===1?o[0].substring(0,2).toUpperCase():(o[0][0]+o[o.length-1][0]).toUpperCase()},j=async e=>{if(!e)return null;if(typeof e==`string`)return e;let t=e instanceof Blob?e:e instanceof ArrayBuffer?new Blob([e]):null;return t?new Promise((e,n)=>{let r=new FileReader;r.onloadend=()=>e(typeof r.result==`string`?r.result:null),r.onerror=()=>n(r.error),r.readAsDataURL(t)}):null},M=e=>encodeURIComponent(e.trim()),N=()=>{let e=E(),t=D();return(0,c.useMemo)(()=>!e||t!==`SignedIn`?null:k(e),[e,t])},P=e=>typeof e==`object`&&!!e&&typeof e.getPersonData==`function`,F=e=>typeof e==`object`&&!!e&&typeof e.searchPeople==`function`,ee=[`id`,`displayName`,`jobTitle`,`mail`,`department`,`officeLocation`,`userPrincipalName`],te=e=>{let t=N(),n=E(),r=D(),i=O(),{userId:a,userPrincipalName:o,fetchPresence:s=!1,fetchPhoto:l=!0,selectFields:u}=e,d=[...new Set([...ee,...(u??[]).map(e=>e.trim()).filter(e=>e.length>0&&/^[a-zA-Z0-9_./]+$/.test(e))])].join(`,`),[f,p]=(0,c.useState)({user:null,presence:null,photoUrl:null,loading:!0,error:null});return(0,c.useEffect)(()=>{let e=!1,c=d.split(`,`).filter(e=>!ee.includes(e));return(async()=>{let u=a||o;if(P(n)){try{let t=await n.getPersonData({identifier:u,fetchPresence:s,fetchPhoto:l,selectFields:c.length>0?c:void 0});e||p({user:t.user,presence:t.presence,photoUrl:t.photoUrl,loading:!1,error:null})}catch(t){e||p({user:null,presence:null,photoUrl:null,loading:!1,error:t})}return}if(r!==`SignedIn`){e||p({user:null,presence:null,photoUrl:null,loading:!1,error:r===`SignedOut`?null:Error(`Provider not signed in`)});return}if(!t){e||p(e=>({...e,loading:!0}));return}if(!u){e||p({user:null,presence:null,photoUrl:null,loading:!1,error:null});return}let f=b(u),m=i.enabled?await S(f):null,h=!!(m?.user&&x(m.userCachedAt,i.userTtlMs)),g=!!(m?.presenceCachedAt&&x(m.presenceCachedAt,i.presenceTtlMs)),_=!!(m?.photoCachedAt&&x(m.photoCachedAt,i.photoTtlMs));if(h&&(!s||g)&&(!l||_)){e||p({user:m?.user??null,presence:s?m?.presence??null:null,photoUrl:l?m?.photoUrl??null:null,loading:!1,error:null});return}try{p(e=>({...e,loading:!0,error:null}));let n=u.toLowerCase()===`me`,r=Date.now(),a=!1,o=!1,c=!1,v=h?m?.user??null:null;if(v||(v=await t.api(n?`/me`:`/users/${M(u)}`).select(d).get(),a=!0),e)return;let y=null,b=null;if(s){if(g)y=m?.presence??null;else if(v?.id){try{y=await t.api(n?`/me/presence`:`/users/${M(v.id)}/presence`).get()}catch(e){console.warn(`Failed to fetch presence:`,e)}o=!0}}if(l){if(_)b=m?.photoUrl??null;else if(v?.id){try{b=await j(await t.api(n?`/me/photo/$value`:`/users/${M(v.id)}/photo/$value`).get())}catch(e){console.warn(`Failed to fetch photo:`,e)}c=!0}}let x={...m??{}};a&&v&&(x.user=v,x.userCachedAt=r),s&&(o||g)&&(x.presence=o?y:m?.presence,x.presenceCachedAt=o?r:m?.presenceCachedAt),l&&(c||_)&&(x.photoUrl=c?b:m?.photoUrl,x.photoCachedAt=c?r:m?.photoCachedAt),i.enabled&&(a||o||c)&&x.user&&await C(f,x),e||p({user:v,presence:y,photoUrl:b,loading:!1,error:null})}catch(t){e||p({user:null,presence:null,photoUrl:null,loading:!1,error:t})}})(),()=>{e=!0}},[t,n,r,a,o,s,l,i,d]),f},I=typeof window>`u`?global:window,L=`@griffel/`;function ne(e,t){return I[Symbol.for(L+e)]||(I[Symbol.for(L+e)]=t),I[Symbol.for(L+e)]}var re=ne(`DEBUG_RESET_CLASSES`,{}),R=ne(`DEFINITION_LOOKUP_TABLE`,{}),z=`data-make-styles-bucket`,ie=`data-priority`,B=process.env.NODE_ENV===`production`?10:18;function V(e){for(var t=0,n,r=0,i=e.length;i>=4;++r,i-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}function H(e){let t=e.length;if(t===7)return e;for(let n=t;n<7;n++)e+=`0`;return e}function U(e,t,n=[]){return process.env.NODE_ENV===`production`?`___`+H(V(e+t)):`___`+H(V(e+t))+`_`+H(V(n.join(``)))}function W(e,t){let n=``,r=``;for(let i in e){let a=e[i];if(a===0){r+=i+` `;continue}let o=Array.isArray(a),s=t===`rtl`?(o?a[1]:a)+` `:(o?a[0]:a)+` `;n+=s,r+=s}return[n.slice(0,-1),r.slice(0,-1)]}function G(e,t){let n={};for(let r in e){let[i,a]=W(e[r],t);if(a===``){n[r]=``;continue}let o=U(a,t),s=o+(i===``?``:` `+i);R[o]=[e[r],t],n[r]=s}return n}var K={};function ae(){let e=null,t=``,n=``,r=Array(arguments.length),i=``;for(let e=0;e<arguments.length;e++){let a=arguments[e];if(typeof a==`string`&&a!==``){let o=a.indexOf(`___`);if(o===-1)process.env.NODE_ENV!==`production`&&a.split(` `).forEach(e=>{e.startsWith(`r`)&&re[e]&&(i?console.error(`mergeClasses(): a passed string contains multiple classes produced by makeResetStyles (${a} & ${t}, this will lead to non-deterministic behavior. Learn more:https://griffel.js.org/react/api/make-reset-styles#limitations
|
|
2
|
+
Source string: ${a}`):i=e)}),t+=a+` `;else{let i=a.substr(o,B);o>0&&(t+=a.slice(0,o)),n+=i,r[e]=i}process.env.NODE_ENV!==`production`&&a.indexOf(`___`,o+1)!==-1&&console.error(`mergeClasses(): a passed string contains multiple identifiers of atomic classes (classes that start with "___"), it's possible that passed classes were concatenated in a wrong way. Source string: ${a}`)}}if(n===``)return t.slice(0,-1);let a=K[n];if(a!==void 0)return t+a;let o=[];for(let t=0;t<arguments.length;t++){let n=r[t];if(n){let r=R[n];r?(o.push(r[0]),process.env.NODE_ENV!==`production`&&e!==null&&e!==r[1]&&console.error(`mergeClasses(): a passed string contains an identifier (${n}) that has different direction (dir="${r[1]?`rtl`:`ltr`}") setting than other classes. This is not supported. Source string: ${arguments[t]}`),e=r[1]):process.env.NODE_ENV!==`production`&&console.error(`mergeClasses(): a passed string contains an identifier (${n}) that does not match any entry in cache. Source string: ${arguments[t]}`)}}let s=Object.assign.apply(Object,[{}].concat(o)),[c,l]=W(s,e),u=U(l,e,r),d=u+` `+c;return K[n]=d,R[u]=[s,e],t+d}var oe={},se=new Set,q={getChildrenSequences:e=>{let t=Object.keys(K).find(t=>K[t].startsWith(e));return t?t.split(`___`).filter(e=>e.length).map(e=>`___`+e):[]},addCSSRule:e=>{se.add(e)},addSequenceDetails:(e,t)=>{Object.entries(e).forEach(([e,n])=>{oe[n.substring(0,B)]={slotName:e,sourceURL:t}})},getCSSRules:()=>Array.from(se),getSequenceDetails:e=>oe[e]};function ce(e,t){return Array.isArray(e)?t===`rtl`?e[1]:e[0]:e||``}function le(e,t,n,r){let i=e[0],a=e[1];return Object.entries(i).map(([e,i])=>{let o=ce(i,a),s;if(n&&t){let i=n.find(({className:e})=>e===o);!i&&t[0][e]?s=ce(t[0][e],t[1]):i&&t[0][e]?s=r&&r.filter(({debugClassNames:e})=>e.filter(({className:e})=>e===o).length>0).length>0?i.className:i.overriddenBy:(!i&&!t[0][e]||i&&!t[0][e])&&(s=void 0)}return{className:o,overriddenBy:s}})}function ue(e,t){let n=R[e];if(n===void 0)return;let r=le(n,t?R[t.sequenceHash]:void 0,t?.debugClassNames,t?.children),i={sequenceHash:e,direction:n[1],children:[],debugClassNames:r};return q.getChildrenSequences(i.sequenceHash).reverse().forEach(e=>{let t=ue(e,i);t&&i.children.push(t)}),i.children.length||(i.rules={},i.debugClassNames.forEach(({className:t})=>{let n=q.getSequenceDetails(e);n&&(i.slot=n.slotName,i.sourceURL=n.sourceURL);let r=q.getCSSRules().find(e=>e.includes(t));i.rules[t]=r})),i}function de(e){if(re[e]===void 0)return;let t={sequenceHash:e,direction:`ltr`,children:[],debugClassNames:[{className:e}]};t.rules={},t.slot=`makeResetStyles()`;let[{className:n}]=t.debugClassNames,r=q.getCSSRules().filter(e=>e.includes(`.${n}`));return t.rules[n]=r.join(``),t}function fe(e,t){let n=e?ue(e):void 0,r=t?de(t):void 0;if(!(!n&&!r))return n?r?{sequenceHash:n.sequenceHash+r.sequenceHash,direction:n.direction,children:[n,r],debugClassNames:[...n.debugClassNames,...r.debugClassNames]}:n:r}function pe(e){let t=e.defaultView;if(!t||t.__GRIFFEL_DEVTOOLS__)return;let n={getInfo:e=>{let t,n;for(let r of e.classList)r.startsWith(`___`)&&(t=r),re[r]&&(n=r);return fe(t,n)}};Object.defineProperty(t,`__GRIFFEL_DEVTOOLS__`,{configurable:!1,enumerable:!1,get(){return n}})}var J=(()=>{try{return!!(typeof window<`u`&&window.sessionStorage?.getItem(`__GRIFFEL_DEVTOOLS__`))}catch{return!1}})(),me=`<unknown>`;function he(e){return ye(e)||Se(e)||we(e)}var ge=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)?\)?\s*$/i,_e=/^\s*at ()((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)\s*$/i,ve=/\((\S*)\)/;function ye(e){let t=ge.exec(e)||_e.exec(e);if(!t)return null;let n=t[2],r=n&&n.indexOf(`native`)===0,i=n&&n.indexOf(`eval`)===0,a=ve.exec(n);return i&&a!==null&&(n=a[1]),{loc:r?null:t[2],name:t[1]||me}}var be=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)\s*$/i,xe=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function Se(e){let t=be.exec(e);if(!t)return null;let n=t[3],r=n&&n.indexOf(` > eval`)>-1,i=xe.exec(n);return r&&i!==null&&(n=i[1]),{loc:t[3],name:t[1]||me}}var Ce=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?)\s*$/i;function we(e){let t=Ce.exec(e);return t?{loc:t[3],name:t[1]||me}:null}function Te(){let e=Ee(String(Error().stack).split(`
|
|
3
|
+
`));return e===void 0?void 0:he(e)?.loc}function Ee(e){for(let t=e.length-1;t>=0;--t)if(e[t].includes(`at getSourceURLfromError`))return e[t+3]}function De(e){if(!Array.isArray(e))return[e];if(process.env.NODE_ENV!==`production`&&e.length>2)throw Error(`CSS Bucket contains an entry with greater than 2 items, please report this to https://github.com/microsoft/griffel/issues`);return e}function Oe(e,t,n,r){let i=[];if(r[z]=t,r[ie]=String(n),e)for(let t in r)e.setAttribute(t,r[t]);function a(t){return e?.sheet?e.sheet.insertRule(t,e.sheet.cssRules.length):i.push(t)}return{elementAttributes:r,insertRule:a,element:e,bucketName:t,cssRules(){return e?.sheet?Array.from(e.sheet.cssRules).map(e=>e.cssText):i}}}var ke=[`r`,`d`,`l`,`v`,`w`,`f`,`i`,`h`,`a`,`s`,`k`,`t`,`m`,`c`].reduce((e,t,n)=>(e[t]=n,e),{});function Ae(e,t,n){return(e===`m`?e+t:e)+n}function je(e,t,n,r,i={}){let a=e===`m`,o=i.m??`0`,s=i.p??0,c=Ae(e,o,s);if(!r.stylesheets[c]){let l=t&&t.createElement(`style`),u=Oe(l,e,s,{...r.styleElementAttributes,...a&&{media:o}});r.stylesheets[c]=u,t?.head&&l&&t.head.insertBefore(l,Ne(t,n,e,r,i))}return r.stylesheets[c]}function Me(e,t,n){return t+(n.m??``)===e.getAttribute(z)+(e.media??``)}function Ne(e,t,n,r,i={}){let a=ke[n],o=i.m??``,s=i.p??0,c=e=>a-ke[e.getAttribute(z)],l=e.head.querySelectorAll(`[${z}]`);if(n===`m`){let t=e.head.querySelectorAll(`[${z}="${n}"]`);t.length&&(l=t,c=e=>r.compareMediaQueries(o,e.media))}let u=e=>Me(e,n,i)?s-Number(e.getAttribute(`data-priority`)):c(e),d=l.length,f=d-1;for(;f>=0;){let e=l.item(f);if(u(e)>0)return e.nextSibling;f--}return d>0?l.item(0):t?t.nextSibling:null}var Pe=RegExp(`:(${[`-moz-placeholder`,`-moz-focus-inner`,`-moz-focusring`,`-ms-input-placeholder`,`-moz-read-write`,`-moz-read-only`].join(`|`)})`);function Fe(e,t){try{e.insertRule(t)}catch(e){process.env.NODE_ENV!==`production`&&!Pe.test(t)&&console.error(`There was a problem inserting the following rule: "${t}"`,e)}}var Ie=0,Le=(e,t)=>e<t?-1:+(e>t);function Re(e=typeof document>`u`?void 0:document,t={}){let{classNameHashSalt:n,unstable_filterCSSRule:r,insertionPoint:i,styleElementAttributes:a,compareMediaQueries:o=Le}=t,s={classNameHashSalt:n,insertionCache:{},stylesheets:{},styleElementAttributes:Object.freeze(a),compareMediaQueries:o,id:`d${Ie++}`,insertCSSRules(t){for(let n in t){let a=t[n];for(let t=0,o=a.length;t<o;t++){let[o,c]=De(a[t]),l=je(n,e,i||null,s,c);s.insertionCache[o]||(s.insertionCache[o]=n,process.env.NODE_ENV!==`production`&&J&&q.addCSSRule(o),r?r(o)&&Fe(l,o):Fe(l,o))}}}};return e&&process.env.NODE_ENV!==`production`&&J&&pe(e),s}var ze=()=>{let e={};return function(t,n){e[t.id]===void 0&&(t.insertCSSRules(n),e[t.id]=!0)}};function Be(e,t,n=ze){let r=n(),i=null,a=null,o;process.env.NODE_ENV!==`production`&&J&&(o=Te());function s(n){let{dir:s,renderer:c}=n,l=s===`ltr`;l?i===null&&(i=G(e,s)):a===null&&(a=G(e,s)),r(c,t);let u=l?i:a;return process.env.NODE_ENV!==`production`&&J&&q.addSequenceDetails(u,o),u}return s}function Ve(){return typeof window<`u`&&!!(window.document&&window.document.createElement)}var He=l.default.useInsertionEffect?l.default.useInsertionEffect:void 0,Ue=()=>{let e={};return function(t,n){if(He&&Ve()){He(()=>{t.insertCSSRules(n)},[t,n]);return}e[t.id]===void 0&&(t.insertCSSRules(n),e[t.id]=!0)}},We=(0,l.createContext)(Re());function Ge(){return(0,l.useContext)(We)}var Ke=(0,l.createContext)(`ltr`);function qe(){return(0,l.useContext)(Ke)}function Je(e,t){let n=Be(e,t,Ue);return function(){return n({dir:qe(),renderer:Ge()})}}var Ye=c.createContext(void 0),Xe={};Ye.Provider;var Ze=()=>c.useContext(Ye)??Xe,Qe=Je({root:{mc9l5x:`f1w7gpdv`,Bg96gwp:`fez10in`},rtl:{Bz10aip:`f13rod7r`}},{d:[`.f1w7gpdv{display:inline;}`,`.fez10in{line-height:0;}`,`.f13rod7r{transform:scaleX(-1);}`]}),$e=(e,t)=>{let{filled:n,title:r,primaryFill:i=`currentColor`,...a}=e,o={...a,fill:i},s=Qe(),c=Ze();return o.className=ae(s.root,t?.flipInRtl&&c?.textDirection===`rtl`&&s.rtl,o.className),r&&(o[`aria-label`]=r),!o[`aria-label`]&&!o[`aria-labelledby`]?o[`aria-hidden`]=!0:o.role=`img`,o},et=Je({root:{B8gzw0y:`f1dd5bof`}},{m:[[`@media (forced-colors: active){.f1dd5bof{forced-color-adjust:auto;}}`,{m:`(forced-colors: active)`}]]}),tt=`fui-Icon`,nt=(e,t)=>{let[n,r,...i]=e;return c.createElement(n,{...r,key:t},...i.map(nt))},Y=(e,t,n,r)=>{let i=t===`1em`?`20`:t,a=typeof n!=`string`&&(r?.color||Array.isArray(n[0]))?n.map(nt):void 0,o=c.forwardRef((e,o)=>{let s=et(),l=$e(e,{flipInRtl:r?.flipInRtl}),u={...l,className:ae(tt,l.className,s.root),ref:o,width:t,height:t,viewBox:`0 0 ${i} ${i}`,xmlns:`http://www.w3.org/2000/svg`};return typeof n==`string`?c.createElement(`svg`,{...u,dangerouslySetInnerHTML:{__html:n}}):a?c.createElement(`svg`,u,...a):c.createElement(`svg`,u,...n.map(e=>c.createElement(`path`,{d:e,fill:u.fill})))});return o.displayName=e,o},rt=Y(`SearchRegular`,`1em`,[`M13.73 14.44a6.5 6.5 0 1 1 .7-.7l3.42 3.4a.5.5 0 0 1-.63.77l-.07-.06-3.42-3.41Zm-.71-.71A5.54 5.54 0 0 0 15 9.5a5.5 5.5 0 1 0-1.98 4.23Z`]),it=Y(`Mail24Regular`,`24`,[`M5.25 4h13.5a3.25 3.25 0 0 1 3.24 3.07l.01.18v9.5a3.25 3.25 0 0 1-3.07 3.24l-.18.01H5.25a3.25 3.25 0 0 1-3.24-3.07L2 16.75v-9.5a3.25 3.25 0 0 1 3.07-3.24L5.25 4h13.5-13.5ZM20.5 9.37l-8.15 4.3c-.19.1-.4.1-.6.04l-.1-.05L3.5 9.37v7.38c0 .92.7 1.67 1.6 1.74l.15.01h13.5c.92 0 1.67-.7 1.74-1.6l.01-.15V9.37ZM18.75 5.5H5.25c-.92 0-1.67.7-1.74 1.6l-.01.15v.43l8.5 4.47 8.5-4.47v-.43c0-.92-.7-1.67-1.6-1.74l-.15-.01Z`]),at=Y(`Location24Regular`,`24`,[`M5.84 4.57a8.7 8.7 0 0 1 12.32 12.31l-1.19 1.18c-.87.86-2.01 1.96-3.4 3.3-.88.85-2.26.85-3.13 0l-3.5-3.39-1.1-1.09a8.7 8.7 0 0 1 0-12.31ZM17.1 5.63a7.2 7.2 0 1 0-10.2 10.2l1.5 1.46 3.08 3c.29.28.75.28 1.04 0l3.4-3.3 1.18-1.17a7.2 7.2 0 0 0 0-10.19ZM12 7.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7ZM12 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z`]),ot=Y(`Chat24Regular`,`24`,[`M12 2a10 10 0 1 1-4.59 18.89L3.6 21.96a1.25 1.25 0 0 1-1.54-1.54l1.06-3.83A10 10 0 0 1 12 2Zm0 1.5a8.5 8.5 0 0 0-7.43 12.64l.15.27-1.1 3.98 3.98-1.11.27.15A8.5 8.5 0 1 0 12 3.5ZM8.75 13h4.5a.75.75 0 0 1 .1 1.5h-4.6a.75.75 0 0 1-.1-1.5h4.6-4.5Zm0-3.5h6.5a.75.75 0 0 1 .1 1.5h-6.6a.75.75 0 0 1-.1-1.5h6.6-6.5Z`]),st=Y(`Phone24Regular`,`24`,[`M15.75 2C16.99 2 18 3 18 4.25v15.5c0 1.24-1 2.25-2.25 2.25h-7.5C7.01 22 6 21 6 19.75V4.25C6 3.01 7 2 8.25 2h7.5Zm0 1.5h-7.5a.75.75 0 0 0-.75.75v15.5c0 .41.34.75.75.75h7.5c.41 0 .75-.34.75-.75V4.25a.75.75 0 0 0-.75-.75Zm-2.5 14a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1 0-1.5h2.5Z`]),ct=e=>{switch(e?.toLowerCase()){case`available`:case`availableidle`:return`available`;case`away`:case`berightback`:return`away`;case`busy`:case`busyidle`:return`busy`;case`donotdisturb`:return`do-not-disturb`;case`offline`:return`offline`;default:return}},X=e=>{if(e!=null){if(typeof e==`string`)return e||void 0;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(Array.isArray(e)){let t=e.map(e=>X(e)).filter(e=>!!e);return t.length>0?t.join(`, `):void 0}}},lt=e=>X(e.mail)??X(e.email)??X(e.userPrincipalName),ut=e=>{let t=e.businessPhones;if(!(!t||t.length===0))return X(t[0])},dt=e=>`tel:${e.replace(/\s+/g,``)}`,ft=(e,t,n)=>(0,d.jsx)(u.Button,{appearance:`subtle`,icon:t,"aria-label":e,as:`a`,href:n}),pt=({person:e,displayName:t,onEscape:n})=>{let r=lt(e),i=X(e.mobilePhone),a=ut(e),o=r?encodeURIComponent(r):void 0,s=X(e.officeLocation),c=[X(e.jobTitle),X(e.department)].filter(e=>!!e).join(` · `),l=i?dt(i):a?dt(a):void 0,f=ct(X(e.presenceAvailability));return(0,d.jsxs)(u.Card,{appearance:`filled-alternative`,style:{width:`24rem`,maxWidth:`calc(100vw - 2rem)`,padding:0,gap:0,overflow:`hidden`,boxShadow:u.tokens.shadow16},tabIndex:0,onKeyDown:e=>{e.key===`Escape`&&n?.()},children:[(0,d.jsxs)(`div`,{style:{padding:`24px 28px 16px`},children:[(0,d.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`18px`},children:[(0,d.jsx)(`div`,{style:{flex:`0 0 auto`},children:(0,d.jsx)(u.Avatar,{image:e.photoUrl?{src:e.photoUrl}:void 0,initials:e.photoUrl?void 0:A({...e,displayName:t})||void 0,name:t,size:72,color:`colorful`,badge:f?{status:f}:void 0})}),(0,d.jsxs)(`div`,{style:{minWidth:0},children:[(0,d.jsx)(`div`,{style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:(0,d.jsx)(u.Text,{weight:`semibold`,size:400,title:t,children:t})}),c?(0,d.jsx)(`div`,{style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:(0,d.jsx)(u.Text,{size:300,title:c,style:{color:u.tokens.colorNeutralForeground3},children:c})}):null]})]}),r||l?(0,d.jsxs)(`div`,{style:{display:`flex`,gap:16,marginTop:18},children:[o?ft(`Chat`,(0,d.jsx)(ot,{}),`https://teams.microsoft.com/l/chat/0/0?users=${o}`):null,l?ft(`Call`,(0,d.jsx)(st,{}),l):null,r?ft(`Email`,(0,d.jsx)(it,{}),`mailto:${r}`):null]}):null]}),(0,d.jsx)(u.Divider,{}),(0,d.jsxs)(`div`,{style:{display:`grid`,gap:14,padding:`18px 28px 24px`},children:[r?(0,d.jsxs)(`div`,{style:{display:`flex`,gap:14,alignItems:`center`},children:[(0,d.jsx)(it,{style:{color:u.tokens.colorNeutralForeground3}}),(0,d.jsx)(`a`,{href:`mailto:${r}`,target:`_self`,rel:`noreferrer`,children:r})]}):null,i?(0,d.jsxs)(`div`,{style:{display:`flex`,gap:14,alignItems:`center`},children:[(0,d.jsx)(st,{style:{color:u.tokens.colorNeutralForeground3}}),(0,d.jsx)(`a`,{href:dt(i),target:`_self`,rel:`noreferrer`,children:i})]}):null,a&&!i?(0,d.jsxs)(`div`,{style:{display:`flex`,gap:14,alignItems:`center`},children:[(0,d.jsx)(st,{style:{color:u.tokens.colorNeutralForeground3}}),(0,d.jsx)(`a`,{href:dt(a),target:`_self`,rel:`noreferrer`,children:a})]}):null,s?(0,d.jsxs)(`div`,{style:{display:`flex`,gap:14,alignItems:`center`},children:[(0,d.jsx)(at,{style:{color:u.tokens.colorNeutralForeground3}}),(0,d.jsxs)(u.Text,{style:{color:u.tokens.colorNeutralForeground3},children:[`Office: `,s]})]}):null]})]})},mt=e=>{switch(e?.toLowerCase()){case`available`:case`availableidle`:return`available`;case`away`:case`berightback`:return`away`;case`busy`:case`busyidle`:case`donotdisturb`:return`busy`;default:return`offline`}},ht={avatar:[void 0,void 0,void 0,void 0],oneline:[`displayName`,void 0,void 0,void 0],twolines:[`displayName`,`jobTitle`,void 0,void 0],threelines:[`displayName`,`jobTitle`,`department`,void 0],fourlines:[`displayName`,`jobTitle`,`department`,`officeLocation,mail`]},gt=new Set([`presenceActivity`,`presenceAvailability`]),_t=new Set([`email`,...gt]),vt=16,yt=12,bt=500,xt=500,St=[`mail`,`userPrincipalName`,`jobTitle`,`department`,`officeLocation`,`mobilePhone`,`businessPhones`],Ct={1:`8rem`,2:`6rem`,3:`5rem`,4:`7rem`},wt=e=>e?.split(`,`).map(e=>e.trim()).filter(Boolean)??[],Z=e=>{if(e!=null){if(typeof e==`string`)return e||void 0;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(Array.isArray(e)){let t=e.map(e=>Z(e)).filter(e=>!!e);return t.length>0?t.join(`, `):void 0}}},Tt=e=>Z(e.mail)??Z(e.email)??Z(e.userPrincipalName),Et=(e,t)=>{let n=wt(t);for(let t of n)switch(t){case`mail`:case`email`:{let t=Tt(e);if(t)return t;break}default:{let n=Z(e[t]);if(n)return n}}},Dt=(e,t,n)=>({line:e,person:t,text:n}),Ot=(e,t,n,r)=>r?r(Dt(e,t,n)):n,kt=e=>(0,d.jsx)(u.Skeleton,{children:(0,d.jsx)(u.SkeletonItem,{size:e===1?vt:yt,style:{width:Ct[e],maxWidth:`100%`}})}),At=(e,t,n)=>n??ht[e][t-1],jt=e=>{switch(e){case`avatar`:return 0;case`oneline`:return 1;case`twolines`:return 2;case`threelines`:return 3;default:return 4}},Q=(e,t)=>t<=jt(e),Mt=e=>[...new Set(e.flatMap(e=>wt(e)))].filter(e=>!_t.has(e)),Nt=({userId:e,userPrincipalName:t,email:n,personDetails:r,view:i=`oneline`,showPresence:a=!1,personCardInteraction:o=`none`,line1Property:s,line2Property:l,line3Property:f,line4Property:p,renderLine1:m,renderLine2:h,renderLine3:g,renderLine4:_,fetchImage:v=!0,onUpdated:y,...b})=>{let x=i===`avatar`,S=Q(i,1)?At(i,1,s):void 0,C=Q(i,2)?At(i,2,l):void 0,w=Q(i,3)?At(i,3,f):void 0,T=Q(i,4)?At(i,4,p):void 0,E=[S,C,w,T].some(e=>wt(e).some(e=>gt.has(e))),D=o!==`none`,O=(0,c.useRef)(null),k=(0,c.useRef)(null),[j,M]=(0,c.useState)(!1),[N,P]=(0,c.useState)(null),F=o===`hover`,ee=()=>{O.current!==null&&(window.clearTimeout(O.current),O.current=null),k.current!==null&&(window.clearTimeout(k.current),k.current=null)},I=()=>{ee(),P(null),M(!1)},L=()=>{F&&(k.current!==null&&(window.clearTimeout(k.current),k.current=null),!j&&O.current===null&&(O.current=window.setTimeout(()=>{O.current=null,P(`hover`),M(!0)},bt)))},ne=()=>{F&&j&&(O.current!==null&&(window.clearTimeout(O.current),O.current=null),k.current===null&&(k.current=window.setTimeout(()=>{k.current=null,M(!1)},xt)))};(0,c.useEffect)(()=>()=>{ee()},[]);let{user:re,presence:R,photoUrl:z,loading:ie,error:B}=te({userId:r?void 0:e||t||n,fetchPresence:a||E,fetchPhoto:v,selectFields:Mt([S,C,w,T,...D?St:[]])}),V=r||re,H=V||null,U=(0,c.useMemo)(()=>H?{...H,email:n??Z(H.email),presenceActivity:R?.activity??Z(H.presenceActivity),presenceAvailability:R?.availability??Z(H.presenceAvailability)}:null,[n,R?.activity,R?.availability,H]);if((0,c.useEffect)(()=>{if(!(!y||ie)){if(r&&U){y({trigger:`personDetailsChanged`,person:U,loading:!1,error:B});return}if(B){y({trigger:`personLoadFailed`,person:null,loading:!1,error:B});return}U&&y({trigger:`personLoaded`,person:U,loading:!1,error:null})}},[B,ie,y,r,U]),ie)return(0,d.jsx)(u.Persona,{...b,name:x?void 0:b.name,primaryText:x||!Q(i,1)?void 0:b.primaryText===void 0?kt(1):b.primaryText,secondaryText:x||!Q(i,2)?void 0:b.secondaryText===void 0?kt(2):b.secondaryText,tertiaryText:x||!Q(i,3)?void 0:b.tertiaryText===void 0?kt(3):b.tertiaryText,quaternaryText:x||!Q(i,4)?void 0:b.quaternaryText===void 0?kt(4):b.quaternaryText});if(!V)return null;let W=U??H,G=V.displayName||`Unknown User`,K=A({...V,displayName:G})||void 0,ae=Et(W,S),oe=Et(W,C),se=Et(W,w),q=Et(W,T),ce=Q(i,1)?S&&ae!==G||m?Ot(1,W,ae,m):b.primaryText:void 0,le=Q(i,2)?Ot(2,W,oe,h):void 0,ue=Q(i,3)?Ot(3,W,se,g):void 0,de=Q(i,4)?Ot(4,W,q,_):void 0,fe=a&&R?{status:mt(R.availability)}:void 0,pe=b.presence??fe,J=(typeof W.photoUrl==`string`&&W.photoUrl.length>0?W.photoUrl:void 0)??z??void 0,me=b.avatar??{image:J?{src:J}:void 0,initials:J?void 0:K,name:G},he=x?void 0:b.name??G,ge=x?void 0:b.primaryText??ce,_e=x?void 0:b.secondaryText??le,ve=x?void 0:b.tertiaryText??ue,ye=x?void 0:b.quaternaryText??de,be=J?{...W,photoUrl:J}:W,xe=(0,d.jsx)(u.Persona,{...b,name:he,primaryText:ge,avatar:me,presence:pe,secondaryText:_e,tertiaryText:ve,quaternaryText:ye});return D?(0,d.jsxs)(u.Popover,{open:j,onOpenChange:(e,t)=>{if(!t.open){I();return}},positioning:`below-start`,trapFocus:N!==`hover`,children:[(0,d.jsx)(u.PopoverTrigger,{disableButtonEnhancement:!0,children:(0,d.jsx)(`span`,{style:{display:`inline-flex`,cursor:`pointer`},tabIndex:0,role:`button`,"aria-label":`Show details for ${G}`,"aria-haspopup":`dialog`,"aria-expanded":j,onClick:()=>{P(`click`),M(e=>!e)},onKeyDown:e=>{if(e.key===`Escape`){I();return}e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),P(`keyboard`),M(e=>!e))},onMouseEnter:L,onMouseLeave:ne,children:xe})}),(0,d.jsx)(u.PopoverSurface,{style:{padding:0,backgroundColor:`transparent`,border:`none`,boxShadow:`none`},onMouseEnter:L,onMouseLeave:ne,children:(0,d.jsx)(pt,{person:be,displayName:G,onEscape:I})})]}):xe},Pt=[`id`,`displayName`,`mail`,`userPrincipalName`,`jobTitle`,`department`],Ft=new Set(Pt),It=10,Lt=/^[a-zA-Z0-9_./]+$/,Rt=`asc`,zt=e=>({id:e.id??e.userPrincipalName??e.mail??`unknown-user`,givenName:e.givenName??null,surname:e.surname??null,displayName:e.displayName??null,mail:e.mail??null,userPrincipalName:e.userPrincipalName??null,jobTitle:e.jobTitle??null,department:e.department??null}),Bt=(e,t)=>({...e,presenceActivity:t?.activity??null,presenceAvailability:t?.availability??null}),Vt=e=>e.id??e.userPrincipalName??e.mail??void 0,Ht=e=>e.userPrincipalName??e.mail??e.id??void 0,Ut=e=>Array.from(new Set((e??[]).map(e=>e.trim()).filter(Boolean))),Wt=e=>Array.from(new Set((e??[]).map(e=>e.trim()).filter(e=>e.length>0&&Lt.test(e)))),Gt=(e,t)=>{let n=[...Pt,...Wt(e)];return(t===`givenName`||t===`surname`)&&n.push(t),Array.from(new Set(n))},Kt=e=>{let t=e.filter(e=>!Ft.has(e));return t.length>0?t:void 0},qt=(e,t)=>{let n=e[t];return typeof n==`string`&&n.trim().length>0?n:e.displayName??e.mail??e.userPrincipalName??e.id},Jt=(e,t,n=Rt)=>{if(!t)return e;let r=new Intl.Collator(void 0,{sensitivity:`base`,numeric:!0}),i=n===`desc`?-1:1;return e.map((e,t)=>({person:e,index:t})).sort((e,n)=>{let a=r.compare(qt(e.person,t),qt(n.person,t));return a===0?e.index-n.index:a*i}).map(e=>e.person)},Yt=e=>{let t=N(),n=E(),r=D(),i=JSON.stringify(e?.people??null),a=JSON.stringify(Ut(e?.userIds)),o=JSON.stringify(Wt(e?.selectFields).filter(e=>!Ft.has(e))),s=(0,c.useMemo)(()=>{if(i!==`null`)return JSON.parse(i)},[i]),l=(0,c.useMemo)(()=>JSON.parse(a),[a]),u=(0,c.useMemo)(()=>JSON.parse(o),[o]),d=(0,c.useMemo)(()=>Gt(u,e?.sortBy),[u,e?.sortBy]),f=(0,c.useMemo)(()=>Kt(d),[d]),p=(0,c.useMemo)(()=>e?.groupId?.trim(),[e?.groupId]),m=e?.maxPeople??It,h=e?.showPresence??!1,g=e?.sortBy,_=e?.sortDirection??Rt,[v,y]=(0,c.useState)({people:[],loading:!0,error:null});return(0,c.useEffect)(()=>{let e=!1,i=async e=>{if(P(n)){let t=await n.getPersonData({identifier:e,fetchPresence:h,fetchPhoto:!0,selectFields:f});return t.user?{...zt(t.user),photoUrl:t.photoUrl,presenceActivity:t.presence?.activity??null,presenceAvailability:t.presence?.availability??null}:null}if(r!==`SignedIn`||!t)return null;let i=e.toLowerCase()===`me`,a=await t.api(i?`/me`:`/users/${M(e)}`).select(d.join(`,`)).get(),o=null,s=null;if(h&&a.id)try{o=await t.api(i?`/me/presence`:`/users/${M(a.id)}/presence`).get()}catch{o=null}if(a.id)try{s=await j(await t.api(i?`/me/photo/$value`:`/users/${M(a.id)}/photo/$value`).get())}catch{s=null}return{...zt(a),photoUrl:s,presenceActivity:o?.activity??null,presenceAvailability:o?.availability??null}},a=async(e,t=Vt)=>(await Promise.all(e.map(async e=>{let n=t(e);if(!n)return h?Bt(e,null):e;let r=h&&!e.presenceAvailability&&!e.presenceActivity,a=!e.photoUrl;if(!r&&!a)return e;try{let t=await i(n);return t?{...e,photoUrl:e.photoUrl??t.photoUrl,presenceActivity:e.presenceActivity??t.presenceActivity,presenceAvailability:e.presenceAvailability??t.presenceAvailability}:e}catch{return e}}))).filter(e=>!!e.id);return(async()=>{if(e||y(e=>({...e,loading:!0,error:null})),s){let t=h||s.some(e=>!e.photoUrl)?await a(s,Ht):s;e||y({people:Jt(t,g,_),loading:!1,error:null});return}if(l.length>0){let t=(await Promise.allSettled(l.map(e=>i(e)))).flatMap(e=>e.status===`fulfilled`&&e.value?[e.value]:[]);e||y({people:Jt(t,g,_),loading:!1,error:null});return}if(!F(n)&&r!==`SignedIn`){e||y({people:[],loading:!1,error:null});return}try{let i=[];p?t&&r===`SignedIn`&&(i=((await t.api(`/groups/${M(p)}/members/microsoft.graph.user`).select(d.join(`,`)).top(m).get()).value??[]).map(zt)):F(n)?i=(await n.searchPeople(``,m)).map(e=>({...e,presenceActivity:null,presenceAvailability:null})):t&&r===`SignedIn`&&(i=((await t.api(`/users`).select(d.join(`,`)).top(m).get()).value??[]).map(zt)),(h||i.some(e=>!e.photoUrl))&&(i=await a(i)),e||y({people:Jt(i,g,_),loading:!1,error:null})}catch(t){e||y({people:[],loading:!1,error:t})}})(),()=>{e=!0}},[s,i,t,p,m,n,f,r,d,h,g,_,l]),v},Xt=3,Zt=10,Qt=e=>{switch(e?.toLowerCase()){case`available`:case`availableidle`:return`available`;case`away`:case`berightback`:return`away`;case`busy`:case`busyidle`:case`donotdisturb`:return`busy`;case`offline`:case`presenceunknown`:return`offline`;default:return}},$t=e=>e.displayName??e.mail??e.userPrincipalName??e.id,en=e=>{let t=$t(e),n=Qt(e.presenceAvailability);return(0,d.jsx)(u.AvatarGroupItem,{name:t,avatar:{name:t,image:e.photoUrl?{src:e.photoUrl}:void 0,initials:e.photoUrl?void 0:A({...e,displayName:t})||void 0,badge:n?{status:n}:void 0,color:`colorful`}},e.id)},tn=({people:e,userIds:t,selectFields:n,sortBy:r,sortDirection:i,groupId:a,showMax:o=Xt,showPresence:s=!1,layout:l=`stack`,size:f=32,onUpdated:p,...m})=>{let{people:h,loading:g,error:_}=Yt({people:e,userIds:t,selectFields:n,sortBy:r,sortDirection:i,groupId:a,maxPeople:Math.max(Zt,o+5),showPresence:s});if((0,c.useEffect)(()=>{if(!p||g)return;let t=`peopleLoaded`;_?t=`peopleLoadFailed`:e&&(t=`peopleChanged`),p({trigger:t,people:h,loading:!1,error:_})},[_,g,p,e,h]),g)return(0,d.jsx)(u.Spinner,{size:`tiny`});if(h.length===0)return null;let v=Math.max(0,o),y=h.slice(0,v),b=h.slice(v);return(0,d.jsxs)(u.AvatarGroup,{layout:l,size:f,...m,children:[y.map(en),b.length>0&&(0,d.jsx)(u.AvatarGroupPopover,{count:b.length,children:b.map(en)})]})},nn=`id,displayName,mail,userPrincipalName,jobTitle,department`,rn=[],an=e=>e.trim().replace(/"/g,``).trim(),on=(e,t)=>{let n=N(),r=E(),i=D(),a=t?.minChars??1,o=t?.maxResults??10,s=t?.loadInitialResults??!1,[l,u]=(0,c.useState)([]),[d,f]=(0,c.useState)(!1),p=an(e),m=s&&e.length===0,h=!m&&(!p||p.length<a);return(0,c.useEffect)(()=>{if(h)return;let e=!1,t=async()=>{f(!0);try{if(F(r)){let t=await r.searchPeople(m?``:p,o);e||u(t)}else if(i===`SignedIn`&&n){let t;t=m?(await n.api(`/users`).select(nn).top(o).get()).value??[]:(await n.api(`/users`).header(`ConsistencyLevel`,`eventual`).search(`"displayName:${p}" OR "mail:${p}" OR "userPrincipalName:${p}"`).select(nn).top(o).get()).value??[],e||u(t)}else e||u([])}catch{e||u([])}finally{e||f(!1)}};if(m)return t(),()=>{e=!0,f(!1)};let a=setTimeout(()=>{t()},300);return()=>{e=!0,clearTimeout(a),f(!1)}},[e,n,r,i,a,o,s,p,m,h]),{results:h?rn:l,loading:h?!1:d}},sn=`__no_results__`,cn=50,ln=(e,t,n,r)=>e.filter(e=>!t.includes(e.id)&&!n.includes(e.id)).slice(0,r),un=e=>e.displayName||e.mail||e.userPrincipalName||e.id,dn=e=>e.mail??e.userPrincipalName??void 0,fn=({person:e,size:t,photoUrl:n})=>(0,d.jsx)(u.Avatar,{name:e.displayName??void 0,image:n?{src:n}:void 0,initials:n?void 0:A(e),size:t}),pn=({person:e,size:t})=>{let{photoUrl:n}=te({userId:e.id,fetchPhoto:!0});return(0,d.jsx)(fn,{person:e,size:t,photoUrl:n})},mn=({person:e,size:t})=>e.photoUrl?(0,d.jsx)(fn,{person:e,size:t,photoUrl:e.photoUrl}):(0,d.jsx)(pn,{person:e,size:t}),hn=({selectedPeople:e,defaultSelectedPeople:t,onSelectionChange:n,placeholder:r=`Search for people...`,maxPeople:i,searchMinChars:a=1,maxSearchResults:o=10,excludeUserIds:s=[],appearance:l,size:f,disabled:p,onUpdated:m})=>{let h=e!==void 0,[g,_]=(0,c.useState)(t??[]),v=h?e:g,[y,b]=(0,c.useState)(``),[x,S]=(0,c.useState)(!1),C=(0,c.useMemo)(()=>Array.from(new Set(s)),[s]),{results:w,loading:T}=on(y,{minChars:a,maxResults:Math.min(o+C.length,cn),loadInitialResults:x}),E=(0,c.useMemo)(()=>{let e=new Map;for(let t of v)e.set(t.id,t);for(let t of w)e.set(t.id,t);return e},[v,w]),D=(0,c.useMemo)(()=>v.map(e=>e.id),[v]),O=(0,c.useMemo)(()=>ln(w,D,C,o),[w,D,C,o]),k=(0,c.useCallback)((e,t)=>{let r=t.selectedOptions.filter(e=>e!==sn).map(e=>E.get(e)).filter(e=>e!==void 0),i=ln(w,r.map(e=>e.id),C,o);h||_(r),n?.(r),m?.({trigger:`selectionChanged`,searchQuery:``,selectedPeople:r,searchResults:i,loading:T}),b(``)},[h,o,n,m,E,T,w,C]),A=(0,c.useCallback)(e=>{b(e.target.value)},[]),j=(0,c.useCallback)(()=>{S(!0)},[]),M=(0,c.useCallback)(()=>{S(!1)},[]),N=i!==void 0&&v.length>=i,P=(0,c.useRef)(!0);return(0,c.useEffect)(()=>{if(!m||T)return;let e=P.current&&y.length===0&&O.length===0;P.current=!1,!e&&m({trigger:`searchResultsUpdated`,searchQuery:y,selectedPeople:v,searchResults:O,loading:!1})},[v,O,m,T,y]),(0,d.jsxs)(u.TagPicker,{onOptionSelect:k,selectedOptions:D,appearance:l,size:f,disabled:p,children:[(0,d.jsxs)(u.TagPickerControl,{expandIcon:(0,d.jsx)(rt,{}),children:[(0,d.jsx)(u.TagPickerGroup,{children:v.map(e=>(0,d.jsxs)(u.InteractionTag,{value:e.id,shape:`rounded`,children:[(0,d.jsx)(u.InteractionTagPrimary,{hasSecondaryAction:!0,media:(0,d.jsx)(mn,{person:e,size:16}),children:un(e)}),(0,d.jsx)(u.InteractionTagSecondary,{"aria-label":`Remove ${un(e)}`})]},e.id))}),!N&&(0,d.jsx)(u.TagPickerInput,{value:y,onChange:A,onFocus:j,onBlur:M,placeholder:v.length===0?r:void 0,disabled:p})]}),(0,d.jsxs)(u.TagPickerList,{children:[y.length>=a&&!T&&O.length===0&&(0,d.jsx)(u.TagPickerOption,{value:sn,text:`No people found`,style:{pointerEvents:`none`,color:`var(--colorNeutralForegroundDisabled)`},children:`No people found`}),O.map(e=>(0,d.jsx)(u.TagPickerOption,{value:e.id,media:(0,d.jsx)(mn,{person:e,size:32}),secondaryContent:dn(e),children:un(e)},e.id))]})]})},gn=`data:image/jpeg;base64,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`,$=[{id:`00000000-0000-0000-0000-000000000001`,givenName:`Adele`,surname:`Vance`,displayName:`Adele Vance`,mail:`adelev@contoso.com`,userPrincipalName:`adelev@contoso.com`,jobTitle:`Product Manager`,department:`Marketing`},{id:`00000000-0000-0000-0000-000000000002`,givenName:`Alex`,surname:`Wilber`,displayName:`Alex Wilber`,mail:`alexw@contoso.com`,userPrincipalName:`alexw@contoso.com`,jobTitle:`Marketing Assistant`,department:`Marketing`},{id:`00000000-0000-0000-0000-000000000003`,givenName:`Diego`,surname:`Siciliani`,displayName:`Diego Siciliani`,mail:`diegosi@contoso.com`,userPrincipalName:`diegosi@contoso.com`,jobTitle:`HR Manager`,department:`Human Resources`},{id:`00000000-0000-0000-0000-000000000004`,givenName:`Grady`,surname:`Archie`,displayName:`Grady Archie`,mail:`gradya@contoso.com`,userPrincipalName:`gradya@contoso.com`,jobTitle:`Accountant`,department:`Finance`},{id:`00000000-0000-0000-0000-000000000005`,givenName:`Henrietta`,surname:`Mueller`,displayName:`Henrietta Mueller`,mail:`henriettam@contoso.com`,userPrincipalName:`henriettam@contoso.com`,jobTitle:`Graphic Designer`,department:`Creative`},{id:`00000000-0000-0000-0000-000000000006`,givenName:`Isaiah`,surname:`Langer`,displayName:`Isaiah Langer`,mail:`isaiahl@contoso.com`,userPrincipalName:`isaiahl@contoso.com`,jobTitle:`Sales Rep`,department:`Sales`},{id:`00000000-0000-0000-0000-000000000007`,givenName:`Johanna`,surname:`Lorenz`,displayName:`Johanna Lorenz`,mail:`johannal@contoso.com`,userPrincipalName:`johannal@contoso.com`,jobTitle:`Research Lead`,department:`R&D`},{id:`00000000-0000-0000-0000-000000000008`,givenName:`Joni`,surname:`Sherman`,displayName:`Joni Sherman`,mail:`jonis@contoso.com`,userPrincipalName:`jonis@contoso.com`,jobTitle:`Paralegal`,department:`Legal`},{id:`00000000-0000-0000-0000-000000000009`,givenName:`Lee`,surname:`Gu`,displayName:`Lee Gu`,mail:`leeg@contoso.com`,userPrincipalName:`leeg@contoso.com`,jobTitle:`Director`,department:`Engineering`},{id:`00000000-0000-0000-0000-000000000010`,givenName:`Megan`,surname:`Bowen`,displayName:`Megan Bowen`,mail:`meganb@contoso.com`,userPrincipalName:`meganb@contoso.com`,jobTitle:`Marketing Manager`,department:`Marketing`}].map(e=>({...e,photoUrl:gn})),_n=class{state=`SignedOut`;listeners=[];constructor(e){e?.autoSignIn&&(this.state=`SignedIn`)}getAccessToken(){return this.state===`SignedIn`?Promise.resolve(`mock-token`):Promise.reject(Error(`Not signed in`))}async getPersonData(e){let t=e.identifier?.trim(),n=t?.toLowerCase(),r=n&&n!==`me`?$.find(e=>e.id.toLowerCase()===n||e.mail?.toLowerCase()===n||e.userPrincipalName?.toLowerCase()===n||e.displayName?.toLowerCase()===n):$[0],i=r??$[0],a=r||!t||t===`me`?i.userPrincipalName:t,o={id:i.id,givenName:i.givenName,surname:i.surname,displayName:i.displayName,userPrincipalName:a,jobTitle:i.jobTitle,department:i.department,officeLocation:`19/3106`,mail:i.mail},s={availability:`Available`,activity:`Available`,id:o.id,odataType:`#microsoft.graph.presence`};return{user:o,presence:e.fetchPresence?s:null,photoUrl:e.fetchPhoto?gn:null}}async searchPeople(e,t=10){let n=e.trim();if(!n)return $.slice(0,t);let r=n.toLowerCase();return $.filter(e=>e.displayName?.toLowerCase().includes(r)||e.mail?.toLowerCase().includes(r)||e.userPrincipalName?.toLowerCase().includes(r)).slice(0,t)}async login(){this.state=`SignedIn`,this.emit()}async logout(){this.state=`SignedOut`,this.emit()}getState(){return this.state}onStateChanged(e){this.listeners.push(e)}removeStateChangedHandler(e){this.listeners=this.listeners.filter(t=>t!==e)}emit(){for(let e of this.listeners)try{e()}catch{}}},vn=()=>new _n({autoSignIn:!0});function yn(e){return`See https://aka.ms/msal.js.errors#${e} for details`}var bn=class e extends Error{constructor(t,n,r,i){let a=r||(t?yn(t):``),o=a?`${t}: ${a}`:t;super(o),Object.setPrototypeOf(this,e.prototype),this.errorCode=t||``,this.errorMessage=a||``,this.subError=i||``,this.correlationId=n,this.name=`AuthError`}},xn=class e extends bn{constructor(t,n,r,i,a,o,s,c){super(t,n,r,i),Object.setPrototypeOf(this,e.prototype),this.timestamp=a||``,this.traceId=o||``,this.claims=s||``,this.name=`InteractionRequiredAuthError`,this.errorNo=c}},Sn=class extends Error{constructor(e){super(e),this.name=`RedirectInProgressError`}},Cn=class{msalInstance;defaultScopes;account=null;state=`Loading`;listeners=[];constructor(e,t){this.msalInstance=e,this.defaultScopes=t}async initialize(){await this.msalInstance.initialize();let e=await this.msalInstance.handleRedirectPromise();if(e?.account){this.account=e.account,this.msalInstance.setActiveAccount(this.account),this.setState(`SignedIn`);return}let t=this.msalInstance.getActiveAccount(),n=this.msalInstance.getAllAccounts();this.account=t??n[0]??null,this.account?(this.msalInstance.setActiveAccount(this.account),this.setState(`SignedIn`)):this.setState(`SignedOut`)}async login(){let e={scopes:this.defaultScopes};await this.msalInstance.loginRedirect(e)}async logout(){let e=this.msalInstance.getActiveAccount()??this.account??void 0;this.account=null,this.msalInstance.setActiveAccount(null),this.setState(`SignedOut`),await this.msalInstance.logoutRedirect({account:e})}async getAccessToken(e){let t=e&&e.length>0?e:this.defaultScopes,n=this.msalInstance.getActiveAccount()??this.account;if(!n)throw Error(`No active account. User must sign in first.`);let r={scopes:t,account:n};try{return(await this.msalInstance.acquireTokenSilent(r)).accessToken}catch(e){if(e instanceof xn){let e={scopes:t,account:n};throw await this.msalInstance.acquireTokenRedirect(e),new Sn(`Redirecting for interactive token acquisition.`)}throw e}}getState(){return this.state}onStateChanged(e){this.listeners.push(e)}removeStateChangedHandler(e){this.listeners=this.listeners.filter(t=>t!==e)}setState(e){this.state=e,this.emit()}emit(){for(let e of this.listeners)try{e()}catch{}}},wn=6e4;function Tn(e){let t=e.fetchFn??fetch;return async({ssoToken:n,scopes:r})=>{let i=await t(e.endpoint,{method:`POST`,headers:{Authorization:`Bearer ${n}`,"Content-Type":`application/json`},body:JSON.stringify({scopes:r})}),a=await i.json().catch(()=>({error:i.statusText||`Token exchange failed`}));if(!i.ok){let e=a?.error||a?.message||i.statusText;throw Error(`Backend token exchange failed: ${e}`)}if(!a?.accessToken)throw Error(`Backend token exchange response did not include accessToken.`);return{accessToken:a.accessToken,expiresAt:a.expiresAt}}}var En=class{defaultScopes;getTeamsSsoTokenFn;exchangeForGraphTokenFn;refreshSkewMs;state=`SignedOut`;listeners=[];tokenCache=new Map;constructor(e){if(!e.defaultScopes||e.defaultScopes.length===0)throw Error(`TeamsHostedProvider requires at least one default scope.`);this.defaultScopes=[...new Set(e.defaultScopes)],this.getTeamsSsoTokenFn=e.getTeamsSsoToken,this.exchangeForGraphTokenFn=e.exchangeForGraphToken,this.refreshSkewMs=e.refreshSkewMs??wn}async login(){try{await this.getAccessToken(),this.setState(`SignedIn`)}catch(e){throw this.clearCache(),this.setState(`SignedOut`),e}}async logout(){this.clearCache(),this.setState(`SignedOut`)}async getAccessToken(e){let t=this.normalizeScopes(e),n=this.buildScopeKey(t),r=this.tokenCache.get(n);if(r&&this.isTokenValid(r))return r.accessToken;let i=await this.getTeamsSsoTokenFn(t);if(!i)throw Error(`Teams SSO token acquisition returned empty token.`);let a=await this.exchangeForGraphTokenFn({ssoToken:i,scopes:t}),o=this.normalizeExchangedToken(a);return this.tokenCache.set(n,o),this.setState(`SignedIn`),o.accessToken}getState(){return this.state}onStateChanged(e){this.listeners.push(e)}removeStateChangedHandler(e){this.listeners=this.listeners.filter(t=>t!==e)}normalizeScopes(e){let t=e&&e.length>0?e:this.defaultScopes,n=[...new Set(t.filter(Boolean))];if(n.length===0)throw Error(`At least one scope is required to request a Graph token.`);return n}buildScopeKey(e){return[...e].sort().join(` `)}isTokenValid(e){return e.expiresAtMs?Date.now()+this.refreshSkewMs<e.expiresAtMs:!0}normalizeExchangedToken(e){if(typeof e==`string`){if(!e)throw Error(`Graph token exchange returned empty access token.`);return{accessToken:e}}if(!e.accessToken)throw Error(`Graph token exchange returned empty access token.`);return{accessToken:e.accessToken,expiresAtMs:this.toEpochMs(e.expiresAt)}}toEpochMs(e){if(e)return e instanceof Date?e.getTime():e}clearCache(){this.tokenCache.clear()}setState(e){this.state!==e&&(this.state=e,this.emit())}emit(){for(let e of this.listeners)try{e()}catch{}}};exports.GraphProvider=T,exports.MockProvider=_n,exports.MsalBrowserProvider=Cn,exports.People=tn,exports.PeoplePicker=hn,exports.Person=Nt,exports.PersonCard=pt,exports.RedirectInProgressError=Sn,exports.TeamsHostedProvider=En,exports.createBackendTokenExchange=Tn,exports.createMockSignedInProvider=vn,exports.isPeopleSearchProvider=F,exports.isPersonDataProvider=P,exports.useGraphClient=N,exports.usePeopleList=Yt,exports.usePeopleSearch=on,exports.usePersonCacheOptions=O,exports.usePersonData=te,exports.useProvider=E,exports.useProviderState=D;
|