siam-ui-utils 3.0.31 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CustomBootstrap.js +9 -0
- package/dist/CustomBootstrap.js.map +1 -0
- package/dist/_virtual/_commonjsHelpers.js +7 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/events.js +6 -0
- package/dist/_virtual/events.js.map +1 -0
- package/dist/_virtual/events2.js +5 -0
- package/dist/_virtual/events2.js.map +1 -0
- package/dist/_virtual/index.js +8 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/index2.js +5 -0
- package/dist/_virtual/index2.js.map +1 -0
- package/dist/assets/img/copiar.png.js +5 -0
- package/dist/assets/img/copiar.png.js.map +1 -0
- package/dist/assets/img/take-photo.jpg.js +5 -0
- package/dist/assets/img/take-photo.jpg.js.map +1 -0
- package/dist/constants.js +9 -0
- package/dist/constants.js.map +1 -0
- package/dist/copy-link/index.js +60 -0
- package/dist/copy-link/index.js.map +1 -0
- package/dist/copy-link/styles.css +38 -0
- package/dist/custom-input/CustomInputCheckbox.js +37 -0
- package/dist/custom-input/CustomInputCheckbox.js.map +1 -0
- package/dist/custom-input/CustomInputCurrency.js +84 -0
- package/dist/custom-input/CustomInputCurrency.js.map +1 -0
- package/dist/custom-input/CustomInputFile.js +47 -0
- package/dist/custom-input/CustomInputFile.js.map +1 -0
- package/dist/custom-input/CustomInputRadio.js +68 -0
- package/dist/custom-input/CustomInputRadio.js.map +1 -0
- package/dist/custom-input/constant.js +5 -0
- package/dist/custom-input/constant.js.map +1 -0
- package/dist/custom-input/index.css +167 -0
- package/dist/custom-input/index.js +12 -0
- package/dist/custom-input/index.js.map +1 -0
- package/dist/drag-and-dropzone/DropzoneComponent.js +83 -0
- package/dist/drag-and-dropzone/DropzoneComponent.js.map +1 -0
- package/dist/drag-and-dropzone/config.js +59 -0
- package/dist/drag-and-dropzone/config.js.map +1 -0
- package/dist/drag-and-dropzone/index.css +276 -0
- package/dist/drag-and-dropzone/index.js +39 -0
- package/dist/drag-and-dropzone/index.js.map +1 -0
- package/dist/dropzone/Input.js +77 -0
- package/dist/dropzone/Input.js.map +1 -0
- package/dist/dropzone/Layout.js +50 -0
- package/dist/dropzone/Layout.js.map +1 -0
- package/dist/dropzone/Preview.js +117 -0
- package/dist/dropzone/Preview.js.map +1 -0
- package/dist/dropzone/SubmitButton.js +34 -0
- package/dist/dropzone/SubmitButton.js.map +1 -0
- package/dist/dropzone/assets/cancel.svg.js +5 -0
- package/dist/dropzone/assets/cancel.svg.js.map +1 -0
- package/dist/dropzone/assets/remove.svg.js +5 -0
- package/dist/dropzone/assets/remove.svg.js.map +1 -0
- package/dist/dropzone/assets/restart.svg.js +5 -0
- package/dist/dropzone/assets/restart.svg.js.map +1 -0
- package/dist/dropzone/index.js +514 -0
- package/dist/dropzone/index.js.map +1 -0
- package/dist/dropzone/utils.js +93 -0
- package/dist/dropzone/utils.js.map +1 -0
- package/dist/dropzone-uploader/base/index.css +207 -0
- package/dist/dropzone-uploader/base/index.js +135 -0
- package/dist/dropzone-uploader/base/index.js.map +1 -0
- package/dist/dropzone-uploader/index.js +7 -0
- package/dist/dropzone-uploader/index.js.map +1 -0
- package/dist/dropzone-uploader/styled/index.css +348 -0
- package/dist/dropzone-uploader/styled/index.js +148 -0
- package/dist/dropzone-uploader/styled/index.js.map +1 -0
- package/dist/iconos/constants-svg.js +666 -0
- package/dist/iconos/constants-svg.js.map +1 -0
- package/dist/iconos/icon-button-svg.js +50 -0
- package/dist/iconos/icon-button-svg.js.map +1 -0
- package/dist/iconos/index.js +24 -0
- package/dist/iconos/index.js.map +1 -0
- package/dist/iconos/styled-icon.js +26 -0
- package/dist/iconos/styled-icon.js.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/intl-messages/index.js +11 -0
- package/dist/intl-messages/index.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +8 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/extends.js +13 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +8 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +13 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +9 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/Button.js +111 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/Button.js.map +1 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/CloseButton.js +106 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/CloseButton.js.map +1 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/Col.js +125 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/Col.js.map +1 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/FormGroup.js +75 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/FormGroup.js.map +1 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/Input.js +225 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/Input.js.map +1 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/Label.js +122 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/Label.js.map +1 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/Row.js +83 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/Row.js.map +1 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/utils.js +68 -0
- package/dist/node_modules/@neolution-ch/reactstrap/esm/utils.js.map +1 -0
- package/dist/node_modules/classnames/index.js +62 -0
- package/dist/node_modules/classnames/index.js.map +1 -0
- package/dist/node_modules/dom-helpers/esm/addClass.js +10 -0
- package/dist/node_modules/dom-helpers/esm/addClass.js.map +1 -0
- package/dist/node_modules/dom-helpers/esm/hasClass.js +8 -0
- package/dist/node_modules/dom-helpers/esm/hasClass.js.map +1 -0
- package/dist/node_modules/dom-helpers/esm/removeClass.js +16 -0
- package/dist/node_modules/dom-helpers/esm/removeClass.js.map +1 -0
- package/dist/node_modules/dropzone/dist/dropzone.js +1968 -0
- package/dist/node_modules/dropzone/dist/dropzone.js.map +1 -0
- package/dist/node_modules/events/events.js +372 -0
- package/dist/node_modules/events/events.js.map +1 -0
- package/dist/node_modules/just-extend/index.esm.js +43 -0
- package/dist/node_modules/just-extend/index.esm.js.map +1 -0
- package/dist/node_modules/react-transition-group/esm/CSSTransition.js +275 -0
- package/dist/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -0
- package/dist/node_modules/react-transition-group/esm/Transition.js +441 -0
- package/dist/node_modules/react-transition-group/esm/Transition.js.map +1 -0
- package/dist/node_modules/react-transition-group/esm/TransitionGroup.js +146 -0
- package/dist/node_modules/react-transition-group/esm/TransitionGroup.js.map +1 -0
- package/dist/node_modules/react-transition-group/esm/TransitionGroupContext.js +6 -0
- package/dist/node_modules/react-transition-group/esm/TransitionGroupContext.js.map +1 -0
- package/dist/node_modules/react-transition-group/esm/config.js +7 -0
- package/dist/node_modules/react-transition-group/esm/config.js.map +1 -0
- package/dist/node_modules/react-transition-group/esm/utils/ChildMapping.js +100 -0
- package/dist/node_modules/react-transition-group/esm/utils/ChildMapping.js.map +1 -0
- package/dist/node_modules/react-transition-group/esm/utils/PropTypes.js +24 -0
- package/dist/node_modules/react-transition-group/esm/utils/PropTypes.js.map +1 -0
- package/dist/node_modules/react-transition-group/esm/utils/reflow.js +7 -0
- package/dist/node_modules/react-transition-group/esm/utils/reflow.js.map +1 -0
- package/dist/react-notifications/Notification.js +73 -0
- package/dist/react-notifications/Notification.js.map +1 -0
- package/dist/react-notifications/NotificationContainer.js +59 -0
- package/dist/react-notifications/NotificationContainer.js.map +1 -0
- package/dist/react-notifications/NotificationManager.js +174 -0
- package/dist/react-notifications/NotificationManager.js.map +1 -0
- package/dist/react-notifications/Notifications.js +72 -0
- package/dist/react-notifications/Notifications.js.map +1 -0
- package/dist/react-notifications/constants.js +26 -0
- package/dist/react-notifications/constants.js.map +1 -0
- package/dist/react-notifications/index.js +11 -0
- package/dist/react-notifications/index.js.map +1 -0
- package/dist/react-notifications/notifications.css +213 -0
- package/dist/select/custom-select/constants.js +8 -0
- package/dist/select/custom-select/constants.js.map +1 -0
- package/dist/select/custom-select/index.js +89 -0
- package/dist/select/custom-select/index.js.map +1 -0
- package/dist/select/custom-select-input/index.js +12 -0
- package/dist/select/custom-select-input/index.js.map +1 -0
- package/dist/select/index.js +9 -0
- package/dist/select/index.js.map +1 -0
- package/dist/select/multi-select/badge-label-multi-select.js +29 -0
- package/dist/select/multi-select/badge-label-multi-select.js.map +1 -0
- package/dist/select/multi-select/index.css +37 -0
- package/dist/select/multi-select/index.js +171 -0
- package/dist/select/multi-select/index.js.map +1 -0
- package/dist/select/multi-select/styled-component.js +23 -0
- package/dist/select/multi-select/styled-component.js.map +1 -0
- package/dist/timer/index.js +60 -0
- package/dist/timer/index.js.map +1 -0
- package/dist/timer/styles.css +59 -0
- package/dist/tomar-foto/index.js +62 -0
- package/dist/tomar-foto/index.js.map +1 -0
- package/dist/view-layout/button-editor.js +14 -0
- package/dist/view-layout/button-editor.js.map +1 -0
- package/dist/view-layout/constants.js +11 -0
- package/dist/view-layout/constants.js.map +1 -0
- package/dist/view-layout/editor-layer.js +28 -0
- package/dist/view-layout/editor-layer.js.map +1 -0
- package/dist/view-layout/index.js +53 -0
- package/dist/view-layout/index.js.map +1 -0
- package/dist/view-layout/slot-wrapper.js +39 -0
- package/dist/view-layout/slot-wrapper.js.map +1 -0
- package/dist/view-layout/styles.css +127 -0
- package/dist/where-by-room/index.js +20 -0
- package/dist/where-by-room/index.js.map +1 -0
- package/dist/where-by-room/room.js +78 -0
- package/dist/where-by-room/room.js.map +1 -0
- package/index.d.ts +1 -1
- package/package.json +12 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constant.js","sources":["../../src/custom-input/constant.js"],"sourcesContent":["export const MENSAJE = { LABEL_FILE: 'Elija el archivo...' };\r\n"],"names":[],"mappings":"AAAY,MAAC,UAAU,EAAE,YAAY,sBAAqB;"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/* Estilos para los checkbox personalizados */
|
|
2
|
+
.custom-checkbox input[type='checkbox'] {
|
|
3
|
+
position: absolute;
|
|
4
|
+
opacity: 0;
|
|
5
|
+
z-index: -1;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.custom-checkbox input[type='checkbox'] + label {
|
|
9
|
+
position: relative;
|
|
10
|
+
padding-left: 2rem;
|
|
11
|
+
cursor: pointer;
|
|
12
|
+
line-height: 0px !important;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.custom-checkbox input[type='checkbox'] + label::before {
|
|
16
|
+
content: '';
|
|
17
|
+
display: inline-block;
|
|
18
|
+
width: 1rem;
|
|
19
|
+
height: 1rem;
|
|
20
|
+
border: 1px solid #ccc;
|
|
21
|
+
border-radius: 0.25rem;
|
|
22
|
+
background-color: white;
|
|
23
|
+
position: absolute;
|
|
24
|
+
left: 0;
|
|
25
|
+
top: -11px;
|
|
26
|
+
transition: background-color 0.2s, border-color 0.2s;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.custom-checkbox input[type='checkbox']:checked + label::before {
|
|
30
|
+
background-color: #900604;
|
|
31
|
+
border-color: #900604;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.custom-checkbox input[type='checkbox']:checked + label::after {
|
|
35
|
+
content: '';
|
|
36
|
+
position: absolute;
|
|
37
|
+
top: -10px;
|
|
38
|
+
left: 0.3rem;
|
|
39
|
+
width: 0.5rem;
|
|
40
|
+
height: 0.6rem;
|
|
41
|
+
border: solid white;
|
|
42
|
+
border-width: 0 0.2rem 0.2rem 0;
|
|
43
|
+
transform: rotate(45deg);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Estilos específicos para CheckMultiSelect */
|
|
47
|
+
.check-multi-select
|
|
48
|
+
.custom-checkbox
|
|
49
|
+
input[type='checkbox']:not(:checked)
|
|
50
|
+
+ label::before {
|
|
51
|
+
background-color: #900604; /* Fondo rojo en CheckMultiSelect para desmarcados */
|
|
52
|
+
border-color: #900604;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.check-multi-select
|
|
56
|
+
.custom-checkbox
|
|
57
|
+
input[type='checkbox']:not(:checked)
|
|
58
|
+
+ label::after {
|
|
59
|
+
content: '';
|
|
60
|
+
position: absolute;
|
|
61
|
+
top: -0.29rem; /* Ajusta la posición del tilde */
|
|
62
|
+
left: 0.25rem;
|
|
63
|
+
width: 0.5rem;
|
|
64
|
+
height: 0.1rem;
|
|
65
|
+
background-color: white;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Estilos para checkboxes deshabilitados */
|
|
69
|
+
.custom-checkbox input[type='checkbox']:disabled + label {
|
|
70
|
+
cursor: not-allowed; /* Cambia el cursor */
|
|
71
|
+
color: #6c757d;
|
|
72
|
+
line-height: 0px !important;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.custom-checkbox input[type='checkbox']:disabled + label::before {
|
|
76
|
+
background-color: #e9ecef;
|
|
77
|
+
border-color: #ced4da;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.custom-checkbox input[type='checkbox']:disabled:checked + label::before {
|
|
81
|
+
background-color: #adb5bd;
|
|
82
|
+
border-color: #adb5bd;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Estilos para los radio buttons personalizados */
|
|
86
|
+
.custom-radio input[type='radio'] {
|
|
87
|
+
position: absolute;
|
|
88
|
+
opacity: 0;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.custom-radio label {
|
|
92
|
+
display: inline-flex;
|
|
93
|
+
align-items: center;
|
|
94
|
+
justify-items: center;
|
|
95
|
+
cursor: pointer;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.custom-radio label::before {
|
|
99
|
+
position: absolute;
|
|
100
|
+
content: '';
|
|
101
|
+
display: inline-block;
|
|
102
|
+
width: 20px;
|
|
103
|
+
height: 20px;
|
|
104
|
+
border-radius: 50%;
|
|
105
|
+
border: 2px solid #ced4da;
|
|
106
|
+
background-color: white;
|
|
107
|
+
transition: background-color 0.2s, border-color 0.2s;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.custom-radio input[type='radio']:checked + label::before {
|
|
111
|
+
position: absolute;
|
|
112
|
+
background-color: #900604;
|
|
113
|
+
border-color: #900604;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.custom-radio input[type='radio']:checked + label::after {
|
|
117
|
+
content: '';
|
|
118
|
+
position: absolute;
|
|
119
|
+
width: 0.5rem;
|
|
120
|
+
height: 0.45rem;
|
|
121
|
+
background-color: white !important;
|
|
122
|
+
transition: translateY(-50%);
|
|
123
|
+
border-radius: 50%;
|
|
124
|
+
display: inline-block;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* Estilos específicos para radio buttons deshabilitados */
|
|
128
|
+
.custom-radio input[type='radio']:disabled + label {
|
|
129
|
+
cursor: not-allowed; /* Cambia el cursor */
|
|
130
|
+
color: #6c757d; /* Color gris */
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.custom-radio input[type='radio']:disabled + label::before {
|
|
134
|
+
background-color: #e9ecef; /* Fondo gris claro */
|
|
135
|
+
border-color: #ced4da; /* Borde gris claro */
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.custom-radio input[type='radio']:disabled:checked + label::before {
|
|
139
|
+
background-color: #adb5bd; /* Fondo gris más oscuro para el estado checked */
|
|
140
|
+
border-color: #adb5bd; /* Borde gris más oscuro */
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* Estilos para el custom file */
|
|
144
|
+
.custom-file {
|
|
145
|
+
height: calc(2.5rem + 2px);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.custom-file-label:focus,
|
|
149
|
+
.custom-file-input:focus {
|
|
150
|
+
border-color: #900604;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.custom-file-label::after {
|
|
154
|
+
height: calc(2.5rem + 2px - 2px);
|
|
155
|
+
padding: 0.75rem 0.75rem 0.5rem 0.75rem;
|
|
156
|
+
background: #900604;
|
|
157
|
+
color: white; /* Ajustado para contraste */
|
|
158
|
+
border-color: #900604;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.custom-file-input:focus ~ .custom-file-label {
|
|
162
|
+
border-color: rgba(144, 6, 4, 0.6);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.custom-file-input {
|
|
166
|
+
box-shadow: initial !important;
|
|
167
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "./index.css";
|
|
2
|
+
import { CustomInputCheckbox } from "./CustomInputCheckbox.js";
|
|
3
|
+
import { CustomInputRadio } from "./CustomInputRadio.js";
|
|
4
|
+
import { CustomInputFile } from "./CustomInputFile.js";
|
|
5
|
+
import { CustomInputCurrency } from "./CustomInputCurrency.js";
|
|
6
|
+
export {
|
|
7
|
+
CustomInputCheckbox,
|
|
8
|
+
CustomInputCurrency,
|
|
9
|
+
CustomInputFile,
|
|
10
|
+
CustomInputRadio
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useState, useMemo, useEffect } from "react";
|
|
3
|
+
function DropzoneComponent({
|
|
4
|
+
config = {},
|
|
5
|
+
djsConfig = {},
|
|
6
|
+
eventHandlers = {},
|
|
7
|
+
className = "",
|
|
8
|
+
action,
|
|
9
|
+
children
|
|
10
|
+
}) {
|
|
11
|
+
const dropzoneRef = useRef(null);
|
|
12
|
+
const dropzoneInstance = useRef(null);
|
|
13
|
+
const [files, setFiles] = useState([]);
|
|
14
|
+
const options = useMemo(() => {
|
|
15
|
+
return {
|
|
16
|
+
...config.postUrl ? { url: config.postUrl } : {},
|
|
17
|
+
...djsConfig
|
|
18
|
+
};
|
|
19
|
+
}, [config.postUrl, djsConfig]);
|
|
20
|
+
const setupEvents = (dz) => {
|
|
21
|
+
if (!eventHandlers) return;
|
|
22
|
+
Object.entries(eventHandlers).forEach(([event, handler]) => {
|
|
23
|
+
if (!handler) return;
|
|
24
|
+
const handlers = Array.isArray(handler) ? handler : [handler];
|
|
25
|
+
handlers.forEach((fn) => {
|
|
26
|
+
if (event === "init") {
|
|
27
|
+
fn(dz);
|
|
28
|
+
} else {
|
|
29
|
+
dz.on(event, fn);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
dz.on("addedfile", (file) => {
|
|
34
|
+
if (!file) return;
|
|
35
|
+
setFiles((prev) => [...prev, file]);
|
|
36
|
+
});
|
|
37
|
+
dz.on("removedfile", (file) => {
|
|
38
|
+
if (!file) return;
|
|
39
|
+
setFiles(
|
|
40
|
+
(prev) => prev.filter((f) => !(f.name === file.name && f.size === file.size))
|
|
41
|
+
);
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
let mounted = true;
|
|
46
|
+
const initDropzone = async () => {
|
|
47
|
+
const { default: Dropzone } = await import("../node_modules/dropzone/dist/dropzone.js");
|
|
48
|
+
if (!mounted) return;
|
|
49
|
+
Dropzone.autoDiscover = false;
|
|
50
|
+
const node = config.dropzoneSelector || dropzoneRef.current;
|
|
51
|
+
if (!node) return;
|
|
52
|
+
const dz = new Dropzone(node, options);
|
|
53
|
+
dropzoneInstance.current = dz;
|
|
54
|
+
setupEvents(dz);
|
|
55
|
+
};
|
|
56
|
+
initDropzone();
|
|
57
|
+
return () => {
|
|
58
|
+
mounted = false;
|
|
59
|
+
const dz = dropzoneInstance.current;
|
|
60
|
+
if (!dz) return;
|
|
61
|
+
dz.off();
|
|
62
|
+
dz.destroy();
|
|
63
|
+
};
|
|
64
|
+
}, []);
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
const dz = dropzoneInstance.current;
|
|
67
|
+
if (!dz) return;
|
|
68
|
+
dz.options = {
|
|
69
|
+
...dz.options,
|
|
70
|
+
...djsConfig,
|
|
71
|
+
...config.postUrl ? { url: config.postUrl } : {}
|
|
72
|
+
};
|
|
73
|
+
}, [config.postUrl, djsConfig]);
|
|
74
|
+
const dropzoneClass = className ? `filepicker dropzone ${className}` : "filepicker dropzone";
|
|
75
|
+
if (!config.postUrl && action) {
|
|
76
|
+
return /* @__PURE__ */ jsx("form", { ref: dropzoneRef, action, className: dropzoneClass, children });
|
|
77
|
+
}
|
|
78
|
+
return /* @__PURE__ */ jsx("div", { ref: dropzoneRef, className: dropzoneClass, children });
|
|
79
|
+
}
|
|
80
|
+
export {
|
|
81
|
+
DropzoneComponent as default
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=DropzoneComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropzoneComponent.js","sources":["../../src/drag-and-dropzone/DropzoneComponent.jsx"],"sourcesContent":["import { useEffect, useRef, useState, useMemo } from 'react';\r\n\r\nexport default function DropzoneComponent({\r\n config = {},\r\n djsConfig = {},\r\n eventHandlers = {},\r\n className = '',\r\n action,\r\n children,\r\n}) {\r\n const dropzoneRef = useRef(null);\r\n const dropzoneInstance = useRef(null);\r\n\r\n const [files, setFiles] = useState([]);\r\n\r\n const options = useMemo(() => {\r\n return {\r\n ...(config.postUrl ? { url: config.postUrl } : {}),\r\n ...djsConfig,\r\n };\r\n }, [config.postUrl, djsConfig]);\r\n\r\n const setupEvents = (dz) => {\r\n if (!eventHandlers) return;\r\n\r\n Object.entries(eventHandlers).forEach(([event, handler]) => {\r\n if (!handler) return;\r\n\r\n const handlers = Array.isArray(handler) ? handler : [handler];\r\n\r\n handlers.forEach((fn) => {\r\n if (event === 'init') {\r\n fn(dz);\r\n } else {\r\n dz.on(event, fn);\r\n }\r\n });\r\n });\r\n\r\n dz.on('addedfile', (file) => {\r\n if (!file) return;\r\n setFiles((prev) => [...prev, file]);\r\n });\r\n\r\n dz.on('removedfile', (file) => {\r\n if (!file) return;\r\n\r\n setFiles((prev) =>\r\n prev.filter((f) => !(f.name === file.name && f.size === file.size))\r\n );\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n let mounted = true;\r\n\r\n const initDropzone = async () => {\r\n const { default: Dropzone } = await import('dropzone');\r\n\r\n if (!mounted) return;\r\n\r\n Dropzone.autoDiscover = false;\r\n\r\n const node = config.dropzoneSelector || dropzoneRef.current;\r\n if (!node) return;\r\n\r\n const dz = new Dropzone(node, options);\r\n\r\n dropzoneInstance.current = dz;\r\n\r\n setupEvents(dz);\r\n };\r\n\r\n initDropzone();\r\n\r\n return () => {\r\n mounted = false;\r\n\r\n const dz = dropzoneInstance.current;\r\n\r\n if (!dz) return;\r\n\r\n dz.off();\r\n dz.destroy();\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const dz = dropzoneInstance.current;\r\n\r\n if (!dz) return;\r\n\r\n dz.options = {\r\n ...dz.options,\r\n ...djsConfig,\r\n ...(config.postUrl ? { url: config.postUrl } : {}),\r\n };\r\n }, [config.postUrl, djsConfig]);\r\n\r\n const dropzoneClass = className\r\n ? `filepicker dropzone ${className}`\r\n : 'filepicker dropzone';\r\n\r\n if (!config.postUrl && action) {\r\n return (\r\n <form ref={dropzoneRef} action={action} className={dropzoneClass}>\r\n {children}\r\n </form>\r\n );\r\n }\r\n\r\n return (\r\n <div ref={dropzoneRef} className={dropzoneClass}>\r\n {children}\r\n </div>\r\n );\r\n}\r\n"],"names":[],"mappings":";;AAEA,SAAwB,kBAAkB;AAAA,EACxC,SAAS,CAAA;AAAA,EACT,YAAY,CAAA;AAAA,EACZ,gBAAgB,CAAA;AAAA,EAChB,YAAY;AAAA,EACZ;AAAA,EACA;AACF,GAAG;AACD,QAAM,cAAc,OAAO,IAAI;AAC/B,QAAM,mBAAmB,OAAO,IAAI;AAEpC,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,CAAA,CAAE;AAErC,QAAM,UAAU,QAAQ,MAAM;AAC5B,WAAO;AAAA,MACL,GAAI,OAAO,UAAU,EAAE,KAAK,OAAO,QAAA,IAAY,CAAA;AAAA,MAC/C,GAAG;AAAA,IAAA;AAAA,EAEP,GAAG,CAAC,OAAO,SAAS,SAAS,CAAC;AAE9B,QAAM,cAAc,CAAC,OAAO;AAC1B,QAAI,CAAC,cAAe;AAEpB,WAAO,QAAQ,aAAa,EAAE,QAAQ,CAAC,CAAC,OAAO,OAAO,MAAM;AAC1D,UAAI,CAAC,QAAS;AAEd,YAAM,WAAW,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,OAAO;AAE5D,eAAS,QAAQ,CAAC,OAAO;AACvB,YAAI,UAAU,QAAQ;AACpB,aAAG,EAAE;AAAA,QACP,OAAO;AACL,aAAG,GAAG,OAAO,EAAE;AAAA,QACjB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAED,OAAG,GAAG,aAAa,CAAC,SAAS;AAC3B,UAAI,CAAC,KAAM;AACX,eAAS,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAAC;AAAA,IACpC,CAAC;AAED,OAAG,GAAG,eAAe,CAAC,SAAS;AAC7B,UAAI,CAAC,KAAM;AAEX;AAAA,QAAS,CAAC,SACR,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,KAAK,QAAQ,EAAE,SAAS,KAAK,KAAK;AAAA,MAAA;AAAA,IAEtE,CAAC;AAAA,EACH;AAEA,YAAU,MAAM;AACd,QAAI,UAAU;AAEd,UAAM,eAAe,YAAY;AAC/B,YAAM,EAAE,SAAS,aAAa,MAAM,OAAO,2CAAU;AAErD,UAAI,CAAC,QAAS;AAEd,eAAS,eAAe;AAExB,YAAM,OAAO,OAAO,oBAAoB,YAAY;AACpD,UAAI,CAAC,KAAM;AAEX,YAAM,KAAK,IAAI,SAAS,MAAM,OAAO;AAErC,uBAAiB,UAAU;AAE3B,kBAAY,EAAE;AAAA,IAChB;AAEA,iBAAA;AAEA,WAAO,MAAM;AACX,gBAAU;AAEV,YAAM,KAAK,iBAAiB;AAE5B,UAAI,CAAC,GAAI;AAET,SAAG,IAAA;AACH,SAAG,QAAA;AAAA,IACL;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,YAAU,MAAM;AACd,UAAM,KAAK,iBAAiB;AAE5B,QAAI,CAAC,GAAI;AAET,OAAG,UAAU;AAAA,MACX,GAAG,GAAG;AAAA,MACN,GAAG;AAAA,MACH,GAAI,OAAO,UAAU,EAAE,KAAK,OAAO,QAAA,IAAY,CAAA;AAAA,IAAC;AAAA,EAEpD,GAAG,CAAC,OAAO,SAAS,SAAS,CAAC;AAE9B,QAAM,gBAAgB,YAClB,uBAAuB,SAAS,KAChC;AAEJ,MAAI,CAAC,OAAO,WAAW,QAAQ;AAC7B,+BACG,QAAA,EAAK,KAAK,aAAa,QAAgB,WAAW,eAChD,UACH;AAAA,EAEJ;AAEA,6BACG,OAAA,EAAI,KAAK,aAAa,WAAW,eAC/B,UACH;AAEJ;"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const dropzoneComponentConfig = {
|
|
2
|
+
postUrl: "no-url"
|
|
3
|
+
};
|
|
4
|
+
const dropzoneConfig = {
|
|
5
|
+
thumbnailHeight: 160,
|
|
6
|
+
acceptedFiles: "image/*,application/pdf,",
|
|
7
|
+
maxFilesize: 10,
|
|
8
|
+
maxFiles: 20,
|
|
9
|
+
dictDefaultMessage: "Presione para agregar imagenes",
|
|
10
|
+
previewTemplate: `
|
|
11
|
+
<div class="dz-preview dz-file-preview mb-0">
|
|
12
|
+
<div class="d-flex flex-row">
|
|
13
|
+
<div class="p-0 w-30 position-relative">
|
|
14
|
+
<div class="dz-error-mark">
|
|
15
|
+
<span>
|
|
16
|
+
<i></i>
|
|
17
|
+
</span>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="dz-success-mark">
|
|
20
|
+
<span>
|
|
21
|
+
<i></i>
|
|
22
|
+
</span>
|
|
23
|
+
</div>
|
|
24
|
+
<div class="preview-container">
|
|
25
|
+
<img
|
|
26
|
+
data-dz-thumbnail
|
|
27
|
+
class="img-thumbnail border-0"
|
|
28
|
+
alt="preview_image"
|
|
29
|
+
/>
|
|
30
|
+
<i class="simple-icon-doc preview-icon"></i>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<div class="pl-3 pt-2 pr-2 pb-1 w-70 dz-details position-relative">
|
|
35
|
+
<div>
|
|
36
|
+
<span data-dz-name></span>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="text-primary text-extra-small" data-dz-size></div>
|
|
39
|
+
<div class="dz-progress">
|
|
40
|
+
<span class="dz-upload" data-dz-uploadprogress></span>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="dz-error-message">
|
|
43
|
+
<span data-dz-errormessage></span>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<a href="#/" class="remove dz-remove" data-dz-remove>
|
|
49
|
+
<i class="glyph-icon simple-icon-trash"></i>
|
|
50
|
+
</a>
|
|
51
|
+
</div>
|
|
52
|
+
`,
|
|
53
|
+
autoProcessQueue: false
|
|
54
|
+
};
|
|
55
|
+
export {
|
|
56
|
+
dropzoneComponentConfig,
|
|
57
|
+
dropzoneConfig
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../src/drag-and-dropzone/config.jsx"],"sourcesContent":["export const dropzoneComponentConfig = {\r\n postUrl: 'no-url',\r\n};\r\n\r\nexport const dropzoneConfig = {\r\n thumbnailHeight: 160,\r\n acceptedFiles: 'image/*,application/pdf,',\r\n maxFilesize: 10,\r\n maxFiles: 20,\r\n dictDefaultMessage: 'Presione para agregar imagenes',\r\n previewTemplate: `\r\n <div class=\"dz-preview dz-file-preview mb-0\">\r\n <div class=\"d-flex flex-row\">\r\n <div class=\"p-0 w-30 position-relative\">\r\n <div class=\"dz-error-mark\">\r\n <span>\r\n <i></i>\r\n </span>\r\n </div>\r\n <div class=\"dz-success-mark\">\r\n <span>\r\n <i></i>\r\n </span>\r\n </div>\r\n <div class=\"preview-container\">\r\n <img\r\n data-dz-thumbnail\r\n class=\"img-thumbnail border-0\"\r\n alt=\"preview_image\"\r\n />\r\n <i class=\"simple-icon-doc preview-icon\"></i>\r\n </div>\r\n </div>\r\n \r\n <div class=\"pl-3 pt-2 pr-2 pb-1 w-70 dz-details position-relative\">\r\n <div>\r\n <span data-dz-name></span>\r\n </div>\r\n <div class=\"text-primary text-extra-small\" data-dz-size></div>\r\n <div class=\"dz-progress\">\r\n <span class=\"dz-upload\" data-dz-uploadprogress></span>\r\n </div>\r\n <div class=\"dz-error-message\">\r\n <span data-dz-errormessage></span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <a href=\"#/\" class=\"remove dz-remove\" data-dz-remove>\r\n <i class=\"glyph-icon simple-icon-trash\"></i>\r\n </a>\r\n </div>\r\n `,\r\n autoProcessQueue: false,\r\n};\r\n"],"names":[],"mappings":"AAAO,MAAM,0BAA0B;AAAA,EACrC,SAAS;AACX;AAEO,MAAM,iBAAiB;AAAA,EAC5B,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,aAAa;AAAA,EACb,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2CjB,kBAAkB;AACpB;"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
@keyframes passing-through {
|
|
2
|
+
0% {
|
|
3
|
+
opacity: 0;
|
|
4
|
+
transform: translateY(40px);
|
|
5
|
+
}
|
|
6
|
+
30%,
|
|
7
|
+
70% {
|
|
8
|
+
opacity: 1;
|
|
9
|
+
transform: translateY(0px);
|
|
10
|
+
}
|
|
11
|
+
100% {
|
|
12
|
+
opacity: 0;
|
|
13
|
+
transform: translateY(-40px);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
@keyframes slide-in {
|
|
17
|
+
0% {
|
|
18
|
+
opacity: 0;
|
|
19
|
+
transform: translateY(40px);
|
|
20
|
+
}
|
|
21
|
+
30% {
|
|
22
|
+
opacity: 1;
|
|
23
|
+
transform: translateY(0px);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
@keyframes pulse {
|
|
27
|
+
0% {
|
|
28
|
+
transform: scale(1);
|
|
29
|
+
}
|
|
30
|
+
10% {
|
|
31
|
+
transform: scale(1.1);
|
|
32
|
+
}
|
|
33
|
+
20% {
|
|
34
|
+
transform: scale(1);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
.dropzone,
|
|
38
|
+
.dropzone * {
|
|
39
|
+
box-sizing: border-box;
|
|
40
|
+
}
|
|
41
|
+
.dropzone {
|
|
42
|
+
min-height: 150px;
|
|
43
|
+
border: 1px solid rgba(0, 0, 0, 0.8);
|
|
44
|
+
border-radius: 5px;
|
|
45
|
+
padding: 20px 20px;
|
|
46
|
+
}
|
|
47
|
+
.dropzone.dz-clickable {
|
|
48
|
+
cursor: pointer;
|
|
49
|
+
}
|
|
50
|
+
.dropzone.dz-clickable * {
|
|
51
|
+
cursor: default;
|
|
52
|
+
}
|
|
53
|
+
.dropzone.dz-clickable .dz-message,
|
|
54
|
+
.dropzone.dz-clickable .dz-message * {
|
|
55
|
+
cursor: pointer;
|
|
56
|
+
}
|
|
57
|
+
.dropzone.dz-started .dz-message {
|
|
58
|
+
display: none;
|
|
59
|
+
}
|
|
60
|
+
.dropzone.dz-drag-hover {
|
|
61
|
+
border-style: solid;
|
|
62
|
+
}
|
|
63
|
+
.dropzone.dz-drag-hover .dz-message {
|
|
64
|
+
opacity: 0.5;
|
|
65
|
+
}
|
|
66
|
+
.dropzone .dz-message {
|
|
67
|
+
text-align: center;
|
|
68
|
+
margin: 3em 0;
|
|
69
|
+
}
|
|
70
|
+
.dropzone .dz-message .dz-button {
|
|
71
|
+
background: none;
|
|
72
|
+
color: inherit;
|
|
73
|
+
border: none;
|
|
74
|
+
padding: 0;
|
|
75
|
+
font: inherit;
|
|
76
|
+
cursor: pointer;
|
|
77
|
+
outline: inherit;
|
|
78
|
+
}
|
|
79
|
+
.dropzone .dz-preview {
|
|
80
|
+
position: relative;
|
|
81
|
+
display: inline-block;
|
|
82
|
+
vertical-align: top;
|
|
83
|
+
margin: 16px;
|
|
84
|
+
min-height: 100px;
|
|
85
|
+
}
|
|
86
|
+
.dropzone .dz-preview:hover {
|
|
87
|
+
z-index: 1000;
|
|
88
|
+
}
|
|
89
|
+
.dropzone .dz-preview:hover .dz-details {
|
|
90
|
+
opacity: 1;
|
|
91
|
+
}
|
|
92
|
+
.dropzone .dz-preview.dz-file-preview .dz-image {
|
|
93
|
+
border-radius: 20px;
|
|
94
|
+
background: #999;
|
|
95
|
+
background: linear-gradient(to bottom, #eee, #ddd);
|
|
96
|
+
}
|
|
97
|
+
.dropzone .dz-preview.dz-file-preview .dz-details {
|
|
98
|
+
opacity: 1;
|
|
99
|
+
}
|
|
100
|
+
.dropzone .dz-preview.dz-image-preview {
|
|
101
|
+
background: #fff;
|
|
102
|
+
}
|
|
103
|
+
.dropzone .dz-preview.dz-image-preview .dz-details {
|
|
104
|
+
transition: opacity 0.2s linear;
|
|
105
|
+
}
|
|
106
|
+
.dropzone .dz-preview .dz-remove {
|
|
107
|
+
font-size: 14px;
|
|
108
|
+
text-align: center;
|
|
109
|
+
display: block;
|
|
110
|
+
cursor: pointer;
|
|
111
|
+
border: none;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.dropzone .dz-preview:hover .dz-details {
|
|
115
|
+
opacity: 1;
|
|
116
|
+
}
|
|
117
|
+
.dropzone .dz-preview .dz-details {
|
|
118
|
+
z-index: 20;
|
|
119
|
+
position: absolute;
|
|
120
|
+
top: 0;
|
|
121
|
+
left: 0;
|
|
122
|
+
opacity: 0;
|
|
123
|
+
font-size: 13px;
|
|
124
|
+
min-width: 100%;
|
|
125
|
+
max-width: 100%;
|
|
126
|
+
padding: 2em 1em;
|
|
127
|
+
text-align: center;
|
|
128
|
+
color: rgba(0, 0, 0, 0.9);
|
|
129
|
+
line-height: 150%;
|
|
130
|
+
}
|
|
131
|
+
.dropzone .dz-preview .dz-details .dz-size {
|
|
132
|
+
margin-bottom: 1em;
|
|
133
|
+
font-size: 16px;
|
|
134
|
+
}
|
|
135
|
+
.dropzone .dz-preview .dz-details .dz-filename {
|
|
136
|
+
white-space: nowrap;
|
|
137
|
+
}
|
|
138
|
+
.dropzone .dz-preview .dz-details .dz-filename:hover span {
|
|
139
|
+
border: 1px solid rgba(200, 200, 200, 0.8);
|
|
140
|
+
background-color: rgba(255, 255, 255, 0.8);
|
|
141
|
+
}
|
|
142
|
+
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) {
|
|
143
|
+
overflow: hidden;
|
|
144
|
+
text-overflow: ellipsis;
|
|
145
|
+
}
|
|
146
|
+
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {
|
|
147
|
+
border: 1px solid transparent;
|
|
148
|
+
}
|
|
149
|
+
.dropzone .dz-preview .dz-details .dz-filename span,
|
|
150
|
+
.dropzone .dz-preview .dz-details .dz-size span {
|
|
151
|
+
background-color: rgba(255, 255, 255, 0.4);
|
|
152
|
+
padding: 0 0.4em;
|
|
153
|
+
border-radius: 3px;
|
|
154
|
+
}
|
|
155
|
+
.dropzone .dz-preview:hover .dz-image img {
|
|
156
|
+
transform: scale(1.05, 1.05);
|
|
157
|
+
filter: blur(8px);
|
|
158
|
+
}
|
|
159
|
+
.dropzone .dz-preview .dz-image {
|
|
160
|
+
border-radius: 20px;
|
|
161
|
+
overflow: hidden;
|
|
162
|
+
width: 120px;
|
|
163
|
+
height: 120px;
|
|
164
|
+
position: relative;
|
|
165
|
+
display: block;
|
|
166
|
+
z-index: 10;
|
|
167
|
+
}
|
|
168
|
+
.dropzone .dz-preview .dz-image img {
|
|
169
|
+
display: block;
|
|
170
|
+
}
|
|
171
|
+
.dropzone .dz-preview.dz-success .dz-success-mark {
|
|
172
|
+
animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
|
173
|
+
}
|
|
174
|
+
.dropzone .dz-preview.dz-error .dz-error-mark {
|
|
175
|
+
opacity: 1;
|
|
176
|
+
animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
|
177
|
+
}
|
|
178
|
+
.dropzone .dz-preview .dz-success-mark,
|
|
179
|
+
.dropzone .dz-preview .dz-error-mark {
|
|
180
|
+
pointer-events: none;
|
|
181
|
+
opacity: 0;
|
|
182
|
+
z-index: 500;
|
|
183
|
+
position: absolute;
|
|
184
|
+
display: block;
|
|
185
|
+
top: 50%;
|
|
186
|
+
left: 50%;
|
|
187
|
+
margin-left: -27px;
|
|
188
|
+
margin-top: -27px;
|
|
189
|
+
background: rgba(0, 0, 0, 0.8);
|
|
190
|
+
border-radius: 50%;
|
|
191
|
+
}
|
|
192
|
+
.dropzone .dz-preview .dz-success-mark svg,
|
|
193
|
+
.dropzone .dz-preview .dz-error-mark svg {
|
|
194
|
+
display: block;
|
|
195
|
+
width: 54px;
|
|
196
|
+
height: 54px;
|
|
197
|
+
fill: #fff;
|
|
198
|
+
}
|
|
199
|
+
.dropzone .dz-preview.dz-processing .dz-progress {
|
|
200
|
+
opacity: 1;
|
|
201
|
+
transition: all 0.2s linear;
|
|
202
|
+
}
|
|
203
|
+
.dropzone .dz-preview.dz-complete .dz-progress {
|
|
204
|
+
opacity: 0;
|
|
205
|
+
transition: opacity 0.4s ease-in;
|
|
206
|
+
}
|
|
207
|
+
.dropzone .dz-preview:not(.dz-processing) .dz-progress {
|
|
208
|
+
animation: pulse 6s ease infinite;
|
|
209
|
+
}
|
|
210
|
+
.dropzone .dz-preview .dz-progress {
|
|
211
|
+
opacity: 1;
|
|
212
|
+
z-index: 1000;
|
|
213
|
+
pointer-events: none;
|
|
214
|
+
position: absolute;
|
|
215
|
+
height: 20px;
|
|
216
|
+
top: 50%;
|
|
217
|
+
margin-top: -10px;
|
|
218
|
+
left: 15%;
|
|
219
|
+
right: 15%;
|
|
220
|
+
border: 3px solid rgba(0, 0, 0, 0.8);
|
|
221
|
+
background: rgba(0, 0, 0, 0.8);
|
|
222
|
+
border-radius: 10px;
|
|
223
|
+
overflow: hidden;
|
|
224
|
+
}
|
|
225
|
+
.dropzone .dz-preview .dz-progress .dz-upload {
|
|
226
|
+
background: #fff;
|
|
227
|
+
display: block;
|
|
228
|
+
position: relative;
|
|
229
|
+
height: 100%;
|
|
230
|
+
width: 0;
|
|
231
|
+
transition: width 300ms ease-in-out;
|
|
232
|
+
border-radius: 17px;
|
|
233
|
+
}
|
|
234
|
+
.dropzone .dz-preview.dz-error .dz-error-message {
|
|
235
|
+
display: block;
|
|
236
|
+
}
|
|
237
|
+
.dropzone .dz-preview.dz-error:hover .dz-error-message {
|
|
238
|
+
opacity: 1;
|
|
239
|
+
pointer-events: auto;
|
|
240
|
+
}
|
|
241
|
+
.dropzone .dz-preview .dz-error-message {
|
|
242
|
+
pointer-events: none;
|
|
243
|
+
z-index: 1000;
|
|
244
|
+
position: absolute;
|
|
245
|
+
display: block;
|
|
246
|
+
display: none;
|
|
247
|
+
opacity: 0;
|
|
248
|
+
transition: opacity 0.3s ease;
|
|
249
|
+
border-radius: 8px;
|
|
250
|
+
font-size: 13px;
|
|
251
|
+
top: 130px;
|
|
252
|
+
left: -10px;
|
|
253
|
+
width: 140px;
|
|
254
|
+
background: #b10606;
|
|
255
|
+
padding: 0.5em 1em;
|
|
256
|
+
color: #fff;
|
|
257
|
+
}
|
|
258
|
+
.dropzone .dz-preview .dz-error-message:after {
|
|
259
|
+
content: '';
|
|
260
|
+
position: absolute;
|
|
261
|
+
top: -6px;
|
|
262
|
+
left: 64px;
|
|
263
|
+
width: 0;
|
|
264
|
+
height: 0;
|
|
265
|
+
border-left: 6px solid transparent;
|
|
266
|
+
border-right: 6px solid transparent;
|
|
267
|
+
border-bottom: 6px solid #b10606;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.dz-progress {
|
|
271
|
+
display: none;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.dropzone .dz-preview {
|
|
275
|
+
margin: 0;
|
|
276
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import DropzoneComponent from "./DropzoneComponent.js";
|
|
3
|
+
import { dropzoneConfig, dropzoneComponentConfig } from "./config.js";
|
|
4
|
+
import "./index.css";
|
|
5
|
+
const DragAndDropZone = ({
|
|
6
|
+
files = [],
|
|
7
|
+
keyDc = null,
|
|
8
|
+
disableUpload = false,
|
|
9
|
+
onDeleteFile = () => {
|
|
10
|
+
},
|
|
11
|
+
onInsertFile = () => {
|
|
12
|
+
},
|
|
13
|
+
className = ""
|
|
14
|
+
}) => {
|
|
15
|
+
const _className = className + disableUpload === true ? "dz-disable" : "dz-eneable";
|
|
16
|
+
return /* @__PURE__ */ jsx(
|
|
17
|
+
DropzoneComponent,
|
|
18
|
+
{
|
|
19
|
+
config: dropzoneComponentConfig,
|
|
20
|
+
initialFiles: [files],
|
|
21
|
+
className: _className,
|
|
22
|
+
djsConfig: dropzoneConfig,
|
|
23
|
+
eventHandlers: {
|
|
24
|
+
removedfile: (file) => {
|
|
25
|
+
onDeleteFile(file);
|
|
26
|
+
},
|
|
27
|
+
addedfile: (file) => {
|
|
28
|
+
onInsertFile(file);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
keyDc
|
|
33
|
+
);
|
|
34
|
+
};
|
|
35
|
+
export {
|
|
36
|
+
DragAndDropZone,
|
|
37
|
+
DragAndDropZone as default
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/drag-and-dropzone/index.jsx"],"sourcesContent":["import DropzoneComponent from './DropzoneComponent';\r\nimport { dropzoneComponentConfig, dropzoneConfig } from './config';\r\nimport './index.css';\r\n\r\nexport const DragAndDropZone = ({\r\n files = [],\r\n keyDc = null,\r\n disableUpload = false,\r\n onDeleteFile = () => {},\r\n onInsertFile = () => {},\r\n className = '',\r\n}) => {\r\n const _className =\r\n className + disableUpload === true ? 'dz-disable' : 'dz-eneable';\r\n return (\r\n <DropzoneComponent\r\n key={keyDc}\r\n config={dropzoneComponentConfig}\r\n initialFiles={[files]}\r\n className={_className}\r\n djsConfig={dropzoneConfig}\r\n eventHandlers={{\r\n removedfile: (file) => {\r\n onDeleteFile(file);\r\n },\r\n addedfile: (file) => {\r\n onInsertFile(file);\r\n },\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default DragAndDropZone;\r\n"],"names":[],"mappings":";;;;AAIO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,QAAQ,CAAA;AAAA,EACR,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,eAAe,MAAM;AAAA,EAAC;AAAA,EACtB,eAAe,MAAM;AAAA,EAAC;AAAA,EACtB,YAAY;AACd,MAAM;AACJ,QAAM,aACJ,YAAY,kBAAkB,OAAO,eAAe;AACtD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,QAAQ;AAAA,MACR,cAAc,CAAC,KAAK;AAAA,MACpB,WAAW;AAAA,MACX,WAAW;AAAA,MACX,eAAe;AAAA,QACb,aAAa,CAAC,SAAS;AACrB,uBAAa,IAAI;AAAA,QACnB;AAAA,QACA,WAAW,CAAC,SAAS;AACnB,uBAAa,IAAI;AAAA,QACnB;AAAA,MAAA;AAAA,IACF;AAAA,IAZK;AAAA,EAAA;AAeX;"}
|