@chayns-components/core 5.0.0-beta.932 → 5.0.0-beta.933
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.
|
@@ -9,7 +9,7 @@ const selectFiles = ({
|
|
|
9
9
|
type,
|
|
10
10
|
multiple,
|
|
11
11
|
maxFileSizeInMB
|
|
12
|
-
}) => new Promise(resolve => {
|
|
12
|
+
}) => new Promise((resolve, reject) => {
|
|
13
13
|
const input = document.createElement('input');
|
|
14
14
|
input.type = 'file';
|
|
15
15
|
input.style.visibility = 'none';
|
|
@@ -23,8 +23,13 @@ const selectFiles = ({
|
|
|
23
23
|
input.multiple = true;
|
|
24
24
|
}
|
|
25
25
|
document.body.appendChild(input);
|
|
26
|
-
|
|
26
|
+
const abortController = new AbortController();
|
|
27
|
+
const {
|
|
28
|
+
signal
|
|
29
|
+
} = abortController;
|
|
30
|
+
const onChange = event => {
|
|
27
31
|
document.body.removeChild(input);
|
|
32
|
+
abortController.abort();
|
|
28
33
|
if (!event.target) {
|
|
29
34
|
resolve([]);
|
|
30
35
|
return;
|
|
@@ -55,6 +60,17 @@ const selectFiles = ({
|
|
|
55
60
|
}).open();
|
|
56
61
|
}
|
|
57
62
|
resolve(filteredFileArray);
|
|
63
|
+
};
|
|
64
|
+
const onCancel = () => {
|
|
65
|
+
document.body.removeChild(input);
|
|
66
|
+
abortController.abort();
|
|
67
|
+
reject(new Error('File selection was cancelled.'));
|
|
68
|
+
};
|
|
69
|
+
input.addEventListener('change', onChange, {
|
|
70
|
+
signal
|
|
71
|
+
});
|
|
72
|
+
input.addEventListener('focusout', onCancel, {
|
|
73
|
+
signal
|
|
58
74
|
});
|
|
59
75
|
input.click();
|
|
60
76
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDialog.js","names":["_chaynsApi","require","selectFiles","type","multiple","maxFileSizeInMB","Promise","resolve","input","document","createElement","style","visibility","width","height","display","accept","body","appendChild","
|
|
1
|
+
{"version":3,"file":"fileDialog.js","names":["_chaynsApi","require","selectFiles","type","multiple","maxFileSizeInMB","Promise","resolve","reject","input","document","createElement","style","visibility","width","height","display","accept","body","appendChild","abortController","AbortController","signal","onChange","event","removeChild","abort","target","files","fileArray","Object","values","filteredFileArray","filter","file","sizeInMB","size","includes","length","createDialog","DialogType","ALERT","text","open","onCancel","Error","addEventListener","click","exports","getFileAsArrayBuffer","reader","FileReader","onload","e","_e$target","result","onerror","readAsArrayBuffer"],"sources":["../../../src/utils/fileDialog.ts"],"sourcesContent":["import { createDialog, DialogType } from 'chayns-api';\n\ninterface SelectFilesOptions {\n type?: string;\n multiple: boolean;\n maxFileSizeInMB?: number;\n}\n\nexport const selectFiles = ({\n type,\n multiple,\n maxFileSizeInMB,\n }: SelectFilesOptions): Promise<File[]> =>\n new Promise((resolve, reject) => {\n const input = document.createElement('input');\n\n input.type = 'file';\n input.style.visibility = 'none';\n input.style.width = '0';\n input.style.height = '0';\n input.style.display = 'none';\n\n if (type !== '*/*' && type) {\n input.accept = type;\n }\n\n if (multiple) {\n input.multiple = true;\n }\n\n document.body.appendChild(input);\n\n const abortController = new AbortController();\n const { signal } = abortController;\n\n const onChange = (event: Event) => {\n document.body.removeChild(input);\n abortController.abort();\n\n if (!event.target) {\n resolve([]);\n return;\n }\n\n const target = event.target as HTMLInputElement;\n const { files } = target;\n\n if (!files) {\n resolve([]);\n return;\n }\n\n const fileArray = Object.values(files);\n\n const filteredFileArray = fileArray.filter((file) => {\n const sizeInMB = file.size / 1024 / 1024;\n\n if (maxFileSizeInMB && maxFileSizeInMB < sizeInMB) {\n return false;\n }\n\n if (file.type.includes('video/') && sizeInMB > 500) {\n return false;\n }\n\n return !(file.type.includes('image/') && sizeInMB > 64);\n });\n\n if (fileArray.length !== filteredFileArray.length) {\n void createDialog({\n type: DialogType.ALERT,\n text: 'Einige Deiner ausgewählten Dateien sind zu groß.',\n }).open();\n }\n\n resolve(filteredFileArray);\n };\n\n const onCancel = () => {\n document.body.removeChild(input);\n abortController.abort();\n reject(new Error('File selection was cancelled.'));\n };\n\n input.addEventListener('change', onChange, { signal });\n input.addEventListener('focusout', onCancel, { signal });\n\n input.click();\n });\n\nexport const getFileAsArrayBuffer = (file: File): Promise<string | ArrayBuffer> =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = (e) => {\n if (e.target?.result) {\n resolve(e.target.result);\n } else {\n reject(Error('Could not get array buffer.'));\n }\n };\n\n reader.onerror = reject;\n\n reader.readAsArrayBuffer(file);\n });\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ export const selectFiles = _ref => {
|
|
|
5
5
|
multiple,
|
|
6
6
|
maxFileSizeInMB
|
|
7
7
|
} = _ref;
|
|
8
|
-
return new Promise(resolve => {
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
9
|
const input = document.createElement('input');
|
|
10
10
|
input.type = 'file';
|
|
11
11
|
input.style.visibility = 'none';
|
|
@@ -19,8 +19,13 @@ export const selectFiles = _ref => {
|
|
|
19
19
|
input.multiple = true;
|
|
20
20
|
}
|
|
21
21
|
document.body.appendChild(input);
|
|
22
|
-
|
|
22
|
+
const abortController = new AbortController();
|
|
23
|
+
const {
|
|
24
|
+
signal
|
|
25
|
+
} = abortController;
|
|
26
|
+
const onChange = event => {
|
|
23
27
|
document.body.removeChild(input);
|
|
28
|
+
abortController.abort();
|
|
24
29
|
if (!event.target) {
|
|
25
30
|
resolve([]);
|
|
26
31
|
return;
|
|
@@ -51,6 +56,17 @@ export const selectFiles = _ref => {
|
|
|
51
56
|
}).open();
|
|
52
57
|
}
|
|
53
58
|
resolve(filteredFileArray);
|
|
59
|
+
};
|
|
60
|
+
const onCancel = () => {
|
|
61
|
+
document.body.removeChild(input);
|
|
62
|
+
abortController.abort();
|
|
63
|
+
reject(new Error('File selection was cancelled.'));
|
|
64
|
+
};
|
|
65
|
+
input.addEventListener('change', onChange, {
|
|
66
|
+
signal
|
|
67
|
+
});
|
|
68
|
+
input.addEventListener('focusout', onCancel, {
|
|
69
|
+
signal
|
|
54
70
|
});
|
|
55
71
|
input.click();
|
|
56
72
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDialog.js","names":["createDialog","DialogType","selectFiles","_ref","type","multiple","maxFileSizeInMB","Promise","resolve","input","document","createElement","style","visibility","width","height","display","accept","body","appendChild","
|
|
1
|
+
{"version":3,"file":"fileDialog.js","names":["createDialog","DialogType","selectFiles","_ref","type","multiple","maxFileSizeInMB","Promise","resolve","reject","input","document","createElement","style","visibility","width","height","display","accept","body","appendChild","abortController","AbortController","signal","onChange","event","removeChild","abort","target","files","fileArray","Object","values","filteredFileArray","filter","file","sizeInMB","size","includes","length","ALERT","text","open","onCancel","Error","addEventListener","click","getFileAsArrayBuffer","reader","FileReader","onload","e","result","onerror","readAsArrayBuffer"],"sources":["../../../src/utils/fileDialog.ts"],"sourcesContent":["import { createDialog, DialogType } from 'chayns-api';\n\ninterface SelectFilesOptions {\n type?: string;\n multiple: boolean;\n maxFileSizeInMB?: number;\n}\n\nexport const selectFiles = ({\n type,\n multiple,\n maxFileSizeInMB,\n }: SelectFilesOptions): Promise<File[]> =>\n new Promise((resolve, reject) => {\n const input = document.createElement('input');\n\n input.type = 'file';\n input.style.visibility = 'none';\n input.style.width = '0';\n input.style.height = '0';\n input.style.display = 'none';\n\n if (type !== '*/*' && type) {\n input.accept = type;\n }\n\n if (multiple) {\n input.multiple = true;\n }\n\n document.body.appendChild(input);\n\n const abortController = new AbortController();\n const { signal } = abortController;\n\n const onChange = (event: Event) => {\n document.body.removeChild(input);\n abortController.abort();\n\n if (!event.target) {\n resolve([]);\n return;\n }\n\n const target = event.target as HTMLInputElement;\n const { files } = target;\n\n if (!files) {\n resolve([]);\n return;\n }\n\n const fileArray = Object.values(files);\n\n const filteredFileArray = fileArray.filter((file) => {\n const sizeInMB = file.size / 1024 / 1024;\n\n if (maxFileSizeInMB && maxFileSizeInMB < sizeInMB) {\n return false;\n }\n\n if (file.type.includes('video/') && sizeInMB > 500) {\n return false;\n }\n\n return !(file.type.includes('image/') && sizeInMB > 64);\n });\n\n if (fileArray.length !== filteredFileArray.length) {\n void createDialog({\n type: DialogType.ALERT,\n text: 'Einige Deiner ausgewählten Dateien sind zu groß.',\n }).open();\n }\n\n resolve(filteredFileArray);\n };\n\n const onCancel = () => {\n document.body.removeChild(input);\n abortController.abort();\n reject(new Error('File selection was cancelled.'));\n };\n\n input.addEventListener('change', onChange, { signal });\n input.addEventListener('focusout', onCancel, { signal });\n\n input.click();\n });\n\nexport const getFileAsArrayBuffer = (file: File): Promise<string | ArrayBuffer> =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = (e) => {\n if (e.target?.result) {\n resolve(e.target.result);\n } else {\n reject(Error('Could not get array buffer.'));\n }\n };\n\n reader.onerror = reject;\n\n reader.readAsArrayBuffer(file);\n });\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chayns-components/core",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.933",
|
|
4
4
|
"description": "A set of beautiful React components for developing your own applications with chayns.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"browserslist": [
|
|
@@ -87,5 +87,5 @@
|
|
|
87
87
|
"publishConfig": {
|
|
88
88
|
"access": "public"
|
|
89
89
|
},
|
|
90
|
-
"gitHead": "
|
|
90
|
+
"gitHead": "9b04996902b926f6ad8f62d08286a40144142eb8"
|
|
91
91
|
}
|