@pnp/spfx-controls-react 3.20.0-beta.1140273 → 3.20.0-beta.1140290

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.
Files changed (106) hide show
  1. package/lib/common/telemetry/version.js +1 -1
  2. package/lib/controls/userPicker/IUserPickerProps.d.ts +20 -0
  3. package/lib/controls/userPicker/IUserPickerProps.d.ts.map +1 -0
  4. package/lib/controls/userPicker/IUserPickerProps.js +2 -0
  5. package/lib/controls/userPicker/IUserPickerProps.js.map +1 -0
  6. package/lib/controls/userPicker/PopUpMenu.d.ts +11 -0
  7. package/lib/controls/userPicker/PopUpMenu.d.ts.map +1 -0
  8. package/lib/controls/userPicker/PopUpMenu.js +141 -0
  9. package/lib/controls/userPicker/PopUpMenu.js.map +1 -0
  10. package/lib/controls/userPicker/User.d.ts +8 -0
  11. package/lib/controls/userPicker/User.d.ts.map +1 -0
  12. package/lib/controls/userPicker/User.js +18 -0
  13. package/lib/controls/userPicker/User.js.map +1 -0
  14. package/lib/controls/userPicker/UserPicker.d.ts +4 -0
  15. package/lib/controls/userPicker/UserPicker.d.ts.map +1 -0
  16. package/lib/controls/userPicker/UserPicker.js +107 -0
  17. package/lib/controls/userPicker/UserPicker.js.map +1 -0
  18. package/lib/controls/userPicker/UserPickerControl.d.ts +4 -0
  19. package/lib/controls/userPicker/UserPickerControl.d.ts.map +1 -0
  20. package/lib/controls/userPicker/UserPickerControl.js +99 -0
  21. package/lib/controls/userPicker/UserPickerControl.js.map +1 -0
  22. package/lib/controls/userPicker/atoms/globalState.d.ts +5 -0
  23. package/lib/controls/userPicker/atoms/globalState.d.ts.map +1 -0
  24. package/lib/controls/userPicker/atoms/globalState.js +6 -0
  25. package/lib/controls/userPicker/atoms/globalState.js.map +1 -0
  26. package/lib/controls/userPicker/constants/EAppHostname.d.ts +7 -0
  27. package/lib/controls/userPicker/constants/EAppHostname.d.ts.map +1 -0
  28. package/lib/controls/userPicker/constants/EAppHostname.js +8 -0
  29. package/lib/controls/userPicker/constants/EAppHostname.js.map +1 -0
  30. package/lib/controls/userPicker/constants/EMessageTypes.d.ts +6 -0
  31. package/lib/controls/userPicker/constants/EMessageTypes.d.ts.map +1 -0
  32. package/lib/controls/userPicker/constants/EMessageTypes.js +7 -0
  33. package/lib/controls/userPicker/constants/EMessageTypes.js.map +1 -0
  34. package/lib/controls/userPicker/constants/constants.d.ts +2 -0
  35. package/lib/controls/userPicker/constants/constants.d.ts.map +1 -0
  36. package/lib/controls/userPicker/constants/constants.js +2 -0
  37. package/lib/controls/userPicker/constants/constants.js.map +1 -0
  38. package/lib/controls/userPicker/hooks/useGraphUserAPI.d.ts +11 -0
  39. package/lib/controls/userPicker/hooks/useGraphUserAPI.d.ts.map +1 -0
  40. package/lib/controls/userPicker/hooks/useGraphUserAPI.js +213 -0
  41. package/lib/controls/userPicker/hooks/useGraphUserAPI.js.map +1 -0
  42. package/lib/controls/userPicker/hooks/useLocalStorage.d.ts +5 -0
  43. package/lib/controls/userPicker/hooks/useLocalStorage.d.ts.map +1 -0
  44. package/lib/controls/userPicker/hooks/useLocalStorage.js +32 -0
  45. package/lib/controls/userPicker/hooks/useLocalStorage.js.map +1 -0
  46. package/lib/controls/userPicker/hooks/useOnClickOutside.d.ts +2 -0
  47. package/lib/controls/userPicker/hooks/useOnClickOutside.d.ts.map +1 -0
  48. package/lib/controls/userPicker/hooks/useOnClickOutside.js +21 -0
  49. package/lib/controls/userPicker/hooks/useOnClickOutside.js.map +1 -0
  50. package/lib/controls/userPicker/hooks/useUtils.d.ts +52 -0
  51. package/lib/controls/userPicker/hooks/useUtils.d.ts.map +1 -0
  52. package/lib/controls/userPicker/hooks/useUtils.js +383 -0
  53. package/lib/controls/userPicker/hooks/useUtils.js.map +1 -0
  54. package/lib/controls/userPicker/index.d.ts +3 -0
  55. package/lib/controls/userPicker/index.d.ts.map +1 -0
  56. package/lib/controls/userPicker/index.js +3 -0
  57. package/lib/controls/userPicker/index.js.map +1 -0
  58. package/lib/controls/userPicker/models/IFileInfo.d.ts +10 -0
  59. package/lib/controls/userPicker/models/IFileInfo.d.ts.map +1 -0
  60. package/lib/controls/userPicker/models/IFileInfo.js +2 -0
  61. package/lib/controls/userPicker/models/IFileInfo.js.map +1 -0
  62. package/lib/controls/userPicker/models/IGlobalState.d.ts +6 -0
  63. package/lib/controls/userPicker/models/IGlobalState.d.ts.map +1 -0
  64. package/lib/controls/userPicker/models/IGlobalState.js +2 -0
  65. package/lib/controls/userPicker/models/IGlobalState.js.map +1 -0
  66. package/lib/controls/userPicker/models/IGraphBatchRequest.d.ts +7 -0
  67. package/lib/controls/userPicker/models/IGraphBatchRequest.d.ts.map +1 -0
  68. package/lib/controls/userPicker/models/IGraphBatchRequest.js +2 -0
  69. package/lib/controls/userPicker/models/IGraphBatchRequest.js.map +1 -0
  70. package/lib/controls/userPicker/models/IUserInfo.d.ts +6 -0
  71. package/lib/controls/userPicker/models/IUserInfo.d.ts.map +1 -0
  72. package/lib/controls/userPicker/models/IUserInfo.js +2 -0
  73. package/lib/controls/userPicker/models/IUserInfo.js.map +1 -0
  74. package/lib/controls/userPicker/showMessage/IShowMessage.d.ts +8 -0
  75. package/lib/controls/userPicker/showMessage/IShowMessage.d.ts.map +1 -0
  76. package/lib/controls/userPicker/showMessage/IShowMessage.js +2 -0
  77. package/lib/controls/userPicker/showMessage/IShowMessage.js.map +1 -0
  78. package/lib/controls/userPicker/showMessage/ShowMessage.d.ts +4 -0
  79. package/lib/controls/userPicker/showMessage/ShowMessage.d.ts.map +1 -0
  80. package/lib/controls/userPicker/showMessage/ShowMessage.js +39 -0
  81. package/lib/controls/userPicker/showMessage/ShowMessage.js.map +1 -0
  82. package/lib/controls/userPicker/showMessage/useShowMessageStyles.d.ts +2 -0
  83. package/lib/controls/userPicker/showMessage/useShowMessageStyles.d.ts.map +1 -0
  84. package/lib/controls/userPicker/showMessage/useShowMessageStyles.js +26 -0
  85. package/lib/controls/userPicker/showMessage/useShowMessageStyles.js.map +1 -0
  86. package/lib/controls/userPicker/useUserPickerPositioning.d.ts +4 -0
  87. package/lib/controls/userPicker/useUserPickerPositioning.d.ts.map +1 -0
  88. package/lib/controls/userPicker/useUserPickerPositioning.js +22 -0
  89. package/lib/controls/userPicker/useUserPickerPositioning.js.map +1 -0
  90. package/lib/controls/userPicker/useUserPickerStyles.d.ts +2 -0
  91. package/lib/controls/userPicker/useUserPickerStyles.d.ts.map +1 -0
  92. package/lib/controls/userPicker/useUserPickerStyles.js +52 -0
  93. package/lib/controls/userPicker/useUserPickerStyles.js.map +1 -0
  94. package/lib/controls/userPicker/userCard/NoUser.d.ts +5 -0
  95. package/lib/controls/userPicker/userCard/NoUser.d.ts.map +1 -0
  96. package/lib/controls/userPicker/userCard/NoUser.js +12 -0
  97. package/lib/controls/userPicker/userCard/NoUser.js.map +1 -0
  98. package/lib/controls/userPicker/userCard/UserCard.d.ts +11 -0
  99. package/lib/controls/userPicker/userCard/UserCard.d.ts.map +1 -0
  100. package/lib/controls/userPicker/userCard/UserCard.js +173 -0
  101. package/lib/controls/userPicker/userCard/UserCard.js.map +1 -0
  102. package/lib/controls/userPicker/userCard/useUserCardStyles.d.ts +2 -0
  103. package/lib/controls/userPicker/userCard/useUserCardStyles.d.ts.map +1 -0
  104. package/lib/controls/userPicker/userCard/useUserCardStyles.js +26 -0
  105. package/lib/controls/userPicker/userCard/useUserCardStyles.js.map +1 -0
  106. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- export var version = "3.20.0-beta.1140273";
