@veeqo/ui 12.5.0 → 13.0.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 (137) hide show
  1. package/dist/components/Alerts/Alert/Alert.cjs +2 -2
  2. package/dist/components/Alerts/Alert/Alert.cjs.map +1 -1
  3. package/dist/components/Alerts/Alert/Alert.js +2 -2
  4. package/dist/components/Alerts/Alert/Alert.js.map +1 -1
  5. package/dist/components/Flex/FlexCol/FlexCol.d.ts +3 -3
  6. package/dist/components/Flex/FlexRow/FlexRow.d.ts +3 -3
  7. package/dist/components/Flex/types.d.ts +13 -4
  8. package/dist/components/Pagination/styled.d.ts +3 -3
  9. package/dist/components/UploadFile/UploadFile.cjs +64 -83
  10. package/dist/components/UploadFile/UploadFile.cjs.map +1 -1
  11. package/dist/components/UploadFile/UploadFile.js +67 -86
  12. package/dist/components/UploadFile/UploadFile.js.map +1 -1
  13. package/dist/components/UploadFile/components/DropCopy/DropCopy.cjs +28 -0
  14. package/dist/components/UploadFile/components/DropCopy/DropCopy.cjs.map +1 -0
  15. package/dist/components/UploadFile/components/DropCopy/DropCopy.d.ts +2 -0
  16. package/dist/components/UploadFile/components/DropCopy/DropCopy.js +22 -0
  17. package/dist/components/UploadFile/components/DropCopy/DropCopy.js.map +1 -0
  18. package/dist/components/UploadFile/components/UploadCopy/UploadCopy.cjs +6 -6
  19. package/dist/components/UploadFile/components/UploadCopy/UploadCopy.cjs.map +1 -1
  20. package/dist/components/UploadFile/components/UploadCopy/UploadCopy.js +6 -6
  21. package/dist/components/UploadFile/components/UploadCopy/UploadCopy.js.map +1 -1
  22. package/dist/components/UploadFile/constants.cjs +71 -8
  23. package/dist/components/UploadFile/constants.cjs.map +1 -1
  24. package/dist/components/UploadFile/constants.d.ts +57 -5
  25. package/dist/components/UploadFile/constants.js +69 -9
  26. package/dist/components/UploadFile/constants.js.map +1 -1
  27. package/dist/components/UploadFile/hooks/useUploadFile/index.d.ts +1 -0
  28. package/dist/components/UploadFile/hooks/useUploadFile/useUploadFile.cjs +65 -0
  29. package/dist/components/UploadFile/hooks/useUploadFile/useUploadFile.cjs.map +1 -0
  30. package/dist/components/UploadFile/hooks/useUploadFile/useUploadFile.d.ts +9 -0
  31. package/dist/components/UploadFile/hooks/useUploadFile/useUploadFile.js +63 -0
  32. package/dist/components/UploadFile/hooks/useUploadFile/useUploadFile.js.map +1 -0
  33. package/dist/components/UploadFile/hooks/useValidateInput/index.d.ts +1 -0
  34. package/dist/components/UploadFile/hooks/useValidateInput/useValidateInput.cjs +48 -0
  35. package/dist/components/UploadFile/hooks/useValidateInput/useValidateInput.cjs.map +1 -0
  36. package/dist/components/UploadFile/hooks/useValidateInput/useValidateInput.d.ts +11 -0
  37. package/dist/components/UploadFile/hooks/useValidateInput/useValidateInput.js +46 -0
  38. package/dist/components/UploadFile/hooks/useValidateInput/useValidateInput.js.map +1 -0
  39. package/dist/components/UploadFile/index.d.ts +0 -1
  40. package/dist/components/UploadFile/mocks/files.d.ts +2 -0
  41. package/dist/components/UploadFile/mocks/mockUseUploadFile.d.ts +14 -0
  42. package/dist/components/UploadFile/mocks/utils.d.ts +1 -2
  43. package/dist/components/UploadFile/styled.cjs +40 -1
  44. package/dist/components/UploadFile/styled.cjs.map +1 -1
  45. package/dist/components/UploadFile/styled.d.ts +4 -1
  46. package/dist/components/UploadFile/styled.js +40 -1
  47. package/dist/components/UploadFile/styled.js.map +1 -1
  48. package/dist/components/UploadFile/types.d.ts +15 -1
  49. package/dist/components/UploadFile/utils/getErrorMessage/getErrorMessage.cjs +27 -0
  50. package/dist/components/UploadFile/utils/getErrorMessage/getErrorMessage.cjs.map +1 -0
  51. package/dist/components/UploadFile/utils/getErrorMessage/getErrorMessage.d.ts +8 -0
  52. package/dist/components/UploadFile/utils/getErrorMessage/getErrorMessage.js +25 -0
  53. package/dist/components/UploadFile/utils/getErrorMessage/getErrorMessage.js.map +1 -0
  54. package/dist/components/UploadFile/utils/getErrorMessage/index.d.ts +1 -0
  55. package/dist/components/UploadFile/utils/getFileSizeString/getFileSizeString.cjs +14 -11
  56. package/dist/components/UploadFile/utils/getFileSizeString/getFileSizeString.cjs.map +1 -1
  57. package/dist/components/UploadFile/utils/getFileSizeString/getFileSizeString.d.ts +10 -7
  58. package/dist/components/UploadFile/utils/getFileSizeString/getFileSizeString.js +14 -11
  59. package/dist/components/UploadFile/utils/getFileSizeString/getFileSizeString.js.map +1 -1
  60. package/dist/components/UploadFile/utils/getValidTypesString/getValidTypesString.cjs +16 -30
  61. package/dist/components/UploadFile/utils/getValidTypesString/getValidTypesString.cjs.map +1 -1
  62. package/dist/components/UploadFile/utils/getValidTypesString/getValidTypesString.js +16 -30
  63. package/dist/components/UploadFile/utils/getValidTypesString/getValidTypesString.js.map +1 -1
  64. package/dist/components/UploadFile/utils/index.d.ts +0 -1
  65. package/dist/components/UploadedFile/UploadedFile.cjs +78 -0
  66. package/dist/components/UploadedFile/UploadedFile.cjs.map +1 -0
  67. package/dist/components/UploadedFile/UploadedFile.d.ts +12 -0
  68. package/dist/components/UploadedFile/UploadedFile.js +72 -0
  69. package/dist/components/UploadedFile/UploadedFile.js.map +1 -0
  70. package/dist/components/UploadedFile/UploadedFile.module.scss.cjs +9 -0
  71. package/dist/components/UploadedFile/UploadedFile.module.scss.cjs.map +1 -0
  72. package/dist/components/UploadedFile/UploadedFile.module.scss.js +7 -0
  73. package/dist/components/UploadedFile/UploadedFile.module.scss.js.map +1 -0
  74. package/dist/components/UploadedFile/hooks/useFileErrorMessages/index.d.ts +1 -0
  75. package/dist/components/UploadedFile/hooks/useFileErrorMessages/useFileErrorMessages.cjs +38 -0
  76. package/dist/components/UploadedFile/hooks/useFileErrorMessages/useFileErrorMessages.cjs.map +1 -0
  77. package/dist/components/UploadedFile/hooks/useFileErrorMessages/useFileErrorMessages.d.ts +18 -0
  78. package/dist/components/UploadedFile/hooks/useFileErrorMessages/useFileErrorMessages.js +36 -0
  79. package/dist/components/UploadedFile/hooks/useFileErrorMessages/useFileErrorMessages.js.map +1 -0
  80. package/dist/components/UploadedFile/hooks/usePreviewImage/index.d.ts +1 -0
  81. package/dist/components/UploadedFile/hooks/usePreviewImage/usePreviewImage.cjs +36 -0
  82. package/dist/components/UploadedFile/hooks/usePreviewImage/usePreviewImage.cjs.map +1 -0
  83. package/dist/components/UploadedFile/hooks/usePreviewImage/usePreviewImage.d.ts +8 -0
  84. package/dist/components/UploadedFile/hooks/usePreviewImage/usePreviewImage.js +34 -0
  85. package/dist/components/UploadedFile/hooks/usePreviewImage/usePreviewImage.js.map +1 -0
  86. package/dist/components/UploadedFile/index.d.ts +1 -0
  87. package/dist/components/UploadedFile/utils/convertFileTypeToAcceptedFileType/convertFileTypeToAcceptedFileType.cjs +17 -0
  88. package/dist/components/UploadedFile/utils/convertFileTypeToAcceptedFileType/convertFileTypeToAcceptedFileType.cjs.map +1 -0
  89. package/dist/components/UploadedFile/utils/convertFileTypeToAcceptedFileType/convertFileTypeToAcceptedFileType.d.ts +1 -0
  90. package/dist/components/UploadedFile/utils/convertFileTypeToAcceptedFileType/convertFileTypeToAcceptedFileType.js +15 -0
  91. package/dist/components/UploadedFile/utils/convertFileTypeToAcceptedFileType/convertFileTypeToAcceptedFileType.js.map +1 -0
  92. package/dist/components/UploadedFile/utils/convertFileTypeToAcceptedFileType/index.d.ts +1 -0
  93. package/dist/components/UploadedFile/utils/isImageType/index.d.ts +1 -0
  94. package/dist/components/UploadedFile/utils/isImageType/isImageType.cjs +14 -0
  95. package/dist/components/UploadedFile/utils/isImageType/isImageType.cjs.map +1 -0
  96. package/dist/components/UploadedFile/utils/isImageType/isImageType.d.ts +1 -0
  97. package/dist/components/UploadedFile/utils/isImageType/isImageType.js +12 -0
  98. package/dist/components/UploadedFile/utils/isImageType/isImageType.js.map +1 -0
  99. package/dist/components/ViewsContainer/ViewsContainer.cjs +4 -3
  100. package/dist/components/ViewsContainer/ViewsContainer.cjs.map +1 -1
  101. package/dist/components/ViewsContainer/ViewsContainer.js +4 -3
  102. package/dist/components/ViewsContainer/ViewsContainer.js.map +1 -1
  103. package/dist/components/ViewsContainer/ViewsContainer.module.scss.cjs +2 -2
  104. package/dist/components/ViewsContainer/ViewsContainer.module.scss.cjs.map +1 -1
  105. package/dist/components/ViewsContainer/ViewsContainer.module.scss.js +2 -2
  106. package/dist/components/ViewsContainer/ViewsContainer.module.scss.js.map +1 -1
  107. package/dist/components/index.d.ts +3 -1
  108. package/dist/index.cjs +2 -0
  109. package/dist/index.cjs.map +1 -1
  110. package/dist/index.js +1 -0
  111. package/dist/index.js.map +1 -1
  112. package/package.json +1 -1
  113. package/dist/components/UploadFile/UploadGraphic.cjs +0 -14
  114. package/dist/components/UploadFile/UploadGraphic.cjs.map +0 -1
  115. package/dist/components/UploadFile/UploadGraphic.d.ts +0 -2
  116. package/dist/components/UploadFile/UploadGraphic.js +0 -8
  117. package/dist/components/UploadFile/UploadGraphic.js.map +0 -1
  118. package/dist/components/UploadFile/components/UploadFileErrors/UploadFileErrors.cjs +0 -31
  119. package/dist/components/UploadFile/components/UploadFileErrors/UploadFileErrors.cjs.map +0 -1
  120. package/dist/components/UploadFile/components/UploadFileErrors/UploadFileErrors.d.ts +0 -7
  121. package/dist/components/UploadFile/components/UploadFileErrors/UploadFileErrors.js +0 -25
  122. package/dist/components/UploadFile/components/UploadFileErrors/UploadFileErrors.js.map +0 -1
  123. package/dist/components/UploadFile/components/UploadedFile/UploadedFile.cjs +0 -21
  124. package/dist/components/UploadFile/components/UploadedFile/UploadedFile.cjs.map +0 -1
  125. package/dist/components/UploadFile/components/UploadedFile/UploadedFile.d.ts +0 -8
  126. package/dist/components/UploadFile/components/UploadedFile/UploadedFile.js +0 -15
  127. package/dist/components/UploadFile/components/UploadedFile/UploadedFile.js.map +0 -1
  128. package/dist/components/UploadFile/components/UploadedFile/styled.cjs +0 -20
  129. package/dist/components/UploadFile/components/UploadedFile/styled.cjs.map +0 -1
  130. package/dist/components/UploadFile/components/UploadedFile/styled.d.ts +0 -2
  131. package/dist/components/UploadFile/components/UploadedFile/styled.js +0 -13
  132. package/dist/components/UploadFile/components/UploadedFile/styled.js.map +0 -1
  133. package/dist/components/UploadFile/utils/setInputElFile/setInputElFile.cjs +0 -18
  134. package/dist/components/UploadFile/utils/setInputElFile/setInputElFile.cjs.map +0 -1
  135. package/dist/components/UploadFile/utils/setInputElFile/setInputElFile.d.ts +0 -13
  136. package/dist/components/UploadFile/utils/setInputElFile/setInputElFile.js +0 -16
  137. package/dist/components/UploadFile/utils/setInputElFile/setInputElFile.js.map +0 -1
