cloudmr-ux 0.0.3 → 0.1.0
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 +19 -7
- package/dist/index.css +14 -13
- package/dist/index.d.ts +19 -0
- package/dist/index.js +50 -146
- package/dist/index.mjs +30 -0
- package/package.json +22 -88
- package/dist/index.js.map +0 -1
- package/dist/index.modern.js +0 -147
- package/dist/index.modern.js.map +0 -1
- package/src/.eslintrc +0 -5
- package/src/common/components/Cmr-components/avatar/Avatar.scss +0 -0
- package/src/common/components/Cmr-components/avatar/Avatar.tsx +0 -25
- package/src/common/components/Cmr-components/button/Button.scss +0 -0
- package/src/common/components/Cmr-components/button/Button.tsx +0 -14
- package/src/common/components/Cmr-components/checkbox/Checkbox.scss +0 -11
- package/src/common/components/Cmr-components/checkbox/Checkbox.tsx +0 -29
- package/src/common/components/Cmr-components/collapse/Collapse.scss +0 -3
- package/src/common/components/Cmr-components/collapse/Collapse.tsx +0 -75
- package/src/common/components/Cmr-components/dialogue/Confirmation.tsx +0 -48
- package/src/common/components/Cmr-components/dialogue/DeletionDialog.tsx +0 -61
- package/src/common/components/Cmr-components/dialogue/EditConfirmation.tsx +0 -72
- package/src/common/components/Cmr-components/double-slider/DualSlider.tsx +0 -198
- package/src/common/components/Cmr-components/double-slider/InvertibleDualSlider.tsx +0 -224
- package/src/common/components/Cmr-components/dropdown/Dropdown.scss +0 -36
- package/src/common/components/Cmr-components/dropdown/Dropdown.tsx +0 -83
- package/src/common/components/Cmr-components/gui-slider/ControlledSlider.tsx +0 -139
- package/src/common/components/Cmr-components/gui-slider/Slider.tsx +0 -170
- package/src/common/components/Cmr-components/header/Header.scss +0 -20
- package/src/common/components/Cmr-components/header/Header.tsx +0 -101
- package/src/common/components/Cmr-components/input/Input.scss +0 -0
- package/src/common/components/Cmr-components/input/Input.tsx +0 -39
- package/src/common/components/Cmr-components/input-number/InputNumber.scss +0 -0
- package/src/common/components/Cmr-components/input-number/InputNumber.tsx +0 -29
- package/src/common/components/Cmr-components/label/Label.scss +0 -13
- package/src/common/components/Cmr-components/label/Label.tsx +0 -20
- package/src/common/components/Cmr-components/option/Option.scss +0 -0
- package/src/common/components/Cmr-components/option/Option.tsx +0 -24
- package/src/common/components/Cmr-components/panel/Panel.scss +0 -0
- package/src/common/components/Cmr-components/panel/Panel.tsx +0 -54
- package/src/common/components/Cmr-components/progress/Progress.scss +0 -0
- package/src/common/components/Cmr-components/progress/Progress.tsx +0 -38
- package/src/common/components/Cmr-components/radio/Radio.scss +0 -0
- package/src/common/components/Cmr-components/radio/Radio.tsx +0 -23
- package/src/common/components/Cmr-components/radio-group/RadioGroup.scss +0 -0
- package/src/common/components/Cmr-components/radio-group/RadioGroup.tsx +0 -32
- package/src/common/components/Cmr-components/rename/edit.tsx +0 -94
- package/src/common/components/Cmr-components/select/Select.scss +0 -3
- package/src/common/components/Cmr-components/select/Select.tsx +0 -33
- package/src/common/components/Cmr-components/select-upload/SelectUpload.scss +0 -0
- package/src/common/components/Cmr-components/select-upload/SelectUpload.tsx +0 -133
- package/src/common/components/Cmr-components/slider/Slider.scss +0 -0
- package/src/common/components/Cmr-components/slider/Slider.tsx +0 -66
- package/src/common/components/Cmr-components/spin/Spin.scss +0 -0
- package/src/common/components/Cmr-components/spin/Spin.tsx +0 -31
- package/src/common/components/Cmr-components/tooltip/Tooltip.scss +0 -0
- package/src/common/components/Cmr-components/tooltip/Tooltip.tsx +0 -50
- package/src/common/components/Cmr-components/upload/Upload.scss +0 -5
- package/src/common/components/Cmr-components/upload/Upload.tsx +0 -188
- package/src/common/components/Cmr-components/upload/UploadWindow.tsx +0 -355
- package/src/index.js +0 -8
- package/src/index.test.js +0 -7
- package/src/styles.module.css +0 -9
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import './Slider.scss';
|
|
3
|
-
import { Slider } from 'antd';
|
|
4
|
-
import { SliderMarks } from 'antd/lib/slider';
|
|
5
|
-
|
|
6
|
-
interface CmrSliderProps {
|
|
7
|
-
reverse?: boolean;
|
|
8
|
-
defaultValue?: number;
|
|
9
|
-
disabled?: boolean;
|
|
10
|
-
dots?: boolean;
|
|
11
|
-
included?: boolean;
|
|
12
|
-
max?: number;
|
|
13
|
-
min?: number;
|
|
14
|
-
range?: false;
|
|
15
|
-
step?: null | number;
|
|
16
|
-
marks?: SliderMarks;
|
|
17
|
-
vertical?: boolean;
|
|
18
|
-
tipFormatter?: null | ((value?: number) => React.ReactNode);
|
|
19
|
-
value?: number;
|
|
20
|
-
onChange?: (value: number) => void;
|
|
21
|
-
onAfterChange?: (value: number) => void;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const CmrSlider = (props: CmrSliderProps) => {
|
|
25
|
-
const {
|
|
26
|
-
reverse,
|
|
27
|
-
defaultValue,
|
|
28
|
-
disabled,
|
|
29
|
-
dots,
|
|
30
|
-
included,
|
|
31
|
-
max,
|
|
32
|
-
min,
|
|
33
|
-
range,
|
|
34
|
-
step,
|
|
35
|
-
marks,
|
|
36
|
-
vertical,
|
|
37
|
-
tipFormatter,
|
|
38
|
-
value,
|
|
39
|
-
onChange,
|
|
40
|
-
onAfterChange,
|
|
41
|
-
...rest
|
|
42
|
-
} = props;
|
|
43
|
-
|
|
44
|
-
return (
|
|
45
|
-
<Slider
|
|
46
|
-
reverse={reverse}
|
|
47
|
-
defaultValue={defaultValue}
|
|
48
|
-
disabled={disabled}
|
|
49
|
-
dots={dots}
|
|
50
|
-
included={included}
|
|
51
|
-
max={max}
|
|
52
|
-
min={min}
|
|
53
|
-
range={range}
|
|
54
|
-
step={step}
|
|
55
|
-
marks={marks}
|
|
56
|
-
vertical={vertical}
|
|
57
|
-
tipFormatter={tipFormatter}
|
|
58
|
-
value={value}
|
|
59
|
-
onChange={onChange}
|
|
60
|
-
onAfterChange={onAfterChange}
|
|
61
|
-
{...rest}
|
|
62
|
-
/>
|
|
63
|
-
);
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
export default CmrSlider;
|
|
File without changes
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import './Spin.scss';
|
|
3
|
-
import { Spin } from 'antd';
|
|
4
|
-
import { SpinIndicator, SpinSize } from 'antd/lib/spin';
|
|
5
|
-
|
|
6
|
-
interface CmrSpinProps {
|
|
7
|
-
delay?: number;
|
|
8
|
-
indicator?: SpinIndicator;
|
|
9
|
-
size?: SpinSize;
|
|
10
|
-
spinning?: boolean;
|
|
11
|
-
tip?: string;
|
|
12
|
-
wrapperClassName?: string;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const CmrSpin = (props: CmrSpinProps) => {
|
|
16
|
-
const { delay, indicator, size, spinning, tip, wrapperClassName, ...rest } = props;
|
|
17
|
-
|
|
18
|
-
return (
|
|
19
|
-
<Spin
|
|
20
|
-
delay={delay}
|
|
21
|
-
indicator={indicator}
|
|
22
|
-
size={size}
|
|
23
|
-
spinning={spinning}
|
|
24
|
-
tip={tip}
|
|
25
|
-
wrapperClassName={wrapperClassName}
|
|
26
|
-
{...rest}
|
|
27
|
-
/>
|
|
28
|
-
);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export default CmrSpin;
|
|
File without changes
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import './Tooltip.scss';
|
|
3
|
-
import { Tooltip } from 'antd';
|
|
4
|
-
import { TooltipPlacement } from 'antd/lib/tooltip';
|
|
5
|
-
|
|
6
|
-
interface CmrTooltipProps {
|
|
7
|
-
arrowPointAtCenter?: boolean;
|
|
8
|
-
autoAdjustOverflow?: boolean;
|
|
9
|
-
color?: string;
|
|
10
|
-
defaultVisible?: boolean;
|
|
11
|
-
mouseEnterDelay?: number;
|
|
12
|
-
mouseLeaveDelay?: number;
|
|
13
|
-
overlayClassName?: string;
|
|
14
|
-
placement?: TooltipPlacement;
|
|
15
|
-
visible?: boolean;
|
|
16
|
-
title: React.ReactNode;
|
|
17
|
-
overlay?: React.ReactNode;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const CmrTooltip = (props: CmrTooltipProps) => {
|
|
21
|
-
const {
|
|
22
|
-
arrowPointAtCenter,
|
|
23
|
-
autoAdjustOverflow,
|
|
24
|
-
color,
|
|
25
|
-
defaultVisible,
|
|
26
|
-
mouseEnterDelay,
|
|
27
|
-
mouseLeaveDelay,
|
|
28
|
-
overlayClassName,
|
|
29
|
-
placement,
|
|
30
|
-
visible,
|
|
31
|
-
...rest
|
|
32
|
-
} = props;
|
|
33
|
-
|
|
34
|
-
return (
|
|
35
|
-
<Tooltip
|
|
36
|
-
arrowPointAtCenter={arrowPointAtCenter}
|
|
37
|
-
autoAdjustOverflow={autoAdjustOverflow}
|
|
38
|
-
color={color}
|
|
39
|
-
defaultVisible={defaultVisible}
|
|
40
|
-
mouseEnterDelay={mouseEnterDelay}
|
|
41
|
-
mouseLeaveDelay={mouseLeaveDelay}
|
|
42
|
-
overlayClassName={overlayClassName}
|
|
43
|
-
placement={placement}
|
|
44
|
-
visible={visible}
|
|
45
|
-
{...rest}
|
|
46
|
-
/>
|
|
47
|
-
);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export default CmrTooltip;
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import React, {useState} from 'react';
|
|
2
|
-
import './Upload.scss';
|
|
3
|
-
import {Box, Button, SxProps, Theme} from '@mui/material';
|
|
4
|
-
import UploadWindow from "./UploadWindow";
|
|
5
|
-
import axios, {AxiosRequestConfig, AxiosResponse} from "axios";
|
|
6
|
-
|
|
7
|
-
export interface LambdaFile {
|
|
8
|
-
"filename": string;
|
|
9
|
-
"filetype": string;
|
|
10
|
-
"filesize": string;
|
|
11
|
-
"filemd5": string;
|
|
12
|
-
"file": File;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Consists of general settings for upload component
|
|
16
|
-
* functionalities and call back methods evoked
|
|
17
|
-
* for specific interactions
|
|
18
|
-
*/
|
|
19
|
-
interface CMRUploadProps extends React.HTMLAttributes<HTMLDivElement>{
|
|
20
|
-
//Determines if the upload buttons should retain the uploaded
|
|
21
|
-
//file after upload, or if it should refresh for a new session
|
|
22
|
-
retains?:boolean;
|
|
23
|
-
maxCount: number;
|
|
24
|
-
onRemove?:(removedFile: File)=>void;
|
|
25
|
-
/**
|
|
26
|
-
* Allows access to file content prior to uploading.
|
|
27
|
-
* If returned value from the method is false,
|
|
28
|
-
* prevents the file upload process. Called before
|
|
29
|
-
* create payload.
|
|
30
|
-
* @param file
|
|
31
|
-
*/
|
|
32
|
-
beforeUpload?: (file:File)=>Promise<boolean>;
|
|
33
|
-
/**
|
|
34
|
-
* This or uploadHandler must be specified
|
|
35
|
-
* @param file
|
|
36
|
-
* @param fileAlias
|
|
37
|
-
* @param fileDatabase
|
|
38
|
-
*/
|
|
39
|
-
createPayload?: (file: File,fileAlias:string, fileDatabase: string)=>
|
|
40
|
-
(Promise<{destination: string, lambdaFile:LambdaFile, file:File, config: AxiosRequestConfig}|undefined>);
|
|
41
|
-
onUploadProgressUpdate?:(loaded: number, total: number)=>void|undefined;
|
|
42
|
-
onUploaded: (res: AxiosResponse, file: File)=>Promise<void>|void;
|
|
43
|
-
sx?: SxProps<Theme>|undefined;
|
|
44
|
-
rest?: any;
|
|
45
|
-
fileExtension?: string;
|
|
46
|
-
uploadStarted?:()=>void;
|
|
47
|
-
uploadEnded?:()=>void;
|
|
48
|
-
uploadFailed?:()=>void;
|
|
49
|
-
uploadProgressed?:(progress:number)=>void;
|
|
50
|
-
/**
|
|
51
|
-
* Override this to replace the default behavior of uploading
|
|
52
|
-
* @param file
|
|
53
|
-
* @param fileAlias
|
|
54
|
-
* @param fileDatabase
|
|
55
|
-
* @param onProgress
|
|
56
|
-
* @param onUploaded
|
|
57
|
-
*/
|
|
58
|
-
uploadHandler?:(file:File, fileAlias:string, fileDatabase:string,
|
|
59
|
-
onProgress?:(progress:number)=>void,
|
|
60
|
-
onUploaded?:(res:AxiosResponse,file:File)=>void)=>Promise<number>;
|
|
61
|
-
fullWidth?: boolean;
|
|
62
|
-
style?: any;
|
|
63
|
-
/**
|
|
64
|
-
* Displays upload button instead of uploaded file after upload
|
|
65
|
-
* if set to reusable
|
|
66
|
-
*/
|
|
67
|
-
reusable?: boolean;
|
|
68
|
-
uploadButtonName?:string;
|
|
69
|
-
/**
|
|
70
|
-
* Processes the uploaded file before performing the upload;
|
|
71
|
-
* @return file/undefined/statuscode undefined to fail the upload, return File
|
|
72
|
-
* to pass the processed file, return number to indicate error code
|
|
73
|
-
* and return to upload window.
|
|
74
|
-
* @param file
|
|
75
|
-
*/
|
|
76
|
-
preprocess?:(file:File)=>Promise<File|undefined|number>;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const CmrUpload = (props: CMRUploadProps) => {
|
|
81
|
-
|
|
82
|
-
let [open, setOpen] = useState(false);
|
|
83
|
-
/**
|
|
84
|
-
* Life cycle representing the current status of the upload
|
|
85
|
-
* process.
|
|
86
|
-
*/
|
|
87
|
-
let [uploading, setUploading] = useState(false);
|
|
88
|
-
let [progress, setProgress] = useState(0);
|
|
89
|
-
let [uploadedFile, setUploadedFile] = useState<string|undefined>(undefined);
|
|
90
|
-
|
|
91
|
-
const upload = async (file: File, fileAlias:string, fileDatabase: string)=>{
|
|
92
|
-
setUploading(true);
|
|
93
|
-
const onProgress = (progress:number)=>{
|
|
94
|
-
let percentage = (progress* 99);
|
|
95
|
-
props.uploadProgressed&&props.uploadProgressed(+percentage.toFixed(2));
|
|
96
|
-
setProgress(+percentage.toFixed(2));
|
|
97
|
-
}
|
|
98
|
-
if(props.uploadStarted)
|
|
99
|
-
props.uploadStarted();
|
|
100
|
-
let status:any = 0;
|
|
101
|
-
// try {
|
|
102
|
-
if(props.beforeUpload!=undefined&&!await props.beforeUpload(file)){
|
|
103
|
-
if(props.uploadEnded)
|
|
104
|
-
props.uploadEnded();
|
|
105
|
-
setUploading(false);
|
|
106
|
-
return 200;
|
|
107
|
-
}
|
|
108
|
-
if(props.preprocess){
|
|
109
|
-
let processed = await props.preprocess(file);
|
|
110
|
-
if(processed==undefined)
|
|
111
|
-
return failUpload();
|
|
112
|
-
if(typeof processed =='number'){
|
|
113
|
-
setUploading(false);
|
|
114
|
-
return processed;
|
|
115
|
-
}
|
|
116
|
-
file = processed as File;
|
|
117
|
-
}
|
|
118
|
-
if(props.uploadHandler!=undefined){
|
|
119
|
-
status = await props.uploadHandler(file,fileAlias,fileDatabase,onProgress,props.onUploaded);
|
|
120
|
-
setUploadedFile(props.reusable?undefined:file.name);
|
|
121
|
-
}else if(props.createPayload){
|
|
122
|
-
let payload = await props.createPayload(file, fileAlias, fileDatabase);
|
|
123
|
-
if(payload==undefined){
|
|
124
|
-
return failUpload();
|
|
125
|
-
}
|
|
126
|
-
payload.config.onUploadProgress = (progressEvent) => {
|
|
127
|
-
if(progressEvent.total==undefined)
|
|
128
|
-
return;
|
|
129
|
-
onProgress(progressEvent.loaded/progressEvent.total);
|
|
130
|
-
};
|
|
131
|
-
// console.log(payload.formData)
|
|
132
|
-
const res = await axios.post(payload.destination, payload.lambdaFile, payload.config);
|
|
133
|
-
status = res.status;
|
|
134
|
-
if(status===200){
|
|
135
|
-
// file.name = res.data.response.
|
|
136
|
-
// await axios.post(res.data.upload_url, file)
|
|
137
|
-
console.log(res.data);
|
|
138
|
-
await axios.put(res.data.upload_url, payload.file, {
|
|
139
|
-
headers: {
|
|
140
|
-
'Content-Type': payload.file.type
|
|
141
|
-
}
|
|
142
|
-
})
|
|
143
|
-
await props.onUploaded(res,payload.file);
|
|
144
|
-
setUploadedFile(props.reusable?undefined:payload.file.name);
|
|
145
|
-
}
|
|
146
|
-
}else{
|
|
147
|
-
return failUpload();
|
|
148
|
-
}
|
|
149
|
-
if(props.uploadEnded)
|
|
150
|
-
props.uploadEnded();
|
|
151
|
-
setUploading(false);
|
|
152
|
-
setProgress(0);
|
|
153
|
-
// }
|
|
154
|
-
return status;
|
|
155
|
-
};
|
|
156
|
-
|
|
157
|
-
function failUpload(){
|
|
158
|
-
setUploading(false);
|
|
159
|
-
setProgress(0);
|
|
160
|
-
if(props.uploadFailed)
|
|
161
|
-
return props.uploadFailed();
|
|
162
|
-
return 0;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
return (
|
|
166
|
-
<React.Fragment>
|
|
167
|
-
{(!uploading)?
|
|
168
|
-
|
|
169
|
-
<Button fullWidth={props.fullWidth} style={props.style} variant={(uploadedFile==undefined)?"contained":"outlined"}
|
|
170
|
-
onClick={()=>{
|
|
171
|
-
setOpen(true);
|
|
172
|
-
}}
|
|
173
|
-
sx={props.sx}
|
|
174
|
-
>
|
|
175
|
-
{(uploadedFile==undefined)?(props.uploadButtonName?props.uploadButtonName:"Upload"):uploadedFile}
|
|
176
|
-
</Button>
|
|
177
|
-
:
|
|
178
|
-
<Button fullWidth={props.fullWidth} style={props.style} variant={"contained"} sx={{overflowWrap:'inherit'}} color={'primary'} disabled>
|
|
179
|
-
Uploading {progress}%
|
|
180
|
-
</Button>}
|
|
181
|
-
<UploadWindow open={open} setOpen={setOpen} upload={upload} fileExtension={props.fileExtension}
|
|
182
|
-
template={{showFileName:true,showFileSize:true}}/>
|
|
183
|
-
</React.Fragment>
|
|
184
|
-
);
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
export type {CMRUploadProps};
|
|
188
|
-
export default CmrUpload;
|