@devsym/graph-toolkit-react 1.0.0-next.11 → 1.0.0-next.14

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/dist/index.mjs CHANGED
@@ -1,1596 +1,1544 @@
1
- import { jsx as I, jsxs as W } from "react/jsx-runtime";
2
- import { Persona as we, Spinner as pt, AvatarGroup as ht, AvatarGroupPopover as St, AvatarGroupItem as Pt, TagPicker as mt, TagPickerControl as yt, TagPickerGroup as wt, InteractionTag as kt, InteractionTagPrimary as It, InteractionTagSecondary as Bt, TagPickerInput as Ct, TagPickerList as jt, TagPickerOption as ke, Avatar as Ot } from "@fluentui/react-components";
3
- import * as H from "react";
4
- import { createContext as xt, useCallback as b, useSyncExternalStore as Ht, useMemo as R, useContext as de, useState as N, useEffect as ge } from "react";
5
- import { Client as Dt } from "@microsoft/microsoft-graph-client";
6
- const Et = "graph-toolkit-person-cache", L = "personData", vt = 1, Rt = 3600 * 1e3, Jt = 3600 * 1e3, Tt = 300 * 1e3, Me = {
7
- enabled: !0,
8
- userTtlMs: Rt,
9
- photoTtlMs: Jt,
10
- presenceTtlMs: Tt
11
- }, fe = () => typeof window < "u" && typeof window.indexedDB < "u", Qe = (e) => new Promise((t, n) => {
12
- e.onsuccess = () => t(e.result), e.onerror = () => n(e.error);
13
- }), Ue = () => new Promise((e, t) => {
14
- if (!fe()) {
15
- t(new Error("IndexedDB unavailable"));
16
- return;
17
- }
18
- const n = window.indexedDB.open(Et, vt);
19
- n.onupgradeneeded = () => {
20
- const s = n.result;
21
- s.objectStoreNames.contains(L) || s.createObjectStore(L);
22
- }, n.onsuccess = () => e(n.result), n.onerror = () => t(n.error);
23
- }), Gt = (e) => `person:${e.trim().toLowerCase()}`, oe = (e, t) => e ? Date.now() - e < t : !1, Mt = async (e) => {
24
- if (!fe())
25
- return null;
26
- let t = null;
27
- try {
28
- t = await Ue();
29
- const s = t.transaction(L, "readonly").objectStore(L);
30
- return await Qe(s.get(e)) ?? null;
31
- } catch {
32
- return null;
33
- } finally {
34
- t?.close();
35
- }
36
- }, Qt = async (e, t) => {
37
- if (!fe())
38
- return;
39
- let n = null;
40
- try {
41
- n = await Ue();
42
- const r = n.transaction(L, "readwrite").objectStore(L);
43
- await Qe(r.put(t, e));
44
- } catch {
45
- return;
46
- } finally {
47
- n?.close();
48
- }
49
- }, ne = xt({
50
- provider: null,
51
- state: "Loading",
52
- personCacheOptions: Me
53
- }), As = ({
54
- provider: e,
55
- children: t,
56
- personCacheOptions: n
57
- }) => {
58
- const s = b(
59
- () => e?.getState?.() ?? "Loading",
60
- [e]
61
- ), r = b(
62
- (a) => (e.onStateChanged?.(a), () => {
63
- const u = e;
64
- typeof u.removeStateChangedHandler == "function" && u.removeStateChangedHandler(a);
65
- }),
66
- [e]
67
- ), o = Ht(r, s, s), i = R(
68
- () => ({
69
- ...Me,
70
- ...n ?? {}
71
- }),
72
- [n]
73
- ), c = R(
74
- () => ({
75
- provider: e,
76
- state: o,
77
- personCacheOptions: i
78
- }),
79
- [e, o, i]
80
- );
81
- return /* @__PURE__ */ I(ne.Provider, { value: c, children: t });
82
- }, se = () => {
83
- const { provider: e } = de(ne);
84
- return e;
85
- }, re = () => {
86
- const { state: e } = de(ne);
87
- return e;
88
- }, Ut = () => {
89
- const { personCacheOptions: e } = de(ne);
90
- return e;
91
- }, Nt = (e) => Dt.init({
92
- authProvider: async (t) => {
93
- try {
94
- const n = await e.getAccessToken();
95
- t(null, n);
96
- } catch (n) {
97
- t(n, null);
98
- }
99
- }
100
- }), Ne = (e) => {
101
- if (!e) return "";
102
- const t = e.trim().split(" ");
103
- return t.length === 1 ? t[0].substring(0, 2).toUpperCase() : (t[0][0] + t[t.length - 1][0]).toUpperCase();
104
- }, be = async (e) => {
105
- if (!e)
106
- return null;
107
- if (typeof e == "string")
108
- return e;
109
- const t = e instanceof Blob ? e : e instanceof ArrayBuffer ? new Blob([e]) : null;
110
- return t ? new Promise((n, s) => {
111
- const r = new FileReader();
112
- r.onloadend = () => n(typeof r.result == "string" ? r.result : null), r.onerror = () => s(r.error), r.readAsDataURL(t);
113
- }) : null;
114
- }, U = (e) => encodeURIComponent(e.trim()), pe = () => {
115
- const e = se(), t = re();
116
- return R(() => !e || t !== "SignedIn" ? null : Nt(e), [e, t]);
117
- }, Fe = (e) => typeof e == "object" && e !== null && typeof e.getPersonData == "function", Ae = (e) => typeof e == "object" && e !== null && typeof e.searchPeople == "function", Ie = [
118
- "id",
119
- "displayName",
120
- "jobTitle",
121
- "mail",
122
- "department",
123
- "officeLocation",
124
- "userPrincipalName"
125
- ], Le = (e) => {
126
- const t = pe(), n = se(), s = re(), r = Ut(), { userId: o, userPrincipalName: i, fetchPresence: c = !1, fetchPhoto: a = !0, selectFields: u } = e, d = [
127
- .../* @__PURE__ */ new Set([
128
- ...Ie,
129
- ...(u ?? []).map((l) => l.trim()).filter((l) => l.length > 0 && /^[a-zA-Z0-9_./]+$/.test(l))
130
- ])
131
- ].join(","), [g, A] = N({
132
- user: null,
133
- presence: null,
134
- photoUrl: null,
135
- loading: !0,
136
- error: null
137
- });
138
- return ge(() => {
139
- let l = !1;
140
- const p = d.split(",").filter((S) => !Ie.includes(S));
141
- return (async () => {
142
- const S = o || i;
143
- if (Fe(n)) {
144
- try {
145
- const w = await n.getPersonData({
146
- identifier: S,
147
- fetchPresence: c,
148
- fetchPhoto: a,
149
- selectFields: p.length > 0 ? p : void 0
150
- });
151
- l || A({
152
- user: w.user,
153
- presence: w.presence,
154
- photoUrl: w.photoUrl,
155
- loading: !1,
156
- error: null
157
- });
158
- } catch (w) {
159
- l || A({
160
- user: null,
161
- presence: null,
162
- photoUrl: null,
163
- loading: !1,
164
- error: w
165
- });
166
- }
167
- return;
168
- }
169
- if (s !== "SignedIn") {
170
- l || A({
171
- user: null,
172
- presence: null,
173
- photoUrl: null,
174
- loading: !1,
175
- error: s === "SignedOut" ? null : new Error("Provider not signed in")
176
- });
177
- return;
178
- }
179
- if (!t) {
180
- l || A((w) => ({ ...w, loading: !0 }));
181
- return;
182
- }
183
- if (!S) {
184
- l || A({
185
- user: null,
186
- presence: null,
187
- photoUrl: null,
188
- loading: !1,
189
- error: null
190
- });
191
- return;
192
- }
193
- const m = Gt(S), h = r.enabled ? await Mt(m) : null, y = !!(h?.user && oe(h.userCachedAt, r.userTtlMs)), O = !!(h?.presenceCachedAt && oe(h.presenceCachedAt, r.presenceTtlMs)), k = !!(h?.photoCachedAt && oe(h.photoCachedAt, r.photoTtlMs));
194
- if (y && (!c || O) && (!a || k)) {
195
- l || A({
196
- user: h?.user ?? null,
197
- presence: c ? h?.presence ?? null : null,
198
- photoUrl: a ? h?.photoUrl ?? null : null,
199
- loading: !1,
200
- error: null
201
- });
202
- return;
203
- }
204
- try {
205
- A((P) => ({ ...P, loading: !0, error: null }));
206
- const w = S.toLowerCase() === "me", C = Date.now();
207
- let T = !1, D = !1, E = !1, x = y ? h?.user ?? null : null;
208
- if (x || (x = await t.api(w ? "/me" : `/users/${U(S)}`).select(d).get(), T = !0), l) return;
209
- let v = null, B = null;
210
- if (c) {
211
- if (O)
212
- v = h?.presence ?? null;
213
- else if (x?.id) {
214
- try {
215
- v = await t.api(
216
- w ? "/me/presence" : `/users/${U(x.id)}/presence`
217
- ).get();
218
- } catch (P) {
219
- console.warn("Failed to fetch presence:", P);
220
- }
221
- D = !0;
222
- }
223
- }
224
- if (a) {
225
- if (k)
226
- B = h?.photoUrl ?? null;
227
- else if (x?.id) {
228
- try {
229
- const P = await t.api(
230
- w ? "/me/photo/$value" : `/users/${U(x.id)}/photo/$value`
231
- ).get();
232
- B = await be(P);
233
- } catch (P) {
234
- console.warn("Failed to fetch photo:", P);
235
- }
236
- E = !0;
237
- }
238
- }
239
- const j = {
240
- ...h ?? {}
241
- };
242
- T && x && (j.user = x, j.userCachedAt = C), c && (D || O) && (j.presence = D ? v : h?.presence, j.presenceCachedAt = D ? C : h?.presenceCachedAt), a && (E || k) && (j.photoUrl = E ? B : h?.photoUrl, j.photoCachedAt = E ? C : h?.photoCachedAt), r.enabled && (T || D || E) && j.user && await Qt(m, j), l || A({
243
- user: x,
244
- presence: v,
245
- photoUrl: B,
246
- loading: !1,
247
- error: null
248
- });
249
- } catch (w) {
250
- l || A({
251
- user: null,
252
- presence: null,
253
- photoUrl: null,
254
- loading: !1,
255
- error: w
256
- });
257
- }
258
- })(), () => {
259
- l = !0;
260
- };
261
- }, [t, n, s, o, i, c, a, r, d]), g;
262
- }, bt = (e) => {
263
- switch (e?.toLowerCase()) {
264
- case "available":
265
- case "availableidle":
266
- return "available";
267
- case "away":
268
- case "berightback":
269
- return "away";
270
- case "busy":
271
- case "busyidle":
272
- case "donotdisturb":
273
- return "busy";
274
- default:
275
- return "offline";
276
- }
277
- }, Ft = {
278
- avatar: [void 0, void 0, void 0, void 0],
279
- oneline: ["displayName", void 0, void 0, void 0],
280
- twolines: ["displayName", "jobTitle", void 0, void 0],
281
- threelines: ["displayName", "jobTitle", "department", void 0],
282
- fourlines: ["displayName", "jobTitle", "department", "officeLocation,mail"]
283
- }, Ke = /* @__PURE__ */ new Set(["presenceActivity", "presenceAvailability"]), Lt = /* @__PURE__ */ new Set(["email", ...Ke]), he = (e) => e?.split(",").map((t) => t.trim()).filter(Boolean) ?? [], M = (e) => {
284
- if (e != null) {
285
- if (typeof e == "string")
286
- return e || void 0;
287
- if (typeof e == "number" || typeof e == "boolean")
288
- return String(e);
289
- if (Array.isArray(e)) {
290
- const t = e.map((n) => M(n)).filter((n) => !!n);
291
- return t.length > 0 ? t.join(", ") : void 0;
292
- }
293
- }
294
- }, Kt = (e) => M(e.mail) ?? M(e.email) ?? M(e.userPrincipalName), Z = (e, t) => {
295
- const n = he(t);
296
- for (const s of n)
297
- switch (s) {
298
- case "mail":
299
- case "email": {
300
- const r = Kt(e);
301
- if (r)
302
- return r;
303
- break;
304
- }
305
- default: {
306
- const r = M(e[s]);
307
- if (r)
308
- return r;
309
- }
310
- }
311
- }, qt = (e, t, n) => ({ line: e, person: t, text: n }), K = (e, t, n, s) => s ? s(qt(e, t, n)) : n, _ = (e, t, n) => n ?? Ft[e][t - 1], Wt = (e) => [...new Set(e.flatMap((t) => he(t)))].filter((t) => !Lt.has(t)), ds = ({
312
- userId: e,
313
- userPrincipalName: t,
314
- email: n,
315
- personDetails: s,
316
- view: r = "oneline",
317
- showPresence: o = !1,
318
- line1Property: i,
319
- line2Property: c,
320
- line3Property: a,
321
- line4Property: u,
322
- renderLine1: d,
323
- renderLine2: g,
324
- renderLine3: A,
325
- renderLine4: l,
326
- fetchImage: p = !0,
327
- ...f
328
- }) => {
329
- const S = r === "avatar" ? void 0 : _(r, 1, i), m = r === "avatar" ? void 0 : _(r, 2, c), h = r === "threelines" || r === "fourlines" ? _(r, 3, a) : void 0, y = r === "fourlines" ? _(r, 4, u) : void 0, O = [S, m, h, y].some((gt) => he(gt).some((ft) => Ke.has(ft))), { user: k, presence: w, photoUrl: C, loading: T } = Le({
330
- userId: s ? void 0 : e || t || n,
331
- fetchPresence: o || O,
332
- fetchPhoto: p,
333
- selectFields: Wt([
334
- S,
335
- m,
336
- h,
337
- y
338
- ])
339
- }), D = s || k;
340
- if (T)
341
- return /* @__PURE__ */ I(
342
- we,
343
- {
344
- ...f,
345
- name: f.name ?? "Loading..."
346
- }
347
- );
348
- if (!D)
349
- return null;
350
- const E = D.displayName || "Unknown User", x = Ne(E), v = D, B = {
351
- ...v,
352
- email: n ?? M(v.email),
353
- presenceActivity: w?.activity ?? M(v.presenceActivity),
354
- presenceAvailability: w?.availability ?? M(v.presenceAvailability)
355
- }, j = Z(B, S), P = Z(B, m), G = Z(B, h), V = Z(B, y), Q = S && j !== E || d ? K(1, B, j, d) : f.primaryText, nt = K(2, B, P, g), st = K(3, B, G, A), rt = K(4, B, V, l), ot = o && w ? {
356
- status: bt(w.availability)
357
- } : void 0, it = f.presence ?? ot, ct = f.avatar ?? {
358
- image: C ? { src: C } : void 0,
359
- initials: C ? void 0 : x
360
- }, at = f.name ?? E, lt = f.primaryText ?? Q, ut = f.secondaryText ?? nt, At = f.tertiaryText ?? st, dt = f.quaternaryText ?? rt;
361
- return /* @__PURE__ */ I(
362
- we,
363
- {
364
- ...f,
365
- name: at,
366
- primaryText: lt,
367
- avatar: ct,
368
- presence: it,
369
- secondaryText: ut,
370
- tertiaryText: At,
371
- quaternaryText: dt
372
- }
373
- );
374
- }, Be = "id,displayName,mail,userPrincipalName,jobTitle,department", Yt = "id,displayName,mail,userPrincipalName,jobTitle,department", zt = 10, $ = (e) => ({
375
- id: e.id ?? e.userPrincipalName ?? e.mail ?? "unknown-user",
376
- displayName: e.displayName ?? null,
377
- mail: e.mail ?? null,
378
- userPrincipalName: e.userPrincipalName ?? null,
379
- jobTitle: e.jobTitle ?? null,
380
- department: e.department ?? null
381
- }), Xt = (e, t) => ({
382
- ...e,
383
- presenceActivity: t?.activity ?? null,
384
- presenceAvailability: t?.availability ?? null
385
- }), Vt = (e) => e.id ?? e.userPrincipalName ?? e.mail ?? void 0, Zt = (e) => e.userPrincipalName ?? e.mail ?? e.id ?? void 0, _t = (e) => Array.from(new Set((e ?? []).map((t) => t.trim()).filter(Boolean))), $t = (e) => {
386
- const t = pe(), n = se(), s = re(), r = JSON.stringify(e?.people ?? null), o = R(() => {
387
- if (r !== "null")
388
- return JSON.parse(r);
389
- }, [r]), i = R(() => _t(e?.userIds), [e?.userIds]), c = R(() => e?.groupId?.trim(), [e?.groupId]), a = e?.maxPeople ?? zt, u = e?.showPresence ?? !1, [d, g] = N({
390
- people: [],
391
- loading: !0,
392
- error: null
393
- });
394
- return ge(() => {
395
- let A = !1;
396
- const l = async (S) => {
397
- if (Fe(n)) {
398
- const k = await n.getPersonData({
399
- identifier: S,
400
- fetchPresence: u,
401
- fetchPhoto: !0
402
- });
403
- return k.user ? {
404
- ...$(k.user),
405
- photoUrl: k.photoUrl,
406
- presenceActivity: k.presence?.activity ?? null,
407
- presenceAvailability: k.presence?.availability ?? null
408
- } : null;
409
- }
410
- if (s !== "SignedIn" || !t)
411
- return null;
412
- const m = S.toLowerCase() === "me", h = await t.api(m ? "/me" : `/users/${U(S)}`).select(Be).get();
413
- let y = null, O = null;
414
- if (u && h.id)
415
- try {
416
- y = await t.api(
417
- m ? "/me/presence" : `/users/${U(h.id)}/presence`
418
- ).get();
419
- } catch {
420
- y = null;
421
- }
422
- if (h.id)
423
- try {
424
- const k = await t.api(
425
- m ? "/me/photo/$value" : `/users/${U(h.id)}/photo/$value`
426
- ).get();
427
- O = await be(k);
428
- } catch {
429
- O = null;
430
- }
431
- return {
432
- ...$(h),
433
- photoUrl: O,
434
- presenceActivity: y?.activity ?? null,
435
- presenceAvailability: y?.availability ?? null
436
- };
437
- }, p = async (S, m = Vt) => (await Promise.all(
438
- S.map(async (y) => {
439
- const O = m(y);
440
- if (!O)
441
- return u ? Xt(y, null) : y;
442
- const k = u && !y.presenceAvailability && !y.presenceActivity, w = !y.photoUrl;
443
- if (!k && !w)
444
- return y;
445
- try {
446
- const C = await l(O);
447
- return C ? {
448
- ...y,
449
- photoUrl: y.photoUrl ?? C.photoUrl,
450
- presenceActivity: y.presenceActivity ?? C.presenceActivity,
451
- presenceAvailability: y.presenceAvailability ?? C.presenceAvailability
452
- } : y;
453
- } catch {
454
- return y;
455
- }
456
- })
457
- )).filter((y) => !!y.id);
458
- return (async () => {
459
- if (A || g((S) => ({ ...S, loading: !0, error: null })), o) {
460
- const m = u || o.some((h) => !h.photoUrl) ? await p(o, Zt) : o;
461
- A || g({ people: m, loading: !1, error: null });
462
- return;
463
- }
464
- if (i.length > 0) {
465
- const m = (await Promise.allSettled(i.map((h) => l(h)))).flatMap((h) => h.status === "fulfilled" && h.value ? [h.value] : []);
466
- A || g({ people: m, loading: !1, error: null });
467
- return;
468
- }
469
- if (!Ae(n) && s !== "SignedIn") {
470
- A || g({ people: [], loading: !1, error: null });
471
- return;
472
- }
473
- try {
474
- let S = [];
475
- c ? t && s === "SignedIn" && (S = ((await t.api(`/groups/${U(c)}/members/microsoft.graph.user`).select(Yt).top(a).get()).value ?? []).map($)) : Ae(n) ? S = (await n.searchPeople("", a)).map((m) => ({
476
- ...m,
477
- presenceActivity: null,
478
- presenceAvailability: null
479
- })) : t && s === "SignedIn" && (S = ((await t.api("/users").select(Be).top(a).get()).value ?? []).map($)), (u || S.some((m) => !m.photoUrl)) && (S = await p(S)), A || g({ people: S, loading: !1, error: null });
480
- } catch (S) {
481
- A || g({ people: [], loading: !1, error: S });
482
- }
483
- })(), () => {
484
- A = !0;
485
- };
486
- }, [o, r, t, c, a, n, s, u, i]), d;
487
- }, en = 3, tn = 10, nn = (e) => {
488
- switch (e?.toLowerCase()) {
489
- case "available":
490
- case "availableidle":
491
- return "available";
492
- case "away":
493
- case "berightback":
494
- return "away";
495
- case "busy":
496
- case "busyidle":
497
- case "donotdisturb":
498
- return "busy";
499
- case "offline":
500
- case "presenceunknown":
501
- return "offline";
502
- default:
503
- return;
504
- }
505
- }, sn = (e) => e.displayName ?? e.mail ?? e.userPrincipalName ?? e.id, Ce = (e) => {
506
- const t = sn(e), n = nn(e.presenceAvailability);
507
- return /* @__PURE__ */ I(
508
- Pt,
509
- {
510
- avatar: {
511
- name: t,
512
- image: e.photoUrl ? { src: e.photoUrl } : void 0,
513
- badge: n ? { status: n } : void 0,
514
- color: "colorful"
515
- }
516
- },
517
- e.id
518
- );
519
- }, gs = ({
520
- people: e,
521
- userIds: t,
522
- groupId: n,
523
- showMax: s = en,
524
- showPresence: r = !1,
525
- layout: o = "stack",
526
- size: i = 32,
527
- ...c
528
- }) => {
529
- const { people: a, loading: u } = $t({
530
- people: e,
531
- userIds: t,
532
- groupId: n,
533
- maxPeople: Math.max(tn, s + 5),
534
- showPresence: r
535
- });
536
- if (u)
537
- return /* @__PURE__ */ I(pt, { size: "tiny" });
538
- if (a.length === 0)
539
- return null;
540
- const d = Math.max(0, s), g = a.slice(0, d), A = a.slice(d);
541
- return /* @__PURE__ */ W(ht, { layout: o, size: i, ...c, children: [
542
- g.map(Ce),
543
- A.length > 0 && /* @__PURE__ */ I(St, { count: A.length, children: A.map(Ce) })
544
- ] });
545
- }, ie = typeof window > "u" ? global : window, ce = "@griffel/";
546
- function qe(e, t) {
547
- return ie[/* @__PURE__ */ Symbol.for(ce + e)] || (ie[/* @__PURE__ */ Symbol.for(ce + e)] = t), ie[/* @__PURE__ */ Symbol.for(ce + e)];
1
+ import * as e from "react";
2
+ import { createContext as t, useCallback as n, useContext as r, useEffect as i, useMemo as a, useRef as o, useState as s, useSyncExternalStore as c } from "react";
3
+ import { Avatar as l, AvatarGroup as u, AvatarGroupItem as d, AvatarGroupPopover as f, InteractionTag as p, InteractionTagPrimary as m, InteractionTagSecondary as h, Persona as g, Spinner as _, TagPicker as v, TagPickerControl as y, TagPickerGroup as b, TagPickerInput as x, TagPickerList as S, TagPickerOption as C } from "@fluentui/react-components";
4
+ import { jsx as w, jsxs as T } from "react/jsx-runtime";
5
+ import { Client as ee } from "@microsoft/microsoft-graph-client";
6
+ //#region src/utils/personCache.ts
7
+ var E = "graph-toolkit-person-cache", D = "personData", O = 1, k = {
8
+ enabled: !0,
9
+ userTtlMs: 3600 * 1e3,
10
+ photoTtlMs: 3600 * 1e3,
11
+ presenceTtlMs: 300 * 1e3
12
+ }, A = () => typeof window < "u" && window.indexedDB !== void 0, j = (e) => new Promise((t, n) => {
13
+ e.onsuccess = () => t(e.result), e.onerror = () => n(e.error);
14
+ }), M = () => new Promise((e, t) => {
15
+ if (!A()) {
16
+ t(/* @__PURE__ */ Error("IndexedDB unavailable"));
17
+ return;
18
+ }
19
+ let n = window.indexedDB.open(E, O);
20
+ n.onupgradeneeded = () => {
21
+ let e = n.result;
22
+ e.objectStoreNames.contains(D) || e.createObjectStore(D);
23
+ }, n.onsuccess = () => e(n.result), n.onerror = () => t(n.error);
24
+ }), N = (e) => `person:${e.trim().toLowerCase()}`, P = (e, t) => e ? Date.now() - e < t : !1, F = async (e) => {
25
+ if (!A()) return null;
26
+ let t = null;
27
+ try {
28
+ return t = await M(), await j(t.transaction(D, "readonly").objectStore(D).get(e)) ?? null;
29
+ } catch {
30
+ return null;
31
+ } finally {
32
+ t?.close();
33
+ }
34
+ }, I = async (e, t) => {
35
+ if (!A()) return;
36
+ let n = null;
37
+ try {
38
+ n = await M(), await j(n.transaction(D, "readwrite").objectStore(D).put(t, e));
39
+ } catch {
40
+ return;
41
+ } finally {
42
+ n?.close();
43
+ }
44
+ }, L = t({
45
+ provider: null,
46
+ state: "Loading",
47
+ personCacheOptions: k
48
+ }), te = ({ provider: e, children: t, personCacheOptions: r }) => {
49
+ let i = n(() => e?.getState?.() ?? "Loading", [e]), o = c(n((t) => (e.onStateChanged?.(t), () => {
50
+ let n = e;
51
+ typeof n.removeStateChangedHandler == "function" && n.removeStateChangedHandler(t);
52
+ }), [e]), i, i), s = a(() => ({
53
+ ...k,
54
+ ...r ?? {}
55
+ }), [r]), l = a(() => ({
56
+ provider: e,
57
+ state: o,
58
+ personCacheOptions: s
59
+ }), [
60
+ e,
61
+ o,
62
+ s
63
+ ]);
64
+ return /* @__PURE__ */ w(L.Provider, {
65
+ value: l,
66
+ children: t
67
+ });
68
+ }, R = () => {
69
+ let { provider: e } = r(L);
70
+ return e;
71
+ }, z = () => {
72
+ let { state: e } = r(L);
73
+ return e;
74
+ }, ne = () => {
75
+ let { personCacheOptions: e } = r(L);
76
+ return e;
77
+ }, re = (e) => ee.init({ authProvider: async (t) => {
78
+ try {
79
+ t(null, await e.getAccessToken());
80
+ } catch (e) {
81
+ t(e, null);
82
+ }
83
+ } }), ie = (e) => {
84
+ if (!e) return "";
85
+ let t = e.trim().split(" ");
86
+ return t.length === 1 ? t[0].substring(0, 2).toUpperCase() : (t[0][0] + t[t.length - 1][0]).toUpperCase();
87
+ }, B = async (e) => {
88
+ if (!e) return null;
89
+ if (typeof e == "string") return e;
90
+ let t = e instanceof Blob ? e : e instanceof ArrayBuffer ? new Blob([e]) : null;
91
+ return t ? new Promise((e, n) => {
92
+ let r = new FileReader();
93
+ r.onloadend = () => e(typeof r.result == "string" ? r.result : null), r.onerror = () => n(r.error), r.readAsDataURL(t);
94
+ }) : null;
95
+ }, V = (e) => encodeURIComponent(e.trim()), H = () => {
96
+ let e = R(), t = z();
97
+ return a(() => !e || t !== "SignedIn" ? null : re(e), [e, t]);
98
+ }, ae = (e) => typeof e == "object" && !!e && typeof e.getPersonData == "function", U = (e) => typeof e == "object" && !!e && typeof e.searchPeople == "function", oe = [
99
+ "id",
100
+ "displayName",
101
+ "jobTitle",
102
+ "mail",
103
+ "department",
104
+ "officeLocation",
105
+ "userPrincipalName"
106
+ ], se = (e) => {
107
+ let t = H(), n = R(), r = z(), a = ne(), { userId: o, userPrincipalName: c, fetchPresence: l = !1, fetchPhoto: u = !0, selectFields: d } = e, f = [...new Set([...oe, ...(d ?? []).map((e) => e.trim()).filter((e) => e.length > 0 && /^[a-zA-Z0-9_./]+$/.test(e))])].join(","), [p, m] = s({
108
+ user: null,
109
+ presence: null,
110
+ photoUrl: null,
111
+ loading: !0,
112
+ error: null
113
+ });
114
+ return i(() => {
115
+ let e = !1, i = f.split(",").filter((e) => !oe.includes(e));
116
+ return (async () => {
117
+ let s = o || c;
118
+ if (ae(n)) {
119
+ try {
120
+ let t = await n.getPersonData({
121
+ identifier: s,
122
+ fetchPresence: l,
123
+ fetchPhoto: u,
124
+ selectFields: i.length > 0 ? i : void 0
125
+ });
126
+ e || m({
127
+ user: t.user,
128
+ presence: t.presence,
129
+ photoUrl: t.photoUrl,
130
+ loading: !1,
131
+ error: null
132
+ });
133
+ } catch (t) {
134
+ e || m({
135
+ user: null,
136
+ presence: null,
137
+ photoUrl: null,
138
+ loading: !1,
139
+ error: t
140
+ });
141
+ }
142
+ return;
143
+ }
144
+ if (r !== "SignedIn") {
145
+ e || m({
146
+ user: null,
147
+ presence: null,
148
+ photoUrl: null,
149
+ loading: !1,
150
+ error: r === "SignedOut" ? null : /* @__PURE__ */ Error("Provider not signed in")
151
+ });
152
+ return;
153
+ }
154
+ if (!t) {
155
+ e || m((e) => ({
156
+ ...e,
157
+ loading: !0
158
+ }));
159
+ return;
160
+ }
161
+ if (!s) {
162
+ e || m({
163
+ user: null,
164
+ presence: null,
165
+ photoUrl: null,
166
+ loading: !1,
167
+ error: null
168
+ });
169
+ return;
170
+ }
171
+ let d = N(s), p = a.enabled ? await F(d) : null, h = !!(p?.user && P(p.userCachedAt, a.userTtlMs)), g = !!(p?.presenceCachedAt && P(p.presenceCachedAt, a.presenceTtlMs)), _ = !!(p?.photoCachedAt && P(p.photoCachedAt, a.photoTtlMs));
172
+ if (h && (!l || g) && (!u || _)) {
173
+ e || m({
174
+ user: p?.user ?? null,
175
+ presence: l ? p?.presence ?? null : null,
176
+ photoUrl: u ? p?.photoUrl ?? null : null,
177
+ loading: !1,
178
+ error: null
179
+ });
180
+ return;
181
+ }
182
+ try {
183
+ m((e) => ({
184
+ ...e,
185
+ loading: !0,
186
+ error: null
187
+ }));
188
+ let n = s.toLowerCase() === "me", r = Date.now(), i = !1, o = !1, c = !1, v = h ? p?.user ?? null : null;
189
+ if (v || (v = await t.api(n ? "/me" : `/users/${V(s)}`).select(f).get(), i = !0), e) return;
190
+ let y = null, b = null;
191
+ if (l) {
192
+ if (g) y = p?.presence ?? null;
193
+ else if (v?.id) {
194
+ try {
195
+ y = await t.api(n ? "/me/presence" : `/users/${V(v.id)}/presence`).get();
196
+ } catch (e) {
197
+ console.warn("Failed to fetch presence:", e);
198
+ }
199
+ o = !0;
200
+ }
201
+ }
202
+ if (u) {
203
+ if (_) b = p?.photoUrl ?? null;
204
+ else if (v?.id) {
205
+ try {
206
+ b = await B(await t.api(n ? "/me/photo/$value" : `/users/${V(v.id)}/photo/$value`).get());
207
+ } catch (e) {
208
+ console.warn("Failed to fetch photo:", e);
209
+ }
210
+ c = !0;
211
+ }
212
+ }
213
+ let x = { ...p ?? {} };
214
+ i && v && (x.user = v, x.userCachedAt = r), l && (o || g) && (x.presence = o ? y : p?.presence, x.presenceCachedAt = o ? r : p?.presenceCachedAt), u && (c || _) && (x.photoUrl = c ? b : p?.photoUrl, x.photoCachedAt = c ? r : p?.photoCachedAt), a.enabled && (i || o || c) && x.user && await I(d, x), e || m({
215
+ user: v,
216
+ presence: y,
217
+ photoUrl: b,
218
+ loading: !1,
219
+ error: null
220
+ });
221
+ } catch (t) {
222
+ e || m({
223
+ user: null,
224
+ presence: null,
225
+ photoUrl: null,
226
+ loading: !1,
227
+ error: t
228
+ });
229
+ }
230
+ })(), () => {
231
+ e = !0;
232
+ };
233
+ }, [
234
+ t,
235
+ n,
236
+ r,
237
+ o,
238
+ c,
239
+ l,
240
+ u,
241
+ a,
242
+ f
243
+ ]), p;
244
+ }, ce = (e) => {
245
+ switch (e?.toLowerCase()) {
246
+ case "available":
247
+ case "availableidle": return "available";
248
+ case "away":
249
+ case "berightback": return "away";
250
+ case "busy":
251
+ case "busyidle":
252
+ case "donotdisturb": return "busy";
253
+ default: return "offline";
254
+ }
255
+ }, le = {
256
+ avatar: [
257
+ void 0,
258
+ void 0,
259
+ void 0,
260
+ void 0
261
+ ],
262
+ oneline: [
263
+ "displayName",
264
+ void 0,
265
+ void 0,
266
+ void 0
267
+ ],
268
+ twolines: [
269
+ "displayName",
270
+ "jobTitle",
271
+ void 0,
272
+ void 0
273
+ ],
274
+ threelines: [
275
+ "displayName",
276
+ "jobTitle",
277
+ "department",
278
+ void 0
279
+ ],
280
+ fourlines: [
281
+ "displayName",
282
+ "jobTitle",
283
+ "department",
284
+ "officeLocation,mail"
285
+ ]
286
+ }, ue = new Set(["presenceActivity", "presenceAvailability"]), de = new Set(["email", ...ue]), fe = (e) => e?.split(",").map((e) => e.trim()).filter(Boolean) ?? [], W = (e) => {
287
+ if (e != null) {
288
+ if (typeof e == "string") return e || void 0;
289
+ if (typeof e == "number" || typeof e == "boolean") return String(e);
290
+ if (Array.isArray(e)) {
291
+ let t = e.map((e) => W(e)).filter((e) => !!e);
292
+ return t.length > 0 ? t.join(", ") : void 0;
293
+ }
294
+ }
295
+ }, pe = (e) => W(e.mail) ?? W(e.email) ?? W(e.userPrincipalName), G = (e, t) => {
296
+ let n = fe(t);
297
+ for (let t of n) switch (t) {
298
+ case "mail":
299
+ case "email": {
300
+ let t = pe(e);
301
+ if (t) return t;
302
+ break;
303
+ }
304
+ default: {
305
+ let n = W(e[t]);
306
+ if (n) return n;
307
+ }
308
+ }
309
+ }, me = (e, t, n) => ({
310
+ line: e,
311
+ person: t,
312
+ text: n
313
+ }), K = (e, t, n, r) => r ? r(me(e, t, n)) : n, q = (e, t, n) => n ?? le[e][t - 1], he = (e) => {
314
+ switch (e) {
315
+ case "avatar": return 0;
316
+ case "oneline": return 1;
317
+ case "twolines": return 2;
318
+ case "threelines": return 3;
319
+ default: return 4;
320
+ }
321
+ }, J = (e, t) => t <= he(e), ge = (e) => [...new Set(e.flatMap((e) => fe(e)))].filter((e) => !de.has(e)), _e = ({ userId: e, userPrincipalName: t, email: n, personDetails: r, view: o = "oneline", showPresence: s = !1, line1Property: c, line2Property: l, line3Property: u, line4Property: d, renderLine1: f, renderLine2: p, renderLine3: m, renderLine4: h, fetchImage: _ = !0, onUpdated: v, ...y }) => {
322
+ let b = o === "avatar", x = J(o, 1) ? q(o, 1, c) : void 0, S = J(o, 2) ? q(o, 2, l) : void 0, C = J(o, 3) ? q(o, 3, u) : void 0, T = J(o, 4) ? q(o, 4, d) : void 0, ee = [
323
+ x,
324
+ S,
325
+ C,
326
+ T
327
+ ].some((e) => fe(e).some((e) => ue.has(e))), { user: E, presence: D, photoUrl: O, loading: k, error: A } = se({
328
+ userId: r ? void 0 : e || t || n,
329
+ fetchPresence: s || ee,
330
+ fetchPhoto: _,
331
+ selectFields: ge([
332
+ x,
333
+ S,
334
+ C,
335
+ T
336
+ ])
337
+ }), j = r || E, M = j || null, N = a(() => M ? {
338
+ ...M,
339
+ email: n ?? W(M.email),
340
+ presenceActivity: D?.activity ?? W(M.presenceActivity),
341
+ presenceAvailability: D?.availability ?? W(M.presenceAvailability)
342
+ } : null, [
343
+ n,
344
+ D?.activity,
345
+ D?.availability,
346
+ M
347
+ ]);
348
+ if (i(() => {
349
+ if (!(!v || k)) {
350
+ if (r && N) {
351
+ v({
352
+ trigger: "personDetailsChanged",
353
+ person: N,
354
+ loading: !1,
355
+ error: A
356
+ });
357
+ return;
358
+ }
359
+ if (A) {
360
+ v({
361
+ trigger: "personLoadFailed",
362
+ person: null,
363
+ loading: !1,
364
+ error: A
365
+ });
366
+ return;
367
+ }
368
+ N && v({
369
+ trigger: "personLoaded",
370
+ person: N,
371
+ loading: !1,
372
+ error: null
373
+ });
374
+ }
375
+ }, [
376
+ A,
377
+ k,
378
+ v,
379
+ r,
380
+ N
381
+ ]), k) return /* @__PURE__ */ w(g, {
382
+ ...y,
383
+ name: b ? void 0 : y.name ?? "Loading...",
384
+ primaryText: b ? void 0 : y.primaryText,
385
+ secondaryText: b ? void 0 : y.secondaryText,
386
+ tertiaryText: b ? void 0 : y.tertiaryText,
387
+ quaternaryText: b ? void 0 : y.quaternaryText
388
+ });
389
+ if (!j) return null;
390
+ let P = N ?? M, F = j.displayName || "Unknown User", I = ie(F), L = G(P, x), te = G(P, S), R = G(P, C), z = G(P, T), ne = J(o, 1) ? x && L !== F || f ? K(1, P, L, f) : y.primaryText : void 0, re = J(o, 2) ? K(2, P, te, p) : void 0, B = J(o, 3) ? K(3, P, R, m) : void 0, V = J(o, 4) ? K(4, P, z, h) : void 0, H = s && D ? { status: ce(D.availability) } : void 0, ae = y.presence ?? H, U = y.avatar ?? {
391
+ image: O ? { src: O } : void 0,
392
+ initials: O ? void 0 : I,
393
+ name: F
394
+ }, oe = b ? void 0 : y.name ?? F, le = b ? void 0 : y.primaryText ?? ne, de = b ? void 0 : y.secondaryText ?? re, pe = b ? void 0 : y.tertiaryText ?? B, me = b ? void 0 : y.quaternaryText ?? V;
395
+ return /* @__PURE__ */ w(g, {
396
+ ...y,
397
+ name: oe,
398
+ primaryText: le,
399
+ avatar: U,
400
+ presence: ae,
401
+ secondaryText: de,
402
+ tertiaryText: pe,
403
+ quaternaryText: me
404
+ });
405
+ }, ve = "id,displayName,mail,userPrincipalName,jobTitle,department", ye = "id,displayName,mail,userPrincipalName,jobTitle,department", be = 10, Y = (e) => ({
406
+ id: e.id ?? e.userPrincipalName ?? e.mail ?? "unknown-user",
407
+ displayName: e.displayName ?? null,
408
+ mail: e.mail ?? null,
409
+ userPrincipalName: e.userPrincipalName ?? null,
410
+ jobTitle: e.jobTitle ?? null,
411
+ department: e.department ?? null
412
+ }), xe = (e, t) => ({
413
+ ...e,
414
+ presenceActivity: t?.activity ?? null,
415
+ presenceAvailability: t?.availability ?? null
416
+ }), Se = (e) => e.id ?? e.userPrincipalName ?? e.mail ?? void 0, Ce = (e) => e.userPrincipalName ?? e.mail ?? e.id ?? void 0, we = (e) => Array.from(new Set((e ?? []).map((e) => e.trim()).filter(Boolean))), Te = (e) => {
417
+ let t = H(), n = R(), r = z(), o = JSON.stringify(e?.people ?? null), c = a(() => {
418
+ if (o !== "null") return JSON.parse(o);
419
+ }, [o]), l = a(() => we(e?.userIds), [e?.userIds]), u = a(() => e?.groupId?.trim(), [e?.groupId]), d = e?.maxPeople ?? be, f = e?.showPresence ?? !1, [p, m] = s({
420
+ people: [],
421
+ loading: !0,
422
+ error: null
423
+ });
424
+ return i(() => {
425
+ let e = !1, i = async (e) => {
426
+ if (ae(n)) {
427
+ let t = await n.getPersonData({
428
+ identifier: e,
429
+ fetchPresence: f,
430
+ fetchPhoto: !0
431
+ });
432
+ return t.user ? {
433
+ ...Y(t.user),
434
+ photoUrl: t.photoUrl,
435
+ presenceActivity: t.presence?.activity ?? null,
436
+ presenceAvailability: t.presence?.availability ?? null
437
+ } : null;
438
+ }
439
+ if (r !== "SignedIn" || !t) return null;
440
+ let i = e.toLowerCase() === "me", a = await t.api(i ? "/me" : `/users/${V(e)}`).select(ve).get(), o = null, s = null;
441
+ if (f && a.id) try {
442
+ o = await t.api(i ? "/me/presence" : `/users/${V(a.id)}/presence`).get();
443
+ } catch {
444
+ o = null;
445
+ }
446
+ if (a.id) try {
447
+ s = await B(await t.api(i ? "/me/photo/$value" : `/users/${V(a.id)}/photo/$value`).get());
448
+ } catch {
449
+ s = null;
450
+ }
451
+ return {
452
+ ...Y(a),
453
+ photoUrl: s,
454
+ presenceActivity: o?.activity ?? null,
455
+ presenceAvailability: o?.availability ?? null
456
+ };
457
+ }, a = async (e, t = Se) => (await Promise.all(e.map(async (e) => {
458
+ let n = t(e);
459
+ if (!n) return f ? xe(e, null) : e;
460
+ let r = f && !e.presenceAvailability && !e.presenceActivity, a = !e.photoUrl;
461
+ if (!r && !a) return e;
462
+ try {
463
+ let t = await i(n);
464
+ return t ? {
465
+ ...e,
466
+ photoUrl: e.photoUrl ?? t.photoUrl,
467
+ presenceActivity: e.presenceActivity ?? t.presenceActivity,
468
+ presenceAvailability: e.presenceAvailability ?? t.presenceAvailability
469
+ } : e;
470
+ } catch {
471
+ return e;
472
+ }
473
+ }))).filter((e) => !!e.id);
474
+ return (async () => {
475
+ if (e || m((e) => ({
476
+ ...e,
477
+ loading: !0,
478
+ error: null
479
+ })), c) {
480
+ let t = f || c.some((e) => !e.photoUrl) ? await a(c, Ce) : c;
481
+ e || m({
482
+ people: t,
483
+ loading: !1,
484
+ error: null
485
+ });
486
+ return;
487
+ }
488
+ if (l.length > 0) {
489
+ let t = (await Promise.allSettled(l.map((e) => i(e)))).flatMap((e) => e.status === "fulfilled" && e.value ? [e.value] : []);
490
+ e || m({
491
+ people: t,
492
+ loading: !1,
493
+ error: null
494
+ });
495
+ return;
496
+ }
497
+ if (!U(n) && r !== "SignedIn") {
498
+ e || m({
499
+ people: [],
500
+ loading: !1,
501
+ error: null
502
+ });
503
+ return;
504
+ }
505
+ try {
506
+ let i = [];
507
+ u ? t && r === "SignedIn" && (i = ((await t.api(`/groups/${V(u)}/members/microsoft.graph.user`).select(ye).top(d).get()).value ?? []).map(Y)) : U(n) ? i = (await n.searchPeople("", d)).map((e) => ({
508
+ ...e,
509
+ presenceActivity: null,
510
+ presenceAvailability: null
511
+ })) : t && r === "SignedIn" && (i = ((await t.api("/users").select(ve).top(d).get()).value ?? []).map(Y)), (f || i.some((e) => !e.photoUrl)) && (i = await a(i)), e || m({
512
+ people: i,
513
+ loading: !1,
514
+ error: null
515
+ });
516
+ } catch (t) {
517
+ e || m({
518
+ people: [],
519
+ loading: !1,
520
+ error: t
521
+ });
522
+ }
523
+ })(), () => {
524
+ e = !0;
525
+ };
526
+ }, [
527
+ c,
528
+ o,
529
+ t,
530
+ u,
531
+ d,
532
+ n,
533
+ r,
534
+ f,
535
+ l
536
+ ]), p;
537
+ }, Ee = 3, De = 10, Oe = (e) => {
538
+ switch (e?.toLowerCase()) {
539
+ case "available":
540
+ case "availableidle": return "available";
541
+ case "away":
542
+ case "berightback": return "away";
543
+ case "busy":
544
+ case "busyidle":
545
+ case "donotdisturb": return "busy";
546
+ case "offline":
547
+ case "presenceunknown": return "offline";
548
+ default: return;
549
+ }
550
+ }, ke = (e) => e.displayName ?? e.mail ?? e.userPrincipalName ?? e.id, Ae = (e) => {
551
+ let t = ke(e), n = Oe(e.presenceAvailability);
552
+ return /* @__PURE__ */ w(d, { avatar: {
553
+ name: t,
554
+ image: e.photoUrl ? { src: e.photoUrl } : void 0,
555
+ badge: n ? { status: n } : void 0,
556
+ color: "colorful"
557
+ } }, e.id);
558
+ }, je = ({ people: e, userIds: t, groupId: n, showMax: r = Ee, showPresence: a = !1, layout: o = "stack", size: s = 32, onUpdated: c, ...l }) => {
559
+ let { people: d, loading: p, error: m } = Te({
560
+ people: e,
561
+ userIds: t,
562
+ groupId: n,
563
+ maxPeople: Math.max(De, r + 5),
564
+ showPresence: a
565
+ });
566
+ if (i(() => {
567
+ if (!c || p) return;
568
+ let t = "peopleLoaded";
569
+ m ? t = "peopleLoadFailed" : e && (t = "peopleChanged"), c({
570
+ trigger: t,
571
+ people: d,
572
+ loading: !1,
573
+ error: m
574
+ });
575
+ }, [
576
+ m,
577
+ p,
578
+ c,
579
+ e,
580
+ d
581
+ ]), p) return /* @__PURE__ */ w(_, { size: "tiny" });
582
+ if (d.length === 0) return null;
583
+ let h = Math.max(0, r), g = d.slice(0, h), v = d.slice(h);
584
+ return /* @__PURE__ */ T(u, {
585
+ layout: o,
586
+ size: s,
587
+ ...l,
588
+ children: [g.map(Ae), v.length > 0 && /* @__PURE__ */ w(f, {
589
+ count: v.length,
590
+ children: v.map(Ae)
591
+ })]
592
+ });
593
+ }, Me = typeof window > "u" ? global : window, Ne = "@griffel/";
594
+ function Pe(e, t) {
595
+ return Me[Symbol.for(Ne + e)] || (Me[Symbol.for(Ne + e)] = t), Me[Symbol.for(Ne + e)];
548
596
  }
549
- const Se = /* @__PURE__ */ qe("DEBUG_RESET_CLASSES", {}), X = /* @__PURE__ */ qe("DEFINITION_LOOKUP_TABLE", {}), Y = "data-make-styles-bucket", rn = "data-priority", on = "r", z = 7, J = "___", We = "_", Ye = process.env.NODE_ENV === "production" ? J.length + z : J.length + z + We.length + z, cn = 0, je = 1;
550
- function ae(e) {
551
- for (var t = 0, n, s = 0, r = e.length; r >= 4; ++s, r -= 4)
552
- n = e.charCodeAt(s) & 255 | (e.charCodeAt(++s) & 255) << 8 | (e.charCodeAt(++s) & 255) << 16 | (e.charCodeAt(++s) & 255) << 24, n = /* Math.imul(k, m): */
553
- (n & 65535) * 1540483477 + ((n >>> 16) * 59797 << 16), n ^= /* k >>> r: */
554
- n >>> 24, t = /* Math.imul(k, m): */
555
- (n & 65535) * 1540483477 + ((n >>> 16) * 59797 << 16) ^ /* Math.imul(h, m): */
556
- (t & 65535) * 1540483477 + ((t >>> 16) * 59797 << 16);
557
- switch (r) {
558
- case 3:
559
- t ^= (e.charCodeAt(s + 2) & 255) << 16;
560
- case 2:
561
- t ^= (e.charCodeAt(s + 1) & 255) << 8;
562
- case 1:
563
- t ^= e.charCodeAt(s) & 255, t = /* Math.imul(h, m): */
564
- (t & 65535) * 1540483477 + ((t >>> 16) * 59797 << 16);
565
- }
566
- return t ^= t >>> 13, t = /* Math.imul(h, m): */
567
- (t & 65535) * 1540483477 + ((t >>> 16) * 59797 << 16), ((t ^ t >>> 15) >>> 0).toString(36);
597
+ var Fe = /* @__PURE__ */ Pe("DEBUG_RESET_CLASSES", {}), X = /* @__PURE__ */ Pe("DEFINITION_LOOKUP_TABLE", {}), Z = "data-make-styles-bucket", Ie = "data-priority", Le = process.env.NODE_ENV === "production" ? 10 : 18;
598
+ //#endregion
599
+ //#region node_modules/@emotion/hash/dist/emotion-hash.esm.js
600
+ function Re(e) {
601
+ 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);
602
+ switch (i) {
603
+ case 3: t ^= (e.charCodeAt(r + 2) & 255) << 16;
604
+ case 2: t ^= (e.charCodeAt(r + 1) & 255) << 8;
605
+ case 1: t ^= e.charCodeAt(r) & 255, t = (t & 65535) * 1540483477 + ((t >>> 16) * 59797 << 16);
606
+ }
607
+ return t ^= t >>> 13, t = (t & 65535) * 1540483477 + ((t >>> 16) * 59797 << 16), ((t ^ t >>> 15) >>> 0).toString(36);
568
608
  }
569
- function le(e) {
570
- const t = e.length;
571
- if (t === z)
572
- return e;
573
- for (let n = t; n < z; n++)
574
- e += "0";
575
- return e;
609
+ //#endregion
610
+ //#region node_modules/@griffel/core/runtime/utils/hashSequence.esm.js
611
+ function ze(e) {
612
+ let t = e.length;
613
+ if (t === 7) return e;
614
+ for (let n = t; n < 7; n++) e += "0";
615
+ return e;
576
616
  }
577
- function ze(e, t, n = []) {
578
- return process.env.NODE_ENV === "production" ? J + le(ae(e + t)) : J + le(ae(e + t)) + We + le(ae(n.join("")));
617
+ function Be(e, t, n = []) {
618
+ return process.env.NODE_ENV === "production" ? "___" + ze(Re(e + t)) : "___" + ze(Re(e + t)) + "_" + ze(Re(n.join("")));
579
619
  }
580
- function Xe(e, t) {
581
- let n = "", s = "";
582
- for (const r in e) {
583
- const o = e[r];
584
- if (o === 0) {
585
- s += r + " ";
586
- continue;
587
- }
588
- const i = Array.isArray(o), c = t === "rtl" ? (i ? o[1] : o) + " " : (i ? o[0] : o) + " ";
589
- n += c, s += c;
590
- }
591
- return [n.slice(0, -1), s.slice(0, -1)];
620
+ //#endregion
621
+ //#region node_modules/@griffel/core/runtime/reduceToClassNameForSlots.esm.js
622
+ function Ve(e, t) {
623
+ let n = "", r = "";
624
+ for (let i in e) {
625
+ let a = e[i];
626
+ if (a === 0) {
627
+ r += i + " ";
628
+ continue;
629
+ }
630
+ let o = Array.isArray(a), s = t === "rtl" ? (o ? a[1] : a) + " " : (o ? a[0] : a) + " ";
631
+ n += s, r += s;
632
+ }
633
+ return [n.slice(0, -1), r.slice(0, -1)];
592
634
  }
593
- function Oe(e, t) {
594
- const n = {};
595
- for (const s in e) {
596
- const [r, o] = Xe(e[s], t);
597
- if (o === "") {
598
- n[s] = "";
599
- continue;
600
- }
601
- const i = ze(o, t), c = i + (r === "" ? "" : " " + r);
602
- X[i] = [e[s], t], n[s] = c;
603
- }
604
- return n;
635
+ function He(e, t) {
636
+ let n = {};
637
+ for (let r in e) {
638
+ let [i, a] = Ve(e[r], t);
639
+ if (a === "") {
640
+ n[r] = "";
641
+ continue;
642
+ }
643
+ let o = Be(a, t), s = o + (i === "" ? "" : " " + i);
644
+ X[o] = [e[r], t], n[r] = s;
645
+ }
646
+ return n;
605
647
  }
606
- const ee = {};
607
- function Ve() {
608
- let e = null, t = "", n = "";
609
- const s = new Array(arguments.length);
610
- let r = "";
611
- for (let A = 0; A < arguments.length; A++) {
612
- const l = arguments[A];
613
- if (typeof l == "string" && l !== "") {
614
- const p = l.indexOf(J);
615
- if (p === -1)
616
- process.env.NODE_ENV !== "production" && l.split(" ").forEach((f) => {
617
- f.startsWith(on) && Se[f] && (r ? console.error(`mergeClasses(): a passed string contains multiple classes produced by makeResetStyles (${l} & ${t}, this will lead to non-deterministic behavior. Learn more:https://griffel.js.org/react/api/make-reset-styles#limitations
618
- Source string: ${l}`) : r = f);
619
- }), t += l + " ";
620
- else {
621
- const f = l.substr(p, Ye);
622
- p > 0 && (t += l.slice(0, p)), n += f, s[A] = f;
623
- }
624
- process.env.NODE_ENV !== "production" && l.indexOf(J, p + 1) !== -1 && console.error(`mergeClasses(): a passed string contains multiple identifiers of atomic classes (classes that start with "${J}"), it's possible that passed classes were concatenated in a wrong way. Source string: ${l}`);
625
- }
626
- }
627
- if (n === "")
628
- return t.slice(0, -1);
629
- const o = ee[n];
630
- if (o !== void 0)
631
- return t + o;
632
- const i = [];
633
- for (let A = 0; A < arguments.length; A++) {
634
- const l = s[A];
635
- if (l) {
636
- const p = X[l];
637
- p ? (i.push(p[cn]), process.env.NODE_ENV !== "production" && e !== null && e !== p[je] && console.error(`mergeClasses(): a passed string contains an identifier (${l}) that has different direction (dir="${p[1] ? "rtl" : "ltr"}") setting than other classes. This is not supported. Source string: ${arguments[A]}`), e = p[je]) : process.env.NODE_ENV !== "production" && console.error(`mergeClasses(): a passed string contains an identifier (${l}) that does not match any entry in cache. Source string: ${arguments[A]}`);
638
- }
639
- }
640
- const c = Object.assign.apply(
641
- Object,
642
- // .assign() mutates the first object, we can't mutate mappings as it will produce invalid results later
643
- [{}].concat(i)
644
- ), [a, u] = Xe(c, e), d = ze(u, e, s), g = d + " " + a;
645
- return ee[n] = g, X[d] = [c, e], t + g;
648
+ //#endregion
649
+ //#region node_modules/@griffel/core/mergeClasses.esm.js
650
+ var Ue = {};
651
+ function We() {
652
+ let e = null, t = "", n = "", r = Array(arguments.length), i = "";
653
+ for (let e = 0; e < arguments.length; e++) {
654
+ let a = arguments[e];
655
+ if (typeof a == "string" && a !== "") {
656
+ let o = a.indexOf("___");
657
+ if (o === -1) process.env.NODE_ENV !== "production" && a.split(" ").forEach((e) => {
658
+ e.startsWith("r") && Fe[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
659
+ Source string: ${a}`) : i = e);
660
+ }), t += a + " ";
661
+ else {
662
+ let i = a.substr(o, Le);
663
+ o > 0 && (t += a.slice(0, o)), n += i, r[e] = i;
664
+ }
665
+ 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}`);
666
+ }
667
+ }
668
+ if (n === "") return t.slice(0, -1);
669
+ let a = Ue[n];
670
+ if (a !== void 0) return t + a;
671
+ let o = [];
672
+ for (let t = 0; t < arguments.length; t++) {
673
+ let n = r[t];
674
+ if (n) {
675
+ let r = X[n];
676
+ 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]}`);
677
+ }
678
+ }
679
+ let s = Object.assign.apply(Object, [{}].concat(o)), [c, l] = Ve(s, e), u = Be(l, e, r), d = u + " " + c;
680
+ return Ue[n] = d, X[u] = [s, e], t + d;
646
681
  }
647
- const xe = {}, He = /* @__PURE__ */ new Set(), F = {
648
- getChildrenSequences: (e) => {
649
- const t = Object.keys(ee).find((n) => ee[n].startsWith(e));
650
- return t ? t.split(J).filter((n) => n.length).map((n) => J + n) : [];
651
- },
652
- addCSSRule: (e) => {
653
- He.add(e);
654
- },
655
- addSequenceDetails: (e, t) => {
656
- Object.entries(e).forEach(([n, s]) => {
657
- xe[s.substring(0, Ye)] = {
658
- slotName: n,
659
- sourceURL: t
660
- };
661
- });
662
- },
663
- getCSSRules: () => Array.from(He),
664
- getSequenceDetails: (e) => xe[e]
682
+ //#endregion
683
+ //#region node_modules/@griffel/core/devtools/store.esm.js
684
+ var Ge = {}, Ke = /* @__PURE__ */ new Set(), Q = {
685
+ getChildrenSequences: (e) => {
686
+ let t = Object.keys(Ue).find((t) => Ue[t].startsWith(e));
687
+ return t ? t.split("___").filter((e) => e.length).map((e) => "___" + e) : [];
688
+ },
689
+ addCSSRule: (e) => {
690
+ Ke.add(e);
691
+ },
692
+ addSequenceDetails: (e, t) => {
693
+ Object.entries(e).forEach(([e, n]) => {
694
+ Ge[n.substring(0, Le)] = {
695
+ slotName: e,
696
+ sourceURL: t
697
+ };
698
+ });
699
+ },
700
+ getCSSRules: () => Array.from(Ke),
701
+ getSequenceDetails: (e) => Ge[e]
665
702
  };
666
- function De(e, t) {
667
- return Array.isArray(e) ? t === "rtl" ? e[1] : e[0] : e || "";
703
+ //#endregion
704
+ //#region node_modules/@griffel/core/devtools/utils.esm.js
705
+ function qe(e, t) {
706
+ return Array.isArray(e) ? t === "rtl" ? e[1] : e[0] : e || "";
668
707
  }
669
- function an(e, t, n, s) {
670
- const r = e[0], o = e[1];
671
- return Object.entries(r).map(([i, c]) => {
672
- const a = De(c, o);
673
- let u;
674
- if (n && t) {
675
- const d = n.find(({
676
- className: g
677
- }) => g === a);
678
- !d && t[0][i] ? u = De(t[0][i], t[1]) : d && t[0][i] ? u = (s ? s.filter(({
679
- debugClassNames: A
680
- }) => A.filter(({
681
- className: l
682
- }) => l === a).length > 0).length > 0 : !1) ? d.className : d.overriddenBy : (!d && !t[0][i] || d && !t[0][i]) && (u = void 0);
683
- }
684
- return {
685
- className: a,
686
- overriddenBy: u
687
- };
688
- });
708
+ function Je(e, t, n, r) {
709
+ let i = e[0], a = e[1];
710
+ return Object.entries(i).map(([e, i]) => {
711
+ let o = qe(i, a), s;
712
+ if (n && t) {
713
+ let i = n.find(({ className: e }) => e === o);
714
+ !i && t[0][e] ? s = qe(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);
715
+ }
716
+ return {
717
+ className: o,
718
+ overriddenBy: s
719
+ };
720
+ });
689
721
  }
690
- function Ze(e, t) {
691
- const n = X[e];
692
- if (n === void 0)
693
- return;
694
- const s = t ? X[t.sequenceHash] : void 0, r = an(n, s, t?.debugClassNames, t?.children), o = {
695
- sequenceHash: e,
696
- direction: n[1],
697
- children: [],
698
- debugClassNames: r
699
- };
700
- return F.getChildrenSequences(o.sequenceHash).reverse().forEach((c) => {
701
- const a = Ze(c, o);
702
- a && o.children.push(a);
703
- }), o.children.length || (o.rules = {}, o.debugClassNames.forEach(({
704
- className: c
705
- }) => {
706
- const a = F.getSequenceDetails(e);
707
- a && (o.slot = a.slotName, o.sourceURL = a.sourceURL);
708
- const u = F.getCSSRules().find((d) => d.includes(c));
709
- o.rules[c] = u;
710
- })), o;
722
+ //#endregion
723
+ //#region node_modules/@griffel/core/devtools/getAtomicDebugSequenceTree.esm.js
724
+ function Ye(e, t) {
725
+ let n = X[e];
726
+ if (n === void 0) return;
727
+ let r = Je(n, t ? X[t.sequenceHash] : void 0, t?.debugClassNames, t?.children), i = {
728
+ sequenceHash: e,
729
+ direction: n[1],
730
+ children: [],
731
+ debugClassNames: r
732
+ };
733
+ return Q.getChildrenSequences(i.sequenceHash).reverse().forEach((e) => {
734
+ let t = Ye(e, i);
735
+ t && i.children.push(t);
736
+ }), i.children.length || (i.rules = {}, i.debugClassNames.forEach(({ className: t }) => {
737
+ let n = Q.getSequenceDetails(e);
738
+ n && (i.slot = n.slotName, i.sourceURL = n.sourceURL);
739
+ let r = Q.getCSSRules().find((e) => e.includes(t));
740
+ i.rules[t] = r;
741
+ })), i;
711
742
  }
712
- function ln(e) {
713
- if (Se[e] === void 0)
714
- return;
715
- const s = {
716
- sequenceHash: e,
717
- direction: "ltr",
718
- children: [],
719
- debugClassNames: [{
720
- className: e
721
- }]
722
- };
723
- s.rules = {}, s.slot = "makeResetStyles()";
724
- const [{
725
- className: r
726
- }] = s.debugClassNames, o = F.getCSSRules().filter((i) => i.includes(`.${r}`));
727
- return s.rules[r] = o.join(""), s;
743
+ //#endregion
744
+ //#region node_modules/@griffel/core/devtools/getResetDebugSequence.esm.js
745
+ function Xe(e) {
746
+ if (Fe[e] === void 0) return;
747
+ let t = {
748
+ sequenceHash: e,
749
+ direction: "ltr",
750
+ children: [],
751
+ debugClassNames: [{ className: e }]
752
+ };
753
+ t.rules = {}, t.slot = "makeResetStyles()";
754
+ let [{ className: n }] = t.debugClassNames, r = Q.getCSSRules().filter((e) => e.includes(`.${n}`));
755
+ return t.rules[n] = r.join(""), t;
728
756
  }
729
- function un(e, t) {
730
- const n = e ? Ze(e) : void 0, s = t ? ln(t) : void 0;
731
- return !n && !s ? void 0 : n ? s ? {
732
- sequenceHash: n.sequenceHash + s.sequenceHash,
733
- direction: n.direction,
734
- children: [n, s],
735
- debugClassNames: [...n.debugClassNames, ...s.debugClassNames]
736
- } : n : s;
757
+ //#endregion
758
+ //#region node_modules/@griffel/core/devtools/mergeDebugSequence.esm.js
759
+ function Ze(e, t) {
760
+ let n = e ? Ye(e) : void 0, r = t ? Xe(t) : void 0;
761
+ if (!(!n && !r)) return n ? r ? {
762
+ sequenceHash: n.sequenceHash + r.sequenceHash,
763
+ direction: n.direction,
764
+ children: [n, r],
765
+ debugClassNames: [...n.debugClassNames, ...r.debugClassNames]
766
+ } : n : r;
737
767
  }
738
- function An(e) {
739
- const t = e.defaultView;
740
- if (!t || t.__GRIFFEL_DEVTOOLS__)
741
- return;
742
- const n = {
743
- getInfo: (s) => {
744
- let r, o;
745
- for (const i of s.classList)
746
- i.startsWith(J) && (r = i), Se[i] && (o = i);
747
- return un(r, o);
748
- }
749
- };
750
- Object.defineProperty(t, "__GRIFFEL_DEVTOOLS__", {
751
- configurable: !1,
752
- enumerable: !1,
753
- get() {
754
- return n;
755
- }
756
- });
768
+ //#endregion
769
+ //#region node_modules/@griffel/core/devtools/injectDevTools.esm.js
770
+ function Qe(e) {
771
+ let t = e.defaultView;
772
+ if (!t || t.__GRIFFEL_DEVTOOLS__) return;
773
+ let n = { getInfo: (e) => {
774
+ let t, n;
775
+ for (let r of e.classList) r.startsWith("___") && (t = r), Fe[r] && (n = r);
776
+ return Ze(t, n);
777
+ } };
778
+ Object.defineProperty(t, "__GRIFFEL_DEVTOOLS__", {
779
+ configurable: !1,
780
+ enumerable: !1,
781
+ get() {
782
+ return n;
783
+ }
784
+ });
757
785
  }
758
- const te = /* @__PURE__ */ (() => {
759
- var e;
760
- try {
761
- return !!(typeof window < "u" && (!((e = window.sessionStorage) === null || e === void 0) && e.getItem("__GRIFFEL_DEVTOOLS__")));
762
- } catch {
763
- return !1;
764
- }
786
+ //#endregion
787
+ //#region node_modules/@griffel/core/devtools/isDevToolsEnabled.esm.js
788
+ var $e = /* @__PURE__ */ (() => {
789
+ try {
790
+ return !!(typeof window < "u" && window.sessionStorage?.getItem("__GRIFFEL_DEVTOOLS__"));
791
+ } catch {
792
+ return !1;
793
+ }
765
794
  })();
766
- function dn(e) {
767
- if (!Array.isArray(e))
768
- return [e];
769
- if (process.env.NODE_ENV !== "production" && e.length > 2)
770
- throw new Error("CSS Bucket contains an entry with greater than 2 items, please report this to https://github.com/microsoft/griffel/issues");
771
- return e;
795
+ //#endregion
796
+ //#region node_modules/@griffel/core/runtime/utils/normalizeCSSBucketEntry.esm.js
797
+ function et(e) {
798
+ if (!Array.isArray(e)) return [e];
799
+ 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");
800
+ return e;
772
801
  }
773
- function gn(e, t, n, s) {
774
- const r = [];
775
- if (s[Y] = t, s[rn] = String(n), e)
776
- for (const i in s)
777
- e.setAttribute(i, s[i]);
778
- function o(i) {
779
- return e?.sheet ? e.sheet.insertRule(i, e.sheet.cssRules.length) : r.push(i);
780
- }
781
- return {
782
- elementAttributes: s,
783
- insertRule: o,
784
- element: e,
785
- bucketName: t,
786
- cssRules() {
787
- return e?.sheet ? Array.from(e.sheet.cssRules).map((i) => i.cssText) : r;
788
- }
789
- };
802
+ //#endregion
803
+ //#region node_modules/@griffel/core/renderer/createIsomorphicStyleSheet.esm.js
804
+ function tt(e, t, n, r) {
805
+ let i = [];
806
+ if (r[Z] = t, r[Ie] = String(n), e) for (let t in r) e.setAttribute(t, r[t]);
807
+ function a(t) {
808
+ return e?.sheet ? e.sheet.insertRule(t, e.sheet.cssRules.length) : i.push(t);
809
+ }
810
+ return {
811
+ elementAttributes: r,
812
+ insertRule: a,
813
+ element: e,
814
+ bucketName: t,
815
+ cssRules() {
816
+ return e?.sheet ? Array.from(e.sheet.cssRules).map((e) => e.cssText) : i;
817
+ }
818
+ };
790
819
  }
791
- const fn = [
792
- // reset styles
793
- "r",
794
- // catch-all
795
- "d",
796
- // link
797
- "l",
798
- // visited
799
- "v",
800
- // focus-within
801
- "w",
802
- // focus
803
- "f",
804
- // focus-visible
805
- "i",
806
- // hover
807
- "h",
808
- // active
809
- "a",
810
- // at rules for reset styles
811
- "s",
812
- // keyframes
813
- "k",
814
- // at-rules
815
- "t",
816
- // @media rules
817
- "m",
818
- // @container rules
819
- "c"
820
- ], Ee = /* @__PURE__ */ fn.reduce((e, t, n) => (e[t] = n, e), {});
821
- function pn(e, t, n) {
822
- return (e === "m" ? e + t : e) + n;
820
+ var nt = /* @__PURE__ */ [
821
+ "r",
822
+ "d",
823
+ "l",
824
+ "v",
825
+ "w",
826
+ "f",
827
+ "i",
828
+ "h",
829
+ "a",
830
+ "s",
831
+ "k",
832
+ "t",
833
+ "m",
834
+ "c"
835
+ ].reduce((e, t, n) => (e[t] = n, e), {});
836
+ function rt(e, t, n) {
837
+ return (e === "m" ? e + t : e) + n;
823
838
  }
824
- function hn(e, t, n, s, r = {}) {
825
- var o, i;
826
- const c = e === "m", a = (o = r.m) !== null && o !== void 0 ? o : "0", u = (i = r.p) !== null && i !== void 0 ? i : 0, d = pn(e, a, u);
827
- if (!s.stylesheets[d]) {
828
- const g = t && t.createElement("style"), A = gn(g, e, u, Object.assign({}, s.styleElementAttributes, c && {
829
- media: a
830
- }));
831
- s.stylesheets[d] = A, t?.head && g && t.head.insertBefore(g, Pn(t, n, e, s, r));
832
- }
833
- return s.stylesheets[d];
839
+ function it(e, t, n, r, i = {}) {
840
+ let a = e === "m", o = i.m ?? "0", s = i.p ?? 0, c = rt(e, o, s);
841
+ if (!r.stylesheets[c]) {
842
+ let l = t && t.createElement("style"), u = tt(l, e, s, Object.assign({}, r.styleElementAttributes, a && { media: o }));
843
+ r.stylesheets[c] = u, t?.head && l && t.head.insertBefore(l, ot(t, n, e, r, i));
844
+ }
845
+ return r.stylesheets[c];
834
846
  }
835
- function Sn(e, t, n) {
836
- var s, r;
837
- const o = t + ((s = n.m) !== null && s !== void 0 ? s : ""), i = e.getAttribute(Y) + ((r = e.media) !== null && r !== void 0 ? r : "");
838
- return o === i;
847
+ function at(e, t, n) {
848
+ return t + (n.m ?? "") === e.getAttribute(Z) + (e.media ?? "");
839
849
  }
840
- function Pn(e, t, n, s, r = {}) {
841
- var o, i;
842
- const c = Ee[n], a = (o = r.m) !== null && o !== void 0 ? o : "", u = (i = r.p) !== null && i !== void 0 ? i : 0;
843
- let d = (f) => c - Ee[f.getAttribute(Y)], g = e.head.querySelectorAll(`[${Y}]`);
844
- if (n === "m") {
845
- const f = e.head.querySelectorAll(`[${Y}="${n}"]`);
846
- f.length && (g = f, d = (S) => s.compareMediaQueries(a, S.media));
847
- }
848
- const A = (f) => Sn(f, n, r) ? u - Number(f.getAttribute("data-priority")) : d(f), l = g.length;
849
- let p = l - 1;
850
- for (; p >= 0; ) {
851
- const f = g.item(p);
852
- if (A(f) > 0)
853
- return f.nextSibling;
854
- p--;
855
- }
856
- return l > 0 ? g.item(0) : t ? t.nextSibling : null;
850
+ function ot(e, t, n, r, i = {}) {
851
+ let a = nt[n], o = i.m ?? "", s = i.p ?? 0, c = (e) => a - nt[e.getAttribute(Z)], l = e.head.querySelectorAll(`[${Z}]`);
852
+ if (n === "m") {
853
+ let t = e.head.querySelectorAll(`[${Z}="${n}"]`);
854
+ t.length && (l = t, c = (e) => r.compareMediaQueries(o, e.media));
855
+ }
856
+ let u = (e) => at(e, n, i) ? s - Number(e.getAttribute("data-priority")) : c(e), d = l.length, f = d - 1;
857
+ for (; f >= 0;) {
858
+ let e = l.item(f);
859
+ if (u(e) > 0) return e.nextSibling;
860
+ f--;
861
+ }
862
+ return d > 0 ? l.item(0) : t ? t.nextSibling : null;
857
863
  }
858
- const mn = /* @__PURE__ */ ["-moz-placeholder", "-moz-focus-inner", "-moz-focusring", "-ms-input-placeholder", "-moz-read-write", "-moz-read-only"].join("|"), yn = /* @__PURE__ */ new RegExp(`:(${mn})`);
859
- function ve(e, t) {
860
- try {
861
- e.insertRule(t);
862
- } catch (n) {
863
- process.env.NODE_ENV !== "production" && !yn.test(t) && console.error(`There was a problem inserting the following rule: "${t}"`, n);
864
- }
864
+ //#endregion
865
+ //#region node_modules/@griffel/core/renderer/safeInsertRule.esm.js
866
+ var st = /* @__PURE__ */ RegExp(`:(${/* @__PURE__ */ [
867
+ "-moz-placeholder",
868
+ "-moz-focus-inner",
869
+ "-moz-focusring",
870
+ "-ms-input-placeholder",
871
+ "-moz-read-write",
872
+ "-moz-read-only"
873
+ ].join("|")})`);
874
+ function ct(e, t) {
875
+ try {
876
+ e.insertRule(t);
877
+ } catch (e) {
878
+ process.env.NODE_ENV !== "production" && !st.test(t) && console.error(`There was a problem inserting the following rule: "${t}"`, e);
879
+ }
865
880
  }
866
- let wn = 0;
867
- const kn = (e, t) => e < t ? -1 : e > t ? 1 : 0;
868
- function In(e = typeof document > "u" ? void 0 : document, t = {}) {
869
- const {
870
- classNameHashSalt: n,
871
- unstable_filterCSSRule: s,
872
- insertionPoint: r,
873
- styleElementAttributes: o,
874
- compareMediaQueries: i = kn
875
- } = t, c = {
876
- classNameHashSalt: n,
877
- insertionCache: {},
878
- stylesheets: {},
879
- styleElementAttributes: Object.freeze(o),
880
- compareMediaQueries: i,
881
- id: `d${wn++}`,
882
- insertCSSRules(a) {
883
- for (const u in a) {
884
- const d = a[u];
885
- for (let g = 0, A = d.length; g < A; g++) {
886
- const [l, p] = dn(d[g]), f = hn(u, e, r || null, c, p);
887
- c.insertionCache[l] || (c.insertionCache[l] = u, process.env.NODE_ENV !== "production" && te && F.addCSSRule(l), s ? s(l) && ve(f, l) : ve(f, l));
888
- }
889
- }
890
- }
891
- };
892
- return e && process.env.NODE_ENV !== "production" && te && An(e), c;
881
+ //#endregion
882
+ //#region node_modules/@griffel/core/renderer/createDOMRenderer.esm.js
883
+ var lt = 0, ut = (e, t) => e < t ? -1 : e > t ? 1 : 0;
884
+ function dt(e = typeof document > "u" ? void 0 : document, t = {}) {
885
+ let { classNameHashSalt: n, unstable_filterCSSRule: r, insertionPoint: i, styleElementAttributes: a, compareMediaQueries: o = ut } = t, s = {
886
+ classNameHashSalt: n,
887
+ insertionCache: {},
888
+ stylesheets: {},
889
+ styleElementAttributes: Object.freeze(a),
890
+ compareMediaQueries: o,
891
+ id: `d${lt++}`,
892
+ insertCSSRules(t) {
893
+ for (let n in t) {
894
+ let a = t[n];
895
+ for (let t = 0, o = a.length; t < o; t++) {
896
+ let [o, c] = et(a[t]), l = it(n, e, i || null, s, c);
897
+ s.insertionCache[o] || (s.insertionCache[o] = n, process.env.NODE_ENV !== "production" && $e && Q.addCSSRule(o), r ? r(o) && ct(l, o) : ct(l, o));
898
+ }
899
+ }
900
+ }
901
+ };
902
+ return e && process.env.NODE_ENV !== "production" && $e && Qe(e), s;
893
903
  }
894
- const Pe = "<unknown>";
895
- function Bn(e) {
896
- return xn(e) || En(e) || Rn(e);
904
+ //#endregion
905
+ //#region node_modules/@griffel/core/devtools/react-render-tracker/stackTrace.esm.js
906
+ var ft = "<unknown>";
907
+ function pt(e) {
908
+ return _t(e) || bt(e) || St(e);
897
909
  }
898
- const Cn = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)?\)?\s*$/i, jn = /^\s*at ()((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)\s*$/i, On = /\((\S*)\)/;
899
- function xn(e) {
900
- const t = Cn.exec(e) || jn.exec(e);
901
- if (!t)
902
- return null;
903
- let n = t[2];
904
- const s = n && n.indexOf("native") === 0, r = n && n.indexOf("eval") === 0, o = On.exec(n);
905
- return r && o != null && (n = o[1]), {
906
- loc: s ? null : t[2],
907
- name: t[1] || Pe
908
- };
910
+ var mt = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)?\)?\s*$/i, ht = /^\s*at ()((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)\s*$/i, gt = /\((\S*)\)/;
911
+ function _t(e) {
912
+ let t = mt.exec(e) || ht.exec(e);
913
+ if (!t) return null;
914
+ let n = t[2], r = n && n.indexOf("native") === 0, i = n && n.indexOf("eval") === 0, a = gt.exec(n);
915
+ return i && a != null && (n = a[1]), {
916
+ loc: r ? null : t[2],
917
+ name: t[1] || ft
918
+ };
909
919
  }
910
- const Hn = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)\s*$/i, Dn = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
911
- function En(e) {
912
- const t = Hn.exec(e);
913
- if (!t)
914
- return null;
915
- let n = t[3];
916
- const s = n && n.indexOf(" > eval") > -1, r = Dn.exec(n);
917
- return s && r != null && (n = r[1]), {
918
- loc: t[3],
919
- name: t[1] || Pe
920
- };
920
+ var vt = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)\s*$/i, yt = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
921
+ function bt(e) {
922
+ let t = vt.exec(e);
923
+ if (!t) return null;
924
+ let n = t[3], r = n && n.indexOf(" > eval") > -1, i = yt.exec(n);
925
+ return r && i != null && (n = i[1]), {
926
+ loc: t[3],
927
+ name: t[1] || ft
928
+ };
921
929
  }
922
- const vn = /^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?)\s*$/i;
923
- function Rn(e) {
924
- const t = vn.exec(e);
925
- return t ? {
926
- loc: t[3],
927
- name: t[1] || Pe
928
- } : null;
930
+ var xt = /^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?)\s*$/i;
931
+ function St(e) {
932
+ let t = xt.exec(e);
933
+ return t ? {
934
+ loc: t[3],
935
+ name: t[1] || ft
936
+ } : null;
929
937
  }
930
- function Jn() {
931
- const e = String(new Error().stack).split(`
932
- `), t = Tn(e);
933
- if (t === void 0)
934
- return;
935
- const n = Bn(t);
936
- return n?.loc;
938
+ //#endregion
939
+ //#region node_modules/@griffel/core/devtools/getSourceURLfromError.esm.js
940
+ function Ct() {
941
+ let e = wt(String((/* @__PURE__ */ Error()).stack).split("\n"));
942
+ return e === void 0 ? void 0 : pt(e)?.loc;
937
943
  }
938
- function Tn(e) {
939
- for (let t = e.length - 1; t >= 0; --t)
940
- if (e[t].includes("at getSourceURLfromError"))
941
- return e[t + 3];
944
+ function wt(e) {
945
+ for (let t = e.length - 1; t >= 0; --t) if (e[t].includes("at getSourceURLfromError")) return e[t + 3];
942
946
  }
943
- const Gn = () => {
944
- const e = {};
945
- return function(n, s) {
946
- e[n.id] === void 0 && (n.insertCSSRules(s), e[n.id] = !0);
947
- };
947
+ //#endregion
948
+ //#region node_modules/@griffel/core/insertionFactory.esm.js
949
+ var Tt = () => {
950
+ let e = {};
951
+ return function(t, n) {
952
+ e[t.id] === void 0 && (t.insertCSSRules(n), e[t.id] = !0);
953
+ };
948
954
  };
949
- function Mn(e, t, n = Gn) {
950
- const s = n();
951
- let r = null, o = null, i;
952
- process.env.NODE_ENV !== "production" && te && (i = Jn());
953
- function c(a) {
954
- const {
955
- dir: u,
956
- renderer: d
957
- } = a, g = u === "ltr";
958
- g ? r === null && (r = Oe(e, u)) : o === null && (o = Oe(e, u)), s(d, t);
959
- const A = g ? r : o;
960
- return process.env.NODE_ENV !== "production" && te && F.addSequenceDetails(A, i), A;
961
- }
962
- return c;
955
+ //#endregion
956
+ //#region node_modules/@griffel/core/__styles.esm.js
957
+ function Et(e, t, n = Tt) {
958
+ let r = n(), i = null, a = null, o;
959
+ process.env.NODE_ENV !== "production" && $e && (o = Ct());
960
+ function s(n) {
961
+ let { dir: s, renderer: c } = n, l = s === "ltr";
962
+ l ? i === null && (i = He(e, s)) : a === null && (a = He(e, s)), r(c, t);
963
+ let u = l ? i : a;
964
+ return process.env.NODE_ENV !== "production" && $e && Q.addSequenceDetails(u, o), u;
965
+ }
966
+ return s;
963
967
  }
964
- function Qn() {
965
- return typeof window < "u" && !!(window.document && window.document.createElement);
968
+ //#endregion
969
+ //#region node_modules/@griffel/react/utils/canUseDOM.esm.js
970
+ function Dt() {
971
+ return typeof window < "u" && !!(window.document && window.document.createElement);
966
972
  }
967
- const Re = (
968
- // @ts-expect-error Hack to make sure that `useInsertionEffect` will not cause bundling issues in older React versions
969
- // eslint-disable-next-line no-useless-concat
970
- H.useInsertionEffect ? H.useInsertionEffect : void 0
971
- ), Un = () => {
972
- const e = {};
973
- return function(n, s) {
974
- if (Re && Qn()) {
975
- Re(() => {
976
- n.insertCSSRules(s);
977
- }, [n, s]);
978
- return;
979
- }
980
- e[n.id] === void 0 && (n.insertCSSRules(s), e[n.id] = !0);
981
- };
982
- }, Nn = /* @__PURE__ */ H.createContext(/* @__PURE__ */ In());
983
- function bn() {
984
- return H.useContext(Nn);
973
+ //#endregion
974
+ //#region node_modules/@griffel/react/useInsertionEffect.esm.js
975
+ var Ot = e.useInsertionEffect ? e.useInsertionEffect : void 0, kt = () => {
976
+ let e = {};
977
+ return function(t, n) {
978
+ if (Ot && Dt()) {
979
+ Ot(() => {
980
+ t.insertCSSRules(n);
981
+ }, [t, n]);
982
+ return;
983
+ }
984
+ e[t.id] === void 0 && (t.insertCSSRules(n), e[t.id] = !0);
985
+ };
986
+ }, At = /* @__PURE__ */ e.createContext(/* @__PURE__ */ dt());
987
+ function jt() {
988
+ return e.useContext(At);
985
989
  }
986
- const Fn = /* @__PURE__ */ H.createContext("ltr");
987
- function Ln() {
988
- return H.useContext(Fn);
990
+ //#endregion
991
+ //#region node_modules/@griffel/react/TextDirectionContext.esm.js
992
+ var Mt = /* @__PURE__ */ e.createContext("ltr");
993
+ function Nt() {
994
+ return e.useContext(Mt);
989
995
  }
990
- function _e(e, t) {
991
- const n = Mn(e, t, Un);
992
- return function() {
993
- const r = Ln(), o = bn();
994
- return n({
995
- dir: r,
996
- renderer: o
997
- });
998
- };
996
+ //#endregion
997
+ //#region node_modules/@griffel/react/__styles.esm.js
998
+ function Pt(e, t) {
999
+ let n = Et(e, t, kt);
1000
+ return function() {
1001
+ return n({
1002
+ dir: Nt(),
1003
+ renderer: jt()
1004
+ });
1005
+ };
999
1006
  }
1000
- const $e = H.createContext(void 0), Kn = {};
1001
- $e.Provider;
1002
- const qn = () => {
1003
- const e = H.useContext($e);
1004
- return e ?? Kn;
1005
- }, Wn = _e({
1006
- root: {
1007
- mc9l5x: "f1w7gpdv",
1008
- Bg96gwp: "fez10in"
1009
- },
1010
- rtl: {
1011
- Bz10aip: "f13rod7r"
1012
- }
1013
- }, {
1014
- d: [".f1w7gpdv{display:inline;}", ".fez10in{line-height:0;}", ".f13rod7r{transform:scaleX(-1);}"]
1015
- }), Yn = (e, t) => {
1016
- const {
1017
- // remove unwanted props to be set on the svg/html element
1018
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1019
- filled: n,
1020
- title: s,
1021
- primaryFill: r = "currentColor",
1022
- ...o
1023
- } = e, i = {
1024
- ...o,
1025
- fill: r
1026
- }, c = Wn(), a = qn();
1027
- return i.className = Ve(c.root, t?.flipInRtl && a?.textDirection === "rtl" && c.rtl, i.className), s && (i["aria-label"] = s), !i["aria-label"] && !i["aria-labelledby"] ? i["aria-hidden"] = !0 : i.role = "img", i;
1028
- }, zn = _e({
1029
- root: {
1030
- B8gzw0y: "f1dd5bof"
1031
- }
1032
- }, {
1033
- m: [["@media (forced-colors: active){.f1dd5bof{forced-color-adjust:auto;}}", {
1034
- m: "(forced-colors: active)"
1035
- }]]
1036
- }), Xn = "fui-Icon", Vn = (e, t, n, s) => {
1037
- const o = H.forwardRef((i, c) => {
1038
- const a = zn(), u = Yn(i, { flipInRtl: s?.flipInRtl }), d = {
1039
- ...u,
1040
- className: Ve(Xn, u.className, a.root),
1041
- ref: c,
1042
- width: t,
1043
- height: t,
1044
- viewBox: "0 0 20 20",
1045
- xmlns: "http://www.w3.org/2000/svg"
1046
- };
1047
- return typeof n == "string" ? H.createElement("svg", { ...d, dangerouslySetInnerHTML: { __html: n } }) : H.createElement("svg", d, ...n.map((g) => H.createElement("path", { d: g, fill: d.fill })));
1048
- });
1049
- return o.displayName = e, o;
1050
- }, Zn = /* @__PURE__ */ Vn("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"]), Je = "id,displayName,mail,userPrincipalName,jobTitle,department", _n = (e) => e.trim().replace(/"/g, "").trim(), $n = (e, t) => {
1051
- const n = pe(), s = se(), r = re(), o = t?.minChars ?? 1, i = t?.maxResults ?? 10, c = t?.loadInitialResults ?? !1, [a, u] = N([]), [d, g] = N(!1);
1052
- return ge(() => {
1053
- const A = _n(e), l = c && e.length === 0;
1054
- if (!l && (!A || A.length < o)) {
1055
- u([]), g(!1);
1056
- return;
1057
- }
1058
- let p = !1;
1059
- const f = async () => {
1060
- g(!0);
1061
- try {
1062
- if (Ae(s)) {
1063
- const m = await s.searchPeople(
1064
- l ? "" : A,
1065
- i
1066
- );
1067
- p || u(m);
1068
- } else if (r === "SignedIn" && n) {
1069
- let m;
1070
- l ? m = (await n.api("/users").select(Je).top(i).get()).value ?? [] : m = (await n.api("/users").header("ConsistencyLevel", "eventual").search(`"displayName:${A}" OR "mail:${A}" OR "userPrincipalName:${A}"`).select(Je).top(i).get()).value ?? [], p || u(m);
1071
- } else
1072
- p || u([]);
1073
- } catch {
1074
- p || u([]);
1075
- } finally {
1076
- p || g(!1);
1077
- }
1078
- };
1079
- if (l)
1080
- return f(), () => {
1081
- p = !0;
1082
- };
1083
- const S = setTimeout(() => {
1084
- f();
1085
- }, 300);
1086
- return () => {
1087
- p = !0, clearTimeout(S);
1088
- };
1089
- }, [e, n, s, r, o, i, c]), { results: a, loading: d };
1090
- }, Te = "__no_results__", es = 50, ue = (e) => e.displayName || e.mail || e.userPrincipalName || e.id, ts = (e) => e.mail ?? e.userPrincipalName ?? void 0, et = ({
1091
- person: e,
1092
- size: t,
1093
- photoUrl: n
1094
- }) => /* @__PURE__ */ I(
1095
- Ot,
1096
- {
1097
- name: e.displayName ?? void 0,
1098
- image: n ? { src: n } : void 0,
1099
- initials: n ? void 0 : Ne(e.displayName ?? void 0),
1100
- size: t
1101
- }
1102
- ), ns = ({
1103
- person: e,
1104
- size: t
1105
- }) => {
1106
- const { photoUrl: n } = Le({
1107
- userId: e.id,
1108
- fetchPhoto: !0
1109
- });
1110
- return /* @__PURE__ */ I(et, { person: e, size: t, photoUrl: n });
1111
- }, Ge = ({
1112
- person: e,
1113
- size: t
1114
- }) => e.photoUrl ? /* @__PURE__ */ I(et, { person: e, size: t, photoUrl: e.photoUrl }) : /* @__PURE__ */ I(ns, { person: e, size: t }), fs = ({
1115
- selectedPeople: e,
1116
- defaultSelectedPeople: t,
1117
- onSelectionChange: n,
1118
- placeholder: s = "Search for people...",
1119
- maxPeople: r,
1120
- searchMinChars: o = 1,
1121
- maxSearchResults: i = 10,
1122
- excludeUserIds: c = [],
1123
- appearance: a,
1124
- size: u,
1125
- disabled: d
1126
- }) => {
1127
- const g = e !== void 0, [A, l] = N(
1128
- t ?? []
1129
- ), p = g ? e : A, [f, S] = N(""), [m, h] = N(!1), y = R(
1130
- () => Array.from(new Set(c)),
1131
- [c]
1132
- ), O = Math.min(
1133
- i + y.length,
1134
- es
1135
- ), { results: k, loading: w } = $n(f, {
1136
- minChars: o,
1137
- maxResults: O,
1138
- loadInitialResults: m
1139
- }), C = R(() => {
1140
- const P = /* @__PURE__ */ new Map();
1141
- for (const G of p)
1142
- P.set(G.id, G);
1143
- for (const G of k)
1144
- P.set(G.id, G);
1145
- return P;
1146
- }, [p, k]), T = R(() => p.map((P) => P.id), [p]), D = b(
1147
- (P, G) => {
1148
- const V = G.selectedOptions.filter((Q) => Q !== Te).map((Q) => C.get(Q)).filter((Q) => Q !== void 0);
1149
- g || l(V), n?.(V), S("");
1150
- },
1151
- [g, n, C]
1152
- ), E = b((P) => {
1153
- S(P.target.value);
1154
- }, []), x = b(() => {
1155
- h(!0);
1156
- }, []), v = b(() => {
1157
- h(!1);
1158
- }, []), B = r !== void 0 && p.length >= r, j = R(
1159
- () => k.filter((P) => !T.includes(P.id) && !c.includes(P.id)).slice(0, i),
1160
- [k, T, c, i]
1161
- );
1162
- return /* @__PURE__ */ W(
1163
- mt,
1164
- {
1165
- onOptionSelect: D,
1166
- selectedOptions: T,
1167
- appearance: a,
1168
- size: u,
1169
- disabled: d,
1170
- children: [
1171
- /* @__PURE__ */ W(yt, { expandIcon: /* @__PURE__ */ I(Zn, {}), children: [
1172
- /* @__PURE__ */ I(wt, { children: p.map((P) => /* @__PURE__ */ W(kt, { value: P.id, shape: "rounded", children: [
1173
- /* @__PURE__ */ I(
1174
- It,
1175
- {
1176
- hasSecondaryAction: !0,
1177
- media: /* @__PURE__ */ I(Ge, { person: P, size: 16 }),
1178
- children: ue(P)
1179
- }
1180
- ),
1181
- /* @__PURE__ */ I(
1182
- Bt,
1183
- {
1184
- "aria-label": `Remove ${ue(P)}`
1185
- }
1186
- )
1187
- ] }, P.id)) }),
1188
- !B && /* @__PURE__ */ I(
1189
- Ct,
1190
- {
1191
- value: f,
1192
- onChange: E,
1193
- onFocus: x,
1194
- onBlur: v,
1195
- placeholder: p.length === 0 ? s : void 0,
1196
- disabled: d
1197
- }
1198
- )
1199
- ] }),
1200
- /* @__PURE__ */ W(jt, { children: [
1201
- f.length >= o && !w && j.length === 0 && /* @__PURE__ */ I(ke, { value: Te, text: "No people found", style: { pointerEvents: "none", color: "var(--colorNeutralForegroundDisabled)" }, children: "No people found" }),
1202
- j.map((P) => /* @__PURE__ */ I(
1203
- ke,
1204
- {
1205
- value: P.id,
1206
- media: /* @__PURE__ */ I(Ge, { person: P, size: 32 }),
1207
- secondaryContent: ts(P),
1208
- children: ue(P)
1209
- },
1210
- P.id
1211
- ))
1212
- ] })
1213
- ]
1214
- }
1215
- );
1216
- }, tt = "data:image/jpeg;base64,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", q = [
1217
- {
1218
- id: "00000000-0000-0000-0000-000000000001",
1219
- displayName: "Adele Vance",
1220
- mail: "adelev@contoso.com",
1221
- userPrincipalName: "adelev@contoso.com",
1222
- jobTitle: "Product Manager",
1223
- department: "Marketing"
1224
- },
1225
- {
1226
- id: "00000000-0000-0000-0000-000000000002",
1227
- displayName: "Alex Wilber",
1228
- mail: "alexw@contoso.com",
1229
- userPrincipalName: "alexw@contoso.com",
1230
- jobTitle: "Marketing Assistant",
1231
- department: "Marketing"
1232
- },
1233
- {
1234
- id: "00000000-0000-0000-0000-000000000003",
1235
- displayName: "Diego Siciliani",
1236
- mail: "diegosi@contoso.com",
1237
- userPrincipalName: "diegosi@contoso.com",
1238
- jobTitle: "HR Manager",
1239
- department: "Human Resources"
1240
- },
1241
- {
1242
- id: "00000000-0000-0000-0000-000000000004",
1243
- displayName: "Grady Archie",
1244
- mail: "gradya@contoso.com",
1245
- userPrincipalName: "gradya@contoso.com",
1246
- jobTitle: "Accountant",
1247
- department: "Finance"
1248
- },
1249
- {
1250
- id: "00000000-0000-0000-0000-000000000005",
1251
- displayName: "Henrietta Mueller",
1252
- mail: "henriettam@contoso.com",
1253
- userPrincipalName: "henriettam@contoso.com",
1254
- jobTitle: "Graphic Designer",
1255
- department: "Creative"
1256
- },
1257
- {
1258
- id: "00000000-0000-0000-0000-000000000006",
1259
- displayName: "Isaiah Langer",
1260
- mail: "isaiahl@contoso.com",
1261
- userPrincipalName: "isaiahl@contoso.com",
1262
- jobTitle: "Sales Rep",
1263
- department: "Sales"
1264
- },
1265
- {
1266
- id: "00000000-0000-0000-0000-000000000007",
1267
- displayName: "Johanna Lorenz",
1268
- mail: "johannal@contoso.com",
1269
- userPrincipalName: "johannal@contoso.com",
1270
- jobTitle: "Research Lead",
1271
- department: "R&D"
1272
- },
1273
- {
1274
- id: "00000000-0000-0000-0000-000000000008",
1275
- displayName: "Joni Sherman",
1276
- mail: "jonis@contoso.com",
1277
- userPrincipalName: "jonis@contoso.com",
1278
- jobTitle: "Paralegal",
1279
- department: "Legal"
1280
- },
1281
- {
1282
- id: "00000000-0000-0000-0000-000000000009",
1283
- displayName: "Lee Gu",
1284
- mail: "leeg@contoso.com",
1285
- userPrincipalName: "leeg@contoso.com",
1286
- jobTitle: "Director",
1287
- department: "Engineering"
1288
- },
1289
- {
1290
- id: "00000000-0000-0000-0000-000000000010",
1291
- displayName: "Megan Bowen",
1292
- mail: "meganb@contoso.com",
1293
- userPrincipalName: "meganb@contoso.com",
1294
- jobTitle: "Marketing Manager",
1295
- department: "Marketing"
1296
- }
1007
+ //#endregion
1008
+ //#region node_modules/@fluentui/react-icons/lib/contexts/IconDirectionContext.js
1009
+ var Ft = e.createContext(void 0), It = {};
1010
+ Ft.Provider;
1011
+ var Lt = () => e.useContext(Ft) ?? It, Rt = Pt({
1012
+ root: {
1013
+ mc9l5x: "f1w7gpdv",
1014
+ Bg96gwp: "fez10in"
1015
+ },
1016
+ rtl: { Bz10aip: "f13rod7r" }
1017
+ }, { d: [
1018
+ ".f1w7gpdv{display:inline;}",
1019
+ ".fez10in{line-height:0;}",
1020
+ ".f13rod7r{transform:scaleX(-1);}"
1021
+ ] }), zt = (e, t) => {
1022
+ let { filled: n, title: r, primaryFill: i = "currentColor", ...a } = e, o = {
1023
+ ...a,
1024
+ fill: i
1025
+ }, s = Rt(), c = Lt();
1026
+ return o.className = We(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;
1027
+ }, Bt = Pt({ root: { B8gzw0y: "f1dd5bof" } }, { m: [["@media (forced-colors: active){.f1dd5bof{forced-color-adjust:auto;}}", { m: "(forced-colors: active)" }]] }), Vt = "fui-Icon", Ht = /* @__PURE__ */ ((t, n, r, i) => {
1028
+ let a = n === "1em" ? "20" : n, o = e.forwardRef((t, o) => {
1029
+ let s = Bt(), c = zt(t, { flipInRtl: i?.flipInRtl }), l = {
1030
+ ...c,
1031
+ className: We(Vt, c.className, s.root),
1032
+ ref: o,
1033
+ width: n,
1034
+ height: n,
1035
+ viewBox: `0 0 ${a} ${a}`,
1036
+ xmlns: "http://www.w3.org/2000/svg"
1037
+ };
1038
+ return typeof r == "string" ? e.createElement("svg", {
1039
+ ...l,
1040
+ dangerouslySetInnerHTML: { __html: r }
1041
+ }) : e.createElement("svg", l, ...r.map((t) => e.createElement("path", {
1042
+ d: t,
1043
+ fill: l.fill
1044
+ })));
1045
+ });
1046
+ return o.displayName = t, o;
1047
+ })("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"]), Ut = "id,displayName,mail,userPrincipalName,jobTitle,department", Wt = (e) => e.trim().replace(/"/g, "").trim(), Gt = (e, t) => {
1048
+ let n = H(), r = R(), a = z(), o = t?.minChars ?? 1, c = t?.maxResults ?? 10, l = t?.loadInitialResults ?? !1, [u, d] = s([]), [f, p] = s(!1);
1049
+ return i(() => {
1050
+ let t = Wt(e), i = l && e.length === 0;
1051
+ if (!i && (!t || t.length < o)) {
1052
+ d([]), p(!1);
1053
+ return;
1054
+ }
1055
+ let s = !1, u = async () => {
1056
+ p(!0);
1057
+ try {
1058
+ if (U(r)) {
1059
+ let e = await r.searchPeople(i ? "" : t, c);
1060
+ s || d(e);
1061
+ } else if (a === "SignedIn" && n) {
1062
+ let e;
1063
+ e = i ? (await n.api("/users").select(Ut).top(c).get()).value ?? [] : (await n.api("/users").header("ConsistencyLevel", "eventual").search(`"displayName:${t}" OR "mail:${t}" OR "userPrincipalName:${t}"`).select(Ut).top(c).get()).value ?? [], s || d(e);
1064
+ } else s || d([]);
1065
+ } catch {
1066
+ s || d([]);
1067
+ } finally {
1068
+ s || p(!1);
1069
+ }
1070
+ };
1071
+ if (i) return u(), () => {
1072
+ s = !0;
1073
+ };
1074
+ let f = setTimeout(() => {
1075
+ u();
1076
+ }, 300);
1077
+ return () => {
1078
+ s = !0, clearTimeout(f);
1079
+ };
1080
+ }, [
1081
+ e,
1082
+ n,
1083
+ r,
1084
+ a,
1085
+ o,
1086
+ c,
1087
+ l
1088
+ ]), {
1089
+ results: u,
1090
+ loading: f
1091
+ };
1092
+ }, Kt = "__no_results__", qt = 50, Jt = (e, t, n, r) => e.filter((e) => !t.includes(e.id) && !n.includes(e.id)).slice(0, r), Yt = (e) => e.displayName || e.mail || e.userPrincipalName || e.id, Xt = (e) => e.mail ?? e.userPrincipalName ?? void 0, Zt = ({ person: e, size: t, photoUrl: n }) => /* @__PURE__ */ w(l, {
1093
+ name: e.displayName ?? void 0,
1094
+ image: n ? { src: n } : void 0,
1095
+ initials: n ? void 0 : ie(e.displayName ?? void 0),
1096
+ size: t
1097
+ }), Qt = ({ person: e, size: t }) => {
1098
+ let { photoUrl: n } = se({
1099
+ userId: e.id,
1100
+ fetchPhoto: !0
1101
+ });
1102
+ return /* @__PURE__ */ w(Zt, {
1103
+ person: e,
1104
+ size: t,
1105
+ photoUrl: n
1106
+ });
1107
+ }, $t = ({ person: e, size: t }) => e.photoUrl ? /* @__PURE__ */ w(Zt, {
1108
+ person: e,
1109
+ size: t,
1110
+ photoUrl: e.photoUrl
1111
+ }) : /* @__PURE__ */ w(Qt, {
1112
+ person: e,
1113
+ size: t
1114
+ }), en = ({ selectedPeople: e, defaultSelectedPeople: t, onSelectionChange: r, placeholder: c = "Search for people...", maxPeople: l, searchMinChars: u = 1, maxSearchResults: d = 10, excludeUserIds: f = [], appearance: g, size: _, disabled: ee, onUpdated: E }) => {
1115
+ let D = e !== void 0, [O, k] = s(t ?? []), A = D ? e : O, [j, M] = s(""), [N, P] = s(!1), F = a(() => Array.from(new Set(f)), [f]), { results: I, loading: L } = Gt(j, {
1116
+ minChars: u,
1117
+ maxResults: Math.min(d + F.length, qt),
1118
+ loadInitialResults: N
1119
+ }), te = a(() => {
1120
+ let e = /* @__PURE__ */ new Map();
1121
+ for (let t of A) e.set(t.id, t);
1122
+ for (let t of I) e.set(t.id, t);
1123
+ return e;
1124
+ }, [A, I]), R = a(() => A.map((e) => e.id), [A]), z = a(() => Jt(I, R, F, d), [
1125
+ I,
1126
+ R,
1127
+ F,
1128
+ d
1129
+ ]), ne = n((e, t) => {
1130
+ let n = t.selectedOptions.filter((e) => e !== Kt).map((e) => te.get(e)).filter((e) => e !== void 0), i = Jt(I, n.map((e) => e.id), F, d);
1131
+ D || k(n), r?.(n), E?.({
1132
+ trigger: "selectionChanged",
1133
+ searchQuery: "",
1134
+ selectedPeople: n,
1135
+ searchResults: i,
1136
+ loading: L
1137
+ }), M("");
1138
+ }, [
1139
+ D,
1140
+ d,
1141
+ r,
1142
+ E,
1143
+ te,
1144
+ L,
1145
+ I,
1146
+ F
1147
+ ]), re = n((e) => {
1148
+ M(e.target.value);
1149
+ }, []), ie = n(() => {
1150
+ P(!0);
1151
+ }, []), B = n(() => {
1152
+ P(!1);
1153
+ }, []), V = l !== void 0 && A.length >= l, H = o(!0);
1154
+ return i(() => {
1155
+ if (!E || L) return;
1156
+ let e = H.current && j.length === 0 && z.length === 0;
1157
+ H.current = !1, !e && E({
1158
+ trigger: "searchResultsUpdated",
1159
+ searchQuery: j,
1160
+ selectedPeople: A,
1161
+ searchResults: z,
1162
+ loading: !1
1163
+ });
1164
+ }, [
1165
+ A,
1166
+ z,
1167
+ E,
1168
+ L,
1169
+ j
1170
+ ]), /* @__PURE__ */ T(v, {
1171
+ onOptionSelect: ne,
1172
+ selectedOptions: R,
1173
+ appearance: g,
1174
+ size: _,
1175
+ disabled: ee,
1176
+ children: [/* @__PURE__ */ T(y, {
1177
+ expandIcon: /* @__PURE__ */ w(Ht, {}),
1178
+ children: [/* @__PURE__ */ w(b, { children: A.map((e) => /* @__PURE__ */ T(p, {
1179
+ value: e.id,
1180
+ shape: "rounded",
1181
+ children: [/* @__PURE__ */ w(m, {
1182
+ hasSecondaryAction: !0,
1183
+ media: /* @__PURE__ */ w($t, {
1184
+ person: e,
1185
+ size: 16
1186
+ }),
1187
+ children: Yt(e)
1188
+ }), /* @__PURE__ */ w(h, { "aria-label": `Remove ${Yt(e)}` })]
1189
+ }, e.id)) }), !V && /* @__PURE__ */ w(x, {
1190
+ value: j,
1191
+ onChange: re,
1192
+ onFocus: ie,
1193
+ onBlur: B,
1194
+ placeholder: A.length === 0 ? c : void 0,
1195
+ disabled: ee
1196
+ })]
1197
+ }), /* @__PURE__ */ T(S, { children: [j.length >= u && !L && z.length === 0 && /* @__PURE__ */ w(C, {
1198
+ value: Kt,
1199
+ text: "No people found",
1200
+ style: {
1201
+ pointerEvents: "none",
1202
+ color: "var(--colorNeutralForegroundDisabled)"
1203
+ },
1204
+ children: "No people found"
1205
+ }), z.map((e) => /* @__PURE__ */ w(C, {
1206
+ value: e.id,
1207
+ media: /* @__PURE__ */ w($t, {
1208
+ person: e,
1209
+ size: 32
1210
+ }),
1211
+ secondaryContent: Xt(e),
1212
+ children: Yt(e)
1213
+ }, e.id))] })]
1214
+ });
1215
+ }, tn = "data:image/jpeg;base64,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", $ = [
1216
+ {
1217
+ id: "00000000-0000-0000-0000-000000000001",
1218
+ displayName: "Adele Vance",
1219
+ mail: "adelev@contoso.com",
1220
+ userPrincipalName: "adelev@contoso.com",
1221
+ jobTitle: "Product Manager",
1222
+ department: "Marketing"
1223
+ },
1224
+ {
1225
+ id: "00000000-0000-0000-0000-000000000002",
1226
+ displayName: "Alex Wilber",
1227
+ mail: "alexw@contoso.com",
1228
+ userPrincipalName: "alexw@contoso.com",
1229
+ jobTitle: "Marketing Assistant",
1230
+ department: "Marketing"
1231
+ },
1232
+ {
1233
+ id: "00000000-0000-0000-0000-000000000003",
1234
+ displayName: "Diego Siciliani",
1235
+ mail: "diegosi@contoso.com",
1236
+ userPrincipalName: "diegosi@contoso.com",
1237
+ jobTitle: "HR Manager",
1238
+ department: "Human Resources"
1239
+ },
1240
+ {
1241
+ id: "00000000-0000-0000-0000-000000000004",
1242
+ displayName: "Grady Archie",
1243
+ mail: "gradya@contoso.com",
1244
+ userPrincipalName: "gradya@contoso.com",
1245
+ jobTitle: "Accountant",
1246
+ department: "Finance"
1247
+ },
1248
+ {
1249
+ id: "00000000-0000-0000-0000-000000000005",
1250
+ displayName: "Henrietta Mueller",
1251
+ mail: "henriettam@contoso.com",
1252
+ userPrincipalName: "henriettam@contoso.com",
1253
+ jobTitle: "Graphic Designer",
1254
+ department: "Creative"
1255
+ },
1256
+ {
1257
+ id: "00000000-0000-0000-0000-000000000006",
1258
+ displayName: "Isaiah Langer",
1259
+ mail: "isaiahl@contoso.com",
1260
+ userPrincipalName: "isaiahl@contoso.com",
1261
+ jobTitle: "Sales Rep",
1262
+ department: "Sales"
1263
+ },
1264
+ {
1265
+ id: "00000000-0000-0000-0000-000000000007",
1266
+ displayName: "Johanna Lorenz",
1267
+ mail: "johannal@contoso.com",
1268
+ userPrincipalName: "johannal@contoso.com",
1269
+ jobTitle: "Research Lead",
1270
+ department: "R&D"
1271
+ },
1272
+ {
1273
+ id: "00000000-0000-0000-0000-000000000008",
1274
+ displayName: "Joni Sherman",
1275
+ mail: "jonis@contoso.com",
1276
+ userPrincipalName: "jonis@contoso.com",
1277
+ jobTitle: "Paralegal",
1278
+ department: "Legal"
1279
+ },
1280
+ {
1281
+ id: "00000000-0000-0000-0000-000000000009",
1282
+ displayName: "Lee Gu",
1283
+ mail: "leeg@contoso.com",
1284
+ userPrincipalName: "leeg@contoso.com",
1285
+ jobTitle: "Director",
1286
+ department: "Engineering"
1287
+ },
1288
+ {
1289
+ id: "00000000-0000-0000-0000-000000000010",
1290
+ displayName: "Megan Bowen",
1291
+ mail: "meganb@contoso.com",
1292
+ userPrincipalName: "meganb@contoso.com",
1293
+ jobTitle: "Marketing Manager",
1294
+ department: "Marketing"
1295
+ }
1297
1296
  ].map((e) => ({
1298
- ...e,
1299
- photoUrl: tt
1300
- }));
1301
- class ss {
1302
- state = "SignedOut";
1303
- listeners = [];
1304
- constructor(t) {
1305
- t?.autoSignIn && (this.state = "SignedIn");
1306
- }
1307
- getAccessToken() {
1308
- return this.state !== "SignedIn" ? Promise.reject(new Error("Not signed in")) : Promise.resolve("mock-token");
1309
- }
1310
- async getPersonData(t) {
1311
- const n = t.identifier?.trim(), s = n?.toLowerCase(), r = s && s !== "me" ? q.find(
1312
- (u) => u.id.toLowerCase() === s || u.mail?.toLowerCase() === s || u.userPrincipalName?.toLowerCase() === s || u.displayName?.toLowerCase() === s
1313
- ) : q[0], o = r ?? q[0], i = r || !n || n === "me" ? o.userPrincipalName : n, c = {
1314
- id: o.id,
1315
- displayName: o.displayName,
1316
- userPrincipalName: i,
1317
- jobTitle: o.jobTitle,
1318
- department: o.department,
1319
- officeLocation: "19/3106",
1320
- mail: o.mail
1321
- }, a = {
1322
- availability: "Available",
1323
- activity: "Available",
1324
- id: c.id,
1325
- odataType: "#microsoft.graph.presence"
1326
- };
1327
- return {
1328
- user: c,
1329
- presence: t.fetchPresence ? a : null,
1330
- photoUrl: t.fetchPhoto ? tt : null
1331
- };
1332
- }
1333
- async searchPeople(t, n = 10) {
1334
- const s = t.trim();
1335
- if (!s)
1336
- return q.slice(0, n);
1337
- const r = s.toLowerCase();
1338
- return q.filter(
1339
- (o) => o.displayName?.toLowerCase().includes(r) || o.mail?.toLowerCase().includes(r) || o.userPrincipalName?.toLowerCase().includes(r)
1340
- ).slice(0, n);
1341
- }
1342
- async login() {
1343
- this.state = "SignedIn", this.emit();
1344
- }
1345
- async logout() {
1346
- this.state = "SignedOut", this.emit();
1347
- }
1348
- getState() {
1349
- return this.state;
1350
- }
1351
- onStateChanged(t) {
1352
- this.listeners.push(t);
1353
- }
1354
- removeStateChangedHandler(t) {
1355
- this.listeners = this.listeners.filter((n) => n !== t);
1356
- }
1357
- emit() {
1358
- for (const t of this.listeners)
1359
- try {
1360
- t();
1361
- } catch {
1362
- }
1363
- }
1364
- }
1365
- const ps = () => new ss({ autoSignIn: !0 });
1366
- function rs(e) {
1367
- return `See https://aka.ms/msal.js.errors#${e} for details`;
1297
+ ...e,
1298
+ photoUrl: tn
1299
+ })), nn = class {
1300
+ state = "SignedOut";
1301
+ listeners = [];
1302
+ constructor(e) {
1303
+ e?.autoSignIn && (this.state = "SignedIn");
1304
+ }
1305
+ getAccessToken() {
1306
+ return this.state === "SignedIn" ? Promise.resolve("mock-token") : Promise.reject(/* @__PURE__ */ Error("Not signed in"));
1307
+ }
1308
+ async getPersonData(e) {
1309
+ 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 = {
1310
+ id: i.id,
1311
+ displayName: i.displayName,
1312
+ userPrincipalName: a,
1313
+ jobTitle: i.jobTitle,
1314
+ department: i.department,
1315
+ officeLocation: "19/3106",
1316
+ mail: i.mail
1317
+ }, s = {
1318
+ availability: "Available",
1319
+ activity: "Available",
1320
+ id: o.id,
1321
+ odataType: "#microsoft.graph.presence"
1322
+ };
1323
+ return {
1324
+ user: o,
1325
+ presence: e.fetchPresence ? s : null,
1326
+ photoUrl: e.fetchPhoto ? tn : null
1327
+ };
1328
+ }
1329
+ async searchPeople(e, t = 10) {
1330
+ let n = e.trim();
1331
+ if (!n) return $.slice(0, t);
1332
+ let r = n.toLowerCase();
1333
+ return $.filter((e) => e.displayName?.toLowerCase().includes(r) || e.mail?.toLowerCase().includes(r) || e.userPrincipalName?.toLowerCase().includes(r)).slice(0, t);
1334
+ }
1335
+ async login() {
1336
+ this.state = "SignedIn", this.emit();
1337
+ }
1338
+ async logout() {
1339
+ this.state = "SignedOut", this.emit();
1340
+ }
1341
+ getState() {
1342
+ return this.state;
1343
+ }
1344
+ onStateChanged(e) {
1345
+ this.listeners.push(e);
1346
+ }
1347
+ removeStateChangedHandler(e) {
1348
+ this.listeners = this.listeners.filter((t) => t !== e);
1349
+ }
1350
+ emit() {
1351
+ for (let e of this.listeners) try {
1352
+ e();
1353
+ } catch {}
1354
+ }
1355
+ }, rn = () => new nn({ autoSignIn: !0 });
1356
+ //#endregion
1357
+ //#region node_modules/@azure/msal-common/dist-browser/error/AuthError.mjs
1358
+ function an(e) {
1359
+ return `See https://aka.ms/msal.js.errors#${e} for details`;
1368
1360
  }
1369
- class me extends Error {
1370
- constructor(t, n, s) {
1371
- const r = n || (t ? rs(t) : ""), o = r ? `${t}: ${r}` : t;
1372
- super(o), Object.setPrototypeOf(this, me.prototype), this.errorCode = t || "", this.errorMessage = r || "", this.subError = s || "", this.name = "AuthError";
1373
- }
1374
- setCorrelationId(t) {
1375
- this.correlationId = t;
1376
- }
1377
- }
1378
- class ye extends me {
1379
- constructor(t, n, s, r, o, i, c, a) {
1380
- super(t, n, s), Object.setPrototypeOf(this, ye.prototype), this.timestamp = r || "", this.traceId = o || "", this.correlationId = i || "", this.claims = c || "", this.name = "InteractionRequiredAuthError", this.errorNo = a;
1381
- }
1382
- }
1383
- class os extends Error {
1384
- /**
1385
- * Creates a new instance of RedirectInProgressError.
1386
- *
1387
- * @param message - A human-readable description of the redirect state.
1388
- */
1389
- constructor(t) {
1390
- super(t), this.name = "RedirectInProgressError";
1391
- }
1392
- }
1393
- class hs {
1394
- msalInstance;
1395
- defaultScopes;
1396
- account = null;
1397
- state = "Loading";
1398
- listeners = [];
1399
- constructor(t, n) {
1400
- this.msalInstance = t, this.defaultScopes = n;
1401
- }
1402
- async initialize() {
1403
- await this.msalInstance.initialize();
1404
- const t = await this.msalInstance.handleRedirectPromise();
1405
- if (t?.account) {
1406
- this.account = t.account, this.msalInstance.setActiveAccount(this.account), this.setState("SignedIn");
1407
- return;
1408
- }
1409
- const n = this.msalInstance.getActiveAccount(), s = this.msalInstance.getAllAccounts();
1410
- this.account = n ?? s[0] ?? null, this.account ? (this.msalInstance.setActiveAccount(this.account), this.setState("SignedIn")) : this.setState("SignedOut");
1411
- }
1412
- async login() {
1413
- const t = { scopes: this.defaultScopes };
1414
- await this.msalInstance.loginRedirect(t);
1415
- }
1416
- async logout() {
1417
- const t = this.msalInstance.getActiveAccount() ?? this.account ?? void 0;
1418
- this.account = null, this.msalInstance.setActiveAccount(null), this.setState("SignedOut"), await this.msalInstance.logoutRedirect({ account: t });
1419
- }
1420
- async getAccessToken(t) {
1421
- const n = t && t.length > 0 ? t : this.defaultScopes, s = this.msalInstance.getActiveAccount() ?? this.account;
1422
- if (!s)
1423
- throw new Error("No active account. User must sign in first.");
1424
- const r = {
1425
- scopes: n,
1426
- account: s
1427
- };
1428
- try {
1429
- return (await this.msalInstance.acquireTokenSilent(r)).accessToken;
1430
- } catch (o) {
1431
- if (o instanceof ye) {
1432
- const i = {
1433
- scopes: n,
1434
- account: s
1435
- };
1436
- throw await this.msalInstance.acquireTokenRedirect(i), new os("Redirecting for interactive token acquisition.");
1437
- }
1438
- throw o;
1439
- }
1440
- }
1441
- getState() {
1442
- return this.state;
1443
- }
1444
- onStateChanged(t) {
1445
- this.listeners.push(t);
1446
- }
1447
- removeStateChangedHandler(t) {
1448
- this.listeners = this.listeners.filter((n) => n !== t);
1449
- }
1450
- setState(t) {
1451
- this.state = t, this.emit();
1452
- }
1453
- emit() {
1454
- for (const t of this.listeners)
1455
- try {
1456
- t();
1457
- } catch {
1458
- }
1459
- }
1460
- }
1461
- const is = 6e4;
1462
- function Ss(e) {
1463
- const t = e.fetchFn ?? fetch;
1464
- return async ({
1465
- ssoToken: n,
1466
- scopes: s
1467
- }) => {
1468
- const r = await t(e.endpoint, {
1469
- method: "POST",
1470
- headers: {
1471
- Authorization: `Bearer ${n}`,
1472
- "Content-Type": "application/json"
1473
- },
1474
- body: JSON.stringify({ scopes: s })
1475
- }), o = await r.json().catch(() => ({ error: r.statusText || "Token exchange failed" }));
1476
- if (!r.ok) {
1477
- const i = o?.error || o?.message || r.statusText;
1478
- throw new Error(`Backend token exchange failed: ${i}`);
1479
- }
1480
- if (!o?.accessToken)
1481
- throw new Error("Backend token exchange response did not include accessToken.");
1482
- return {
1483
- accessToken: o.accessToken,
1484
- expiresAt: o.expiresAt
1485
- };
1486
- };
1487
- }
1488
- class Ps {
1489
- defaultScopes;
1490
- getTeamsSsoTokenFn;
1491
- exchangeForGraphTokenFn;
1492
- refreshSkewMs;
1493
- state = "SignedOut";
1494
- listeners = [];
1495
- tokenCache = /* @__PURE__ */ new Map();
1496
- constructor(t) {
1497
- if (!t.defaultScopes || t.defaultScopes.length === 0)
1498
- throw new Error("TeamsHostedProvider requires at least one default scope.");
1499
- this.defaultScopes = [...new Set(t.defaultScopes)], this.getTeamsSsoTokenFn = t.getTeamsSsoToken, this.exchangeForGraphTokenFn = t.exchangeForGraphToken, this.refreshSkewMs = t.refreshSkewMs ?? is;
1500
- }
1501
- async login() {
1502
- try {
1503
- await this.getAccessToken(), this.setState("SignedIn");
1504
- } catch (t) {
1505
- throw this.clearCache(), this.setState("SignedOut"), t;
1506
- }
1507
- }
1508
- async logout() {
1509
- this.clearCache(), this.setState("SignedOut");
1510
- }
1511
- async getAccessToken(t) {
1512
- const n = this.normalizeScopes(t), s = this.buildScopeKey(n), r = this.tokenCache.get(s);
1513
- if (r && this.isTokenValid(r))
1514
- return r.accessToken;
1515
- const o = await this.getTeamsSsoTokenFn(n);
1516
- if (!o)
1517
- throw new Error("Teams SSO token acquisition returned empty token.");
1518
- const i = await this.exchangeForGraphTokenFn({
1519
- ssoToken: o,
1520
- scopes: n
1521
- }), c = this.normalizeExchangedToken(i);
1522
- return this.tokenCache.set(s, c), this.setState("SignedIn"), c.accessToken;
1523
- }
1524
- getState() {
1525
- return this.state;
1526
- }
1527
- onStateChanged(t) {
1528
- this.listeners.push(t);
1529
- }
1530
- removeStateChangedHandler(t) {
1531
- this.listeners = this.listeners.filter((n) => n !== t);
1532
- }
1533
- normalizeScopes(t) {
1534
- const n = t && t.length > 0 ? t : this.defaultScopes, s = [...new Set(n.filter(Boolean))];
1535
- if (s.length === 0)
1536
- throw new Error("At least one scope is required to request a Graph token.");
1537
- return s;
1538
- }
1539
- buildScopeKey(t) {
1540
- return [...t].sort().join(" ");
1541
- }
1542
- isTokenValid(t) {
1543
- return t.expiresAtMs ? Date.now() + this.refreshSkewMs < t.expiresAtMs : !0;
1544
- }
1545
- normalizeExchangedToken(t) {
1546
- if (typeof t == "string") {
1547
- if (!t)
1548
- throw new Error("Graph token exchange returned empty access token.");
1549
- return { accessToken: t };
1550
- }
1551
- if (!t.accessToken)
1552
- throw new Error("Graph token exchange returned empty access token.");
1553
- return {
1554
- accessToken: t.accessToken,
1555
- expiresAtMs: this.toEpochMs(t.expiresAt)
1556
- };
1557
- }
1558
- toEpochMs(t) {
1559
- if (t)
1560
- return t instanceof Date ? t.getTime() : t;
1561
- }
1562
- clearCache() {
1563
- this.tokenCache.clear();
1564
- }
1565
- setState(t) {
1566
- this.state !== t && (this.state = t, this.emit());
1567
- }
1568
- emit() {
1569
- for (const t of this.listeners)
1570
- try {
1571
- t();
1572
- } catch {
1573
- }
1574
- }
1361
+ var on = class e extends Error {
1362
+ constructor(t, n, r) {
1363
+ let i = n || (t ? an(t) : ""), a = i ? `${t}: ${i}` : t;
1364
+ super(a), Object.setPrototypeOf(this, e.prototype), this.errorCode = t || "", this.errorMessage = i || "", this.subError = r || "", this.name = "AuthError";
1365
+ }
1366
+ setCorrelationId(e) {
1367
+ this.correlationId = e;
1368
+ }
1369
+ }, sn = class e extends on {
1370
+ constructor(t, n, r, i, a, o, s, c) {
1371
+ super(t, n, r), Object.setPrototypeOf(this, e.prototype), this.timestamp = i || "", this.traceId = a || "", this.correlationId = o || "", this.claims = s || "", this.name = "InteractionRequiredAuthError", this.errorNo = c;
1372
+ }
1373
+ }, cn = class extends Error {
1374
+ constructor(e) {
1375
+ super(e), this.name = "RedirectInProgressError";
1376
+ }
1377
+ }, ln = class {
1378
+ msalInstance;
1379
+ defaultScopes;
1380
+ account = null;
1381
+ state = "Loading";
1382
+ listeners = [];
1383
+ constructor(e, t) {
1384
+ this.msalInstance = e, this.defaultScopes = t;
1385
+ }
1386
+ async initialize() {
1387
+ await this.msalInstance.initialize();
1388
+ let e = await this.msalInstance.handleRedirectPromise();
1389
+ if (e?.account) {
1390
+ this.account = e.account, this.msalInstance.setActiveAccount(this.account), this.setState("SignedIn");
1391
+ return;
1392
+ }
1393
+ let t = this.msalInstance.getActiveAccount(), n = this.msalInstance.getAllAccounts();
1394
+ this.account = t ?? n[0] ?? null, this.account ? (this.msalInstance.setActiveAccount(this.account), this.setState("SignedIn")) : this.setState("SignedOut");
1395
+ }
1396
+ async login() {
1397
+ let e = { scopes: this.defaultScopes };
1398
+ await this.msalInstance.loginRedirect(e);
1399
+ }
1400
+ async logout() {
1401
+ let e = this.msalInstance.getActiveAccount() ?? this.account ?? void 0;
1402
+ this.account = null, this.msalInstance.setActiveAccount(null), this.setState("SignedOut"), await this.msalInstance.logoutRedirect({ account: e });
1403
+ }
1404
+ async getAccessToken(e) {
1405
+ let t = e && e.length > 0 ? e : this.defaultScopes, n = this.msalInstance.getActiveAccount() ?? this.account;
1406
+ if (!n) throw Error("No active account. User must sign in first.");
1407
+ let r = {
1408
+ scopes: t,
1409
+ account: n
1410
+ };
1411
+ try {
1412
+ return (await this.msalInstance.acquireTokenSilent(r)).accessToken;
1413
+ } catch (e) {
1414
+ if (e instanceof sn) {
1415
+ let e = {
1416
+ scopes: t,
1417
+ account: n
1418
+ };
1419
+ throw await this.msalInstance.acquireTokenRedirect(e), new cn("Redirecting for interactive token acquisition.");
1420
+ }
1421
+ throw e;
1422
+ }
1423
+ }
1424
+ getState() {
1425
+ return this.state;
1426
+ }
1427
+ onStateChanged(e) {
1428
+ this.listeners.push(e);
1429
+ }
1430
+ removeStateChangedHandler(e) {
1431
+ this.listeners = this.listeners.filter((t) => t !== e);
1432
+ }
1433
+ setState(e) {
1434
+ this.state = e, this.emit();
1435
+ }
1436
+ emit() {
1437
+ for (let e of this.listeners) try {
1438
+ e();
1439
+ } catch {}
1440
+ }
1441
+ }, un = 6e4;
1442
+ function dn(e) {
1443
+ let t = e.fetchFn ?? fetch;
1444
+ return async ({ ssoToken: n, scopes: r }) => {
1445
+ let i = await t(e.endpoint, {
1446
+ method: "POST",
1447
+ headers: {
1448
+ Authorization: `Bearer ${n}`,
1449
+ "Content-Type": "application/json"
1450
+ },
1451
+ body: JSON.stringify({ scopes: r })
1452
+ }), a = await i.json().catch(() => ({ error: i.statusText || "Token exchange failed" }));
1453
+ if (!i.ok) {
1454
+ let e = a?.error || a?.message || i.statusText;
1455
+ throw Error(`Backend token exchange failed: ${e}`);
1456
+ }
1457
+ if (!a?.accessToken) throw Error("Backend token exchange response did not include accessToken.");
1458
+ return {
1459
+ accessToken: a.accessToken,
1460
+ expiresAt: a.expiresAt
1461
+ };
1462
+ };
1575
1463
  }
1576
- export {
1577
- As as GraphProvider,
1578
- ss as MockProvider,
1579
- hs as MsalBrowserProvider,
1580
- gs as People,
1581
- fs as PeoplePicker,
1582
- ds as Person,
1583
- os as RedirectInProgressError,
1584
- Ps as TeamsHostedProvider,
1585
- Ss as createBackendTokenExchange,
1586
- ps as createMockSignedInProvider,
1587
- Ae as isPeopleSearchProvider,
1588
- Fe as isPersonDataProvider,
1589
- pe as useGraphClient,
1590
- $t as usePeopleList,
1591
- $n as usePeopleSearch,
1592
- Ut as usePersonCacheOptions,
1593
- Le as usePersonData,
1594
- se as useProvider,
1595
- re as useProviderState
1464
+ var fn = class {
1465
+ defaultScopes;
1466
+ getTeamsSsoTokenFn;
1467
+ exchangeForGraphTokenFn;
1468
+ refreshSkewMs;
1469
+ state = "SignedOut";
1470
+ listeners = [];
1471
+ tokenCache = /* @__PURE__ */ new Map();
1472
+ constructor(e) {
1473
+ if (!e.defaultScopes || e.defaultScopes.length === 0) throw Error("TeamsHostedProvider requires at least one default scope.");
1474
+ this.defaultScopes = [...new Set(e.defaultScopes)], this.getTeamsSsoTokenFn = e.getTeamsSsoToken, this.exchangeForGraphTokenFn = e.exchangeForGraphToken, this.refreshSkewMs = e.refreshSkewMs ?? un;
1475
+ }
1476
+ async login() {
1477
+ try {
1478
+ await this.getAccessToken(), this.setState("SignedIn");
1479
+ } catch (e) {
1480
+ throw this.clearCache(), this.setState("SignedOut"), e;
1481
+ }
1482
+ }
1483
+ async logout() {
1484
+ this.clearCache(), this.setState("SignedOut");
1485
+ }
1486
+ async getAccessToken(e) {
1487
+ let t = this.normalizeScopes(e), n = this.buildScopeKey(t), r = this.tokenCache.get(n);
1488
+ if (r && this.isTokenValid(r)) return r.accessToken;
1489
+ let i = await this.getTeamsSsoTokenFn(t);
1490
+ if (!i) throw Error("Teams SSO token acquisition returned empty token.");
1491
+ let a = await this.exchangeForGraphTokenFn({
1492
+ ssoToken: i,
1493
+ scopes: t
1494
+ }), o = this.normalizeExchangedToken(a);
1495
+ return this.tokenCache.set(n, o), this.setState("SignedIn"), o.accessToken;
1496
+ }
1497
+ getState() {
1498
+ return this.state;
1499
+ }
1500
+ onStateChanged(e) {
1501
+ this.listeners.push(e);
1502
+ }
1503
+ removeStateChangedHandler(e) {
1504
+ this.listeners = this.listeners.filter((t) => t !== e);
1505
+ }
1506
+ normalizeScopes(e) {
1507
+ let t = e && e.length > 0 ? e : this.defaultScopes, n = [...new Set(t.filter(Boolean))];
1508
+ if (n.length === 0) throw Error("At least one scope is required to request a Graph token.");
1509
+ return n;
1510
+ }
1511
+ buildScopeKey(e) {
1512
+ return [...e].sort().join(" ");
1513
+ }
1514
+ isTokenValid(e) {
1515
+ return e.expiresAtMs ? Date.now() + this.refreshSkewMs < e.expiresAtMs : !0;
1516
+ }
1517
+ normalizeExchangedToken(e) {
1518
+ if (typeof e == "string") {
1519
+ if (!e) throw Error("Graph token exchange returned empty access token.");
1520
+ return { accessToken: e };
1521
+ }
1522
+ if (!e.accessToken) throw Error("Graph token exchange returned empty access token.");
1523
+ return {
1524
+ accessToken: e.accessToken,
1525
+ expiresAtMs: this.toEpochMs(e.expiresAt)
1526
+ };
1527
+ }
1528
+ toEpochMs(e) {
1529
+ if (e) return e instanceof Date ? e.getTime() : e;
1530
+ }
1531
+ clearCache() {
1532
+ this.tokenCache.clear();
1533
+ }
1534
+ setState(e) {
1535
+ this.state !== e && (this.state = e, this.emit());
1536
+ }
1537
+ emit() {
1538
+ for (let e of this.listeners) try {
1539
+ e();
1540
+ } catch {}
1541
+ }
1596
1542
  };
1543
+ //#endregion
1544
+ export { te as GraphProvider, nn as MockProvider, ln as MsalBrowserProvider, je as People, en as PeoplePicker, _e as Person, cn as RedirectInProgressError, fn as TeamsHostedProvider, dn as createBackendTokenExchange, rn as createMockSignedInProvider, U as isPeopleSearchProvider, ae as isPersonDataProvider, H as useGraphClient, Te as usePeopleList, Gt as usePeopleSearch, ne as usePersonCacheOptions, se as usePersonData, R as useProvider, z as useProviderState };