@@ -1,137 +1,118 @@
1
- import React__default, { forwardRef, useRef, useImperativeHandle, useState, useCallback, useEffect } from 'react';
1
+ import React__default, { forwardRef, useImperativeHandle, useState, useCallback, useEffect } from 'react';
2
+ import { theme } from '../../theme/index.js';
3
+ import { ReactComponent as CriticalIcon } from '../../icons/design-system/components/CriticalIcon.js';
4
+ import { ReactComponent as LockIcon } from '../../icons/design-system/components/LockIcon.js';
2
5
  import { DropZoneContainer } from './styled.js';
3
- import { InputState, FileSizeUnit } from './constants.js';
6
+ import { DEFAULT_MAXIMUM_FILE_BYTES, FileSizeUnit, DEFAULT_MAXIMUM_MULTIPLE_FILES } from './constants.js';
4
7
  import { UploadCopy } from './components/UploadCopy/UploadCopy.js';
5
- import { setInputElFile } from './utils/setInputElFile/setInputElFile.js';
8
+ import { DropCopy } from './components/DropCopy/DropCopy.js';
6
9
  import { getValidTypesString } from './utils/getValidTypesString/getValidTypesString.js';
7
10
  import { getFileSizeString } from './utils/getFileSizeString/getFileSizeString.js';
8
11
  import { getTypePropForInputEl } from './utils/getTypePropForInputEl/getTypePropForInputEl.js';
9
- import { RootStack, Label, Hint } from '../../hoc/withLabels/styled.js';
10
- import { UploadFileErrors } from './components/UploadFileErrors/UploadFileErrors.js';
11
- import { UploadedFile } from './components/UploadedFile/UploadedFile.js';
12
+ import { RootStack, Label, Hint, Error, Disabled } from '../../hoc/withLabels/styled.js';
13
+ import { UploadedFile } from '../UploadedFile/UploadedFile.js';
12
14
  import { FlexCol } from '../Flex/FlexCol/FlexCol.js';
15
+ import { FlexRow } from '../Flex/FlexRow/FlexRow.js';
16
+ import { useUploadFile } from './hooks/useUploadFile/useUploadFile.js';
17
+ import { useValidateInput } from './hooks/useValidateInput/useValidateInput.js';
13
18
 
