phx-react 1.3.564 → 1.3.566
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/cjs/components/Combobox/Combobox.d.ts +11 -10
- package/dist/cjs/components/Combobox/Combobox.js +84 -70
- package/dist/cjs/components/Combobox/Combobox.js.map +1 -1
- package/dist/esm/components/Combobox/Combobox.d.ts +11 -10
- package/dist/esm/components/Combobox/Combobox.js +84 -70
- package/dist/esm/components/Combobox/Combobox.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
type TSelectItem = Array<{
|
|
3
|
+
id: number;
|
|
4
|
+
name: string;
|
|
5
|
+
}>;
|
|
2
6
|
export interface ComboboxProps {
|
|
3
7
|
className?: string;
|
|
4
8
|
label?: string;
|
|
5
9
|
id?: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
id: number;
|
|
9
|
-
name: string;
|
|
10
|
-
}>;
|
|
11
|
-
defaultValue?: Array<{
|
|
12
|
-
id: number;
|
|
13
|
-
name: string;
|
|
14
|
-
}>;
|
|
10
|
+
listOptions: TSelectItem;
|
|
11
|
+
defaultValue?: TSelectItem;
|
|
15
12
|
placeholder?: string;
|
|
16
13
|
onChange?: any;
|
|
17
14
|
error?: boolean;
|
|
15
|
+
selectFieldPosition?: 'top' | 'bottom';
|
|
16
|
+
optionHeight?: number;
|
|
17
|
+
disabled?: boolean;
|
|
18
18
|
}
|
|
19
|
-
export declare const PHXCombobox: ({
|
|
19
|
+
export declare const PHXCombobox: ({ className, defaultValue, disabled, error, id, label, listOptions, onChange, optionHeight, placeholder, selectFieldPosition, }: ComboboxProps) => React.JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -2,98 +2,112 @@
|
|
|
2
2
|
exports.__esModule = true;
|
|
3
3
|
exports.PHXCombobox = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
+
var solid_1 = require("@heroicons/react/24/solid");
|
|
5
6
|
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
7
|
var Checkbox_1 = require("../Checkbox");
|
|
7
|
-
var react_hook_form_1 = require("react-hook-form");
|
|
8
|
-
var solid_1 = require("@heroicons/react/24/solid");
|
|
9
8
|
var PHXCombobox = function (_a) {
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
9
|
+
var className = _a.className, defaultValue = _a.defaultValue, _b = _a.disabled, disabled = _b === void 0 ? false : _b, error = _a.error, id = _a.id, label = _a.label, listOptions = _a.listOptions, onChange = _a.onChange, _c = _a.optionHeight, optionHeight = _c === void 0 ? 300 : _c, placeholder = _a.placeholder, _d = _a.selectFieldPosition, selectFieldPosition = _d === void 0 ? 'bottom' : _d;
|
|
10
|
+
var _e = (0, react_1.useState)(false), isFocused = _e[0], setIsFocused = _e[1];
|
|
11
|
+
var _f = (0, react_1.useState)(defaultValue || []), selectedItems = _f[0], setSelectedItems = _f[1];
|
|
12
|
+
var _g = (0, react_1.useState)(listOptions || []), options = _g[0], setOptions = _g[1];
|
|
13
|
+
var checkedAll = (listOptions === null || listOptions === void 0 ? void 0 : listOptions.length) === (selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.length);
|
|
14
14
|
var wrapperRef = (0, react_1.useRef)(null);
|
|
15
|
-
var
|
|
16
|
-
(0, react_1.useEffect)(function () {
|
|
15
|
+
var handleChange = function (data) {
|
|
17
16
|
if (onChange) {
|
|
18
|
-
onChange(
|
|
17
|
+
onChange(data);
|
|
19
18
|
}
|
|
20
|
-
|
|
21
|
-
}, [selectedItems]);
|
|
22
|
-
// ẩn hiện khi focus vào input
|
|
23
|
-
(0, react_1.useEffect)(function () {
|
|
24
|
-
var handleClickOutside = function (event) {
|
|
25
|
-
var _a;
|
|
26
|
-
// @ts-ignore
|
|
27
|
-
if (wrapperRef.current && !((_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
|
|
28
|
-
setIsFocused(false);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
32
|
-
return function () {
|
|
33
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
34
|
-
};
|
|
35
|
-
}, [wrapperRef]);
|
|
19
|
+
};
|
|
36
20
|
var handleItemClick = function (item) {
|
|
37
21
|
var isSelected = selectedItems.some(function (selectedItem) { return selectedItem.id === item.id; });
|
|
38
22
|
if (isSelected) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
23
|
+
var newSelectedItem = selectedItems.filter(function (selectedItem) { return selectedItem.id !== item.id; });
|
|
24
|
+
setSelectedItems(newSelectedItem);
|
|
25
|
+
handleChange(newSelectedItem);
|
|
26
|
+
return;
|
|
43
27
|
}
|
|
44
|
-
|
|
28
|
+
handleChange(tslib_1.__spreadArray(tslib_1.__spreadArray([], selectedItems, true), [item], false));
|
|
29
|
+
setSelectedItems(tslib_1.__spreadArray(tslib_1.__spreadArray([], selectedItems, true), [item], false));
|
|
45
30
|
};
|
|
46
31
|
var handleRemoveItem = function (item) {
|
|
47
32
|
var newSelectedItems = selectedItems.filter(function (selectedItem) { return selectedItem.id !== item.id; });
|
|
48
33
|
setSelectedItems(newSelectedItems);
|
|
34
|
+
handleChange(newSelectedItems);
|
|
49
35
|
};
|
|
50
|
-
var
|
|
51
|
-
|
|
52
|
-
// tính toán chiều cao của input để chứa các item được chọn
|
|
53
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
54
|
-
(0, react_1.useEffect)(function () {
|
|
55
|
-
// @ts-ignore
|
|
56
|
-
setHeight(heightRef.current.clientHeight);
|
|
57
|
-
});
|
|
58
|
-
var inputValueWatch = watch('main') || '';
|
|
59
|
-
(0, react_1.useEffect)(function () {
|
|
60
|
-
if (inputValueWatch === '') {
|
|
36
|
+
var handleChangeInput = function (value) {
|
|
37
|
+
if (value === '') {
|
|
61
38
|
setOptions(listOptions);
|
|
62
39
|
}
|
|
63
40
|
else {
|
|
64
41
|
var filteredOptions = listOptions.filter(function (option) {
|
|
65
|
-
return option.name.toLowerCase().includes(
|
|
42
|
+
return option.name.toLowerCase().includes(value.toLowerCase());
|
|
66
43
|
});
|
|
67
44
|
setOptions(filteredOptions);
|
|
68
45
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
46
|
+
};
|
|
47
|
+
var handleCheckAll = function () {
|
|
48
|
+
if (checkedAll) {
|
|
49
|
+
setSelectedItems([]);
|
|
50
|
+
handleChange([]);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
setSelectedItems(options);
|
|
54
|
+
handleChange(options);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
(0, react_1.useEffect)(function () {
|
|
58
|
+
var handleClickOutside = function (event) {
|
|
59
|
+
var _a;
|
|
60
|
+
if (wrapperRef.current && !((_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
|
|
61
|
+
setIsFocused(false);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
65
|
+
return function () {
|
|
66
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
67
|
+
};
|
|
68
|
+
}, [wrapperRef]);
|
|
69
|
+
(0, react_1.useEffect)(function () {
|
|
70
|
+
setOptions(listOptions);
|
|
71
|
+
}, [listOptions]);
|
|
72
|
+
(0, react_1.useEffect)(function () {
|
|
73
|
+
if (defaultValue) {
|
|
74
|
+
setSelectedItems(defaultValue);
|
|
75
|
+
}
|
|
76
|
+
}, [defaultValue]);
|
|
77
|
+
return (react_1["default"].createElement("div", { className: className, id: id },
|
|
78
|
+
label && react_1["default"].createElement("label", { className: 'mb-1 block text-xs font-normal text-gray-700' }, label),
|
|
79
|
+
react_1["default"].createElement("div", { ref: wrapperRef, className: 'relative w-full bg-gray-100' },
|
|
80
|
+
react_1["default"].createElement("div", { className: "".concat(error ? 'border-red-800 bg-red-50 hover:bg-red-50 focus:border-red-800 focus:bg-red-50' : '', " \n ").concat(disabled ? 'bg-[#f9fafb]' : 'bg-white', "\n block w-full space-y-1 rounded-lg border border-gray-500 text-sm shadow-sm hover:bg-gray-50 focus:border-gray-500 focus:bg-gray-50 focus:outline-none focus:outline-offset-1 focus:outline-indigo-500 focus:ring-transparent ") },
|
|
81
|
+
selectedItems.length > 0 && options.length > 0 && !checkedAll && listOptions.length > 0 && (react_1["default"].createElement("div", { className: ' ml-2 mt-2 flex flex-wrap items-center gap-2 ' }, selectedItems.map(function (item) { return (react_1["default"].createElement("div", { key: item.name + item.id, className: 'flex items-center whitespace-nowrap rounded-xl bg-gray-200' },
|
|
82
|
+
react_1["default"].createElement("p", { className: 'pl-2 pr-[2px] text-xs text-gray-700' }, item.name),
|
|
83
|
+
react_1["default"].createElement("button", { className: 'rounded-xl p-[3px] hover:cursor-pointer hover:bg-gray-300', onClick: function () { return handleRemoveItem(item); }, type: 'button' },
|
|
84
|
+
react_1["default"].createElement(solid_1.XMarkIcon, { className: 'h-4 w-4' })))); }))),
|
|
85
|
+
react_1["default"].createElement("input", { className: ' w-full rounded-lg border-none border-transparent text-xs outline-none focus:border-none focus:border-transparent focus:ring-0', disabled: disabled, id: 'main', onChange: function (e) { return handleChangeInput(e.target.value); }, onFocus: function () { return setIsFocused(true); }, placeholder: selectedItems.length === (listOptions === null || listOptions === void 0 ? void 0 : listOptions.length) && selectedItems.length > 0 ? 'Tất cả' : placeholder })),
|
|
86
|
+
options.length > 0 ? (react_1["default"].createElement("div", {
|
|
87
|
+
// eslint-disable-next-line prettier/prettier
|
|
88
|
+
className: "absolute z-50 mt-2 w-full overflow-y-auto rounded-lg bg-white p-2 shadow-xl ".concat(!isFocused ? 'hidden' : ''), style: tslib_1.__assign({ height: optionHeight }, (selectFieldPosition === 'top' && {
|
|
89
|
+
top: -optionHeight - 10
|
|
90
|
+
})) },
|
|
91
|
+
react_1["default"].createElement("div", { key: 'selectAllCheckBox', className: 'relative mb-1 rounded-lg px-2 py-[1.5px] hover:bg-gray-200' },
|
|
92
|
+
react_1["default"].createElement(Checkbox_1.PHXCheckbox, { checked: checkedAll, className: 'mb-1 rounded-lg px-2 py-[1.5px] hover:bg-gray-200', id: "checkbox_".concat(Math.floor(Math.random() * 1000000) + 1), onClick: function () {
|
|
93
|
+
handleCheckAll();
|
|
94
|
+
}, title: 'T\u1EA5t c\u1EA3' }),
|
|
95
|
+
react_1["default"].createElement("button", { className: 'absolute inset-0 cursor-pointer', onClick: function () {
|
|
96
|
+
handleCheckAll();
|
|
97
|
+
}, type: 'button' })), options === null || options === void 0 ? void 0 :
|
|
98
|
+
options.map(function (item) {
|
|
99
|
+
var randomNum = Math.floor(Math.random() * 1000000) + 1;
|
|
100
|
+
return (react_1["default"].createElement("div", { key: item.id, className: 'relative mb-1 rounded-lg px-2 py-[1.5px] hover:bg-gray-200' },
|
|
101
|
+
react_1["default"].createElement(Checkbox_1.PHXCheckbox, { checked: selectedItems.some(function (selectedItem) { return selectedItem.id === item.id; }), className: 'mb-1 rounded-lg px-2 py-[1.5px] hover:bg-gray-200', id: "checkbox_".concat(randomNum), onClick: function () { return handleItemClick(item); }, title: item.name }),
|
|
102
|
+
react_1["default"].createElement("button", { className: 'absolute inset-0 cursor-pointer', onClick: function () { return handleItemClick(item); }, type: 'button' })));
|
|
103
|
+
}))) : (react_1["default"].createElement("div", {
|
|
104
|
+
// eslint-disable-next-line prettier/prettier
|
|
105
|
+
className: "absolute z-50 mt-2 w-full overflow-y-auto rounded-lg bg-white p-2 shadow-xl ".concat(!isFocused ? 'hidden' : ''), style: tslib_1.__assign({}, (selectFieldPosition === 'top' && { top: -90 })) },
|
|
106
|
+
react_1["default"].createElement("div", { className: 'mt-3 h-[50px] text-center' },
|
|
107
|
+
react_1["default"].createElement("div", null,
|
|
108
|
+
react_1["default"].createElement("svg", { className: 'mx-auto h-4 w-4 text-gray-700', fill: 'none', stroke: 'currentColor', viewBox: '0 0 24 24', xmlns: 'http://www.w3.org/2000/svg' },
|
|
109
|
+
react_1["default"].createElement("path", { d: 'M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z', strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: '2' })),
|
|
110
|
+
react_1["default"].createElement("h3", { className: 'mt-[2px] text-sm text-gray-700' }, "Kh\u00F4ng c\u00F3 d\u1EEF li\u1EC7u"))))))));
|
|
97
111
|
};
|
|
98
112
|
exports.PHXCombobox = PHXCombobox;
|
|
99
113
|
//# sourceMappingURL=Combobox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../../../src/components/Combobox/Combobox.tsx"],"names":[],"mappings":";;;;AAAA,qDAA0D;AAC1D,wCAAyC;
|
|
1
|
+
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../../../src/components/Combobox/Combobox.tsx"],"names":[],"mappings":";;;;AAAA,mDAAqD;AACrD,qDAA0D;AAC1D,wCAAyC;AAiBlC,IAAM,WAAW,GAAG,UAAC,EAYZ;QAXd,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,KAAK,WAAA,EACL,EAAE,QAAA,EACF,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,oBAAkB,EAAlB,YAAY,mBAAG,GAAG,KAAA,EAClB,WAAW,iBAAA,EACX,2BAA8B,EAA9B,mBAAmB,mBAAG,QAAQ,KAAA;IAExB,IAAA,KAA4B,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAA;IAC3C,IAAA,KAAoC,IAAA,gBAAQ,EAAc,YAAY,IAAI,EAAE,CAAC,EAA5E,aAAa,QAAA,EAAE,gBAAgB,QAA6C,CAAA;IAC7E,IAAA,KAAwB,IAAA,gBAAQ,EAAM,WAAW,IAAI,EAAE,CAAC,EAAvD,OAAO,QAAA,EAAE,UAAU,QAAoC,CAAA;IAC9D,IAAM,UAAU,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,OAAK,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAA,CAAA;IAEhE,IAAM,UAAU,GAAG,IAAA,cAAM,EAAM,IAAI,CAAC,CAAA;IAEpC,IAAM,YAAY,GAAG,UAAC,IAAS;QAC7B,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,IAAI,CAAC,CAAA;SACf;IACH,CAAC,CAAA;IAED,IAAM,eAAe,GAAG,UAAC,IAAS;QAChC,IAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,UAAC,YAAiB,IAAK,OAAA,YAAY,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAA3B,CAA2B,CAAC,CAAA;QAEzF,IAAI,UAAU,EAAE;YACd,IAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,YAAiB,IAAK,OAAA,YAAY,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAA3B,CAA2B,CAAC,CAAA;YAEhG,gBAAgB,CAAC,eAAe,CAAC,CAAA;YAEjC,YAAY,CAAC,eAAe,CAAC,CAAA;YAE7B,OAAM;SACP;QAED,YAAY,iDAAK,aAAa,UAAE,IAAI,UAAE,CAAA;QAEtC,gBAAgB,iDAAK,aAAa,UAAE,IAAI,UAAE,CAAA;IAC5C,CAAC,CAAA;IAED,IAAM,gBAAgB,GAAG,UAAC,IAAS;QACjC,IAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,YAAiB,IAAK,OAAA,YAAY,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAA3B,CAA2B,CAAC,CAAA;QAEjG,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;QAClC,YAAY,CAAC,gBAAgB,CAAC,CAAA;IAChC,CAAC,CAAA;IAED,IAAM,iBAAiB,GAAG,UAAC,KAAa;QACtC,IAAI,KAAK,KAAK,EAAE,EAAE;YAChB,UAAU,CAAC,WAAW,CAAC,CAAA;SACxB;aAAM;YACL,IAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,UAAC,MAAW;gBACrD,OAAA,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAAvD,CAAuD,CACxD,CAAA;YAED,UAAU,CAAC,eAAe,CAAC,CAAA;SAC5B;IACH,CAAC,CAAA;IAED,IAAM,cAAc,GAAG;QACrB,IAAI,UAAU,EAAE;YACd,gBAAgB,CAAC,EAAE,CAAC,CAAA;YACpB,YAAY,CAAC,EAAE,CAAC,CAAA;SACjB;aAAM;YACL,gBAAgB,CAAC,OAAO,CAAC,CAAA;YACzB,YAAY,CAAC,OAAO,CAAC,CAAA;SACtB;IACH,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC;QACR,IAAM,kBAAkB,GAAG,UAAC,KAAU;;YACpC,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA,EAAE;gBACrE,YAAY,CAAC,KAAK,CAAC,CAAA;aACpB;QACH,CAAC,CAAA;QAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;QAC1D,OAAO;YACL,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;QAC/D,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,IAAA,iBAAS,EAAC;QACR,UAAU,CAAC,WAAW,CAAC,CAAA;IACzB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,IAAA,iBAAS,EAAC;QACR,IAAI,YAAY,EAAE;YAChB,gBAAgB,CAAC,YAAY,CAAC,CAAA;SAC/B;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,OAAO,CACL,0CAAK,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE;QAC9B,KAAK,IAAI,4CAAO,SAAS,EAAC,8CAA8C,IAAE,KAAK,CAAS;QACzF,0CAAK,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,6BAA6B;YAC3D,0CACE,SAAS,EAAE,UAAG,KAAK,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,EAAE,0BACxG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,gPACwL;gBAE/N,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1F,0CAAK,SAAS,EAAC,+CAA+C,IAC3D,aAAa,CAAC,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,CAChC,0CAAK,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,SAAS,EAAC,4DAA4D;oBACnG,wCAAG,SAAS,EAAC,qCAAqC,IAAE,IAAI,CAAC,IAAI,CAAK;oBAClE,6CACE,SAAS,EAAC,2DAA2D,EACrE,OAAO,EAAE,cAAM,OAAA,gBAAgB,CAAC,IAAI,CAAC,EAAtB,CAAsB,EACrC,IAAI,EAAC,QAAQ;wBAEb,iCAAC,iBAAS,IAAC,SAAS,EAAC,SAAS,GAAG,CAC1B,CACL,CACP,EAXiC,CAWjC,CAAC,CACE,CACP;gBAED,4CACE,SAAS,EAAC,gIAAgI,EAC1I,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAC,MAAM,EACT,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAjC,CAAiC,EAClD,OAAO,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACjC,WAAW,EACT,aAAa,CAAC,MAAM,MAAK,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,CAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,GAEnG,CACE;YAEL,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACpB;gBACE,6CAA6C;gBAC7C,SAAS,EAAE,wFACT,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAC1B,EACF,KAAK,qBACH,MAAM,EAAE,YAAY,IACjB,CAAC,mBAAmB,KAAK,KAAK,IAAI;oBACnC,GAAG,EAAE,CAAC,YAAY,GAAG,EAAE;iBACxB,CAAC;gBAGJ,0CAAK,GAAG,EAAC,mBAAmB,EAAC,SAAS,EAAC,4DAA4D;oBACjG,iCAAC,sBAAW,IACV,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,qDAAqD,EAC/D,EAAE,EAAE,mBAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAE,EACzD,OAAO,EAAE;4BACP,cAAc,EAAE,CAAA;wBAClB,CAAC,EACD,KAAK,EAAC,kBAAQ,GACd;oBACF,6CACE,SAAS,EAAC,iCAAiC,EAC3C,OAAO,EAAE;4BACP,cAAc,EAAE,CAAA;wBAClB,CAAC,EACD,IAAI,EAAC,QAAQ,GACb,CACE,EACL,OAAO,aAAP,OAAO;gBAAP,OAAO,CAAE,GAAG,CAAC,UAAC,IAAS;oBACtB,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;oBACzD,OAAO,CACL,0CAAK,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAC,4DAA4D;wBACvF,iCAAC,sBAAW,IACV,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,UAAC,YAAiB,IAAK,OAAA,YAAY,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAA3B,CAA2B,CAAC,EAC/E,SAAS,EAAC,qDAAqD,EAC/D,EAAE,EAAE,mBAAY,SAAS,CAAE,EAC3B,OAAO,EAAE,cAAM,OAAA,eAAe,CAAC,IAAI,CAAC,EAArB,CAAqB,EACpC,KAAK,EAAE,IAAI,CAAC,IAAI,GAChB;wBACF,6CACE,SAAS,EAAC,iCAAiC,EAC3C,OAAO,EAAE,cAAM,OAAA,eAAe,CAAC,IAAI,CAAC,EAArB,CAAqB,EACpC,IAAI,EAAC,QAAQ,GACb,CACE,CACP,CAAA;gBACH,CAAC,CAAC,CACE,CACP,CAAC,CAAC,CAAC,CACF;gBACE,6CAA6C;gBAC7C,SAAS,EAAE,wFACT,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAC1B,EACF,KAAK,uBACA,CAAC,mBAAmB,KAAK,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAGpD,0CAAK,SAAS,EAAC,2BAA2B;oBACxC;wBACE,0CACE,SAAS,EAAC,+BAA+B,EACzC,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B;4BAElC,2CACE,CAAC,EAAC,6CAA6C,EAC/C,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAC,GAAG,GACf,CACE;wBACN,yCAAI,SAAS,EAAC,gCAAgC,2CAAsB,CAChE,CACF,CACF,CACP,CACG,CACF,CACP,CAAA;AACH,CAAC,CAAA;AA3NY,QAAA,WAAW,eA2NvB"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
type TSelectItem = Array<{
|
|
3
|
+
id: number;
|
|
4
|
+
name: string;
|
|
5
|
+
}>;
|
|
2
6
|
export interface ComboboxProps {
|
|
3
7
|
className?: string;
|
|
4
8
|
label?: string;
|
|
5
9
|
id?: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
id: number;
|
|
9
|
-
name: string;
|
|
10
|
-
}>;
|
|
11
|
-
defaultValue?: Array<{
|
|
12
|
-
id: number;
|
|
13
|
-
name: string;
|
|
14
|
-
}>;
|
|
10
|
+
listOptions: TSelectItem;
|
|
11
|
+
defaultValue?: TSelectItem;
|
|
15
12
|
placeholder?: string;
|
|
16
13
|
onChange?: any;
|
|
17
14
|
error?: boolean;
|
|
15
|
+
selectFieldPosition?: 'top' | 'bottom';
|
|
16
|
+
optionHeight?: number;
|
|
17
|
+
disabled?: boolean;
|
|
18
18
|
}
|
|
19
|
-
export declare const PHXCombobox: ({
|
|
19
|
+
export declare const PHXCombobox: ({ className, defaultValue, disabled, error, id, label, listOptions, onChange, optionHeight, placeholder, selectFieldPosition, }: ComboboxProps) => React.JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -1,95 +1,109 @@
|
|
|
1
1
|
import { __assign, __spreadArray } from "tslib";
|
|
2
|
+
import { XMarkIcon } from '@heroicons/react/24/solid';
|
|
2
3
|
import React, { useEffect, useRef, useState } from 'react';
|
|
3
4
|
import { PHXCheckbox } from '../Checkbox';
|
|
4
|
-
import { useForm } from 'react-hook-form';
|
|
5
|
-
import { XMarkIcon } from '@heroicons/react/24/solid';
|
|
6
5
|
export var PHXCombobox = function (_a) {
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
6
|
+
var className = _a.className, defaultValue = _a.defaultValue, _b = _a.disabled, disabled = _b === void 0 ? false : _b, error = _a.error, id = _a.id, label = _a.label, listOptions = _a.listOptions, onChange = _a.onChange, _c = _a.optionHeight, optionHeight = _c === void 0 ? 300 : _c, placeholder = _a.placeholder, _d = _a.selectFieldPosition, selectFieldPosition = _d === void 0 ? 'bottom' : _d;
|
|
7
|
+
var _e = useState(false), isFocused = _e[0], setIsFocused = _e[1];
|
|
8
|
+
var _f = useState(defaultValue || []), selectedItems = _f[0], setSelectedItems = _f[1];
|
|
9
|
+
var _g = useState(listOptions || []), options = _g[0], setOptions = _g[1];
|
|
10
|
+
var checkedAll = (listOptions === null || listOptions === void 0 ? void 0 : listOptions.length) === (selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.length);
|
|
11
11
|
var wrapperRef = useRef(null);
|
|
12
|
-
var
|
|
13
|
-
useEffect(function () {
|
|
12
|
+
var handleChange = function (data) {
|
|
14
13
|
if (onChange) {
|
|
15
|
-
onChange(
|
|
14
|
+
onChange(data);
|
|
16
15
|
}
|
|
17
|
-
|
|
18
|
-
}, [selectedItems]);
|
|
19
|
-
// ẩn hiện khi focus vào input
|
|
20
|
-
useEffect(function () {
|
|
21
|
-
var handleClickOutside = function (event) {
|
|
22
|
-
var _a;
|
|
23
|
-
// @ts-ignore
|
|
24
|
-
if (wrapperRef.current && !((_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
|
|
25
|
-
setIsFocused(false);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
29
|
-
return function () {
|
|
30
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
31
|
-
};
|
|
32
|
-
}, [wrapperRef]);
|
|
16
|
+
};
|
|
33
17
|
var handleItemClick = function (item) {
|
|
34
18
|
var isSelected = selectedItems.some(function (selectedItem) { return selectedItem.id === item.id; });
|
|
35
19
|
if (isSelected) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
20
|
+
var newSelectedItem = selectedItems.filter(function (selectedItem) { return selectedItem.id !== item.id; });
|
|
21
|
+
setSelectedItems(newSelectedItem);
|
|
22
|
+
handleChange(newSelectedItem);
|
|
23
|
+
return;
|
|
40
24
|
}
|
|
41
|
-
|
|
25
|
+
handleChange(__spreadArray(__spreadArray([], selectedItems, true), [item], false));
|
|
26
|
+
setSelectedItems(__spreadArray(__spreadArray([], selectedItems, true), [item], false));
|
|
42
27
|
};
|
|
43
28
|
var handleRemoveItem = function (item) {
|
|
44
29
|
var newSelectedItems = selectedItems.filter(function (selectedItem) { return selectedItem.id !== item.id; });
|
|
45
30
|
setSelectedItems(newSelectedItems);
|
|
31
|
+
handleChange(newSelectedItems);
|
|
46
32
|
};
|
|
47
|
-
var
|
|
48
|
-
|
|
49
|
-
// tính toán chiều cao của input để chứa các item được chọn
|
|
50
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
51
|
-
useEffect(function () {
|
|
52
|
-
// @ts-ignore
|
|
53
|
-
setHeight(heightRef.current.clientHeight);
|
|
54
|
-
});
|
|
55
|
-
var inputValueWatch = watch('main') || '';
|
|
56
|
-
useEffect(function () {
|
|
57
|
-
if (inputValueWatch === '') {
|
|
33
|
+
var handleChangeInput = function (value) {
|
|
34
|
+
if (value === '') {
|
|
58
35
|
setOptions(listOptions);
|
|
59
36
|
}
|
|
60
37
|
else {
|
|
61
38
|
var filteredOptions = listOptions.filter(function (option) {
|
|
62
|
-
return option.name.toLowerCase().includes(
|
|
39
|
+
return option.name.toLowerCase().includes(value.toLowerCase());
|
|
63
40
|
});
|
|
64
41
|
setOptions(filteredOptions);
|
|
65
42
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
43
|
+
};
|
|
44
|
+
var handleCheckAll = function () {
|
|
45
|
+
if (checkedAll) {
|
|
46
|
+
setSelectedItems([]);
|
|
47
|
+
handleChange([]);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
setSelectedItems(options);
|
|
51
|
+
handleChange(options);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
useEffect(function () {
|
|
55
|
+
var handleClickOutside = function (event) {
|
|
56
|
+
var _a;
|
|
57
|
+
if (wrapperRef.current && !((_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
|
|
58
|
+
setIsFocused(false);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
62
|
+
return function () {
|
|
63
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
64
|
+
};
|
|
65
|
+
}, [wrapperRef]);
|
|
66
|
+
useEffect(function () {
|
|
67
|
+
setOptions(listOptions);
|
|
68
|
+
}, [listOptions]);
|
|
69
|
+
useEffect(function () {
|
|
70
|
+
if (defaultValue) {
|
|
71
|
+
setSelectedItems(defaultValue);
|
|
72
|
+
}
|
|
73
|
+
}, [defaultValue]);
|
|
74
|
+
return (React.createElement("div", { className: className, id: id },
|
|
75
|
+
label && React.createElement("label", { className: 'mb-1 block text-xs font-normal text-gray-700' }, label),
|
|
76
|
+
React.createElement("div", { ref: wrapperRef, className: 'relative w-full bg-gray-100' },
|
|
77
|
+
React.createElement("div", { className: "".concat(error ? 'border-red-800 bg-red-50 hover:bg-red-50 focus:border-red-800 focus:bg-red-50' : '', " \n ").concat(disabled ? 'bg-[#f9fafb]' : 'bg-white', "\n block w-full space-y-1 rounded-lg border border-gray-500 text-sm shadow-sm hover:bg-gray-50 focus:border-gray-500 focus:bg-gray-50 focus:outline-none focus:outline-offset-1 focus:outline-indigo-500 focus:ring-transparent ") },
|
|
78
|
+
selectedItems.length > 0 && options.length > 0 && !checkedAll && listOptions.length > 0 && (React.createElement("div", { className: ' ml-2 mt-2 flex flex-wrap items-center gap-2 ' }, selectedItems.map(function (item) { return (React.createElement("div", { key: item.name + item.id, className: 'flex items-center whitespace-nowrap rounded-xl bg-gray-200' },
|
|
79
|
+
React.createElement("p", { className: 'pl-2 pr-[2px] text-xs text-gray-700' }, item.name),
|
|
80
|
+
React.createElement("button", { className: 'rounded-xl p-[3px] hover:cursor-pointer hover:bg-gray-300', onClick: function () { return handleRemoveItem(item); }, type: 'button' },
|
|
81
|
+
React.createElement(XMarkIcon, { className: 'h-4 w-4' })))); }))),
|
|
82
|
+
React.createElement("input", { className: ' w-full rounded-lg border-none border-transparent text-xs outline-none focus:border-none focus:border-transparent focus:ring-0', disabled: disabled, id: 'main', onChange: function (e) { return handleChangeInput(e.target.value); }, onFocus: function () { return setIsFocused(true); }, placeholder: selectedItems.length === (listOptions === null || listOptions === void 0 ? void 0 : listOptions.length) && selectedItems.length > 0 ? 'Tất cả' : placeholder })),
|
|
83
|
+
options.length > 0 ? (React.createElement("div", {
|
|
84
|
+
// eslint-disable-next-line prettier/prettier
|
|
85
|
+
className: "absolute z-50 mt-2 w-full overflow-y-auto rounded-lg bg-white p-2 shadow-xl ".concat(!isFocused ? 'hidden' : ''), style: __assign({ height: optionHeight }, (selectFieldPosition === 'top' && {
|
|
86
|
+
top: -optionHeight - 10
|
|
87
|
+
})) },
|
|
88
|
+
React.createElement("div", { key: 'selectAllCheckBox', className: 'relative mb-1 rounded-lg px-2 py-[1.5px] hover:bg-gray-200' },
|
|
89
|
+
React.createElement(PHXCheckbox, { checked: checkedAll, className: 'mb-1 rounded-lg px-2 py-[1.5px] hover:bg-gray-200', id: "checkbox_".concat(Math.floor(Math.random() * 1000000) + 1), onClick: function () {
|
|
90
|
+
handleCheckAll();
|
|
91
|
+
}, title: 'T\u1EA5t c\u1EA3' }),
|
|
92
|
+
React.createElement("button", { className: 'absolute inset-0 cursor-pointer', onClick: function () {
|
|
93
|
+
handleCheckAll();
|
|
94
|
+
}, type: 'button' })), options === null || options === void 0 ? void 0 :
|
|
95
|
+
options.map(function (item) {
|
|
96
|
+
var randomNum = Math.floor(Math.random() * 1000000) + 1;
|
|
97
|
+
return (React.createElement("div", { key: item.id, className: 'relative mb-1 rounded-lg px-2 py-[1.5px] hover:bg-gray-200' },
|
|
98
|
+
React.createElement(PHXCheckbox, { checked: selectedItems.some(function (selectedItem) { return selectedItem.id === item.id; }), className: 'mb-1 rounded-lg px-2 py-[1.5px] hover:bg-gray-200', id: "checkbox_".concat(randomNum), onClick: function () { return handleItemClick(item); }, title: item.name }),
|
|
99
|
+
React.createElement("button", { className: 'absolute inset-0 cursor-pointer', onClick: function () { return handleItemClick(item); }, type: 'button' })));
|
|
100
|
+
}))) : (React.createElement("div", {
|
|
101
|
+
// eslint-disable-next-line prettier/prettier
|
|
102
|
+
className: "absolute z-50 mt-2 w-full overflow-y-auto rounded-lg bg-white p-2 shadow-xl ".concat(!isFocused ? 'hidden' : ''), style: __assign({}, (selectFieldPosition === 'top' && { top: -90 })) },
|
|
103
|
+
React.createElement("div", { className: 'mt-3 h-[50px] text-center' },
|
|
104
|
+
React.createElement("div", null,
|
|
105
|
+
React.createElement("svg", { className: 'mx-auto h-4 w-4 text-gray-700', fill: 'none', stroke: 'currentColor', viewBox: '0 0 24 24', xmlns: 'http://www.w3.org/2000/svg' },
|
|
106
|
+
React.createElement("path", { d: 'M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z', strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: '2' })),
|
|
107
|
+
React.createElement("h3", { className: 'mt-[2px] text-sm text-gray-700' }, "Kh\u00F4ng c\u00F3 d\u1EEF li\u1EC7u"))))))));
|
|
94
108
|
};
|
|
95
109
|
//# sourceMappingURL=Combobox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../../../src/components/Combobox/Combobox.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../../../src/components/Combobox/Combobox.tsx"],"names":[],"mappings":"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"}
|