synapse-react-client 3.1.18 → 3.1.19
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/CopyToClipboardString.d.ts +11 -0
- package/dist/containers/CopyToClipboardString.js +30 -0
- package/dist/containers/CopyToClipboardString.js.map +1 -0
- package/dist/containers/FilePreview/HtmlPreview/HtmlPreview.js +2 -2
- package/dist/containers/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
- package/dist/containers/FullWidthAlert.d.ts +1 -1
- package/dist/containers/TermsAndConditions.d.ts +1 -0
- package/dist/containers/TermsAndConditions.js +12 -6
- package/dist/containers/TermsAndConditions.js.map +1 -1
- package/dist/containers/access_requirements/AddConditionsForUseButton.d.ts +6 -0
- package/dist/containers/access_requirements/AddConditionsForUseButton.js +41 -0
- package/dist/containers/access_requirements/AddConditionsForUseButton.js.map +1 -0
- package/dist/containers/access_requirements/ImposeRestrictionDialog.d.ts +7 -0
- package/dist/containers/access_requirements/ImposeRestrictionDialog.js +67 -0
- package/dist/containers/access_requirements/ImposeRestrictionDialog.js.map +1 -0
- package/dist/containers/entity/metadata/MetadataTable.js +8 -11
- package/dist/containers/entity/metadata/MetadataTable.js.map +1 -1
- package/dist/containers/entity/page/title_bar/EntityPageTitleBar.d.ts +13 -0
- package/dist/containers/entity/page/title_bar/EntityPageTitleBar.js +51 -0
- package/dist/containers/entity/page/title_bar/EntityPageTitleBar.js.map +1 -0
- package/dist/containers/entity/page/title_bar/EntityTitleBarVersionInfo.d.ts +16 -0
- package/dist/containers/entity/page/title_bar/EntityTitleBarVersionInfo.js +64 -0
- package/dist/containers/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -0
- package/dist/containers/entity/page/title_bar/TitleBarProperties.d.ts +10 -0
- package/dist/containers/entity/page/title_bar/TitleBarProperties.js +58 -0
- package/dist/containers/entity/page/title_bar/TitleBarProperties.js.map +1 -0
- package/dist/containers/entity/page/title_bar/useGetEntityTitleBarProperties.d.ts +13 -0
- package/dist/containers/entity/page/title_bar/useGetEntityTitleBarProperties.js +136 -0
- package/dist/containers/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -0
- package/dist/containers/favorites/FavoriteButton.d.ts +9 -0
- package/dist/containers/favorites/FavoriteButton.js +42 -0
- package/dist/containers/favorites/FavoriteButton.js.map +1 -0
- package/dist/containers/utils/ConditionalWrapper.d.ts +9 -0
- package/dist/containers/utils/ConditionalWrapper.js +10 -0
- package/dist/containers/utils/ConditionalWrapper.js.map +1 -0
- package/dist/containers/widgets/RadioGroup.d.ts +6 -6
- package/dist/containers/widgets/RadioGroup.js +6 -6
- package/dist/containers/widgets/RadioGroup.js.map +1 -1
- package/dist/umd/synapse-react-client.development.js +8930 -7896
- package/dist/umd/synapse-react-client.development.js.map +4 -4
- package/dist/umd/synapse-react-client.production.min.js +74 -74
- package/dist/umd.index.d.ts +2 -0
- package/dist/umd.index.js +2 -0
- package/dist/umd.index.js.map +1 -1
- package/dist/utils/APIConstants.d.ts +2 -0
- package/dist/utils/APIConstants.js +3 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/SynapseClient.d.ts +22 -1
- package/dist/utils/SynapseClient.js +36 -1
- package/dist/utils/SynapseClient.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.d.ts +25 -2
- package/dist/utils/functions/FileHandleUtils.js +95 -5
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/hooks/SynapseAPI/doi/useDOI.d.ts +4 -0
- package/dist/utils/hooks/SynapseAPI/doi/useDOI.js +15 -0
- package/dist/utils/hooks/SynapseAPI/doi/useDOI.js.map +1 -0
- package/dist/utils/hooks/SynapseAPI/file/useUploadDestination.d.ts +4 -0
- package/dist/utils/hooks/SynapseAPI/file/useUploadDestination.js +13 -0
- package/dist/utils/hooks/SynapseAPI/file/useUploadDestination.js.map +1 -0
- package/dist/utils/synapseTypes/File/UploadDestination.d.ts +102 -0
- package/dist/utils/synapseTypes/File/UploadDestination.js +21 -0
- package/dist/utils/synapseTypes/File/UploadDestination.js.map +1 -0
- package/package.json +1 -1
- package/dist/containers/FilePreview/HtmlPreview/SanitizedWarning.d.ts +0 -5
- package/dist/containers/FilePreview/HtmlPreview/SanitizedWarning.js +0 -28
- package/dist/containers/FilePreview/HtmlPreview/SanitizedWarning.js.map +0 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TypographyProps } from '@mui/material';
|
|
3
|
+
export declare type CopyToClipboardStringProps = {
|
|
4
|
+
value: string;
|
|
5
|
+
typographyVariant?: TypographyProps['variant'];
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Displays a string and a "Copy to Clipboard" icon, that, when clicked, will copy the contents of the string to the clipboard.
|
|
9
|
+
*/
|
|
10
|
+
export declare function CopyToClipboardString(props: CopyToClipboardStringProps): JSX.Element;
|
|
11
|
+
export default CopyToClipboardString;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CopyToClipboardString = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var React = tslib_1.__importStar(require("react"));
|
|
6
|
+
var material_1 = require("@mui/material");
|
|
7
|
+
var IconSvg_1 = tslib_1.__importDefault(require("./IconSvg"));
|
|
8
|
+
/**
|
|
9
|
+
* Displays a string and a "Copy to Clipboard" icon, that, when clicked, will copy the contents of the string to the clipboard.
|
|
10
|
+
*/
|
|
11
|
+
function CopyToClipboardString(props) {
|
|
12
|
+
var value = props.value, _a = props.typographyVariant, typographyVariant = _a === void 0 ? 'smallText1' : _a;
|
|
13
|
+
var _b = React.useState('Copy to clipboard'), tooltipText = _b[0], setTooltipText = _b[1];
|
|
14
|
+
var copyToClipboard = function (event) {
|
|
15
|
+
event.preventDefault();
|
|
16
|
+
// use the Clipboard API
|
|
17
|
+
// https://caniuse.com/mdn-api_clipboard_writetext
|
|
18
|
+
navigator.clipboard.writeText(value).then(function () {
|
|
19
|
+
setTooltipText('Copied to clipboard');
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
return (React.createElement(material_1.Stack, { direction: 'row', alignItems: "center", spacing: 0.5, sx: { display: 'inline-flex' } },
|
|
23
|
+
React.createElement(material_1.Typography, { component: 'span', variant: typographyVariant }, value),
|
|
24
|
+
React.createElement(material_1.Tooltip, { title: tooltipText, placement: 'top' },
|
|
25
|
+
React.createElement("span", { role: "button", style: { cursor: 'pointer' }, onClick: copyToClipboard },
|
|
26
|
+
React.createElement(IconSvg_1.default, { icon: "contentCopy", wrap: false, sx: { width: '16px' } })))));
|
|
27
|
+
}
|
|
28
|
+
exports.CopyToClipboardString = CopyToClipboardString;
|
|
29
|
+
exports.default = CopyToClipboardString;
|
|
30
|
+
//# sourceMappingURL=CopyToClipboardString.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyToClipboardString.js","sourceRoot":"","sources":["../../src/lib/containers/CopyToClipboardString.tsx"],"names":[],"mappings":";;;;AAAA,mDAA8B;AAC9B,0CAA2E;AAC3E,8DAA+B;AAO/B;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAiC;IAC7D,IAAA,KAAK,GAAuC,KAAK,MAA5C,EAAE,KAAqC,KAAK,kBAAV,EAAhC,iBAAiB,mBAAG,YAAY,KAAA,CAAU;IACnD,IAAA,KAAgC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAlE,WAAW,QAAA,EAAE,cAAc,QAAuC,CAAA;IAEzE,IAAM,eAAe,GAAG,UAAC,KAA2B;QAClD,KAAK,CAAC,cAAc,EAAE,CAAA;QAEtB,wBAAwB;QACxB,kDAAkD;QAClD,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;YACxC,cAAc,CAAC,qBAAqB,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,gBAAK,IACJ,SAAS,EAAE,KAAK,EAChB,UAAU,EAAC,QAAQ,EACnB,OAAO,EAAE,GAAG,EACZ,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAE9B,oBAAC,qBAAU,IAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,IACtD,KAAK,CACK;QACb,oBAAC,kBAAO,IAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK;YAC3C,8BACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAC5B,OAAO,EAAE,eAAe;gBAExB,oBAAC,iBAAO,IAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,CAC7D,CACC,CACJ,CACT,CAAA;AACH,CAAC;AAnCD,sDAmCC;AAED,kBAAe,qBAAqB,CAAA"}
|
|
@@ -8,7 +8,7 @@ var SanitizeHtmlUtils_1 = require("../../../utils/functions/SanitizeHtmlUtils");
|
|
|
8
8
|
var useTeamMembers_1 = require("../../../utils/hooks/SynapseAPI/team/useTeamMembers");
|
|
9
9
|
var SynapseConstants_1 = require("../../../utils/SynapseConstants");
|
|
10
10
|
var LoadingScreen_1 = require("../../LoadingScreen");
|
|
11
|
-
var
|
|
11
|
+
var react_bootstrap_1 = require("react-bootstrap");
|
|
12
12
|
/**
|
|
13
13
|
* @param options
|
|
14
14
|
* @returns HTML that is cleaned if it is not trusted. undefined if `isLoading` is true.
|
|
@@ -45,7 +45,7 @@ function HtmlPreview(props) {
|
|
|
45
45
|
return react_1.default.createElement(LoadingScreen_1.SynapseSpinner, null);
|
|
46
46
|
}
|
|
47
47
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
48
|
-
rawHtml !== cleanHtml && react_1.default.createElement(
|
|
48
|
+
rawHtml !== cleanHtml && (react_1.default.createElement(react_bootstrap_1.Alert, { variant: "info", dismissible: false, show: true, transition: false }, "Limited rendering only.")),
|
|
49
49
|
react_1.default.createElement("iframe", { srcDoc: cleanHtml, style: { border: 0, width: '100%' } })));
|
|
50
50
|
}
|
|
51
51
|
exports.default = HtmlPreview;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlPreview.js","sourceRoot":"","sources":["../../../../src/lib/containers/FilePreview/HtmlPreview/HtmlPreview.tsx"],"names":[],"mappings":";;;;AAAA,qDAAsC;AACtC,oDAAqB;AACrB,gFAAuE;AACvE,sFAA8F;AAC9F,oEAA4E;AAC5E,qDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"HtmlPreview.js","sourceRoot":"","sources":["../../../../src/lib/containers/FilePreview/HtmlPreview/HtmlPreview.tsx"],"names":[],"mappings":";;;;AAAA,qDAAsC;AACtC,oDAAqB;AACrB,gFAAuE;AACvE,sFAA8F;AAC9F,oEAA4E;AAC5E,qDAAoD;AACpD,mDAAuC;AAEvC;;;GAGG;AACH,SAAS,YAAY,CAAC,OAIrB;IACS,IAAA,OAAO,GAA2B,OAAO,QAAlC,EAAE,SAAS,GAAgB,OAAO,UAAvB,EAAE,SAAS,GAAK,OAAO,UAAZ,CAAY;IACjD,OAAO,IAAA,eAAO,EAAC;QACb,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAA;SACjB;QACD,IAAI,SAAS,EAAE;YACb,OAAO,OAAO,CAAA;SACf;aAAM;YACL,OAAO,IAAA,aAAG,EAAC,OAAO,EAAE,8BAAU,CAAC,CAAA;SAChC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;AACrC,CAAC;AAOD;;;;GAIG;AACH,SAAwB,WAAW,CAAC,KAAuB;IACjD,IAAA,eAAe,GAAc,KAAK,gBAAnB,EAAE,OAAO,GAAK,KAAK,QAAV,CAAU;IAEpC,IAAA,KAAsC,IAAA,yCAAwB,EAClE,6CAA0B,EAC1B,eAAe,CAChB,EAHa,cAAc,UAAA,EAAE,SAAS,eAGtC,CAAA;IAED,IAAM,0BAA0B,GAAG,CAAC,CAAC,cAAc,CAAA;IAEnD,IAAM,SAAS,GAAG,YAAY,CAAC;QAC7B,OAAO,SAAA;QACP,SAAS,WAAA;QACT,SAAS,EAAE,0BAA0B;KACtC,CAAC,CAAA;IAEF,IAAI,SAAS,EAAE;QACb,OAAO,8BAAC,8BAAc,OAAG,CAAA;KAC1B;IAED,OAAO,CACL;QACG,OAAO,KAAK,SAAS,IAAI,CACxB,8BAAC,uBAAK,IACJ,OAAO,EAAC,MAAM,EACd,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,KAAK,8BAGX,CACT;QACD,0CAAQ,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,CACjE,CACJ,CAAA;AACH,CAAC;AAnCD,8BAmCC;AAEY,QAAA,yBAAyB,GAAG;IACvC,YAAY,cAAA;CACb,CAAA"}
|
|
@@ -13,7 +13,7 @@ export declare type AlertButtonConfig = {
|
|
|
13
13
|
export interface FullWidthAlertProps extends AlertProps {
|
|
14
14
|
variant: string;
|
|
15
15
|
title?: string;
|
|
16
|
-
description?:
|
|
16
|
+
description?: React.ReactNode;
|
|
17
17
|
primaryButtonConfig?: AlertButtonConfig;
|
|
18
18
|
secondaryButtonConfig?: AlertButtonConfig;
|
|
19
19
|
onClose?: () => void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export declare type TermsAndConditionsProps = {
|
|
3
3
|
onFormChange: (formComplete: boolean) => void;
|
|
4
|
+
hideLinkToFullTC?: boolean;
|
|
4
5
|
};
|
|
5
6
|
declare const TermsAndConditions: React.FunctionComponent<TermsAndConditionsProps>;
|
|
6
7
|
export default TermsAndConditions;
|
|
@@ -57,17 +57,18 @@ var tcList = [
|
|
|
57
57
|
},
|
|
58
58
|
];
|
|
59
59
|
var TermsAndConditions = function (_a) {
|
|
60
|
-
var onFormChange = _a.onFormChange;
|
|
60
|
+
var onFormChange = _a.onFormChange, _b = _a.hideLinkToFullTC, hideLinkToFullTC = _b === void 0 ? false : _b;
|
|
61
61
|
var checkboxCount = tcList.length;
|
|
62
62
|
var tcAgreement = 'https://s3.amazonaws.com/static.synapse.org/governance/SageBionetworksSynapseTermsandConditionsofUse.pdf';
|
|
63
|
+
var governancePolicy = 'https://help.synapse.org/docs/Synapse-Governance.2004255211.html';
|
|
63
64
|
var getInitialCheckboxState = function () {
|
|
64
65
|
return Array.from(Array(checkboxCount).fill(false));
|
|
65
66
|
};
|
|
66
67
|
var mounted = true;
|
|
67
68
|
// State variables
|
|
68
|
-
var
|
|
69
|
+
var _c = (0, react_1.useState)(getInitialCheckboxState()), checkboxChecked = _c[0], setCheckboxChecked = _c[1];
|
|
69
70
|
// disabled all checkbox except the first one
|
|
70
|
-
var
|
|
71
|
+
var _d = (0, react_1.useState)(getInitialCheckboxState().fill(true, 0, 1)), checkboxEnabled = _d[0], setCheckboxEnabled = _d[1];
|
|
71
72
|
(0, react_1.useEffect)(function () {
|
|
72
73
|
if (mounted) {
|
|
73
74
|
checkFormCompleted();
|
|
@@ -98,14 +99,19 @@ var TermsAndConditions = function (_a) {
|
|
|
98
99
|
return (react_1.default.createElement("section", { className: "terms-conditions" },
|
|
99
100
|
react_1.default.createElement("h3", { className: "page-header" }, "Synapse Pledge"),
|
|
100
101
|
react_1.default.createElement("form", null,
|
|
101
|
-
react_1.default.createElement("label", null,
|
|
102
|
+
react_1.default.createElement("label", null,
|
|
103
|
+
"I affirm my commitment to all",
|
|
104
|
+
' ',
|
|
105
|
+
react_1.default.createElement(material_1.Link, { target: "_blank", href: governancePolicy }, "Sage Governance policies"),
|
|
106
|
+
' ',
|
|
107
|
+
"for responsible research and data handling (linked below), including:"),
|
|
102
108
|
react_1.default.createElement("ul", { className: "term-list" }, tcList.length &&
|
|
103
109
|
tcList.map(function (item, i) {
|
|
104
110
|
return (react_1.default.createElement("li", { key: "tc-item-".concat(i), className: checkboxEnabled[i] === true ? 'terms-enabled' : '' },
|
|
105
111
|
react_1.default.createElement(TermsAndConditionsItem_1.default, { item: item, id: i, checked: checkboxChecked[i], enabled: checkboxEnabled[i], onChange: updateCheckboxState })));
|
|
106
112
|
})),
|
|
107
|
-
react_1.default.createElement("div", { className: "view-terms" },
|
|
108
|
-
react_1.default.createElement(material_1.Button, { variant: 'contained', href: tcAgreement, target: "_blank" }, "View Complete Terms and Conditions for Use")))));
|
|
113
|
+
!hideLinkToFullTC && (react_1.default.createElement("div", { className: "view-terms" },
|
|
114
|
+
react_1.default.createElement(material_1.Button, { variant: 'contained', href: tcAgreement, target: "_blank" }, "View Complete Terms and Conditions for Use"))))));
|
|
109
115
|
};
|
|
110
116
|
exports.default = TermsAndConditions;
|
|
111
117
|
//# sourceMappingURL=TermsAndConditions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TermsAndConditions.js","sourceRoot":"","sources":["../../src/lib/containers/TermsAndConditions.tsx"],"names":[],"mappings":";;;AAAA,qDAAkD;AAElD,4FAA6D;AAC7D,
|
|
1
|
+
{"version":3,"file":"TermsAndConditions.js","sourceRoot":"","sources":["../../src/lib/containers/TermsAndConditions.tsx"],"names":[],"mappings":";;;AAAA,qDAAkD;AAElD,4FAA6D;AAC7D,0CAA4C;AAC5C,yEAAuE;AACvE,2DAAyD;AACzD,6DAA2D;AAC3D,+DAA6D;AAC7D,+DAA6D;AAC7D,yDAAuD;AACvD,iEAA+D;AAC/D,2DAAyD;AAOzD,IAAM,WAAW,GACf,+FAA+F,CAAA;AACjG,IAAM,SAAS,GACb,8GAA8G,CAAA;AAEhH,IAAM,MAAM,GAAa;IACvB;QACE,IAAI,EAAE,8BAAC,iCAAe,OAAG;QACzB,KAAK,EACH,4EAA4E;QAC9E,WAAW,EAAE,ieAOuK;KACrL;IACD;QACE,IAAI,EAAE,8BAAC,mBAAQ,OAAG;QAClB,KAAK,EACH,8FAA8F;QAChG,WAAW,EAAE,iJACa,WAAW,6CAA0C;KAChF;IACD;QACE,IAAI,EAAE,8BAAC,qBAAS,OAAG;QACnB,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,0HACa,SAAS,sJACwE;KAC5G;IACD;QACE,IAAI,EAAE,8BAAC,uBAAU,OAAG;QACpB,KAAK,EACH,+HAA+H;QACjI,WAAW,EAAE,wYAKa,WAAW,oJAEoC,SAAS,8CAA2C;KAC9H;IACD;QACE,IAAI,EAAE,8BAAC,uBAAU,OAAG;QACpB,KAAK,EAAE,mEAAmE;QAC1E,WAAW,EAAE,iUAEiH;KAC/H;IACD;QACE,IAAI,EAAE,8BAAC,iBAAO,OAAG;QACjB,KAAK,EAAE,2DAA2D;QAClE,WAAW,EAAE,+VAEa,SAAS,sCAAmC;KACvE;IACD;QACE,IAAI,EAAE,8BAAC,yBAAW,OAAG;QACrB,KAAK,EAAE,uDAAuD;QAC9D,WAAW,EAAE,8dAE4L;KAC1M;IACD;QACE,IAAI,EAAE,8BAAC,mBAAQ,OAAG;QAClB,KAAK,EAAE,wIAAwI;QAC/I,WAAW,EAAE,qUAGa,WAAW,mEAAuD,SAAS,sCAAmC;KACzI;CACF,CAAA;AAED,IAAM,kBAAkB,GAAqD,UAAC,EAG7E;QAFC,YAAY,kBAAA,EACZ,wBAAwB,EAAxB,gBAAgB,mBAAG,KAAK,KAAA;IAExB,IAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAA;IACnC,IAAM,WAAW,GACf,0GAA0G,CAAA;IAC5G,IAAM,gBAAgB,GACpB,kEAAkE,CAAA;IACpE,IAAM,uBAAuB,GAAG;QAC9B,OAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAA5C,CAA4C,CAAA;IAC9C,IAAI,OAAO,GAAG,IAAI,CAAA;IAElB,kBAAkB;IACZ,IAAA,KAAwC,IAAA,gBAAQ,EACpD,uBAAuB,EAAE,CAC1B,EAFM,eAAe,QAAA,EAAE,kBAAkB,QAEzC,CAAA;IACD,6CAA6C;IACvC,IAAA,KAAwC,IAAA,gBAAQ,EACpD,uBAAuB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAC3C,EAFM,eAAe,QAAA,EAAE,kBAAkB,QAEzC,CAAA;IAED,IAAA,iBAAS,EAAC;QACR,IAAI,OAAO,EAAE;YACX,kBAAkB,EAAE,CAAA;SACrB;QACD,OAAO;YACL,OAAO,GAAG,KAAK,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAA;IAEtC,sFAAsF;IACtF,IAAM,kBAAkB,GAAG;QACzB,IAAM,kBAAkB,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC3D,YAAY,CAAC,kBAAkB,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,IAAM,mBAAmB,GAAG,UAAC,EAAU;QACrC,IAAM,QAAQ,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;QACrC,IAAI,QAAQ,EAAE;YACZ,qDAAqD;YACrD,kBAAkB,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;YACnE,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE;gBAC3B,kBAAkB,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;aACpE;SACF;aAAM;YACL,kBAAkB,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YAC/D,kBAAkB,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;SACpE;IACH,CAAC,CAAA;IAED,OAAO,CACL,2CAAS,SAAS,EAAC,kBAAkB;QACnC,sCAAI,SAAS,EAAC,aAAa,qBAAoB;QAC/C;YACE;;gBACgC,GAAG;gBACjC,8BAAC,eAAI,IAAC,MAAM,EAAC,QAAQ,EAAC,IAAI,EAAE,gBAAgB,+BAErC;gBAAC,GAAG;wFAEL;YACR,sCAAI,SAAS,EAAC,WAAW,IACtB,MAAM,CAAC,MAAM;gBACZ,MAAM,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,CAAC;oBACjB,OAAO,CACL,sCACE,GAAG,EAAE,kBAAW,CAAC,CAAE,EACnB,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;wBAE7D,8BAAC,gCAAsB,IACrB,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,CAAC,EACL,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,mBAAmB,GAC7B,CACC,CACN,CAAA;gBACH,CAAC,CAAC,CACD;YACJ,CAAC,gBAAgB,IAAI,CACpB,uCAAK,SAAS,EAAC,YAAY;gBACzB,8BAAC,iBAAM,IAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAC,QAAQ,iDAEvD,CACL,CACP,CACI,CACC,CACX,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
5
|
+
var material_1 = require("@mui/material");
|
|
6
|
+
var IconSvg_1 = tslib_1.__importDefault(require("../IconSvg"));
|
|
7
|
+
var ImposeRestrictionDialog_1 = tslib_1.__importDefault(require("./ImposeRestrictionDialog"));
|
|
8
|
+
var SynapseAPI_1 = require("../../utils/hooks/SynapseAPI");
|
|
9
|
+
var synapseTypes_1 = require("../../utils/synapseTypes");
|
|
10
|
+
var EntityTypeUtils_1 = require("../../utils/functions/EntityTypeUtils");
|
|
11
|
+
function AddConditionsForUseButton(props) {
|
|
12
|
+
var _a;
|
|
13
|
+
var entityId = props.entityId, onACTMemberClick = props.onACTMemberClick;
|
|
14
|
+
var _b = (0, react_1.useState)(false), openDialog = _b[0], setOpenDialog = _b[1];
|
|
15
|
+
var _c = (0, SynapseAPI_1.useGetEntityBundle)(entityId), entityBundle = _c.data, isLoadingBundle = _c.isLoading;
|
|
16
|
+
var _d = (0, SynapseAPI_1.useIsCurrentUserACTMember)(), isActMember = _d.data, isLoadingIsACT = _d.isLoading;
|
|
17
|
+
var isLoading = isLoadingBundle || isLoadingIsACT;
|
|
18
|
+
// EntityViews and Dataset/Collections can have ARs, but they aren't meaningful, so hide the button (SWC-5909)
|
|
19
|
+
var isRestrictableEntityType = (entityBundle === null || entityBundle === void 0 ? void 0 : entityBundle.entity) &&
|
|
20
|
+
!(0, EntityTypeUtils_1.isEntityView)(entityBundle.entity) &&
|
|
21
|
+
!(0, EntityTypeUtils_1.isEntityRefCollectionView)(entityBundle.entity);
|
|
22
|
+
var hasAdministrativeAccess = entityBundle === null || entityBundle === void 0 ? void 0 : entityBundle.permissions.canChangePermissions;
|
|
23
|
+
var hasNoExistingRestrictions = ((_a = entityBundle === null || entityBundle === void 0 ? void 0 : entityBundle.restrictionInformation) === null || _a === void 0 ? void 0 : _a.restrictionLevel) ===
|
|
24
|
+
synapseTypes_1.RestrictionLevel.OPEN;
|
|
25
|
+
var showButton = !isLoading &&
|
|
26
|
+
hasNoExistingRestrictions &&
|
|
27
|
+
isRestrictableEntityType &&
|
|
28
|
+
(hasAdministrativeAccess || isActMember);
|
|
29
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
30
|
+
react_1.default.createElement(ImposeRestrictionDialog_1.default, { open: openDialog, onClose: function () { return setOpenDialog(false); }, entityId: entityId }),
|
|
31
|
+
showButton && (react_1.default.createElement(material_1.Button, { onClick: function () {
|
|
32
|
+
if (isActMember) {
|
|
33
|
+
onACTMemberClick();
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
setOpenDialog(true);
|
|
37
|
+
}
|
|
38
|
+
}, startIcon: react_1.default.createElement(IconSvg_1.default, { icon: 'addConditions', wrap: false }) }, "Add Conditions for Use"))));
|
|
39
|
+
}
|
|
40
|
+
exports.default = AddConditionsForUseButton;
|
|
41
|
+
//# sourceMappingURL=AddConditionsForUseButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddConditionsForUseButton.js","sourceRoot":"","sources":["../../../src/lib/containers/access_requirements/AddConditionsForUseButton.tsx"],"names":[],"mappings":";;;AAAA,qDAAuC;AACvC,0CAAsC;AACtC,+DAAgC;AAChC,8FAA+D;AAC/D,2DAGqC;AACrC,yDAA2D;AAC3D,yEAG8C;AAQ9C,SAAwB,yBAAyB,CAC/C,KAAqC;;IAE7B,IAAA,QAAQ,GAAuB,KAAK,SAA5B,EAAE,gBAAgB,GAAK,KAAK,iBAAV,CAAU;IACtC,IAAA,KAA8B,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAA5C,UAAU,QAAA,EAAE,aAAa,QAAmB,CAAA;IAE7C,IAAA,KACJ,IAAA,+BAAkB,EAAC,QAAQ,CAAC,EADhB,YAAY,UAAA,EAAa,eAAe,eACxB,CAAA;IAExB,IAAA,KACJ,IAAA,sCAAyB,GAAE,EADf,WAAW,UAAA,EAAa,cAAc,eACvB,CAAA;IAC7B,IAAM,SAAS,GAAG,eAAe,IAAI,cAAc,CAAA;IACnD,8GAA8G;IAC9G,IAAM,wBAAwB,GAC5B,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM;QACpB,CAAC,IAAA,8BAAY,EAAC,YAAY,CAAC,MAAM,CAAC;QAClC,CAAC,IAAA,2CAAyB,EAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACjD,IAAM,uBAAuB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,WAAW,CAAC,oBAAoB,CAAA;IAC9E,IAAM,yBAAyB,GAC7B,CAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,sBAAsB,0CAAE,gBAAgB;QACtD,+BAAgB,CAAC,IAAI,CAAA;IAEvB,IAAM,UAAU,GACd,CAAC,SAAS;QACV,yBAAyB;QACzB,wBAAwB;QACxB,CAAC,uBAAuB,IAAI,WAAW,CAAC,CAAA;IAE1C,OAAO,CACL;QACE,8BAAC,iCAAuB,IACtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,KAAK,CAAC,EAApB,CAAoB,EACnC,QAAQ,EAAE,QAAQ,GAClB;QACD,UAAU,IAAI,CACb,8BAAC,iBAAM,IACL,OAAO,EAAE;gBACP,IAAI,WAAW,EAAE;oBACf,gBAAgB,EAAE,CAAA;iBACnB;qBAAM;oBACL,aAAa,CAAC,IAAI,CAAC,CAAA;iBACpB;YACH,CAAC,EACD,SAAS,EAAE,8BAAC,iBAAO,IAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,GAAI,6BAGnD,CACV,CACA,CACJ,CAAA;AACH,CAAC;AAnDD,4CAmDC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = tslib_1.__importDefault(require("react"));
|
|
5
|
+
var material_1 = require("@mui/material");
|
|
6
|
+
var RadioGroup_1 = require("../widgets/RadioGroup");
|
|
7
|
+
var FullWidthAlert_1 = tslib_1.__importDefault(require("../FullWidthAlert"));
|
|
8
|
+
var IconSvg_1 = tslib_1.__importDefault(require("../IconSvg"));
|
|
9
|
+
var SynapseAPI_1 = require("../../utils/hooks/SynapseAPI");
|
|
10
|
+
var ToastMessage_1 = require("../ToastMessage");
|
|
11
|
+
var HelpPopover_1 = require("../HelpPopover");
|
|
12
|
+
function ImposeRestrictionDialog(props) {
|
|
13
|
+
var NOT_HUMAN_DATA_WARNING = (react_1.default.createElement(material_1.Typography, { variant: 'smallText1' },
|
|
14
|
+
"Sage Bionetworks does not typically impose conditions for use on non-human data unless there is a legal, ethical or regulatory reason to do so. If you want to add conditions for use to this content, please contact the Synapse Access and Compliance Team (ACT) to discuss at",
|
|
15
|
+
' ',
|
|
16
|
+
react_1.default.createElement("a", { href: 'mailto:act@sagebase.org' }, "act@sagebase.org"),
|
|
17
|
+
"."));
|
|
18
|
+
var entityId = props.entityId, open = props.open, onClose = props.onClose;
|
|
19
|
+
var _a = react_1.default.useState(undefined), isSensitiveHumanData = _a[0], setIsSensitiveHumanData = _a[1];
|
|
20
|
+
var _b = (0, SynapseAPI_1.useCreateLockAccessRequirement)({
|
|
21
|
+
onSuccess: function () {
|
|
22
|
+
(0, ToastMessage_1.displayToast)('Successfully imposed restriction', 'success');
|
|
23
|
+
onClose();
|
|
24
|
+
},
|
|
25
|
+
onError: function (e) {
|
|
26
|
+
(0, ToastMessage_1.displayToast)("Failed to impose restriction: ".concat(e.reason), 'danger');
|
|
27
|
+
},
|
|
28
|
+
}), createLockedAccessRequirement = _b.mutate, isLoading = _b.isLoading;
|
|
29
|
+
function okClickedHandler() {
|
|
30
|
+
if (isSensitiveHumanData) {
|
|
31
|
+
createLockedAccessRequirement(entityId);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
onClose();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function radioOnChangeHandler(newValue) {
|
|
38
|
+
setIsSensitiveHumanData(newValue);
|
|
39
|
+
}
|
|
40
|
+
return (react_1.default.createElement(material_1.Dialog, { open: open, onClose: onClose, maxWidth: 'sm', fullWidth: true },
|
|
41
|
+
react_1.default.createElement(material_1.DialogTitle, null,
|
|
42
|
+
react_1.default.createElement(material_1.Stack, { direction: "row", alignItems: 'center', gap: '5px' },
|
|
43
|
+
"Conditions for Use",
|
|
44
|
+
react_1.default.createElement(HelpPopover_1.HelpPopover, { markdownText: 'Conditions for use describes data use requirements that must be fulfilled before downloading.', helpUrl: 'https://help.synapse.org/docs/Sharing-Settings,-Permissions,-and-Conditions-for-Use.2024276030.html#SharingSettings,Permissions,andConditionsforUse-ConditionsforUse' }),
|
|
45
|
+
react_1.default.createElement(material_1.Box, { sx: { flexGrow: 1 } }),
|
|
46
|
+
react_1.default.createElement(material_1.IconButton, { onClick: onClose },
|
|
47
|
+
react_1.default.createElement(IconSvg_1.default, { icon: 'close', wrap: false, sx: { color: 'grey.700' } })))),
|
|
48
|
+
react_1.default.createElement(material_1.DialogContent, null,
|
|
49
|
+
react_1.default.createElement(material_1.FormControl, { sx: { width: '100%' } },
|
|
50
|
+
react_1.default.createElement(material_1.FormLabel, { id: "demo-radio-buttons-group-label" }, "Is this sensitive human data that must be protected?"),
|
|
51
|
+
react_1.default.createElement(RadioGroup_1.RadioGroup, { id: "impose-restriction-".concat(entityId), value: isSensitiveHumanData, options: [
|
|
52
|
+
{
|
|
53
|
+
label: 'Yes',
|
|
54
|
+
value: true,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
label: 'No',
|
|
58
|
+
value: false,
|
|
59
|
+
},
|
|
60
|
+
], onChange: radioOnChangeHandler }),
|
|
61
|
+
isSensitiveHumanData === false && (react_1.default.createElement(FullWidthAlert_1.default, { variant: 'warning', isGlobal: false, description: NOT_HUMAN_DATA_WARNING })))),
|
|
62
|
+
react_1.default.createElement(material_1.DialogActions, null,
|
|
63
|
+
react_1.default.createElement(material_1.Button, { variant: "outlined", disabled: isLoading, onClick: onClose }, "Cancel"),
|
|
64
|
+
react_1.default.createElement(material_1.Button, { disabled: isSensitiveHumanData == null || isLoading, variant: "contained", onClick: okClickedHandler }, "OK"))));
|
|
65
|
+
}
|
|
66
|
+
exports.default = ImposeRestrictionDialog;
|
|
67
|
+
//# sourceMappingURL=ImposeRestrictionDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImposeRestrictionDialog.js","sourceRoot":"","sources":["../../../src/lib/containers/access_requirements/ImposeRestrictionDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,27 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MetadataTable = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
6
|
-
var react_1 = tslib_1.
|
|
6
|
+
var react_1 = tslib_1.__importDefault(require("react"));
|
|
7
7
|
var DateFormatter_1 = require("../../../utils/functions/DateFormatter");
|
|
8
8
|
var EntityTypeUtils_1 = require("../../../utils/functions/EntityTypeUtils");
|
|
9
9
|
var FileHandleUtils_1 = require("../../../utils/functions/FileHandleUtils");
|
|
10
10
|
var useEntityBundle_1 = tslib_1.__importDefault(require("../../../utils/hooks/SynapseAPI/entity/useEntityBundle"));
|
|
11
|
-
var synapseTypes_1 = require("../../../utils/synapseTypes");
|
|
12
11
|
var UserCard_1 = tslib_1.__importDefault(require("../../UserCard"));
|
|
13
12
|
var MetadataTable = function (_a) {
|
|
14
13
|
var _b, _c, _d, _e, _f, _g;
|
|
15
14
|
var entityId = _a.entityId, versionNumber = _a.versionNumber;
|
|
16
15
|
var entityBundle = (0, useEntityBundle_1.default)(entityId, versionNumber).data;
|
|
17
16
|
var isVersionable = entityBundle && (0, EntityTypeUtils_1.isVersionableEntity)(entityBundle.entity);
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
}, [entityBundle]);
|
|
17
|
+
var dataFileHandle = entityBundle
|
|
18
|
+
? (0, FileHandleUtils_1.getDataFileHandle)(entityBundle)
|
|
19
|
+
: undefined;
|
|
20
|
+
var fileLocationName = undefined;
|
|
21
|
+
if (dataFileHandle) {
|
|
22
|
+
fileLocationName = (0, FileHandleUtils_1.getStorageLocationName)(dataFileHandle);
|
|
23
|
+
}
|
|
27
24
|
return entityBundle ? (react_1.default.createElement("table", { className: "MetadataTable" },
|
|
28
25
|
react_1.default.createElement("tbody", null,
|
|
29
26
|
react_1.default.createElement("tr", { className: "MetadataTable__Row" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataTable.js","sourceRoot":"","sources":["../../../../src/lib/containers/entity/metadata/MetadataTable.tsx"],"names":[],"mappings":";;;;AAAA,wDAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"MetadataTable.js","sourceRoot":"","sources":["../../../../src/lib/containers/entity/metadata/MetadataTable.tsx"],"names":[],"mappings":";;;;AAAA,wDAAyB;AACzB,wDAAyB;AACzB,wEAAmE;AACnE,4EAIiD;AACjD,4EAGiD;AACjD,mHAAuF;AACvF,oEAAqC;AAO9B,IAAM,aAAa,GAAG,UAAC,EAGT;;QAFnB,QAAQ,cAAA,EACR,aAAa,mBAAA;IAEL,IAAM,YAAY,GAAK,IAAA,yBAAkB,EAAC,QAAQ,EAAE,aAAa,CAAC,KAAhD,CAAgD;IAE1E,IAAM,aAAa,GAAG,YAAY,IAAI,IAAA,qCAAmB,EAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAE9E,IAAM,cAAc,GAAG,YAAY;QACjC,CAAC,CAAC,IAAA,mCAAiB,EAAC,YAAY,CAAC;QACjC,CAAC,CAAC,SAAS,CAAA;IAEb,IAAI,gBAAgB,GAAG,SAAS,CAAA;IAChC,IAAI,cAAc,EAAE;QAClB,gBAAgB,GAAG,IAAA,wCAAsB,EAAC,cAAc,CAAC,CAAA;KAC1D;IAED,OAAO,YAAY,CAAC,CAAC,CAAC,CACpB,yCAAO,SAAS,EAAC,eAAe;QAC9B;YACE,sCAAI,SAAS,EAAC,oBAAoB;gBAChC,sCAAI,SAAS,EAAC,yBAAyB,WAAU;gBACjD,sCAAI,SAAS,EAAC,2BAA2B,IACtC,MAAA,YAAY,CAAC,MAAM,0CAAE,IAAI,CACvB,CACF;YACL,sCAAI,SAAS,EAAC,oBAAoB;gBAChC,sCAAI,SAAS,EAAC,yBAAyB,WAAU;gBACjD,sCAAI,SAAS,EAAC,2BAA2B,IACtC,IAAA,0CAAwB,EAAC,YAAY,CAAC,UAAU,CAAC,CAC/C,CACF;YACL,sCAAI,SAAS,EAAC,oBAAoB;gBAChC,sCAAI,SAAS,EAAC,yBAAyB,iBAAgB;gBACvD,sCAAI,SAAS,EAAC,2BAA2B,IACtC,MAAA,YAAY,CAAC,MAAM,0CAAE,EAAE,CACrB,CACF;YACJ,aAAa,IAAI,CAChB,sCAAI,SAAS,EAAC,oBAAoB;gBAChC,sCAAI,SAAS,EAAC,yBAAyB,cAAa;gBACpD,sCAAI,SAAS,EAAC,2BAA2B,IACtC,IAAA,mCAAiB,EAAC,YAAY,CAAC,MAAM,CAAC,CACpC,CACF,CACN;YACA,gBAAgB,IAAI,CACnB,sCAAI,SAAS,EAAC,oBAAoB;gBAChC,sCAAI,SAAS,EAAC,yBAAyB,cAAa;gBACpD,sCAAI,SAAS,EAAC,2BAA2B,IAAE,gBAAgB,CAAM,CAC9D,CACN;YACD,sCAAI,SAAS,EAAC,oBAAoB;gBAChC,sCAAI,SAAS,EAAC,yBAAyB,wBAAuB;gBAC9D,sCAAI,SAAS,EAAC,2BAA2B;oBACvC,8BAAC,kBAAQ,IACP,IAAI,EAAC,iBAAiB,EACtB,OAAO,EAAE,MAAA,YAAY,CAAC,MAAM,0CAAE,UAAU,GACxC;oBAAC,GAAG;;oBACF,IAAA,0BAAU,EAAC,IAAA,eAAK,EAAC,MAAA,YAAY,CAAC,MAAM,0CAAE,UAAU,CAAC,CAAC,CACnD,CACF;YACL,sCAAI,SAAS,EAAC,oBAAoB;gBAChC,sCAAI,SAAS,EAAC,yBAAyB,iBAAgB;gBACvD,sCAAI,SAAS,EAAC,2BAA2B;oBACvC,8BAAC,kBAAQ,IACP,IAAI,EAAC,iBAAiB,EACtB,OAAO,EAAE,MAAA,YAAY,CAAC,MAAM,0CAAE,SAAS,GACvC;oBAAC,GAAG;;oBACF,IAAA,0BAAU,EAAC,IAAA,eAAK,EAAC,MAAA,YAAY,CAAC,MAAM,0CAAE,SAAS,CAAC,CAAC,CAClD,CACF,CACC,CACF,CACT,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAA;AA3EY,QAAA,aAAa,iBA2EzB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { EntityActionMenuProps } from '../action_menu/EntityActionMenu';
|
|
3
|
+
export declare type EntityPageTitleBarProps = {
|
|
4
|
+
entityId: string;
|
|
5
|
+
versionNumber?: number;
|
|
6
|
+
entityActionMenuProps?: EntityActionMenuProps;
|
|
7
|
+
onActMemberClickAddConditionsForUse: () => void;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* The EntityPageTitleBar component is shown on every Entity page in Synapse, and shows an Entity's metadata and
|
|
11
|
+
* provides controls to view and manipulate the Entity.
|
|
12
|
+
*/
|
|
13
|
+
export default function EntityPageTitleBar(props: EntityPageTitleBarProps): JSX.Element;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = tslib_1.__importDefault(require("react"));
|
|
5
|
+
var IconSvg_1 = tslib_1.__importStar(require("../../../IconSvg"));
|
|
6
|
+
var material_1 = require("@mui/material");
|
|
7
|
+
var SynapseAPI_1 = require("../../../../utils/hooks/SynapseAPI");
|
|
8
|
+
var FavoriteButton_1 = tslib_1.__importDefault(require("../../../favorites/FavoriteButton"));
|
|
9
|
+
var ConditionalWrapper_1 = tslib_1.__importDefault(require("../../../utils/ConditionalWrapper"));
|
|
10
|
+
var EntityActionMenu_1 = tslib_1.__importDefault(require("../action_menu/EntityActionMenu"));
|
|
11
|
+
var DockerRepository_1 = require("../../../../utils/synapseTypes/docker/DockerRepository");
|
|
12
|
+
var TitleBarProperties_1 = tslib_1.__importDefault(require("./TitleBarProperties"));
|
|
13
|
+
var EntityTitleBarVersionInfo_1 = require("./EntityTitleBarVersionInfo");
|
|
14
|
+
/**
|
|
15
|
+
* The EntityPageTitleBar component is shown on every Entity page in Synapse, and shows an Entity's metadata and
|
|
16
|
+
* provides controls to view and manipulate the Entity.
|
|
17
|
+
*/
|
|
18
|
+
function EntityPageTitleBar(props) {
|
|
19
|
+
var _a, _b, _c;
|
|
20
|
+
var entityId = props.entityId, versionNumber = props.versionNumber, entityActionMenuProps = props.entityActionMenuProps;
|
|
21
|
+
var toggleShowVersionHistory = (_a = entityActionMenuProps === null || entityActionMenuProps === void 0 ? void 0 : entityActionMenuProps.actionConfiguration['SHOW_VERSION_HISTORY']) === null || _a === void 0 ? void 0 : _a.onClick;
|
|
22
|
+
var _d = (0, SynapseAPI_1.useGetEntityBundle)(entityId, versionNumber), bundle = _d.data, isLoading = _d.isLoading;
|
|
23
|
+
var name = (bundle === null || bundle === void 0 ? void 0 : bundle.entity) && (0, DockerRepository_1.isDockerRepository)(bundle.entity)
|
|
24
|
+
? bundle.entity.repositoryName
|
|
25
|
+
: (_b = bundle === null || bundle === void 0 ? void 0 : bundle.entity) === null || _b === void 0 ? void 0 : _b.name;
|
|
26
|
+
return (react_1.default.createElement("div", null,
|
|
27
|
+
react_1.default.createElement(material_1.Box, { sx: {
|
|
28
|
+
padding: '30px 40px',
|
|
29
|
+
backgroundColor: 'grey.100',
|
|
30
|
+
} },
|
|
31
|
+
react_1.default.createElement(material_1.Stack, { direction: 'row' },
|
|
32
|
+
react_1.default.createElement(material_1.Stack, { direction: 'row', alignItems: 'center', sx: {
|
|
33
|
+
flexGrow: 1,
|
|
34
|
+
} },
|
|
35
|
+
react_1.default.createElement(ConditionalWrapper_1.default, { condition: isLoading, wrapper: material_1.Skeleton, wrapperProps: {
|
|
36
|
+
variant: 'circular',
|
|
37
|
+
} },
|
|
38
|
+
react_1.default.createElement(material_1.Avatar, { sx: { bgcolor: 'grey.300', height: 48, width: 48 } }, (bundle === null || bundle === void 0 ? void 0 : bundle.entityType) && (react_1.default.createElement(IconSvg_1.default, { icon: (bundle === null || bundle === void 0 ? void 0 : bundle.entityType)
|
|
39
|
+
? IconSvg_1.type2SvgIconName[bundle.entityType]
|
|
40
|
+
: 'file', wrap: false, sx: { color: 'grey.700' } })))),
|
|
41
|
+
react_1.default.createElement(material_1.Box, { sx: { marginLeft: '10px', flexGrow: 1 } },
|
|
42
|
+
react_1.default.createElement(material_1.Stack, { direction: 'row', alignItems: 'center', gap: '3px' },
|
|
43
|
+
react_1.default.createElement(ConditionalWrapper_1.default, { condition: isLoading, wrapper: material_1.Skeleton },
|
|
44
|
+
react_1.default.createElement(material_1.Typography, { variant: 'headline2' }, name !== null && name !== void 0 ? name : 'Name not set')),
|
|
45
|
+
((_c = bundle === null || bundle === void 0 ? void 0 : bundle.entity) === null || _c === void 0 ? void 0 : _c.id) && (react_1.default.createElement(FavoriteButton_1.default, { entityId: bundle.entity.id }))),
|
|
46
|
+
react_1.default.createElement(EntityTitleBarVersionInfo_1.EntityTitleBarVersionInfo, { entityId: entityId, versionNumber: versionNumber, toggleShowVersionHistory: toggleShowVersionHistory }))),
|
|
47
|
+
entityActionMenuProps && (react_1.default.createElement(EntityActionMenu_1.default, tslib_1.__assign({}, entityActionMenuProps))))),
|
|
48
|
+
react_1.default.createElement(TitleBarProperties_1.default, tslib_1.__assign({}, props))));
|
|
49
|
+
}
|
|
50
|
+
exports.default = EntityPageTitleBar;
|
|
51
|
+
//# sourceMappingURL=EntityPageTitleBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityPageTitleBar.js","sourceRoot":"","sources":["../../../../../src/lib/containers/entity/page/title_bar/EntityPageTitleBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Entity } from '../../../../utils/synapseTypes';
|
|
3
|
+
import { ActionConfiguration } from '../action_menu/EntityActionMenu';
|
|
4
|
+
export declare type EntityTitleBarVersionInfoProps = {
|
|
5
|
+
entityId: string;
|
|
6
|
+
versionNumber?: number;
|
|
7
|
+
toggleShowVersionHistory: ActionConfiguration['onClick'];
|
|
8
|
+
};
|
|
9
|
+
declare function getDisplayedVersionLabel(entity: Entity): string | null;
|
|
10
|
+
declare function getDisplayedVersionNumber(entity: Entity): string | null;
|
|
11
|
+
export declare function EntityTitleBarVersionInfo(props: EntityTitleBarVersionInfoProps): JSX.Element | null;
|
|
12
|
+
export declare const EXPORTED_FOR_UNIT_TESTING: {
|
|
13
|
+
getDisplayedVersionLabel: typeof getDisplayedVersionLabel;
|
|
14
|
+
getDisplayedVersionNumber: typeof getDisplayedVersionNumber;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EXPORTED_FOR_UNIT_TESTING = exports.EntityTitleBarVersionInfo = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var SynapseAPI_1 = require("../../../../utils/hooks/SynapseAPI");
|
|
6
|
+
var EntityTypeUtils_1 = require("../../../../utils/functions/EntityTypeUtils");
|
|
7
|
+
var StringUtils_1 = require("../../../../utils/functions/StringUtils");
|
|
8
|
+
var material_1 = require("@mui/material");
|
|
9
|
+
var react_1 = tslib_1.__importDefault(require("react"));
|
|
10
|
+
var MAX_VERSION_LABEL_LENGTH = 50;
|
|
11
|
+
function getDisplayedVersionLabel(entity) {
|
|
12
|
+
var _a;
|
|
13
|
+
if (!(0, EntityTypeUtils_1.isVersionableEntity)(entity)) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
if ((0, EntityTypeUtils_1.isTable)(entity) && entity.isLatestVersion) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return (_a = entity.versionLabel) !== null && _a !== void 0 ? _a : null;
|
|
20
|
+
}
|
|
21
|
+
function getDisplayedVersionNumber(entity) {
|
|
22
|
+
if (!(0, EntityTypeUtils_1.isVersionableEntity)(entity)) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
if ((0, EntityTypeUtils_1.isTable)(entity) && entity.isLatestVersion) {
|
|
26
|
+
if ((0, EntityTypeUtils_1.isEntityRefCollectionView)(entity)) {
|
|
27
|
+
return 'Draft Version';
|
|
28
|
+
}
|
|
29
|
+
return 'Current Version';
|
|
30
|
+
}
|
|
31
|
+
return "V".concat(entity.versionNumber).concat(entity.isLatestVersion ? ' (Current)' : '');
|
|
32
|
+
}
|
|
33
|
+
function EntityTitleBarVersionInfo(props) {
|
|
34
|
+
var entityId = props.entityId, versionNumber = props.versionNumber, toggleShowVersionHistory = props.toggleShowVersionHistory;
|
|
35
|
+
var bundle = (0, SynapseAPI_1.useGetEntityBundle)(entityId, versionNumber).data;
|
|
36
|
+
var isVersionable = (bundle === null || bundle === void 0 ? void 0 : bundle.entity) && (0, EntityTypeUtils_1.isVersionableEntity)(bundle.entity);
|
|
37
|
+
var fullVersionLabel = (bundle === null || bundle === void 0 ? void 0 : bundle.entity) && getDisplayedVersionLabel(bundle.entity);
|
|
38
|
+
var truncatedVersionLabel = fullVersionLabel
|
|
39
|
+
? (0, StringUtils_1.truncateString)(fullVersionLabel, MAX_VERSION_LABEL_LENGTH)
|
|
40
|
+
: undefined;
|
|
41
|
+
var versionNumberDisplay = (bundle === null || bundle === void 0 ? void 0 : bundle.entity) && getDisplayedVersionNumber(bundle.entity);
|
|
42
|
+
if (!isVersionable) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
return (react_1.default.createElement(material_1.Box, { sx: { marginTop: '3px' } },
|
|
46
|
+
react_1.default.createElement(material_1.Tooltip, { title: fullVersionLabel, placement: 'bottom' },
|
|
47
|
+
react_1.default.createElement(material_1.Typography, { component: 'span', variant: "smallText1", sx: {
|
|
48
|
+
color: 'grey.700',
|
|
49
|
+
fontStyle: 'italic',
|
|
50
|
+
} }, truncatedVersionLabel)),
|
|
51
|
+
fullVersionLabel && versionNumberDisplay && (react_1.default.createElement(material_1.Typography, { component: 'span', variant: "smallText1", sx: {
|
|
52
|
+
color: 'grey.700',
|
|
53
|
+
marginLeft: '5px',
|
|
54
|
+
marginRight: '5px',
|
|
55
|
+
} }, "/")),
|
|
56
|
+
react_1.default.createElement(material_1.Tooltip, { title: 'Click to show version history', placement: 'top' },
|
|
57
|
+
react_1.default.createElement(material_1.Link, { onClick: toggleShowVersionHistory, variant: "smallText1", sx: { fontWeight: 400 } }, versionNumberDisplay))));
|
|
58
|
+
}
|
|
59
|
+
exports.EntityTitleBarVersionInfo = EntityTitleBarVersionInfo;
|
|
60
|
+
exports.EXPORTED_FOR_UNIT_TESTING = {
|
|
61
|
+
getDisplayedVersionLabel: getDisplayedVersionLabel,
|
|
62
|
+
getDisplayedVersionNumber: getDisplayedVersionNumber,
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=EntityTitleBarVersionInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityTitleBarVersionInfo.js","sourceRoot":"","sources":["../../../../../src/lib/containers/entity/page/title_bar/EntityTitleBarVersionInfo.tsx"],"names":[],"mappings":";;;;AAAA,iEAAuE;AACvE,+EAIoD;AACpD,uEAAwE;AACxE,0CAA8D;AAC9D,wDAAyB;AAIzB,IAAM,wBAAwB,GAAG,EAAE,CAAA;AAOnC,SAAS,wBAAwB,CAAC,MAAc;;IAC9C,IAAI,CAAC,IAAA,qCAAmB,EAAC,MAAM,CAAC,EAAE;QAChC,OAAO,IAAI,CAAA;KACZ;IACD,IAAI,IAAA,yBAAO,EAAC,MAAM,CAAC,IAAI,MAAM,CAAC,eAAe,EAAE;QAC7C,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,MAAA,MAAM,CAAC,YAAY,mCAAI,IAAI,CAAA;AACpC,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc;IAC/C,IAAI,CAAC,IAAA,qCAAmB,EAAC,MAAM,CAAC,EAAE;QAChC,OAAO,IAAI,CAAA;KACZ;IACD,IAAI,IAAA,yBAAO,EAAC,MAAM,CAAC,IAAI,MAAM,CAAC,eAAe,EAAE;QAC7C,IAAI,IAAA,2CAAyB,EAAC,MAAM,CAAC,EAAE;YACrC,OAAO,eAAe,CAAA;SACvB;QACD,OAAO,iBAAiB,CAAA;KACzB;IACD,OAAO,WAAI,MAAM,CAAC,aAAa,SAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAE,CAAA;AAChF,CAAC;AAED,SAAgB,yBAAyB,CACvC,KAAqC;IAE7B,IAAA,QAAQ,GAA8C,KAAK,SAAnD,EAAE,aAAa,GAA+B,KAAK,cAApC,EAAE,wBAAwB,GAAK,KAAK,yBAAV,CAAU;IAE3D,IAAM,MAAM,GAAK,IAAA,+BAAkB,EAAC,QAAQ,EAAE,aAAa,CAAC,KAAhD,CAAgD;IAEpE,IAAM,aAAa,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,IAAA,qCAAmB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAE1E,IAAM,gBAAgB,GACpB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3D,IAAM,qBAAqB,GAAG,gBAAgB;QAC5C,CAAC,CAAC,IAAA,4BAAc,EAAC,gBAAgB,EAAE,wBAAwB,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAA;IAEb,IAAM,oBAAoB,GACxB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAE5D,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,8BAAC,cAAG,IAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;QAC3B,8BAAC,kBAAO,IAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ;YACnD,8BAAC,qBAAU,IACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAC,YAAY,EACpB,EAAE,EAAE;oBACF,KAAK,EAAE,UAAU;oBACjB,SAAS,EAAE,QAAQ;iBACpB,IAEA,qBAAqB,CACX,CACL;QACT,gBAAgB,IAAI,oBAAoB,IAAI,CAC3C,8BAAC,qBAAU,IACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAC,YAAY,EACpB,EAAE,EAAE;gBACF,KAAK,EAAE,UAAU;gBACjB,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,KAAK;aACnB,QAGU,CACd;QACD,8BAAC,kBAAO,IAAC,KAAK,EAAE,+BAA+B,EAAE,SAAS,EAAE,KAAK;YAC/D,8BAAC,eAAI,IACH,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAC,YAAY,EACpB,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,IAEtB,oBAAoB,CAChB,CACC,CACN,CACP,CAAA;AACH,CAAC;AA5DD,8DA4DC;AAEY,QAAA,yBAAyB,GAAG;IACvC,wBAAwB,0BAAA;IACxB,yBAAyB,2BAAA;CAC1B,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare type TitleBarPropertiesProps = {
|
|
3
|
+
entityId: string;
|
|
4
|
+
versionNumber?: number;
|
|
5
|
+
onActMemberClickAddConditionsForUse: () => void;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* The TitleBarProperties component displays a tabular view of the entity metadata on the Entity page.
|
|
9
|
+
*/
|
|
10
|
+
export default function TitleBarProperties(props: TitleBarPropertiesProps): JSX.Element;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
5
|
+
var material_1 = require("@mui/material");
|
|
6
|
+
var SynapseAPI_1 = require("../../../../utils/hooks/SynapseAPI");
|
|
7
|
+
var AddConditionsForUseButton_1 = tslib_1.__importDefault(require("../../../access_requirements/AddConditionsForUseButton"));
|
|
8
|
+
var SynapseContext_1 = require("../../../../utils/SynapseContext");
|
|
9
|
+
var useGetEntityTitleBarProperties_1 = require("./useGetEntityTitleBarProperties");
|
|
10
|
+
function Property(props) {
|
|
11
|
+
var title = props.title, value = props.value;
|
|
12
|
+
return (react_1.default.createElement("tr", null,
|
|
13
|
+
react_1.default.createElement("td", { style: { paddingRight: '1em' } },
|
|
14
|
+
react_1.default.createElement(material_1.Typography, { component: 'span', variant: 'smallText1', sx: {
|
|
15
|
+
fontWeight: 700,
|
|
16
|
+
} }, title)),
|
|
17
|
+
react_1.default.createElement("td", null,
|
|
18
|
+
react_1.default.createElement(material_1.Typography, { component: 'span', variant: 'smallText1' }, value))));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The TitleBarProperties component displays a tabular view of the entity metadata on the Entity page.
|
|
22
|
+
*/
|
|
23
|
+
function TitleBarProperties(props) {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
var entityId = props.entityId, versionNumber = props.versionNumber, onActMemberClickAddConditionsForUse = props.onActMemberClickAddConditionsForUse;
|
|
26
|
+
var isInExperimentalMode = (0, SynapseContext_1.useSynapseContext)().isInExperimentalMode;
|
|
27
|
+
// We don't need the entire bundle, but it's fetched for the rest of the title bar and useGetEntityTitleBarProperties below, so the cache will be hot.
|
|
28
|
+
var bundle = (0, SynapseAPI_1.useGetEntityBundle)(entityId, versionNumber).data;
|
|
29
|
+
// Actual entity data is fetched and transformed in this custom hook
|
|
30
|
+
var properties = (0, useGetEntityTitleBarProperties_1.useGetEntityTitleBarProperties)(entityId, versionNumber);
|
|
31
|
+
var _c = (0, react_1.useState)(false), showAllProperties = _c[0], setShowAllProperties = _c[1];
|
|
32
|
+
return (react_1.default.createElement(material_1.Box, { sx: { padding: '20px 40px' } },
|
|
33
|
+
react_1.default.createElement(material_1.Stack, { direction: 'row', justifyContent: 'space-between', alignItems: 'flex-start' },
|
|
34
|
+
react_1.default.createElement(material_1.Stack, { direction: "row", alignItems: 'flex-start', divider: react_1.default.createElement(material_1.Divider, { orientation: "vertical", flexItem: true }), spacing: 2 },
|
|
35
|
+
react_1.default.createElement("table", null,
|
|
36
|
+
react_1.default.createElement("tbody", null, properties.slice(0, 2).map(function (p) {
|
|
37
|
+
return react_1.default.createElement(Property, { key: p.key, title: p.title, value: p.value });
|
|
38
|
+
}))),
|
|
39
|
+
properties.length > 2 && (react_1.default.createElement("table", null,
|
|
40
|
+
react_1.default.createElement("tbody", null, properties.slice(2, 4).map(function (p) {
|
|
41
|
+
return (react_1.default.createElement(Property, { key: p.key, title: p.title, value: p.value }));
|
|
42
|
+
})))),
|
|
43
|
+
(properties.length === 5 || properties.length === 6) && (react_1.default.createElement("table", null,
|
|
44
|
+
react_1.default.createElement("tbody", null, properties.slice(4, 6).map(function (p) {
|
|
45
|
+
return (react_1.default.createElement(Property, { key: p.key, title: p.title, value: p.value }));
|
|
46
|
+
})))),
|
|
47
|
+
properties.length > 6 && (react_1.default.createElement(material_1.Link, { onClick: function () { return setShowAllProperties(function (v) { return !v; }); } }, showAllProperties
|
|
48
|
+
? 'Hide properties'
|
|
49
|
+
: "".concat(properties.length - 4, " more properties")))),
|
|
50
|
+
react_1.default.createElement(AddConditionsForUseButton_1.default, { entityId: entityId, onACTMemberClick: onActMemberClickAddConditionsForUse })),
|
|
51
|
+
showAllProperties && (react_1.default.createElement("table", null,
|
|
52
|
+
react_1.default.createElement("tbody", null, properties.slice(4, Infinity).map(function (p) {
|
|
53
|
+
return react_1.default.createElement(Property, { key: p.key, title: p.title, value: p.value });
|
|
54
|
+
})))),
|
|
55
|
+
((_a = bundle === null || bundle === void 0 ? void 0 : bundle.entity) === null || _a === void 0 ? void 0 : _a.description) && isInExperimentalMode && (react_1.default.createElement(material_1.Box, { sx: { marginTop: '10px', maxWidth: '720px' } }, (_b = bundle === null || bundle === void 0 ? void 0 : bundle.entity) === null || _b === void 0 ? void 0 : _b.description))));
|
|
56
|
+
}
|
|
57
|
+
exports.default = TitleBarProperties;
|
|
58
|
+
//# sourceMappingURL=TitleBarProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TitleBarProperties.js","sourceRoot":"","sources":["../../../../../src/lib/containers/entity/page/title_bar/TitleBarProperties.tsx"],"names":[],"mappings":"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"}
|