14
- const UploadFile = forwardRef(({ id, name, maxBytes = 1000000, format = FileSizeUnit.MB, fileTypes, label = 'Upload file', required, disabled, ...otherProps }, outerRef) => {
15
- const inputRef = useRef(null);
16
- useImperativeHandle(outerRef, () => inputRef.current, []);
17
- const [file, setFile] = useState();
18
- const [errorState, setErrorState] = useState(InputState.VALID);
19
- const isInvalidFormat = errorState === InputState.INVALID_FORMAT || errorState === InputState.INVALID_FORMAT_AND_SIZE;
20
- const isOverMaxSize = errorState === InputState.INVALID_SIZE || errorState === InputState.INVALID_FORMAT_AND_SIZE;
19
+ const UploadFile = forwardRef(({ id, name, maxBytes = DEFAULT_MAXIMUM_FILE_BYTES, format = FileSizeUnit.MB, fileTypes, disabled, multiple, label = multiple ? 'Upload files' : 'Upload file', hideUploadedFiles = false, onMaxFilesExceeded, maxFiles = DEFAULT_MAXIMUM_MULTIPLE_FILES, disabledMessage, isDirty, errorMessage = '', ...otherProps }, outerRef) => {
20
+ var _a, _b;
21
+ const { inputRef, fileList, setFileList, onCancel, removeFileFromList, clearFileSelection } = useUploadFile();
22
+ useValidateInput({ inputRef, fileList, fileTypes, maxBytes, errorMessage });
23
+ useImperativeHandle(outerRef, () => inputRef.current, [inputRef]);
24
+ const [isDragOver, setIsDragOver] = useState(false);
21
25
  // Computed properties based on params
22
26
  const maxSizeCopy = getFileSizeString({ maxBytes, format });
23
27
  const acceptedTypesCopy = getValidTypesString({ fileTypes });
24
28
  const acceptedTypesForInputEl = getTypePropForInputEl({ fileTypes });
25
- const clearFileSelection = () => {
26
- var _a;
27
- if ((_a = inputRef.current) === null || _a === undefined ? undefined : _a.value)
28
- inputRef.current.value = '';
29
- };
30
- // Tracks error states within the input element itself, using preset
31
- // error messages and assigns these to the input component based on the file
32
- const setInputValidation = ({ overMaxSize, invalidFormat, }) => {
33
- var _a;
34
- let error = InputState.VALID;
35
- if (invalidFormat && !overMaxSize) {
36
- error = InputState.INVALID_FORMAT;
37
- }
38
- else if (!invalidFormat && overMaxSize) {
39
- error = InputState.INVALID_SIZE;
40
- }
41
- else if (invalidFormat && overMaxSize) {
42
- error = InputState.INVALID_FORMAT_AND_SIZE;
29
+ const validateMaximumFiles = useCallback((files) => {
30
+ if ((files === null || files === undefined ? undefined : files.length) && (files === null || files === undefined ? undefined : files.length) > maxFiles) {
31
+ clearFileSelection();
32
+ onMaxFilesExceeded === null || onMaxFilesExceeded === undefined ? undefined : onMaxFilesExceeded();
33
+ return false;
43
34
  }
44
- (_a = inputRef.current) === null || _a === undefined ? undefined : _a.setCustomValidity(error);
45
- setErrorState(error);
46
- };
35
+ return true;
36
+ }, [clearFileSelection, maxFiles, onMaxFilesExceeded]);
47
37
  // Processes file and updates the UI appropriately:
48
38
  const updateFiles = useCallback((files) => {
49
39
  if (!files.length) {
50
- setInputValidation({ invalidFormat: true });
51
40
  return;
52
41
  }
53
- const [newFile] = files;
54
- const hasExceededMaxSize = newFile.size > maxBytes;
55
- const [, extension] = newFile.type.split('/');
56
- const isTypeValid = fileTypes.find((validType) => validType.substring(1) === extension);
57
- const hasInvalidFormat = !isTypeValid;
58
- if (hasExceededMaxSize || hasInvalidFormat) {
59
- // Empty the inputRef's read-only fileList by clearing the value attribute,
60
- // since we have an invalid input.
61
- clearFileSelection();
62
- }
63
- else {
64
- // Update the files attribute of the input el, with the new file(s)
65
- setInputElFile({ fileList: files, elementId: id });
66
- }
67
- setInputValidation({
68
- invalidFormat: hasInvalidFormat,
69
- overMaxSize: hasExceededMaxSize,
70
- });
71
- setFile(newFile);
72
- }, [fileTypes, id, maxBytes]);
42
+ setFileList(files);
43
+ }, [setFileList]);
73
44
  // For focussing of input el and updating drop UI
74
45
  const onDragEnter = (event) => {
75
46
  var _a;
76
47
  event.preventDefault();
48
+ setIsDragOver(true);
77
49
  (_a = inputRef.current) === null || _a === undefined ? undefined : _a.focus();
78
50
  };
79
51
  // For unfocussing of input el and updating drop UI
80
52
  const onDragLeave = (event) => {
81
- var _a;
82
53
  event.preventDefault();
83
- (_a = inputRef.current) === null || _a === undefined ? undefined : _a.blur();
54
+ setIsDragOver(false);
84
55
  };
85
56
  // Prevents default browser behaviour
86
57
  const onDragOver = (event) => event.preventDefault();
87
58
  // Process file when dropped into eligible area
88
59
  const onDrop = (event) => {
89
60
  event.preventDefault();
61
+ setIsDragOver(false);
90
62
  // Prevent reactions on dragging events that do not contain files
91
63
  if (!event.dataTransfer.files.length)
92
64
  return;
93
- updateFiles(event.dataTransfer.files);
65
+ const canUpdateFiles = validateMaximumFiles(event.dataTransfer.files);
66
+ if (canUpdateFiles) {
67
+ updateFiles(event.dataTransfer.files);
68
+ }
94
69
  };
95
- // Removes input el's files, clears errors and removes file from react component
96
- const resetSelection = useCallback(() => {
97
- clearFileSelection();
98
- setFile(undefined);
99
- setInputValidation({
100
- invalidFormat: false,
101
- overMaxSize: false,
102
- });
103
- }, []);
104
70
  // Updates UI based on a native file input change. Attached via useEffect below
105
- const onInputChange = useCallback(() => {
106
- var _a;
107
- const files = (_a = inputRef === null || inputRef === undefined ? undefined : inputRef.current) === null || _a === undefined ? undefined : _a.files;
108
- if ((files === null || files === undefined ? undefined : files.length) && (files === null || files === undefined ? undefined : files.length) > 0)
71
+ const onChange = useCallback(() => {
72
+ var _a, _b;
73
+ const canUpdateFiles = validateMaximumFiles((_a = inputRef === null || inputRef === undefined ? undefined : inputRef.current) === null || _a === undefined ? undefined : _a.files);
74
+ const files = (_b = inputRef === null || inputRef === undefined ? undefined : inputRef.current) === null || _b === undefined ? undefined : _b.files;
75
+ if (canUpdateFiles && files) {
109
76
  updateFiles(files);
110
- else
111
- resetSelection();
112
- }, [resetSelection, updateFiles]);
77
+ }
78
+ else if (fileList) {
79
+ updateFiles(fileList);
80
+ }
81
+ }, [validateMaximumFiles, inputRef, fileList, updateFiles]);
113
82
  useEffect(() => {
114
83
  const ref = inputRef === null || inputRef === undefined ? undefined : inputRef.current;
115
- ref === null || ref === undefined ? undefined : ref.addEventListener('change', onInputChange);
116
- ref === null || ref === undefined ? undefined : ref.addEventListener('cancel', resetSelection);
84
+ ref === null || ref === undefined ? undefined : ref.addEventListener('change', onChange);
85
+ ref === null || ref === undefined ? undefined : ref.addEventListener('cancel', onCancel);
117
86
  return () => {
118
- ref === null || ref === undefined ? undefined : ref.removeEventListener('change', onInputChange);
119
- ref === null || ref === undefined ? undefined : ref.removeEventListener('cancel', resetSelection);
87
+ ref === null || ref === undefined ? undefined : ref.removeEventListener('change', onChange);
88
+ ref === null || ref === undefined ? undefined : ref.removeEventListener('cancel', onCancel);
120
89
  };
121
- }, [onInputChange, resetSelection]);
90
+ }, [onChange, onCancel, inputRef]);
91
+ const hasError = !!((errorMessage || ((_a = inputRef.current) === null || _a === undefined ? undefined : _a.validationMessage)) && !(fileList === null || fileList === undefined ? undefined : fileList.length));
122
92
  return (React__default.createElement(RootStack, { spacing: "xs", alignX: "stretch" },
123
93
  React__default.createElement(Label, { htmlFor: id },
124
94
  label,
125
95
  React__default.createElement(FlexCol, null,
126
96
  React__default.createElement(Hint, null,
127
- React__default.createElement("div", null, acceptedTypesCopy),
128
- React__default.createElement("div", null, maxSizeCopy)),
129
- React__default.createElement(DropZoneContainer, { "data-testid": "drop-zone-container", onDrop: onDrop, onDragEnter: onDragEnter, onDragOver: onDragOver, onDragLeave: onDragLeave },
130
- React__default.createElement(UploadCopy, null),
131
- React__default.createElement("input", { ref: inputRef, id: id, type: "file", accept: acceptedTypesForInputEl, name: name, required: required, disabled: disabled, ...otherProps })))),
97
+ maxSizeCopy,
98
+ React__default.createElement("br", null),
99
+ acceptedTypesCopy),
100
+ React__default.createElement(DropZoneContainer, { hasError: hasError, isDragOver: isDragOver, "data-testid": "drop-zone-container", onDrop: onDrop, onDragEnter: onDragEnter, onDragOver: onDragOver, onDragLeave: onDragLeave },
101
+ isDragOver ? React__default.createElement(DropCopy, null) : React__default.createElement(UploadCopy, null),
102
+ React__default.createElement("input", { ref: inputRef, id: id, type: "file", accept: acceptedTypesForInputEl, name: name, disabled: disabled, multiple: multiple, ...otherProps })))),
132
103
  React__default.createElement(FlexCol, null,
133
- React__default.createElement(UploadedFile, { file: file, resetSelection: resetSelection, disabled: disabled }),
134
- React__default.createElement(UploadFileErrors, { acceptedTypesCopy: isInvalidFormat ? acceptedTypesCopy : undefined, maxSizeCopy: isOverMaxSize ? maxSizeCopy : undefined }))));
104
+ hasError && (React__default.createElement(FlexRow, null,
105
+ React__default.createElement(CriticalIcon, { width: theme.sizes.base, height: theme.sizes.base, color: theme.colors.secondary.red.base }),
106
+ React__default.createElement(Error, null, errorMessage || ((_b = inputRef.current) === null || _b === undefined ? undefined : _b.validationMessage)))),
107
+ disabledMessage && (React__default.createElement(FlexRow, { id: `${id}-disabled` },
108
+ React__default.createElement(LockIcon, { width: theme.sizes.base, height: theme.sizes.base, color: theme.colors.neutral.ink.light }),
109
+ React__default.createElement(Disabled, null, disabledMessage))),
110
+ !hideUploadedFiles &&
111
+ fileList && [
112
+ Array.from(fileList).map((file) => {
113
+ return (React__default.createElement(UploadedFile, { key: `${file.name}`, file: file, onRemoveFile: removeFileFromList, disabled: disabled, format: format, maxBytes: maxBytes, fileTypes: fileTypes }));
114
+ }),
115
+ ])));
135
116
  });
