kui-complex 0.0.61 → 0.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/ButtonSelect/cjs/index.js +65 -99
  2. package/ButtonSelect/cjs/index.js.map +1 -1
  3. package/ButtonSelect/index.d.ts +13 -12
  4. package/ButtonSelect/index.js +67 -101
  5. package/ButtonSelect/index.js.map +1 -1
  6. package/CalendarHeaderWithSelect/cjs/index.js +65 -99
  7. package/CalendarHeaderWithSelect/cjs/index.js.map +1 -1
  8. package/CalendarHeaderWithSelect/index.d.ts +4 -3
  9. package/CalendarHeaderWithSelect/index.js +67 -101
  10. package/CalendarHeaderWithSelect/index.js.map +1 -1
  11. package/InputDropdown/cjs/index.js +2 -7
  12. package/InputDropdown/cjs/index.js.map +1 -1
  13. package/InputDropdown/index.js +2 -7
  14. package/InputDropdown/index.js.map +1 -1
  15. package/InputMultiSelect/cjs/index.js +237 -0
  16. package/InputMultiSelect/cjs/index.js.map +1 -0
  17. package/InputMultiSelect/cjs/package.json +10 -0
  18. package/InputMultiSelect/index.d.ts +24 -0
  19. package/InputMultiSelect/index.js +231 -0
  20. package/InputMultiSelect/index.js.map +1 -0
  21. package/InputMultiSelect/package.json +10 -0
  22. package/InputMultiSelectOption/cjs/index.js +60 -0
  23. package/InputMultiSelectOption/cjs/index.js.map +1 -0
  24. package/InputMultiSelectOption/cjs/package.json +9 -0
  25. package/InputMultiSelectOption/index.d.ts +14 -0
  26. package/InputMultiSelectOption/index.js +54 -0
  27. package/InputMultiSelectOption/index.js.map +1 -0
  28. package/InputMultiSelectOption/package.json +9 -0
  29. package/InputSelect/cjs/index.js +68 -102
  30. package/InputSelect/cjs/index.js.map +1 -1
  31. package/InputSelect/index.d.ts +16 -18
  32. package/InputSelect/index.js +68 -102
  33. package/InputSelect/index.js.map +1 -1
  34. package/InputSelectBase/cjs/index.js +171 -0
  35. package/InputSelectBase/cjs/index.js.map +1 -0
  36. package/InputSelectBase/cjs/package.json +9 -0
  37. package/InputSelectBase/index.d.ts +23 -0
  38. package/InputSelectBase/index.js +165 -0
  39. package/InputSelectBase/index.js.map +1 -0
  40. package/InputSelectBase/package.json +9 -0
  41. package/InputSelectDropdown/cjs/index.js +19 -41
  42. package/InputSelectDropdown/cjs/index.js.map +1 -1
  43. package/InputSelectDropdown/index.d.ts +6 -6
  44. package/InputSelectDropdown/index.js +20 -42
  45. package/InputSelectDropdown/index.js.map +1 -1
  46. package/InputSelectOption/cjs/index.js +53 -0
  47. package/InputSelectOption/cjs/index.js.map +1 -0
  48. package/InputSelectOption/cjs/package.json +9 -0
  49. package/InputSelectOption/index.d.ts +14 -0
  50. package/InputSelectOption/index.js +47 -0
  51. package/InputSelectOption/index.js.map +1 -0
  52. package/InputSelectOption/package.json +9 -0
  53. package/InputSelectWithController/cjs/index.js +223 -0
  54. package/InputSelectWithController/cjs/index.js.map +1 -0
  55. package/InputSelectWithController/cjs/package.json +10 -0
  56. package/InputSelectWithController/index.d.ts +22 -0
  57. package/InputSelectWithController/index.js +217 -0
  58. package/InputSelectWithController/index.js.map +1 -0
  59. package/InputSelectWithController/package.json +10 -0
  60. package/InputWithDatePicker/cjs/index.js +67 -101
  61. package/InputWithDatePicker/cjs/index.js.map +1 -1
  62. package/InputWithDatePicker/index.js +69 -103
  63. package/InputWithDatePicker/index.js.map +1 -1
  64. package/RadioButtons/cjs/index.js +80 -0
  65. package/RadioButtons/cjs/index.js.map +1 -0
  66. package/RadioButtons/cjs/package.json +9 -0
  67. package/RadioButtons/index.d.ts +27 -0
  68. package/RadioButtons/index.js +78 -0
  69. package/RadioButtons/index.js.map +1 -0
  70. package/RadioButtons/package.json +9 -0
  71. package/RadioButtonsWithController/cjs/index.js +102 -0
  72. package/RadioButtonsWithController/cjs/index.js.map +1 -0
  73. package/RadioButtonsWithController/cjs/package.json +10 -0
  74. package/RadioButtonsWithController/index.d.ts +31 -0
  75. package/RadioButtonsWithController/index.js +100 -0
  76. package/RadioButtonsWithController/index.js.map +1 -0
  77. package/RadioButtonsWithController/package.json +10 -0
  78. package/RadioGroupWithLabel/cjs/index.js +149 -0
  79. package/RadioGroupWithLabel/cjs/index.js.map +1 -0
  80. package/RadioGroupWithLabel/cjs/package.json +10 -0
  81. package/RadioGroupWithLabel/index.d.ts +34 -0
  82. package/RadioGroupWithLabel/index.js +143 -0
  83. package/RadioGroupWithLabel/index.js.map +1 -0
  84. package/RadioGroupWithLabel/package.json +10 -0
  85. package/SelectMonth/cjs/index.js +66 -100
  86. package/SelectMonth/cjs/index.js.map +1 -1
  87. package/SelectMonth/index.d.ts +13 -12
  88. package/SelectMonth/index.js +67 -101
  89. package/SelectMonth/index.js.map +1 -1
  90. package/SelectYear/cjs/index.js +66 -100
  91. package/SelectYear/cjs/index.js.map +1 -1
  92. package/SelectYear/index.d.ts +13 -12
  93. package/SelectYear/index.js +67 -101
  94. package/SelectYear/index.js.map +1 -1
  95. package/TestForm/cjs/index.js +76 -99
  96. package/TestForm/cjs/index.js.map +1 -1
  97. package/TestForm/index.js +77 -100
  98. package/TestForm/index.js.map +1 -1
  99. package/cjs/index.js +344 -182
  100. package/cjs/index.js.map +1 -1
  101. package/index.d.ts +88 -29
  102. package/index.js +341 -184
  103. package/index.js.map +1 -1
  104. package/package.json +3 -2