1
+ export var version = "3.20.0-beta.1140290";
2
2
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import { PositioningShorthand } from '@fluentui/react-positioning';
3
+ import { BaseComponentContext, IReadonlyTheme } from '@microsoft/sp-component-base';
4
+ import { IUserInfo } from './models/IUserInfo';
5
+ export interface IUserPickerProps {
6
+ userSelectionLimit?: number;
7
+ label?: string | JSX.Element;
8
+ required?: boolean;
9
+ validationMessage?: string;
10
+ messageType?: "error" | "success" | "warning" | "none" | undefined;
11
+ onSelectedUsers?: (users: IUserInfo[]) => void;
12
+ onRemoveSelectedUser?: (user: IUserInfo) => void;
13
+ placeholder?: string;
14
+ defaultSelectdUsers?: IUserInfo[];
15
+ theme?: IReadonlyTheme | undefined;
16
+ context: BaseComponentContext;
17
+ secondaryTextPropertyName?: "jobTitle" | "department" | "mail" | "officeLocation" | "mobilePhone" | "businessPhones" | "userPrincipalName";
18
+ positioning?: PositioningShorthand;
19
+ }
20
+ //# sourceMappingURL=IUserPickerProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IUserPickerProps.d.ts","sourceRoot":"","sources":["../../../src/controls/userPicker/IUserPickerProps.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EACL,oBAAoB,EACpB,cAAc,EACf,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IACnE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC/C,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,SAAS,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,yBAAyB,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,GAAG,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,GAAG,mBAAmB,CAAG;IAC7I,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IUserPickerProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IUserPickerProps.js","sourceRoot":"","sources":["../../../src/controls/userPicker/IUserPickerProps.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ interface IPopUpMenuProps {
3
+ isOpen: boolean;
4
+ searchValue: string;
5
+ onDismiss: (open?: boolean) => void;
6
+ containerRef: React.MutableRefObject<HTMLDivElement>;
7
+ secondaryTextPropertyName?: "jobTitle" | "department" | "mail" | "officeLocation" | "mobilePhone" | "businessPhones" | "userPrincipalName";
8
+ }
9
+ export declare const PopUpMenu: (props: IPopUpMenuProps) => JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=PopUpMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopUpMenu.d.ts","sourceRoot":"","sources":["../../../src/controls/userPicker/PopUpMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqB/B,UAAU,eAAe;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAErD,yBAAyB,CAAC,EACtB,UAAU,GACV,YAAY,GACZ,MAAM,GACN,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,mBAAmB,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,UAAW,eAAe,KAAG,WA4ElD,CAAC"}
@@ -0,0 +1,141 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (_) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
49
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
50
+ if (ar || !(i in from)) {
51
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
52
+ ar[i] = from[i];
53
+ }
54
+ }
55
+ return to.concat(ar || Array.prototype.slice.call(from));
56
+ };
57
+ /* eslint-disable @typescript-eslint/no-floating-promises */
58
+ import * as React from "react";
59
+ import { useAtom } from "jotai";
60
+ import { pullAllBy } from "lodash";
61
+ import { Card, Spinner, } from "@fluentui/react-components";
62
+ import { globalState } from "./atoms/globalState";
63
+ import { EMessageType } from "./constants/EMessageTypes";
64
+ import { useGraphUserAPI } from "./hooks/useGraphUserAPI";
65
+ import { useOnClickOutside } from "./hooks/useOnClickOutside";
66
+ import { ShowMessage } from "./showMessage/ShowMessage";
67
+ import { NoUser } from "./userCard/NoUser";
68
+ import { UserCard } from "./userCard/UserCard";
69
+ import { useUserPickerStyles } from "./useUserPickerStyles";
70
+ export var PopUpMenu = function (props) {
71
+ var searchValue = props.searchValue, isOpen = props.isOpen, onDismiss = props.onDismiss, containerRef = props.containerRef, secondaryTextPropertyName = props.secondaryTextPropertyName;
72
+ var _a = useAtom(globalState), appGlobalState = _a[0], setAppGlobalState = _a[1];
73
+ var context = appGlobalState.context, selectedUsers = appGlobalState.selectedUsers;
74
+ var _b = React.useState([]), renderUsers = _b[0], setRenderUsers = _b[1];
75
+ var getUserByName = useGraphUserAPI(context).getUserByName;
76
+ var styles = useUserPickerStyles();
77
+ var _c = React.useState(true), isLoading = _c[0], setIsLoading = _c[1];
78
+ var _d = React.useState(undefined), error = _d[0], setError = _d[1];
79
+ var _e = React.useState(false), isSearching = _e[0], setIsSearching = _e[1];
80
+ useOnClickOutside(true, containerRef, function () { return onDismiss(false); });
81
+ var onSelected = React.useCallback(function (user) {
82
+ setAppGlobalState(__assign(__assign({}, appGlobalState), { selectedUsers: __spreadArray(__spreadArray([], selectedUsers, true), [user], false) }));
83
+ onDismiss(false);
84
+ }, []);
85
+ var RenderUsers = React.useCallback(function () {
86
+ if (error)
87
+ return React.createElement(ShowMessage, { messageType: EMessageType.ERROR, message: error.message });
88
+ if (!isLoading && !error)
89
+ return React.createElement("div", { className: styles.usersContainer }, renderUsers);
90
+ return React.createElement(React.Fragment, null);
91
+ }, [isLoading, error, renderUsers, styles.usersContainer]);
92
+ React.useEffect(function () {
93
+ if (searchValue.length < 2)
94
+ return;
95
+ if (isSearching)
96
+ return;
97
+ setIsSearching(true);
98
+ setTimeout(function () { return __awaiter(void 0, void 0, void 0, function () {
99
+ var users, usersToRender, removeSelectedUsers, _i, removeSelectedUsers_1, user, error_1;
100
+ var _a, _b;
101
+ return __generator(this, function (_c) {
102
+ switch (_c.label) {
103
+ case 0:
104
+ _c.trys.push([0, 2, 3, 4]);
105
+ setIsLoading(true);
106
+ return [4 /*yield*/, getUserByName(searchValue)];
107
+ case 1:
108
+ users = (_a = (_c.sent())) !== null && _a !== void 0 ? _a : [];
109
+ usersToRender = [];
110
+ removeSelectedUsers = pullAllBy(users, selectedUsers, "mail");
111
+ for (_i = 0, removeSelectedUsers_1 = removeSelectedUsers; _i < removeSelectedUsers_1.length; _i++) {
112
+ user = removeSelectedUsers_1[_i];
113
+ usersToRender.push(React.createElement(React.Fragment, null,
114
+ React.createElement(UserCard, { userId: (_b = user.mail) !== null && _b !== void 0 ? _b : "", showOverCard: false, onSelected: onSelected, className: styles.userCardStyles, secondaryTextPropertyName: secondaryTextPropertyName })));
115
+ }
116
+ if (usersToRender.length === 0) {
117
+ usersToRender.push(React.createElement(React.Fragment, null,
118
+ React.createElement(NoUser, null)));
119
+ }
120
+ setRenderUsers(usersToRender);
121
+ setIsSearching(false);
122
+ return [3 /*break*/, 4];
123
+ case 2:
124
+ error_1 = _c.sent();
125
+ setError(error_1);
126
+ console.log(error_1);
127
+ return [3 /*break*/, 4];
128
+ case 3:
129
+ setIsLoading(false);
130
+ return [7 /*endfinally*/];
131
+ case 4: return [2 /*return*/];
132
+ }
133
+ });
134
+ }); }, 500);
135
+ }, [searchValue, selectedUsers, getUserByName, onSelected, secondaryTextPropertyName]);
136
+ if (!isOpen)
137
+ return React.createElement(React.Fragment, null);
138
+ return (React.createElement(React.Fragment, null,
139
+ React.createElement(Card, { ref: containerRef, className: styles.popupContainer }, isLoading && !error ? React.createElement(Spinner, { size: "small" }) : React.createElement(RenderUsers, null))));
140
+ };
141
+ //# sourceMappingURL=PopUpMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopUpMenu.js","sourceRoot":"","sources":["../../../src/controls/userPicker/PopUpMenu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ export interface IUserProps {
3
+ userId: string;
4
+ onRemove?: (userId: string) => void;
5
+ secondaryTextPropertyName?: "jobTitle" | "department" | "mail" | "officeLocation" | "mobilePhone" | "businessPhones" | "userPrincipalName";
6
+ }
7
+ export declare const User: React.FunctionComponent<IUserProps>;
8
+ //# sourceMappingURL=User.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../src/controls/userPicker/User.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,yBAAyB,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,GAAG,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,GAAG,mBAAmB,CAAG;CAC9I;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAsBpD,CAAC"}
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import { Button } from '@fluentui/react-components';
3
+ import { Dismiss16Regular } from '@fluentui/react-icons';
4
+ import { UserCard } from './userCard/UserCard';
5
+ import { useUserPickerStyles } from './useUserPickerStyles';
6
+ export var User = function (props) {
7
+ var userId = props.userId, onRemove = props.onRemove, secondaryTextPropertyName = props.secondaryTextPropertyName;
8
+ var styles = useUserPickerStyles();
9
+ var onClick = React.useCallback(function () {
10
+ if (onRemove)
11
+ onRemove(userId);
12
+ }, [userId]);
13
+ return (React.createElement(React.Fragment, null,
14
+ React.createElement("div", { className: styles.userItem },
15
+ React.createElement(UserCard, { userId: userId, showOverCard: true, secondaryTextPropertyName: secondaryTextPropertyName }),
16
+ React.createElement(Button, { shape: "circular", className: styles.userItemCloseButton, appearance: "transparent", icon: React.createElement(Dismiss16Regular, null), onClick: onClick }))));
17
+ };
18
+ //# sourceMappingURL=User.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/controls/userPicker/User.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,CAAC,IAAM,IAAI,GAAwC,UAAC,KAA0C;IAC1F,IAAA,MAAM,GAA0C,KAAK,OAA/C,EAAE,QAAQ,GAAgC,KAAK,SAArC,EAAE,yBAAyB,GAAK,KAAK,0BAAV,CAAW;IAC9D,IAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IAErC,IAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC;QAChC,IAAI,QAAQ;YAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACL;QACE,6BAAK,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC7B,oBAAC,QAAQ,IAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,yBAAyB,EAAE,yBAAyB,GAAG;YACrG,oBAAC,MAAM,IACL,KAAK,EAAC,UAAU,EAChB,SAAS,EAAE,MAAM,CAAC,mBAAmB,EACrC,UAAU,EAAC,aAAa,EACxB,IAAI,EAAE,oBAAC,gBAAgB,OAAG,EAC1B,OAAO,EAAE,OAAO,GAChB,CACE,CACL,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ import { IUserPickerProps } from "./IUserPickerProps";
3
+ export declare const UserPicker: React.FunctionComponent<IUserPickerProps>;
4
+ //# sourceMappingURL=UserPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserPicker.d.ts","sourceRoot":"","sources":["../../../src/controls/userPicker/UserPicker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAgDhE,CAAC"}
@@ -0,0 +1,107 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (_) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ /* eslint-disable @typescript-eslint/no-floating-promises */
49
+ /* eslint-disable @typescript-eslint/no-unused-vars */
50
+ import * as React from "react";
51
+ import { Provider } from "jotai";
52
+ import { has } from "lodash";
53
+ import { FluentProvider, IdPrefixProvider, teamsDarkTheme, teamsHighContrastTheme, teamsLightTheme, } from "@fluentui/react-components";
54
+ import { createV9Theme } from "@fluentui/react-migration-v8-v9";
55
+ import { useTheme } from "@fluentui/react-theme-provider";
56
+ import { UserPickerControl } from "./UserPickerControl";
57
+ export var UserPicker = function (props) {
58
+ var themeV8 = props.theme, context = props.context;
59
+ var _a = React.useState(), theme = _a[0], setTheme = _a[1];
60
+ var currentSPTheme = useTheme();
61
+ var _b = React.useState(false), isInitialized = _b[0], setIsInitialized = _b[1];
62
+ React.useEffect(function () {
63
+ (function () { return __awaiter(void 0, void 0, void 0, function () {
64
+ var teamsContext, teamsTheme;
65
+ var _a;
66
+ return __generator(this, function (_b) {
67
+ switch (_b.label) {
68
+ case 0:
69
+ if (!has(context, "sdks.microsoftTeams.teamsJs.app.getContext")) return [3 /*break*/, 2];
70
+ return [4 /*yield*/, ((_a = context.sdks.microsoftTeams) === null || _a === void 0 ? void 0 : _a.teamsJs.app.getContext())];
71
+ case 1:
72
+ teamsContext = _b.sent();
73
+ teamsTheme = teamsContext.app.theme || "default";
74
+ switch (teamsTheme) {
75
+ case "dark":
76
+ setTheme(teamsDarkTheme);
77
+ break;
78
+ case "contrast":
79
+ setTheme(teamsHighContrastTheme);
80
+ break;
81
+ case "default":
82
+ setTheme(teamsLightTheme);
83
+ break;
84
+ default:
85
+ setTheme(teamsLightTheme);
86
+ break;
87
+ }
88
+ return [3 /*break*/, 3];
89
+ case 2:
90
+ setTheme(createV9Theme(currentSPTheme));
91
+ _b.label = 3;
92
+ case 3:
93
+ setIsInitialized(true);
94
+ return [2 /*return*/];
95
+ }
96
+ });
97
+ }); })();
98
+ }, [context, currentSPTheme]);
99
+ if (!isInitialized)
100
+ return React.createElement(React.Fragment, null);
101
+ return (React.createElement(React.Fragment, null,
102
+ React.createElement(IdPrefixProvider, { value: "userPicker-" },
103
+ React.createElement(FluentProvider, { theme: theme },
104
+ React.createElement(Provider, null,
105
+ React.createElement(UserPickerControl, __assign({}, props)))))));
106
+ };
107
+ //# sourceMappingURL=UserPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserPicker.js","sourceRoot":"","sources":["../../../src/controls/userPicker/UserPicker.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA4D;AAC5D,sDAAsD;AACtD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,eAAe,GAEhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAI1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,IAAM,UAAU,GAA8C,UACnE,KAAgD;IAExC,IAAO,OAAO,GAAc,KAAK,MAAnB,EAAE,OAAO,GAAK,KAAK,QAAV,CAAW;IACpC,IAAA,KAAoB,KAAK,CAAC,QAAQ,EAAS,EAA1C,KAAK,QAAA,EAAE,QAAQ,QAA2B,CAAC;IAClD,IAAM,cAAc,GAAG,QAAQ,EAAE,CAAC;IAC5B,IAAA,KAAoC,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,EAAjE,aAAa,QAAA,EAAE,gBAAgB,QAAkC,CAAC;IAGzE,KAAK,CAAC,SAAS,CAAC;QACd,CAAC;;;;;;6BACK,GAAG,CAAC,OAAO,EAAE,4CAA4C,CAAC,EAA1D,wBAA0D;wBACvC,qBAAM,CAAA,MAAC,OAA0B,CAAC,IAAI,CAAC,cAAc,0CAAE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA,EAAA;;wBAA9F,YAAY,GAAG,SAA+E;wBAC9F,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;wBACvD,QAAQ,UAAU,EAAE;4BAClB,KAAK,MAAM;gCACT,QAAQ,CAAC,cAAc,CAAC,CAAC;gCACzB,MAAM;4BACR,KAAK,UAAU;gCACb,QAAQ,CAAC,sBAAsB,CAAC,CAAC;gCACjC,MAAM;4BACR,KAAK,SAAS;gCACZ,QAAQ,CAAC,eAAe,CAAC,CAAC;gCAC1B,MAAM;4BACR;gCACE,QAAQ,CAAC,eAAe,CAAC,CAAC;gCAC1B,MAAM;yBACT;;;wBAED,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;;;wBAE1C,gBAAgB,CAAC,IAAI,CAAC,CAAC;;;;aACxB,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAE9B,IAAI,CAAC,aAAa;QAAE,OAAO,yCAAK,CAAC;IAEjC,OAAO,CACL;QACE,oBAAC,gBAAgB,IAAC,KAAK,EAAC,aAAa;YACrC,oBAAC,cAAc,IAAC,KAAK,EAAE,KAAK;gBAC1B,oBAAC,QAAQ;oBACP,oBAAC,iBAAiB,eAAK,KAAK,EAAI,CACvB,CACI,CACE,CAClB,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { IUserPickerProps } from './IUserPickerProps';
3
+ export declare const UserPickerControl: React.FunctionComponent<IUserPickerProps>;
4
+ //# sourceMappingURL=UserPickerControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserPickerControl.d.ts","sourceRoot":"","sources":["../../../src/controls/userPicker/UserPickerControl.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAwIvE,CAAC"}
@@ -0,0 +1,99 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /* eslint-disable no-unused-expressions */
3
+ /* eslint-disable @typescript-eslint/no-floating-promises */
4
+ var __assign = (this && this.__assign) || function () {
5
+ __assign = Object.assign || function(t) {
6
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
7
+ s = arguments[i];
8
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9
+ t[p] = s[p];
10
+ }
11
+ return t;
12
+ };
13
+ return __assign.apply(this, arguments);
14
+ };
15
+ import * as React from 'react';
16
+ import { useAtom } from 'jotai';
17
+ import { Field, Input, } from '@fluentui/react-components';
18
+ import { globalState } from './atoms/globalState';
19
+ import { PopUpMenu } from './PopUpMenu';
20
+ import { User } from './User';
21
+ import { useUserPickerPositioning } from './useUserPickerPositioning';
22
+ import { useUserPickerStyles } from './useUserPickerStyles';
23
+ export var UserPickerControl = function (props) {
24
+ var userSelectionLimit = props.userSelectionLimit, label = props.label, required = props.required, validationMessage = props.validationMessage, messageType = props.messageType, onSelectedUsers = props.onSelectedUsers, onRemoveSelectedUser = props.onRemoveSelectedUser, defaultSelectdUsers = props.defaultSelectdUsers, placeholder = props.placeholder, secondaryTextPropertyName = props.secondaryTextPropertyName;
25
+ var buttonRef = React.useRef(null);
26
+ var positioningRef = React.useRef(null);
27
+ var _a = React.useState(false), open = _a[0], setOpen = _a[1];
28
+ var _b = useAtom(globalState), appGlobalState = _b[0], setAppGlobalState = _b[1];
29
+ var selectedUsers = appGlobalState.selectedUsers;
30
+ var _c = React.useState(""), searchUser = _c[0], setSearchUser = _c[1];
31
+ /* const forceUpdate = React.useReducer(() => ({}), {})[1] as () => void; */
32
+ var _d = useUserPickerPositioning(props), userPickerPopupRef = _d[0], userPickerTargetRef = _d[1];
33
+ var styles = useUserPickerStyles();
34
+ React.useEffect(function () {
35
+ setAppGlobalState(__assign(__assign({}, appGlobalState), props));
36
+ }, [props]);
37
+ React.useEffect(function () {
38
+ var _a;
39
+ if (buttonRef.current) {
40
+ (_a = positioningRef.current) === null || _a === void 0 ? void 0 : _a.setTarget(buttonRef.current);
41
+ }
42
+ }, [buttonRef, positioningRef]);
43
+ React.useEffect(function () {
44
+ if (defaultSelectdUsers) {
45
+ setAppGlobalState(__assign(__assign({}, appGlobalState), { selectedUsers: defaultSelectdUsers }));
46
+ }
47
+ }, []);
48
+ var hasSelectedUsers = React.useMemo(function () {
49
+ if (selectedUsers.length > 0) {
50
+ if (onSelectedUsers)
51
+ onSelectedUsers(selectedUsers);
52
+ return true;
53
+ }
54
+ }, [selectedUsers]);
55
+ var showInput = React.useMemo(function () {
56
+ return userSelectionLimit ? selectedUsers.length < userSelectionLimit : true;
57
+ }, [selectedUsers, userSelectionLimit]);
58
+ var onRemove = React.useCallback(function (userId) {
59
+ var newUsers = selectedUsers.filter(function (user) { return user.mail !== userId; });
60
+ var removedUser = selectedUsers.filter(function (user) { return user.mail === userId; });
61
+ setAppGlobalState(__assign(__assign({}, appGlobalState), { selectedUsers: newUsers }));
62
+ onRemoveSelectedUser && onRemoveSelectedUser(removedUser[0]);
63
+ }, [selectedUsers]);
64
+ var RenderSelectedUsers = React.useCallback(function () {
65
+ return (React.createElement(React.Fragment, null, selectedUsers.map(function (user) {
66
+ var _a;
67
+ return (React.createElement(React.Fragment, null,
68
+ React.createElement("div", { className: styles.userItem, key: user.mail },
69
+ React.createElement(User, { userId: (_a = user.mail) !== null && _a !== void 0 ? _a : "", onRemove: onRemove, secondaryTextPropertyName: secondaryTextPropertyName }))));
70
+ })));
71
+ }, [selectedUsers]);
72
+ return (React.createElement(React.Fragment, null,
73
+ React.createElement("div", { style: { width: "100%" }, ref: userPickerTargetRef },
74
+ React.createElement(Field, { label: label, required: required !== null && required !== void 0 ? required : false, validationMessage: validationMessage !== null && validationMessage !== void 0 ? validationMessage : undefined, validationState: messageType },
75
+ React.createElement("div", { className: styles.selectUserMainContainer },
76
+ hasSelectedUsers ? (React.createElement("div", { className: styles.selectedUserContainer },
77
+ React.createElement(RenderSelectedUsers, null))) : null,
78
+ showInput ? (React.createElement("div", { className: styles.inputContainer },
79
+ React.createElement(Input, { value: searchUser, appearance: "underline", style: { borderWidth: 0, width: "100%" }, type: "text", placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : "Search User", onChange: function (event, data) {
80
+ setSearchUser(data.value);
81
+ if (data.value.length === 0) {
82
+ setSearchUser("");
83
+ setOpen(false);
84
+ }
85
+ else {
86
+ if (data.value.length >= 2) {
87
+ setOpen(true);
88
+ }
89
+ else {
90
+ setOpen(false);
91
+ }
92
+ }
93
+ } }),
94
+ open ? (React.createElement(PopUpMenu, { secondaryTextPropertyName: secondaryTextPropertyName, containerRef: userPickerPopupRef, searchValue: searchUser, isOpen: open, onDismiss: function (open) {
95
+ setOpen(false);
96
+ setSearchUser("");
97
+ } })) : null)) : null)))));
98
+ };
99
+ //# sourceMappingURL=UserPickerControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserPickerControl.js","sourceRoot":"","sources":["../../../src/controls/userPicker/UserPickerControl.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { IGlobalState } from "../models/IGlobalState";
2
+ export declare const globalState: import("jotai").PrimitiveAtom<IGlobalState> & {
3
+ init: IGlobalState;
4
+ };
5
+ //# sourceMappingURL=globalState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalState.d.ts","sourceRoot":"","sources":["../../../../src/controls/userPicker/atoms/globalState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAKtD,eAAO,MAAM,WAAW;;CAEN,CAAC"}
@@ -0,0 +1,6 @@
1
+ /* eslint-disable @typescript-eslint/no-var-requires */
2
+ import { atom } from "jotai";
3
+ export var globalState = atom({
4
+ selectedUsers: [],
5
+ });
6
+ //# sourceMappingURL=globalState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalState.js","sourceRoot":"","sources":["../../../../src/controls/userPicker/atoms/globalState.ts"],"names":[],"mappings":"AAEA,uDAAuD;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7B,MAAM,CAAC,IAAM,WAAW,GAAG,IAAI,CAAe;IAC5C,aAAa,EAAE,EAAiB;CACjB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare enum EAppHostName {
2
+ SharePoint = "SharePoint",
3
+ Teams = "Teams",
4
+ Outlook = "Outlook",
5
+ Office = "Office"
6
+ }
7
+ //# sourceMappingURL=EAppHostname.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EAppHostname.d.ts","sourceRoot":"","sources":["../../../../src/controls/userPicker/constants/EAppHostname.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,MAAM,WAAY;CACnB"}
@@ -0,0 +1,8 @@
1
+ export var EAppHostName;
2
+ (function (EAppHostName) {
3
+ EAppHostName["SharePoint"] = "SharePoint";
4
+ EAppHostName["Teams"] = "Teams";
5
+ EAppHostName["Outlook"] = "Outlook";
6
+ EAppHostName["Office"] = "Office";
7
+ })(EAppHostName || (EAppHostName = {}));
8
+ //# sourceMappingURL=EAppHostname.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EAppHostname.js","sourceRoot":"","sources":["../../../../src/controls/userPicker/constants/EAppHostname.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,yCAAyB,CAAA;IACzB,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,iCAAkB,CAAA;AACpB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB"}
@@ -0,0 +1,6 @@
1
+ export declare enum EMessageType {
2
+ INFO = "info",
3
+ ERROR = "error",
4
+ SUCCESS = "success"
5
+ }
6
+ //# sourceMappingURL=EMessageTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EMessageTypes.d.ts","sourceRoot":"","sources":["../../../../src/controls/userPicker/constants/EMessageTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACpB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,OAAO,YAAY;CACtB"}
@@ -0,0 +1,7 @@
1
+ export var EMessageType;
2
+ (function (EMessageType) {
3
+ EMessageType["INFO"] = "info";
4
+ EMessageType["ERROR"] = "error";
5
+ EMessageType["SUCCESS"] = "success";
6
+ })(EMessageType || (EMessageType = {}));
7
+ //# sourceMappingURL=EMessageTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EMessageTypes.js","sourceRoot":"","sources":["../../../../src/controls/userPicker/constants/EMessageTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACpB,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,mCAAmB,CAAA;AACvB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB"}
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_AWARD_IMAGE = "https://www.watermillaccounting.co.uk/wp-content/uploads/2016/10/awards.jpeg";
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/controls/userPicker/constants/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAO,mBAAmB,iFAAiF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export var DEFAULT_AWARD_IMAGE = 'https://www.watermillaccounting.co.uk/wp-content/uploads/2016/10/awards.jpeg';
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/controls/userPicker/constants/constants.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,IAAO,mBAAmB,GAAG,8EAA8E,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Presence, User } from '@microsoft/microsoft-graph-types';
2
+ import { BaseComponentContext } from '@microsoft/sp-component-base';
3
+ import { IUserInfo } from '../models/IUserInfo';
4
+ interface IuseGraphUserAPI {
5
+ getUserByName: (searchName: string) => Promise<User[] | undefined>;
6
+ getUserById: (user: string) => Promise<IUserInfo | undefined>;
7
+ getUserPresence: (userObjectId: string) => Promise<Presence | undefined>;
8
+ }
9
+ export declare const useGraphUserAPI: (context: BaseComponentContext) => IuseGraphUserAPI;
10
+ export {};
11
+ //# sourceMappingURL=useGraphUserAPI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGraphUserAPI.d.ts","sourceRoot":"","sources":["../../../../src/controls/userPicker/hooks/useGraphUserAPI.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EACR,IAAI,EACL,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIhD,UAAU,gBAAgB;IACxB,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC;IACnE,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAC9D,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;CAC1E;AAED,eAAO,MAAM,eAAe,YAAa,oBAAoB,KAAG,gBAiI/D,CAAC"}