cloudmr-ux 2.0.7 → 3.0.1
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/README.md +24 -24
- package/dist/CmrComponents/CmrButton/CmrButton.css +0 -0
- package/dist/CmrComponents/CmrButton/CmrButton.d.ts +4 -0
- package/dist/CmrComponents/CmrButton/CmrButton.js +30 -0
- package/dist/CmrComponents/CmrButton/index.d.ts +1 -0
- package/dist/CmrComponents/CmrButton/index.js +1 -0
- package/dist/CmrComponents/CmrCheckbox/CmrCheckbox.css +29 -0
- package/dist/CmrComponents/CmrCheckbox/CmrCheckbox.d.ts +14 -0
- package/dist/CmrComponents/CmrCheckbox/CmrCheckbox.js +30 -0
- package/dist/CmrComponents/CmrCheckbox/index.d.ts +1 -0
- package/dist/CmrComponents/CmrCheckbox/index.js +1 -0
- package/dist/CmrComponents/CmrColorPicker/CmrColorPicker.d.ts +8 -0
- package/dist/CmrComponents/CmrColorPicker/CmrColorPicker.js +29 -0
- package/dist/CmrComponents/CmrColorPicker/CmrColorPicker.scss +27 -0
- package/dist/CmrComponents/CmrInput/CmrInput.css +27 -0
- package/dist/CmrComponents/CmrInput/CmrInput.d.ts +17 -0
- package/dist/CmrComponents/CmrInput/CmrInput.js +29 -0
- package/dist/CmrComponents/CmrInput/index.d.ts +1 -0
- package/dist/CmrComponents/CmrInput/index.js +1 -0
- package/dist/CmrComponents/CmrRadioGroup/CmrRadioGroup.css +25 -0
- package/dist/CmrComponents/CmrRadioGroup/CmrRadioGroup.d.ts +15 -0
- package/dist/CmrComponents/CmrRadioGroup/CmrRadioGroup.js +37 -0
- package/dist/CmrComponents/CmrRadioGroup/index.d.ts +1 -0
- package/dist/CmrComponents/CmrRadioGroup/index.js +1 -0
- package/dist/CmrComponents/CmrSelect/CmrSelect.css +1 -0
- package/dist/CmrComponents/CmrSelect/CmrSelect.d.ts +24 -0
- package/dist/CmrComponents/CmrSelect/CmrSelect.js +46 -0
- package/dist/CmrComponents/CmrSelect/index.d.ts +1 -0
- package/dist/CmrComponents/CmrSelect/index.js +1 -0
- package/dist/CmrComponents/checkbox/Checkbox.css +8 -0
- package/dist/CmrComponents/checkbox/Checkbox.d.ts +15 -0
- package/dist/CmrComponents/checkbox/Checkbox.js +25 -0
- package/dist/CmrComponents/collapse/Collapse.css +3 -0
- package/dist/CmrComponents/collapse/Collapse.d.ts +18 -0
- package/dist/CmrComponents/collapse/Collapse.js +87 -0
- package/dist/CmrComponents/dialogue/Confirmation.d.ts +20 -0
- package/dist/CmrComponents/dialogue/Confirmation.js +36 -0
- package/dist/CmrComponents/dialogue/DeletionDialog.d.ts +4 -0
- package/dist/CmrComponents/dialogue/DeletionDialog.js +39 -0
- package/dist/CmrComponents/dialogue/EditConfirmation.d.ts +13 -0
- package/dist/CmrComponents/dialogue/EditConfirmation.js +45 -0
- package/dist/CmrComponents/double-slider/DualSlider.d.ts +21 -0
- package/dist/CmrComponents/double-slider/DualSlider.js +152 -0
- package/dist/CmrComponents/double-slider/InvertibleDualSlider.d.ts +24 -0
- package/dist/CmrComponents/double-slider/InvertibleDualSlider.js +174 -0
- package/dist/CmrComponents/gui-slider/ControlledSlider.d.ts +9 -0
- package/dist/CmrComponents/gui-slider/ControlledSlider.js +96 -0
- package/dist/CmrComponents/gui-slider/Slider.d.ts +20 -0
- package/dist/CmrComponents/gui-slider/Slider.js +127 -0
- package/dist/CmrComponents/header/Header.d.ts +17 -0
- package/dist/CmrComponents/header/Header.js +90 -0
- package/dist/CmrComponents/header/Header.scss +32 -0
- package/dist/CmrComponents/input-number/InputNumber.css +0 -0
- package/dist/CmrComponents/input-number/InputNumber.d.ts +17 -0
- package/dist/CmrComponents/input-number/InputNumber.js +30 -0
- package/dist/CmrComponents/label/Label.css +13 -0
- package/dist/CmrComponents/label/Label.d.ts +9 -0
- package/dist/CmrComponents/label/Label.js +18 -0
- package/dist/CmrComponents/panel/Panel.css +5 -0
- package/dist/CmrComponents/panel/Panel.d.ts +12 -0
- package/dist/CmrComponents/panel/Panel.js +42 -0
- package/dist/CmrComponents/rename/edit.d.ts +7 -0
- package/dist/CmrComponents/rename/edit.js +117 -0
- package/dist/CmrComponents/select-upload/SelectUpload.css +26 -0
- package/dist/CmrComponents/select-upload/SelectUpload.d.ts +33 -0
- package/dist/CmrComponents/select-upload/SelectUpload.js +90 -0
- package/dist/CmrComponents/tk-dualrange/TKDualRange.d.ts +17 -0
- package/dist/CmrComponents/tk-dualrange/TKDualRange.js +65 -0
- package/dist/CmrComponents/tk-dualrange/tk-dual-range.css +140 -0
- package/dist/CmrComponents/tooltip/Tooltip.css +0 -0
- package/dist/CmrComponents/tooltip/Tooltip.d.ts +18 -0
- package/dist/CmrComponents/tooltip/Tooltip.js +30 -0
- package/dist/CmrComponents/upload/Upload.css +5 -0
- package/dist/CmrComponents/upload/Upload.d.ts +80 -0
- package/dist/CmrComponents/upload/Upload.js +185 -0
- package/dist/CmrComponents/upload/UploadWindow.d.ts +15 -0
- package/dist/CmrComponents/upload/UploadWindow.js +286 -0
- package/dist/CmrTable/CmrTable.css +26 -0
- package/dist/CmrTable/CmrTable.d.ts +13 -0
- package/dist/CmrTable/CmrTable.js +47 -0
- package/dist/CmrTabs/CmrTabs.d.ts +7 -0
- package/dist/CmrTabs/CmrTabs.js +64 -0
- package/dist/CmrTabs/tab.model.d.ts +12 -0
- package/dist/CmrTabs/tab.model.js +1 -0
- package/dist/core/app/main/Main.d.ts +6 -0
- package/dist/core/app/main/Main.js +18 -0
- package/dist/core/app/results/Logs.d.ts +1 -0
- package/dist/core/app/results/Logs.js +33 -0
- package/dist/core/app/results/PreprocessJob.d.ts +1 -0
- package/dist/core/app/results/PreprocessJob.js +100 -0
- package/dist/core/app/results/Results.d.ts +15 -0
- package/dist/core/app/results/Results.js +372 -0
- package/dist/core/app/results/Results.scss +92 -0
- package/dist/core/app/results/Rois.d.ts +11 -0
- package/dist/core/app/results/Rois.js +269 -0
- package/dist/core/app/settings/Settings.d.ts +1 -0
- package/dist/core/app/settings/Settings.js +109 -0
- package/dist/core/app/signin/ForgotPassword.d.ts +3 -0
- package/dist/core/app/signin/ForgotPassword.js +142 -0
- package/dist/core/app/signin/Register.d.ts +3 -0
- package/dist/core/app/signin/Register.js +126 -0
- package/dist/core/app/signin/Signin.d.ts +5 -0
- package/dist/core/app/signin/Signin.js +84 -0
- package/dist/core/app/signin/Signin.scss +86 -0
- package/dist/core/app/upload/Upload.d.ts +3 -0
- package/dist/core/app/upload/Upload.js +261 -0
- package/dist/core/app/upload/Upload.scss +0 -0
- package/dist/core/common/components/CmrColorPicker/CmrColorPicker.d.ts +8 -0
- package/dist/core/common/components/CmrColorPicker/CmrColorPicker.js +29 -0
- package/dist/core/common/components/CmrColorPicker/CmrColorPicker.scss +27 -0
- package/dist/core/common/components/NiivueTools/Niivue.css +8 -0
- package/dist/core/common/components/NiivueTools/Niivue.d.ts +14 -0
- package/dist/core/common/components/NiivueTools/Niivue.js +1270 -0
- package/dist/core/common/components/NiivueTools/NiivuePatcher.js +1875 -0
- package/dist/core/common/components/NiivueTools/components/ColorPicker.d.ts +5 -0
- package/dist/core/common/components/NiivueTools/components/ColorPicker.js +68 -0
- package/dist/core/common/components/NiivueTools/components/DrawPlatte.d.ts +10 -0
- package/dist/core/common/components/NiivueTools/components/DrawPlatte.js +88 -0
- package/dist/core/common/components/NiivueTools/components/DrawToolKit.d.ts +32 -0
- package/dist/core/common/components/NiivueTools/components/DrawToolKit.js +164 -0
- package/dist/core/common/components/NiivueTools/components/EraserPlatte.d.ts +10 -0
- package/dist/core/common/components/NiivueTools/components/EraserPlatte.js +43 -0
- package/dist/core/common/components/NiivueTools/components/Layer.d.ts +10 -0
- package/dist/core/common/components/NiivueTools/components/Layer.js +117 -0
- package/dist/core/common/components/NiivueTools/components/LayersPanel.d.ts +8 -0
- package/dist/core/common/components/NiivueTools/components/LayersPanel.js +108 -0
- package/dist/core/common/components/NiivueTools/components/LocationTable.d.ts +9 -0
- package/dist/core/common/components/NiivueTools/components/LocationTable.js +42 -0
- package/dist/core/common/components/NiivueTools/components/MaskPlatte.d.ts +10 -0
- package/dist/core/common/components/NiivueTools/components/MaskPlatte.js +123 -0
- package/dist/core/common/components/NiivueTools/components/NiivuePanel.d.ts +34 -0
- package/dist/core/common/components/NiivueTools/components/NiivuePanel.js +305 -0
- package/dist/core/common/components/NiivueTools/components/NumberPicker.d.ts +8 -0
- package/dist/core/common/components/NiivueTools/components/NumberPicker.js +40 -0
- package/dist/core/common/components/NiivueTools/components/SettingsPanel.d.ts +7 -0
- package/dist/core/common/components/NiivueTools/components/SettingsPanel.js +30 -0
- package/dist/core/common/components/NiivueTools/components/Switch.d.ts +5 -0
- package/dist/core/common/components/NiivueTools/components/Switch.js +26 -0
- package/dist/core/common/components/NiivueTools/components/Toolbar.d.ts +40 -0
- package/dist/core/common/components/NiivueTools/components/Toolbar.js +184 -0
- package/dist/core/common/components/NiivueTools/components/Toolbar.scss +39 -0
- package/dist/core/common/components/NiivueTools/components/stats.d.ts +2 -0
- package/dist/core/common/components/NiivueTools/components/stats.js +13 -0
- package/dist/core/common/components/NiivueTools/index.css +14 -0
- package/dist/core/common/components/NiivueTools/util.js +309 -0
- package/dist/core/common/components/footer/Footer.d.ts +3 -0
- package/dist/core/common/components/footer/Footer.js +20 -0
- package/dist/core/common/components/footer/Footer.scss +5 -0
- package/dist/core/common/utilities/AuthenticatedRequests.d.ts +16 -0
- package/dist/core/common/utilities/AuthenticatedRequests.js +158 -0
- package/dist/core/common/utilities/CalendarHelper.d.ts +5 -0
- package/dist/core/common/utilities/CalendarHelper.js +27 -0
- package/dist/core/common/utilities/DownloadFromText.d.ts +3 -0
- package/dist/core/common/utilities/DownloadFromText.js +20 -0
- package/dist/core/common/utilities/StoreToRequest.d.ts +1 -0
- package/dist/core/common/utilities/StoreToRequest.js +4 -0
- package/dist/core/common/utilities/SystemUtilities.d.ts +4 -0
- package/dist/core/common/utilities/SystemUtilities.js +79 -0
- package/dist/core/common/utilities/file-transformation/anonymize.d.ts +1 -0
- package/dist/core/common/utilities/file-transformation/anonymize.js +114 -0
- package/dist/core/common/utilities/file-transformation/utilities.d.ts +2 -0
- package/dist/core/common/utilities/file-transformation/utilities.js +23 -0
- package/dist/core/common/utilities/index.d.ts +25 -0
- package/dist/core/common/utilities/index.js +118 -0
- package/dist/core/common/utilities/parse-jwt.d.ts +1 -0
- package/dist/core/common/utilities/parse-jwt.js +14 -0
- package/dist/core/components/PasswordRequirements.d.ts +7 -0
- package/dist/core/components/PasswordRequirements.js +30 -0
- package/dist/core/config/AppConfig.d.ts +5 -0
- package/dist/core/config/AppConfig.js +42 -0
- package/dist/core/config/types.d.ts +40 -0
- package/dist/core/config/types.js +1 -0
- package/dist/core/features/authenticate/authenticateActionCreation.d.ts +46 -0
- package/dist/core/features/authenticate/authenticateActionCreation.js +326 -0
- package/dist/core/features/authenticate/authenticateSlice.d.ts +45 -0
- package/dist/core/features/authenticate/authenticateSlice.js +203 -0
- package/dist/core/features/data/dataActionCreation.d.ts +40 -0
- package/dist/core/features/data/dataActionCreation.js +340 -0
- package/dist/core/features/data/dataSlice.d.ts +37 -0
- package/dist/core/features/data/dataSlice.js +87 -0
- package/dist/core/features/jobs/jobActionCreation.d.ts +35 -0
- package/dist/core/features/jobs/jobActionCreation.js +242 -0
- package/dist/core/features/jobs/jobsSlice.d.ts +57 -0
- package/dist/core/features/jobs/jobsSlice.js +54 -0
- package/dist/core/features/rois/resultActionCreation.d.ts +21 -0
- package/dist/core/features/rois/resultActionCreation.js +114 -0
- package/dist/core/features/rois/resultSlice.d.ts +24 -0
- package/dist/core/features/rois/resultSlice.js +68 -0
- package/dist/core/features/rois/roiTypes.d.ts +44 -0
- package/dist/core/features/rois/roiTypes.js +1 -0
- package/dist/core/features/setup/setupActionCreation.d.ts +7 -0
- package/dist/core/features/setup/setupActionCreation.js +100 -0
- package/dist/core/index.d.ts +22 -0
- package/dist/core/index.js +27 -0
- package/dist/core/store/configureStore.d.ts +13 -0
- package/dist/core/store/configureStore.js +38 -0
- package/dist/core/store/hooks.d.ts +11 -0
- package/dist/core/store/hooks.js +5 -0
- package/dist/core/utils/passwordValidation.d.ts +25 -0
- package/dist/core/utils/passwordValidation.js +19 -0
- package/dist/index.d.ts +29 -329
- package/dist/index.js +26 -1402
- package/dist/style.css +47 -0
- package/package.json +309 -41
- package/dist/index.css +0 -170
- package/dist/index.mjs +0 -1354
|
@@ -0,0 +1,117 @@
|
|
|
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 (g && (g = 0, op[0] && (_ = 0)), _) 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 { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
49
|
+
import * as React from 'react';
|
|
50
|
+
import { Typography, FormControlLabel, Checkbox } from '@mui/material';
|
|
51
|
+
import TextField from '@mui/material/TextField';
|
|
52
|
+
import Dialog from '@mui/material/Dialog';
|
|
53
|
+
import DialogActions from '@mui/material/DialogActions';
|
|
54
|
+
import DialogContent from '@mui/material/DialogContent';
|
|
55
|
+
import DialogTitle from '@mui/material/DialogTitle';
|
|
56
|
+
import CmrButton from '../CmrButton/CmrButton';
|
|
57
|
+
import { useEffect } from "react";
|
|
58
|
+
export default function CmrNameDialog(props) {
|
|
59
|
+
var _this = this;
|
|
60
|
+
var originalName = props.originalName, open = props.open, setOpen = props.setOpen, isDemoData = props.isDemoData;
|
|
61
|
+
var _a = React.useState(''), helperText = _a[0], setHelperText = _a[1];
|
|
62
|
+
var _b = React.useState(originalName), text = _b[0], setText = _b[1];
|
|
63
|
+
var _c = React.useState(false), error = _c[0], setError = _c[1];
|
|
64
|
+
var _d = React.useState(isDemoData !== null && isDemoData !== void 0 ? isDemoData : false), demoDataChecked = _d[0], setDemoDataChecked = _d[1];
|
|
65
|
+
var renamingCallback = props.renamingCallback;
|
|
66
|
+
var handleClose = function () {
|
|
67
|
+
setOpen(false);
|
|
68
|
+
};
|
|
69
|
+
useEffect(function () {
|
|
70
|
+
setText(originalName);
|
|
71
|
+
checkError(originalName);
|
|
72
|
+
setDemoDataChecked(isDemoData !== null && isDemoData !== void 0 ? isDemoData : false);
|
|
73
|
+
}, [originalName, isDemoData]);
|
|
74
|
+
var handleConfirm = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
75
|
+
return __generator(this, function (_a) {
|
|
76
|
+
switch (_a.label) {
|
|
77
|
+
case 0: return [4 /*yield*/, renamingCallback(text, isDemoData !== undefined ? demoDataChecked : undefined)];
|
|
78
|
+
case 1:
|
|
79
|
+
// if(!error)
|
|
80
|
+
if (_a.sent())
|
|
81
|
+
handleClose();
|
|
82
|
+
return [2 /*return*/];
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}); };
|
|
86
|
+
var handleTextFieldChange = function (e) {
|
|
87
|
+
setText(e.target.value);
|
|
88
|
+
checkError(e.target.value);
|
|
89
|
+
};
|
|
90
|
+
var checkError = function (text) {
|
|
91
|
+
var fileNameRegex = /^[a-zA-Z0-9_\-]+\.[a-zA-Z]{1,5}$/;
|
|
92
|
+
var newExtension = text.split('.').pop();
|
|
93
|
+
var orgExtension = (originalName.indexOf('.') >= 0) ? originalName.split('.').pop() : '?';
|
|
94
|
+
if (!fileNameRegex.test(text)) {
|
|
95
|
+
setError(true);
|
|
96
|
+
if (text.indexOf('.') < 0) {
|
|
97
|
+
setHelperText('Invalid file name, needs a valid extension.');
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
setHelperText('Invalid file name, please check.');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else if (newExtension !== orgExtension) {
|
|
104
|
+
setHelperText("You are modifying your file extension from .".concat(orgExtension, " to .").concat(newExtension, "."));
|
|
105
|
+
setError(false);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
setError(false);
|
|
109
|
+
setHelperText('');
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
return (_jsx("div", { children: _jsxs(Dialog, __assign({ open: open, onClose: handleClose, fullWidth: true, maxWidth: "xs" }, { children: [_jsx(DialogTitle, { children: _jsxs(Typography, { children: [" Rename the file ", originalName, " as:"] }) }), _jsxs(DialogContent, { children: [_jsx(TextField, { autoFocus: true, margin: "dense", id: "name",
|
|
113
|
+
// type="file"
|
|
114
|
+
value: text, onFocus: function (event) {
|
|
115
|
+
event.target.select();
|
|
116
|
+
}, fullWidth: true, inputProps: { style: { fontSize: "16px" } }, variant: "standard", onChange: handleTextFieldChange, error: error, helperText: helperText }), isDemoData !== undefined && (_jsx(FormControlLabel, { control: _jsx(Checkbox, { checked: demoDataChecked, onChange: function (e) { return setDemoDataChecked(e.target.checked); } }), label: "Demo Data", style: { marginTop: '16px' } }))] }), _jsxs(DialogActions, { children: [_jsx(CmrButton, __assign({ variant: "outlined", onClick: handleClose }, { children: "Cancel" })), _jsx(CmrButton, __assign({ variant: "contained", color: 'primary', onClick: handleConfirm }, { children: "Confirm" }))] })] })) }));
|
|
117
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.cmr-select__control {
|
|
2
|
+
border-color: #ccc;
|
|
3
|
+
font-family: Inter, Roboto, Helvetica, Arial, sans-serif;
|
|
4
|
+
font-weight: 400;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.cmr-select__option {
|
|
8
|
+
font-family: Inter, Roboto, Helvetica, Arial, sans-serif;
|
|
9
|
+
font-weight: 400;
|
|
10
|
+
/* color: #000;
|
|
11
|
+
background-color: white; */
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.cmr-select__single-value {
|
|
15
|
+
/* color: #580F8B; */
|
|
16
|
+
font-weight: 400;
|
|
17
|
+
font-family: Inter, Roboto, Helvetica, Arial, sans-serif;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.cmr-select__menu {
|
|
21
|
+
z-index: 9999 !important;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.cmr-select__menu-portal {
|
|
25
|
+
z-index: 2000 !important;
|
|
26
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { CMRUploadProps } from '../upload/Upload';
|
|
2
|
+
import './SelectUpload.css';
|
|
3
|
+
interface CMRSelectUploadProps extends CMRUploadProps {
|
|
4
|
+
/**
|
|
5
|
+
* A selection of currently uploaded files
|
|
6
|
+
*/
|
|
7
|
+
fileSelection: UploadedFile[];
|
|
8
|
+
onSelected: (file?: UploadedFile) => void;
|
|
9
|
+
chosenFile?: string;
|
|
10
|
+
buttonText?: string;
|
|
11
|
+
selectStyles?: any;
|
|
12
|
+
/**
|
|
13
|
+
* Enforces the extension of selected files
|
|
14
|
+
*/
|
|
15
|
+
fileExtension?: string | string[];
|
|
16
|
+
}
|
|
17
|
+
interface UploadedFile {
|
|
18
|
+
id: number;
|
|
19
|
+
fileName: string;
|
|
20
|
+
link: string;
|
|
21
|
+
md5?: string;
|
|
22
|
+
size: string;
|
|
23
|
+
status: string;
|
|
24
|
+
createdAt: string;
|
|
25
|
+
updatedAt: string;
|
|
26
|
+
database: string;
|
|
27
|
+
location: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Select from a set of uploaded files or upload new
|
|
31
|
+
*/
|
|
32
|
+
declare const CMRSelectUpload: (props: CMRSelectUploadProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export default CMRSelectUpload;
|
|
@@ -0,0 +1,90 @@
|
|
|
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 { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import React, { Fragment } from "react";
|
|
14
|
+
import CMRUpload from '../upload/Upload';
|
|
15
|
+
import { Button } from "@mui/material";
|
|
16
|
+
import Select from 'react-select';
|
|
17
|
+
import Dialog from "@mui/material/Dialog";
|
|
18
|
+
import DialogTitle from "@mui/material/DialogTitle";
|
|
19
|
+
import DialogContent from "@mui/material/DialogContent";
|
|
20
|
+
import DialogContentText from "@mui/material/DialogContentText";
|
|
21
|
+
import Box from "@mui/material/Box";
|
|
22
|
+
import './SelectUpload.css';
|
|
23
|
+
/**
|
|
24
|
+
* Check if there is file extension limit is set
|
|
25
|
+
*/
|
|
26
|
+
function checkExtension(filename, allowed) {
|
|
27
|
+
if (!filename || !allowed)
|
|
28
|
+
return true;
|
|
29
|
+
var name = filename.toLowerCase();
|
|
30
|
+
if (Array.isArray(allowed)) {
|
|
31
|
+
return allowed.some(function (ext) { return name.endsWith(ext.startsWith('.') ? ext : '.' + ext); });
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return name.endsWith(allowed.startsWith('.') ? allowed : '.' + allowed);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Select from a set of uploaded files or upload new
|
|
39
|
+
*/
|
|
40
|
+
var CMRSelectUpload = function (props) {
|
|
41
|
+
var _a = React.useState(false), open = _a[0], setOpen = _a[1];
|
|
42
|
+
var _b = React.useState(-1), fileIndex = _b[0], selectFileIndex = _b[1];
|
|
43
|
+
var _c = React.useState(false), uploading = _c[0], setUploading = _c[1];
|
|
44
|
+
var _d = React.useState(0), progress = _d[0], setProgress = _d[1];
|
|
45
|
+
var handleClickOpen = function () {
|
|
46
|
+
selectFileIndex(-1);
|
|
47
|
+
setOpen(true);
|
|
48
|
+
};
|
|
49
|
+
var handleClose = function () {
|
|
50
|
+
setOpen(false);
|
|
51
|
+
};
|
|
52
|
+
// const handleChange = (event: SelectChangeEvent<number>) => {
|
|
53
|
+
// //@ts-ignore
|
|
54
|
+
// selectFileIndex(event.target.value);
|
|
55
|
+
// };
|
|
56
|
+
var onSet = function () {
|
|
57
|
+
props.onSelected(props.fileSelection[fileIndex]);
|
|
58
|
+
setOpen(false);
|
|
59
|
+
};
|
|
60
|
+
var selectionDialog = _jsxs(Dialog, __assign({ open: open, onClose: handleClose }, { children: [_jsx(DialogTitle, { children: "Select or Upload" }), _jsxs(DialogContent, __assign({ sx: { width: 520 } }, { children: [_jsx(DialogContentText, __assign({ sx: { pl: 1, pr: 1, pb: 0 } }, { children: (uploading) ? "Please wait for the upload to finish." : "" })), _jsx(Box, __assign({ sx: { p: 1 } }, { children: _jsx(Select, { classNamePrefix: "cmr-select", isDisabled: uploading, options: props.fileSelection
|
|
61
|
+
.filter(function (file) { return checkExtension(file.fileName, props.fileExtension); })
|
|
62
|
+
.map(function (file) { return ({
|
|
63
|
+
value: file.id,
|
|
64
|
+
label: file.fileName
|
|
65
|
+
}); }), placeholder: "Select a Stored File", onChange: function (selected) {
|
|
66
|
+
if (selected) {
|
|
67
|
+
var index = props.fileSelection.findIndex(function (file) { return file.id === selected.value; });
|
|
68
|
+
selectFileIndex(index);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
selectFileIndex(-1);
|
|
72
|
+
}
|
|
73
|
+
}, menuPortalTarget: document.body, menuPosition: "fixed", styles: props.selectStyles }) })), _jsxs(Box, __assign({ sx: { pt: 2, justifyContent: 'center', display: 'flex', padding: '8px' } }, { children: [_jsx(Button, __assign({ fullWidth: true, sx: { marginRight: '8px' }, variant: "outlined", onClick: handleClose }, { children: " Cancel" })), (fileIndex !== -1 && !uploading) && _jsx(Button, __assign({ fullWidth: true, variant: "contained", onClick: onSet }, { children: "OK" })), fileIndex == -1 && _jsx(CMRUpload, __assign({}, props, { color: "info", fullWidth: true, onUploaded: function (res, file) {
|
|
74
|
+
console.log("calling Setup level on uploaded");
|
|
75
|
+
console.log(props.onUploaded);
|
|
76
|
+
selectFileIndex(props.fileSelection.length);
|
|
77
|
+
props.onUploaded(res, file);
|
|
78
|
+
setOpen(false);
|
|
79
|
+
}, fileExtension: props.fileExtension, uploadHandler: props.uploadHandler, uploadStarted: function () {
|
|
80
|
+
setUploading(true);
|
|
81
|
+
props.onSelected(undefined);
|
|
82
|
+
}, uploadProgressed: function (progress) {
|
|
83
|
+
setOpen(false);
|
|
84
|
+
setProgress(progress);
|
|
85
|
+
}, uploadEnded: function () { return setUploading(false); } }))] }))] }))] }));
|
|
86
|
+
return _jsxs(Fragment, { children: [uploading ? _jsxs(Button, __assign({ variant: "contained", style: __assign(__assign({}, props.style), { textTransform: 'none' }), sx: { overflowWrap: 'inherit' }, color: 'primary', disabled: uploading }, { children: ["Uploading ", progress, "%"] })) : _jsx(Button, __assign({ variant: (props.chosenFile == undefined) ? "contained" : "outlined", color: "info", onClick: handleClickOpen, sx: { marginRight: '10pt' }, style: __assign(__assign({}, props.style), { textTransform: 'none' }) }, { children: (props.chosenFile == undefined) ?
|
|
87
|
+
(props.buttonText ? props.buttonText : "Choose")
|
|
88
|
+
: props.chosenFile })), selectionDialog] });
|
|
89
|
+
};
|
|
90
|
+
export default CMRSelectUpload;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import "./tk-dual-range.css";
|
|
2
|
+
type Props = {
|
|
3
|
+
name?: string;
|
|
4
|
+
minDomain: number;
|
|
5
|
+
maxDomain: number;
|
|
6
|
+
valueLow: number;
|
|
7
|
+
valueHigh: number;
|
|
8
|
+
onChangeLow: (v: number) => void;
|
|
9
|
+
onChangeHigh: (v: number) => void;
|
|
10
|
+
transform?: (x: number) => number;
|
|
11
|
+
inverse?: (y: number) => number;
|
|
12
|
+
step?: number;
|
|
13
|
+
precision?: number;
|
|
14
|
+
accentColor?: string;
|
|
15
|
+
};
|
|
16
|
+
export default function TKDualRange({ name, minDomain, maxDomain, valueLow, valueHigh, onChangeLow, onChangeHigh, transform, inverse, step, precision, accentColor, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
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 { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import "./tk-dual-range.css";
|
|
14
|
+
var clamp = function (v, lo, hi) { return Math.max(lo, Math.min(hi, v)); };
|
|
15
|
+
export default function TKDualRange(_a) {
|
|
16
|
+
var _b;
|
|
17
|
+
var _c = _a.name, name = _c === void 0 ? "Values" : _c, minDomain = _a.minDomain, maxDomain = _a.maxDomain, valueLow = _a.valueLow, valueHigh = _a.valueHigh, onChangeLow = _a.onChangeLow, onChangeHigh = _a.onChangeHigh, _d = _a.transform, transform = _d === void 0 ? function (x) { return x; } : _d, _e = _a.inverse, inverse = _e === void 0 ? function (y) { return y; } : _e, step = _a.step, _f = _a.precision, precision = _f === void 0 ? 3 : _f, _g = _a.accentColor, accentColor = _g === void 0 ? "#580f8b" : _g;
|
|
18
|
+
// Map domain & current values into RENDER space (like TestKarts)
|
|
19
|
+
var tMin = transform(minDomain);
|
|
20
|
+
var tMax = transform(maxDomain);
|
|
21
|
+
var tLow = transform(valueLow);
|
|
22
|
+
var tHigh = transform(valueHigh);
|
|
23
|
+
var span = Math.max(1e-12, tMax - tMin);
|
|
24
|
+
var pct = function (t) { return ((t - tMin) / span) * 100; };
|
|
25
|
+
var s = step !== null && step !== void 0 ? step : Math.max(span * 0.001, Number.EPSILON);
|
|
26
|
+
// Keep ends from crossing; clamp in REAL space against the other end
|
|
27
|
+
var handleLowRender = function (nextRender) {
|
|
28
|
+
var nextReal = clamp(inverse(nextRender), minDomain, valueHigh);
|
|
29
|
+
onChangeLow(nextReal);
|
|
30
|
+
};
|
|
31
|
+
var handleHighRender = function (nextRender) {
|
|
32
|
+
var nextReal = clamp(inverse(nextRender), valueLow, maxDomain);
|
|
33
|
+
onChangeHigh(nextReal);
|
|
34
|
+
};
|
|
35
|
+
// Editable inputs show RENDER values (like the article)
|
|
36
|
+
var fmt = function (v) { return (Number.isFinite(v) ? v.toFixed(precision) : ""); };
|
|
37
|
+
var parse = function (s) {
|
|
38
|
+
var n = Number(s);
|
|
39
|
+
return Number.isFinite(n) ? n : NaN;
|
|
40
|
+
};
|
|
41
|
+
return (_jsxs("div", __assign({ className: "tkdr" }, { children: [_jsxs("div", __assign({ className: "tkdr__row tkdr__row--ends" }, { children: [_jsxs("div", __assign({ className: "tkdr__group" }, { children: [_jsx("span", __assign({ className: "tkdr__hint" }, { children: "Min" })), _jsx("input", { className: "tkdr__num", type: "number", step: s, value: fmt(tLow), onChange: function (e) {
|
|
42
|
+
var n = parse(e.target.value);
|
|
43
|
+
if (!Number.isFinite(n))
|
|
44
|
+
return;
|
|
45
|
+
handleLowRender(n);
|
|
46
|
+
}, onBlur: function (e) {
|
|
47
|
+
var n = parse(e.target.value);
|
|
48
|
+
if (!Number.isFinite(n))
|
|
49
|
+
return;
|
|
50
|
+
handleLowRender(n);
|
|
51
|
+
} })] })), _jsxs("div", __assign({ className: "tkdr__group" }, { children: [_jsx("span", __assign({ className: "tkdr__hint" }, { children: "Max" })), _jsx("input", { className: "tkdr__num", type: "number", step: s, value: fmt(tHigh), onChange: function (e) {
|
|
52
|
+
var n = parse(e.target.value);
|
|
53
|
+
if (!Number.isFinite(n))
|
|
54
|
+
return;
|
|
55
|
+
handleHighRender(n);
|
|
56
|
+
}, onBlur: function (e) {
|
|
57
|
+
var n = parse(e.target.value);
|
|
58
|
+
if (!Number.isFinite(n))
|
|
59
|
+
return;
|
|
60
|
+
handleHighRender(n);
|
|
61
|
+
} })] }))] })), _jsxs("div", __assign({ className: "tkdr__track", style: (_b = {}, _b["--tkdr-accent"] = accentColor, _b) }, { children: [_jsx("div", { className: "tkdr__range-fill", style: {
|
|
62
|
+
left: "".concat(pct(Math.min(tLow, tHigh)), "%"),
|
|
63
|
+
width: "".concat(Math.abs(pct(tHigh) - pct(tLow)), "%")
|
|
64
|
+
}, "aria-hidden": true }), _jsx("input", { className: "tkdr__range", type: "range", min: tMin, max: tMax, step: s, value: tLow, onChange: function (e) { return handleLowRender(Number(e.target.value)); } }), _jsx("input", { className: "tkdr__range tkdr__range--top", type: "range", min: tMin, max: tMax, step: s, value: tHigh, onChange: function (e) { return handleHighRender(Number(e.target.value)); } })] }))] })));
|
|
65
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/* tk-dual-range.css — native-looking, TestKarts-style */
|
|
2
|
+
|
|
3
|
+
.tkdr {
|
|
4
|
+
margin-top: 12px;
|
|
5
|
+
width: 100%;
|
|
6
|
+
user-select: none;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.tkdr__row {
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: space-between;
|
|
13
|
+
gap: 12px;
|
|
14
|
+
margin-bottom: 6px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* .tkdr__label {
|
|
18
|
+
font-weight: 300;
|
|
19
|
+
} */
|
|
20
|
+
|
|
21
|
+
.tkdr__inputs {
|
|
22
|
+
display: flex;
|
|
23
|
+
align-items: center;
|
|
24
|
+
gap: 6px;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.tkdr__num {
|
|
28
|
+
width: 100px;
|
|
29
|
+
padding: 4px 6px;
|
|
30
|
+
border-radius: 6px;
|
|
31
|
+
border: 1px solid #ccc;
|
|
32
|
+
font-size: 0.9rem;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.tkdr__dash {
|
|
36
|
+
opacity: 0.75;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.tkdr__track {
|
|
40
|
+
position: relative;
|
|
41
|
+
width: 100%;
|
|
42
|
+
height: 28px;
|
|
43
|
+
display: block;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.tkdr__range {
|
|
47
|
+
-webkit-appearance: none;
|
|
48
|
+
appearance: none;
|
|
49
|
+
position: absolute;
|
|
50
|
+
inset: 0;
|
|
51
|
+
width: 100%;
|
|
52
|
+
background: transparent;
|
|
53
|
+
margin: 0;
|
|
54
|
+
pointer-events: auto;
|
|
55
|
+
accent-color: var(--tkdr-accent, #580f8b);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Put the top thumb above the low thumb for easier grabbing */
|
|
59
|
+
.tkdr__range--top {
|
|
60
|
+
z-index: 2;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* Base track */
|
|
64
|
+
.tkdr__track::before {
|
|
65
|
+
content: "";
|
|
66
|
+
position: absolute;
|
|
67
|
+
left: 0;
|
|
68
|
+
right: 0;
|
|
69
|
+
top: 50%;
|
|
70
|
+
height: 8px;
|
|
71
|
+
transform: translateY(-50%);
|
|
72
|
+
background: #e5e5e5; /* light gray base */
|
|
73
|
+
border: 1px solid #b5b5b5; /* subtle native-like border */
|
|
74
|
+
border-radius: 5px; /* same rounded edge as default */
|
|
75
|
+
border-radius: 4px;
|
|
76
|
+
z-index: 0;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* Filled selection */
|
|
80
|
+
.tkdr__range-fill {
|
|
81
|
+
position: absolute;
|
|
82
|
+
top: 50%;
|
|
83
|
+
height: 8px;
|
|
84
|
+
transform: translateY(-50%);
|
|
85
|
+
background: var(--tkdr-accent, #580f8b);
|
|
86
|
+
opacity: 1;
|
|
87
|
+
border-radius: 5px;
|
|
88
|
+
z-index: 1;
|
|
89
|
+
pointer-events: none;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* Thumb styling (keep simple/native-ish) */
|
|
93
|
+
.tkdr__range::-webkit-slider-thumb {
|
|
94
|
+
-webkit-appearance: none;
|
|
95
|
+
appearance: none;
|
|
96
|
+
width: 14px;
|
|
97
|
+
height: 14px;
|
|
98
|
+
background: var(--tkdr-accent, #580f8b);
|
|
99
|
+
border-radius: 50%;
|
|
100
|
+
cursor: pointer;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.tkdr__range::-moz-range-thumb {
|
|
104
|
+
width: 14px;
|
|
105
|
+
height: 14px;
|
|
106
|
+
background: var(--tkdr-accent, #580f8b);
|
|
107
|
+
border-radius: 50%;
|
|
108
|
+
cursor: pointer;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* Top (high) slider should NOT intercept clicks except on its thumb */
|
|
112
|
+
.tkdr__range--top {
|
|
113
|
+
pointer-events: none; /* let events fall through to the low slider */
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* Re-enable events on the high thumb so it’s still draggable */
|
|
117
|
+
.tkdr__range--top::-webkit-slider-thumb {
|
|
118
|
+
pointer-events: auto;
|
|
119
|
+
}
|
|
120
|
+
.tkdr__range--top::-moz-range-thumb {
|
|
121
|
+
pointer-events: auto;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
/* spread the two input groups to the ends */
|
|
126
|
+
.tkdr__row--ends {
|
|
127
|
+
justify-content: space-between;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* group wrapper for caption + input */
|
|
131
|
+
.tkdr__group {
|
|
132
|
+
display: inline-flex;
|
|
133
|
+
align-items: center;
|
|
134
|
+
gap: 6px;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* small, subtle caption */
|
|
138
|
+
.tkdr__hint {
|
|
139
|
+
font-size: 0.85rem;
|
|
140
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Tooltip.css';
|
|
3
|
+
import { TooltipPlacement } from 'antd/lib/tooltip';
|
|
4
|
+
interface CmrTooltipProps {
|
|
5
|
+
arrowPointAtCenter?: boolean;
|
|
6
|
+
autoAdjustOverflow?: boolean;
|
|
7
|
+
color?: string;
|
|
8
|
+
defaultVisible?: boolean;
|
|
9
|
+
mouseEnterDelay?: number;
|
|
10
|
+
mouseLeaveDelay?: number;
|
|
11
|
+
overlayClassName?: string;
|
|
12
|
+
placement?: TooltipPlacement;
|
|
13
|
+
visible?: boolean;
|
|
14
|
+
title: React.ReactNode;
|
|
15
|
+
overlay?: React.ReactNode;
|
|
16
|
+
}
|
|
17
|
+
declare const CmrTooltip: (props: CmrTooltipProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export default CmrTooltip;
|
|
@@ -0,0 +1,30 @@
|
|
|
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 __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
+
import './Tooltip.css';
|
|
25
|
+
import { Tooltip } from 'antd';
|
|
26
|
+
var CmrTooltip = function (props) {
|
|
27
|
+
var arrowPointAtCenter = props.arrowPointAtCenter, autoAdjustOverflow = props.autoAdjustOverflow, color = props.color, defaultVisible = props.defaultVisible, mouseEnterDelay = props.mouseEnterDelay, mouseLeaveDelay = props.mouseLeaveDelay, overlayClassName = props.overlayClassName, placement = props.placement, visible = props.visible, rest = __rest(props, ["arrowPointAtCenter", "autoAdjustOverflow", "color", "defaultVisible", "mouseEnterDelay", "mouseLeaveDelay", "overlayClassName", "placement", "visible"]);
|
|
28
|
+
return (_jsx(Tooltip, __assign({ arrowPointAtCenter: arrowPointAtCenter, autoAdjustOverflow: autoAdjustOverflow, color: color, defaultVisible: defaultVisible, mouseEnterDelay: mouseEnterDelay, mouseLeaveDelay: mouseLeaveDelay, overlayClassName: overlayClassName, placement: placement, visible: visible }, rest)));
|
|
29
|
+
};
|
|
30
|
+
export default CmrTooltip;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Upload.css';
|
|
3
|
+
import { SxProps, Theme } from '@mui/material';
|
|
4
|
+
import { AxiosRequestConfig, AxiosResponse } from "axios";
|
|
5
|
+
export interface LambdaFile {
|
|
6
|
+
"filename": string;
|
|
7
|
+
"filetype": string;
|
|
8
|
+
"filesize": string;
|
|
9
|
+
"filemd5": string;
|
|
10
|
+
"file": File;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Consists of general settings for upload component
|
|
14
|
+
* functionalities and call back methods evoked
|
|
15
|
+
* for specific interactions
|
|
16
|
+
*/
|
|
17
|
+
interface CMRUploadProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
18
|
+
retains?: boolean;
|
|
19
|
+
maxCount: number;
|
|
20
|
+
changeNameAfterUpload?: boolean;
|
|
21
|
+
onRemove?: (removedFile: File) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Allows access to file content prior to uploading.
|
|
24
|
+
* If returned value from the method is false,
|
|
25
|
+
* prevents the file upload process. Called before
|
|
26
|
+
* create payload.
|
|
27
|
+
* @param file
|
|
28
|
+
*/
|
|
29
|
+
beforeUpload?: (file: File) => Promise<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* This or uploadHandler must be specified
|
|
32
|
+
* @param file
|
|
33
|
+
* @param fileAlias
|
|
34
|
+
* @param fileDatabase
|
|
35
|
+
*/
|
|
36
|
+
createPayload?: (file: File, fileAlias: string, fileDatabase: string) => (Promise<{
|
|
37
|
+
destination: string;
|
|
38
|
+
lambdaFile: LambdaFile;
|
|
39
|
+
file: File;
|
|
40
|
+
config: AxiosRequestConfig;
|
|
41
|
+
} | undefined>);
|
|
42
|
+
onUploadProgressUpdate?: (loaded: number, total: number) => void | undefined;
|
|
43
|
+
onUploaded: (res: AxiosResponse, file: File) => Promise<void> | void;
|
|
44
|
+
sx?: SxProps<Theme> | undefined;
|
|
45
|
+
rest?: any;
|
|
46
|
+
fileExtension?: string | string[];
|
|
47
|
+
uploadStarted?: () => void;
|
|
48
|
+
uploadEnded?: () => void;
|
|
49
|
+
uploadFailed?: () => void;
|
|
50
|
+
uploadProgressed?: (progress: number) => void;
|
|
51
|
+
/**
|
|
52
|
+
* Override this to replace the default behavior of uploading
|
|
53
|
+
* @param file
|
|
54
|
+
* @param fileAlias
|
|
55
|
+
* @param fileDatabase
|
|
56
|
+
* @param onProgress
|
|
57
|
+
* @param onUploaded
|
|
58
|
+
*/
|
|
59
|
+
uploadHandler?: (file: File, fileAlias: string, fileDatabase: string, onProgress?: (progress: number) => void, onUploaded?: (res: AxiosResponse, file: File) => void) => Promise<number>;
|
|
60
|
+
fullWidth?: boolean;
|
|
61
|
+
style?: any;
|
|
62
|
+
/**
|
|
63
|
+
* Displays upload button instead of uploaded file after upload
|
|
64
|
+
* if set to reusable
|
|
65
|
+
*/
|
|
66
|
+
reusable?: boolean;
|
|
67
|
+
uploadButtonName?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Processes the uploaded file before performing the upload;
|
|
70
|
+
* @return file/undefined/statuscode undefined to fail the upload, return File
|
|
71
|
+
* to pass the processed file, return number to indicate error code
|
|
72
|
+
* and return to upload window.
|
|
73
|
+
* @param file
|
|
74
|
+
*/
|
|
75
|
+
preprocess?: (file: File) => Promise<File | undefined | number>;
|
|
76
|
+
color?: "inherit" | "primary" | "secondary" | "success" | "error" | "info" | "warning";
|
|
77
|
+
}
|
|
78
|
+
declare const CmrUpload: ({ changeNameAfterUpload, ...props }: CMRUploadProps) => import("react/jsx-runtime").JSX.Element;
|
|
79
|
+
export type { CMRUploadProps };
|
|
80
|
+
export default CmrUpload;
|