mgwdev-m365-components 0.0.3 → 0.0.5
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/{lib → dist}/App.d.ts +3 -3
- package/{lib → dist}/components/Test.d.ts +4 -4
- package/dist/components/common/ConditionalRenderComponent.d.ts +7 -0
- package/dist/components/common/GraphGroupMembershipTrimmedComponent.d.ts +10 -0
- package/{lib → dist}/components/common/GraphPersona.d.ts +12 -10
- package/dist/components/common/SPPermissionTrimmedComponent.d.ts +11 -0
- package/{lib → dist}/components/common/graphEntityPicker/AbstractGraphEntityPicker.d.ts +16 -16
- package/{lib → dist}/components/common/graphEntityPicker/ChannelPicker.d.ts +11 -11
- package/{lib → dist}/components/common/graphEntityPicker/DrivePicker.d.ts +11 -11
- package/{lib → dist}/components/common/graphEntityPicker/ListPicker.d.ts +11 -11
- package/{lib → dist}/components/common/graphEntityPicker/PeoplePicker.d.ts +8 -8
- package/{lib → dist}/components/common/graphEntityPicker/SitePicker.d.ts +8 -8
- package/{lib → dist}/components/common/graphEntityPicker/TeamPicker.d.ts +8 -8
- package/{lib → dist}/components/common/graphEntityPicker/index.d.ts +6 -6
- package/dist/components/common/index.d.ts +4 -0
- package/{lib → dist}/components/index.d.ts +2 -2
- package/{lib → dist}/components/search/DefaultDocumentCard.d.ts +7 -7
- package/{lib → dist}/components/search/M365Search.d.ts +18 -18
- package/{lib → dist}/components/search/SearchDefaults.d.ts +1 -1
- package/{lib → dist}/components/search/index.d.ts +2 -2
- package/{lib → dist}/context/AuthenticationContext.d.ts +11 -11
- package/{lib → dist}/context/DataverseContext.d.ts +13 -13
- package/{lib → dist}/context/GraphContext.d.ts +11 -11
- package/{lib → dist}/context/SPContext.d.ts +13 -13
- package/{lib → dist}/context/index.d.ts +4 -4
- package/{lib → dist}/index.d.ts +2 -2
- package/{lib → dist}/main.d.ts +1 -1
- package/{lib → dist}/model/IEntityWithIdAndDisplayName.d.ts +4 -4
- package/{lib → dist}/model/ISearchResult.d.ts +19 -19
- package/{lib → dist}/model/index.d.ts +1 -1
- package/{lib → dist}/model/infra/ICacheEntry.d.ts +4 -4
- package/dist/mwdev-m365-components.es.js +15417 -0
- package/dist/mwdev-m365-components.umd.js +145 -0
- package/{lib → dist}/services/PersonaService.d.ts +12 -12
- package/{lib → dist}/utils/FileUtils.d.ts +29 -29
- package/{lib → dist}/utils/StringUtils.d.ts +1 -1
- package/{lib → dist}/utils/ThumbnailUtils.d.ts +7 -7
- package/{lib → dist}/utils/index.d.ts +3 -3
- package/dist/vite.svg +1 -0
- package/package.json +70 -67
- package/lib/App.js +0 -212
- package/lib/components/Test.js +0 -37
- package/lib/components/common/GraphPersona.js +0 -125
- package/lib/components/common/graphEntityPicker/AbstractGraphEntityPicker.js +0 -117
- package/lib/components/common/graphEntityPicker/ChannelPicker.js +0 -83
- package/lib/components/common/graphEntityPicker/DrivePicker.js +0 -77
- package/lib/components/common/graphEntityPicker/ListPicker.js +0 -77
- package/lib/components/common/graphEntityPicker/PeoplePicker.js +0 -76
- package/lib/components/common/graphEntityPicker/SitePicker.js +0 -73
- package/lib/components/common/graphEntityPicker/TeamPicker.js +0 -77
- package/lib/components/common/graphEntityPicker/index.js +0 -6
- package/lib/components/common/index.d.ts +0 -2
- package/lib/components/common/index.js +0 -2
- package/lib/components/index.js +0 -2
- package/lib/components/provisioning/GetSiteTemplate.d.ts +0 -6
- package/lib/components/provisioning/GetSiteTemplate.js +0 -41
- package/lib/components/search/DefaultDocumentCard.js +0 -59
- package/lib/components/search/M365Search.js +0 -69
- package/lib/components/search/SearchDefaults.js +0 -17
- package/lib/components/search/index.js +0 -2
- package/lib/context/AuthenticationContext.js +0 -50
- package/lib/context/DataverseContext.js +0 -29
- package/lib/context/GraphContext.js +0 -26
- package/lib/context/SPContext.js +0 -30
- package/lib/context/index.js +0 -4
- package/lib/index.js +0 -2
- package/lib/main.js +0 -6
- package/lib/model/IEntityWithIdAndDisplayName.js +0 -1
- package/lib/model/ISearchResult.js +0 -1
- package/lib/model/index.js +0 -1
- package/lib/model/infra/ICacheEntry.js +0 -1
- package/lib/service-worker/sw.d.ts +0 -3
- package/lib/service-worker/sw.js +0 -20
- package/lib/services/PersonaService.js +0 -134
- package/lib/utils/FileUtils.js +0 -200
- package/lib/utils/StringUtils.js +0 -10
- package/lib/utils/ThumbnailUtils.js +0 -92
- package/lib/utils/index.js +0 -3
|
@@ -1,77 +0,0 @@
|
|
|
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
|
-
import * as React from "react";
|
|
49
|
-
import { AbstractGraphEntityPicker } from "./AbstractGraphEntityPicker";
|
|
50
|
-
import { useGraph } from "../../../context";
|
|
51
|
-
export function TeamPicker(props) {
|
|
52
|
-
var graphClient = useGraph().graphClient;
|
|
53
|
-
return React.createElement(TeamPickerStandalone, __assign({}, props, { graphClient: graphClient }));
|
|
54
|
-
}
|
|
55
|
-
export function TeamPickerStandalone(props) {
|
|
56
|
-
var _this = this;
|
|
57
|
-
var getData = function (search) { return __awaiter(_this, void 0, void 0, function () {
|
|
58
|
-
var api, response, result;
|
|
59
|
-
return __generator(this, function (_a) {
|
|
60
|
-
switch (_a.label) {
|
|
61
|
-
case 0:
|
|
62
|
-
api = "/teams?$select=id,displayName&$top=8";
|
|
63
|
-
if (search) {
|
|
64
|
-
api += "&$filter=startswith(displayName, '".concat(search, "')");
|
|
65
|
-
}
|
|
66
|
-
return [4 /*yield*/, props.graphClient.get(api)];
|
|
67
|
-
case 1:
|
|
68
|
-
response = _a.sent();
|
|
69
|
-
return [4 /*yield*/, response.json()];
|
|
70
|
-
case 2:
|
|
71
|
-
result = _a.sent();
|
|
72
|
-
return [2 /*return*/, result.value];
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}); };
|
|
76
|
-
return React.createElement(AbstractGraphEntityPicker, __assign({ additionalKey: "team-site-picker" }, props, { onDataRequested: getData }));
|
|
77
|
-
}
|
package/lib/components/index.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Button } from "@fluentui/react-components";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { useSP } from "../../context";
|
|
4
|
-
import { TemplateProvider } from "mgwdev-m365-helpers/lib/services/provisioning/TemplateProvider";
|
|
5
|
-
export function GetSiteTemplate(props) {
|
|
6
|
-
var _a = React.useState(undefined), template = _a[0], setTemplate = _a[1];
|
|
7
|
-
var _b = React.useState(0), progress = _b[0], setProgress = _b[1];
|
|
8
|
-
var _c = React.useState(false), loading = _c[0], setLoading = _c[1];
|
|
9
|
-
var _d = React.useState(""), stage = _d[0], setStage = _d[1];
|
|
10
|
-
var _e = useSP(), spClient = _e.spClient, siteUrl = _e.siteUrl;
|
|
11
|
-
var provider = React.useRef(new TemplateProvider(spClient, siteUrl));
|
|
12
|
-
provider.current.onProgress = function (message, percent) {
|
|
13
|
-
setProgress(percent);
|
|
14
|
-
setStage(message);
|
|
15
|
-
};
|
|
16
|
-
return (React.createElement("div", null,
|
|
17
|
-
React.createElement(Button, { appearance: "primary", onClick: function () {
|
|
18
|
-
setLoading(true);
|
|
19
|
-
setProgress(0);
|
|
20
|
-
setStage("Lists");
|
|
21
|
-
provider.current.getSiteTemplate().then(function (template) {
|
|
22
|
-
setTemplate(template);
|
|
23
|
-
setLoading(false);
|
|
24
|
-
;
|
|
25
|
-
});
|
|
26
|
-
} }, "Get template"),
|
|
27
|
-
React.createElement(Button, { disabled: !template, appearance: "primary", onClick: function () {
|
|
28
|
-
var blob = new Blob([JSON.stringify(template, null, 2)], { type: "application/json" });
|
|
29
|
-
var url = URL.createObjectURL(blob);
|
|
30
|
-
var a = document.createElement('a');
|
|
31
|
-
a.href = url;
|
|
32
|
-
a.download = "template.json";
|
|
33
|
-
document.body.appendChild(a);
|
|
34
|
-
a.click();
|
|
35
|
-
window.URL.revokeObjectURL(url);
|
|
36
|
-
} }, "Download Template")));
|
|
37
|
-
}
|
|
38
|
-
export function GetSiteTemplateContext() {
|
|
39
|
-
var siteUrl = useSP().siteUrl;
|
|
40
|
-
return React.createElement(GetSiteTemplate, { siteUrl: siteUrl });
|
|
41
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
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
|
-
import * as React from "react";
|
|
13
|
-
import { useGraph } from "../../context";
|
|
14
|
-
import { ThumbnailUtils } from "../../utils";
|
|
15
|
-
import { Body1, Button, Caption1, Card, CardFooter, CardHeader, CardPreview, makeStyles, shorthands, tokens } from "@fluentui/react-components";
|
|
16
|
-
import FileUtils from "../../utils/FileUtils";
|
|
17
|
-
var useStyles = makeStyles({
|
|
18
|
-
title: __assign({}, shorthands.margin(0, 0, "12px")),
|
|
19
|
-
description: __assign({}, shorthands.margin(0, 0, "12px")),
|
|
20
|
-
card: {
|
|
21
|
-
width: "20rem",
|
|
22
|
-
maxWidth: "100%",
|
|
23
|
-
height: "fit-content",
|
|
24
|
-
},
|
|
25
|
-
image: {
|
|
26
|
-
width: "20rem",
|
|
27
|
-
height: "7rem",
|
|
28
|
-
},
|
|
29
|
-
text: __assign({}, shorthands.margin(0)),
|
|
30
|
-
imageIconWrapper: {
|
|
31
|
-
width: "20rem!important",
|
|
32
|
-
height: "7rem!important",
|
|
33
|
-
display: "flex!important",
|
|
34
|
-
justifyContent: "center",
|
|
35
|
-
alignItems: "center",
|
|
36
|
-
backgroundColor: tokens.colorNeutralBackground3,
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
export var DefaultDocumentCard = function (props) {
|
|
40
|
-
var graphClient = useGraph().graphClient;
|
|
41
|
-
var styles = useStyles();
|
|
42
|
-
var _a = React.useState(undefined), thumbnail = _a[0], setThumbnail = _a[1];
|
|
43
|
-
React.useEffect(function () {
|
|
44
|
-
ThumbnailUtils.getThumbnailImageFromGraph(props.document.fields, graphClient).then(function (thumbnail) {
|
|
45
|
-
setThumbnail(thumbnail);
|
|
46
|
-
}).catch(function (error) {
|
|
47
|
-
console.error(error);
|
|
48
|
-
});
|
|
49
|
-
}, []);
|
|
50
|
-
return React.createElement(Card, { className: styles.card },
|
|
51
|
-
React.createElement(CardPreview, null, thumbnail ? React.createElement("img", { src: thumbnail, alt: props.document.fields.title, className: styles.image }) :
|
|
52
|
-
React.createElement("div", { className: styles.imageIconWrapper },
|
|
53
|
-
React.createElement("div", null,
|
|
54
|
-
React.createElement("img", { src: FileUtils.getFileImageUrl(props.document.fields.path), width: "32px", height: "32px", alt: props.document.fields.title })))),
|
|
55
|
-
React.createElement(CardHeader, { image: React.createElement("img", { src: FileUtils.getFileImageUrl(props.document.fields.path), width: "32px", height: "32px", alt: props.document.fields.title }), header: React.createElement(Body1, null,
|
|
56
|
-
React.createElement("b", null, props.document.fields.title)), description: React.createElement(Caption1, null, props.document.fields.author), action: React.createElement(Button, { appearance: "transparent", "aria-label": "More options" }) }),
|
|
57
|
-
React.createElement("p", { className: styles.text }, props.document.fields.description),
|
|
58
|
-
React.createElement(CardFooter, null));
|
|
59
|
-
};
|
|
@@ -1,69 +0,0 @@
|
|
|
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
|
-
import * as React from "react";
|
|
13
|
-
import { useGraph } from "../../context";
|
|
14
|
-
import { GraphSearchPagedDataProvider } from "mgwdev-m365-helpers";
|
|
15
|
-
import { Input, Spinner, makeStyles, shorthands, tokens } from "@fluentui/react-components";
|
|
16
|
-
import { Search20Regular } from "@fluentui/react-icons";
|
|
17
|
-
import { defaultSelectFields } from "./SearchDefaults";
|
|
18
|
-
import { DefaultDocumentCard } from "./DefaultDocumentCard";
|
|
19
|
-
var useSearchStyles = makeStyles({
|
|
20
|
-
wrapper: {},
|
|
21
|
-
searchInput: {},
|
|
22
|
-
searchResults: __assign({ display: "flex", flexWrap: "wrap", flexDirection: "row" }, shorthands.gap(tokens.spacingHorizontalL, tokens.spacingVerticalL)),
|
|
23
|
-
});
|
|
24
|
-
export var M365Search = function (props) {
|
|
25
|
-
var _a, _b;
|
|
26
|
-
var graphClient = useGraph().graphClient;
|
|
27
|
-
var classNames = useSearchStyles();
|
|
28
|
-
var searchClient = React.useMemo(function () {
|
|
29
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
30
|
-
var provider = new GraphSearchPagedDataProvider(graphClient, [(_b = (_a = props.dataProviderProps) === null || _a === void 0 ? void 0 : _a.entityType) !== null && _b !== void 0 ? _b : "listItem"], ((_c = props.dataProviderProps) === null || _c === void 0 ? void 0 : _c.selectFields) || defaultSelectFields);
|
|
31
|
-
provider.queryTemplate = (_d = props.dataProviderProps) === null || _d === void 0 ? void 0 : _d.queryTemplate;
|
|
32
|
-
provider.pageSize = (_e = props.dataProviderProps) === null || _e === void 0 ? void 0 : _e.pageSize;
|
|
33
|
-
provider.setRefiners((_f = props.dataProviderProps) === null || _f === void 0 ? void 0 : _f.aggregations);
|
|
34
|
-
provider.setQuery((_h = (_g = props.dataProviderProps) === null || _g === void 0 ? void 0 : _g.initialQuery) !== null && _h !== void 0 ? _h : "");
|
|
35
|
-
return provider;
|
|
36
|
-
}, [graphClient, props.dataProviderProps]);
|
|
37
|
-
var _c = React.useState(true), loading = _c[0], setLoading = _c[1];
|
|
38
|
-
var _d = React.useState((_b = (_a = props.dataProviderProps) === null || _a === void 0 ? void 0 : _a.initialQuery) !== null && _b !== void 0 ? _b : ""), query = _d[0], setQuery = _d[1];
|
|
39
|
-
var _e = React.useState([]), results = _e[0], setResults = _e[1];
|
|
40
|
-
var _f = React.useState(undefined), error = _f[0], setError = _f[1];
|
|
41
|
-
React.useEffect(function () {
|
|
42
|
-
searchClient.setQuery(query);
|
|
43
|
-
setLoading(true);
|
|
44
|
-
searchClient.getData().then(function (data) {
|
|
45
|
-
setResults(data);
|
|
46
|
-
setError(undefined);
|
|
47
|
-
}).catch(function (error) {
|
|
48
|
-
setError(error.message);
|
|
49
|
-
}).finally(function () {
|
|
50
|
-
setLoading(false);
|
|
51
|
-
});
|
|
52
|
-
}, [query]);
|
|
53
|
-
var renderSearchInput = function () {
|
|
54
|
-
if (props === null || props === void 0 ? void 0 : props.searchInputComponent) {
|
|
55
|
-
return React.createElement(props.searchInputComponent, { onSearch: function (query) { setQuery(query); } });
|
|
56
|
-
}
|
|
57
|
-
return React.createElement(Input, { contentBefore: React.createElement(Search20Regular, null), placeholder: "Search", value: query, onChange: function (e) { setQuery(e.target.value); } });
|
|
58
|
-
};
|
|
59
|
-
return (React.createElement("div", null,
|
|
60
|
-
React.createElement("div", null, renderSearchInput()),
|
|
61
|
-
React.createElement("div", null,
|
|
62
|
-
loading && React.createElement(Spinner, { label: "Loading..." }),
|
|
63
|
-
!loading && error && React.createElement("div", null,
|
|
64
|
-
"Error: ",
|
|
65
|
-
error)),
|
|
66
|
-
React.createElement("div", { className: classNames.searchResults }, results.map(function (result, index) {
|
|
67
|
-
return React.createElement("div", { key: index }, (props === null || props === void 0 ? void 0 : props.onResultRendering) ? props.onResultRendering(result) : React.createElement(DefaultDocumentCard, { document: result }));
|
|
68
|
-
}))));
|
|
69
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export var defaultSelectFields = [
|
|
2
|
-
"Title",
|
|
3
|
-
"Path",
|
|
4
|
-
"Description",
|
|
5
|
-
"ListItemId",
|
|
6
|
-
"IdentityListItemId",
|
|
7
|
-
"IdentityListId",
|
|
8
|
-
"IdentitySiteCollectionId",
|
|
9
|
-
"IdentityWebId",
|
|
10
|
-
"LastModifiedTime",
|
|
11
|
-
"ViewsLifeTime",
|
|
12
|
-
"ViewsRecent",
|
|
13
|
-
"owstaxidmetadataalltagsinfo",
|
|
14
|
-
"DriveId",
|
|
15
|
-
"Author",
|
|
16
|
-
"AuthorOwsUser",
|
|
17
|
-
];
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (_) try {
|
|
17
|
-
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;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
import * as React from "react";
|
|
38
|
-
export var AuthenticationContext = React.createContext({
|
|
39
|
-
authProvider: {
|
|
40
|
-
getAccessToken: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
41
|
-
throw new Error("No auth provider available");
|
|
42
|
-
}); }); }
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
export var useAuthentication = function () { return React.useContext(AuthenticationContext); };
|
|
46
|
-
export var AuthenticationContextProvider = function (props) {
|
|
47
|
-
return (React.createElement(AuthenticationContext.Provider, { value: {
|
|
48
|
-
authProvider: props.authProvider
|
|
49
|
-
} }, props.children));
|
|
50
|
-
};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { useAuthentication } from "./AuthenticationContext";
|
|
3
|
-
import { AuthHttpClient, FetchHttpClient } from "mgwdev-m365-helpers";
|
|
4
|
-
export var DataverseContext = React.createContext({
|
|
5
|
-
dataverseClient: new FetchHttpClient()
|
|
6
|
-
});
|
|
7
|
-
export var useDataverse = function () { return React.useContext(DataverseContext); };
|
|
8
|
-
export var DataverseContextProvider = function (props) {
|
|
9
|
-
var authProvider = useAuthentication().authProvider;
|
|
10
|
-
var getDataverseClient = function () {
|
|
11
|
-
if (props.dataverseClient) {
|
|
12
|
-
return props.dataverseClient;
|
|
13
|
-
}
|
|
14
|
-
else if (authProvider) {
|
|
15
|
-
var authHttpClient = new AuthHttpClient(authProvider, new FetchHttpClient());
|
|
16
|
-
authHttpClient.resourceUri = props.dataverseResource;
|
|
17
|
-
return authHttpClient;
|
|
18
|
-
}
|
|
19
|
-
return undefined;
|
|
20
|
-
};
|
|
21
|
-
var _a = React.useState(getDataverseClient()), dataverseClient = _a[0], setDataverseClient = _a[1];
|
|
22
|
-
React.useEffect(function () {
|
|
23
|
-
setDataverseClient(getDataverseClient());
|
|
24
|
-
}, [props.dataverseClient, authProvider]);
|
|
25
|
-
return (dataverseClient && React.createElement(DataverseContext.Provider, { value: {
|
|
26
|
-
dataverseClient: dataverseClient,
|
|
27
|
-
dataverseResource: props.dataverseResource
|
|
28
|
-
} }, props.children));
|
|
29
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { useAuthentication } from "./AuthenticationContext";
|
|
3
|
-
import { AuthHttpClient, BatchGraphClient, FetchHttpClient } from "mgwdev-m365-helpers";
|
|
4
|
-
export var GraphContext = React.createContext({
|
|
5
|
-
graphClient: new FetchHttpClient()
|
|
6
|
-
});
|
|
7
|
-
export var useGraph = function () { return React.useContext(GraphContext); };
|
|
8
|
-
export var GraphContextProvider = function (props) {
|
|
9
|
-
var authProvider = useAuthentication().authProvider;
|
|
10
|
-
var getGraphClient = function () {
|
|
11
|
-
if (props.graphClient) {
|
|
12
|
-
return props.graphClient;
|
|
13
|
-
}
|
|
14
|
-
else if (authProvider) {
|
|
15
|
-
return new BatchGraphClient(new AuthHttpClient(authProvider, new FetchHttpClient()));
|
|
16
|
-
}
|
|
17
|
-
return undefined;
|
|
18
|
-
};
|
|
19
|
-
var _a = React.useState(getGraphClient()), graphClient = _a[0], setGraphClient = _a[1];
|
|
20
|
-
React.useEffect(function () {
|
|
21
|
-
setGraphClient(getGraphClient());
|
|
22
|
-
}, [props.graphClient, authProvider]);
|
|
23
|
-
return (graphClient && React.createElement(GraphContext.Provider, { value: {
|
|
24
|
-
graphClient: graphClient
|
|
25
|
-
} }, props.children));
|
|
26
|
-
};
|
package/lib/context/SPContext.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { useAuthentication } from "./AuthenticationContext";
|
|
3
|
-
import { AuthHttpClient, FetchHttpClient } from "mgwdev-m365-helpers";
|
|
4
|
-
export var SPContext = React.createContext({
|
|
5
|
-
spClient: new FetchHttpClient(),
|
|
6
|
-
siteUrl: ""
|
|
7
|
-
});
|
|
8
|
-
export var useSP = function () { return React.useContext(SPContext); };
|
|
9
|
-
export var SPContextProvider = function (props) {
|
|
10
|
-
var authProvider = useAuthentication().authProvider;
|
|
11
|
-
var getSPClient = function () {
|
|
12
|
-
if (props.spClient) {
|
|
13
|
-
return props.spClient;
|
|
14
|
-
}
|
|
15
|
-
else if (authProvider) {
|
|
16
|
-
var authClient = new AuthHttpClient(authProvider, new FetchHttpClient());
|
|
17
|
-
authClient.resourceUri = new URL(props.siteUrl).origin;
|
|
18
|
-
return authClient;
|
|
19
|
-
}
|
|
20
|
-
return undefined;
|
|
21
|
-
};
|
|
22
|
-
var _a = React.useState(getSPClient()), spClient = _a[0], setSPClient = _a[1];
|
|
23
|
-
React.useEffect(function () {
|
|
24
|
-
setSPClient(getSPClient());
|
|
25
|
-
}, [props.spClient, authProvider]);
|
|
26
|
-
return (spClient && React.createElement(SPContext.Provider, { value: {
|
|
27
|
-
spClient: spClient,
|
|
28
|
-
siteUrl: props.siteUrl
|
|
29
|
-
} }, props.children));
|
|
30
|
-
};
|
package/lib/context/index.js
DELETED
package/lib/index.js
DELETED
package/lib/main.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import * as ReactDOM from 'react-dom/client';
|
|
3
|
-
import { FluentProvider, teamsLightTheme } from '@fluentui/react-components';
|
|
4
|
-
import App from './App';
|
|
5
|
-
ReactDOM.createRoot(document.getElementById('root')).render(React.createElement(FluentProvider, { theme: teamsLightTheme },
|
|
6
|
-
React.createElement(App, null)));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/model/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./ISearchResult";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/service-worker/sw.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/// <reference lib="webworker" />
|
|
2
|
-
self.addEventListener("notificationclick", function (event) {
|
|
3
|
-
event.notification.close();
|
|
4
|
-
if (event.action === "open") {
|
|
5
|
-
//@ts-ignore
|
|
6
|
-
clients.openWindow(event.notification.data.url);
|
|
7
|
-
}
|
|
8
|
-
}, false);
|
|
9
|
-
self.addEventListener('install', function (event) {
|
|
10
|
-
console.log('Service worker installed');
|
|
11
|
-
self.skipWaiting();
|
|
12
|
-
});
|
|
13
|
-
self.addEventListener('activate', function (event) {
|
|
14
|
-
console.log('Service worker activated');
|
|
15
|
-
self.clients.claim();
|
|
16
|
-
});
|
|
17
|
-
self.addEventListener("periodicsync", function (event) {
|
|
18
|
-
console.log("periodicsync", event);
|
|
19
|
-
});
|
|
20
|
-
export default self;
|
|
@@ -1,134 +0,0 @@
|
|
|
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
13
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
14
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
15
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
16
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
17
|
-
};
|
|
18
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
19
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
20
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
21
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
22
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
23
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
24
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
28
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
29
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
30
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
31
|
-
function step(op) {
|
|
32
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
33
|
-
while (_) try {
|
|
34
|
-
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;
|
|
35
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
36
|
-
switch (op[0]) {
|
|
37
|
-
case 0: case 1: t = op; break;
|
|
38
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
39
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
40
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
41
|
-
default:
|
|
42
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
43
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
44
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
45
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
46
|
-
if (t[2]) _.ops.pop();
|
|
47
|
-
_.trys.pop(); continue;
|
|
48
|
-
}
|
|
49
|
-
op = body.call(thisArg, _);
|
|
50
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
51
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
import { LocalStorageCacheService } from "mgwdev-m365-helpers/lib/services/cache";
|
|
55
|
-
import { queueRequest } from "mgwdev-m365-helpers/lib/utils/FunctionUtils";
|
|
56
|
-
var PersonaService = /** @class */ (function () {
|
|
57
|
-
function PersonaService(graphClient, updatePresence) {
|
|
58
|
-
this.graphClient = graphClient;
|
|
59
|
-
this.updatePresence = updatePresence;
|
|
60
|
-
this.key = "persona-cache-";
|
|
61
|
-
this.cacheExpiration = 1000 * 60 * 60 * 4;
|
|
62
|
-
this.storageService = new LocalStorageCacheService();
|
|
63
|
-
}
|
|
64
|
-
PersonaService.prototype.getUser = function (id, size) {
|
|
65
|
-
if (size === void 0) { size = "48x48"; }
|
|
66
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
67
|
-
var userId, userQuery_1, userRequest, userResult, userCache, user, userQuery, _a, userInfoRequest, userPhotoRequest, presenceInfo, _b, userResult, photo, presence, presenceInfo, presence;
|
|
68
|
-
return __generator(this, function (_c) {
|
|
69
|
-
switch (_c.label) {
|
|
70
|
-
case 0:
|
|
71
|
-
userId = id;
|
|
72
|
-
if (!(id && id.indexOf("@") > -1)) return [3 /*break*/, 3];
|
|
73
|
-
userQuery_1 = "/users/".concat(id, "?$select=id");
|
|
74
|
-
return [4 /*yield*/, this.graphClient.get(userQuery_1)];
|
|
75
|
-
case 1:
|
|
76
|
-
userRequest = _c.sent();
|
|
77
|
-
if (userRequest.status === 404) {
|
|
78
|
-
return [2 /*return*/, null];
|
|
79
|
-
}
|
|
80
|
-
return [4 /*yield*/, userRequest.json()];
|
|
81
|
-
case 2:
|
|
82
|
-
userResult = _c.sent();
|
|
83
|
-
userId = userResult.id;
|
|
84
|
-
_c.label = 3;
|
|
85
|
-
case 3:
|
|
86
|
-
userCache = this.storageService.get(this.key + id);
|
|
87
|
-
user = userCache === null || userCache === void 0 ? void 0 : userCache.data;
|
|
88
|
-
userQuery = userId ? "/users/".concat(userId) : "/me";
|
|
89
|
-
if (!(!user || userCache.expiration < new Date().getTime())) return [3 /*break*/, 6];
|
|
90
|
-
return [4 /*yield*/, Promise.all([
|
|
91
|
-
this.graphClient.get(userQuery + "?$select=id,displayName,mail,jobTitle,department,officeLocation,mobilePhone,businessPhones,userPrincipalName,usageLocation"),
|
|
92
|
-
this.graphClient.get(userQuery + "/photos/".concat(size, "/$value")),
|
|
93
|
-
this.graphClient.get(userQuery + "/presence"),
|
|
94
|
-
])];
|
|
95
|
-
case 4:
|
|
96
|
-
_a = _c.sent(), userInfoRequest = _a[0], userPhotoRequest = _a[1], presenceInfo = _a[2];
|
|
97
|
-
return [4 /*yield*/, Promise.all([
|
|
98
|
-
userInfoRequest.json(),
|
|
99
|
-
userPhotoRequest.text(),
|
|
100
|
-
presenceInfo.json(),
|
|
101
|
-
])];
|
|
102
|
-
case 5:
|
|
103
|
-
_b = _c.sent(), userResult = _b[0], photo = _b[1], presence = _b[2];
|
|
104
|
-
user = __assign(__assign({}, userResult), { photo: "data:image/png;base64,".concat(photo.replace('"', "").replace('"', "")), presence: presence });
|
|
105
|
-
this.storageService.set(this.key + id, {
|
|
106
|
-
data: user,
|
|
107
|
-
expiration: new Date().getTime() + this.cacheExpiration
|
|
108
|
-
});
|
|
109
|
-
return [3 /*break*/, 9];
|
|
110
|
-
case 6:
|
|
111
|
-
if (!this.updatePresence) return [3 /*break*/, 9];
|
|
112
|
-
return [4 /*yield*/, this.graphClient.get(userQuery + "/presence")];
|
|
113
|
-
case 7:
|
|
114
|
-
presenceInfo = _c.sent();
|
|
115
|
-
return [4 /*yield*/, presenceInfo.json()];
|
|
116
|
-
case 8:
|
|
117
|
-
presence = _c.sent();
|
|
118
|
-
user = __assign(__assign({}, user), { presence: presence });
|
|
119
|
-
this.storageService.set(this.key + id, {
|
|
120
|
-
data: user,
|
|
121
|
-
expiration: new Date().getTime() + this.cacheExpiration
|
|
122
|
-
});
|
|
123
|
-
_c.label = 9;
|
|
124
|
-
case 9: return [2 /*return*/, user];
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
};
|
|
129
|
-
__decorate([
|
|
130
|
-
queueRequest("getUser-{0}")
|
|
131
|
-
], PersonaService.prototype, "getUser", null);
|
|
132
|
-
return PersonaService;
|
|
133
|
-
}());
|
|
134
|
-
export { PersonaService };
|