siam-ui-utils 2.1.9 → 2.1.11

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 (42) hide show
  1. package/eslint.config.js +36 -23
  2. package/index.d.ts +73 -14
  3. package/index.html +3 -3
  4. package/package.json +13 -30
  5. package/src/App.css +47 -0
  6. package/src/App.jsx +82 -39
  7. package/src/CustomSelectInput.jsx +1 -1
  8. package/src/IntlMessages.jsx +7 -6
  9. package/src/archivos-adjuntos/dropzone-uploader-dni-digital/index.jsx +152 -0
  10. package/src/{dropzone-uploader → archivos-adjuntos}/index.jsx +57 -63
  11. package/src/archivos-adjuntos/simple-line-icons.css +778 -0
  12. package/src/assets/css/sass/_gogo.style.scss +9012 -0
  13. package/src/assets/css/sass/_mixins.scss +118 -0
  14. package/src/assets/css/sass/_plugins.scss +1 -0
  15. package/src/assets/css/sass/ampf_style.scss +182 -0
  16. package/src/assets/css/sass/main.scss +11 -0
  17. package/src/assets/css/sass/plugins/react-table.scss +311 -0
  18. package/src/assets/css/sass/themes/gogo.light.redruby.scss +40 -0
  19. package/src/bridges/index.js +1 -0
  20. package/src/bridges/{index.jsx → with-router-bridge.jsx} +2 -0
  21. package/src/constants.js +0 -9
  22. package/src/iconos/icon-button-svg.jsx +2 -1
  23. package/src/iconos/index.js +2 -3
  24. package/src/iconos/styled-icon.jsx +1 -1
  25. package/src/index.css +74 -0
  26. package/src/index.js +7 -8
  27. package/src/main.jsx +6 -6
  28. package/src/tomar-foto/index.jsx +66 -63
  29. package/src/video-call-room/index.jsx +10 -0
  30. package/tsconfig.json +24 -25
  31. package/vite.config.ts +19 -10
  32. package/.eslintrc +0 -73
  33. package/.eslintrc.mjs +0 -53
  34. package/.prettierrc.js +0 -5
  35. package/.storybook/main.ts +0 -17
  36. package/.storybook/preview.ts +0 -16
  37. package/src/dropzone-uploader/DropzoneUploader.stories.tsx +0 -34
  38. package/src/tomar-foto/TomarFoto.stories.tsx +0 -29
  39. /package/src/{dropzone-uploader → archivos-adjuntos}/dropzone-uploader.css +0 -0
  40. /package/{.storybook/css → src/assets/css/vendor}/bootstrap.min.css +0 -0
  41. /package/{.storybook/css → src/assets/css/vendor}/bootstrap.rtl.only.min.css +0 -0
  42. /package/src/{constants-svg.js → iconos/constants-svg.js} +0 -0
@@ -1,22 +1,13 @@
1
+ /* eslint-disable react/prop-types */
1
2
  import React, { useEffect, useState } from 'react';
2
3
  import { getDroppedOrSelectedFiles } from 'html5-file-selector';
3
4
  import Dropzone from 'react-dropzone-uploader';
4
- import { NotificationManager } from 'react-notifications';
5
5
  import 'react-dropzone-uploader/dist/styles.css';
6
- import IconButtonSvg from '../iconos/icon-button-svg';
7
- import { pdfImage } from '../constants-svg';
6
+ import { IconButtonSvg, pdfImage } from '../iconos';
8
7
  import './dropzone-uploader.css';
8
+ import './simple-line-icons.css';
9
9
 
