react-restyle-components 0.1.85 → 0.1.87

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 (208) hide show
  1. package/lib/cjs/index.d.ts +2 -0
  2. package/lib/cjs/index.js +18 -0
  3. package/lib/cjs/src/App.d.ts +4 -0
  4. package/lib/cjs/src/App.js +14 -0
  5. package/lib/cjs/src/__mocks__/styleMock.js +2 -0
  6. package/lib/cjs/src/core-components/atoms/buttons/button.stories.d.ts +6 -0
  7. package/lib/cjs/src/core-components/atoms/buttons/button.stories.js +42 -0
  8. package/lib/cjs/src/core-components/atoms/buttons/buttons.component.d.ts +11 -0
  9. package/lib/cjs/src/core-components/atoms/buttons/buttons.component.js +15 -0
  10. package/lib/cjs/src/core-components/atoms/check-box/checkBox.component.d.ts +11 -0
  11. package/lib/cjs/src/core-components/atoms/check-box/checkBox.component.js +47 -0
  12. package/lib/cjs/src/core-components/atoms/check-box/checkBox.stories.d.ts +6 -0
  13. package/lib/cjs/src/core-components/atoms/check-box/checkBox.stories.js +26 -0
  14. package/lib/cjs/src/core-components/atoms/date-picker/date-picker.component.d.ts +13 -0
  15. package/lib/cjs/src/core-components/atoms/date-picker/date-picker.component.js +52 -0
  16. package/lib/cjs/src/core-components/atoms/date-picker/date-picker.stories.d.ts +6 -0
  17. package/lib/cjs/src/core-components/atoms/date-picker/date-picker.stories.js +24 -0
  18. package/lib/cjs/src/core-components/atoms/form/form.component.d.ts +102 -0
  19. package/lib/cjs/src/core-components/atoms/form/form.component.js +192 -0
  20. package/lib/cjs/src/core-components/atoms/icons/icons.component.d.ts +11 -0
  21. package/lib/cjs/src/core-components/atoms/icons/icons.component.js +66 -0
  22. package/lib/cjs/src/core-components/atoms/icons/icons.stories.d.ts +6 -0
  23. package/lib/cjs/src/core-components/atoms/icons/icons.stories.js +22 -0
  24. package/lib/cjs/src/core-components/atoms/input/input-otp.component.d.ts +15 -0
  25. package/lib/cjs/src/core-components/atoms/input/input-otp.component.js +88 -0
  26. package/lib/cjs/src/core-components/atoms/input/input-pin.component.d.ts +16 -0
  27. package/lib/cjs/src/core-components/atoms/input/input-pin.component.js +107 -0
  28. package/lib/cjs/src/core-components/atoms/input/input-pin.stories.d.ts +6 -0
  29. package/lib/cjs/src/core-components/atoms/input/input-pin.stories.js +23 -0
  30. package/lib/cjs/src/core-components/atoms/input/input.component.d.ts +19 -0
  31. package/lib/cjs/src/core-components/atoms/input/input.component.js +45 -0
  32. package/lib/cjs/src/core-components/atoms/input/input.stories.d.ts +6 -0
  33. package/lib/cjs/src/core-components/atoms/input/input.stories.js +24 -0
  34. package/lib/cjs/src/core-components/atoms/input-dropdown/input-dropdown.component.d.ts +11 -0
  35. package/lib/cjs/src/core-components/atoms/input-dropdown/input-dropdown.component.js +64 -0
  36. package/lib/cjs/src/core-components/atoms/input-dropdown/input-dropdown.stories.d.ts +6 -0
  37. package/lib/cjs/src/core-components/atoms/input-dropdown/input-dropdown.stories.js +20 -0
  38. package/lib/cjs/src/core-components/atoms/loader/loader.component.d.ts +4 -0
  39. package/lib/cjs/src/core-components/atoms/loader/loader.component.js +61 -0
  40. package/lib/cjs/src/core-components/atoms/loader/loader.stories.d.ts +6 -0
  41. package/lib/cjs/src/core-components/atoms/loader/loader.stories.js +16 -0
  42. package/lib/cjs/src/core-components/atoms/radio/radio.component.d.ts +10 -0
  43. package/lib/cjs/src/core-components/atoms/radio/radio.component.js +49 -0
  44. package/lib/cjs/src/core-components/atoms/radio/radio.stories.d.ts +6 -0
  45. package/lib/cjs/src/core-components/atoms/radio/radio.stories.js +25 -0
  46. package/lib/cjs/src/core-components/atoms/stepper/stepper.component.d.ts +10 -0
  47. package/lib/cjs/src/core-components/atoms/stepper/stepper.component.js +42 -0
  48. package/lib/cjs/src/core-components/atoms/stepper/stepper.stories.d.ts +6 -0
  49. package/lib/cjs/src/core-components/atoms/stepper/stepper.stories.js +21 -0
  50. package/lib/cjs/src/core-components/atoms/tabs/tabs.component.d.ts +11 -0
  51. package/lib/cjs/src/core-components/atoms/tabs/tabs.component.js +46 -0
  52. package/lib/cjs/src/core-components/atoms/tabs/tabs.stories.d.ts +6 -0
  53. package/lib/cjs/src/core-components/atoms/tabs/tabs.stories.js +25 -0
  54. package/lib/cjs/src/core-components/atoms/timer/timer.component.d.ts +7 -0
  55. package/lib/cjs/src/core-components/atoms/timer/timer.component.js +106 -0
  56. package/lib/cjs/src/core-components/atoms/tooltip/tooltip.component.d.ts +10 -0
  57. package/lib/cjs/src/core-components/atoms/tooltip/tooltip.component.js +56 -0
  58. package/lib/cjs/src/core-components/atoms/tooltip/tooltip.stories.d.ts +6 -0
  59. package/lib/cjs/src/core-components/atoms/tooltip/tooltip.stories.js +16 -0
  60. package/lib/cjs/src/core-components/index.d.ts +24 -0
  61. package/lib/cjs/src/core-components/index.js +53 -0
  62. package/lib/cjs/src/core-components/molecules/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.d.ts +18 -0
  63. package/lib/cjs/src/core-components/molecules/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.js +119 -0
  64. package/lib/cjs/src/core-components/molecules/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.stories.d.ts +6 -0
  65. package/lib/cjs/src/core-components/molecules/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.stories.js +48 -0
  66. package/lib/cjs/src/core-components/molecules/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.d.ts +17 -0
  67. package/lib/cjs/src/core-components/molecules/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.js +120 -0
  68. package/lib/cjs/src/core-components/molecules/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.stories.d.ts +6 -0
  69. package/lib/cjs/src/core-components/molecules/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.stories.js +31 -0
  70. package/lib/cjs/src/core-components/molecules/autocomplete/autocomplete.d.ts +9 -0
  71. package/lib/cjs/src/core-components/molecules/autocomplete/autocomplete.js +144 -0
  72. package/lib/cjs/src/core-components/molecules/autocomplete/autocomplete.spec.d.ts +1 -0
  73. package/lib/cjs/src/core-components/molecules/autocomplete/autocomplete.spec.js +72 -0
  74. package/lib/cjs/src/core-components/molecules/autocomplete/autocomplete.stories.d.ts +6 -0
  75. package/lib/cjs/src/core-components/molecules/autocomplete/autocomplete.stories.js +20 -0
  76. package/lib/cjs/src/core-components/molecules/css-multiline-input/css-multiline-input.component.d.ts +12 -0
  77. package/lib/cjs/src/core-components/molecules/css-multiline-input/css-multiline-input.component.js +124 -0
  78. package/lib/cjs/src/core-components/molecules/css-multiline-input/css-multiline-input.stories.d.ts +6 -0
  79. package/lib/cjs/src/core-components/molecules/css-multiline-input/css-multiline-input.stories.js +16 -0
  80. package/lib/cjs/src/core-components/molecules/css-multiline-input/css-properties.d.ts +8931 -0
  81. package/lib/cjs/src/core-components/molecules/css-multiline-input/css-properties.js +164 -0
  82. package/lib/cjs/src/core-components/molecules/modal-confirm/modal-confirm.component.d.ts +12 -0
  83. package/lib/cjs/src/core-components/molecules/modal-confirm/modal-confirm.component.js +60 -0
  84. package/lib/cjs/src/core-components/molecules/modal-confirm/modal-confirm.stories.d.ts +6 -0
  85. package/lib/cjs/src/core-components/molecules/modal-confirm/modal-confirm.stories.js +23 -0
  86. package/lib/cjs/src/core-components/molecules/multi-select/multi-select.component.d.ts +9 -0
  87. package/lib/cjs/src/core-components/molecules/multi-select/multi-select.component.js +78 -0
  88. package/lib/cjs/src/core-components/molecules/multi-select/multi-select.stories.d.ts +6 -0
  89. package/lib/cjs/src/core-components/molecules/multi-select/multi-select.stories.js +22 -0
  90. package/lib/cjs/src/core-components/molecules/multi-select-with-field/multi-select-with-field.component.d.ts +10 -0
  91. package/lib/cjs/src/core-components/molecules/multi-select-with-field/multi-select-with-field.component.js +88 -0
  92. package/lib/cjs/src/core-components/molecules/multi-select-with-field/multi-select-with-field.stories.d.ts +6 -0
  93. package/lib/cjs/src/core-components/molecules/multi-select-with-field/multi-select-with-field.stories.js +23 -0
  94. package/lib/cjs/src/core-utils/index.d.ts +1 -0
  95. package/lib/cjs/src/core-utils/index.js +17 -0
  96. package/lib/cjs/src/core-utils/unit-test.utils.d.ts +4 -0
  97. package/lib/cjs/src/core-utils/unit-test.utils.js +16 -0
  98. package/lib/cjs/src/index.d.ts +1 -0
  99. package/lib/cjs/src/index.js +17 -0
  100. package/lib/cjs/src/library/assets/svg/index.d.ts +9 -0
  101. package/lib/cjs/src/library/assets/svg/index.js +40 -0
  102. package/lib/cjs/src/reportWebVitals.d.ts +3 -0
  103. package/lib/cjs/src/reportWebVitals.js +37 -0
  104. package/lib/cjs/src/setupTests.d.ts +1 -0
  105. package/lib/cjs/src/setupTests.js +7 -0
  106. package/lib/package.json +43 -67
  107. package/lib/src/App.css +3 -2
  108. package/lib/src/App.js +4 -9
  109. package/lib/src/core-components/atoms/buttons/buttons.component.d.ts +1 -1
  110. package/lib/src/core-components/atoms/buttons/buttons.component.js +1 -1
  111. package/lib/src/core-components/atoms/check-box/checkBox.component.d.ts +1 -1
  112. package/lib/src/core-components/atoms/check-box/checkBox.component.js +2 -2
  113. package/lib/src/core-components/atoms/check-box/checkBox.stories.d.ts +1 -1
  114. package/lib/src/core-components/atoms/check-box/checkBox.stories.js +1 -1
  115. package/lib/src/core-components/atoms/date-picker/date-picker.component.d.ts +1 -1
  116. package/lib/src/core-components/atoms/date-picker/date-picker.component.js +1 -1
  117. package/lib/src/core-components/atoms/form/form.component.d.ts +2 -2
  118. package/lib/src/core-components/atoms/form/form.component.js +2 -2
  119. package/lib/src/core-components/atoms/icons/icons.component.d.ts +1 -2
  120. package/lib/src/core-components/atoms/icons/icons.component.js +1 -1
  121. package/lib/src/core-components/atoms/input/input-otp.component.d.ts +1 -1
  122. package/lib/src/core-components/atoms/input/input-otp.component.js +1 -1
  123. package/lib/src/core-components/atoms/input/input-pin.component.d.ts +1 -1
  124. package/lib/src/core-components/atoms/input/input-pin.component.js +1 -1
  125. package/lib/src/core-components/atoms/input/input.component.d.ts +1 -1
  126. package/lib/src/core-components/atoms/input/input.component.js +1 -1
  127. package/lib/src/core-components/atoms/input-dropdown/input-dropdown.component.d.ts +1 -1
  128. package/lib/src/core-components/atoms/input-dropdown/input-dropdown.component.js +1 -1
  129. package/lib/src/core-components/atoms/loader/loader.component.d.ts +1 -1
  130. package/lib/src/core-components/atoms/loader/loader.component.js +1 -1
  131. package/lib/src/core-components/atoms/radio/radio.component.d.ts +1 -1
  132. package/lib/src/core-components/atoms/radio/radio.component.js +1 -1
  133. package/lib/src/core-components/atoms/stepper/stepper.component.d.ts +1 -1
  134. package/lib/src/core-components/atoms/stepper/stepper.component.js +1 -1
  135. package/lib/src/core-components/atoms/tabs/tabs.component.d.ts +1 -1
  136. package/lib/src/core-components/atoms/tabs/tabs.component.js +1 -1
  137. package/lib/src/core-components/atoms/timer/timer.component.d.ts +1 -1
  138. package/lib/src/core-components/atoms/timer/timer.component.js +1 -1
  139. package/lib/src/core-components/atoms/tooltip/tooltip.component.d.ts +1 -1
  140. package/lib/src/core-components/atoms/tooltip/tooltip.component.js +1 -1
  141. package/lib/src/core-components/index.d.ts +2 -1
  142. package/lib/src/core-components/index.js +2 -1
  143. 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 +1 -1
  144. package/lib/src/core-components/molecules/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.js +1 -1
  145. 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 +1 -1
  146. package/lib/src/core-components/molecules/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.js +1 -1
  147. package/lib/src/core-components/molecules/autocomplete/autocomplete.css +51 -0
  148. package/lib/src/core-components/molecules/autocomplete/autocomplete.d.ts +9 -0
  149. package/lib/src/core-components/molecules/autocomplete/autocomplete.js +117 -0
  150. package/lib/src/core-components/molecules/autocomplete/autocomplete.spec.d.ts +1 -0
  151. package/lib/src/core-components/molecules/autocomplete/autocomplete.spec.js +67 -0
  152. package/lib/src/core-components/molecules/autocomplete/autocomplete.stories.d.ts +6 -0
  153. package/lib/src/core-components/molecules/autocomplete/autocomplete.stories.js +17 -0
  154. package/lib/src/core-components/molecules/css-multiline-input/css-multiline-input.component.d.ts +1 -1
  155. package/lib/src/core-components/molecules/css-multiline-input/css-multiline-input.component.js +1 -1
  156. package/lib/src/core-components/molecules/modal-confirm/modal-confirm.stories.d.ts +1 -1
  157. package/lib/src/core-components/molecules/modal-confirm/modal-confirm.stories.js +1 -1
  158. package/lib/src/core-components/molecules/multi-select/multi-select.component.js +0 -1
  159. package/lib/src/index.css +17 -4
  160. package/lib/src/index.d.ts +1 -1
  161. package/lib/src/index.js +12 -1
  162. package/lib/src/reportWebVitals.d.ts +3 -1
  163. package/lib/src/reportWebVitals.js +12 -2
  164. package/lib/src/tc.css +1 -0
  165. package/lib/tc.css +1 -1
  166. package/package.json +42 -66
  167. package/lib/src/App.test.js +0 -8
  168. package/lib/src/core-components/atoms/buttons/buttons.test.js +0 -8
  169. package/lib/src/core-components/atoms/check-box/checkBox.test.js +0 -8
  170. package/lib/src/core-components/atoms/date-picker/date-picker.test.d.ts +0 -1
  171. package/lib/src/core-components/atoms/date-picker/date-picker.test.js +0 -9
  172. package/lib/src/core-components/atoms/form/form.test.d.ts +0 -1
  173. package/lib/src/core-components/atoms/form/form.test.js +0 -94
  174. package/lib/src/core-components/atoms/icons/icons.test.d.ts +0 -1
  175. package/lib/src/core-components/atoms/icons/icons.test.js +0 -10
  176. package/lib/src/core-components/atoms/input/input-pin.test.d.ts +0 -1
  177. package/lib/src/core-components/atoms/input/input-pin.test.js +0 -12
  178. package/lib/src/core-components/atoms/input/input.test.d.ts +0 -1
  179. package/lib/src/core-components/atoms/input/input.test.js +0 -12
  180. package/lib/src/core-components/atoms/input-dropdown/input-dropdown.test.d.ts +0 -1
  181. package/lib/src/core-components/atoms/input-dropdown/input-dropdown.test.js +0 -8
  182. package/lib/src/core-components/atoms/loader/loader.test.d.ts +0 -1
  183. package/lib/src/core-components/atoms/loader/loader.test.js +0 -8
  184. package/lib/src/core-components/atoms/radio/radio.test.d.ts +0 -1
  185. package/lib/src/core-components/atoms/radio/radio.test.js +0 -8
  186. package/lib/src/core-components/atoms/stepper/stepper.test.d.ts +0 -1
  187. package/lib/src/core-components/atoms/stepper/stepper.test.js +0 -7
  188. package/lib/src/core-components/atoms/tabs/tabs.test.d.ts +0 -1
  189. package/lib/src/core-components/atoms/tabs/tabs.test.js +0 -13
  190. package/lib/src/core-components/atoms/timer/timer.test.d.ts +0 -1
  191. package/lib/src/core-components/atoms/timer/timer.test.js +0 -14
  192. package/lib/src/core-components/atoms/tooltip/tooltip.component.test.d.ts +0 -1
  193. package/lib/src/core-components/atoms/tooltip/tooltip.component.test.js +0 -9
  194. package/lib/src/core-components/molecules/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.test.d.ts +0 -1
  195. package/lib/src/core-components/molecules/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.test.js +0 -9
  196. package/lib/src/core-components/molecules/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.test.d.ts +0 -1
  197. package/lib/src/core-components/molecules/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.test.js +0 -16
  198. package/lib/src/core-components/molecules/css-multiline-input/css-multiline-input.test.d.ts +0 -1
  199. package/lib/src/core-components/molecules/css-multiline-input/css-multiline-input.test.js +0 -10
  200. package/lib/src/core-components/molecules/modal-confirm/modal-confirm.test.d.ts +0 -1
  201. package/lib/src/core-components/molecules/modal-confirm/modal-confirm.test.js +0 -10
  202. package/lib/src/core-components/molecules/multi-select/multi-select.test.d.ts +0 -1
  203. package/lib/src/core-components/molecules/multi-select/multi-select.test.js +0 -10
  204. package/lib/src/core-components/molecules/multi-select-with-field/multi-select-with-field.test.d.ts +0 -1
  205. package/lib/src/core-components/molecules/multi-select-with-field/multi-select-with-field.test.js +0 -12
  206. /package/lib/{src/App.test.d.ts → cjs/src/__mocks__/styleMock.d.ts} +0 -0
  207. /package/lib/src/{core-components/atoms/buttons/buttons.test.d.ts → __mocks__/styleMock.d.ts} +0 -0
  208. /package/lib/src/{core-components/atoms/check-box/checkBox.test.d.ts → __mocks__/styleMock.js} +0 -0
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.AutoCompleteFilterMultipleSelectMultipleFieldsDisplay = void 0;
27
+ /* eslint-disable */
28
+ const react_1 = __importStar(require("react"));
29
+ const __1 = require("../..");
30
+ require("../../../tc.css");
31
+ const AutoCompleteFilterMultipleSelectMultipleFieldsDisplay = ({ uniqueField = '_id', loader = false, placeholder = 'Search...', data, hasError = false, disable = false, isUpperCase = false, name, onFilter, onUpdate, onSelect, onBlur, }) => {
32
+ const [value, setValue] = (0, react_1.useState)('');
33
+ const [options, setOptions] = (0, react_1.useState)();
34
+ const [originalOptions, setOriginalOptions] = (0, react_1.useState)();
35
+ const [isListOpen, setIsListOpen] = (0, react_1.useState)(false);
36
+ const useOutsideAlerter = (ref) => {
37
+ (0, react_1.useEffect)(() => {
38
+ function handleClickOutside(event) {
39
+ if (ref.current && !ref.current.contains(event.target) && isListOpen) {
40
+ if (originalOptions && options) {
41
+ if (isListOpen) {
42
+ onUpdate && onUpdate(data.selected);
43
+ }
44
+ }
45
+ setIsListOpen(false);
46
+ setValue('');
47
+ }
48
+ }
49
+ document.addEventListener('mousedown', handleClickOutside);
50
+ return () => {
51
+ document.removeEventListener('mousedown', handleClickOutside);
52
+ };
53
+ }, [ref, isListOpen]);
54
+ };
55
+ const wrapperRef = (0, react_1.useRef)(null);
56
+ useOutsideAlerter(wrapperRef);
57
+ let count = 0;
58
+ const getSelectedItem = (selectedItem, list) => {
59
+ if (count === 0) {
60
+ const finalList = list?.filter((item, index) => {
61
+ item.selected = false;
62
+ selectedItem && selectedItem.length > 0
63
+ ? selectedItem.find((sItem, index) => {
64
+ if (sItem[uniqueField] === item[uniqueField]) {
65
+ item.selected = true;
66
+ }
67
+ })
68
+ : (item.selected = false);
69
+ count++;
70
+ return item;
71
+ });
72
+ list = finalList;
73
+ }
74
+ return list;
75
+ };
76
+ (0, react_1.useEffect)(() => {
77
+ setOriginalOptions(getSelectedItem(data.selected, data.list));
78
+ setOptions(getSelectedItem(data.selected, data.list));
79
+ }, [data, data.selected]);
80
+ const onChange = (e) => {
81
+ const search = e.target.value;
82
+ setValue(search);
83
+ onFilter && onFilter(search);
84
+ };
85
+ const onKeyUp = (e) => {
86
+ const charCode = e.which ? e.which : e.keyCode;
87
+ if (charCode === 8) {
88
+ const search = e.target.value;
89
+ onFilter && onFilter(search);
90
+ }
91
+ };
92
+ return (react_1.default.createElement(react_1.default.Fragment, null,
93
+ react_1.default.createElement("div", { ref: wrapperRef, className: "w-full relative" },
94
+ react_1.default.createElement("div", { className: `flex items-center leading-4 p-2 focus:outline-none focus:ring w-full shadow-sm sm:text-base border-2 ${hasError ? 'border-red' : 'border-gray-300'} rounded-md` },
95
+ react_1.default.createElement("input", { placeholder: placeholder, disabled: disable, name: name, value: !isListOpen
96
+ ? `${(data.selected && data.selected.length) || 0} Items`
97
+ : isUpperCase
98
+ ? value?.toUpperCase()
99
+ : value, className: `w-full focus:outline-none bg-none`, onKeyUp: onKeyUp, onChange: onChange, onClick: () => setIsListOpen(true), onBlur: (e) => onBlur && onBlur(e) }),
100
+ isListOpen ? (react_1.default.createElement(__1.Icon, { nameIcon: "FaChevronUp", propsIcon: {
101
+ color: '#000000',
102
+ size: 22,
103
+ } })) : (react_1.default.createElement(__1.Icon, { nameIcon: "FaChevronDown", propsIcon: {
104
+ color: '#000000',
105
+ size: 22,
106
+ } }))),
107
+ options && isListOpen
108
+ ? options?.length > 0 && (react_1.default.createElement("div", { className: "mt-1 absolute bg-gray-100 p-2 rounded-sm z-500", style: { zIndex: 80 } },
109
+ react_1.default.createElement("ul", null, options?.map((item, index) => (react_1.default.createElement(react_1.default.Fragment, null,
110
+ react_1.default.createElement("li", { key: index, className: "text-gray-400 flex items-center" },
111
+ react_1.default.createElement("input", { type: "checkbox", checked: item.selected, onChange: () => onSelect(item) }),
112
+ ' ',
113
+ react_1.default.createElement("label", { className: "ml-2 mt-1 text-black" }, data.displayKey
114
+ .map((key) => `${item[key]}
115
+ `)
116
+ .join(' - ')))))))))
117
+ : null)));
118
+ };
119
+ exports.AutoCompleteFilterMultipleSelectMultipleFieldsDisplay = AutoCompleteFilterMultipleSelectMultipleFieldsDisplay;
@@ -0,0 +1,6 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { AutoCompleteFilterMultipleSelectMultipleFieldsDisplay } from './auto-complete-filter-multiple-select-multiple-fields-display.component';
3
+ declare const meta: Meta<typeof AutoCompleteFilterMultipleSelectMultipleFieldsDisplay>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof AutoCompleteFilterMultipleSelectMultipleFieldsDisplay>;
6
+ export declare const Primary: Story;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Primary = void 0;
4
+ const auto_complete_filter_multiple_select_multiple_fields_display_component_1 = require("./auto-complete-filter-multiple-select-multiple-fields-display.component");
5
+ const meta = {
6
+ title: 'Design System/Molecules/AutoCompleteFilterMultipleSelectMultipleFieldsDisplay',
7
+ component: auto_complete_filter_multiple_select_multiple_fields_display_component_1.AutoCompleteFilterMultipleSelectMultipleFieldsDisplay,
8
+ tags: ['autodocs'],
9
+ parameters: {
10
+ componentSubtitle: `import { AutoCompleteFilterMultipleSelectMultipleFieldsDisplay } from 'react-restyle-components'`,
11
+ },
12
+ };
13
+ exports.default = meta;
14
+ exports.Primary = {
15
+ args: {
16
+ data: {
17
+ list: [
18
+ {
19
+ _id: '66532a99bbfed4eea86eae23',
20
+ code: 82,
21
+ description: 'TEST1',
22
+ libraryCode: 'ABCD',
23
+ },
24
+ {
25
+ _id: '6652b6d8bcef7f713cb547d4',
26
+ code: 81,
27
+ description: 'TEST New',
28
+ libraryCode: 'TEST',
29
+ },
30
+ ],
31
+ selected: [
32
+ {
33
+ _id: '66532a99bbfed4eea86eae23',
34
+ code: 82,
35
+ description: 'TEST1',
36
+ libraryCode: 'ABCD',
37
+ },
38
+ ],
39
+ displayKey: ['libraryCode', 'description'],
40
+ },
41
+ onUpdate: (item) => {
42
+ console.log({ item });
43
+ },
44
+ onSelect: (item) => {
45
+ console.log({ item });
46
+ },
47
+ },
48
+ };
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import '../../../tc.css';
3
+ interface AutoCompleteFilterSingleSelectMultiFieldsDisplayProps {
4
+ loader?: boolean;
5
+ disable?: boolean;
6
+ displayValue?: string;
7
+ placeholder?: string;
8
+ data: any;
9
+ hasError?: boolean;
10
+ className?: string;
11
+ posstion?: 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, onFilter, onSelect, onBlur, }: AutoCompleteFilterSingleSelectMultiFieldsDisplayProps) => React.JSX.Element;
17
+ export {};
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.AutoCompleteFilterSingleSelectMultiFieldsDisplay = void 0;
27
+ /* eslint-disable */
28
+ const react_1 = __importStar(require("react"));
29
+ const __1 = require("../..");
30
+ require("../../../tc.css");
31
+ const AutoCompleteFilterSingleSelectMultiFieldsDisplay = ({ disable = false, loader = false, displayValue = '', placeholder = 'Search...', data, hasError = false, className, posstion = 'absolute', onFilter, onSelect, onBlur, }) => {
32
+ const [value, setValue] = (0, react_1.useState)(displayValue);
33
+ const [options, setOptions] = (0, react_1.useState)(data.list);
34
+ const [isListOpen, setIsListOpen] = (0, react_1.useState)(false);
35
+ const [filterValue, setFilterValue] = (0, react_1.useState)();
36
+ const useOutsideAlerter = (ref) => {
37
+ (0, react_1.useEffect)(() => {
38
+ function handleClickOutside(event) {
39
+ if (ref.current && !ref.current.contains(event.target) && isListOpen) {
40
+ setIsListOpen(false);
41
+ //setValue('');
42
+ }
43
+ }
44
+ document.addEventListener('mousedown', handleClickOutside);
45
+ return () => {
46
+ document.removeEventListener('mousedown', handleClickOutside);
47
+ };
48
+ }, [ref, isListOpen]);
49
+ };
50
+ const wrapperRef = (0, react_1.useRef)(null);
51
+ useOutsideAlerter(wrapperRef);
52
+ (0, react_1.useEffect)(() => {
53
+ setOptions(data.list);
54
+ }, [data]);
55
+ (0, react_1.useEffect)(() => {
56
+ setValue(displayValue);
57
+ }, [displayValue]);
58
+ const onChange = (e) => {
59
+ const search = e.target.value?.toUpperCase();
60
+ setValue(search);
61
+ setFilterValue(search);
62
+ onFilter && onFilter(search);
63
+ };
64
+ const onKeyUp = (e) => {
65
+ const charCode = e.which ? e.which : e.keyCode;
66
+ if (charCode === 8) {
67
+ const search = e.target.value;
68
+ onFilter && onFilter(search);
69
+ }
70
+ };
71
+ const onKeyDown = (e) => {
72
+ if (e.key === 'Enter' || e.key === 'Tab') {
73
+ if (options.length > 0) {
74
+ const selectedItem = options.find((item) => item.labId === Number(value));
75
+ if (selectedItem) {
76
+ setValue(data.displayKey.map((key) => `${selectedItem[key]}`).join(' - '));
77
+ setIsListOpen(false);
78
+ onSelect && onSelect(selectedItem);
79
+ }
80
+ }
81
+ }
82
+ };
83
+ return (react_1.default.createElement(react_1.default.Fragment, null,
84
+ react_1.default.createElement("div", { ref: wrapperRef, className: "w-full relative" },
85
+ react_1.default.createElement("div", { className: `flex items-center leading-4 p-2 focus:outline-none focus:ring w-full shadow-sm sm:text-base border-2 ${hasError ? 'border-red' : 'border-gray-300'} rounded-md dark:text-black` },
86
+ react_1.default.createElement("input", { placeholder: placeholder, value: value, className: `${className} w-full focus:outline-none bg-none dark:text-black`, onKeyUp: onKeyUp, onChange: onChange, onClick: () => setIsListOpen(true), disabled: disable, onMouseDown: () => setValue(''), onBlur: (e) => onBlur && onBlur(e), onKeyDown: onKeyDown }),
87
+ isListOpen ? (react_1.default.createElement(__1.Icon, { nameIcon: "FaChevronUp", propsIcon: {
88
+ color: '#000000',
89
+ size: 22,
90
+ } })) : (react_1.default.createElement(__1.Icon, { nameIcon: "FaChevronDown", propsIcon: {
91
+ color: '#000000',
92
+ size: 22,
93
+ } }))),
94
+ options && isListOpen
95
+ ? options.length > 0 && (react_1.default.createElement("div", { className: `mt-1 absolute w-full bg-gray-100 p-2 rounded-sm `, style: {
96
+ zIndex: 500,
97
+ } },
98
+ react_1.default.createElement("ul", null, options?.map((item, index) => (react_1.default.createElement("li", { key: index, className: "text-gray-400 flex items-center", onClick: () => {
99
+ setValue(data.displayKey
100
+ .map((key) => `${item[key]}`)
101
+ .join(' - '));
102
+ setIsListOpen(false);
103
+ onSelect && onSelect(item);
104
+ } },
105
+ ' ',
106
+ react_1.default.createElement("label", { className: "ml-2 mt-1 text-black", style: {
107
+ textOverflow: 'ellipsis',
108
+ minWidth: 0,
109
+ overflow: 'hidden',
110
+ maxWidth: '334px',
111
+ whiteSpace: 'nowrap',
112
+ }, title: data.displayKey
113
+ .map((key) => item[key])
114
+ .join(' - ') }, data.displayKey
115
+ .map((key) => `${item[key]}
116
+ `)
117
+ .join(' - '))))))))
118
+ : null)));
119
+ };
120
+ exports.AutoCompleteFilterSingleSelectMultiFieldsDisplay = AutoCompleteFilterSingleSelectMultiFieldsDisplay;
@@ -0,0 +1,6 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { AutoCompleteFilterSingleSelectMultiFieldsDisplay } from './auto-complete-filter-single-select-multiple-fields-display.component';
3
+ declare const meta: Meta<typeof AutoCompleteFilterSingleSelectMultiFieldsDisplay>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof AutoCompleteFilterSingleSelectMultiFieldsDisplay>;
6
+ export declare const Primary: Story;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Primary = void 0;
4
+ const auto_complete_filter_single_select_multiple_fields_display_component_1 = require("./auto-complete-filter-single-select-multiple-fields-display.component");
5
+ const meta = {
6
+ title: 'Design System/Molecules/AutoCompleteFilterSingleSelectMultiFieldsDisplay',
7
+ component: auto_complete_filter_single_select_multiple_fields_display_component_1.AutoCompleteFilterSingleSelectMultiFieldsDisplay,
8
+ tags: ['autodocs'],
9
+ parameters: {
10
+ componentSubtitle: `import { AutoCompleteFilterSingleSelectMultiFieldsDisplay } from 'react-restyle-components'`,
11
+ // backgrounds: {
12
+ // default: 'light-gray',
13
+ // },
14
+ },
15
+ };
16
+ exports.default = meta;
17
+ exports.Primary = {
18
+ args: {
19
+ data: {
20
+ list: [
21
+ { code: 'Code1', name: 'Value1' },
22
+ { code: 'Code2', name: 'Value2' },
23
+ { code: 'Code3', name: 'Value3' },
24
+ ],
25
+ displayKey: ['name'],
26
+ },
27
+ onSelect: (item) => {
28
+ console.log({ item });
29
+ },
30
+ },
31
+ };
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import './autocomplete.css';
3
+ interface AutocompleteProps {
4
+ value: string;
5
+ onValueChange: (value: string) => void;
6
+ options?: string[];
7
+ }
8
+ export declare const Autocomplete: ({ value, onValueChange, options, }: AutocompleteProps) => React.JSX.Element;
9
+ export {};
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Autocomplete = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ require("./autocomplete.css");
29
+ const LI_ELEMENT_HEIGHT = 34;
30
+ const Autocomplete = ({ value = '', onValueChange, options = [], }) => {
31
+ const [activeOption, setActiveOption] = (0, react_1.useState)(value === '' || options.indexOf(value) === -1 ? 0 : options.indexOf(value));
32
+ const [filteredOptions, setFilteredOptions] = (0, react_1.useState)(options);
33
+ const [shouldShowList, setShouldShowList] = (0, react_1.useState)(false);
34
+ const [searchValue, setSearchValue] = (0, react_1.useState)(value);
35
+ const inputRef = (0, react_1.useRef)(null);
36
+ const listRef = (0, react_1.useRef)(null);
37
+ const onInputChange = (0, react_1.useCallback)((event) => {
38
+ const input = event.target.value;
39
+ if (input != '') {
40
+ const newFilteredOptions = options.filter((option) => option.toLowerCase().indexOf(input.toLowerCase()) > -1);
41
+ setFilteredOptions(newFilteredOptions);
42
+ }
43
+ else {
44
+ setFilteredOptions(options);
45
+ }
46
+ setActiveOption(0);
47
+ setShouldShowList(true);
48
+ setSearchValue(input);
49
+ }, [
50
+ setActiveOption,
51
+ setFilteredOptions,
52
+ setShouldShowList,
53
+ setSearchValue,
54
+ onValueChange,
55
+ ]);
56
+ const onOptionClick = (0, react_1.useCallback)((event) => {
57
+ const symbol = event.currentTarget.innerText || event.currentTarget.textContent || '';
58
+ setShouldShowList(false);
59
+ setActiveOption(0);
60
+ setFilteredOptions([]);
61
+ setSearchValue(symbol);
62
+ onValueChange(symbol);
63
+ }, [
64
+ setShouldShowList,
65
+ setActiveOption,
66
+ setFilteredOptions,
67
+ setSearchValue,
68
+ onValueChange,
69
+ ]);
70
+ const onKeyDown = (0, react_1.useCallback)((event) => {
71
+ let selectedItem = '';
72
+ if (event.keyCode === 38) {
73
+ // arrow up
74
+ event.preventDefault();
75
+ if (activeOption === 0) {
76
+ return;
77
+ }
78
+ else {
79
+ selectedItem = options[activeOption - 1];
80
+ setSearchValue(options[activeOption - 1]);
81
+ setActiveOption(activeOption - 1);
82
+ listRef.current?.scroll({
83
+ top: LI_ELEMENT_HEIGHT * (activeOption - 1),
84
+ });
85
+ }
86
+ }
87
+ else if (event.keyCode === 40) {
88
+ // arrow down
89
+ event.preventDefault();
90
+ if (activeOption === filteredOptions.length - 1) {
91
+ return;
92
+ }
93
+ else {
94
+ selectedItem = options[activeOption + 1];
95
+ setSearchValue(options[activeOption + 1]);
96
+ setActiveOption(activeOption + 1);
97
+ listRef.current?.scroll({
98
+ top: LI_ELEMENT_HEIGHT * (activeOption + 1),
99
+ });
100
+ }
101
+ }
102
+ if (Object.keys(selectedItem)?.length > 0) {
103
+ onValueChange(selectedItem);
104
+ }
105
+ }, [
106
+ setActiveOption,
107
+ setSearchValue,
108
+ filteredOptions,
109
+ activeOption,
110
+ onValueChange,
111
+ ]);
112
+ const renderList = () => {
113
+ if (!options.length) {
114
+ return react_1.default.createElement(react_1.default.Fragment, null);
115
+ }
116
+ if (shouldShowList) {
117
+ if (filteredOptions.length) {
118
+ return (react_1.default.createElement("ul", { role: "list", className: "autocomplete-list", id: "list", ref: listRef }, filteredOptions?.map((option, index) => {
119
+ let className = '';
120
+ if (index === activeOption) {
121
+ className = 'active-option';
122
+ }
123
+ return (react_1.default.createElement("li", { className: className, role: "listitem", key: index, onClick: onOptionClick }, option));
124
+ })));
125
+ }
126
+ else {
127
+ return react_1.default.createElement("div", { className: "no-options" }, "No match");
128
+ }
129
+ }
130
+ return react_1.default.createElement(react_1.default.Fragment, null);
131
+ };
132
+ (0, react_1.useEffect)(() => {
133
+ // this only works on click when inside timeout
134
+ setTimeout(() => {
135
+ inputRef.current?.select();
136
+ }, 0);
137
+ options[0] && onValueChange(options[0]);
138
+ setShouldShowList(true);
139
+ }, []);
140
+ return (react_1.default.createElement(react_1.default.Fragment, null,
141
+ react_1.default.createElement("input", { type: "text", role: "input", name: "autocomplete-input", onChange: onInputChange, onKeyDown: onKeyDown, value: searchValue, ref: inputRef }),
142
+ renderList()));
143
+ };
144
+ exports.Autocomplete = Autocomplete;
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_2 = require("@testing-library/react");
8
+ require("@testing-library/jest-dom");
9
+ const autocomplete_1 = require("./autocomplete");
10
+ const TEST_OPTIONS = ['ONE', 'TWO', 'THREE', 'FOUR', 'FIVE'];
11
+ test('Render Autocomplete', () => {
12
+ (0, react_2.render)(react_1.default.createElement(autocomplete_1.Autocomplete, { value: "", onValueChange: () => { }, options: TEST_OPTIONS }));
13
+ expect(react_2.screen.getByRole('input')).toBeInTheDocument();
14
+ expect(react_2.screen.getByRole('list')).toBeInTheDocument();
15
+ });
16
+ test('Autocomplete with empty list', () => {
17
+ (0, react_2.render)(react_1.default.createElement(autocomplete_1.Autocomplete, { value: "", onValueChange: () => { }, options: [] }));
18
+ expect(react_2.screen.getByRole('input')).toBeInTheDocument();
19
+ expect(react_2.screen.queryByRole('list')).not.toBeInTheDocument();
20
+ });
21
+ test('Autocomplete list arrow navigation', () => {
22
+ const onValueChange = jest.fn();
23
+ window.HTMLElement.prototype.scroll = function () { };
24
+ (0, react_2.render)(react_1.default.createElement(autocomplete_1.Autocomplete, { value: "", onValueChange: onValueChange, options: TEST_OPTIONS }));
25
+ expect(onValueChange).toHaveBeenCalledWith('ONE');
26
+ react_2.fireEvent.keyDown(react_2.screen.getByRole('input'), { keyCode: 40 }); //down
27
+ expect(onValueChange).toHaveBeenCalledWith('TWO');
28
+ expect(react_2.screen.getByText('TWO')).toHaveClass('active-option');
29
+ expect(react_2.screen.getByText('THREE')).toBeInTheDocument();
30
+ react_2.fireEvent.keyDown(react_2.screen.getByRole('input'), { keyCode: 40 }); //down
31
+ expect(onValueChange).toHaveBeenCalledWith('THREE');
32
+ expect(react_2.screen.getByText('THREE')).toHaveClass('active-option');
33
+ });
34
+ test('Autocomplete list option click', () => {
35
+ const onValueChange = jest.fn();
36
+ (0, react_2.render)(react_1.default.createElement(autocomplete_1.Autocomplete, { value: "", onValueChange: onValueChange, options: TEST_OPTIONS }));
37
+ react_2.fireEvent.click(react_2.screen.getByText('FOUR'));
38
+ expect(react_2.screen.getByRole('input')).toHaveValue('FOUR');
39
+ expect(onValueChange).toHaveBeenCalledWith('FOUR');
40
+ expect(react_2.screen.queryByRole('list')).not.toBeInTheDocument();
41
+ });
42
+ test('Autocomplete search', () => {
43
+ const onValueChange = jest.fn();
44
+ (0, react_2.render)(react_1.default.createElement(autocomplete_1.Autocomplete, { value: "", onValueChange: onValueChange, options: TEST_OPTIONS }));
45
+ react_2.fireEvent.change(react_2.screen.getByRole('input'), { target: { value: 'f' } });
46
+ for (let option of TEST_OPTIONS) {
47
+ if (option.toLowerCase().indexOf('f') > -1) {
48
+ expect(react_2.screen.getAllByRole('listitem')).toHaveLength(2);
49
+ expect(react_2.screen.queryByText(option)).toBeInTheDocument();
50
+ }
51
+ else {
52
+ expect(react_2.screen.queryByText(option)).not.toBeInTheDocument();
53
+ }
54
+ }
55
+ });
56
+ test('Autocomplete search default value', () => {
57
+ const onValueChange = jest.fn();
58
+ (0, react_2.render)(react_1.default.createElement(autocomplete_1.Autocomplete, { value: "TWO", onValueChange: onValueChange, options: TEST_OPTIONS }));
59
+ expect(react_2.screen.getByText('TWO')).toHaveClass('active-option');
60
+ });
61
+ test('Autocomplete search no result', () => {
62
+ const onValueChange = jest.fn();
63
+ (0, react_2.render)(react_1.default.createElement(autocomplete_1.Autocomplete, { value: "", onValueChange: onValueChange, options: TEST_OPTIONS }));
64
+ react_2.fireEvent.change(react_2.screen.getByRole('input'), { target: { value: 'hello' } });
65
+ expect(react_2.screen.queryByRole('list')).not.toBeInTheDocument();
66
+ expect(react_2.screen.getByText('No match')).toBeInTheDocument();
67
+ });
68
+ test('Autocomplete with value not in list', () => {
69
+ (0, react_2.render)(react_1.default.createElement(autocomplete_1.Autocomplete, { value: "xxx", onValueChange: () => { }, options: TEST_OPTIONS }));
70
+ expect(react_2.screen.getByRole('input')).toBeInTheDocument();
71
+ expect(react_2.screen.getByText('ONE')).toHaveClass('active-option');
72
+ });
@@ -0,0 +1,6 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { Autocomplete } from './autocomplete';
3
+ declare const meta: Meta<typeof Autocomplete>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Autocomplete>;
6
+ export declare const Primary: Story;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Primary = void 0;
4
+ const autocomplete_1 = require("./autocomplete");
5
+ const meta = {
6
+ title: 'Design System/Molecules/Autocomplete',
7
+ component: autocomplete_1.Autocomplete,
8
+ tags: ['autodocs'],
9
+ parameters: {
10
+ componentSubtitle: `import { Autocomplete } from 'react-restyle-components'`,
11
+ },
12
+ };
13
+ exports.default = meta;
14
+ exports.Primary = {
15
+ args: {
16
+ value: '',
17
+ onValueChange: () => { },
18
+ options: ['One', 'Two', 'Three', 'Four'],
19
+ },
20
+ };
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import '../../../tc.css';
3
+ interface CSSMultilineProps {
4
+ label?: string;
5
+ defaultValue?: string;
6
+ placeholder?: string;
7
+ className?: string;
8
+ style?: any;
9
+ onChange(item: any): void;
10
+ }
11
+ export declare const CSSMultiline: ({ label, defaultValue, className, style, placeholder, onChange, }: CSSMultilineProps) => React.JSX.Element;
12
+ export {};