siam-ui-utils 3.0.31 → 3.0.32

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 (170) hide show
  1. package/dist/CustomBootstrap.js +9 -0
  2. package/dist/CustomBootstrap.js.map +1 -0
  3. package/dist/_virtual/_commonjsHelpers.js +7 -0
  4. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  5. package/dist/_virtual/events.js +6 -0
  6. package/dist/_virtual/events.js.map +1 -0
  7. package/dist/_virtual/events2.js +5 -0
  8. package/dist/_virtual/events2.js.map +1 -0
  9. package/dist/_virtual/index.js +8 -0
  10. package/dist/_virtual/index.js.map +1 -0
  11. package/dist/_virtual/index2.js +5 -0
  12. package/dist/_virtual/index2.js.map +1 -0
  13. package/dist/_virtual/react-dropzone.js +8 -0
  14. package/dist/_virtual/react-dropzone.js.map +1 -0
  15. package/dist/_virtual/react-dropzone2.js +5 -0
  16. package/dist/_virtual/react-dropzone2.js.map +1 -0
  17. package/dist/assets/img/copiar.png.js +5 -0
  18. package/dist/assets/img/copiar.png.js.map +1 -0
  19. package/dist/assets/img/take-photo.jpg.js +5 -0
  20. package/dist/assets/img/take-photo.jpg.js.map +1 -0
  21. package/dist/constants.js +9 -0
  22. package/dist/constants.js.map +1 -0
  23. package/dist/copy-link/index.js +60 -0
  24. package/dist/copy-link/index.js.map +1 -0
  25. package/dist/copy-link/styles.css +38 -0
  26. package/dist/custom-input/CustomInputCheckbox.js +35 -0
  27. package/dist/custom-input/CustomInputCheckbox.js.map +1 -0
  28. package/dist/custom-input/CustomInputCurrency.js +84 -0
  29. package/dist/custom-input/CustomInputCurrency.js.map +1 -0
  30. package/dist/custom-input/CustomInputFile.js +45 -0
  31. package/dist/custom-input/CustomInputFile.js.map +1 -0
  32. package/dist/custom-input/CustomInputRadio.js +66 -0
  33. package/dist/custom-input/CustomInputRadio.js.map +1 -0
  34. package/dist/custom-input/constant.js +5 -0
  35. package/dist/custom-input/constant.js.map +1 -0
  36. package/dist/custom-input/index.css +167 -0
  37. package/dist/custom-input/index.js +12 -0
  38. package/dist/custom-input/index.js.map +1 -0
  39. package/dist/drag-and-dropzone/config.js +59 -0
  40. package/dist/drag-and-dropzone/config.js.map +1 -0
  41. package/dist/drag-and-dropzone/index.css +276 -0
  42. package/dist/drag-and-dropzone/index.js +39 -0
  43. package/dist/drag-and-dropzone/index.js.map +1 -0
  44. package/dist/dropzone/Input.js +77 -0
  45. package/dist/dropzone/Input.js.map +1 -0
  46. package/dist/dropzone/Layout.js +50 -0
  47. package/dist/dropzone/Layout.js.map +1 -0
  48. package/dist/dropzone/Preview.js +117 -0
  49. package/dist/dropzone/Preview.js.map +1 -0
  50. package/dist/dropzone/SubmitButton.js +34 -0
  51. package/dist/dropzone/SubmitButton.js.map +1 -0
  52. package/dist/dropzone/assets/cancel.svg.js +5 -0
  53. package/dist/dropzone/assets/cancel.svg.js.map +1 -0
  54. package/dist/dropzone/assets/remove.svg.js +5 -0
  55. package/dist/dropzone/assets/remove.svg.js.map +1 -0
  56. package/dist/dropzone/assets/restart.svg.js +5 -0
  57. package/dist/dropzone/assets/restart.svg.js.map +1 -0
  58. package/dist/dropzone/index.js +514 -0
  59. package/dist/dropzone/index.js.map +1 -0
  60. package/dist/dropzone/utils.js +93 -0
  61. package/dist/dropzone/utils.js.map +1 -0
  62. package/dist/dropzone-uploader/base/index.css +207 -0
  63. package/dist/dropzone-uploader/base/index.js +135 -0
  64. package/dist/dropzone-uploader/base/index.js.map +1 -0
  65. package/dist/dropzone-uploader/index.js +7 -0
  66. package/dist/dropzone-uploader/index.js.map +1 -0
  67. package/dist/dropzone-uploader/styled/index.css +348 -0
  68. package/dist/dropzone-uploader/styled/index.js +148 -0
  69. package/dist/dropzone-uploader/styled/index.js.map +1 -0
  70. package/dist/iconos/constants-svg.js +666 -0
  71. package/dist/iconos/constants-svg.js.map +1 -0
  72. package/dist/iconos/icon-button-svg.js +50 -0
  73. package/dist/iconos/icon-button-svg.js.map +1 -0
  74. package/dist/iconos/index.js +24 -0
  75. package/dist/iconos/index.js.map +1 -0
  76. package/dist/iconos/styled-icon.js +26 -0
  77. package/dist/iconos/styled-icon.js.map +1 -0
  78. package/dist/index.js +4 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/intl-messages/index.js +11 -0
  81. package/dist/intl-messages/index.js.map +1 -0
  82. package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +8 -0
  83. package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js.map +1 -0
  84. package/dist/node_modules/@babel/runtime/helpers/esm/extends.js +13 -0
  85. package/dist/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
  86. package/dist/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +8 -0
  87. package/dist/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js.map +1 -0
  88. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +13 -0
  89. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -0
  90. package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +9 -0
  91. package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -0
  92. package/dist/node_modules/classnames/index.js +62 -0
  93. package/dist/node_modules/classnames/index.js.map +1 -0
  94. package/dist/node_modules/dom-helpers/esm/addClass.js +10 -0
  95. package/dist/node_modules/dom-helpers/esm/addClass.js.map +1 -0
  96. package/dist/node_modules/dom-helpers/esm/hasClass.js +8 -0
  97. package/dist/node_modules/dom-helpers/esm/hasClass.js.map +1 -0
  98. package/dist/node_modules/dom-helpers/esm/removeClass.js +16 -0
  99. package/dist/node_modules/dom-helpers/esm/removeClass.js.map +1 -0
  100. package/dist/node_modules/events/events.js +372 -0
  101. package/dist/node_modules/events/events.js.map +1 -0
  102. package/dist/node_modules/react-dropzone-component/dist/react-dropzone.js +1023 -0
  103. package/dist/node_modules/react-dropzone-component/dist/react-dropzone.js.map +1 -0
  104. package/dist/node_modules/react-multi-select-component/dist/esm/index.js +178 -0
  105. package/dist/node_modules/react-multi-select-component/dist/esm/index.js.map +1 -0
  106. package/dist/node_modules/react-transition-group/esm/CSSTransition.js +275 -0
  107. package/dist/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -0
  108. package/dist/node_modules/react-transition-group/esm/Transition.js +441 -0
  109. package/dist/node_modules/react-transition-group/esm/Transition.js.map +1 -0
  110. package/dist/node_modules/react-transition-group/esm/TransitionGroup.js +146 -0
  111. package/dist/node_modules/react-transition-group/esm/TransitionGroup.js.map +1 -0
  112. package/dist/node_modules/react-transition-group/esm/TransitionGroupContext.js +6 -0
  113. package/dist/node_modules/react-transition-group/esm/TransitionGroupContext.js.map +1 -0
  114. package/dist/node_modules/react-transition-group/esm/config.js +7 -0
  115. package/dist/node_modules/react-transition-group/esm/config.js.map +1 -0
  116. package/dist/node_modules/react-transition-group/esm/utils/ChildMapping.js +100 -0
  117. package/dist/node_modules/react-transition-group/esm/utils/ChildMapping.js.map +1 -0
  118. package/dist/node_modules/react-transition-group/esm/utils/PropTypes.js +24 -0
  119. package/dist/node_modules/react-transition-group/esm/utils/PropTypes.js.map +1 -0
  120. package/dist/node_modules/react-transition-group/esm/utils/reflow.js +7 -0
  121. package/dist/node_modules/react-transition-group/esm/utils/reflow.js.map +1 -0
  122. package/dist/react-notifications/Notification.js +73 -0
  123. package/dist/react-notifications/Notification.js.map +1 -0
  124. package/dist/react-notifications/NotificationContainer.js +59 -0
  125. package/dist/react-notifications/NotificationContainer.js.map +1 -0
  126. package/dist/react-notifications/NotificationManager.js +174 -0
  127. package/dist/react-notifications/NotificationManager.js.map +1 -0
  128. package/dist/react-notifications/Notifications.js +72 -0
  129. package/dist/react-notifications/Notifications.js.map +1 -0
  130. package/dist/react-notifications/constants.js +26 -0
  131. package/dist/react-notifications/constants.js.map +1 -0
  132. package/dist/react-notifications/index.js +11 -0
  133. package/dist/react-notifications/index.js.map +1 -0
  134. package/dist/react-notifications/notifications.css +213 -0
  135. package/dist/select/custom-select/constants.js +8 -0
  136. package/dist/select/custom-select/constants.js.map +1 -0
  137. package/dist/select/custom-select/index.js +90 -0
  138. package/dist/select/custom-select/index.js.map +1 -0
  139. package/dist/select/custom-select-input/index.js +12 -0
  140. package/dist/select/custom-select-input/index.js.map +1 -0
  141. package/dist/select/index.js +9 -0
  142. package/dist/select/index.js.map +1 -0
  143. package/dist/select/multi-select/badge-label-multi-select.js +29 -0
  144. package/dist/select/multi-select/badge-label-multi-select.js.map +1 -0
  145. package/dist/select/multi-select/index.css +24 -0
  146. package/dist/select/multi-select/index.js +62 -0
  147. package/dist/select/multi-select/index.js.map +1 -0
  148. package/dist/select/multi-select/styled-component.js +24 -0
  149. package/dist/select/multi-select/styled-component.js.map +1 -0
  150. package/dist/timer/index.js +60 -0
  151. package/dist/timer/index.js.map +1 -0
  152. package/dist/timer/styles.css +59 -0
  153. package/dist/tomar-foto/index.js +62 -0
  154. package/dist/tomar-foto/index.js.map +1 -0
  155. package/dist/view-layout/button-editor.js +14 -0
  156. package/dist/view-layout/button-editor.js.map +1 -0
  157. package/dist/view-layout/constants.js +11 -0
  158. package/dist/view-layout/constants.js.map +1 -0
  159. package/dist/view-layout/editor-layer.js +28 -0
  160. package/dist/view-layout/editor-layer.js.map +1 -0
  161. package/dist/view-layout/index.js +53 -0
  162. package/dist/view-layout/index.js.map +1 -0
  163. package/dist/view-layout/slot-wrapper.js +39 -0
  164. package/dist/view-layout/slot-wrapper.js.map +1 -0
  165. package/dist/view-layout/styles.css +127 -0
  166. package/dist/where-by-room/index.js +20 -0
  167. package/dist/where-by-room/index.js.map +1 -0
  168. package/dist/where-by-room/room.js +78 -0
  169. package/dist/where-by-room/room.js.map +1 -0
  170. package/package.json +1 -1
