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.
Files changed (62) hide show
  1. package/README.md +19 -7
  2. package/dist/index.css +14 -13
  3. package/dist/index.d.ts +19 -0
  4. package/dist/index.js +50 -146
  5. package/dist/index.mjs +30 -0
  6. package/package.json +22 -88
  7. package/dist/index.js.map +0 -1
  8. package/dist/index.modern.js +0 -147
  9. package/dist/index.modern.js.map +0 -1
  10. package/src/.eslintrc +0 -5
  11. package/src/common/components/Cmr-components/avatar/Avatar.scss +0 -0
  12. package/src/common/components/Cmr-components/avatar/Avatar.tsx +0 -25
  13. package/src/common/components/Cmr-components/button/Button.scss +0 -0
  14. package/src/common/components/Cmr-components/button/Button.tsx +0 -14
  15. package/src/common/components/Cmr-components/checkbox/Checkbox.scss +0 -11
  16. package/src/common/components/Cmr-components/checkbox/Checkbox.tsx +0 -29
  17. package/src/common/components/Cmr-components/collapse/Collapse.scss +0 -3
  18. package/src/common/components/Cmr-components/collapse/Collapse.tsx +0 -75
  19. package/src/common/components/Cmr-components/dialogue/Confirmation.tsx +0 -48
  20. package/src/common/components/Cmr-components/dialogue/DeletionDialog.tsx +0 -61
  21. package/src/common/components/Cmr-components/dialogue/EditConfirmation.tsx +0 -72
  22. package/src/common/components/Cmr-components/double-slider/DualSlider.tsx +0 -198
  23. package/src/common/components/Cmr-components/double-slider/InvertibleDualSlider.tsx +0 -224
  24. package/src/common/components/Cmr-components/dropdown/Dropdown.scss +0 -36
  25. package/src/common/components/Cmr-components/dropdown/Dropdown.tsx +0 -83
  26. package/src/common/components/Cmr-components/gui-slider/ControlledSlider.tsx +0 -139
  27. package/src/common/components/Cmr-components/gui-slider/Slider.tsx +0 -170
  28. package/src/common/components/Cmr-components/header/Header.scss +0 -20
  29. package/src/common/components/Cmr-components/header/Header.tsx +0 -101
  30. package/src/common/components/Cmr-components/input/Input.scss +0 -0
  31. package/src/common/components/Cmr-components/input/Input.tsx +0 -39
  32. package/src/common/components/Cmr-components/input-number/InputNumber.scss +0 -0
  33. package/src/common/components/Cmr-components/input-number/InputNumber.tsx +0 -29
  34. package/src/common/components/Cmr-components/label/Label.scss +0 -13
  35. package/src/common/components/Cmr-components/label/Label.tsx +0 -20
  36. package/src/common/components/Cmr-components/option/Option.scss +0 -0
  37. package/src/common/components/Cmr-components/option/Option.tsx +0 -24
  38. package/src/common/components/Cmr-components/panel/Panel.scss +0 -0
  39. package/src/common/components/Cmr-components/panel/Panel.tsx +0 -54
  40. package/src/common/components/Cmr-components/progress/Progress.scss +0 -0
  41. package/src/common/components/Cmr-components/progress/Progress.tsx +0 -38
  42. package/src/common/components/Cmr-components/radio/Radio.scss +0 -0
  43. package/src/common/components/Cmr-components/radio/Radio.tsx +0 -23
  44. package/src/common/components/Cmr-components/radio-group/RadioGroup.scss +0 -0
  45. package/src/common/components/Cmr-components/radio-group/RadioGroup.tsx +0 -32
  46. package/src/common/components/Cmr-components/rename/edit.tsx +0 -94
  47. package/src/common/components/Cmr-components/select/Select.scss +0 -3
  48. package/src/common/components/Cmr-components/select/Select.tsx +0 -33
  49. package/src/common/components/Cmr-components/select-upload/SelectUpload.scss +0 -0
  50. package/src/common/components/Cmr-components/select-upload/SelectUpload.tsx +0 -133
  51. package/src/common/components/Cmr-components/slider/Slider.scss +0 -0
  52. package/src/common/components/Cmr-components/slider/Slider.tsx +0 -66
  53. package/src/common/components/Cmr-components/spin/Spin.scss +0 -0
  54. package/src/common/components/Cmr-components/spin/Spin.tsx +0 -31
  55. package/src/common/components/Cmr-components/tooltip/Tooltip.scss +0 -0
  56. package/src/common/components/Cmr-components/tooltip/Tooltip.tsx +0 -50
  57. package/src/common/components/Cmr-components/upload/Upload.scss +0 -5
  58. package/src/common/components/Cmr-components/upload/Upload.tsx +0 -188
  59. package/src/common/components/Cmr-components/upload/UploadWindow.tsx +0 -355
  60. package/src/index.js +0 -8
  61. package/src/index.test.js +0 -7
  62. 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;
@@ -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;
@@ -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,5 +0,0 @@
1
- .btn-info {
2
- color: #ffffff; /* Change it to your preferred color */
3
- --bs-btn-hover-color: #ffffff;
4
- --bs-btn-color: #ffffff;
5
- }
@@ -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;