contentoh-components-library 21.3.1 → 21.3.3
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/assets/fonts/{Roboto → roboto}/LICENSE.txt +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-Black.ttf +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-BlackItalic.ttf +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-Bold.ttf +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-BoldItalic.ttf +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-Italic.ttf +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-Light.ttf +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-LightItalic.ttf +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-Medium.ttf +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-MediumItalic.ttf +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-Regular.ttf +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-Thin.ttf +0 -0
- package/dist/assets/fonts/{Roboto → roboto}/Roboto-ThinItalic.ttf +0 -0
- package/dist/components/molecules/SelectV2/index.js +24 -16
- package/dist/components/molecules/SelectV2/test.js +95 -0
- package/dist/components/{atoms/ChatPopUp/ChatPopUp.stories.js → molecules/SelectV2/test.stories.js} +7 -8
- package/dist/components/organisms/RangeCalendar/index.js +10 -2
- package/dist/global-files/utils.js +14 -2
- package/package.json +1 -1
- package/src/assets/fonts/{Roboto → roboto}/LICENSE.txt +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-Black.ttf +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-BlackItalic.ttf +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-Bold.ttf +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-BoldItalic.ttf +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-Italic.ttf +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-Light.ttf +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-LightItalic.ttf +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-Medium.ttf +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-MediumItalic.ttf +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-Regular.ttf +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-Thin.ttf +0 -0
- package/src/assets/fonts/{Roboto → roboto}/Roboto-ThinItalic.ttf +0 -0
- package/src/components/molecules/SelectV2/index.js +37 -22
- package/src/components/molecules/SelectV2/test.js +61 -0
- package/src/components/molecules/SelectV2/test.stories.js +10 -0
- package/src/components/organisms/RangeCalendar/index.js +10 -6
- package/src/global-files/utils.js +9 -0
- package/dist/assets/images/chatPopup/Spinner.gif +0 -0
- package/dist/assets/images/chatPopup/close.svg +0 -3
- package/dist/assets/images/chatPopup/defaultImage.png +0 -0
- package/dist/assets/images/chatPopup/defaultProfile.png +0 -0
- package/dist/assets/images/chatPopup/doc.svg +0 -1
- package/dist/assets/images/chatPopup/document.svg +0 -1
- package/dist/assets/images/chatPopup/iconChat.svg +0 -19
- package/dist/assets/images/chatPopup/iconPlus.svg +0 -3
- package/dist/assets/images/chatPopup/pdf.svg +0 -75
- package/dist/assets/images/chatPopup/remove.svg +0 -4
- package/dist/assets/images/chatPopup/send.svg +0 -3
- package/dist/assets/images/chatPopup/svgIcon.svg +0 -109
- package/dist/assets/images/chatPopup/upload_file.svg +0 -3
- package/dist/assets/images/chatPopup/xls.svg +0 -53
- package/dist/components/atoms/ChatPopUp/index.js +0 -841
- package/dist/components/atoms/ChatPopUp/styles.js +0 -27
- package/dist/components/atoms/ChatPopUp/utils/handlersChat.js +0 -182
- package/dist/components/atoms/StatusTag/StatusTag.stories.js +0 -48
- package/dist/components/atoms/StatusTag/index.js +0 -58
- package/dist/components/atoms/StatusTag/styles.js +0 -20
- package/dist/components/pages/RegistrationLoginFirstStep/RegistrationLoginFirstStep.stories.js +0 -37
- package/dist/components/pages/RegistrationLoginFirstStep/index.js +0 -269
- package/dist/components/pages/RegistrationLoginFirstStep/styles.js +0 -20
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -39,6 +39,7 @@ var SelectV2 = function SelectV2(props) {
|
|
|
39
39
|
var _positions$positionDr;
|
|
40
40
|
|
|
41
41
|
var items = props.items,
|
|
42
|
+
initialSelectedItems = props.initialSelectedItems,
|
|
42
43
|
triggerType = props.triggerType,
|
|
43
44
|
selectButton = props.selectButton,
|
|
44
45
|
defaultItem = props.defaultItem,
|
|
@@ -99,36 +100,40 @@ var SelectV2 = function SelectV2(props) {
|
|
|
99
100
|
var refInputTextSearch = (0, _react.useRef)(); // cada que cambie la lista de items
|
|
100
101
|
|
|
101
102
|
(0, _react.useEffect)(function () {
|
|
102
|
-
if ((0, _utils.isArrayEmpty)(items)) {
|
|
103
|
+
if ((0, _utils.isArrayEmpty)(items) || !(0, _utils.isObject)(initialSelectedItems)) {
|
|
103
104
|
setSelectedItems({});
|
|
105
|
+
renderItems();
|
|
106
|
+
renderLabelSelect();
|
|
104
107
|
return;
|
|
105
108
|
} // items iniciales seleccionados
|
|
106
109
|
|
|
107
110
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
if (
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
|
|
111
|
+
if (!multiple) {
|
|
112
|
+
var values = Object.keys(initialSelectedItems);
|
|
113
|
+
if (values.length) setSelectedItems((0, _defineProperty2.default)({}, values[0], null));else setSelectedItems({});
|
|
114
|
+
} else {
|
|
115
|
+
setSelectedItems(initialSelectedItems);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
renderItems();
|
|
119
|
+
renderLabelSelect();
|
|
115
120
|
}, [items]); // cada que cambien los items seleccionados
|
|
116
121
|
|
|
117
122
|
(0, _react.useEffect)(function () {
|
|
118
|
-
if (!selectedItems) return;
|
|
123
|
+
if (!(0, _utils.isObject)(selectedItems)) return;
|
|
119
124
|
renderItems();
|
|
120
125
|
renderLabelSelect();
|
|
121
|
-
onChange && onChange(Object.values(selectedItems));
|
|
122
126
|
}, [selectedItems]); // evento click de cada item de la lista
|
|
123
127
|
|
|
124
128
|
var onClickItem = function onClickItem(isSelected, value) {
|
|
125
129
|
var selectedItemsCopy = (0, _objectSpread2.default)({}, selectedItems);
|
|
126
130
|
|
|
127
131
|
if (isSelected) {
|
|
128
|
-
multiple ? selectedItemsCopy[value] =
|
|
132
|
+
multiple ? selectedItemsCopy[value] = null : selectedItemsCopy = (0, _defineProperty2.default)({}, value, null);
|
|
129
133
|
} else delete selectedItemsCopy[value];
|
|
130
134
|
|
|
131
135
|
setSelectedItems(selectedItemsCopy);
|
|
136
|
+
onChange && onChange(selectedItemsCopy);
|
|
132
137
|
};
|
|
133
138
|
|
|
134
139
|
var onClickSearch = function onClickSearch() {
|
|
@@ -138,8 +143,8 @@ var SelectV2 = function SelectV2(props) {
|
|
|
138
143
|
};
|
|
139
144
|
|
|
140
145
|
var renderLabelSelect = function renderLabelSelect() {
|
|
141
|
-
if (!selectedItems) return;
|
|
142
|
-
var selectedItemsCopy = Object.
|
|
146
|
+
if (!(0, _utils.isObject)(selectedItems)) return;
|
|
147
|
+
var selectedItemsCopy = Object.keys(selectedItems);
|
|
143
148
|
|
|
144
149
|
if (selectedItemsCopy.length > 1) {
|
|
145
150
|
setLabelSelect("Personalizado");
|
|
@@ -188,7 +193,7 @@ var SelectV2 = function SelectV2(props) {
|
|
|
188
193
|
label: item.label,
|
|
189
194
|
value: item.value,
|
|
190
195
|
checkbox: typeSelectItems === "checkbox" ? true : typeSelectItems === "marginCheckbox" ? false : undefined,
|
|
191
|
-
selected: selectedItems && selectedItems[item.value] ? true : false,
|
|
196
|
+
selected: (0, _utils.isObject)(selectedItems) && selectedItems[item.value] !== undefined ? true : false,
|
|
192
197
|
onClick: onClickItem
|
|
193
198
|
}, classNameSelect + "_item" + index);
|
|
194
199
|
}));
|
|
@@ -259,9 +264,12 @@ var SelectV2 = function SelectV2(props) {
|
|
|
259
264
|
label: defaultItem.label,
|
|
260
265
|
value: null,
|
|
261
266
|
checkbox: defaultItem.itemType === "checkbox" ? true : defaultItem.itemType === "marginCheckbox" ? false : undefined,
|
|
262
|
-
selected: selectedItems && Object.keys(selectedItems).length ? false : true,
|
|
267
|
+
selected: (0, _utils.isObject)(selectedItems) && Object.keys(selectedItems).length ? false : true,
|
|
263
268
|
onClick: function onClick(isSelected, value) {
|
|
264
|
-
selectedItems && Object.keys(selectedItems).length
|
|
269
|
+
if ((0, _utils.isObject)(selectedItems) && Object.keys(selectedItems).length) {
|
|
270
|
+
setSelectedItems({});
|
|
271
|
+
onChange && onChange({});
|
|
272
|
+
}
|
|
265
273
|
}
|
|
266
274
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
267
275
|
className: "container-items",
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.TestSelectV2 = void 0;
|
|
9
|
+
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
11
|
+
|
|
12
|
+
var _react = require("react");
|
|
13
|
+
|
|
14
|
+
var _ = require(".");
|
|
15
|
+
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
+
|
|
18
|
+
var TestSelectV2 = function TestSelectV2() {
|
|
19
|
+
var _useState = (0, _react.useState)([{
|
|
20
|
+
label: "item 1",
|
|
21
|
+
value: 1
|
|
22
|
+
}, {
|
|
23
|
+
label: "item 2",
|
|
24
|
+
value: 2
|
|
25
|
+
}, {
|
|
26
|
+
label: "item 3",
|
|
27
|
+
value: 3
|
|
28
|
+
}, {
|
|
29
|
+
label: "item 4",
|
|
30
|
+
value: 4
|
|
31
|
+
}]),
|
|
32
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
33
|
+
items = _useState2[0],
|
|
34
|
+
setItems = _useState2[1];
|
|
35
|
+
|
|
36
|
+
var _useState3 = (0, _react.useState)({
|
|
37
|
+
2: null,
|
|
38
|
+
4: null
|
|
39
|
+
}),
|
|
40
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
41
|
+
selected = _useState4[0],
|
|
42
|
+
setSelected = _useState4[1];
|
|
43
|
+
|
|
44
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
45
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.SelectV2, {
|
|
46
|
+
items: items,
|
|
47
|
+
initialSelectedItems: undefined,
|
|
48
|
+
triggerType: "hover",
|
|
49
|
+
selectButton: {
|
|
50
|
+
type: "whiteS3",
|
|
51
|
+
transparent: true,
|
|
52
|
+
disabled: false,
|
|
53
|
+
label: "Prueba select",
|
|
54
|
+
size: 12
|
|
55
|
+
},
|
|
56
|
+
defaultItem: {
|
|
57
|
+
label: "default opcion",
|
|
58
|
+
itemType: "labelOnly",
|
|
59
|
+
showLabelInSelect: true
|
|
60
|
+
},
|
|
61
|
+
inputSearch: {
|
|
62
|
+
defaultText: "Buscar"
|
|
63
|
+
},
|
|
64
|
+
typeSelectItems: "checkbox",
|
|
65
|
+
multiple: false,
|
|
66
|
+
borderType: "oval",
|
|
67
|
+
onChange: function onChange(selectedItems) {
|
|
68
|
+
console.log("onChange:", selectedItems);
|
|
69
|
+
setSelected(selectedItems);
|
|
70
|
+
}
|
|
71
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
72
|
+
onClick: function onClick(event) {
|
|
73
|
+
setItems([{
|
|
74
|
+
label: "item 1",
|
|
75
|
+
value: 1
|
|
76
|
+
}, {
|
|
77
|
+
label: "item 2",
|
|
78
|
+
value: 2
|
|
79
|
+
}, {
|
|
80
|
+
label: "item 3",
|
|
81
|
+
value: 3
|
|
82
|
+
}, {
|
|
83
|
+
label: "item 4",
|
|
84
|
+
value: 4
|
|
85
|
+
}, {
|
|
86
|
+
label: "item 5",
|
|
87
|
+
value: 5
|
|
88
|
+
}]);
|
|
89
|
+
},
|
|
90
|
+
children: "Refresh lista"
|
|
91
|
+
})]
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
exports.TestSelectV2 = TestSelectV2;
|
package/dist/components/{atoms/ChatPopUp/ChatPopUp.stories.js → molecules/SelectV2/test.stories.js}
RENAMED
|
@@ -5,24 +5,23 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.default = exports.
|
|
8
|
+
exports.default = exports.Test = void 0;
|
|
9
9
|
|
|
10
10
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _test = require("./test");
|
|
13
13
|
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
15
|
|
|
16
16
|
var _default = {
|
|
17
|
-
title: "Components/
|
|
18
|
-
component:
|
|
17
|
+
title: "Components/molecules/SelectV2/TestSelectV2",
|
|
18
|
+
component: _test.TestSelectV2
|
|
19
19
|
};
|
|
20
20
|
exports.default = _default;
|
|
21
21
|
|
|
22
22
|
var Template = function Template(args) {
|
|
23
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
23
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_test.TestSelectV2, (0, _objectSpread2.default)({}, args));
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
var
|
|
27
|
-
exports.
|
|
28
|
-
ChatPopUpDefault.args = {};
|
|
26
|
+
var Test = Template.bind({});
|
|
27
|
+
exports.Test = Test;
|
|
@@ -37,12 +37,12 @@ var RangeCalendar = function RangeCalendar(_ref) {
|
|
|
37
37
|
_ref$calendarId = _ref.calendarId,
|
|
38
38
|
calendarId = _ref$calendarId === void 0 ? "calendar-id" : _ref$calendarId;
|
|
39
39
|
|
|
40
|
-
var _useState = (0, _react.useState)(
|
|
40
|
+
var _useState = (0, _react.useState)(new Date()),
|
|
41
41
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
42
42
|
startDate = _useState2[0],
|
|
43
43
|
setStartDate = _useState2[1];
|
|
44
44
|
|
|
45
|
-
var _useState3 = (0, _react.useState)(
|
|
45
|
+
var _useState3 = (0, _react.useState)(new Date()),
|
|
46
46
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
47
47
|
endDate = _useState4[0],
|
|
48
48
|
setEndDate = _useState4[1];
|
|
@@ -52,6 +52,14 @@ var RangeCalendar = function RangeCalendar(_ref) {
|
|
|
52
52
|
showCalendar = _useCloseModal2[0],
|
|
53
53
|
setShowCalendar = _useCloseModal2[1];
|
|
54
54
|
|
|
55
|
+
(0, _react.useEffect)(function () {
|
|
56
|
+
if (currentDates) {
|
|
57
|
+
console.log(currentDates);
|
|
58
|
+
setStartDate(new Date(currentDates.start));
|
|
59
|
+
setEndDate(new Date(currentDates.end));
|
|
60
|
+
}
|
|
61
|
+
}, [currentDates]);
|
|
62
|
+
|
|
55
63
|
var onChange = function onChange(dates) {
|
|
56
64
|
var _dates = (0, _slicedToArray2.default)(dates, 2),
|
|
57
65
|
start = _dates[0],
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.isValidNaturalNumber = exports.isStringEmpty = exports.isArrayEmpty = exports.getTime = exports.getResizeImgHeight = exports.getImageURL = exports.getImageSize = exports.getFullDate = exports.getFileName = exports.getFileExtension = exports.getDataBuffer = exports.getDataBase64 = exports.getCustomDate = exports.getBase64 = exports.decodeJSON = void 0;
|
|
8
|
+
exports.isValidNaturalNumber = exports.isStringEmpty = exports.isObject = exports.isArrayEmpty = exports.getTime = exports.getResizeImgHeight = exports.getImageURL = exports.getImageSize = exports.getFullDate = exports.getFileName = exports.getFileExtension = exports.getDataBuffer = exports.getDataBase64 = exports.getCustomDate = exports.getBase64 = exports.decodeJSON = void 0;
|
|
9
9
|
|
|
10
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
11
|
|
|
@@ -468,5 +468,17 @@ var decodeJSON = function decodeJSON(valueJSON) {
|
|
|
468
468
|
return valueJSON;
|
|
469
469
|
}
|
|
470
470
|
};
|
|
471
|
+
/*------------------------
|
|
472
|
+
recibe un dato y determina si
|
|
473
|
+
es objeto JS
|
|
474
|
+
--------------------------*/
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
exports.decodeJSON = decodeJSON;
|
|
478
|
+
|
|
479
|
+
var isObject = function isObject(obj) {
|
|
480
|
+
if (obj && (0, _typeof2.default)(obj) === "object" && !Array.isArray(obj)) return true;
|
|
481
|
+
return false;
|
|
482
|
+
};
|
|
471
483
|
|
|
472
|
-
exports.
|
|
484
|
+
exports.isObject = isObject;
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -14,7 +14,11 @@ import {
|
|
|
14
14
|
faCaretDown as IconDownArrow,
|
|
15
15
|
faSearch as IconSearch,
|
|
16
16
|
} from "@fortawesome/free-solid-svg-icons";
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
isArrayEmpty,
|
|
19
|
+
isObject,
|
|
20
|
+
isStringEmpty,
|
|
21
|
+
} from "../../../global-files/utils";
|
|
18
22
|
import { SelectItemV2 } from "../../atoms/SelectItemV2";
|
|
19
23
|
import { InputText } from "../../atoms/InputText";
|
|
20
24
|
|
|
@@ -24,10 +28,10 @@ export const SelectV2 = (props) => {
|
|
|
24
28
|
{
|
|
25
29
|
label: string,
|
|
26
30
|
value: string | number,
|
|
27
|
-
selected: (boolean) true -> item seleccionado al inicio
|
|
28
31
|
} ,
|
|
29
32
|
...
|
|
30
33
|
] */,
|
|
34
|
+
initialSelectedItems, // { value: null , ... } -> value = string | number
|
|
31
35
|
triggerType, // (string) "hover" | "click"
|
|
32
36
|
selectButton /* {
|
|
33
37
|
className: string,
|
|
@@ -57,7 +61,7 @@ export const SelectV2 = (props) => {
|
|
|
57
61
|
classNameSelect, // (string) clase del container select
|
|
58
62
|
classNameDropdown, // (string) clase del contenedor tooltip
|
|
59
63
|
positionDropdown, // (string) posicion del contenedor tooltip (values en object positions)
|
|
60
|
-
onChange, // (selectedItems:
|
|
64
|
+
onChange, // (selectedItems: {}) = {} obj con los values de los items seleccionados
|
|
61
65
|
} = props;
|
|
62
66
|
const positions = {
|
|
63
67
|
topStart: "top-start",
|
|
@@ -86,27 +90,29 @@ export const SelectV2 = (props) => {
|
|
|
86
90
|
|
|
87
91
|
// cada que cambie la lista de items
|
|
88
92
|
useEffect(() => {
|
|
89
|
-
if (isArrayEmpty(items)) {
|
|
93
|
+
if (isArrayEmpty(items) || !isObject(initialSelectedItems)) {
|
|
90
94
|
setSelectedItems({});
|
|
95
|
+
renderItems();
|
|
96
|
+
renderLabelSelect();
|
|
91
97
|
return;
|
|
92
98
|
}
|
|
93
99
|
// items iniciales seleccionados
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
|
|
100
|
+
if (!multiple) {
|
|
101
|
+
const values = Object.keys(initialSelectedItems);
|
|
102
|
+
if (values.length) setSelectedItems({ [values[0]]: null });
|
|
103
|
+
else setSelectedItems({});
|
|
104
|
+
} else {
|
|
105
|
+
setSelectedItems(initialSelectedItems);
|
|
106
|
+
}
|
|
107
|
+
renderItems();
|
|
108
|
+
renderLabelSelect();
|
|
102
109
|
}, [items]);
|
|
103
110
|
|
|
104
111
|
// cada que cambien los items seleccionados
|
|
105
112
|
useEffect(() => {
|
|
106
|
-
if (!selectedItems) return;
|
|
113
|
+
if (!isObject(selectedItems)) return;
|
|
107
114
|
renderItems();
|
|
108
115
|
renderLabelSelect();
|
|
109
|
-
onChange && onChange(Object.values(selectedItems));
|
|
110
116
|
}, [selectedItems]);
|
|
111
117
|
|
|
112
118
|
// evento click de cada item de la lista
|
|
@@ -114,10 +120,11 @@ export const SelectV2 = (props) => {
|
|
|
114
120
|
let selectedItemsCopy = { ...selectedItems };
|
|
115
121
|
if (isSelected) {
|
|
116
122
|
multiple
|
|
117
|
-
? (selectedItemsCopy[value] =
|
|
118
|
-
: (selectedItemsCopy = { [value]:
|
|
123
|
+
? (selectedItemsCopy[value] = null)
|
|
124
|
+
: (selectedItemsCopy = { [value]: null });
|
|
119
125
|
} else delete selectedItemsCopy[value];
|
|
120
126
|
setSelectedItems(selectedItemsCopy);
|
|
127
|
+
onChange && onChange(selectedItemsCopy);
|
|
121
128
|
};
|
|
122
129
|
|
|
123
130
|
const onClickSearch = () => {
|
|
@@ -127,8 +134,8 @@ export const SelectV2 = (props) => {
|
|
|
127
134
|
};
|
|
128
135
|
|
|
129
136
|
const renderLabelSelect = () => {
|
|
130
|
-
if (!selectedItems) return;
|
|
131
|
-
const selectedItemsCopy = Object.
|
|
137
|
+
if (!isObject(selectedItems)) return;
|
|
138
|
+
const selectedItemsCopy = Object.keys(selectedItems);
|
|
132
139
|
if (selectedItemsCopy.length > 1) {
|
|
133
140
|
setLabelSelect("Personalizado");
|
|
134
141
|
} else if (selectedItemsCopy.length === 1) {
|
|
@@ -181,7 +188,11 @@ export const SelectV2 = (props) => {
|
|
|
181
188
|
? false
|
|
182
189
|
: undefined
|
|
183
190
|
}
|
|
184
|
-
selected={
|
|
191
|
+
selected={
|
|
192
|
+
isObject(selectedItems) && selectedItems[item.value] !== undefined
|
|
193
|
+
? true
|
|
194
|
+
: false
|
|
195
|
+
}
|
|
185
196
|
onClick={onClickItem}
|
|
186
197
|
/>
|
|
187
198
|
);
|
|
@@ -285,14 +296,18 @@ export const SelectV2 = (props) => {
|
|
|
285
296
|
: undefined
|
|
286
297
|
}
|
|
287
298
|
selected={
|
|
288
|
-
selectedItems && Object.keys(selectedItems).length
|
|
299
|
+
isObject(selectedItems) && Object.keys(selectedItems).length
|
|
289
300
|
? false
|
|
290
301
|
: true
|
|
291
302
|
}
|
|
292
303
|
onClick={(isSelected, value) => {
|
|
293
|
-
|
|
294
|
-
|
|
304
|
+
if (
|
|
305
|
+
isObject(selectedItems) &&
|
|
306
|
+
Object.keys(selectedItems).length
|
|
307
|
+
) {
|
|
295
308
|
setSelectedItems({});
|
|
309
|
+
onChange && onChange({});
|
|
310
|
+
}
|
|
296
311
|
}}
|
|
297
312
|
/>
|
|
298
313
|
)}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
import { SelectV2 } from ".";
|
|
3
|
+
|
|
4
|
+
export const TestSelectV2 = () => {
|
|
5
|
+
const [items, setItems] = useState([
|
|
6
|
+
{ label: "item 1", value: 1 },
|
|
7
|
+
{ label: "item 2", value: 2 },
|
|
8
|
+
{ label: "item 3", value: 3 },
|
|
9
|
+
{ label: "item 4", value: 4 },
|
|
10
|
+
]);
|
|
11
|
+
const [selected, setSelected] = useState({
|
|
12
|
+
2: null,
|
|
13
|
+
4: null,
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
return (
|
|
17
|
+
<>
|
|
18
|
+
<SelectV2
|
|
19
|
+
items={items}
|
|
20
|
+
initialSelectedItems={undefined}
|
|
21
|
+
triggerType={"hover"}
|
|
22
|
+
selectButton={{
|
|
23
|
+
type: "whiteS3",
|
|
24
|
+
transparent: true,
|
|
25
|
+
disabled: false,
|
|
26
|
+
label: "Prueba select",
|
|
27
|
+
size: 12,
|
|
28
|
+
}}
|
|
29
|
+
defaultItem={{
|
|
30
|
+
label: "default opcion",
|
|
31
|
+
itemType: "labelOnly",
|
|
32
|
+
showLabelInSelect: true,
|
|
33
|
+
}}
|
|
34
|
+
inputSearch={{
|
|
35
|
+
defaultText: "Buscar",
|
|
36
|
+
}}
|
|
37
|
+
typeSelectItems={"checkbox"}
|
|
38
|
+
multiple={false}
|
|
39
|
+
borderType={"oval"}
|
|
40
|
+
onChange={(selectedItems) => {
|
|
41
|
+
console.log("onChange:", selectedItems);
|
|
42
|
+
setSelected(selectedItems);
|
|
43
|
+
}}
|
|
44
|
+
/>
|
|
45
|
+
|
|
46
|
+
<button
|
|
47
|
+
onClick={(event) => {
|
|
48
|
+
setItems([
|
|
49
|
+
{ label: "item 1", value: 1 },
|
|
50
|
+
{ label: "item 2", value: 2 },
|
|
51
|
+
{ label: "item 3", value: 3 },
|
|
52
|
+
{ label: "item 4", value: 4 },
|
|
53
|
+
{ label: "item 5", value: 5 },
|
|
54
|
+
]);
|
|
55
|
+
}}
|
|
56
|
+
>
|
|
57
|
+
Refresh lista
|
|
58
|
+
</button>
|
|
59
|
+
</>
|
|
60
|
+
);
|
|
61
|
+
};
|
|
@@ -3,6 +3,7 @@ import { useState } from "react";
|
|
|
3
3
|
import DatePicker, { registerLocale, setDefaultLocale } from "react-datepicker";
|
|
4
4
|
import es from "date-fns/locale/es";
|
|
5
5
|
import { useCloseModal } from "../../../global-files/customHooks";
|
|
6
|
+
import { useEffect } from "react";
|
|
6
7
|
registerLocale("es", es);
|
|
7
8
|
|
|
8
9
|
export const RangeCalendar = ({
|
|
@@ -12,13 +13,16 @@ export const RangeCalendar = ({
|
|
|
12
13
|
label = "Elige las fechas",
|
|
13
14
|
calendarId = "calendar-id",
|
|
14
15
|
}) => {
|
|
15
|
-
const [startDate, setStartDate] = useState(
|
|
16
|
-
|
|
17
|
-
);
|
|
18
|
-
const [endDate, setEndDate] = useState(
|
|
19
|
-
currentDates?.end ? new Date(currentDates.end) : new Date()
|
|
20
|
-
);
|
|
16
|
+
const [startDate, setStartDate] = useState(new Date());
|
|
17
|
+
const [endDate, setEndDate] = useState(new Date());
|
|
21
18
|
const [showCalendar, setShowCalendar] = useCloseModal(calendarId);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
if (currentDates) {
|
|
21
|
+
console.log(currentDates);
|
|
22
|
+
setStartDate(new Date(currentDates.start));
|
|
23
|
+
setEndDate(new Date(currentDates.end));
|
|
24
|
+
}
|
|
25
|
+
}, [currentDates]);
|
|
22
26
|
const onChange = (dates) => {
|
|
23
27
|
const [start, end] = dates;
|
|
24
28
|
setStartDate(start);
|
|
@@ -298,3 +298,12 @@ export const decodeJSON = (valueJSON) => {
|
|
|
298
298
|
return valueJSON;
|
|
299
299
|
}
|
|
300
300
|
};
|
|
301
|
+
|
|
302
|
+
/*------------------------
|
|
303
|
+
recibe un dato y determina si
|
|
304
|
+
es objeto JS
|
|
305
|
+
--------------------------*/
|
|
306
|
+
export const isObject = (obj) => {
|
|
307
|
+
if (obj && typeof obj === "object" && !Array.isArray(obj)) return true;
|
|
308
|
+
return false;
|
|
309
|
+
};
|
|
Binary file
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
|
|
2
|
-
<path id="close_FILL0_wght400_GRAD0_opsz48" d="M6.385,19.308,5.308,18.231l5.923-5.923L5.308,6.385,6.385,5.308l5.923,5.923,5.923-5.923,1.077,1.077-5.923,5.923,5.923,5.923-1.077,1.077-5.923-5.923Z" transform="translate(-5.308 -5.308)" fill="#fff"/>
|
|
3
|
-
</svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 51 65" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round"><use xlink:href="#C" x=".5" y=".5"/><defs><filter id="A" x="-6%" y="-4.6875%" width="116%" height="112.5%"><feGaussianBlur in="SourceAlpha" stdDeviation="1"/><feOffset dx="2" dy="2" result="B"/><feFlood flood-color="#000" flood-opacity=".2"/><feComposite in2="B" operator="in" result="C"/><feMerge><feMergeNode in="C"/><feMergeNode in="SourceGraphic"/></feMerge></filter><filter id="B" x="-27.5%" y="-32.5%" width="160%" height="160%"><feGaussianBlur in="SourceAlpha" stdDeviation="2"/><feOffset dx="1" dy="-1" result="B"/><feFlood flood-color="#000" flood-opacity=".2"/><feComposite in2="B" operator="in" result="C"/><feMerge><feMergeNode in="C"/><feMergeNode in="SourceGraphic"/></feMerge></filter></defs><symbol id="C" overflow="visible"><path d="M50 20L30 0H5a4.99 4.99 0 0 0-5 5v54a4.99 4.99 0 0 0 5 5h40a4.99 4.99 0 0 0 5-5z" fill="#2196f3" stroke="none" filter="url(#A)"/><defs/><g transform="matrix(-1 0 0 -1 50 20)"><path d="M20 20L0 0h15a4.99 4.99 0 0 1 5 5z" fill="#90caf9" stroke="none" filter="url(#B)"/><defs/></g><path d="M10 17.5h17.5V20H10zm0 10h27.5V30H10zm0 10h27.5V40H10zm0 10h27.5V50H10z" stroke="none"/></symbol></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 66 81" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round"><use xlink:href="#A" x=".5" y=".5"/><symbol id="A" overflow="visible"><path d="M44.674 0H0v79.977h65V20.012L44.674 0zM60.93 75.993H4.07V4.007h38.593v18.008h18.291v53.978zm-10.151-40H14.221v-3.984h36.558zm0 9.995H14.221v-3.984h36.558zm0 10.017H14.221v-4.007h36.558zm0 9.994H14.221v-4.007h36.558z" fill="#2a3282" stroke="none"/></symbol></svg>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="14" viewBox="0 0 14 14">
|
|
2
|
-
<defs>
|
|
3
|
-
<style>
|
|
4
|
-
.cls-1 {
|
|
5
|
-
fill: #707070;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.cls-2 {
|
|
9
|
-
clip-path: url(#clip-path);
|
|
10
|
-
}
|
|
11
|
-
</style>
|
|
12
|
-
<clipPath id="clip-path">
|
|
13
|
-
<rect id="Rectángulo_368" data-name="Rectángulo 368" class="cls-1" width="14" height="14" transform="translate(1737 869)"/>
|
|
14
|
-
</clipPath>
|
|
15
|
-
</defs>
|
|
16
|
-
<g id="Enmascarar_grupo_83" data-name="Enmascarar grupo 83" class="cls-2" transform="translate(-1737 -869)">
|
|
17
|
-
<path id="forum_FILL0_wght400_GRAD0_opsz48" class="cls-1" d="M1.4,11.9V2.135a.728.728,0,0,1,.228-.49A.651.651,0,0,1,2.1,1.4h9.082a.675.675,0,0,1,.49.236.714.714,0,0,1,.227.5v6.23a.728.728,0,0,1-.227.49.666.666,0,0,1-.49.245H4.2Zm3.518.7a.678.678,0,0,1-.481-.245.716.716,0,0,1-.236-.49V10.15h8.75V4.2H14.7a.651.651,0,0,1,.472.245.744.744,0,0,1,.227.508v10.43L12.617,12.6ZM10.85,2.45H2.45V9.363L3.763,8.05H10.85Zm-8.4,0v0Z" transform="translate(1735.6 867.609)"/>
|
|
18
|
-
</g>
|
|
19
|
-
</svg>
|