@@ -1,15 +1,14 @@
1
- import { jsx as jsx$1, jsxs as jsxs$1, Fragment } from '@emotion/react/jsx-runtime';
1
+ import { jsxs as jsxs$1, jsx as jsx$1, Fragment } from '@emotion/react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { forwardRef, useState, useRef, useEffect } from 'react';
4
4
  import DatePicker from 'react-datepicker';
5
5
  import styled from '@emotion/styled';
6
6
  import { DateTime } from 'luxon';
7
7
  import _ from 'lodash';
8
- import { InputWithMask, Grid, theme, Caption, InputWithAdornments, Divider, Button, Modal } from 'kui-basic';
8
+ import { InputWithMask, Grid, theme, InputWithAdornments, Caption, Divider, Button, Modal } from 'kui-basic';
9
9
  import { useController } from 'react-hook-form';
10
10
  import { jsx, jsxs } from 'react/jsx-runtime';
11
11
  import { CalendarIcon, HalfArrowIcon, CheckIcon } from 'kui-icon';
12
- import { css } from '@emotion/react';
13
12
 
14
13
  /******************************************************************************
15
14
  Copyright (c) Microsoft Corporation.
@@ -67,8 +66,8 @@ var InputForDatepicker = forwardRef(function (props, ref) {
67
66
  var Icon = function () { return (jsx(IconWrapper, __assign({ disabled: disabled, onClick: handleIconClick }, { children: startIcon || jsx(CalendarIcon, { width: 19, height: 21 }) }))); };
68
67
  return (jsx(InputWithMask, __assign({ disabled: disabled, endIcon: !startIcon && jsx(Icon, {}), startIcon: startIcon && jsx(Icon, {}) }, other, { ref: ref })));
69
68
  });
70
- var IconWrapper = styled.div(templateObject_1$7 || (templateObject_1$7 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n cursor: pointer;\n z-index: 1;\n"], ["\n display: flex;\n align-items: center;\n cursor: pointer;\n z-index: 1;\n"])));
71
- var templateObject_1$7;
69
+ var IconWrapper = styled.div(templateObject_1$8 || (templateObject_1$8 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n cursor: pointer;\n z-index: 1;\n"], ["\n display: flex;\n align-items: center;\n cursor: pointer;\n z-index: 1;\n"])));
70
+ var templateObject_1$8;
72
71
 
73
72
  var useToggle = function (isModalOpen) {
74
73
  if (isModalOpen === void 0) { isModalOpen = false; }
@@ -103,14 +102,11 @@ var InputDropdown = forwardRef(function (props, ref) {
103
102
  };
104
103
  });
105
104
  useEffect(function () {
106
- var _a, _b;
105
+ var _a;
107
106
  if (buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current) {
108
- var inputMessage = (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(".KUI-InputMessage");
109
107
  if (isOpen) {
110
108
  buttonRef.current.style.zIndex = "4";
111
- if (inputMessage)
112
- inputMessage.style.opacity = "0";
113
- var scrollContainer = (_b = dropdownRef.current) === null || _b === void 0 ? void 0 : _b.children[0].children[0];
109
+ var scrollContainer = (_a = dropdownRef.current) === null || _a === void 0 ? void 0 : _a.children[0].children[0];
114
110
  if (scrollContainer) {
115
111
  var hasScroll = scrollContainer.scrollHeight > scrollContainer.clientHeight;
116
112
  setIsScrollable(hasScroll);
@@ -118,8 +114,6 @@ var InputDropdown = forwardRef(function (props, ref) {
118
114
  }
119
115
  else {
120
116
  buttonRef.current.style.zIndex = "1";
121
- if (inputMessage)
122
- inputMessage.style.opacity = "1";
123
117
  }
124
118
  }
125
119
  }, [isOpen]);
@@ -135,7 +129,7 @@ var InputDropdown = forwardRef(function (props, ref) {
135
129
  };
136
130
  return (jsxs(StyledDropdown$1, __assign({ "data-testid": "input_dropdown", container: true, ref: forwardedRef, isOpen: isOpen }, otherProps, { children: [jsx(StyledWrapper, __assign({ isScrollable: isScrollable }, { children: jsx(ScrollingContainer, __assign({ isScrollable: isScrollable, className: "KUI-InputDropdown_scroll" }, { children: children })) })), endComponent] })));
137
131
  });
138
- var StyledDropdown$1 = styled(Grid)(templateObject_1$6 || (templateObject_1$6 = __makeTemplateObject(["\n width: 100%;\n display: ", ";\n position: absolute;\n background: ", ";\n z-index: 3;\n top: 50px;\n box-shadow: 0px 26px 34px 0px #0000001a;\n border-radius: 0 0 8px 8px;\n user-select: none;\n"], ["\n width: 100%;\n display: ", ";\n position: absolute;\n background: ", ";\n z-index: 3;\n top: 50px;\n box-shadow: 0px 26px 34px 0px #0000001a;\n border-radius: 0 0 8px 8px;\n user-select: none;\n"])), function (_a) {
132
+ var StyledDropdown$1 = styled(Grid)(templateObject_1$7 || (templateObject_1$7 = __makeTemplateObject(["\n width: 100%;\n display: ", ";\n position: absolute;\n background: ", ";\n z-index: 3;\n top: 50px;\n box-shadow: 0px 26px 34px 0px #0000001a;\n border-radius: 0 0 8px 8px;\n user-select: none;\n"], ["\n width: 100%;\n display: ", ";\n position: absolute;\n background: ", ";\n z-index: 3;\n top: 50px;\n box-shadow: 0px 26px 34px 0px #0000001a;\n border-radius: 0 0 8px 8px;\n user-select: none;\n"])), function (_a) {
139
133
  var isOpen = _a.isOpen;
140
134
  return (isOpen ? "flex" : "none");
141
135
  }, theme.palette.grey.zero);
@@ -143,120 +137,92 @@ var StyledWrapper = styled.div(templateObject_2$4 || (templateObject_2$4 = __mak
143
137
  var isScrollable = _a.isScrollable;
144
138
  return isScrollable ? "14px 8px 8px 0" : "14px 0px 8px 0";
145
139
  });
146
- var ScrollingContainer = styled.div(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n width: 100%;\n max-height: 389px;\n box-sizing: border-box;\n z-index: 3;\n overflow: auto;\n -ms-overflow-style: none;\n overflow-y: scroll;\n overflow-x: hidden;\n user-select: none;\n ::-webkit-scrollbar {\n width: ", ";\n position: absolute;\n right: 8px;\n }\n ::-webkit-scrollbar-track,\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n transition: all ease-out 0.3s;\n }\n\n ::-webkit-resizer,\n ::-webkit-scrollbar-button,\n ::-webkit-scrollbar-corner {\n display: none;\n }\n ::-webkit-scrollbar-track {\n background: ", ";\n }\n\n ::-webkit-scrollbar-thumb {\n background: ", ";\n }\n"], ["\n width: 100%;\n max-height: 389px;\n box-sizing: border-box;\n z-index: 3;\n overflow: auto;\n -ms-overflow-style: none;\n overflow-y: scroll;\n overflow-x: hidden;\n user-select: none;\n ::-webkit-scrollbar {\n width: ", ";\n position: absolute;\n right: 8px;\n }\n ::-webkit-scrollbar-track,\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n transition: all ease-out 0.3s;\n }\n\n ::-webkit-resizer,\n ::-webkit-scrollbar-button,\n ::-webkit-scrollbar-corner {\n display: none;\n }\n ::-webkit-scrollbar-track {\n background: ", ";\n }\n\n ::-webkit-scrollbar-thumb {\n background: ", ";\n }\n"])), function (_a) {
140
+ var ScrollingContainer = styled.div(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n width: 100%;\n max-height: 389px;\n box-sizing: border-box;\n z-index: 3;\n overflow: auto;\n -ms-overflow-style: none;\n overflow-y: scroll;\n overflow-x: hidden;\n user-select: none;\n ::-webkit-scrollbar {\n width: ", ";\n position: absolute;\n right: 8px;\n }\n ::-webkit-scrollbar-track,\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n transition: all ease-out 0.3s;\n }\n\n ::-webkit-resizer,\n ::-webkit-scrollbar-button,\n ::-webkit-scrollbar-corner {\n display: none;\n }\n ::-webkit-scrollbar-track {\n background: ", ";\n }\n\n ::-webkit-scrollbar-thumb {\n background: ", ";\n }\n"], ["\n width: 100%;\n max-height: 389px;\n box-sizing: border-box;\n z-index: 3;\n overflow: auto;\n -ms-overflow-style: none;\n overflow-y: scroll;\n overflow-x: hidden;\n user-select: none;\n ::-webkit-scrollbar {\n width: ", ";\n position: absolute;\n right: 8px;\n }\n ::-webkit-scrollbar-track,\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n transition: all ease-out 0.3s;\n }\n\n ::-webkit-resizer,\n ::-webkit-scrollbar-button,\n ::-webkit-scrollbar-corner {\n display: none;\n }\n ::-webkit-scrollbar-track {\n background: ", ";\n }\n\n ::-webkit-scrollbar-thumb {\n background: ", ";\n }\n"])), function (_a) {
147
141
  var isScrollable = _a.isScrollable;
148
142
  return (isScrollable ? "4px" : "0px");
149
143
  }, theme.palette.grey.fifteenB, theme.palette.grey.thirty);
150
- var templateObject_1$6, templateObject_2$4, templateObject_3$3;
144
+ var templateObject_1$7, templateObject_2$4, templateObject_3$2;
151
145
 
152
146
  var InputSelectDropdown = forwardRef(function (_a, ref) {
153
- var options = _a.options, inputRef = _a.inputRef, isOpenDropdown = _a.isOpenDropdown, handleCloseDropdown = _a.handleCloseDropdown, handleSelect = _a.handleSelect, selectedValue = _a.selectedValue;
154
- var dropdownRef = useRef(null);
155
- useEffect(function () {
156
- var _a;
157
- if (isOpenDropdown) {
158
- var element = document.querySelector("[data-value=autocomplete_option_".concat(selectedValue, "]"));
159
- var coordinates = element === null || element === void 0 ? void 0 : element.getBoundingClientRect();
160
- if (coordinates && inputRef.current && element) {
161
- (_a = dropdownRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({
162
- top: coordinates.top -
163
- inputRef.current.clientHeight -
164
- element.clientHeight,
165
- });
166
- }
147
+ var options = _a.options, inputRef = _a.inputRef, isOpenDropdown = _a.isOpenDropdown, handleCloseDropdown = _a.handleCloseDropdown, handleSelect = _a.handleSelect, selectedValue = _a.selectedValue, renderOption = _a.renderOption;
148
+ var handleClick = function (option) {
149
+ if (!option.disabled) {
150
+ handleSelect(option);
167
151
  }
168
- }, [isOpenDropdown]);
169
- var forwardedRef = function (elem) {
170
- if (ref) {
171
- if (typeof ref === "function")
172
- ref(elem);
173
- else
174
- ref.current = elem;
175
- }
176
- dropdownRef.current = elem;
177
152
  };
178
- return (jsx$1(StyledDropdown, __assign({ ref: forwardedRef, buttonRef: inputRef, isOpen: isOpenDropdown, handleClose: handleCloseDropdown }, { children: options.map(function (option, key) { return (jsx$1(OptionWrapper, __assign({ onClick: function () { return handleSelect(option); }, "data-value": "autocomplete_option_".concat(option.value), "data-testid": "autocomplete_option_".concat(key) }, { children: jsx$1(StyledOption, __assign({ css: selectedValue === option.value && selectedStyles }, { children: jsx$1(Caption, __assign({ size: "sm", weight: 500 }, { children: option.label })) })) }), option.label)); }) })));
153
+ return (jsx(StyledDropdown, __assign({ buttonRef: inputRef, isOpen: isOpenDropdown, handleClose: handleCloseDropdown, ref: ref }, { children: options.map(function (option, key) { return (jsx(OptionWrapper, __assign({ disabled: option.disabled, onClick: function () { return handleClick(option); }, "data-value": "autocomplete_option_".concat(option.value), "data-testid": "autocomplete_option_".concat(key) }, { children: renderOption(option, selectedValue) }), option.label)); }) })));
179
154
  });
180
- var OptionWrapper = styled.div(templateObject_1$5 || (templateObject_1$5 = __makeTemplateObject(["\n width: 100%;\n padding: 2px 0;\n cursor: pointer;\n"], ["\n width: 100%;\n padding: 2px 0;\n cursor: pointer;\n"])));
181
- var StyledOption = styled.div(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n &:hover {\n background-color: ", ";\n }\n"], ["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n &:hover {\n background-color: ", ";\n }\n"])), theme.palette.background.light1);
182
- var selectedStyles = css(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n background-color: ", ";\n"], ["\n background-color: ", ";\n"])), theme.palette.background.light1);
183
- var StyledDropdown = styled(InputDropdown)(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n .KUI-InputDropdown_scroll {\n max-height: 142px;\n padding: 0 4px;\n }\n"], ["\n .KUI-InputDropdown_scroll {\n max-height: 142px;\n padding: 0 4px;\n }\n"])));
184
- var templateObject_1$5, templateObject_2$3, templateObject_3$2, templateObject_4$1;
185
-
186
- var getFormValue = function (name, form) {
187
- var names = name === null || name === void 0 ? void 0 : name.split(".");
188
- var fieldValue = form === null || form === void 0 ? void 0 : form.control._formValues;
189
- names === null || names === void 0 ? void 0 : names.forEach(function (field) {
190
- if (fieldValue) {
191
- fieldValue = fieldValue[field];
192
- }
193
- });
194
- return fieldValue;
195
- };
196
- var getFormError = function (name, form) {
197
- var names = name === null || name === void 0 ? void 0 : name.split(".");
198
- var fieldError = form === null || form === void 0 ? void 0 : form.formState.errors;
199
- names === null || names === void 0 ? void 0 : names.forEach(function (field) {
200
- if (fieldError) {
201
- // @ts-ignore
202
- fieldError = fieldError[field];
203
- }
204
- });
205
- return fieldError === null || fieldError === void 0 ? void 0 : fieldError.message;
206
- };
155
+ var OptionWrapper = styled.div(templateObject_1$6 || (templateObject_1$6 = __makeTemplateObject(["\n width: 100%;\n padding: 2px 0;\n cursor: ", ";\n p {\n color: ", ";\n }\n"], ["\n width: 100%;\n padding: 2px 0;\n cursor: ", ";\n p {\n color: ", ";\n }\n"])), function (_a) {
156
+ var disabled = _a.disabled;
157
+ return (disabled ? "auto" : "pointer");
158
+ }, function (_a) {
159
+ var disabled = _a.disabled;
160
+ return disabled ? theme.palette.grey.fiftyP : theme.palette.grey.seventy;
161
+ });
162
+ var StyledDropdown = styled(InputDropdown)(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\n .KUI-InputDropdown_scroll {\n max-height: 142px;\n padding: 0 4px;\n }\n"], ["\n .KUI-InputDropdown_scroll {\n max-height: 142px;\n padding: 0 4px;\n }\n"])));
163
+ var templateObject_1$6, templateObject_2$3;
207
164
 
208
- var InputSelect = forwardRef(function (props, ref) {
209
- var _a, _b;
210
- var options = props.options, name = props.name, handleChange = props.handleChange, form = props.form, iconProps = props.iconProps, defaultValue = props.value, other = __rest(props, ["options", "name", "handleChange", "form", "iconProps", "value"]);
211
- var _c = useState(false), isOpenDropdown = _c[0], setIsOpenDropDown = _c[1];
212
- var _d = useState(defaultValue || getFormValue(name, form)), value = _d[0], setValue = _d[1];
213
- var error = getFormError(name, form);
165
+ function InputSelectBase(_a) {
166
+ var _b;
167
+ var options = _a.options, name = _a.name, disabled = _a.disabled, handleChange = _a.handleChange, iconProps = _a.iconProps, renderOption = _a.renderOption, selectedLabel = _a.selectedLabel, selectedValue = _a.selectedValue, error = _a.error, inputProps = __rest(_a, ["options", "name", "disabled", "handleChange", "iconProps", "renderOption", "selectedLabel", "selectedValue", "error"]);
168
+ var _c = useState(false), isDropdownOpen = _c[0], setIsDropdownOpen = _c[1];
214
169
  var inputRef = useRef(null);
215
- var selectedLabel = (_a = options === null || options === void 0 ? void 0 : options.find(function (option) { return String(option.value) === String(value); })) === null || _a === void 0 ? void 0 : _a.label;
216
- var register = form === null || form === void 0 ? void 0 : form.register(name);
217
170
  var handleOpenDropdown = function () {
218
171
  var _a, _b, _c, _d;
219
172
  if ((_b = (_a = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement) {
220
173
  (_d = (_c = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) === null || _c === void 0 ? void 0 : _c.parentElement) === null || _d === void 0 ? void 0 : _d.parentElement.focus();
221
174
  }
222
- setIsOpenDropDown(function (prev) { return !prev; });
175
+ setIsDropdownOpen(function (prev) { return !prev; });
223
176
  };
224
177
  var handleCloseDropdown = function () {
225
- setIsOpenDropDown(false);
178
+ setIsDropdownOpen(false);
226
179
  };
227
180
  var handleSelect = function (option) {
228
- setValue(option.value);
229
- if (handleChange) {
230
- handleChange(option.value);
231
- }
232
- if (form) {
233
- register === null || register === void 0 ? void 0 : register.onChange({
234
- target: { value: option.value, name: name },
235
- type: "change",
236
- });
237
- }
181
+ if (handleChange)
182
+ handleChange(option);
238
183
  handleCloseDropdown();
239
184
  };
240
- var forwardedRef = function (e) {
241
- if (ref) {
242
- // eslint-disable-next-line no-param-reassign
243
- // @ts-ignore
244
- ref.current = e;
245
- }
246
- // @ts-ignore
247
- inputRef.current = e;
248
- register === null || register === void 0 ? void 0 : register.ref(e);
249
- };
250
- return (jsxs$1(Wrapper$1, { children: [jsx$1("input", { name: name, autoComplete: "off", hidden: true }), jsx$1(StyledInput, __assign({ onClick: handleOpenDropdown, readOnly: true, value: selectedLabel, message: error }, other, { endIcon: !props.disabled && (jsx$1(HalfArrowIcon, __assign({ width: 12, height: 13, css: [
185
+ return (jsxs$1(Wrapper$1, { children: [jsx$1("input", { name: name, autoComplete: "off", hidden: true }), jsx$1(StyledInput, __assign({ onClick: handleOpenDropdown, ref: inputRef, disabled: disabled, readOnly: true, value: selectedLabel, message: error, isDropdownOpen: isDropdownOpen, isLabelShrink: Boolean(selectedValue) || selectedValue === 0 }, inputProps, { endIcon: !disabled && (jsx$1(HalfArrowIcon, __assign({ width: 12, height: 13, css: [
251
186
  { transition: "all linear .2s" },
252
- isOpenDropdown && { transform: "rotate(180deg)" },
253
- ] }, iconProps))) }, register, { ref: forwardedRef })), options && options.length > 0 && !props.disabled && (jsx$1(InputSelectDropdown, { options: options, inputRef: {
187
+ isDropdownOpen && { transform: "rotate(180deg)" },
188
+ ] }, iconProps))) })), options.length > 0 && !disabled && (jsx$1(InputSelectDropdown, { options: options, inputRef: {
254
189
  current: (_b = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) === null || _b === void 0 ? void 0 : _b.parentElement,
255
- }, isOpenDropdown: isOpenDropdown, handleCloseDropdown: handleCloseDropdown, handleSelect: handleSelect, selectedValue: value }))] }));
190
+ }, isOpenDropdown: isDropdownOpen, handleCloseDropdown: handleCloseDropdown, handleSelect: handleSelect, selectedValue: selectedValue, renderOption: renderOption }))] }));
191
+ }
192
+ var Wrapper$1 = styled.div(templateObject_1$5 || (templateObject_1$5 = __makeTemplateObject(["\n position: relative;\n text-align: left;\n"], ["\n position: relative;\n text-align: left;\n"])));
193
+ var StyledInput = styled(InputWithAdornments)(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["\n cursor: pointer;\n input,\n label {\n cursor: pointer !important;\n }\n .KUI-InputMessage {\n opacity: ", ";\n }\n"], ["\n cursor: pointer;\n input,\n label {\n cursor: pointer !important;\n }\n .KUI-InputMessage {\n opacity: ", ";\n }\n"])), function (_a) {
194
+ var isDropdownOpen = _a.isDropdownOpen;
195
+ return (isDropdownOpen ? 0 : 1);
256
196
  });
257
- var Wrapper$1 = styled.div(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n position: relative;\n text-align: left;\n width: fit-content;\n"], ["\n position: relative;\n text-align: left;\n width: fit-content;\n"])));
258
- var StyledInput = styled(InputWithAdornments)(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["\n cursor: pointer;\n input,\n label {\n cursor: pointer !important;\n }\n"], ["\n cursor: pointer;\n input,\n label {\n cursor: pointer !important;\n }\n"])));
259
- var templateObject_1$4, templateObject_2$2;
197
+ var templateObject_1$5, templateObject_2$2;
198
+
199
+ function InputSelectOption(props) {
200
+ var option = props.option, selectedValue = props.selectedValue;
201
+ return (jsx(StyledOption, __assign({ selected: selectedValue === option.value }, { children: jsx(Caption, __assign({ size: "sm", weight: 500 }, { children: option.label })) })));
202
+ }
203
+ var StyledOption = styled.div(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n background-color: ", ";\n &:hover {\n background-color: ", ";\n }\n"], ["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n background-color: ", ";\n &:hover {\n background-color: ", ";\n }\n"])), function (_a) {
204
+ var selected = _a.selected;
205
+ return selected ? theme.palette.background.light1 : theme.palette.grey.zero;
206
+ }, theme.palette.background.light1);
207
+ var templateObject_1$4;
208
+
209
+ function InputSelect(_a) {
210
+ var _b;
211
+ var options = _a.options, name = _a.name, handleChange = _a.handleChange; _a.form; var valueProp = _a.value, inputProps = __rest(_a, ["options", "name", "handleChange", "form", "value"]);
212
+ var _c = useState(valueProp), value = _c[0], setValue = _c[1];
213
+ var selectedLabel = (_b = options.find(function (option) { return String(option.value) === String(value); })) === null || _b === void 0 ? void 0 : _b.label;
214
+ var handleSelect = function (option) {
215
+ setValue(option.value);
216
+ if (handleChange) {
217
+ handleChange(option.value);
218
+ }
219
+ };
220
+ useEffect(function () {
221
+ if (typeof valueProp !== "undefined")
222
+ setValue(valueProp);
223
+ }, [valueProp]);
224
+ return (jsx(InputSelectBase, __assign({ options: options, handleChange: handleSelect, selectedLabel: selectedLabel, selectedValue: value, name: name, renderOption: function (option, selectedValue) { return (jsx(InputSelectOption, { option: option, selectedValue: selectedValue })); } }, inputProps)));
225
+ }
260
226
 
261
227
  var checkDisabled$1 = function (year, min, max) {
262
228
  return (min && year <= min) || (max && year >= max);