10
- const maxSize = 7; //en MB
11
-
12
- const getFilesFromEvent = (e) => {
13
- return new Promise((resolve) => {
14
- getDroppedOrSelectedFiles(e).then((chosenFiles) => {
15
- resolve(chosenFiles.map((f) => f.fileObject));
16
- });
17
- });
18
- };
19
-
10
+ const maxSize = 7;
20
11
  export const DropzoneUploader = ({
21
12
  onChangeFiles,
22
13
  totalFiles,
@@ -24,42 +15,43 @@ export const DropzoneUploader = ({
24
15
  accept = 'image/*, application/pdf',
25
16
  capture = null,
26
17
  nameFileLabel = 'Subir archivos',
18
+ classNames = '',
27
19
  maxFileSize = maxSize,
20
+ onMaxFileSizeError = () => {
21
+ alert('El archivo supera el tamaño máximo');
22
+ },
28
23
  }) => {
29
24
  const [files, setFiles] = useState([]);
30
25
  const [totalFilesDU, setTotalFilesDU] = useState(totalFiles);
31
-
32
- const Input = ({ accept, onFiles, getFilesFromEvent }) => {
33
- const text =
34
- totalFilesDU > 0
35
- ? `${maxFiles - totalFilesDU} archivo/s más`
36
- : nameFileLabel;
37
- return (
38
- <label className="dropzone-upload-button">
39
- {text}
40
- <input
41
- style={{ display: 'none' }}
42
- type="file"
43
- accept={accept}
44
- capture={capture}
45
- multiple
46
- onChange={(e) => {
47
- getFilesFromEvent(e).then((chosenFiles) => {
48
- onFiles(chosenFiles);
49
- });
50
- }}
51
- />
52
- </label>
53
- );
26
+ const handleChangeStatus = ({ file }, status) => {
27
+ if (status == 'done') {
28
+ const filesTemp = files;
29
+ filesTemp.push(file);
30
+ setFiles(filesTemp);
31
+ onChangeFiles(files);
32
+ setTotalFilesDU(files.length);
33
+ } else if (status == 'removed') {
34
+ const filesTemp = files;
35
+ const index = files.indexOf(file);
36
+ if (index > -1) {
37
+ filesTemp.splice(index, 1);
38
+ }
39
+ setFiles(filesTemp);
40
+ onChangeFiles(files);
41
+ setTotalFilesDU(files.length);
42
+ }
43
+ };
44
+ const getFilesFromEvent = (e) => {
45
+ return new Promise((resolve) => {
46
+ getDroppedOrSelectedFiles(e).then((chosenFiles) => {
47
+ resolve(chosenFiles.map((f) => f.fileObject));
48
+ });
49
+ });
54
50
  };
55
-
56
51
  const CustomPreview = ({ fileWithMeta }) => {
57
52
  const { meta, remove } = fileWithMeta;
58
53
  if (meta.size / (1024 * 1024) > maxFileSize) {
59
- NotificationManager.error(
60
- 'El archivo supera el tamaño máximo',
61
- 'Advertencia',
62
- );
54
+ onMaxFileSizeError();
63
55
  remove();
64
56
  }
65
57
  return (
@@ -103,31 +95,35 @@ export const DropzoneUploader = ({
103
95
  );
104
96
  };
105
97
 
106
- const handleChangeStatus = ({ file }, status) => {
107
- if (status == 'done') {
108
- const filesTemp = files;
109
- filesTemp.push(file);
110
- setFiles(filesTemp);
111
- onChangeFiles(files);
112
- setTotalFilesDU(files.length);
113
- } else if (status == 'removed') {
114
- const filesTemp = files;
115
- const index = files.indexOf(file);
116
- if (index > -1) {
117
- filesTemp.splice(index, 1);
118
- }
119
- setFiles(filesTemp);
120
- onChangeFiles(files);
121
- setTotalFilesDU(files.length);
122
- }
98
+ const Input = ({ accept, onFiles, getFilesFromEvent }) => {
99
+ const text =
100
+ totalFilesDU > 0
101
+ ? `${maxFiles - totalFilesDU} archivo/s más`
102
+ : nameFileLabel;
103
+ return (
104
+ <label className="dropzone-upload-button">
105
+ {text}
106
+ <input
107
+ style={{ display: 'none' }}
108
+ type="file"
109
+ accept={accept}
110
+ capture={capture}
111
+ multiple
112
+ onChange={(e) => {
113
+ getFilesFromEvent(e).then((chosenFiles) => {
114
+ onFiles(chosenFiles);
115
+ });
116
+ }}
117
+ />
118
+ </label>
119
+ );
123
120
  };
124
-
125
121
  useEffect(() => {
126
122
  setTotalFilesDU(totalFiles);
127
123
  }, [totalFiles]);
128
124
 
129
125
  return (
130
- <>
126
+ <div className={`${classNames}`}>
131
127
  <Dropzone
132
128
  disableUpload={false}
133
129
  maxFiles={totalFilesDU < maxFiles ? maxFiles : 0}
@@ -139,8 +135,6 @@ export const DropzoneUploader = ({
139
135
  getFilesFromEvent={getFilesFromEvent}
140
136
  accept={accept}
141
137
  />
142
- </>
138
+ </div>
143
139
  );
144
140
  };
145
-
146
- export default DropzoneUploader;