react-restyle-components 0.2.86 → 0.2.88
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/lib/index.d.ts.map +1 -1
- package/lib/index.js +0 -2
- package/lib/src/core-hooks/index.d.ts +3 -3
- package/lib/src/core-hooks/index.d.ts.map +1 -1
- package/lib/src/core-hooks/index.js +3 -3
- package/lib/src/core-hooks/src/useClickOutside/useClickOutside.hook.d.ts.map +1 -0
- package/lib/src/core-hooks/src/useDebounce/useDebounce.hook.d.ts.map +1 -0
- package/lib/src/core-hooks/src/usePreventEKey/usePreventEKey.hook.d.ts.map +1 -0
- package/lib/src/core-utils/index.d.ts +7 -7
- package/lib/src/core-utils/index.d.ts.map +1 -1
- package/lib/src/core-utils/index.js +7 -7
- package/lib/src/core-utils/src/calculation/calculation.util.d.ts.map +1 -0
- package/lib/src/core-utils/src/colors/color.util.d.ts.map +1 -0
- package/lib/src/core-utils/src/convert/numberToWords/numToWords.util.d.ts.map +1 -0
- package/lib/src/core-utils/src/convert/typography/camelCaseToTitleCase.util.d.ts.map +1 -0
- package/lib/src/core-utils/src/form-helper/form-helper.util.d.ts.map +1 -0
- package/lib/src/core-utils/src/utility.util.d.ts +2 -0
- package/lib/src/core-utils/src/utility.util.d.ts.map +1 -0
- package/lib/src/core-utils/src/utility.util.js +4 -0
- package/lib/src/core-utils/src/uuid/uuid.util.d.ts.map +1 -0
- package/package.json +3 -5
- package/lib/package.json +0 -153
- package/lib/src/App.css +0 -45
- package/lib/src/assets/styles/colors.css +0 -217
- package/lib/src/assets/styles/decorations.css +0 -15
- package/lib/src/assets/styles/fontface.css +0 -17
- package/lib/src/assets/styles/scrollbars.css +0 -70
- package/lib/src/assets/styles/typography.css +0 -3
- package/lib/src/core-components/atoms/button/Button.types.d.ts +0 -26
- package/lib/src/core-components/atoms/button/Button.types.d.ts.map +0 -1
- package/lib/src/core-components/atoms/button/Button.types.js +0 -1
- package/lib/src/core-components/atoms/button/button.component.d.ts +0 -4
- package/lib/src/core-components/atoms/button/button.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/button/button.component.js +0 -18
- package/lib/src/core-components/atoms/button/buttonGroup/buttonGroup.component.d.ts +0 -7
- package/lib/src/core-components/atoms/button/buttonGroup/buttonGroup.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/button/buttonGroup/buttonGroup.component.js +0 -4
- package/lib/src/core-components/atoms/check-box/checkBox.component.d.ts +0 -10
- package/lib/src/core-components/atoms/check-box/checkBox.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/check-box/checkBox.component.js +0 -20
- package/lib/src/core-components/atoms/date-picker/date-picker.component.d.ts +0 -12
- package/lib/src/core-components/atoms/date-picker/date-picker.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/date-picker/date-picker.component.js +0 -20
- package/lib/src/core-components/atoms/form/form.component.d.ts +0 -105
- package/lib/src/core-components/atoms/form/form.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/form/form.component.js +0 -87
- package/lib/src/core-components/atoms/icons/icons.component.d.ts +0 -12
- package/lib/src/core-components/atoms/icons/icons.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/icons/icons.component.js +0 -71
- package/lib/src/core-components/atoms/input/input-otp.component.d.ts +0 -14
- package/lib/src/core-components/atoms/input/input-otp.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/input/input-otp.component.js +0 -61
- package/lib/src/core-components/atoms/input/input-otp.styles.css +0 -35
- package/lib/src/core-components/atoms/input/input-pin.component.d.ts +0 -16
- package/lib/src/core-components/atoms/input/input-pin.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/input/input-pin.component.js +0 -76
- package/lib/src/core-components/atoms/input/input.component.d.ts +0 -18
- package/lib/src/core-components/atoms/input/input.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/input/input.component.js +0 -16
- package/lib/src/core-components/atoms/input/input.styles.css +0 -35
- package/lib/src/core-components/atoms/input-dropdown/input-dropdown.component.d.ts +0 -10
- package/lib/src/core-components/atoms/input-dropdown/input-dropdown.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/input-dropdown/input-dropdown.component.js +0 -44
- package/lib/src/core-components/atoms/loader/loader.component.d.ts +0 -6
- package/lib/src/core-components/atoms/loader/loader.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/loader/loader.component.js +0 -6
- package/lib/src/core-components/atoms/pdf/pdf-images.components.d.ts +0 -9
- package/lib/src/core-components/atoms/pdf/pdf-images.components.d.ts.map +0 -1
- package/lib/src/core-components/atoms/pdf/pdf-images.components.js +0 -7
- package/lib/src/core-components/atoms/pdf/pdf-table.components.d.ts +0 -11
- package/lib/src/core-components/atoms/pdf/pdf-table.components.d.ts.map +0 -1
- package/lib/src/core-components/atoms/pdf/pdf-table.components.js +0 -48
- package/lib/src/core-components/atoms/pdf/pdf-typography.components.d.ts +0 -21
- package/lib/src/core-components/atoms/pdf/pdf-typography.components.d.ts.map +0 -1
- package/lib/src/core-components/atoms/pdf/pdf-typography.components.js +0 -70
- package/lib/src/core-components/atoms/pdf/pdf-wrapped-view.components.d.ts +0 -53
- package/lib/src/core-components/atoms/pdf/pdf-wrapped-view.components.d.ts.map +0 -1
- package/lib/src/core-components/atoms/pdf/pdf-wrapped-view.components.js +0 -50
- package/lib/src/core-components/atoms/radio/radio.component.d.ts +0 -9
- package/lib/src/core-components/atoms/radio/radio.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/radio/radio.component.js +0 -20
- package/lib/src/core-components/atoms/stepper/stepper.component.d.ts +0 -9
- package/lib/src/core-components/atoms/stepper/stepper.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/stepper/stepper.component.js +0 -26
- package/lib/src/core-components/atoms/tabs/tabs.component.d.ts +0 -18
- package/lib/src/core-components/atoms/tabs/tabs.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/tabs/tabs.component.js +0 -19
- package/lib/src/core-components/atoms/tabs/tabs.module.css +0 -238
- package/lib/src/core-components/atoms/timer/timer.component.d.ts +0 -7
- package/lib/src/core-components/atoms/timer/timer.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/timer/timer.component.js +0 -76
- package/lib/src/core-components/atoms/tooltip/Tooltip.types.d.ts +0 -22
- package/lib/src/core-components/atoms/tooltip/Tooltip.types.d.ts.map +0 -1
- package/lib/src/core-components/atoms/tooltip/Tooltip.types.js +0 -1
- package/lib/src/core-components/atoms/tooltip/tooltip.component.d.ts +0 -10
- package/lib/src/core-components/atoms/tooltip/tooltip.component.d.ts.map +0 -1
- package/lib/src/core-components/atoms/tooltip/tooltip.component.js +0 -10
- package/lib/src/core-components/index.d.ts +0 -34
- package/lib/src/core-components/index.d.ts.map +0 -1
- package/lib/src/core-components/index.js +0 -33
- package/lib/src/core-components/molecules/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.d.ts +0 -17
- package/lib/src/core-components/molecules/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.d.ts.map +0 -1
- package/lib/src/core-components/molecules/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.js +0 -100
- package/lib/src/core-components/molecules/auto-complete-filter-single-select/auto-complete-filter-single-select.component.d.ts +0 -13
- package/lib/src/core-components/molecules/auto-complete-filter-single-select/auto-complete-filter-single-select.component.d.ts.map +0 -1
- package/lib/src/core-components/molecules/auto-complete-filter-single-select/auto-complete-filter-single-select.component.js +0 -59
- package/lib/src/core-components/molecules/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.d.ts +0 -18
- package/lib/src/core-components/molecules/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.d.ts.map +0 -1
- package/lib/src/core-components/molecules/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.js +0 -108
- package/lib/src/core-components/molecules/auto-complete-group-by/auto-complete-group-by.component.d.ts +0 -10
- package/lib/src/core-components/molecules/auto-complete-group-by/auto-complete-group-by.component.d.ts.map +0 -1
- package/lib/src/core-components/molecules/auto-complete-group-by/auto-complete-group-by.component.js +0 -128
- package/lib/src/core-components/molecules/autocomplete/autocomplete.css +0 -37
- package/lib/src/core-components/molecules/autocomplete/autocomplete.d.ts +0 -8
- package/lib/src/core-components/molecules/autocomplete/autocomplete.d.ts.map +0 -1
- package/lib/src/core-components/molecules/autocomplete/autocomplete.js +0 -108
- package/lib/src/core-components/molecules/color-picker/color-picker.component.d.ts +0 -6
- package/lib/src/core-components/molecules/color-picker/color-picker.component.d.ts.map +0 -1
- package/lib/src/core-components/molecules/color-picker/color-picker.component.js +0 -12
- package/lib/src/core-components/molecules/color-picker/color-picker.css +0 -24
- package/lib/src/core-components/molecules/color-picker-modal/color-picker-modal.component.d.ts +0 -15
- package/lib/src/core-components/molecules/color-picker-modal/color-picker-modal.component.d.ts.map +0 -1
- package/lib/src/core-components/molecules/color-picker-modal/color-picker-modal.component.js +0 -41
- package/lib/src/core-components/molecules/color-picker-modal/color-picker-modal.css +0 -45
- package/lib/src/core-components/molecules/css-multiline-input/css-multiline-input.component.d.ts +0 -11
- package/lib/src/core-components/molecules/css-multiline-input/css-multiline-input.component.d.ts.map +0 -1
- package/lib/src/core-components/molecules/css-multiline-input/css-multiline-input.component.js +0 -91
- package/lib/src/core-components/molecules/css-multiline-input/css-properties.d.ts +0 -8932
- package/lib/src/core-components/molecules/css-multiline-input/css-properties.d.ts.map +0 -1
- package/lib/src/core-components/molecules/css-multiline-input/css-properties.js +0 -161
- package/lib/src/core-components/molecules/modal/modal.component.d.ts +0 -10
- package/lib/src/core-components/molecules/modal/modal.component.d.ts.map +0 -1
- package/lib/src/core-components/molecules/modal/modal.component.js +0 -19
- package/lib/src/core-components/molecules/modal-confirm/modal-confirm.component.d.ts +0 -14
- package/lib/src/core-components/molecules/modal-confirm/modal-confirm.component.d.ts.map +0 -1
- package/lib/src/core-components/molecules/modal-confirm/modal-confirm.component.js +0 -21
- package/lib/src/core-components/molecules/multi-select/multi-select.component.d.ts +0 -9
- package/lib/src/core-components/molecules/multi-select/multi-select.component.d.ts.map +0 -1
- package/lib/src/core-components/molecules/multi-select/multi-select.component.js +0 -49
- package/lib/src/core-components/molecules/multi-select-with-field/multi-select-with-field.component.d.ts +0 -10
- package/lib/src/core-components/molecules/multi-select-with-field/multi-select-with-field.component.d.ts.map +0 -1
- package/lib/src/core-components/molecules/multi-select-with-field/multi-select-with-field.component.js +0 -58
- package/lib/src/core-hooks/useClickOutside/useClickOutside.hook.d.ts.map +0 -1
- package/lib/src/core-hooks/useDebounce/useDebounce.hook.d.ts.map +0 -1
- package/lib/src/core-hooks/usePreventEKey/usePreventEKey.hook.d.ts.map +0 -1
- package/lib/src/core-utils/calculation/calculation.util.d.ts.map +0 -1
- package/lib/src/core-utils/colors/color.util.d.ts.map +0 -1
- package/lib/src/core-utils/convert/numberToWords/numToWords.util.d.ts.map +0 -1
- package/lib/src/core-utils/convert/typography/camelCaseToTitleCase.util.d.ts.map +0 -1
- package/lib/src/core-utils/form-helper/form-helper.util.d.ts.map +0 -1
- package/lib/src/core-utils/utility.util.d.ts +0 -4
- package/lib/src/core-utils/utility.util.d.ts.map +0 -1
- package/lib/src/core-utils/utility.util.js +0 -9
- package/lib/src/core-utils/uuid/uuid.util.d.ts.map +0 -1
- package/lib/src/helpers/constants.d.ts +0 -4
- package/lib/src/helpers/constants.d.ts.map +0 -1
- package/lib/src/helpers/constants.js +0 -11
- package/lib/src/hooks/index.d.ts +0 -2
- package/lib/src/hooks/index.d.ts.map +0 -1
- package/lib/src/hooks/index.js +0 -1
- package/lib/src/hooks/outside.hook.d.ts +0 -2
- package/lib/src/hooks/outside.hook.d.ts.map +0 -1
- package/lib/src/hooks/outside.hook.js +0 -28
- package/lib/src/index.css +0 -118
- package/lib/src/library/assets/fonts/arima/arima-bold.ttf +0 -0
- package/lib/src/library/assets/fonts/arima/arima-regular.ttf +0 -0
- package/lib/src/library/assets/svg/CheckedBox.svg +0 -14
- package/lib/src/library/assets/svg/DownArrow.svg +0 -14
- package/lib/src/library/assets/svg/UnCheckbox.svg +0 -3
- package/lib/src/library/assets/svg/UpArrow.svg +0 -14
- package/lib/src/library/assets/svg/checkedRadio.svg +0 -13
- package/lib/src/library/assets/svg/datePicker.svg +0 -3
- package/lib/src/library/assets/svg/index.d.ts +0 -10
- package/lib/src/library/assets/svg/index.d.ts.map +0 -1
- package/lib/src/library/assets/svg/index.js +0 -27
- package/lib/src/library/assets/svg/timer copy.svg +0 -3
- package/lib/src/library/assets/svg/timer.svg +0 -3
- package/lib/src/library/assets/svg/uncheckRadio.svg +0 -3
- package/lib/src/tc.module.css +0 -234
- /package/lib/src/core-hooks/{useClickOutside → src/useClickOutside}/useClickOutside.hook.d.ts +0 -0
- /package/lib/src/core-hooks/{useClickOutside → src/useClickOutside}/useClickOutside.hook.js +0 -0
- /package/lib/src/core-hooks/{useDebounce → src/useDebounce}/useDebounce.hook.d.ts +0 -0
- /package/lib/src/core-hooks/{useDebounce → src/useDebounce}/useDebounce.hook.js +0 -0
- /package/lib/src/core-hooks/{usePreventEKey → src/usePreventEKey}/usePreventEKey.hook.d.ts +0 -0
- /package/lib/src/core-hooks/{usePreventEKey → src/usePreventEKey}/usePreventEKey.hook.js +0 -0
- /package/lib/src/core-utils/{calculation → src/calculation}/calculation.util.d.ts +0 -0
- /package/lib/src/core-utils/{calculation → src/calculation}/calculation.util.js +0 -0
- /package/lib/src/core-utils/{colors → src/colors}/color.util.d.ts +0 -0
- /package/lib/src/core-utils/{colors → src/colors}/color.util.js +0 -0
- /package/lib/src/core-utils/{convert → src/convert}/numberToWords/numToWords.util.d.ts +0 -0
- /package/lib/src/core-utils/{convert → src/convert}/numberToWords/numToWords.util.js +0 -0
- /package/lib/src/core-utils/{convert → src/convert}/typography/camelCaseToTitleCase.util.d.ts +0 -0
- /package/lib/src/core-utils/{convert → src/convert}/typography/camelCaseToTitleCase.util.js +0 -0
- /package/lib/src/core-utils/{form-helper → src/form-helper}/form-helper.util.d.ts +0 -0
- /package/lib/src/core-utils/{form-helper → src/form-helper}/form-helper.util.js +0 -0
- /package/lib/src/core-utils/{uuid → src/uuid}/uuid.util.d.ts +0 -0
- /package/lib/src/core-utils/{uuid → src/uuid}/uuid.util.js +0 -0
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
import { useState, useEffect, useRef } from 'react';
|
|
4
|
-
import { Icon } from '../../atoms/icons/icons.component';
|
|
5
|
-
import s from '../../../tc.module.css';
|
|
6
|
-
import { cn, debounce } from '../../../core-utils';
|
|
7
|
-
export const AutoCompleteFilterMultipleSelectMultipleFieldsDisplay = ({ uniqueField = '_id', isSelectedStringArray = false, loader = false, placeholder = 'Search...', data, hasError = false, disable = false, isUpperCase = false, name, onFilter, onUpdate, onSelect, onBlur, }) => {
|
|
8
|
-
const [value, setValue] = useState('');
|
|
9
|
-
const [options, setOptions] = useState();
|
|
10
|
-
const [originalOptions, setOriginalOptions] = useState();
|
|
11
|
-
const [isListOpen, setIsListOpen] = useState(false);
|
|
12
|
-
const useOutsideAlerter = (ref) => {
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
function handleClickOutside(event) {
|
|
15
|
-
if (ref.current && !ref.current.contains(event.target) && isListOpen) {
|
|
16
|
-
if (originalOptions && options) {
|
|
17
|
-
if (isListOpen) {
|
|
18
|
-
onUpdate && onUpdate(data.selected);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
setIsListOpen(false);
|
|
22
|
-
setValue('');
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
26
|
-
return () => {
|
|
27
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
28
|
-
};
|
|
29
|
-
}, [ref, isListOpen]);
|
|
30
|
-
};
|
|
31
|
-
const wrapperRef = useRef(null);
|
|
32
|
-
useOutsideAlerter(wrapperRef);
|
|
33
|
-
let count = 0;
|
|
34
|
-
const getSelectedItem = (selectedItem, list) => {
|
|
35
|
-
if (count === 0) {
|
|
36
|
-
const finalList = list?.filter((item, index) => {
|
|
37
|
-
item.selected = false;
|
|
38
|
-
selectedItem && selectedItem.length > 0
|
|
39
|
-
? selectedItem.find((sItem, index) => {
|
|
40
|
-
if (isSelectedStringArray) {
|
|
41
|
-
if (sItem === item[uniqueField]) {
|
|
42
|
-
item.selected = true;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
if (sItem[uniqueField] === item[uniqueField]) {
|
|
47
|
-
item.selected = true;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
})
|
|
51
|
-
: (item.selected = false);
|
|
52
|
-
count++;
|
|
53
|
-
return item;
|
|
54
|
-
});
|
|
55
|
-
list = finalList;
|
|
56
|
-
}
|
|
57
|
-
return list;
|
|
58
|
-
};
|
|
59
|
-
useEffect(() => {
|
|
60
|
-
setOriginalOptions(getSelectedItem(data.selected, data.list));
|
|
61
|
-
setOptions(getSelectedItem(data.selected, data.list));
|
|
62
|
-
}, [data, data.selected]);
|
|
63
|
-
const onChange = (e) => {
|
|
64
|
-
const search = e.target.value;
|
|
65
|
-
setValue(search);
|
|
66
|
-
debounce(() => {
|
|
67
|
-
onFilter && onFilter(search);
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
const onKeyUp = (e) => {
|
|
71
|
-
const charCode = e.which ? e.which : e.keyCode;
|
|
72
|
-
if (charCode === 8) {
|
|
73
|
-
const search = e.target.value;
|
|
74
|
-
debounce(() => {
|
|
75
|
-
onFilter && onFilter(search);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
return (_jsx(_Fragment, { children: _jsxs("div", { ref: wrapperRef, className: cn(s['w-full'], s['relative']), children: [_jsxs("div", { className: cn(s['flex'], s['items-center'], s['leading-4'], s['p-2'], s['focus:outline-none'], s['focus:ring'], s['w-full'], s['shadow-sm'], s['sm:text-base'], s['border'], s['rounded-md'], {
|
|
80
|
-
[s['border-red']]: hasError,
|
|
81
|
-
[s['border-gray-300']]: !hasError,
|
|
82
|
-
}), children: [_jsx("input", { placeholder: placeholder, disabled: disable, name: name, value: !isListOpen
|
|
83
|
-
? data?.selected?.length > 0
|
|
84
|
-
? `${(data.selected && data.selected.length) || 0} Items`
|
|
85
|
-
: value
|
|
86
|
-
: isUpperCase
|
|
87
|
-
? value?.toUpperCase()
|
|
88
|
-
: value, className: cn(s['w-full'], s['focus:outline-none'], s['bg-none']), onKeyUp: onKeyUp, onChange: onChange, onClick: () => setIsListOpen(true), onBlur: (e) => onBlur && onBlur(e) }), isListOpen ? (_jsx(Icon, { nameIcon: "FaChevronUp", propsIcon: {
|
|
89
|
-
color: '#000000',
|
|
90
|
-
size: 22,
|
|
91
|
-
} })) : (_jsx(Icon, { nameIcon: "FaChevronDown", propsIcon: {
|
|
92
|
-
color: '#000000',
|
|
93
|
-
size: 22,
|
|
94
|
-
} }))] }), options && isListOpen
|
|
95
|
-
? options?.length > 0 && (_jsx("div", { className: cn(s['flex'], s['mt-1'], s['absolute'], s['rounded-sm'], s['z-500'], s['w-full']), style: { zIndex: 80 }, children: _jsx("ul", { className: cn(s['flex'], s['flex-col'], s['gap-2'], s['bg-gray-200'], s['p-2'], s['w-full']), children: options?.map((item, index) => (_jsx(_Fragment, { children: _jsx("li", { className: cn(s['flex'], s['gap-4'], s['p-2']), children: _jsxs("label", { className: cn(s['flex']), children: [_jsx("input", { id: index?.toString(), className: cn(s['flex'], s['h-4'], s['w-4']), type: "checkbox", checked: item.selected, onChange: () => onSelect(item) }), ' ', _jsx("span", { className: cn(s['flex'], s['h-4'], s['ml-2']), children: data.displayKey
|
|
96
|
-
.map((key) => `${item[key]}
|
|
97
|
-
`)
|
|
98
|
-
.join(' - ') })] }) }, index) }))) }) }))
|
|
99
|
-
: null] }) }));
|
|
100
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
interface AutoCompleteFilterSingleSelectProps {
|
|
2
|
-
loader?: boolean;
|
|
3
|
-
disable?: boolean;
|
|
4
|
-
displayValue?: string;
|
|
5
|
-
placeholder?: string;
|
|
6
|
-
data: any;
|
|
7
|
-
hasError?: boolean;
|
|
8
|
-
onFilter: (item: any) => void;
|
|
9
|
-
onSelect: (item: any) => any;
|
|
10
|
-
}
|
|
11
|
-
export declare const AutoCompleteFilterSingleSelect: ({ disable, loader, displayValue, placeholder, data, hasError, onFilter, onSelect, }: AutoCompleteFilterSingleSelectProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=auto-complete-filter-single-select.component.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-complete-filter-single-select.component.d.ts","sourceRoot":"","sources":["../../../../../src/core-components/molecules/auto-complete-filter-single-select/auto-complete-filter-single-select.component.tsx"],"names":[],"mappings":"AAOA,UAAU,mCAAmC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CAC9B;AAED,eAAO,MAAM,8BAA8B,wFASxC,mCAAmC,4CAuIrC,CAAC"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
import { useState, useEffect, useRef } from 'react';
|
|
4
|
-
import { Icon } from '../../atoms/icons/icons.component';
|
|
5
|
-
import { debounce } from '../../../core-utils';
|
|
6
|
-
import s from '../../../tc.module.css';
|
|
7
|
-
import { cn } from '../../../core-utils';
|
|
8
|
-
export const AutoCompleteFilterSingleSelect = ({ disable = false, loader = false, displayValue = '', placeholder = 'Search...', data, hasError = false, onFilter, onSelect, }) => {
|
|
9
|
-
const [value, setValue] = useState(displayValue);
|
|
10
|
-
const [options, setOptions] = useState();
|
|
11
|
-
const [isListOpen, setIsListOpen] = useState(false);
|
|
12
|
-
const useOutsideAlerter = (ref) => {
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
function handleClickOutside(event) {
|
|
15
|
-
if (ref.current && !ref.current.contains(event.target) && isListOpen) {
|
|
16
|
-
setIsListOpen(false);
|
|
17
|
-
setValue('');
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
21
|
-
return () => {
|
|
22
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
23
|
-
};
|
|
24
|
-
}, [ref, isListOpen]);
|
|
25
|
-
};
|
|
26
|
-
const wrapperRef = useRef(null);
|
|
27
|
-
useOutsideAlerter(wrapperRef);
|
|
28
|
-
useEffect(() => {
|
|
29
|
-
setOptions(data.list);
|
|
30
|
-
}, [data]);
|
|
31
|
-
useEffect(() => {
|
|
32
|
-
setValue(displayValue);
|
|
33
|
-
}, [displayValue]);
|
|
34
|
-
const handleInputChange = (e) => {
|
|
35
|
-
const search = e.target.value;
|
|
36
|
-
setValue(search);
|
|
37
|
-
const filteredOptions = data.list.filter((item) => item[data.displayKey].toLowerCase().includes(search.toLowerCase()));
|
|
38
|
-
setOptions(filteredOptions);
|
|
39
|
-
debounce(() => {
|
|
40
|
-
onFilter(search);
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
return (_jsx(_Fragment, { children: _jsxs("div", { ref: wrapperRef, children: [_jsxs("div", { className: cn(s['flex'], s['items-center'], s['leading-4'], s['p-2'], s['focus:outline-none'], s['focus:ring'], s['w-full'], s['shadow-sm'], s['sm:text-base'], s['border'], s['rounded-md'], {
|
|
44
|
-
[s['border-red']]: hasError,
|
|
45
|
-
[s['border-gray-300']]: !hasError,
|
|
46
|
-
}), children: [_jsx("input", { placeholder: placeholder, value: !isListOpen ? value : value, className: cn(s['w-full'], s['focus:outline-none'], s['bg-none']), onChange: handleInputChange, onClick: () => setIsListOpen(true), disabled: disable }), isListOpen ? (_jsx(Icon, { nameIcon: "FaChevronUp", propsIcon: {
|
|
47
|
-
color: '#000000',
|
|
48
|
-
size: 22,
|
|
49
|
-
} })) : (_jsx(Icon, { nameIcon: "FaChevronDown", propsIcon: {
|
|
50
|
-
color: '#000000',
|
|
51
|
-
size: 22,
|
|
52
|
-
} }))] }), options && isListOpen
|
|
53
|
-
? options.length > 0 && (_jsx("div", { className: cn(s['mt-1'], s['absolute'], s['bg-gray-100'], s['p-2'], s['rounded-sm'], s['z-50']), children: _jsx("ul", { children: options?.map((item, index) => (_jsx(_Fragment, { children: _jsx("li", { className: cn(s['text-gray-400'], s['flex'], s['items-center']), onClick: () => {
|
|
54
|
-
setValue(item[data.displayKey]);
|
|
55
|
-
setIsListOpen(false);
|
|
56
|
-
onSelect(item);
|
|
57
|
-
}, children: _jsx("label", { className: cn(s['ml-2'], s['mt-1'], s['text-black']), children: item[data.displayKey] }) }, index) }))) }) }))
|
|
58
|
-
: null] }) }));
|
|
59
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import '../../../tc.module.css';
|
|
2
|
-
interface AutoCompleteFilterSingleSelectMultiFieldsDisplayProps {
|
|
3
|
-
loader?: boolean;
|
|
4
|
-
disable?: boolean;
|
|
5
|
-
displayValue?: string;
|
|
6
|
-
placeholder?: string;
|
|
7
|
-
data: any;
|
|
8
|
-
hasError?: boolean;
|
|
9
|
-
className?: string;
|
|
10
|
-
posstion?: string;
|
|
11
|
-
keyboard?: string;
|
|
12
|
-
onFilter?: (item: any) => void;
|
|
13
|
-
onSelect?: (item: any) => any;
|
|
14
|
-
onBlur?: (item: any) => any;
|
|
15
|
-
}
|
|
16
|
-
export declare const AutoCompleteFilterSingleSelectMultiFieldsDisplay: ({ disable, loader, displayValue, placeholder, data, hasError, className, posstion, keyboard, onFilter, onSelect, onBlur, }: AutoCompleteFilterSingleSelectMultiFieldsDisplayProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=auto-complete-filter-single-select-multiple-fields-display.component.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-complete-filter-single-select-multiple-fields-display.component.d.ts","sourceRoot":"","sources":["../../../../../src/core-components/molecules/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.tsx"],"names":[],"mappings":"AAIA,OAAO,wBAAwB,CAAC;AAIhC,UAAU,qDAAqD;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CAC7B;AAED,eAAO,MAAM,gDAAgD,+HAa1D,qDAAqD,4CAiNvD,CAAC"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
import { useState, useEffect, useRef } from 'react';
|
|
4
|
-
import { Icon } from '../../atoms/icons/icons.component';
|
|
5
|
-
import '../../../tc.module.css';
|
|
6
|
-
import s from '../../../tc.module.css';
|
|
7
|
-
import { cn, debounce } from '../../../core-utils';
|
|
8
|
-
export const AutoCompleteFilterSingleSelectMultiFieldsDisplay = ({ disable = false, loader = false, displayValue = '', placeholder = 'Search...', data, hasError = false, className, posstion = 'absolute', keyboard = 'text', onFilter, onSelect, onBlur, }) => {
|
|
9
|
-
const [value, setValue] = useState(displayValue);
|
|
10
|
-
const [options, setOptions] = useState(data.list);
|
|
11
|
-
const [isListOpen, setIsListOpen] = useState(false);
|
|
12
|
-
const [filterValue, setFilterValue] = useState();
|
|
13
|
-
const useOutsideAlerter = (ref) => {
|
|
14
|
-
useEffect(() => {
|
|
15
|
-
function handleClickOutside(event) {
|
|
16
|
-
if (ref.current && !ref.current.contains(event.target) && isListOpen) {
|
|
17
|
-
setIsListOpen(false);
|
|
18
|
-
//setValue('');
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
22
|
-
return () => {
|
|
23
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
24
|
-
};
|
|
25
|
-
}, [ref, isListOpen]);
|
|
26
|
-
};
|
|
27
|
-
const inputRef = useRef(null);
|
|
28
|
-
const wrapperRef = useRef(null);
|
|
29
|
-
useOutsideAlerter(wrapperRef);
|
|
30
|
-
useEffect(() => {
|
|
31
|
-
setOptions(data.list);
|
|
32
|
-
}, [data]);
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
setValue(displayValue);
|
|
35
|
-
}, [displayValue]);
|
|
36
|
-
const onChange = (e) => {
|
|
37
|
-
const search = e.target.value;
|
|
38
|
-
setValue(search);
|
|
39
|
-
setFilterValue(search);
|
|
40
|
-
const filteredOptions = data.list.filter((item) => data.displayKey.some((key) => item[key]?.toString().toLowerCase().includes(search.toLowerCase())));
|
|
41
|
-
setOptions(filteredOptions);
|
|
42
|
-
debounce(() => {
|
|
43
|
-
onFilter && onFilter(search);
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
const onKeyUp = (e) => {
|
|
47
|
-
const charCode = e.which ? e.which : e.keyCode;
|
|
48
|
-
if (charCode === 8) {
|
|
49
|
-
const search = e.target.value;
|
|
50
|
-
debounce(() => {
|
|
51
|
-
onFilter && onFilter(search);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
const onKeyDown = (e) => {
|
|
56
|
-
if (e.key === 'Enter' || e.key === 'Tab') {
|
|
57
|
-
if (options.length > 0) {
|
|
58
|
-
const selectedItem = options.find((item) => item.labId === Number(value));
|
|
59
|
-
if (selectedItem) {
|
|
60
|
-
setValue(data.displayKey.map((key) => `${selectedItem[key]}`).join(' - '));
|
|
61
|
-
setIsListOpen(false);
|
|
62
|
-
onSelect && onSelect(selectedItem);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
const calculateMaxHeight = () => {
|
|
68
|
-
if (inputRef.current) {
|
|
69
|
-
const inputRect = inputRef.current.getBoundingClientRect();
|
|
70
|
-
const availableHeight = window.innerHeight - inputRect.bottom - 20; // 10px padding
|
|
71
|
-
return availableHeight;
|
|
72
|
-
}
|
|
73
|
-
return 'calc(100vh - 140px)';
|
|
74
|
-
};
|
|
75
|
-
return (_jsx(_Fragment, { children: _jsxs("div", { ref: wrapperRef, className: "w-full relative", children: [_jsxs("div", { className: cn(s['flex'], s['p-2'], s['leading-4'], s['focus:outline-none'], s['focus:ring'], s['w-full'], s['shadow-sm'], s['sm:text-base'], s['border'], s['rounded-md'], {
|
|
76
|
-
[s['border-red']]: hasError,
|
|
77
|
-
[s['border-gray-300']]: !hasError,
|
|
78
|
-
[s['dark:text-black']]: true,
|
|
79
|
-
}), children: [_jsx("input", { ref: inputRef, placeholder: placeholder, type: keyboard, value: value, className: cn(s['w-full'], s['focus:outline-none'], s['bg-none'], s['dark:text-black'], className), onKeyUp: onKeyUp, onChange: onChange, onClick: () => setIsListOpen(true), disabled: disable, onMouseDown: () => setValue(''), onBlur: (e) => onBlur && onBlur(e), onKeyDown: onKeyDown }), isListOpen ? (_jsx(Icon, { nameIcon: "FaChevronUp", propsIcon: {
|
|
80
|
-
color: '#000000',
|
|
81
|
-
size: 22,
|
|
82
|
-
} })) : (_jsx(Icon, { nameIcon: "FaChevronDown", propsIcon: {
|
|
83
|
-
color: '#000000',
|
|
84
|
-
size: 22,
|
|
85
|
-
} }))] }), options && isListOpen
|
|
86
|
-
? options.length > 0 && (_jsx("div", { className: cn(s['absolute'], s['w-full'], s['bg-gray-100'], s['p-2'], s['rounded-sm'], s['overflow-y-auto']), style: {
|
|
87
|
-
zIndex: 500,
|
|
88
|
-
maxHeight: `${calculateMaxHeight()}px`,
|
|
89
|
-
}, children: _jsx("ul", { children: options?.map((item, index) => (_jsx("li", { className: cn(s['text-gray-400'], s['flex'], s['items-center']), onClick: () => {
|
|
90
|
-
setValue(data.displayKey
|
|
91
|
-
.map((key) => item[key])
|
|
92
|
-
.filter((value) => value !== null && value !== undefined)
|
|
93
|
-
.join(' - '));
|
|
94
|
-
setIsListOpen(false);
|
|
95
|
-
onSelect && onSelect(item);
|
|
96
|
-
}, children: _jsx("label", { className: cn(s['ml-2'], s['mt-1'], s['text-black']), style: {
|
|
97
|
-
textOverflow: 'ellipsis',
|
|
98
|
-
minWidth: 0,
|
|
99
|
-
overflow: 'hidden',
|
|
100
|
-
whiteSpace: 'nowrap',
|
|
101
|
-
}, title: data.displayKey
|
|
102
|
-
.map((key) => item[key])
|
|
103
|
-
.join(' - '), children: data.displayKey
|
|
104
|
-
.map((key) => item[key])
|
|
105
|
-
.filter((value) => value !== null && value !== undefined)
|
|
106
|
-
.join(' - ') }) }, index))) }) }))
|
|
107
|
-
: null] }) }));
|
|
108
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
interface AutocompleteGroupByProps {
|
|
2
|
-
data: any[];
|
|
3
|
-
hasError?: boolean;
|
|
4
|
-
displayValue?: string;
|
|
5
|
-
onChange?: (item: any, children: any) => void;
|
|
6
|
-
onClose?: () => void;
|
|
7
|
-
}
|
|
8
|
-
export declare const AutocompleteGroupBy: ({ data, hasError, displayValue, onChange, onClose, }: AutocompleteGroupByProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=auto-complete-group-by.component.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-complete-group-by.component.d.ts","sourceRoot":"","sources":["../../../../../src/core-components/molecules/auto-complete-group-by/auto-complete-group-by.component.tsx"],"names":[],"mappings":"AAMA,UAAU,wBAAwB;IAChC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB,yDAM7B,wBAAwB,4CAiP1B,CAAC"}
|
package/lib/src/core-components/molecules/auto-complete-group-by/auto-complete-group-by.component.js
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
import { useState, useEffect, useRef } from 'react';
|
|
4
|
-
import { Icon } from '../../atoms/icons/icons.component';
|
|
5
|
-
import s from '../../../tc.module.css';
|
|
6
|
-
import { cn } from '../../../core-utils';
|
|
7
|
-
export const AutocompleteGroupBy = ({ data = [], hasError = false, displayValue = '', onChange, onClose, }) => {
|
|
8
|
-
//const [userRouter, setUserRouter] = useState<any>()
|
|
9
|
-
const [value, setValue] = useState(displayValue);
|
|
10
|
-
const [options, setOptions] = useState();
|
|
11
|
-
const [isListOpen, setIsListOpen] = useState(false);
|
|
12
|
-
const useOutsideAlerter = (ref) => {
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
/**
|
|
15
|
-
* Alert if clicked on outside of element
|
|
16
|
-
*/
|
|
17
|
-
function handleClickOutside(event) {
|
|
18
|
-
if (ref.current && !ref.current.contains(event.target) && isListOpen) {
|
|
19
|
-
setIsListOpen(false);
|
|
20
|
-
setValue('');
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
// Bind the event listener
|
|
24
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
25
|
-
return () => {
|
|
26
|
-
// Unbind the event listener on clean up
|
|
27
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
28
|
-
};
|
|
29
|
-
}, [ref, isListOpen]);
|
|
30
|
-
};
|
|
31
|
-
const wrapperRef = useRef(null);
|
|
32
|
-
useOutsideAlerter(wrapperRef);
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
setValue(displayValue);
|
|
35
|
-
}, [displayValue]);
|
|
36
|
-
useEffect(() => {
|
|
37
|
-
setOptions(data || []);
|
|
38
|
-
}, [data]);
|
|
39
|
-
const uniqByKeepFirst = (a, key) => {
|
|
40
|
-
const seen = new Set();
|
|
41
|
-
return a.filter((item) => {
|
|
42
|
-
const k = key(item);
|
|
43
|
-
return seen.has(k) ? false : seen.add(k);
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
const filter = (search, data) => {
|
|
47
|
-
if (search !== '') {
|
|
48
|
-
let filterArray = [];
|
|
49
|
-
data.filter((item) => {
|
|
50
|
-
item.children.filter((children) => {
|
|
51
|
-
const childrenItem = children.title &&
|
|
52
|
-
children.title.toLowerCase().indexOf(search.toLowerCase()) > -1;
|
|
53
|
-
if (childrenItem) {
|
|
54
|
-
const isSameArray = filterArray.filter((filterItem, index) => {
|
|
55
|
-
if (filterItem.name === item.name) {
|
|
56
|
-
const newChildren = filterArray[index].children.concat(children);
|
|
57
|
-
filterArray[index] = {
|
|
58
|
-
...filterArray[index],
|
|
59
|
-
children: newChildren,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
if (isSameArray.length < 1) {
|
|
64
|
-
filterArray.push({ ...item, children: [children] });
|
|
65
|
-
}
|
|
66
|
-
const uniqueChars = uniqByKeepFirst(filterArray, (it) => it.name);
|
|
67
|
-
filterArray = uniqueChars;
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
setOptions(filterArray);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
setOptions(data);
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
const onChangeValue = (e) => {
|
|
78
|
-
const search = e.target.value;
|
|
79
|
-
setValue(search);
|
|
80
|
-
filter(search, data);
|
|
81
|
-
};
|
|
82
|
-
return (_jsx(_Fragment, { children: _jsxs("div", { ref: wrapperRef, className: s['w-full'] + ' ' + s['relative'], children: [_jsxs("div", { className: cn(s['flex'], s['items-center'], s['leading-4'], s['p-2'], s['bg-white'], s['focus:outline-none'], s['focus:ring'], s['w-full'], s['shadow-sm'], s['sm:text-base'], s['border'], s['rounded-md'], {
|
|
83
|
-
[s['border-red']]: hasError,
|
|
84
|
-
[s['border-gray-300']]: !hasError,
|
|
85
|
-
}), children: [_jsx("input", { placeholder: "Search...", value: !isListOpen ? value : value, className: cn(s['w-full'] + ' ' + s['focus:outline-none']),
|
|
86
|
-
// onKeyUp={onKeyUp}
|
|
87
|
-
onChange: onChangeValue, onClick: () => setIsListOpen(true), onKeyDown: (e) => {
|
|
88
|
-
if (e.key === 'Enter') {
|
|
89
|
-
e.preventDefault();
|
|
90
|
-
// Find the selected item and children
|
|
91
|
-
let selectedItem = null;
|
|
92
|
-
let selectedChildren = null;
|
|
93
|
-
for (const item of options) {
|
|
94
|
-
for (const children of item.children) {
|
|
95
|
-
if (children.title.toLowerCase() === value.toLowerCase() ||
|
|
96
|
-
item.title.toLowerCase() === value.toLowerCase()) {
|
|
97
|
-
selectedItem = item;
|
|
98
|
-
selectedChildren = children;
|
|
99
|
-
break;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (selectedItem) {
|
|
103
|
-
break;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
// Call props.onChange with the selected item and children
|
|
107
|
-
if (onChange && selectedItem && selectedChildren) {
|
|
108
|
-
onChange(selectedItem, selectedChildren);
|
|
109
|
-
}
|
|
110
|
-
setIsListOpen(false);
|
|
111
|
-
setValue(value); // Set the value to what the user entered
|
|
112
|
-
setOptions([]);
|
|
113
|
-
}
|
|
114
|
-
} }), isListOpen ? (_jsx(Icon, { nameIcon: "FaChevronUp", propsIcon: {
|
|
115
|
-
color: '#000000',
|
|
116
|
-
size: 22,
|
|
117
|
-
} })) : (_jsx(Icon, { nameIcon: "FaChevronDown", propsIcon: {
|
|
118
|
-
color: '#000000',
|
|
119
|
-
size: 22,
|
|
120
|
-
} }))] }), options && isListOpen
|
|
121
|
-
? options?.length > 0 && (_jsx("div", { className: cn(s['flex'], s['mt-1'], s['absolute'], s['z-50'], s['rounded-md'], s['bg-gray-200'], s['w-100'], s['w-full']), children: _jsx("ul", { className: cn(s['flex'], s['p-2'], s['rounded-sm'], s['w-full']), children: _jsx("div", { className: cn(s['flex'], s['flex-col'], s['w-full'], s['overflow-scroll']), style: { height: 'auto', maxHeight: '350px' }, children: options?.map((item, index) => (_jsxs(_Fragment, { children: [_jsx("li", { className: cn(s['flex'] + ' ' + s['text-gray-400']), children: item.title }, index), _jsx("ul", { className: cn(s['flex'], s['flex-col'], s['ml-4'], s['w-full']), children: item?.children?.map((children, childrenIndex) => (_jsx("li", { className: cn(s['flex'], s['hover:bg-gray-200'], s['focus:outline-none'], s['cursor-pointer'], s['w-full']), onClick: async () => {
|
|
122
|
-
onChange && onChange(item, children);
|
|
123
|
-
setIsListOpen(false);
|
|
124
|
-
setValue(children.title);
|
|
125
|
-
setOptions([]);
|
|
126
|
-
}, children: children.title }, childrenIndex))) })] }))) }) }) }))
|
|
127
|
-
: null] }) }));
|
|
128
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
.no-options {
|
|
2
|
-
position: relative;
|
|
3
|
-
padding: 0 10px 0px 10px;
|
|
4
|
-
/* background: white; */
|
|
5
|
-
background-color: #f3f6f4;
|
|
6
|
-
color: black;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.autocomplete-list {
|
|
10
|
-
list-style: none;
|
|
11
|
-
position: relative;
|
|
12
|
-
margin-top: 0;
|
|
13
|
-
padding: 0 10px 0px 10px;
|
|
14
|
-
min-height: auto;
|
|
15
|
-
max-height: 86vh;
|
|
16
|
-
overflow-y: auto;
|
|
17
|
-
/* background: white; */
|
|
18
|
-
background-color: #f3f6f4;
|
|
19
|
-
z-index: 1;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.autocomplete-list li {
|
|
23
|
-
/* padding: 4px; */
|
|
24
|
-
color: var(--input-autocomplete-item-text, #000);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.autocomplete-list li.active-option {
|
|
28
|
-
background-color: #f3f6f4;
|
|
29
|
-
background: var(--multiselect-item-hover);
|
|
30
|
-
cursor: pointer;
|
|
31
|
-
font-weight: bold;
|
|
32
|
-
}
|
|
33
|
-
.autocomplete-list li:hover {
|
|
34
|
-
background-color: #f3f6f4;
|
|
35
|
-
background: var(--multiselect-item-hover);
|
|
36
|
-
cursor: pointer;
|
|
37
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
interface AutocompleteProps {
|
|
2
|
-
value: string;
|
|
3
|
-
onValueChange: (value: string) => void;
|
|
4
|
-
options?: string[];
|
|
5
|
-
}
|
|
6
|
-
export declare const Autocomplete: ({ value, onValueChange, options, }: AutocompleteProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
export {};
|
|
8
|
-
//# sourceMappingURL=autocomplete.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../../../../src/core-components/molecules/autocomplete/autocomplete.tsx"],"names":[],"mappings":"AAMA,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,uCAItB,iBAAiB,4CAgNnB,CAAC"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
|
-
import s from '../../../tc.module.css';
|
|
4
|
-
import { cn } from '../../../core-utils';
|
|
5
|
-
const LI_ELEMENT_HEIGHT = 34;
|
|
6
|
-
export const Autocomplete = ({ value = '', onValueChange, options = [], }) => {
|
|
7
|
-
const [activeOption, setActiveOption] = useState(value === '' || options.indexOf(value) === -1 ? 0 : options.indexOf(value));
|
|
8
|
-
const [filteredOptions, setFilteredOptions] = useState(options);
|
|
9
|
-
const [shouldShowList, setShouldShowList] = useState(false);
|
|
10
|
-
const [searchValue, setSearchValue] = useState(value);
|
|
11
|
-
const inputRef = useRef(null);
|
|
12
|
-
const listRef = useRef(null);
|
|
13
|
-
const onInputChange = useCallback((event) => {
|
|
14
|
-
const input = event.target.value;
|
|
15
|
-
if (input != '') {
|
|
16
|
-
const newFilteredOptions = options.filter((option) => option.toLowerCase().indexOf(input.toLowerCase()) > -1);
|
|
17
|
-
setFilteredOptions(newFilteredOptions);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
setFilteredOptions(options);
|
|
21
|
-
}
|
|
22
|
-
setActiveOption(0);
|
|
23
|
-
setShouldShowList(true);
|
|
24
|
-
setSearchValue(input);
|
|
25
|
-
}, [
|
|
26
|
-
setActiveOption,
|
|
27
|
-
setFilteredOptions,
|
|
28
|
-
setShouldShowList,
|
|
29
|
-
setSearchValue,
|
|
30
|
-
onValueChange,
|
|
31
|
-
]);
|
|
32
|
-
const onOptionClick = useCallback((event) => {
|
|
33
|
-
const symbol = event.currentTarget.innerText || event.currentTarget.textContent || '';
|
|
34
|
-
setShouldShowList(false);
|
|
35
|
-
setActiveOption(0);
|
|
36
|
-
setFilteredOptions([]);
|
|
37
|
-
setSearchValue(symbol);
|
|
38
|
-
onValueChange(symbol);
|
|
39
|
-
}, [
|
|
40
|
-
setShouldShowList,
|
|
41
|
-
setActiveOption,
|
|
42
|
-
setFilteredOptions,
|
|
43
|
-
setSearchValue,
|
|
44
|
-
onValueChange,
|
|
45
|
-
]);
|
|
46
|
-
const onKeyDown = useCallback((event) => {
|
|
47
|
-
let selectedItem = '';
|
|
48
|
-
if (event.keyCode === 38) {
|
|
49
|
-
// arrow up
|
|
50
|
-
event.preventDefault();
|
|
51
|
-
if (activeOption === 0) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
selectedItem = filteredOptions[activeOption - 1];
|
|
56
|
-
setSearchValue(filteredOptions[activeOption - 1]);
|
|
57
|
-
setActiveOption(activeOption - 1);
|
|
58
|
-
listRef.current?.scroll({
|
|
59
|
-
top: LI_ELEMENT_HEIGHT * (activeOption - 1),
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
else if (event.keyCode === 40) {
|
|
64
|
-
// arrow down
|
|
65
|
-
event.preventDefault();
|
|
66
|
-
if (activeOption === filteredOptions.length - 1) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
selectedItem = filteredOptions[activeOption + 1];
|
|
71
|
-
setSearchValue(filteredOptions[activeOption + 1]);
|
|
72
|
-
setActiveOption(activeOption + 1);
|
|
73
|
-
listRef.current?.scroll({
|
|
74
|
-
top: LI_ELEMENT_HEIGHT * (activeOption + 1),
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (Object.keys(selectedItem)?.length > 0) {
|
|
79
|
-
onValueChange(selectedItem);
|
|
80
|
-
}
|
|
81
|
-
}, [
|
|
82
|
-
setActiveOption,
|
|
83
|
-
setSearchValue,
|
|
84
|
-
filteredOptions,
|
|
85
|
-
activeOption,
|
|
86
|
-
onValueChange,
|
|
87
|
-
]);
|
|
88
|
-
const renderList = () => {
|
|
89
|
-
return (_jsx(_Fragment, { children: shouldShowList ? (_jsx(_Fragment, { children: _jsx("div", { className: cn(s['flex'], s['absolute'], s['rounded-sm'], s['w-full']), style: { zIndex: 999 }, children: filteredOptions?.length > 0 ? (_jsx("ul", { role: "list", className: cn(s['flex'], s['flex-col'], s['gap-1'], s['bg-gray-200'], s['w-full']), id: "list", ref: listRef, children: filteredOptions?.map((option, index) => {
|
|
90
|
-
let className = cn(s['flex'], s['gap-2'], s['p-2']);
|
|
91
|
-
if (index === activeOption) {
|
|
92
|
-
className = cn(className, s['font-bold']);
|
|
93
|
-
}
|
|
94
|
-
return (_jsx("li", { className: className, role: "listitem", onClick: onOptionClick, children: option }, index));
|
|
95
|
-
}) })) : (_jsx("div", { className: cn(s['flex'], s['bg-gray-200'], s['w-full'], s['p-2']), children: _jsx("span", { children: "Not Found Result!!" }) })) }) })) : (_jsx(_Fragment, {})) }));
|
|
96
|
-
};
|
|
97
|
-
useEffect(() => {
|
|
98
|
-
// this only works on click when inside timeout
|
|
99
|
-
setTimeout(() => {
|
|
100
|
-
inputRef.current?.select();
|
|
101
|
-
}, 0);
|
|
102
|
-
filteredOptions[0] && onValueChange(filteredOptions[0]);
|
|
103
|
-
// setShouldShowList(true);
|
|
104
|
-
}, []);
|
|
105
|
-
return (_jsx(_Fragment, { children: _jsxs("div", { className: cn(s['flex'], s['flex-col'], s['relative']), children: [_jsx("div", { className: cn(s['flex'], s['leading-4'], s['p-2'], s['focus:outline-none'], s['focus:ring'], s['w-full'], s['shadow-sm'], s['sm:text-base'], s['border'], s['rounded-md']), children: _jsx("input", { type: "text", role: "input", name: "autocomplete-input", className: cn(s['flex'], s['focus:outline-none']), placeholder: "Search...", onChange: onInputChange, onKeyDown: onKeyDown, value: searchValue, ref: inputRef, onClick: () => {
|
|
106
|
-
setShouldShowList(true);
|
|
107
|
-
} }) }), _jsx("div", { className: cn(s['flex']), children: renderList() })] }) }));
|
|
108
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"color-picker.component.d.ts","sourceRoot":"","sources":["../../../../../src/core-components/molecules/color-picker/color-picker.component.tsx"],"names":[],"mappings":"AAGA,OAAO,oBAAoB,CAAC;AAE5B,eAAO,MAAM,WAAW;;;6CAqBvB,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback, useRef, useState } from 'react';
|
|
3
|
-
import { HexColorPicker } from 'react-colorful';
|
|
4
|
-
import { useClickOutside } from '../../../hooks';
|
|
5
|
-
import './color-picker.css';
|
|
6
|
-
export const ColorPicker = ({ color, onChange }) => {
|
|
7
|
-
const popover = useRef();
|
|
8
|
-
const [isOpen, toggle] = useState(false);
|
|
9
|
-
const close = useCallback(() => toggle(false), []);
|
|
10
|
-
useClickOutside(popover, close);
|
|
11
|
-
return (_jsxs("div", { className: "picker", children: [_jsx("div", { className: "swatch", style: { backgroundColor: color }, onClick: () => toggle(true) }), isOpen && (_jsx("div", { className: "popover", ref: popover, children: _jsx(HexColorPicker, { color: color, onChange: onChange }) }))] }));
|
|
12
|
-
};
|