synapse-react-client 3.0.25 → 3.0.26
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/containers/AccountLevelBadge.js +6 -34
- package/dist/containers/AccountLevelBadge.js.map +1 -1
- package/dist/containers/AddToDownloadListV2.js +7 -1
- package/dist/containers/AddToDownloadListV2.js.map +1 -1
- package/dist/containers/Avatar.d.ts +1 -0
- package/dist/containers/Avatar.js +21 -14
- package/dist/containers/Avatar.js.map +1 -1
- package/dist/containers/HasAccessV2.d.ts +35 -0
- package/dist/containers/HasAccessV2.js +214 -0
- package/dist/containers/HasAccessV2.js.map +1 -0
- package/dist/containers/IconSvg.js +10 -12
- package/dist/containers/IconSvg.js.map +1 -1
- package/dist/containers/SynapseNavDrawer.js +36 -39
- package/dist/containers/SynapseNavDrawer.js.map +1 -1
- package/dist/containers/UserCard.d.ts +5 -5
- package/dist/containers/UserCard.js +40 -22
- package/dist/containers/UserCard.js.map +1 -1
- package/dist/containers/UserCardMedium.d.ts +1 -0
- package/dist/containers/UserCardMedium.js +11 -30
- package/dist/containers/UserCardMedium.js.map +1 -1
- package/dist/containers/UserCardSmall.d.ts +4 -3
- package/dist/containers/UserCardSmall.js +26 -52
- package/dist/containers/UserCardSmall.js.map +1 -1
- package/dist/containers/table/SynapseTable.js +2 -2
- package/dist/containers/table/SynapseTable.js.map +1 -1
- package/dist/containers/table/datasets/DatasetItemsEditor.js +0 -2
- package/dist/containers/table/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/containers/table/table-top/ColumnSelection.js +1 -1
- package/dist/containers/table/table-top/ColumnSelection.js.map +1 -1
- package/dist/style/base/_core.scss +12 -7
- package/dist/style/main.css +8 -4
- package/dist/template_style/_theme.scss +14 -10
- package/dist/umd/synapse-react-client.development.css +20639 -20634
- package/dist/umd/synapse-react-client.development.css.map +3 -3
- package/dist/umd/synapse-react-client.development.js +80022 -77809
- package/dist/umd/synapse-react-client.development.js.map +3 -3
- package/dist/umd/synapse-react-client.production.min.css +1 -1
- package/dist/umd/synapse-react-client.production.min.js +266 -242
- package/dist/umd.index.d.ts +12 -10
- package/dist/umd.index.js +39 -37
- package/dist/umd.index.js.map +1 -1
- package/dist/utils/APIConstants.d.ts +1 -0
- package/dist/utils/APIConstants.js +5 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/SynapseClient.d.ts +8 -0
- package/dist/utils/SynapseClient.js +14 -1
- package/dist/utils/SynapseClient.js.map +1 -1
- package/dist/utils/functions/getUserData.d.ts +3 -16
- package/dist/utils/functions/getUserData.js +1 -18
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/hooks/SynapseAPI/dataaccess/useGetAccessRequirement.d.ts +2 -1
- package/dist/utils/hooks/SynapseAPI/dataaccess/useGetAccessRequirement.js +6 -1
- package/dist/utils/hooks/SynapseAPI/dataaccess/useGetAccessRequirement.js.map +1 -1
- package/dist/utils/hooks/SynapseAPI/useUserBundle.d.ts +1 -2
- package/dist/utils/hooks/SynapseAPI/useUserBundle.js +15 -12
- package/dist/utils/hooks/SynapseAPI/useUserBundle.js.map +1 -1
- package/dist/utils/hooks/useOverlay.d.ts +1 -1
- package/dist/utils/hooks/useOverlay.js +27 -14
- package/dist/utils/hooks/useOverlay.js.map +1 -1
- package/dist/utils/hooks/usePreFetchResource.d.ts +9 -0
- package/dist/utils/hooks/usePreFetchResource.js +78 -0
- package/dist/utils/hooks/usePreFetchResource.js.map +1 -0
- package/dist/utils/tooltip/Tooltip.d.ts +4 -0
- package/dist/utils/tooltip/Tooltip.js +21 -0
- package/dist/utils/tooltip/Tooltip.js.map +1 -0
- package/dist/utils/typography/Typography.styles.d.ts +1 -1
- package/package.json +1 -1
- package/dist/utils/hooks/useTraceUpdate.d.ts +0 -1
- package/dist/utils/hooks/useTraceUpdate.js +0 -22
- package/dist/utils/hooks/useTraceUpdate.js.map +0 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { UseInfiniteQueryOptions, UseQueryOptions } from 'react-query';
|
|
2
2
|
import { SynapseClient } from '../../..';
|
|
3
3
|
import { SynapseClientError } from '../../../SynapseClient';
|
|
4
|
-
import { AccessControlList, AccessRequirement, WikiPageKey } from '../../../synapseTypes';
|
|
4
|
+
import { AccessControlList, AccessRequirement, RestrictionInformationRequest, RestrictionInformationResponse, WikiPageKey } from '../../../synapseTypes';
|
|
5
5
|
import { AccessRequirementSearchRequest, AccessRequirementSearchResponse } from '../../../synapseTypes/AccessRequirement/AccessRequirementSearch';
|
|
6
6
|
export default function useGetAccessRequirement<T extends AccessRequirement>(accessRequirementId: string | number, options?: UseQueryOptions<T, SynapseClientError>): import("react-query").UseQueryResult<T, SynapseClient.SynapseClientError>;
|
|
7
7
|
export declare function useGetAccessRequirementWikiPageKey(accessRequirementId: string, options?: UseQueryOptions<WikiPageKey, SynapseClientError>): import("react-query").UseQueryResult<WikiPageKey, SynapseClient.SynapseClientError>;
|
|
8
8
|
export declare function useGetAccessRequirementACL(accessRequirementId: string, options?: UseQueryOptions<AccessControlList | null, SynapseClientError>): import("react-query").UseQueryResult<AccessControlList | null, SynapseClient.SynapseClientError>;
|
|
9
9
|
export declare function useSearchAccessRequirementsInfinite(params: Omit<AccessRequirementSearchRequest, 'nextPageToken'>, options?: UseInfiniteQueryOptions<AccessRequirementSearchResponse, SynapseClientError>): import("react-query").UseInfiniteQueryResult<AccessRequirementSearchResponse, SynapseClient.SynapseClientError>;
|
|
10
|
+
export declare function useGetRestrictionInformation(request: RestrictionInformationRequest, options?: UseQueryOptions<RestrictionInformationResponse, SynapseClientError>): import("react-query").UseQueryResult<RestrictionInformationResponse, SynapseClient.SynapseClientError>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useSearchAccessRequirementsInfinite = exports.useGetAccessRequirementACL = exports.useGetAccessRequirementWikiPageKey = void 0;
|
|
3
|
+
exports.useGetRestrictionInformation = exports.useSearchAccessRequirementsInfinite = exports.useGetAccessRequirementACL = exports.useGetAccessRequirementWikiPageKey = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var react_query_1 = require("react-query");
|
|
6
6
|
var __1 = require("../../..");
|
|
@@ -39,4 +39,9 @@ function useSearchAccessRequirementsInfinite(params, options) {
|
|
|
39
39
|
}); }, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, options), { getNextPageParam: function (page) { return page.nextPageToken; } }));
|
|
40
40
|
}
|
|
41
41
|
exports.useSearchAccessRequirementsInfinite = useSearchAccessRequirementsInfinite;
|
|
42
|
+
function useGetRestrictionInformation(request, options) {
|
|
43
|
+
var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
|
|
44
|
+
return (0, react_query_1.useQuery)(['restrictionInformation', request], function () { return __1.SynapseClient.getRestrictionInformation(request, accessToken); }, options);
|
|
45
|
+
}
|
|
46
|
+
exports.useGetRestrictionInformation = useGetRestrictionInformation;
|
|
42
47
|
//# sourceMappingURL=useGetAccessRequirement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetAccessRequirement.js","sourceRoot":"","sources":["../../../../../src/lib/utils/hooks/SynapseAPI/dataaccess/useGetAccessRequirement.ts"],"names":[],"mappings":";;;;AAAA,2CAKoB;AACpB,8BAAwC;AAExC,0DAA2D;
|
|
1
|
+
{"version":3,"file":"useGetAccessRequirement.js","sourceRoot":"","sources":["../../../../../src/lib/utils/hooks/SynapseAPI/dataaccess/useGetAccessRequirement.ts"],"names":[],"mappings":";;;;AAAA,2CAKoB;AACpB,8BAAwC;AAExC,0DAA2D;AAa3D,SAAwB,uBAAuB,CAC7C,mBAAoC,EACpC,OAAgD;IAExC,IAAA,WAAW,GAAK,IAAA,kCAAiB,GAAE,YAAxB,CAAwB;IAE3C,OAAO,IAAA,sBAAQ,EACb,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,EAC1C;QACE,OAAA,iBAAa,CAAC,wBAAwB,CACpC,WAAW,EACX,mBAAmB,CACpB;IAHD,CAGC,EACH,OAAO,CACR,CAAA;AACH,CAAC;AAfD,0CAeC;AAED,SAAgB,kCAAkC,CAChD,mBAA2B,EAC3B,OAA0D;IAElD,IAAA,WAAW,GAAK,IAAA,kCAAiB,GAAE,YAAxB,CAAwB;IAC3C,OAAO,IAAA,sBAAQ,EACb,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,CAAC,EACzD;QACE,OAAA,iBAAa,CAAC,kCAAkC,CAC9C,WAAW,EACX,mBAAmB,CACpB;IAHD,CAGC,EACH,OAAO,CACR,CAAA;AACH,CAAC;AAdD,gFAcC;AAED,SAAgB,0BAA0B,CACxC,mBAA2B,EAC3B,OAAuE;IAE/D,IAAA,WAAW,GAAK,IAAA,kCAAiB,GAAE,YAAxB,CAAwB;IAC3C,OAAO,IAAA,sBAAQ,EACb,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,CAAC,EACjD;QACE,OAAA,iBAAa,CAAC,uBAAuB,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAAvE,CAAuE,EACzE,OAAO,CACR,CAAA;AACH,CAAC;AAXD,gEAWC;AAED,SAAgB,mCAAmC,CACjD,MAA6D,EAC7D,OAGC;IALH,iBAqBC;IAdS,IAAA,WAAW,GAAK,IAAA,kCAAiB,GAAE,YAAxB,CAAwB;IAC3C,OAAO,IAAA,8BAAgB,EACrB,CAAC,mBAAmB,EAAE,QAAQ,EAAE,MAAM,CAAC,EACvC,UAAM,OAAO;;;wBACJ,qBAAM,iBAAa,CAAC,wBAAwB,CAAC,WAAW,kDAC1D,MAAM,KACT,aAAa,EAAE,OAAO,CAAC,SAAS,IAChC,EAAA;wBAHF,sBAAO,SAGL,EAAA;;;SACH,kDAEI,OAAO,KACV,gBAAgB,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,aAAa,EAAlB,CAAkB,IAE/C,CAAA;AACH,CAAC;AArBD,kFAqBC;AAED,SAAgB,4BAA4B,CAC1C,OAAsC,EACtC,OAA6E;IAErE,IAAA,WAAW,GAAK,IAAA,kCAAiB,GAAE,YAAxB,CAAwB;IAC3C,OAAO,IAAA,sBAAQ,EACb,CAAC,wBAAwB,EAAE,OAAO,CAAC,EACnC,cAAM,OAAA,iBAAa,CAAC,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC,EAA7D,CAA6D,EACnE,OAAO,CACR,CAAA;AACH,CAAC;AAVD,oEAUC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { UseQueryOptions } from 'react-query';
|
|
2
2
|
import { SynapseClient } from '../..';
|
|
3
|
-
import { UserProfileAndImg } from '../../functions/getUserData';
|
|
4
3
|
import { SynapseClientError } from '../../SynapseClient';
|
|
5
4
|
import { NotificationEmail, UserBundle, UserProfile } from '../../synapseTypes';
|
|
6
5
|
export declare function useGetNotificationEmail(options?: UseQueryOptions<NotificationEmail, SynapseClientError>): import("react-query").UseQueryResult<NotificationEmail, SynapseClient.SynapseClientError>;
|
|
7
6
|
export declare function useGetCurrentUserProfile(options?: UseQueryOptions<UserProfile, SynapseClientError>): import("react-query").UseQueryResult<UserProfile, SynapseClient.SynapseClientError>;
|
|
7
|
+
export declare function useGetUserBundle(userId: string, mask?: number, options?: UseQueryOptions<UserBundle, SynapseClientError>): import("react-query").UseQueryResult<UserBundle, SynapseClient.SynapseClientError>;
|
|
8
8
|
export declare function useGetCurrentUserBundle(mask?: number, options?: UseQueryOptions<UserBundle, SynapseClientError>): import("react-query").UseQueryResult<UserBundle, SynapseClient.SynapseClientError>;
|
|
9
9
|
export declare function useGetUserProfile(principalId: string, options?: UseQueryOptions<UserProfile, SynapseClientError>): import("react-query").UseQueryResult<UserProfile, SynapseClient.SynapseClientError>;
|
|
10
|
-
export declare function useGetUserProfileWithProfilePic(principalId: string, options?: UseQueryOptions<UserProfileAndImg, SynapseClientError>): import("react-query").UseQueryResult<UserProfileAndImg, SynapseClient.SynapseClientError>;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.useGetUserProfile = exports.useGetCurrentUserBundle = exports.useGetUserBundle = exports.useGetCurrentUserProfile = exports.useGetNotificationEmail = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var react_query_1 = require("react-query");
|
|
6
6
|
var __1 = require("../..");
|
|
7
|
-
var getUserData_1 = require("../../functions/getUserData");
|
|
8
7
|
var SynapseContext_1 = require("../../SynapseContext");
|
|
9
8
|
var SynapseConstants_1 = require("../../SynapseConstants");
|
|
10
9
|
function useGetNotificationEmail(options) {
|
|
@@ -18,6 +17,20 @@ function useGetCurrentUserProfile(options) {
|
|
|
18
17
|
return (0, react_query_1.useQuery)(queryKey, function () { return __1.SynapseClient.getUserProfile(accessToken); }, options);
|
|
19
18
|
}
|
|
20
19
|
exports.useGetCurrentUserProfile = useGetCurrentUserProfile;
|
|
20
|
+
function useGetUserBundle(userId, mask, options) {
|
|
21
|
+
var ALL_USER_BUNDLE_FIELDS = SynapseConstants_1.USER_BUNDLE_MASK_USER_PROFILE |
|
|
22
|
+
SynapseConstants_1.USER_BUNDLE_MASK_ORCID |
|
|
23
|
+
SynapseConstants_1.USER_BUNDLE_MASK_VERIFICATION_SUBMISSION |
|
|
24
|
+
SynapseConstants_1.USER_BUNDLE_MASK_IS_CERTIFIED |
|
|
25
|
+
SynapseConstants_1.USER_BUNDLE_MASK_IS_VERIFIED |
|
|
26
|
+
SynapseConstants_1.USER_BUNDLE_MASK_IS_ACT_MEMBER |
|
|
27
|
+
SynapseConstants_1.USER_BUNDLE_MASK_IS_AR_REVIEWER;
|
|
28
|
+
var requestMask = mask !== null && mask !== void 0 ? mask : ALL_USER_BUNDLE_FIELDS;
|
|
29
|
+
var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
|
|
30
|
+
var queryKey = ['user', userId, 'bundle', requestMask, accessToken];
|
|
31
|
+
return (0, react_query_1.useQuery)(queryKey, function () { return __1.SynapseClient.getUserBundle(userId, requestMask, accessToken); }, options);
|
|
32
|
+
}
|
|
33
|
+
exports.useGetUserBundle = useGetUserBundle;
|
|
21
34
|
function useGetCurrentUserBundle(mask, options) {
|
|
22
35
|
var ALL_USER_BUNDLE_FIELDS = SynapseConstants_1.USER_BUNDLE_MASK_USER_PROFILE |
|
|
23
36
|
SynapseConstants_1.USER_BUNDLE_MASK_ORCID |
|
|
@@ -49,14 +62,4 @@ function useGetUserProfile(principalId, options) {
|
|
|
49
62
|
} }));
|
|
50
63
|
}
|
|
51
64
|
exports.useGetUserProfile = useGetUserProfile;
|
|
52
|
-
function useGetUserProfileWithProfilePic(principalId, options) {
|
|
53
|
-
var _a;
|
|
54
|
-
var queryKey = ['user', principalId, 'profile', 'withPic'];
|
|
55
|
-
var userProfile = useGetUserProfile(principalId, {
|
|
56
|
-
enabled: (_a = options === null || options === void 0 ? void 0 : options.enabled) !== null && _a !== void 0 ? _a : true,
|
|
57
|
-
}).data;
|
|
58
|
-
// TODO: create useGetFile hook with careful configuration to prevent serving expired pre-signed URLs
|
|
59
|
-
return (0, react_query_1.useQuery)(queryKey, function () { return (0, getUserData_1.getProfilePic)(userProfile); }, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, options), { enabled: !!userProfile }));
|
|
60
|
-
}
|
|
61
|
-
exports.useGetUserProfileWithProfilePic = useGetUserProfileWithProfilePic;
|
|
62
65
|
//# sourceMappingURL=useUserBundle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserBundle.js","sourceRoot":"","sources":["../../../../src/lib/utils/hooks/SynapseAPI/useUserBundle.ts"],"names":[],"mappings":";;;;AAAA,2CAAuD;AACvD,2BAAqC;
|
|
1
|
+
{"version":3,"file":"useUserBundle.js","sourceRoot":"","sources":["../../../../src/lib/utils/hooks/SynapseAPI/useUserBundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
2
|
import { Placement } from 'react-bootstrap/esm/Overlay';
|
|
3
3
|
export declare function useOverlay(children: JSX.Element, targetRef: RefObject<any>, delayShow?: number, delayHide?: number, placement?: Placement): {
|
|
4
|
-
OverlayComponent: JSX.Element;
|
|
4
|
+
OverlayComponent: () => JSX.Element;
|
|
5
5
|
isShowing: boolean;
|
|
6
6
|
toggleShow: (withDelay?: boolean) => void;
|
|
7
7
|
toggleHide: (withDelay?: boolean) => void;
|
|
@@ -5,43 +5,56 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var react_1 = (0, tslib_1.__importStar)(require("react"));
|
|
6
6
|
var react_bootstrap_1 = require("react-bootstrap");
|
|
7
7
|
function resetTimer(timer) {
|
|
8
|
-
if (timer
|
|
9
|
-
clearTimeout(timer
|
|
8
|
+
if (timer) {
|
|
9
|
+
clearTimeout(timer);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
+
var DEFAULT_DELAY_SHOW_MS = 250;
|
|
13
|
+
var DEFAULT_DELAY_HIDE_MS = 500;
|
|
12
14
|
function useOverlay(children, targetRef, delayShow, delayHide, placement) {
|
|
13
|
-
if (delayShow === void 0) { delayShow =
|
|
14
|
-
if (delayHide === void 0) { delayHide =
|
|
15
|
+
if (delayShow === void 0) { delayShow = DEFAULT_DELAY_SHOW_MS; }
|
|
16
|
+
if (delayHide === void 0) { delayHide = DEFAULT_DELAY_HIDE_MS; }
|
|
15
17
|
if (placement === void 0) { placement = 'top-start'; }
|
|
18
|
+
var isMounted = (0, react_1.useRef)(false);
|
|
16
19
|
var timer = (0, react_1.useRef)(null);
|
|
17
20
|
var _a = (0, react_1.useState)(false), isShowing = _a[0], setIsShowing = _a[1];
|
|
18
|
-
|
|
21
|
+
(0, react_1.useEffect)(function () {
|
|
22
|
+
isMounted.current = true;
|
|
23
|
+
return function () {
|
|
24
|
+
isMounted.current = false;
|
|
25
|
+
};
|
|
26
|
+
}, []);
|
|
27
|
+
var toggle = (0, react_1.useCallback)(function (show, withDelay) {
|
|
19
28
|
if (show === void 0) { show = isShowing; }
|
|
20
29
|
if (withDelay === void 0) { withDelay = true; }
|
|
21
|
-
resetTimer(timer);
|
|
30
|
+
resetTimer(timer.current);
|
|
22
31
|
if (withDelay) {
|
|
23
|
-
timer.current = setTimeout(function () {
|
|
32
|
+
timer.current = setTimeout(function () {
|
|
33
|
+
if (isMounted.current) {
|
|
34
|
+
setIsShowing(show);
|
|
35
|
+
}
|
|
36
|
+
}, show ? delayShow : delayHide);
|
|
24
37
|
}
|
|
25
38
|
else {
|
|
26
39
|
setIsShowing(show);
|
|
27
40
|
}
|
|
28
|
-
}
|
|
29
|
-
|
|
41
|
+
}, [delayHide, delayShow, isShowing]);
|
|
42
|
+
var toggleShow = (0, react_1.useCallback)(function (withDelay) {
|
|
30
43
|
if (withDelay === void 0) { withDelay = true; }
|
|
31
44
|
toggle(true, withDelay);
|
|
32
|
-
}
|
|
33
|
-
|
|
45
|
+
}, [toggle]);
|
|
46
|
+
var toggleHide = (0, react_1.useCallback)(function (withDelay) {
|
|
34
47
|
if (withDelay === void 0) { withDelay = true; }
|
|
35
48
|
toggle(false, withDelay);
|
|
36
|
-
}
|
|
37
|
-
var OverlayComponent = (react_1.default.createElement(react_bootstrap_1.Overlay, { target: targetRef.current, show: isShowing, placement: placement }, function (_a) {
|
|
49
|
+
}, [toggle]);
|
|
50
|
+
var OverlayComponent = (0, react_1.useCallback)(function () { return (react_1.default.createElement(react_bootstrap_1.Overlay, { target: targetRef.current, show: isShowing, placement: placement }, function (_a) {
|
|
38
51
|
var placement = _a.placement, arrowProps = _a.arrowProps, _show = _a.show, popper = _a.popper, props = (0, tslib_1.__rest)(_a, ["placement", "arrowProps", "show", "popper"]);
|
|
39
52
|
return (react_1.default.createElement("div", (0, tslib_1.__assign)({ className: "bootstrap-4-backport", onMouseEnter: function () {
|
|
40
53
|
toggle(true, false);
|
|
41
54
|
}, onMouseLeave: function () {
|
|
42
55
|
toggleHide(true);
|
|
43
56
|
} }, props, { style: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, props.style), { width: 'max-content', minWidth: '300px' }) }), children));
|
|
44
|
-
}));
|
|
57
|
+
})); }, [children, isShowing, placement, targetRef, toggle, toggleHide]);
|
|
45
58
|
return { OverlayComponent: OverlayComponent, isShowing: isShowing, toggleShow: toggleShow, toggleHide: toggleHide, toggle: toggle };
|
|
46
59
|
}
|
|
47
60
|
exports.useOverlay = useOverlay;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOverlay.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useOverlay.tsx"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"useOverlay.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useOverlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function preFetchResource(url: string): Promise<string>;
|
|
2
|
+
export declare function releaseResourceUrl(resourceUrl: string): void;
|
|
3
|
+
/**
|
|
4
|
+
* Custom hook for retrieving a resource and assigning it a localhost URL. This is useful for
|
|
5
|
+
* fetching resources from URLs that may expire before the resource renders.
|
|
6
|
+
* @param preSignedURL
|
|
7
|
+
* @returns a localhost URL referencing the prefetched resource
|
|
8
|
+
*/
|
|
9
|
+
export default function usePreFetchResource(preSignedURL?: string): string | undefined;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.releaseResourceUrl = exports.preFetchResource = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = require("react");
|
|
6
|
+
function preFetchResource(url) {
|
|
7
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
8
|
+
var response, blob;
|
|
9
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
10
|
+
switch (_a.label) {
|
|
11
|
+
case 0: return [4 /*yield*/, fetch(url)];
|
|
12
|
+
case 1:
|
|
13
|
+
response = _a.sent();
|
|
14
|
+
return [4 /*yield*/, response.blob()];
|
|
15
|
+
case 2:
|
|
16
|
+
blob = _a.sent();
|
|
17
|
+
return [2 /*return*/, URL.createObjectURL(blob)];
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exports.preFetchResource = preFetchResource;
|
|
23
|
+
function releaseResourceUrl(resourceUrl) {
|
|
24
|
+
URL.revokeObjectURL(resourceUrl);
|
|
25
|
+
}
|
|
26
|
+
exports.releaseResourceUrl = releaseResourceUrl;
|
|
27
|
+
/**
|
|
28
|
+
* Custom hook for retrieving a resource and assigning it a localhost URL. This is useful for
|
|
29
|
+
* fetching resources from URLs that may expire before the resource renders.
|
|
30
|
+
* @param preSignedURL
|
|
31
|
+
* @returns a localhost URL referencing the prefetched resource
|
|
32
|
+
*/
|
|
33
|
+
function usePreFetchResource(preSignedURL) {
|
|
34
|
+
var _this = this;
|
|
35
|
+
var _a = (0, react_1.useState)(undefined), resourceURL = _a[0], setResourceURL = _a[1];
|
|
36
|
+
(0, react_1.useEffect)(function () {
|
|
37
|
+
var isMounted = true;
|
|
38
|
+
var getData = function (url) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
|
39
|
+
var resourceUrl, e_1;
|
|
40
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
41
|
+
switch (_a.label) {
|
|
42
|
+
case 0:
|
|
43
|
+
_a.trys.push([0, 2, , 3]);
|
|
44
|
+
return [4 /*yield*/, preFetchResource(url)];
|
|
45
|
+
case 1:
|
|
46
|
+
resourceUrl = _a.sent();
|
|
47
|
+
if (isMounted) {
|
|
48
|
+
setResourceURL(resourceUrl);
|
|
49
|
+
}
|
|
50
|
+
return [3 /*break*/, 3];
|
|
51
|
+
case 2:
|
|
52
|
+
e_1 = _a.sent();
|
|
53
|
+
console.error("Failed to fetch object with presigned URL " + url + ". See network log for details");
|
|
54
|
+
return [3 /*break*/, 3];
|
|
55
|
+
case 3: return [2 /*return*/];
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}); };
|
|
59
|
+
if (preSignedURL) {
|
|
60
|
+
getData(preSignedURL);
|
|
61
|
+
}
|
|
62
|
+
return function () {
|
|
63
|
+
isMounted = false;
|
|
64
|
+
};
|
|
65
|
+
}, [preSignedURL]);
|
|
66
|
+
(0, react_1.useEffect)(function () {
|
|
67
|
+
return function () {
|
|
68
|
+
// When we no longer need the object, we release it.
|
|
69
|
+
// See https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
|
|
70
|
+
if (resourceURL) {
|
|
71
|
+
releaseResourceUrl(resourceURL);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}, [resourceURL]);
|
|
75
|
+
return resourceURL;
|
|
76
|
+
}
|
|
77
|
+
exports.default = usePreFetchResource;
|
|
78
|
+
//# sourceMappingURL=usePreFetchResource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePreFetchResource.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/usePreFetchResource.ts"],"names":[],"mappings":";;;;AAAA,+BAA2C;AAE3C,SAAsB,gBAAgB,CAAC,GAAW;;;;;wBAC/B,qBAAM,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAA3B,QAAQ,GAAG,SAAgB;oBACpB,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;oBAA5B,IAAI,GAAG,SAAqB;oBAClC,sBAAO,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,EAAA;;;;CACjC;AAJD,4CAIC;AAED,SAAgB,kBAAkB,CAAC,WAAmB;IACpD,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;AAClC,CAAC;AAFD,gDAEC;AAED;;;;;GAKG;AACH,SAAwB,mBAAmB,CACzC,YAAqB;IADvB,iBAuCC;IApCO,IAAA,KAAgC,IAAA,gBAAQ,EAAqB,SAAS,CAAC,EAAtE,WAAW,QAAA,EAAE,cAAc,QAA2C,CAAA;IAE7E,IAAA,iBAAS,EAAC;QACR,IAAI,SAAS,GAAG,IAAI,CAAA;QACpB,IAAM,OAAO,GAAG,UAAO,GAAW;;;;;;wBAEV,qBAAM,gBAAgB,CAAC,GAAG,CAAC,EAAA;;wBAAzC,WAAW,GAAG,SAA2B;wBAC/C,IAAI,SAAS,EAAE;4BACb,cAAc,CAAC,WAAW,CAAC,CAAA;yBAC5B;;;;wBAED,OAAO,CAAC,KAAK,CACX,+CAA6C,GAAG,kCAA+B,CAChF,CAAA;;;;;aAEJ,CAAA;QACD,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,YAAY,CAAC,CAAA;SACtB;QAED,OAAO;YACL,SAAS,GAAG,KAAK,CAAA;QACnB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,IAAA,iBAAS,EAAC;QACR,OAAO;YACL,oDAAoD;YACpD,2EAA2E;YAC3E,IAAI,WAAW,EAAE;gBACf,kBAAkB,CAAC,WAAW,CAAC,CAAA;aAChC;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,OAAO,WAAW,CAAA;AACpB,CAAC;AAvCD,sCAuCC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
5
|
+
var core_1 = require("@material-ui/core");
|
|
6
|
+
var useTooltipStyle = (0, core_1.makeStyles)(function (theme) { return ({
|
|
7
|
+
arrow: {
|
|
8
|
+
color: theme.palette.common.black,
|
|
9
|
+
},
|
|
10
|
+
tooltip: {
|
|
11
|
+
backgroundColor: theme.palette.common.black,
|
|
12
|
+
fontSize: '14px',
|
|
13
|
+
borderRadius: '2px',
|
|
14
|
+
},
|
|
15
|
+
}); });
|
|
16
|
+
function Tooltip(props) {
|
|
17
|
+
var classes = useTooltipStyle();
|
|
18
|
+
return (react_1.default.createElement(core_1.Tooltip, (0, tslib_1.__assign)({ classes: classes, arrow: true, TransitionComponent: core_1.Fade }, props), props.children));
|
|
19
|
+
}
|
|
20
|
+
exports.default = Tooltip;
|
|
21
|
+
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../src/lib/utils/tooltip/Tooltip.tsx"],"names":[],"mappings":";;;AAAA,6DAAyB;AACzB,0CAK0B;AAI1B,IAAM,eAAe,GAAG,IAAA,iBAAU,EAAC,UAAA,KAAK,IAAI,OAAA,CAAC;IAC3C,KAAK,EAAE;QACL,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;KAClC;IACD,OAAO,EAAE;QACP,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAC3C,QAAQ,EAAE,MAAM;QAChB,YAAY,EAAE,KAAK;KACpB;CACF,CAAC,EAT0C,CAS1C,CAAC,CAAA;AAEH,SAAwB,OAAO,CAAC,KAAmB;IACjD,IAAM,OAAO,GAAG,eAAe,EAAE,CAAA;IACjC,OAAO,CACL,8BAAC,cAAU,0BAAC,OAAO,EAAE,OAAO,EAAE,KAAK,QAAC,mBAAmB,EAAE,WAAI,IAAM,KAAK,GACrE,KAAK,CAAC,QAAQ,CACJ,CACd,CAAA;AACH,CAAC;AAPD,0BAOC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const useTypographyStyle: (props?: any) => import("@material-ui/styles").ClassNameMap<"label" | "
|
|
1
|
+
declare const useTypographyStyle: (props?: any) => import("@material-ui/styles").ClassNameMap<"label" | "body1" | "body2" | "headline1" | "headline2" | "headline3" | "breadcrumb1" | "breadcrumb2" | "smallText1" | "smallText2" | "smallLink" | "buttonLink" | "hintText" | "sectionTitle" | "subsectionHeader" | "dataFieldKey">;
|
|
2
2
|
export default useTypographyStyle;
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function useTraceUpdate(props: any): void;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var react_1 = require("react");
|
|
4
|
-
// https://stackoverflow.com/questions/41004631/trace-why-a-react-component-is-re-rendering
|
|
5
|
-
function useTraceUpdate(props) {
|
|
6
|
-
var prev = (0, react_1.useRef)(props);
|
|
7
|
-
(0, react_1.useEffect)(function () {
|
|
8
|
-
var changedProps = Object.entries(props).reduce(function (ps, _a) {
|
|
9
|
-
var k = _a[0], v = _a[1];
|
|
10
|
-
if (prev.current[k] !== v) {
|
|
11
|
-
ps[k] = [prev.current[k], v];
|
|
12
|
-
}
|
|
13
|
-
return ps;
|
|
14
|
-
}, {});
|
|
15
|
-
if (Object.keys(changedProps).length > 0) {
|
|
16
|
-
console.log('Changed props:', changedProps);
|
|
17
|
-
}
|
|
18
|
-
prev.current = props;
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
exports.default = useTraceUpdate;
|
|
22
|
-
//# sourceMappingURL=useTraceUpdate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTraceUpdate.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useTraceUpdate.ts"],"names":[],"mappings":";;AAAA,+BAAyC;AAEzC,2FAA2F;AAC3F,SAAwB,cAAc,CAAC,KAAU;IAC/C,IAAM,IAAI,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAA;IAC1B,IAAA,iBAAS,EAAC;QACR,IAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAC,EAAE,EAAE,EAAM;gBAAL,CAAC,QAAA,EAAE,CAAC,QAAA;YAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBACzB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;aAC7B;YACD,OAAO,EAAE,CAAA;QACX,CAAC,EAAE,EAAE,CAAC,CAAA;QACN,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAA;SAC5C;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC;AAdD,iCAcC"}
|