@@ -0,0 +1,93 @@
1
+ const formatBytes = (b) => {
2
+ const units = ["bytes", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
3
+ let l = 0;
4
+ let n = b;
5
+ while (n >= 1024) {
6
+ n /= 1024;
7
+ l += 1;
8
+ }
9
+ return `${n.toFixed(n >= 10 || l < 1 ? 0 : 1)}${units[l]}`;
10
+ };
11
+ const formatDuration = (seconds) => {
12
+ const date = /* @__PURE__ */ new Date(0);
13
+ date.setSeconds(seconds);
14
+ const dateString = date.toISOString().slice(11, 19);
15
+ if (seconds < 3600) return dateString.slice(3);
16
+ return dateString;
17
+ };
18
+ const accepts = (file, accept) => {
19
+ if (!accept || accept === "*") return true;
20
+ const mimeType = file.type || "";
21
+ const baseMimeType = mimeType.replace(/\/.*$/, "");
22
+ return accept.split(",").map((t) => t.trim()).some((type) => {
23
+ if (type.charAt(0) === ".") {
24
+ return file.name === void 0 || file.name.toLowerCase().endsWith(type.toLowerCase());
25
+ } else if (type.endsWith("/*")) {
26
+ return baseMimeType === type.replace(/\/.*$/, "");
27
+ }
28
+ return mimeType === type;
29
+ });
30
+ };
31
+ const resolveValue = (value, ...args) => {
32
+ if (typeof value === "function") return value(...args);
33
+ return value;
34
+ };
35
+ const defaultClassNames = {
36
+ dropzone: "dzu-dropzone",
37
+ dropzoneActive: "dzu-dropzoneActive",
38
+ dropzoneReject: "dzu-dropzoneActive",
39
+ dropzoneDisabled: "dzu-dropzoneDisabled",
40
+ input: "dzu-input",
41
+ inputLabel: "dzu-inputLabel",
42
+ inputLabelWithFiles: "dzu-inputLabelWithFiles",
43
+ preview: "dzu-previewContainer",
44
+ previewImage: "dzu-previewImage",
45
+ submitButtonContainer: "dzu-submitButtonContainer",
46
+ submitButton: "dzu-submitButton"
47
+ };
48
+ const mergeStyles = (classNames, styles, addClassNames, ...args) => {
49
+ const resolvedClassNames = {
50
+ ...defaultClassNames
51
+ };
52
+ const resolvedStyles = { ...styles };
53
+ for (const [key, value] of Object.entries(classNames)) {
54
+ resolvedClassNames[key] = resolveValue(value, ...args);
55
+ }
56
+ for (const [key, value] of Object.entries(addClassNames)) {
57
+ resolvedClassNames[key] = `${resolvedClassNames[key]} ${resolveValue(
58
+ value,
59
+ ...args
60
+ )}`;
61
+ }
62
+ for (const [key, value] of Object.entries(styles)) {
63
+ resolvedStyles[key] = resolveValue(value, ...args);
64
+ }
65
+ return {
66
+ classNames: resolvedClassNames,
67
+ styles: resolvedStyles
68
+ };
69
+ };
70
+ const getFilesFromEvent = (event) => {
71
+ let items = null;
72
+ if ("dataTransfer" in event) {
73
+ const dt = event.dataTransfer;
74
+ if ("files" in dt && dt.files.length) {
75
+ items = dt.files;
76
+ } else if (dt.items && dt.items.length) {
77
+ items = dt.items;
78
+ }
79
+ } else if (event.target && event.target.files) {
80
+ items = event.target.files;
81
+ }
82
+ return Array.prototype.slice.call(items);
83
+ };
84
+ export {
85
+ accepts,
86
+ defaultClassNames,
87
+ formatBytes,
88
+ formatDuration,
89
+ getFilesFromEvent,
90
+ mergeStyles,
91
+ resolveValue
92
+ };
93
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../src/dropzone/utils.ts"],"sourcesContent":["import React from 'react';\r\nimport { IStyleCustomization } from '.';\r\n\r\nexport const formatBytes = (b: number) => {\r\n const units = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n let l = 0;\r\n let n = b;\r\n\r\n while (n >= 1024) {\r\n n /= 1024;\r\n l += 1;\r\n }\r\n\r\n return `${n.toFixed(n >= 10 || l < 1 ? 0 : 1)}${units[l]}`;\r\n};\r\n\r\nexport const formatDuration = (seconds: number) => {\r\n const date = new Date(0);\r\n date.setSeconds(seconds);\r\n const dateString = date.toISOString().slice(11, 19);\r\n if (seconds < 3600) return dateString.slice(3);\r\n return dateString;\r\n};\r\n\r\n// adapted from: https://github.com/okonet/attr-accept/blob/master/src/index.js\r\n// returns true if file.name is empty and accept string is something like \".csv\",\r\n// because file comes from dataTransferItem for drag events, and\r\n// dataTransferItem.name is always empty\r\nexport const accepts = (file: File, accept: string) => {\r\n if (!accept || accept === '*') return true;\r\n\r\n const mimeType = file.type || '';\r\n const baseMimeType = mimeType.replace(/\\/.*$/, '');\r\n\r\n return accept\r\n .split(',')\r\n .map((t) => t.trim())\r\n .some((type) => {\r\n if (type.charAt(0) === '.') {\r\n return (\r\n file.name === undefined ||\r\n file.name.toLowerCase().endsWith(type.toLowerCase())\r\n );\r\n } else if (type.endsWith('/*')) {\r\n // this is something like an image/* mime type\r\n return baseMimeType === type.replace(/\\/.*$/, '');\r\n }\r\n return mimeType === type;\r\n });\r\n};\r\n\r\ntype ResolveFn<T> = (...args: any[]) => T;\r\n\r\nexport const resolveValue = <T = any>(\r\n value: ResolveFn<T> | T,\r\n ...args: any[]\r\n) => {\r\n if (typeof value === 'function') return (value as ResolveFn<T>)(...args);\r\n return value;\r\n};\r\n\r\nexport const defaultClassNames = {\r\n dropzone: 'dzu-dropzone',\r\n dropzoneActive: 'dzu-dropzoneActive',\r\n dropzoneReject: 'dzu-dropzoneActive',\r\n dropzoneDisabled: 'dzu-dropzoneDisabled',\r\n input: 'dzu-input',\r\n inputLabel: 'dzu-inputLabel',\r\n inputLabelWithFiles: 'dzu-inputLabelWithFiles',\r\n preview: 'dzu-previewContainer',\r\n previewImage: 'dzu-previewImage',\r\n submitButtonContainer: 'dzu-submitButtonContainer',\r\n submitButton: 'dzu-submitButton',\r\n};\r\n\r\nexport const mergeStyles = (\r\n classNames: IStyleCustomization<string>,\r\n styles: IStyleCustomization<React.CSSProperties>,\r\n addClassNames: IStyleCustomization<string>,\r\n ...args: any[]\r\n) => {\r\n const resolvedClassNames: { [property: string]: string } = {\r\n ...defaultClassNames,\r\n };\r\n const resolvedStyles = { ...styles } as { [property: string]: string };\r\n\r\n for (const [key, value] of Object.entries(classNames)) {\r\n resolvedClassNames[key] = resolveValue(value, ...args);\r\n }\r\n\r\n for (const [key, value] of Object.entries(addClassNames)) {\r\n resolvedClassNames[key] = `${resolvedClassNames[key]} ${resolveValue(\r\n value,\r\n ...args\r\n )}`;\r\n }\r\n\r\n for (const [key, value] of Object.entries(styles)) {\r\n resolvedStyles[key] = resolveValue(value, ...args);\r\n }\r\n\r\n return {\r\n classNames: resolvedClassNames,\r\n styles: resolvedStyles as IStyleCustomization<React.CSSProperties>,\r\n };\r\n};\r\n\r\nexport const getFilesFromEvent = (\r\n event: React.DragEvent<HTMLElement> | React.ChangeEvent<HTMLInputElement>\r\n): Array<File | DataTransferItem> => {\r\n let items = null;\r\n\r\n if ('dataTransfer' in event) {\r\n const dt = event.dataTransfer;\r\n\r\n // NOTE: Only the 'drop' event has access to DataTransfer.files, otherwise it will always be empty\r\n if ('files' in dt && dt.files.length) {\r\n items = dt.files;\r\n } else if (dt.items && dt.items.length) {\r\n items = dt.items;\r\n }\r\n } else if (event.target && event.target.files) {\r\n items = event.target.files;\r\n }\r\n\r\n return Array.prototype.slice.call(items);\r\n};\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ .dropzone-upload-button {
2
+ padding: 25;
3
+ border-radius: 5px !important;
4
+ cursor: pointer;
5
+ color: #fff;
6
+ width: 10rem !important;
7
+ height: 2rem !important;
8
+ line-height: 1.5 !important;
9
+ font-size: 13px;
10
+ text-align: center;
11
+ vertical-align: middle !important;
12
+ border: none;
13
+ padding-top: 0.5rem;
14
+ margin-top: 0.5rem;
15
+ background-color: #af251b;
16
+ &:hover {
17
+ background-color: rgb(108, 31, 1);
18
+ }
19
+ }
20
+ .dropzone-upload-frame {
21
+ border: 0px !important;
22
+ overflow: 'none' !important;
23
+ }
24
+ .dropzone-upload-previewContainer {
25
+ display: flex;
26
+ flex-direction: row;
27
+ align-items: center;
28
+ justify-content: space-between;
29
+ position: relative;
30
+ width: 100px;
31
+ min-height: 60px;
32
+ z-index: 1;
33
+ border-bottom: 1px solid #ececec;
34
+ box-sizing: border-box;
35
+ }
36
+
37
+ .dropzone-upload-previewImage {
38
+ width: 60rem;
39
+ max-height: 60px;
40
+ max-width: 10rem;
41
+ border-radius: 4px;
42
+ padding-right: 1rem;
43
+ }
44
+
45
+ .dropzone-upload-delete-btn {
46
+ width: 2rem;
47
+ line-height: 1.5;
48
+ border: 0;
49
+ color: #ff0000;
50
+ background-color: #f8f8f8;
51
+ padding-right: 1rem;
52
+ }
53
+
54
+ .dropzone-upload-file-name-container {
55
+ position: relative;
56
+ display: inline-block;
57
+ max-width: 150px; /* Ajusta este valor para aumentar el ancho */
58
+ }
59
+
60
+ .dropzone-upload-file-name {
61
+ padding-right: 1rem;
62
+ white-space: nowrap;
63
+ overflow: hidden;
64
+ text-overflow: ellipsis;
65
+ max-width: 150px; /* Ajusta este valor para aumentar el ancho */
66
+ }
67
+
68
+ .dzu-dropzone {
69
+ display: flex;
70
+ flex-direction: column;
71
+ align-items: center;
72
+ width: 100%;
73
+ min-height: 120px;
74
+ overflow: scroll;
75
+ margin: 0 auto;
76
+ position: relative;
77
+ box-sizing: border-box;
78
+ transition: all 0.15s linear;
79
+ border: 2px solid #d9d9d9;
80
+ border-radius: 4px;
81
+ }
82
+
83
+ .dzu-dropzoneActive {
84
+ background-color: #deebff;
85
+ border-color: #2484ff;
86
+ }
87
+
88
+ .dzu-dropzoneDisabled {
89
+ opacity: 0.5;
90
+ }
91
+
92
+ .dzu-dropzoneDisabled *:hover {
93
+ cursor: unset;
94
+ }
95
+
96
+ .dzu-input {
97
+ display: none;
98
+ }
99
+
100
+ .dzu-inputLabel {
101
+ display: flex;
102
+ justify-content: center;
103
+ align-items: center;
104
+ position: absolute;
105
+ top: 0;
106
+ bottom: 0;
107
+ left: 0;
108
+ right: 0;
109
+ font-family: 'Helvetica', sans-serif;
110
+ font-size: 20px;
111
+ font-weight: 600;
112
+ color: #2484ff;
113
+ -moz-osx-font-smoothing: grayscale;
114
+ -webkit-font-smoothing: antialiased;
115
+ cursor: pointer;
116
+ }
117
+
118
+ .dzu-inputLabelWithFiles {
119
+ display: flex;
120
+ justify-content: center;
121
+ align-items: center;
122
+ align-self: flex-start;
123
+ padding: 0 14px;
124
+ min-height: 32px;
125
+ background-color: #e6e6e6;
126
+ color: #2484ff;
127
+ border: none;
128
+ font-family: 'Helvetica', sans-serif;
129
+ border-radius: 4px;
130
+ font-size: 14px;
131
+ font-weight: 600;
132
+ margin-top: 20px;
133
+ margin-left: 3%;
134
+ -moz-osx-font-smoothing: grayscale;
135
+ -webkit-font-smoothing: antialiased;
136
+ cursor: pointer;
137
+ }
138
+
139
+ .dzu-previewContainer {
140
+ padding: 40px 3%;
141
+ display: flex;
142
+ flex-direction: row;
143
+ align-items: center;
144
+ justify-content: space-between;
145
+ position: relative;
146
+ width: 100%;
147
+ min-height: 60px;
148
+ z-index: 1;
149
+ border-bottom: 1px solid #ececec;
150
+ box-sizing: border-box;
151
+ }
152
+
153
+ .dzu-previewStatusContainer {
154
+ display: flex;
155
+ align-items: center;
156
+ }
157
+
158
+ .dzu-previewFileName {
159
+ font-family: 'Helvetica', sans-serif;
160
+ font-size: 14px;
161
+ font-weight: 400;
162
+ color: #333333;
163
+ }
164
+
165
+ .dzu-previewImage {
166
+ width: auto;
167
+ max-height: 40px;
168
+ max-width: 140px;
169
+ border-radius: 4px;
170
+ }
171
+
172
+ .dzu-previewButton {
173
+ background-size: 14px 14px;
174
+ background-position: center;
175
+ background-repeat: no-repeat;
176
+ width: 14px;
177
+ height: 14px;
178
+ cursor: pointer;
179
+ opacity: 0.9;
180
+ margin: 0 0 2px 10px;
181
+ }
182
+
183
+ .dzu-submitButtonContainer {
184
+ margin: 24px 0;
185
+ z-index: 1;
186
+ }
187
+
188
+ .dzu-submitButton {
189
+ padding: 0 14px;
190
+ min-height: 32px;
191
+ background-color: #2484ff;
192
+ border: none;
193
+ border-radius: 4px;
194
+ font-family: 'Helvetica', sans-serif;
195
+ font-size: 14px;
196
+ font-weight: 600;
197
+ color: #fff;
198
+ -moz-osx-font-smoothing: grayscale;
199
+ -webkit-font-smoothing: antialiased;
200
+ cursor: pointer;
201
+ }
202
+
203
+ .dzu-submitButton:disabled {
204
+ background-color: #e6e6e6;
205
+ color: #333333;
206
+ cursor: unset;
207
+ }
@@ -0,0 +1,135 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { getDroppedOrSelectedFiles } from "html5-file-selector";
3
+ import { useState, useEffect } from "react";
4
+ import "./index.css";
5
+ import { Dropzone } from "../../dropzone/index.js";
6
+ import { IconButtonSvg as _t } from "../../iconos/icon-button-svg.js";
7
+ import { pdfImage } from "../../iconos/constants-svg.js";
8
+ const maxSize = 7;
9
+ const DropzoneUploader = ({
10
+ onChangeFiles,
11
+ totalFiles,
12
+ maxFiles = 3,
13
+ accept = "image/*, application/pdf",
14
+ capture = null,
15
+ nameFileLabel = "Subir archivos",
16
+ classNames = "",
17
+ maxFileSize = maxSize,
18
+ onMaxFileSizeError = () => {
19
+ alert("El archivo supera el tamaño máximo");
20
+ }
21
+ }) => {
22
+ const [files, setFiles] = useState([]);
23
+ const [totalFilesDU, setTotalFilesDU] = useState(totalFiles);
24
+ const handleChangeStatus = ({ file }, status) => {
25
+ if (status == "done") {
26
+ const filesTemp = files;
27
+ filesTemp.push(file);
28
+ setFiles(filesTemp);
29
+ onChangeFiles(files);
30
+ setTotalFilesDU(files.length);
31
+ } else if (status == "removed") {
32
+ const filesTemp = files;
33
+ const index = files.indexOf(file);
34
+ if (index > -1) {
35
+ filesTemp.splice(index, 1);
36
+ }
37
+ setFiles(filesTemp);
38
+ onChangeFiles(files);
39
+ setTotalFilesDU(files.length);
40
+ }
41
+ };
42
+ const getFilesFromEvent = (e) => {
43
+ return new Promise((resolve) => {
44
+ getDroppedOrSelectedFiles(e).then((chosenFiles) => {
45
+ resolve(chosenFiles.map((f) => f.fileObject));
46
+ });
47
+ });
48
+ };
49
+ const CustomPreview = ({ fileWithMeta }) => {
50
+ const { meta, remove } = fileWithMeta;
51
+ if (meta.size / (1024 * 1024) > maxFileSize) {
52
+ onMaxFileSizeError();
53
+ remove();
54
+ }
55
+ return /* @__PURE__ */ jsxs("div", { className: "dropzone-upload-previewContainer", children: [
56
+ meta.type === "application/pdf" ? /* @__PURE__ */ jsxs(Fragment, { children: [
57
+ /* @__PURE__ */ jsx(
58
+ _t,
59
+ {
60
+ className: "form-control flex",
61
+ svg: pdfImage,
62
+ svgOver: pdfImage,
63
+ height: "1.6rem",
64
+ width: "1.6rem",
65
+ title: meta.name
66
+ }
67
+ ),
68
+ /* @__PURE__ */ jsx("p", { children: meta.name.length > 17 ? meta.name.substring(0, 17) + "..." : meta.name })
69
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
70
+ /* @__PURE__ */ jsx(
71
+ "img",
72
+ {
73
+ className: "dropzone-upload-previewImage",
74
+ src: meta.previewUrl,
75
+ alt: meta.name
76
+ }
77
+ ),
78
+ /* @__PURE__ */ jsx("p", { children: meta.name.length > 17 ? meta.name.substring(0, 17) + "..." : meta.name })
79
+ ] }),
80
+ /* @__PURE__ */ jsxs("p", { children: [
81
+ (meta.size / 1024).toFixed(2),
82
+ " .Kb"
83
+ ] }),
84
+ /* @__PURE__ */ jsx(
85
+ "button",
86
+ {
87
+ onClick: remove,
88
+ className: "dropzone-upload-delete-btn icon-trash"
89
+ }
90
+ )
91
+ ] });
92
+ };
93
+ const Input = ({ accept: accept2, onFiles, getFilesFromEvent: getFilesFromEvent2 }) => {
94
+ const text = totalFilesDU > 0 ? `${maxFiles - totalFilesDU} archivo/s más` : nameFileLabel;
95
+ return /* @__PURE__ */ jsxs("label", { className: "dropzone-upload-button", children: [
96
+ text,
97
+ /* @__PURE__ */ jsx(
98
+ "input",
99
+ {
100
+ style: { display: "none" },
101
+ type: "file",
102
+ accept: accept2,
103
+ capture,
104
+ multiple: true,
105
+ onChange: (e) => {
106
+ getFilesFromEvent2(e).then((chosenFiles) => {
107
+ onFiles(chosenFiles);
108
+ });
109
+ }
110
+ }
111
+ )
112
+ ] });
113
+ };
114
+ useEffect(() => {
115
+ setTotalFilesDU(totalFiles);
116
+ }, [totalFiles]);
117
+ return /* @__PURE__ */ jsx("div", { className: `${classNames}`, children: /* @__PURE__ */ jsx(
118
+ Dropzone,
119
+ {
120
+ disableUpload: false,
121
+ maxFiles: totalFilesDU < maxFiles ? maxFiles : 0,
122
+ maxSize: maxFileSize,
123
+ InputComponent: Input,
124
+ PreviewComponent: CustomPreview,
125
+ classNames: { dropzone: "dropzone-upload-frame" },
126
+ onChangeStatus: handleChangeStatus,
127
+ getFilesFromEvent,
128
+ accept
129
+ }
130
+ ) });
131
+ };
132
+ export {
133
+ DropzoneUploader
134
+ };
135
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/dropzone-uploader/base/index.jsx"],"sourcesContent":["import { getDroppedOrSelectedFiles } from 'html5-file-selector';\r\nimport { useEffect, useState } from 'react';\r\n\r\nimport { IconButtonSvg, pdfImage } from '../../iconos';\r\nimport './index.css';\r\nimport Dropzone from '../../dropzone';\r\n\r\nconst maxSize = 7;\r\nexport const DropzoneUploader = ({\r\n onChangeFiles,\r\n totalFiles,\r\n maxFiles = 3,\r\n accept = 'image/*, application/pdf',\r\n capture = null,\r\n nameFileLabel = 'Subir archivos',\r\n classNames = '',\r\n maxFileSize = maxSize,\r\n onMaxFileSizeError = () => {\r\n alert('El archivo supera el tamaño máximo');\r\n },\r\n}) => {\r\n const [files, setFiles] = useState([]);\r\n const [totalFilesDU, setTotalFilesDU] = useState(totalFiles);\r\n const handleChangeStatus = ({ file }, status) => {\r\n if (status == 'done') {\r\n const filesTemp = files;\r\n filesTemp.push(file);\r\n setFiles(filesTemp);\r\n onChangeFiles(files);\r\n setTotalFilesDU(files.length);\r\n } else if (status == 'removed') {\r\n const filesTemp = files;\r\n const index = files.indexOf(file);\r\n if (index > -1) {\r\n filesTemp.splice(index, 1);\r\n }\r\n setFiles(filesTemp);\r\n onChangeFiles(files);\r\n setTotalFilesDU(files.length);\r\n }\r\n };\r\n const getFilesFromEvent = (e) => {\r\n return new Promise((resolve) => {\r\n getDroppedOrSelectedFiles(e).then((chosenFiles) => {\r\n resolve(chosenFiles.map((f) => f.fileObject));\r\n });\r\n });\r\n };\r\n const CustomPreview = ({ fileWithMeta }) => {\r\n const { meta, remove } = fileWithMeta;\r\n if (meta.size / (1024 * 1024) > maxFileSize) {\r\n onMaxFileSizeError();\r\n remove();\r\n }\r\n return (\r\n <div className=\"dropzone-upload-previewContainer\">\r\n {meta.type === 'application/pdf' ? (\r\n <>\r\n <IconButtonSvg\r\n className=\"form-control flex\"\r\n svg={pdfImage}\r\n svgOver={pdfImage}\r\n height=\"1.6rem\"\r\n width=\"1.6rem\"\r\n title={meta.name}\r\n />\r\n <p>\r\n {meta.name.length > 17\r\n ? meta.name.substring(0, 17) + '...'\r\n : meta.name}\r\n </p>\r\n </>\r\n ) : (\r\n <>\r\n <img\r\n className=\"dropzone-upload-previewImage\"\r\n src={meta.previewUrl}\r\n alt={meta.name}\r\n />\r\n <p>\r\n {meta.name.length > 17\r\n ? meta.name.substring(0, 17) + '...'\r\n : meta.name}\r\n </p>\r\n </>\r\n )}\r\n <p>{(meta.size / 1024).toFixed(2)} .Kb</p>\r\n <button\r\n onClick={remove}\r\n className=\"dropzone-upload-delete-btn icon-trash\"\r\n ></button>\r\n </div>\r\n );\r\n };\r\n\r\n const Input = ({ accept, onFiles, getFilesFromEvent }) => {\r\n const text =\r\n totalFilesDU > 0\r\n ? `${maxFiles - totalFilesDU} archivo/s más`\r\n : nameFileLabel;\r\n return (\r\n <label className=\"dropzone-upload-button\">\r\n {text}\r\n <input\r\n style={{ display: 'none' }}\r\n type=\"file\"\r\n accept={accept}\r\n capture={capture}\r\n multiple\r\n onChange={(e) => {\r\n getFilesFromEvent(e).then((chosenFiles) => {\r\n onFiles(chosenFiles);\r\n });\r\n }}\r\n />\r\n </label>\r\n );\r\n };\r\n useEffect(() => {\r\n setTotalFilesDU(totalFiles);\r\n }, [totalFiles]);\r\n\r\n return (\r\n <div className={`${classNames}`}>\r\n <Dropzone\r\n disableUpload={false}\r\n maxFiles={totalFilesDU < maxFiles ? maxFiles : 0}\r\n maxSize={maxFileSize} // en megas\r\n InputComponent={Input}\r\n PreviewComponent={CustomPreview}\r\n classNames={{ dropzone: 'dropzone-upload-frame' }}\r\n onChangeStatus={handleChangeStatus}\r\n getFilesFromEvent={getFilesFromEvent}\r\n accept={accept}\r\n />\r\n </div>\r\n );\r\n};\r\n"],"names":["IconButtonSvg","accept","getFilesFromEvent"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { DropzoneUploader } from "./base/index.js";
2
+ import { DropzoneUploaderStyled } from "./styled/index.js";
3
+ export {
4
+ DropzoneUploader,
5
+ DropzoneUploaderStyled
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}