136
117
 
137
118
  export { UploadFile };
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFile.js","sources":["../../../src/components/UploadFile/UploadFile.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useState,\n DragEvent,\n forwardRef,\n useImperativeHandle,\n useRef,\n} from 'react';\nimport { DropZoneContainer } from './styled';\nimport { InputState, FileSizeUnit } from './constants';\nimport { UploadCopy } from './components/UploadCopy/UploadCopy';\nimport { setInputElFile } from './utils/setInputElFile/setInputElFile';\nimport { getFileSizeString, getTypePropForInputEl, getValidTypesString } from './utils';\nimport { UploadFileProps } from './types';\nimport { Hint, Label, RootStack } from '../../hoc/withLabels/styled';\nimport { UploadFileErrors } from './components/UploadFileErrors/UploadFileErrors';\nimport { UploadedFile } from './components/UploadedFile/UploadedFile';\nimport { FlexCol } from '../Flex/FlexCol';\n\nexport const UploadFile = forwardRef<HTMLInputElement, UploadFileProps>(\n (\n {\n id,\n name,\n maxBytes = 1000000,\n format = FileSizeUnit.MB,\n fileTypes,\n label = 'Upload file',\n required,\n disabled,\n ...otherProps\n }: UploadFileProps,\n outerRef,\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n useImperativeHandle(outerRef, () => inputRef.current!, []);\n\n const [file, setFile] = useState<File>();\n const [errorState, setErrorState] = useState(InputState.VALID);\n\n const isInvalidFormat =\n errorState === InputState.INVALID_FORMAT || errorState === InputState.INVALID_FORMAT_AND_SIZE;\n const isOverMaxSize =\n errorState === InputState.INVALID_SIZE || errorState === InputState.INVALID_FORMAT_AND_SIZE;\n\n // Computed properties based on params\n const maxSizeCopy = getFileSizeString({ maxBytes, format });\n const acceptedTypesCopy = getValidTypesString({ fileTypes });\n const acceptedTypesForInputEl = getTypePropForInputEl({ fileTypes });\n\n const clearFileSelection = () => {\n if (inputRef.current?.value) inputRef.current.value = '';\n };\n\n // Tracks error states within the input element itself, using preset\n // error messages and assigns these to the input component based on the file\n const setInputValidation = ({\n overMaxSize,\n invalidFormat,\n }: {\n overMaxSize?: boolean;\n invalidFormat?: boolean;\n }) => {\n let error = InputState.VALID;\n if (invalidFormat && !overMaxSize) {\n error = InputState.INVALID_FORMAT;\n } else if (!invalidFormat && overMaxSize) {\n error = InputState.INVALID_SIZE;\n } else if (invalidFormat && overMaxSize) {\n error = InputState.INVALID_FORMAT_AND_SIZE;\n }\n inputRef.current?.setCustomValidity(error);\n setErrorState(error);\n };\n\n // Processes file and updates the UI appropriately:\n const updateFiles = useCallback(\n (files: FileList) => {\n if (!files.length) {\n setInputValidation({ invalidFormat: true });\n return;\n }\n\n const [newFile] = files;\n const hasExceededMaxSize = newFile.size > maxBytes;\n\n const [, extension] = newFile.type.split('/');\n const isTypeValid = fileTypes.find((validType) => validType.substring(1) === extension);\n const hasInvalidFormat = !isTypeValid;\n\n if (hasExceededMaxSize || hasInvalidFormat) {\n // Empty the inputRef's read-only fileList by clearing the value attribute,\n // since we have an invalid input.\n clearFileSelection();\n } else {\n // Update the files attribute of the input el, with the new file(s)\n setInputElFile({ fileList: files, elementId: id });\n }\n setInputValidation({\n invalidFormat: hasInvalidFormat,\n overMaxSize: hasExceededMaxSize,\n });\n setFile(newFile);\n },\n [fileTypes, id, maxBytes],\n );\n\n // For focussing of input el and updating drop UI\n const onDragEnter = (event: DragEvent<HTMLElement>) => {\n event.preventDefault();\n inputRef.current?.focus();\n };\n\n // For unfocussing of input el and updating drop UI\n const onDragLeave = (event: DragEvent<HTMLElement>) => {\n event.preventDefault();\n inputRef.current?.blur();\n };\n\n // Prevents default browser behaviour\n const onDragOver = (event: DragEvent<HTMLElement>) => event.preventDefault();\n\n // Process file when dropped into eligible area\n const onDrop = (event: DragEvent<HTMLElement>) => {\n event.preventDefault();\n // Prevent reactions on dragging events that do not contain files\n if (!event.dataTransfer.files.length) return;\n updateFiles(event.dataTransfer.files);\n };\n\n // Removes input el's files, clears errors and removes file from react component\n const resetSelection = useCallback(() => {\n clearFileSelection();\n setFile(undefined);\n setInputValidation({\n invalidFormat: false,\n overMaxSize: false,\n });\n }, []);\n\n // Updates UI based on a native file input change. Attached via useEffect below\n const onInputChange = useCallback(() => {\n const files = inputRef?.current?.files;\n if (files?.length && files?.length > 0) updateFiles(files);\n else resetSelection();\n }, [resetSelection, updateFiles]);\n\n useEffect(() => {\n const ref = inputRef?.current;\n ref?.addEventListener('change', onInputChange);\n ref?.addEventListener('cancel', resetSelection);\n\n return () => {\n ref?.removeEventListener('change', onInputChange);\n ref?.removeEventListener('cancel', resetSelection);\n };\n }, [onInputChange, resetSelection]);\n\n return (\n <RootStack spacing=\"xs\" alignX=\"stretch\">\n <Label htmlFor={id}>\n {label}\n <FlexCol>\n <Hint>\n <div>{acceptedTypesCopy}</div>\n <div>{maxSizeCopy}</div>\n </Hint>\n <DropZoneContainer\n data-testid=\"drop-zone-container\"\n onDrop={onDrop}\n onDragEnter={onDragEnter}\n onDragOver={onDragOver}\n onDragLeave={onDragLeave}\n >\n <UploadCopy />\n <input\n ref={inputRef}\n id={id}\n type=\"file\"\n accept={acceptedTypesForInputEl}\n name={name}\n required={required}\n disabled={disabled}\n {...otherProps}\n />\n </DropZoneContainer>\n </FlexCol>\n </Label>\n <FlexCol>\n <UploadedFile file={file} resetSelection={resetSelection} disabled={disabled} />\n <UploadFileErrors\n acceptedTypesCopy={isInvalidFormat ? acceptedTypesCopy : undefined}\n maxSizeCopy={isOverMaxSize ? maxSizeCopy : undefined}\n />\n </FlexCol>\n </RootStack>\n );\n },\n);\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"UploadFile.js","sources":["../../../src/components/UploadFile/UploadFile.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useState,\n DragEvent,\n forwardRef,\n useImperativeHandle,\n} from 'react';\nimport { theme } from 'Theme';\nimport { CriticalIcon, LockIcon } from '../../icons';\nimport { DropZoneContainer } from './styled';\nimport {\n FileSizeUnit,\n DEFAULT_MAXIMUM_MULTIPLE_FILES,\n DEFAULT_MAXIMUM_FILE_BYTES,\n} from './constants';\nimport { UploadCopy } from './components/UploadCopy/UploadCopy';\nimport { DropCopy } from './components/DropCopy/DropCopy';\nimport { getFileSizeString, getTypePropForInputEl, getValidTypesString } from './utils';\nimport { UploadFileProps } from './types';\nimport { Disabled, Error, Hint, Label, RootStack } from '../../hoc/withLabels/styled';\nimport { UploadedFile } from '../UploadedFile';\nimport { FlexCol } from '../Flex/FlexCol';\nimport { FlexRow } from '../Flex/FlexRow';\nimport { useUploadFile } from './hooks/useUploadFile';\nimport { useValidateInput } from './hooks/useValidateInput';\n\nexport const UploadFile = forwardRef<HTMLInputElement, UploadFileProps>(\n (\n {\n id,\n name,\n maxBytes = DEFAULT_MAXIMUM_FILE_BYTES,\n format = FileSizeUnit.MB,\n fileTypes,\n disabled,\n multiple,\n label = multiple ? 'Upload files' : 'Upload file',\n hideUploadedFiles = false,\n onMaxFilesExceeded,\n maxFiles = DEFAULT_MAXIMUM_MULTIPLE_FILES,\n disabledMessage,\n isDirty,\n errorMessage = '',\n ...otherProps\n }: UploadFileProps,\n outerRef,\n ) => {\n const { inputRef, fileList, setFileList, onCancel, removeFileFromList, clearFileSelection } =\n useUploadFile();\n\n useValidateInput({ inputRef, fileList, fileTypes, maxBytes, errorMessage });\n\n useImperativeHandle(outerRef, () => inputRef.current!, [inputRef]);\n\n const [isDragOver, setIsDragOver] = useState(false);\n\n // Computed properties based on params\n const maxSizeCopy = getFileSizeString({ maxBytes, format });\n const acceptedTypesCopy = getValidTypesString({ fileTypes });\n const acceptedTypesForInputEl = getTypePropForInputEl({ fileTypes });\n\n const validateMaximumFiles = useCallback(\n (files: FileList | null | undefined) => {\n if (files?.length && files?.length > maxFiles) {\n clearFileSelection();\n onMaxFilesExceeded?.();\n return false;\n }\n return true;\n },\n [clearFileSelection, maxFiles, onMaxFilesExceeded],\n );\n\n // Processes file and updates the UI appropriately:\n const updateFiles = useCallback(\n (files: FileList) => {\n if (!files.length) {\n return;\n }\n\n setFileList(files);\n },\n [setFileList],\n );\n\n // For focussing of input el and updating drop UI\n const onDragEnter = (event: DragEvent<HTMLElement>) => {\n event.preventDefault();\n setIsDragOver(true);\n inputRef.current?.focus();\n };\n\n // For unfocussing of input el and updating drop UI\n const onDragLeave = (event: DragEvent<HTMLElement>) => {\n event.preventDefault();\n setIsDragOver(false);\n };\n\n // Prevents default browser behaviour\n const onDragOver = (event: DragEvent<HTMLElement>) => event.preventDefault();\n\n // Process file when dropped into eligible area\n const onDrop = (event: DragEvent<HTMLElement>) => {\n event.preventDefault();\n setIsDragOver(false);\n // Prevent reactions on dragging events that do not contain files\n if (!event.dataTransfer.files.length) return;\n\n const canUpdateFiles = validateMaximumFiles(event.dataTransfer.files);\n if (canUpdateFiles) {\n updateFiles(event.dataTransfer.files);\n }\n };\n\n // Updates UI based on a native file input change. Attached via useEffect below\n const onChange = useCallback(() => {\n const canUpdateFiles = validateMaximumFiles(inputRef?.current?.files);\n const files = inputRef?.current?.files;\n if (canUpdateFiles && files) {\n updateFiles(files);\n } else if (fileList) {\n updateFiles(fileList);\n }\n }, [validateMaximumFiles, inputRef, fileList, updateFiles]);\n\n useEffect(() => {\n const ref = inputRef?.current;\n ref?.addEventListener('change', onChange);\n ref?.addEventListener('cancel', onCancel);\n\n return () => {\n ref?.removeEventListener('change', onChange);\n ref?.removeEventListener('cancel', onCancel);\n };\n }, [onChange, onCancel, inputRef]);\n\n const hasError = !!((errorMessage || inputRef.current?.validationMessage) && !fileList?.length);\n\n return (\n <RootStack spacing=\"xs\" alignX=\"stretch\">\n <Label htmlFor={id}>\n {label}\n <FlexCol>\n <Hint>\n {maxSizeCopy}\n <br />\n {acceptedTypesCopy}\n </Hint>\n <DropZoneContainer\n hasError={hasError}\n isDragOver={isDragOver}\n data-testid=\"drop-zone-container\"\n onDrop={onDrop}\n onDragEnter={onDragEnter}\n onDragOver={onDragOver}\n onDragLeave={onDragLeave}\n >\n {isDragOver ? <DropCopy /> : <UploadCopy />}\n <input\n ref={inputRef}\n id={id}\n type=\"file\"\n accept={acceptedTypesForInputEl}\n name={name}\n disabled={disabled}\n multiple={multiple}\n {...otherProps}\n />\n </DropZoneContainer>\n </FlexCol>\n </Label>\n <FlexCol>\n {hasError && (\n <FlexRow>\n <CriticalIcon\n width={theme.sizes.base}\n height={theme.sizes.base}\n color={theme.colors.secondary.red.base}\n />\n <Error>{errorMessage || inputRef.current?.validationMessage}</Error>\n </FlexRow>\n )}\n {disabledMessage && (\n <FlexRow id={`${id}-disabled`}>\n <LockIcon\n width={theme.sizes.base}\n height={theme.sizes.base}\n color={theme.colors.neutral.ink.light}\n />\n <Disabled>{disabledMessage}</Disabled>\n </FlexRow>\n )}\n {!hideUploadedFiles &&\n fileList && [\n Array.from(fileList).map((file) => {\n return (\n <UploadedFile\n key={`${file.name}`}\n file={file}\n onRemoveFile={removeFileFromList}\n disabled={disabled}\n format={format}\n maxBytes={maxBytes}\n fileTypes={fileTypes}\n />\n );\n }),\n ]}\n </FlexCol>\n </RootStack>\n );\n },\n);\n"],"names":["React"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var framerMotion = require('framer-motion');
5
+ var index = require('../../../../theme/index.cjs');
6
+ var sizes = require('../../../../theme/modules/sizes.cjs');
7
+ var Text = require('../../../Text/Text.cjs');
8
+ var FlexCol = require('../../../Flex/FlexCol/FlexCol.cjs');
9
+ var ArrowDownIcon = require('../../../../icons/design-system/components/ArrowDownIcon.cjs');
10
+
11
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
14
+
15
+ const DropCopy = () => (React__default.default.createElement(FlexCol.FlexCol, { alignItems: "center", gap: "sm", style: { pointerEvents: 'none' } },
16
+ React__default.default.createElement("div", { style: { height: 24, display: 'flex', alignItems: 'center', justifyContent: 'center' } },
17
+ React__default.default.createElement(framerMotion.motion.div, { animate: {
18
+ y: [0, 8, 0],
19
+ }, transition: {
20
+ duration: 1,
21
+ repeat: Infinity,
22
+ ease: 'easeInOut',
23
+ } },
24
+ React__default.default.createElement(ArrowDownIcon.ReactComponent, { height: 24, width: 24 }))),
25
+ React__default.default.createElement(Text.Text, { variant: "body", style: { paddingTop: sizes.sizes.sm, color: index.theme.colors.neutral.ink.base } }, "Drop to upload")));
26
+
27
+ exports.DropCopy = DropCopy;
28
+ //# sourceMappingURL=DropCopy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropCopy.cjs","sources":["../../../../../src/components/UploadFile/components/DropCopy/DropCopy.tsx"],"sourcesContent":["import React from 'react';\nimport { motion } from 'framer-motion';\nimport { theme } from 'Theme';\nimport { sizes } from '../../../../theme/modules/sizes';\nimport { Text } from '../../../Text';\nimport { FlexCol } from '../../../Flex/FlexCol';\nimport { ArrowDownIcon } from '../../../../icons';\n\nexport const DropCopy = () => (\n <FlexCol alignItems=\"center\" gap=\"sm\" style={{ pointerEvents: 'none' }}>\n <div style={{ height: 24, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\n <motion.div\n animate={{\n y: [0, 8, 0],\n }}\n transition={{\n duration: 1,\n repeat: Infinity,\n ease: 'easeInOut',\n }}\n >\n <ArrowDownIcon height={24} width={24} />\n </motion.div>\n </div>\n <Text variant=\"body\" style={{ paddingTop: sizes.sm, color: theme.colors.neutral.ink.base }}>\n Drop to upload\n </Text>\n </FlexCol>\n);\n"],"names":["React","FlexCol","motion","ArrowDownIcon","Text","sizes","theme"],"mappings":";;;;;;;;;;;;;;AAQa,MAAA,QAAQ,GAAG,OACtBA,sBAAC,CAAA,aAAA,CAAAC,eAAO,EAAC,EAAA,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAA;AACpE,IAAAD,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAA;AACzF,QAAAA,sBAAA,CAAA,aAAA,CAACE,mBAAM,CAAC,GAAG,EAAA,EACT,OAAO,EAAE;AACP,gBAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACb,aAAA,EACD,UAAU,EAAE;AACV,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,IAAI,EAAE,WAAW;AAClB,aAAA,EAAA;YAEDF,sBAAC,CAAA,aAAA,CAAAG,4BAAa,EAAC,EAAA,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAI,CAAA,CAC7B,CACT;AACN,IAAAH,sBAAA,CAAA,aAAA,CAACI,SAAI,EAAA,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,UAAU,EAAEC,WAAK,CAAC,EAAE,EAAE,KAAK,EAAEC,WAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAEnF,EAAA,gBAAA,CAAA,CACC;;;;"}
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const DropCopy: () => React.JSX.Element;
@@ -0,0 +1,22 @@
1
+ import React__default from 'react';
2
+ import { motion } from 'framer-motion';
3
+ import { theme } from '../../../../theme/index.js';
4
+ import { sizes } from '../../../../theme/modules/sizes.js';
5
+ import { Text } from '../../../Text/Text.js';
6
+ import { FlexCol } from '../../../Flex/FlexCol/FlexCol.js';
7
+ import { ReactComponent as ArrowDownIcon } from '../../../../icons/design-system/components/ArrowDownIcon.js';
8
+
9
+ const DropCopy = () => (React__default.createElement(FlexCol, { alignItems: "center", gap: "sm", style: { pointerEvents: 'none' } },
10
+ React__default.createElement("div", { style: { height: 24, display: 'flex', alignItems: 'center', justifyContent: 'center' } },
11
+ React__default.createElement(motion.div, { animate: {
12
+ y: [0, 8, 0],
13
+ }, transition: {
14
+ duration: 1,
15
+ repeat: Infinity,
16
+ ease: 'easeInOut',
17
+ } },
18
+ React__default.createElement(ArrowDownIcon, { height: 24, width: 24 }))),
19
+ React__default.createElement(Text, { variant: "body", style: { paddingTop: sizes.sm, color: theme.colors.neutral.ink.base } }, "Drop to upload")));
20
+
21
+ export { DropCopy };
22
+ //# sourceMappingURL=DropCopy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropCopy.js","sources":["../../../../../src/components/UploadFile/components/DropCopy/DropCopy.tsx"],"sourcesContent":["import React from 'react';\nimport { motion } from 'framer-motion';\nimport { theme } from 'Theme';\nimport { sizes } from '../../../../theme/modules/sizes';\nimport { Text } from '../../../Text';\nimport { FlexCol } from '../../../Flex/FlexCol';\nimport { ArrowDownIcon } from '../../../../icons';\n\nexport const DropCopy = () => (\n <FlexCol alignItems=\"center\" gap=\"sm\" style={{ pointerEvents: 'none' }}>\n <div style={{ height: 24, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\n <motion.div\n animate={{\n y: [0, 8, 0],\n }}\n transition={{\n duration: 1,\n repeat: Infinity,\n ease: 'easeInOut',\n }}\n >\n <ArrowDownIcon height={24} width={24} />\n </motion.div>\n </div>\n <Text variant=\"body\" style={{ paddingTop: sizes.sm, color: theme.colors.neutral.ink.base }}>\n Drop to upload\n </Text>\n </FlexCol>\n);\n"],"names":["React"],"mappings":";;;;;;;;AAQa,MAAA,QAAQ,GAAG,OACtBA,cAAC,CAAA,aAAA,CAAA,OAAO,EAAC,EAAA,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAA;AACpE,IAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAA;AACzF,QAAAA,cAAA,CAAA,aAAA,CAAC,MAAM,CAAC,GAAG,EAAA,EACT,OAAO,EAAE;AACP,gBAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACb,aAAA,EACD,UAAU,EAAE;AACV,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,IAAI,EAAE,WAAW;AAClB,aAAA,EAAA;YAEDA,cAAC,CAAA,aAAA,CAAA,aAAa,EAAC,EAAA,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAI,CAAA,CAC7B,CACT;AACN,IAAAA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAEnF,EAAA,gBAAA,CAAA,CACC;;;;"}
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var UploadGraphic = require('../../UploadGraphic.cjs');
4
+ var index = require('../../../../theme/index.cjs');
5
5
  var sizes = require('../../../../theme/modules/sizes.cjs');
6
- var Stack = require('../../../Stack/Stack.cjs');
7
- require('../../../Stack/types.cjs');
8
6
  var Text = require('../../../Text/Text.cjs');
7
+ var FlexCol = require('../../../Flex/FlexCol/FlexCol.cjs');
8
+ var CloudUploadIcon = require('../../../../icons/design-system/components/CloudUploadIcon.cjs');
9
9
 
10
10
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
11
11
 
12
12
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
13
13
 
14
- const UploadCopy = () => (React__default.default.createElement(Stack.Stack, { alignX: "center", alignY: "center", spacing: "sm", style: { pointerEvents: 'none' } },
15
- React__default.default.createElement(UploadGraphic.UploadGraphic, null),
16
- React__default.default.createElement(Text.Text, { variant: "subheadingSmall", style: { paddingTop: sizes.sizes.sm } }, "Browse files or drag them here")));
14
+ const UploadCopy = () => (React__default.default.createElement(FlexCol.FlexCol, { alignItems: "center", gap: "sm", style: { pointerEvents: 'none' } },
15
+ React__default.default.createElement(CloudUploadIcon.ReactComponent, { width: 24, height: 24 }),
16
+ React__default.default.createElement(Text.Text, { variant: "body", style: { paddingTop: sizes.sizes.sm, color: index.theme.colors.neutral.ink.base } }, "Browse files or drag them here")));
17
17
 
18
18
  exports.UploadCopy = UploadCopy;
19
19
  //# sourceMappingURL=UploadCopy.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"UploadCopy.cjs","sources":["../../../../../src/components/UploadFile/components/UploadCopy/UploadCopy.tsx"],"sourcesContent":["import React from 'react';\nimport { UploadGraphic } from '../../UploadGraphic';\nimport { sizes } from '../../../../theme/modules/sizes';\nimport { Stack } from '../../../Stack';\nimport { Text } from '../../../Text';\n\nexport const UploadCopy = () => (\n <Stack alignX=\"center\" alignY=\"center\" spacing=\"sm\" style={{ pointerEvents: 'none' }}>\n <UploadGraphic />\n <Text variant=\"subheadingSmall\" style={{ paddingTop: sizes.sm }}>\n Browse files or drag them here\n </Text>\n </Stack>\n);\n"],"names":["React","Stack","UploadGraphic","Text","sizes"],"mappings":";;;;;;;;;;;;;AAMO,MAAM,UAAU,GAAG,OACxBA,sBAAC,CAAA,aAAA,CAAAC,WAAK,EAAC,EAAA,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAA;AAClF,IAAAD,sBAAA,CAAA,aAAA,CAACE,2BAAa,EAAG,IAAA,CAAA;AACjB,IAAAF,sBAAA,CAAA,aAAA,CAACG,SAAI,EAAC,EAAA,OAAO,EAAC,iBAAiB,EAAC,KAAK,EAAE,EAAE,UAAU,EAAEC,WAAK,CAAC,EAAE,EAAE,EAExD,EAAA,gCAAA,CAAA,CACD;;;;"}
1
+ {"version":3,"file":"UploadCopy.cjs","sources":["../../../../../src/components/UploadFile/components/UploadCopy/UploadCopy.tsx"],"sourcesContent":["import React from 'react';\nimport { theme } from 'Theme';\nimport { sizes } from '../../../../theme/modules/sizes';\nimport { Text } from '../../../Text';\nimport { FlexCol } from '../../../Flex/FlexCol';\nimport { CloudUploadIcon } from '../../../../icons';\n\nexport const UploadCopy = () => (\n <FlexCol alignItems=\"center\" gap=\"sm\" style={{ pointerEvents: 'none' }}>\n <CloudUploadIcon width={24} height={24} />\n <Text variant=\"body\" style={{ paddingTop: sizes.sm, color: theme.colors.neutral.ink.base }}>\n Browse files or drag them here\n </Text>\n </FlexCol>\n);\n"],"names":["React","FlexCol","CloudUploadIcon","Text","sizes","theme"],"mappings":";;;;;;;;;;;;;AAOa,MAAA,UAAU,GAAG,OACxBA,sBAAC,CAAA,aAAA,CAAAC,eAAO,EAAC,EAAA,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAA;IACpED,sBAAC,CAAA,aAAA,CAAAE,8BAAe,IAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAI,CAAA;AAC1C,IAAAF,sBAAA,CAAA,aAAA,CAACG,SAAI,EAAA,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,UAAU,EAAEC,WAAK,CAAC,EAAE,EAAE,KAAK,EAAEC,WAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAEnF,EAAA,gCAAA,CAAA,CACC;;;;"}
@@ -1,13 +1,13 @@
1
1
  import React__default from 'react';
2
- import { UploadGraphic } from '../../UploadGraphic.js';
2
+ import { theme } from '../../../../theme/index.js';
3
3
  import { sizes } from '../../../../theme/modules/sizes.js';
4
- import { Stack } from '../../../Stack/Stack.js';
5
- import '../../../Stack/types.js';
6
4
  import { Text } from '../../../Text/Text.js';
5
+ import { FlexCol } from '../../../Flex/FlexCol/FlexCol.js';
6
+ import { ReactComponent as CloudUploadIcon } from '../../../../icons/design-system/components/CloudUploadIcon.js';
7
7
 
8
- const UploadCopy = () => (React__default.createElement(Stack, { alignX: "center", alignY: "center", spacing: "sm", style: { pointerEvents: 'none' } },
9
- React__default.createElement(UploadGraphic, null),
10
- React__default.createElement(Text, { variant: "subheadingSmall", style: { paddingTop: sizes.sm } }, "Browse files or drag them here")));
8
+ const UploadCopy = () => (React__default.createElement(FlexCol, { alignItems: "center", gap: "sm", style: { pointerEvents: 'none' } },
9
+ React__default.createElement(CloudUploadIcon, { width: 24, height: 24 }),
10
+ React__default.createElement(Text, { variant: "body", style: { paddingTop: sizes.sm, color: theme.colors.neutral.ink.base } }, "Browse files or drag them here")));
11
11
 
12
12
  export { UploadCopy };
13
13
  //# sourceMappingURL=UploadCopy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UploadCopy.js","sources":["../../../../../src/components/UploadFile/components/UploadCopy/UploadCopy.tsx"],"sourcesContent":["import React from 'react';\nimport { UploadGraphic } from '../../UploadGraphic';\nimport { sizes } from '../../../../theme/modules/sizes';\nimport { Stack } from '../../../Stack';\nimport { Text } from '../../../Text';\n\nexport const UploadCopy = () => (\n <Stack alignX=\"center\" alignY=\"center\" spacing=\"sm\" style={{ pointerEvents: 'none' }}>\n <UploadGraphic />\n <Text variant=\"subheadingSmall\" style={{ paddingTop: sizes.sm }}>\n Browse files or drag them here\n </Text>\n </Stack>\n);\n"],"names":["React"],"mappings":";;;;;;;AAMO,MAAM,UAAU,GAAG,OACxBA,cAAC,CAAA,aAAA,CAAA,KAAK,EAAC,EAAA,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAA;AAClF,IAAAA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAG,IAAA,CAAA;AACjB,IAAAA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAC,EAAA,OAAO,EAAC,iBAAiB,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,EAExD,EAAA,gCAAA,CAAA,CACD;;;;"}
1
+ {"version":3,"file":"UploadCopy.js","sources":["../../../../../src/components/UploadFile/components/UploadCopy/UploadCopy.tsx"],"sourcesContent":["import React from 'react';\nimport { theme } from 'Theme';\nimport { sizes } from '../../../../theme/modules/sizes';\nimport { Text } from '../../../Text';\nimport { FlexCol } from '../../../Flex/FlexCol';\nimport { CloudUploadIcon } from '../../../../icons';\n\nexport const UploadCopy = () => (\n <FlexCol alignItems=\"center\" gap=\"sm\" style={{ pointerEvents: 'none' }}>\n <CloudUploadIcon width={24} height={24} />\n <Text variant=\"body\" style={{ paddingTop: sizes.sm, color: theme.colors.neutral.ink.base }}>\n Browse files or drag them here\n </Text>\n </FlexCol>\n);\n"],"names":["React"],"mappings":";;;;;;;AAOa,MAAA,UAAU,GAAG,OACxBA,cAAC,CAAA,aAAA,CAAA,OAAO,EAAC,EAAA,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAA;IACpEA,cAAC,CAAA,aAAA,CAAA,eAAe,IAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAI,CAAA;AAC1C,IAAAA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAEnF,EAAA,gCAAA,CAAA,CACC;;;;"}
@@ -2,22 +2,85 @@
2
2
 
3
3
  exports.AcceptedFileTypes = void 0;
4
4
  (function (AcceptedFileTypes) {
5
+ // DATA FILES
5
6
  AcceptedFileTypes["CSV"] = ".csv";
7
+ AcceptedFileTypes["JSON"] = ".json";
8
+ AcceptedFileTypes["XML"] = ".xml";
9
+ AcceptedFileTypes["TXT"] = ".txt";
10
+ // DOCUMENTS
11
+ AcceptedFileTypes["PDF"] = ".pdf";
12
+ AcceptedFileTypes["DOC"] = ".doc";
13
+ AcceptedFileTypes["DOCX"] = ".docx";
14
+ AcceptedFileTypes["XLS"] = ".xls";
15
+ AcceptedFileTypes["XLSX"] = ".xlsx";
16
+ AcceptedFileTypes["PPT"] = ".ppt";
17
+ AcceptedFileTypes["PPTX"] = ".pptx";
18
+ AcceptedFileTypes["ODT"] = ".odt";
19
+ AcceptedFileTypes["ODS"] = ".ods";
20
+ AcceptedFileTypes["ODP"] = ".odp";
21
+ AcceptedFileTypes["RTF"] = ".rtf";
22
+ // IMAGES
6
23
  AcceptedFileTypes["JPEG"] = ".jpeg";
7
24
  AcceptedFileTypes["JPG"] = ".jpg";
8
- AcceptedFileTypes["GIF"] = ".gif";
9
25
  AcceptedFileTypes["PNG"] = ".png";
26
+ AcceptedFileTypes["GIF"] = ".gif";
27
+ AcceptedFileTypes["BMP"] = ".bmp";
28
+ AcceptedFileTypes["WEBP"] = ".webp";
29
+ AcceptedFileTypes["SVG"] = ".svg";
30
+ AcceptedFileTypes["ICO"] = ".ico";
31
+ AcceptedFileTypes["TIFF"] = ".tiff";
32
+ AcceptedFileTypes["TIF"] = ".tif";
33
+ // AUDIO
34
+ AcceptedFileTypes["MP3"] = ".mp3";
35
+ AcceptedFileTypes["WAV"] = ".wav";
36
+ AcceptedFileTypes["OGG"] = ".ogg";
37
+ AcceptedFileTypes["AAC"] = ".aac";
38
+ AcceptedFileTypes["FLAC"] = ".flac";
39
+ AcceptedFileTypes["M4A"] = ".m4a";
40
+ AcceptedFileTypes["WMA"] = ".wma";
41
+ // VIDEO
42
+ AcceptedFileTypes["MP4"] = ".mp4";
43
+ AcceptedFileTypes["AVI"] = ".avi";
44
+ AcceptedFileTypes["MOV"] = ".mov";
45
+ AcceptedFileTypes["WMV"] = ".wmv";
46
+ AcceptedFileTypes["FLV"] = ".flv";
47
+ AcceptedFileTypes["WEBM"] = ".webm";
48
+ AcceptedFileTypes["MKV"] = ".mkv";
49
+ AcceptedFileTypes["M4V"] = ".m4v";
50
+ // ARCHIVES
51
+ AcceptedFileTypes["ZIP"] = ".zip";
52
+ AcceptedFileTypes["RAR"] = ".rar";
53
+ AcceptedFileTypes["SEVEN_Z"] = ".7z";
54
+ AcceptedFileTypes["TAR"] = ".tar";
55
+ AcceptedFileTypes["GZ"] = ".gz";
10
56
  })(exports.AcceptedFileTypes || (exports.AcceptedFileTypes = {}));
11
57
  exports.FileSizeUnit = void 0;
12
58
  (function (FileSizeUnit) {
13
59
  FileSizeUnit["KB"] = "KB";
14
60
  FileSizeUnit["MB"] = "MB";
15
61
  })(exports.FileSizeUnit || (exports.FileSizeUnit = {}));
16
- exports.InputState = void 0;
17
- (function (InputState) {
18
- InputState["VALID"] = "";
19
- InputState["INVALID_FORMAT"] = "File is incorrect format";
20
- InputState["INVALID_SIZE"] = "File size is too big";
21
- InputState["INVALID_FORMAT_AND_SIZE"] = "File is incorrect format and too big";
22
- })(exports.InputState || (exports.InputState = {}));
62
+ exports.ErrorType = void 0;
63
+ (function (ErrorType) {
64
+ ErrorType["critical"] = "CRITICAL";
65
+ ErrorType["warning"] = "WARNING";
66
+ })(exports.ErrorType || (exports.ErrorType = {}));
67
+ exports.CriticalErrorMessages = void 0;
68
+ (function (CriticalErrorMessages) {
69
+ CriticalErrorMessages["INVALID_FORMAT"] = "Invalid format";
70
+ CriticalErrorMessages["FILE_IS_TOO_BIG"] = "File is too big";
71
+ })(exports.CriticalErrorMessages || (exports.CriticalErrorMessages = {}));
72
+ const DEFAULT_MAXIMUM_MULTIPLE_FILES = 10;
73
+ const DEFAULT_MAXIMUM_FILE_BYTES = 1000000;
74
+ exports.InputErrorStateMessages = void 0;
75
+ (function (InputErrorStateMessages) {
76
+ InputErrorStateMessages["VALID"] = "";
77
+ InputErrorStateMessages["INVALID_FORMAT"] = "Please provide a file with a valid format.";
78
+ InputErrorStateMessages["INVALID_FORMATS"] = "Please provide files with a valid format.";
79
+ InputErrorStateMessages["INVALID_SIZE"] = "Please provide file with an acceptable size.";
80
+ InputErrorStateMessages["INVALID_SIZES"] = "Please provide files with an acceptable size.";
81
+ InputErrorStateMessages["INVALID_FORMAT_AND_SIZE"] = "Please provide files with an acceptable size and format.";
82
+ })(exports.InputErrorStateMessages || (exports.InputErrorStateMessages = {}));
83
+
84
+ exports.DEFAULT_MAXIMUM_FILE_BYTES = DEFAULT_MAXIMUM_FILE_BYTES;
85
+ exports.DEFAULT_MAXIMUM_MULTIPLE_FILES = DEFAULT_MAXIMUM_MULTIPLE_FILES;
23
86
  //# sourceMappingURL=constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.cjs","sources":["../../../src/components/UploadFile/constants.ts"],"sourcesContent":["export enum AcceptedFileTypes {\n CSV = '.csv',\n JPEG = '.jpeg',\n JPG = '.jpg',\n GIF = '.gif',\n PNG = '.png',\n}\n\nexport enum FileSizeUnit {\n KB = 'KB',\n MB = 'MB',\n}\n\nexport enum InputState {\n VALID = '',\n INVALID_FORMAT = 'File is incorrect format',\n INVALID_SIZE = 'File size is too big',\n INVALID_FORMAT_AND_SIZE = 'File is incorrect format and too big',\n}\n"],"names":["AcceptedFileTypes","FileSizeUnit","InputState"],"mappings":";;AAAYA;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,MAAY;AACZ,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc;AACd,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,MAAY;AACZ,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,MAAY;AACZ,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,MAAY;AACd,CAAC,EANWA,yBAAiB,KAAjBA,yBAAiB,GAM5B,EAAA,CAAA,CAAA;AAEWC;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,YAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EAHWA,oBAAY,KAAZA,oBAAY,GAGvB,EAAA,CAAA,CAAA;AAEWC;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,EAAU;AACV,IAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,0BAA2C;AAC3C,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,sBAAqC;AACrC,IAAA,UAAA,CAAA,yBAAA,CAAA,GAAA,sCAAgE;AAClE,CAAC,EALWA,kBAAU,KAAVA,kBAAU,GAKrB,EAAA,CAAA,CAAA;;"}
1
+ {"version":3,"file":"constants.cjs","sources":["../../../src/components/UploadFile/constants.ts"],"sourcesContent":["export enum AcceptedFileTypes {\n // DATA FILES\n CSV = '.csv',\n JSON = '.json',\n XML = '.xml',\n TXT = '.txt',\n\n // DOCUMENTS\n PDF = '.pdf',\n DOC = '.doc',\n DOCX = '.docx',\n XLS = '.xls',\n XLSX = '.xlsx',\n PPT = '.ppt',\n PPTX = '.pptx',\n ODT = '.odt',\n ODS = '.ods',\n ODP = '.odp',\n RTF = '.rtf',\n\n // IMAGES\n JPEG = '.jpeg',\n JPG = '.jpg',\n PNG = '.png',\n GIF = '.gif',\n BMP = '.bmp',\n WEBP = '.webp',\n SVG = '.svg',\n ICO = '.ico',\n TIFF = '.tiff',\n TIF = '.tif',\n\n // AUDIO\n MP3 = '.mp3',\n WAV = '.wav',\n OGG = '.ogg',\n AAC = '.aac',\n FLAC = '.flac',\n M4A = '.m4a',\n WMA = '.wma',\n\n // VIDEO\n MP4 = '.mp4',\n AVI = '.avi',\n MOV = '.mov',\n WMV = '.wmv',\n FLV = '.flv',\n WEBM = '.webm',\n MKV = '.mkv',\n M4V = '.m4v',\n\n // ARCHIVES\n ZIP = '.zip',\n RAR = '.rar',\n SEVEN_Z = '.7z',\n TAR = '.tar',\n GZ = '.gz',\n}\n\nexport enum FileSizeUnit {\n KB = 'KB',\n MB = 'MB',\n}\n\nexport enum ErrorType {\n critical = 'CRITICAL',\n warning = 'WARNING',\n}\n\nexport enum CriticalErrorMessages {\n INVALID_FORMAT = 'Invalid format',\n FILE_IS_TOO_BIG = 'File is too big',\n}\n\nexport const DEFAULT_MAXIMUM_MULTIPLE_FILES = 10;\n\nexport const DEFAULT_MAXIMUM_FILE_BYTES = 1000000;\n\nexport enum InputErrorStateMessages {\n VALID = '',\n INVALID_FORMAT = 'Please provide a file with a valid format.',\n INVALID_FORMATS = 'Please provide files with a valid format.',\n INVALID_SIZE = 'Please provide file with an acceptable size.',\n INVALID_SIZES = 'Please provide files with an acceptable size.',\n INVALID_FORMAT_AND_SIZE = 'Please provide files with an acceptable size and format.',\n}\n"],"names":["AcceptedFileTypes","FileSizeUnit","ErrorType","CriticalErrorMessages","InputErrorStateMessages"],"mappings":"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"}
@@ -1,17 +1,69 @@
1
1
  export declare enum AcceptedFileTypes {
2
2
  CSV = ".csv",
3
+ JSON = ".json",
4
+ XML = ".xml",
5
+ TXT = ".txt",
6
+ PDF = ".pdf",
7
+ DOC = ".doc",
8
+ DOCX = ".docx",
9
+ XLS = ".xls",
10
+ XLSX = ".xlsx",
11
+ PPT = ".ppt",
12
+ PPTX = ".pptx",
13
+ ODT = ".odt",
14
+ ODS = ".ods",
15
+ ODP = ".odp",
16
+ RTF = ".rtf",
3
17
  JPEG = ".jpeg",
4
18
  JPG = ".jpg",
19
+ PNG = ".png",
5
20
  GIF = ".gif",
6
- PNG = ".png"
21
+ BMP = ".bmp",
22
+ WEBP = ".webp",
23
+ SVG = ".svg",
24
+ ICO = ".ico",
25
+ TIFF = ".tiff",
26
+ TIF = ".tif",
27
+ MP3 = ".mp3",
28
+ WAV = ".wav",
29
+ OGG = ".ogg",
30
+ AAC = ".aac",
31
+ FLAC = ".flac",
32
+ M4A = ".m4a",
33
+ WMA = ".wma",
34
+ MP4 = ".mp4",
35
+ AVI = ".avi",
36
+ MOV = ".mov",
37
+ WMV = ".wmv",
38
+ FLV = ".flv",
39
+ WEBM = ".webm",
40
+ MKV = ".mkv",
41
+ M4V = ".m4v",
42
+ ZIP = ".zip",
43
+ RAR = ".rar",
44
+ SEVEN_Z = ".7z",
45
+ TAR = ".tar",
46
+ GZ = ".gz"
7
47
  }
8
48
  export declare enum FileSizeUnit {
9
49
  KB = "KB",
10
50
  MB = "MB"
11
51
  }
12
- export declare enum InputState {
52
+ export declare enum ErrorType {
53
+ critical = "CRITICAL",
54
+ warning = "WARNING"
55
+ }
56
+ export declare enum CriticalErrorMessages {
57
+ INVALID_FORMAT = "Invalid format",
58
+ FILE_IS_TOO_BIG = "File is too big"
59
+ }
60
+ export declare const DEFAULT_MAXIMUM_MULTIPLE_FILES = 10;
61
+ export declare const DEFAULT_MAXIMUM_FILE_BYTES = 1000000;
62
+ export declare enum InputErrorStateMessages {
13
63
  VALID = "",
14
- INVALID_FORMAT = "File is incorrect format",
15
- INVALID_SIZE = "File size is too big",
16
- INVALID_FORMAT_AND_SIZE = "File is incorrect format and too big"
64
+ INVALID_FORMAT = "Please provide a file with a valid format.",
65
+ INVALID_FORMATS = "Please provide files with a valid format.",
66
+ INVALID_SIZE = "Please provide file with an acceptable size.",
67
+ INVALID_SIZES = "Please provide files with an acceptable size.",
68
+ INVALID_FORMAT_AND_SIZE = "Please provide files with an acceptable size and format."
17
69
  }