@skbkontur/react-ui 4.0.6 → 4.1.2

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 (573) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.js +8 -4
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +1 -5
  6. package/cjs/components/Button/Button.js +4 -12
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Checkbox/Checkbox.d.ts +5 -0
  9. package/cjs/components/Checkbox/Checkbox.js +29 -1
  10. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  11. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -0
  12. package/cjs/components/Checkbox/Checkbox.styles.js +27 -24
  13. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  14. package/cjs/components/CurrencyInput/CurrencyHelper.js +18 -12
  15. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  16. package/cjs/components/CurrencyInput/CurrencyInput.js +15 -7
  17. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  18. package/cjs/components/CurrencyInput/CurrencyInputHelper.js +7 -5
  19. package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  20. package/cjs/components/CurrencyInput/CursorHelper.js +19 -16
  21. package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
  22. package/cjs/components/DateInput/DateInput.js +5 -1
  23. package/cjs/components/DateInput/DateInput.js.map +1 -1
  24. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  25. package/cjs/components/DateInput/helpers/InternalDateMediator.js +12 -2
  26. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  27. package/cjs/components/DateInput/helpers/inputNumber.d.ts +1 -1
  28. package/cjs/components/DateInput/helpers/inputNumber.js +45 -12
  29. package/cjs/components/DateInput/helpers/inputNumber.js.map +1 -1
  30. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  31. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -16
  32. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  33. package/cjs/components/FileUploader/FileUploader.js +8 -5
  34. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  35. package/cjs/components/FileUploader/FileUploader.styles.d.ts +3 -2
  36. package/cjs/components/FileUploader/FileUploader.styles.js +21 -15
  37. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  38. package/cjs/components/Gapped/Gapped.js +4 -3
  39. package/cjs/components/Gapped/Gapped.js.map +1 -1
  40. package/cjs/components/GlobalLoader/GlobalLoader.js +3 -5
  41. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  42. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js +5 -7
  43. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -1
  44. package/cjs/components/Group/Group.js +74 -31
  45. package/cjs/components/Group/Group.js.map +1 -1
  46. package/cjs/components/Input/Input.d.ts +1 -5
  47. package/cjs/components/Input/Input.js +14 -21
  48. package/cjs/components/Input/Input.js.map +1 -1
  49. package/cjs/components/Kebab/Kebab.d.ts +2 -13
  50. package/cjs/components/Kebab/Kebab.js +5 -29
  51. package/cjs/components/Kebab/Kebab.js.map +1 -1
  52. package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
  53. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  54. package/cjs/components/Modal/Modal.js +2 -1
  55. package/cjs/components/Modal/Modal.js.map +1 -1
  56. package/cjs/components/Modal/Modal.styles.js +10 -6
  57. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  58. package/cjs/components/Modal/ModalFooter.js +1 -1
  59. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  60. package/cjs/components/Modal/ModalHeader.js +1 -1
  61. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  62. package/cjs/components/Paging/Paging.d.ts +13 -3
  63. package/cjs/components/Paging/Paging.js +15 -4
  64. package/cjs/components/Paging/Paging.js.map +1 -1
  65. package/cjs/components/Paging/PagingDefaultComponent.d.ts +9 -0
  66. package/cjs/components/Paging/PagingDefaultComponent.js +21 -0
  67. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -0
  68. package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -0
  69. package/cjs/components/PasswordInput/PasswordInput.js +23 -6
  70. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  71. package/cjs/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  72. package/cjs/components/PasswordInput/PasswordInputIcon.js +15 -0
  73. package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -0
  74. package/cjs/components/Radio/Radio.styles.js +4 -7
  75. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  76. package/cjs/components/RadioGroup/RadioGroup.js +1 -1
  77. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  78. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +7 -2
  79. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  80. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +3 -4
  81. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  82. package/cjs/components/Select/Select.js +33 -15
  83. package/cjs/components/Select/Select.js.map +1 -1
  84. package/cjs/components/SidePage/SidePage.js +2 -1
  85. package/cjs/components/SidePage/SidePage.js.map +1 -1
  86. package/cjs/components/Spinner/Spinner.d.ts +0 -1
  87. package/cjs/components/Spinner/Spinner.js +1 -5
  88. package/cjs/components/Spinner/Spinner.js.map +1 -1
  89. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +16 -5
  90. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  91. package/cjs/components/Switcher/Switcher.styles.js +2 -2
  92. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  93. package/cjs/components/Textarea/Textarea.d.ts +2 -2
  94. package/cjs/components/Textarea/Textarea.js +6 -6
  95. package/cjs/components/Textarea/Textarea.js.map +1 -1
  96. package/cjs/components/Textarea/TextareaCounter.d.ts +1 -2
  97. package/cjs/components/Textarea/TextareaCounter.js +15 -6
  98. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  99. package/cjs/components/Toast/ToastView.js +1 -1
  100. package/cjs/components/Toast/ToastView.js.map +1 -1
  101. package/cjs/components/Toast/ToastView.styles.d.ts +1 -1
  102. package/cjs/components/Toast/ToastView.styles.js +3 -2
  103. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  104. package/cjs/components/Toggle/Toggle.d.ts +1 -1
  105. package/cjs/components/Toggle/Toggle.js.map +1 -1
  106. package/cjs/components/Toggle/Toggle.styles.js +12 -10
  107. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  108. package/cjs/components/Token/Token.js +14 -2
  109. package/cjs/components/Token/Token.js.map +1 -1
  110. package/cjs/components/Token/Token.styles.js +13 -6
  111. package/cjs/components/Token/Token.styles.js.map +1 -1
  112. package/cjs/components/TokenInput/TokenInput.d.ts +10 -0
  113. package/cjs/components/TokenInput/TokenInput.js +30 -12
  114. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  115. package/cjs/components/TokenInput/TokenInput.styles.js +3 -2
  116. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  117. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  118. package/cjs/components/Tooltip/Tooltip.js +5 -2
  119. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  120. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  121. package/cjs/components/TooltipMenu/TooltipMenu.js +2 -0
  122. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  123. package/cjs/hooks/useDrop.js +3 -1
  124. package/cjs/hooks/useDrop.js.map +1 -1
  125. package/cjs/index.d.ts +2 -0
  126. package/cjs/index.js +2 -0
  127. package/cjs/index.js.map +1 -1
  128. package/cjs/internal/Calendar/Calendar.js +3 -3
  129. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  130. package/cjs/internal/Calendar/CalendarDateShape.d.ts +1 -1
  131. package/cjs/internal/Calendar/MonthViewModel.js +36 -17
  132. package/cjs/internal/Calendar/MonthViewModel.js.map +1 -1
  133. package/cjs/internal/CommonWrapper/CommonWrapper.js +3 -3
  134. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  135. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +6 -1
  136. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  137. package/cjs/internal/CustomComboBox/CustomComboBox.js +3 -2
  138. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  139. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  140. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +35 -35
  141. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  142. package/cjs/internal/DateSelect/DateSelect.js +22 -11
  143. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  144. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +3 -1
  145. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  146. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +14 -10
  147. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  148. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -1
  149. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  150. package/cjs/internal/InternalMenu/InternalMenu.js +5 -12
  151. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  152. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -2
  153. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  154. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  155. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +16 -0
  156. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  157. package/cjs/internal/MaskedInput/MaskedInput.js +9 -2
  158. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  159. package/cjs/internal/Menu/Menu.js +14 -18
  160. package/cjs/internal/Menu/Menu.js.map +1 -1
  161. package/cjs/internal/Menu/Menu.styles.js +5 -3
  162. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  163. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  164. package/cjs/internal/Popup/Popup.d.ts +1 -0
  165. package/cjs/internal/Popup/Popup.js +8 -9
  166. package/cjs/internal/Popup/Popup.js.map +1 -1
  167. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -0
  168. package/cjs/internal/PopupMenu/PopupMenu.js +13 -0
  169. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  170. package/cjs/internal/PopupMenu/validatePositions.js +6 -6
  171. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  172. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  173. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  174. package/cjs/internal/RenderContainer/RenderInnerContainer.js +9 -1
  175. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  176. package/cjs/internal/RenderLayer/RenderLayer.js +4 -1
  177. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  178. package/cjs/internal/ThemePlayground/Playground.js +11 -19
  179. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  180. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  181. package/cjs/internal/ThemePlayground/SizesGroup.js +20 -0
  182. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -0
  183. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  184. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -2
  185. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  186. package/cjs/internal/ThemePlayground/ThemeEditor.js +6 -1
  187. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  188. package/cjs/internal/ThemePlayground/VariableValue.js +18 -6
  189. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  190. package/cjs/internal/ThemePlayground/constants.d.ts +3 -1
  191. package/cjs/internal/ThemePlayground/constants.js +3 -1
  192. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  193. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +4 -7
  194. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  195. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  196. package/cjs/internal/ThemeShowcase/VariablesCollector.js +5 -6
  197. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  198. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  199. package/cjs/internal/ZIndex/ZIndexStorage.js +13 -6
  200. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  201. package/cjs/internal/icons/16px/index.d.ts +19 -19
  202. package/cjs/internal/icons/16px/index.js +45 -38
  203. package/cjs/internal/icons/16px/index.js.map +1 -1
  204. package/cjs/internal/icons/20px/svg.js +6 -0
  205. package/cjs/internal/icons/20px/svg.js.map +1 -1
  206. package/cjs/internal/themes/DefaultTheme.d.ts +20 -1
  207. package/cjs/internal/themes/DefaultTheme.js +40 -5
  208. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  209. package/cjs/internal/themes/NotFlat.d.ts +6 -0
  210. package/cjs/internal/themes/NotFlat.js +12 -2
  211. package/cjs/internal/themes/NotFlat.js.map +1 -1
  212. package/cjs/internal/themes/Theme2022.d.ts +66 -0
  213. package/cjs/internal/themes/Theme2022.js +100 -0
  214. package/cjs/internal/themes/Theme2022.js.map +1 -0
  215. package/cjs/internal/themes/Theme2022Dark.d.ts +5 -0
  216. package/cjs/internal/themes/Theme2022Dark.js +9 -0
  217. package/cjs/internal/themes/Theme2022Dark.js.map +1 -0
  218. package/cjs/lib/animation/index.d.ts +1 -1
  219. package/cjs/lib/animation/index.js +3 -3
  220. package/cjs/lib/animation/index.js.map +1 -1
  221. package/cjs/lib/date/InternalDate.js +23 -9
  222. package/cjs/lib/date/InternalDate.js.map +1 -1
  223. package/cjs/lib/date/InternalDateCalculator.js +16 -2
  224. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  225. package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
  226. package/cjs/lib/date/InternalDateGetter.js +27 -7
  227. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  228. package/cjs/lib/date/InternalDateTransformer.js +11 -2
  229. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  230. package/cjs/lib/date/InternalDateValidator.js +52 -17
  231. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  232. package/cjs/lib/date/types.d.ts +4 -0
  233. package/cjs/lib/date/types.js.map +1 -1
  234. package/cjs/lib/events/MouseDrag.js +5 -1
  235. package/cjs/lib/events/MouseDrag.js.map +1 -1
  236. package/cjs/lib/events/keyboard/extractCode.js +7 -5
  237. package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
  238. package/cjs/lib/needsPolyfillPlaceholder.d.ts +6 -0
  239. package/cjs/lib/needsPolyfillPlaceholder.js +19 -0
  240. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -0
  241. package/cjs/lib/rootNode/getRootNode.d.ts +9 -0
  242. package/cjs/lib/rootNode/getRootNode.js +37 -8
  243. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  244. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  245. package/cjs/lib/rootNode/rootNodeDecorator.js +11 -2
  246. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  247. package/cjs/lib/stringUtils.js +3 -1
  248. package/cjs/lib/stringUtils.js.map +1 -1
  249. package/cjs/lib/styles/ColorFactory.js +9 -9
  250. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  251. package/cjs/lib/styles/ColorHelpers.d.ts +1 -0
  252. package/cjs/lib/styles/ColorHelpers.js +33 -10
  253. package/cjs/lib/styles/ColorHelpers.js.map +1 -1
  254. package/cjs/lib/styles/ColorObject.js +3 -2
  255. package/cjs/lib/styles/ColorObject.js.map +1 -1
  256. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  257. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +9 -0
  258. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  259. package/cjs/lib/taskWithDelayAndMinimalDuration.js +3 -1
  260. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  261. package/cjs/lib/theming/Emotion.js +5 -2
  262. package/cjs/lib/theming/Emotion.js.map +1 -1
  263. package/cjs/lib/theming/ThemeFactory.js +5 -1
  264. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  265. package/cjs/lib/theming/ThemeHelpers.js +7 -2
  266. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  267. package/cjs/lib/theming/themes/Theme2022.d.ts +1 -0
  268. package/cjs/lib/theming/themes/Theme2022.js +6 -0
  269. package/cjs/lib/theming/themes/Theme2022.js.map +1 -0
  270. package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  271. package/cjs/lib/theming/themes/Theme2022Dark.js +9 -0
  272. package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -0
  273. package/cjs/lib/utils.d.ts +15 -0
  274. package/cjs/lib/utils.js +45 -9
  275. package/cjs/lib/utils.js.map +1 -1
  276. package/components/Autocomplete/Autocomplete/Autocomplete.js +6 -5
  277. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  278. package/components/Button/Button/Button.js +4 -10
  279. package/components/Button/Button/Button.js.map +1 -1
  280. package/components/Button/Button.d.ts +1 -5
  281. package/components/Checkbox/Checkbox/Checkbox.js +29 -2
  282. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  283. package/components/Checkbox/Checkbox.d.ts +5 -0
  284. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +22 -18
  285. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  286. package/components/Checkbox/Checkbox.styles.d.ts +1 -0
  287. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +12 -11
  288. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  289. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +15 -7
  290. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  291. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js +7 -1
  292. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
  293. package/components/CurrencyInput/CursorHelper/CursorHelper.js +18 -11
  294. package/components/CurrencyInput/CursorHelper/CursorHelper.js.map +1 -1
  295. package/components/DateInput/DateInput/DateInput.js +9 -1
  296. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  297. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +16 -10
  298. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  299. package/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  300. package/components/DateInput/helpers/inputNumber/inputNumber.js +53 -16
  301. package/components/DateInput/helpers/inputNumber/inputNumber.js.map +1 -1
  302. package/components/DateInput/helpers/inputNumber.d.ts +1 -1
  303. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -16
  304. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  305. package/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  306. package/components/FileUploader/FileUploader/FileUploader.js +9 -7
  307. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  308. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +15 -12
  309. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  310. package/components/FileUploader/FileUploader.styles.d.ts +3 -2
  311. package/components/Gapped/Gapped/Gapped.js +4 -3
  312. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  313. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +5 -7
  314. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  315. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js +1 -2
  316. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js.map +1 -1
  317. package/components/Group/Group/Group.js +62 -30
  318. package/components/Group/Group/Group.js.map +1 -1
  319. package/components/Input/Input/Input.js +7 -25
  320. package/components/Input/Input/Input.js.map +1 -1
  321. package/components/Input/Input.d.ts +1 -5
  322. package/components/Kebab/Kebab/Kebab.js +3 -13
  323. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  324. package/components/Kebab/Kebab.d.ts +2 -13
  325. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
  326. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  327. package/components/Modal/Modal/Modal.js +2 -1
  328. package/components/Modal/Modal/Modal.js.map +1 -1
  329. package/components/Modal/Modal.styles/Modal.styles.js +4 -4
  330. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  331. package/components/Modal/ModalFooter/ModalFooter.js +1 -1
  332. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  333. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  334. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  335. package/components/Paging/Paging/Paging.js +13 -14
  336. package/components/Paging/Paging/Paging.js.map +1 -1
  337. package/components/Paging/Paging.d.ts +13 -3
  338. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js +19 -0
  339. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -0
  340. package/components/Paging/PagingDefaultComponent/package.json +6 -0
  341. package/components/Paging/PagingDefaultComponent.d.ts +9 -0
  342. package/components/PasswordInput/PasswordInput/PasswordInput.js +27 -8
  343. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  344. package/components/PasswordInput/PasswordInput.d.ts +2 -0
  345. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js +15 -0
  346. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js.map +1 -0
  347. package/components/PasswordInput/PasswordInputIcon/package.json +6 -0
  348. package/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  349. package/components/Radio/Radio.styles/Radio.styles.js +2 -1
  350. package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
  351. package/components/RadioGroup/RadioGroup/RadioGroup.js +2 -2
  352. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  353. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -0
  354. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  355. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -3
  356. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  357. package/components/Select/Select/Select.js +31 -15
  358. package/components/Select/Select/Select.js.map +1 -1
  359. package/components/SidePage/SidePage/SidePage.js +2 -1
  360. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  361. package/components/Spinner/Spinner/Spinner.js +6 -2
  362. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  363. package/components/Spinner/Spinner.d.ts +0 -1
  364. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +18 -4
  365. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  366. package/components/Switcher/Switcher.styles/Switcher.styles.js +1 -1
  367. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  368. package/components/Textarea/Textarea/Textarea.js +6 -6
  369. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  370. package/components/Textarea/Textarea.d.ts +2 -2
  371. package/components/Textarea/TextareaCounter/TextareaCounter.js +11 -2
  372. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  373. package/components/Textarea/TextareaCounter.d.ts +1 -2
  374. package/components/Toast/ToastView/ToastView.js +1 -1
  375. package/components/Toast/ToastView/ToastView.js.map +1 -1
  376. package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
  377. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  378. package/components/Toast/ToastView.styles.d.ts +1 -1
  379. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  380. package/components/Toggle/Toggle.d.ts +1 -1
  381. package/components/Toggle/Toggle.styles/Toggle.styles.js +3 -4
  382. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  383. package/components/Token/Token/Token.js +12 -1
  384. package/components/Token/Token/Token.js.map +1 -1
  385. package/components/Token/Token.styles/Token.styles.js +11 -4
  386. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  387. package/components/TokenInput/TokenInput/TokenInput.js +25 -16
  388. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  389. package/components/TokenInput/TokenInput.d.ts +10 -0
  390. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  391. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  392. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  393. package/components/Tooltip/Tooltip/Tooltip.js +5 -2
  394. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  395. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +2 -0
  396. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  397. package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  398. package/hooks/useDrop/useDrop.js +5 -1
  399. package/hooks/useDrop/useDrop.js.map +1 -1
  400. package/index.d.ts +2 -0
  401. package/index.js +2 -0
  402. package/index.js.map +1 -1
  403. package/internal/Calendar/Calendar/Calendar.js +6 -4
  404. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  405. package/internal/Calendar/CalendarDateShape.d.ts +1 -1
  406. package/internal/Calendar/MonthViewModel/MonthViewModel.js +35 -18
  407. package/internal/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  408. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -3
  409. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  410. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +23 -15
  411. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  412. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +18 -17
  413. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  414. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +35 -35
  415. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  416. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  417. package/internal/DateSelect/DateSelect/DateSelect.js +21 -15
  418. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  419. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +5 -1
  420. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  421. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -0
  422. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  423. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  424. package/internal/InputLikeText/InputLikeText.d.ts +1 -1
  425. package/internal/InternalMenu/InternalMenu/InternalMenu.js +14 -21
  426. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  427. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  428. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  429. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js +14 -0
  430. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  431. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/package.json +6 -0
  432. package/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  433. package/internal/MaskedInput/MaskedInput/MaskedInput.js +10 -3
  434. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  435. package/internal/Menu/Menu/Menu.js +11 -19
  436. package/internal/Menu/Menu/Menu.js.map +1 -1
  437. package/internal/Menu/Menu.styles/Menu.styles.js +1 -1
  438. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  439. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  440. package/internal/Popup/Popup/Popup.js +8 -7
  441. package/internal/Popup/Popup/Popup.js.map +1 -1
  442. package/internal/Popup/Popup.d.ts +1 -0
  443. package/internal/PopupMenu/PopupMenu/PopupMenu.js +8 -0
  444. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  445. package/internal/PopupMenu/PopupMenu.d.ts +4 -0
  446. package/internal/PopupMenu/validatePositions/validatePositions.js +6 -6
  447. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  448. package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  449. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -2
  450. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  451. package/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  452. package/internal/RenderLayer/RenderLayer/RenderLayer.js +5 -1
  453. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  454. package/internal/ThemePlayground/Playground/Playground.js +15 -29
  455. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  456. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +29 -0
  457. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -0
  458. package/internal/ThemePlayground/SizesGroup/package.json +6 -0
  459. package/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  460. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +14 -2
  461. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  462. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  463. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +5 -1
  464. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  465. package/internal/ThemePlayground/VariableValue/VariableValue.js +16 -5
  466. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  467. package/internal/ThemePlayground/constants/constants.js +2 -0
  468. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  469. package/internal/ThemePlayground/constants.d.ts +3 -1
  470. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +3 -6
  471. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  472. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +4 -6
  473. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  474. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  475. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +12 -6
  476. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  477. package/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  478. package/internal/icons/16px/index/index.js +28 -20
  479. package/internal/icons/16px/index/index.js.map +1 -1
  480. package/internal/icons/16px/index.d.ts +19 -19
  481. package/internal/icons/20px/svg/svg.js +5 -0
  482. package/internal/icons/20px/svg/svg.js.map +1 -1
  483. package/internal/themes/DefaultTheme/DefaultTheme.js +48 -4
  484. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  485. package/internal/themes/DefaultTheme.d.ts +20 -1
  486. package/internal/themes/NotFlat/NotFlat.js +15 -0
  487. package/internal/themes/NotFlat/NotFlat.js.map +1 -1
  488. package/internal/themes/NotFlat.d.ts +6 -0
  489. package/internal/themes/Theme2022/Theme2022.js +78 -0
  490. package/internal/themes/Theme2022/Theme2022.js.map +1 -0
  491. package/internal/themes/Theme2022/package.json +6 -0
  492. package/internal/themes/Theme2022.d.ts +66 -0
  493. package/internal/themes/Theme2022Dark/Theme2022Dark.js +17 -0
  494. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  495. package/internal/themes/Theme2022Dark/package.json +6 -0
  496. package/internal/themes/Theme2022Dark.d.ts +5 -0
  497. package/lib/animation/index/index.js +1 -1
  498. package/lib/animation/index/index.js.map +1 -1
  499. package/lib/animation/index.d.ts +1 -1
  500. package/lib/date/InternalDate/InternalDate.js +16 -1
  501. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  502. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +14 -2
  503. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  504. package/lib/date/InternalDateGetter/InternalDateGetter.js +23 -7
  505. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  506. package/lib/date/InternalDateGetter.d.ts +1 -1
  507. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +11 -1
  508. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  509. package/lib/date/InternalDateValidator/InternalDateValidator.js +75 -34
  510. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  511. package/lib/date/types/types.js.map +1 -1
  512. package/lib/date/types.d.ts +4 -0
  513. package/lib/events/MouseDrag/MouseDrag.js +5 -1
  514. package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
  515. package/lib/events/keyboard/extractCode/extractCode.js +5 -5
  516. package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
  517. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +21 -0
  518. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -0
  519. package/lib/needsPolyfillPlaceholder/package.json +6 -0
  520. package/lib/needsPolyfillPlaceholder.d.ts +6 -0
  521. package/lib/rootNode/getRootNode/getRootNode.js +36 -8
  522. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  523. package/lib/rootNode/getRootNode.d.ts +9 -0
  524. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +3 -1
  525. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  526. package/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  527. package/lib/stringUtils/stringUtils.js +4 -1
  528. package/lib/stringUtils/stringUtils.js.map +1 -1
  529. package/lib/styles/ColorFactory/ColorFactory.js +9 -9
  530. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  531. package/lib/styles/ColorHelpers/ColorHelpers.js +26 -9
  532. package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
  533. package/lib/styles/ColorHelpers.d.ts +1 -0
  534. package/lib/styles/ColorObject/ColorObject.js +2 -2
  535. package/lib/styles/ColorObject/ColorObject.js.map +1 -1
  536. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +9 -0
  537. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -0
  538. package/lib/styles/getLabGrotesqueBaselineCompensation/package.json +6 -0
  539. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  540. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +4 -1
  541. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  542. package/lib/theming/Emotion/Emotion.js +5 -2
  543. package/lib/theming/Emotion/Emotion.js.map +1 -1
  544. package/lib/theming/ThemeFactory/ThemeFactory.js +5 -2
  545. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  546. package/lib/theming/ThemeHelpers/ThemeHelpers.js +5 -1
  547. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  548. package/lib/theming/themes/Theme2022/Theme2022.js +4 -0
  549. package/lib/theming/themes/Theme2022/Theme2022.js.map +1 -0
  550. package/lib/theming/themes/Theme2022/package.json +6 -0
  551. package/lib/theming/themes/Theme2022.d.ts +1 -0
  552. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +5 -0
  553. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  554. package/lib/theming/themes/Theme2022Dark/package.json +6 -0
  555. package/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  556. package/lib/utils/utils.js +42 -6
  557. package/lib/utils/utils.js.map +1 -1
  558. package/lib/utils.d.ts +15 -0
  559. package/package.json +5 -3
  560. package/cjs/components/Button/Corners.d.ts +0 -6
  561. package/cjs/components/Button/Corners.js +0 -5
  562. package/cjs/components/Button/Corners.js.map +0 -1
  563. package/cjs/lib/polyfillPlaceholder.d.ts +0 -1
  564. package/cjs/lib/polyfillPlaceholder.js +0 -17
  565. package/cjs/lib/polyfillPlaceholder.js.map +0 -1
  566. package/components/Button/Corners/Corners.js +0 -6
  567. package/components/Button/Corners/Corners.js.map +0 -1
  568. package/components/Button/Corners/package.json +0 -6
  569. package/components/Button/Corners.d.ts +0 -6
  570. package/lib/polyfillPlaceholder/package.json +0 -6
  571. package/lib/polyfillPlaceholder/polyfillPlaceholder.js +0 -12
  572. package/lib/polyfillPlaceholder/polyfillPlaceholder.js.map +0 -1
  573. package/lib/polyfillPlaceholder.d.ts +0 -1
@@ -1,5 +1,6 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.ComboBoxMenu = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireWildcard(require("react"));
2
2
 
3
+ var _utils = require("../../lib/utils");
3
4
  var _decorators = require("../../lib/locale/decorators");
4
5
  var _Menu = require("../Menu");
5
6
  var _MenuItem = require("../../components/MenuItem");
@@ -125,6 +126,10 @@ ComboBoxMenu = (_dec = (0, _decorators.locale)('ComboBox', _locale.CustomComboBo
125
126
 
126
127
 
127
128
 
129
+
130
+
131
+
132
+
128
133
 
129
134
 
130
135
 
@@ -157,5 +162,5 @@ ComboBoxMenu = (_dec = (0, _decorators.locale)('ComboBox', _locale.CustomComboBo
157
162
  function (state) {return renderItem(item, state);}));
158
163
 
159
164
 
160
- };return _this;}var _proto = ComboBoxMenu.prototype;_proto.render = function render() {var _this$props2 = this.props,opened = _this$props2.opened,items = _this$props2.items,totalCount = _this$props2.totalCount,loading = _this$props2.loading,refMenu = _this$props2.refMenu,_this$props2$renderNo = _this$props2.renderNotFound,renderNotFound = _this$props2$renderNo === void 0 ? function () {return notFound;} : _this$props2$renderNo,renderTotalCount = _this$props2.renderTotalCount,maxMenuHeight = _this$props2.maxMenuHeight,requestStatus = _this$props2.requestStatus,isMobile = _this$props2.isMobile;var _this$locale = this.locale,notFound = _this$locale.notFound,errorNetworkButton = _this$locale.errorNetworkButton,errorNetworkMessage = _this$locale.errorNetworkMessage;if (!opened) {return null;}var renderAddButton = null;if (this.props.renderAddButton) {renderAddButton = this.props.renderAddButton();}var maxHeight = isMobile ? 'auto' : maxMenuHeight;if (loading && (!items || !items.length)) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { maxHeight: maxHeight, ref: refMenu, disableScrollContainer: isMobile, "data-tid": "ComboBoxMenu__loading" }, /*#__PURE__*/_react.default.createElement(_MenuItem.MenuItem, { disabled: true, isMobile: isMobile }, /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { type: "mini", dimmed: true })));}if (items === null && requestStatus === _CustomComboBoxTypes.ComboBoxRequestStatus.Failed) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { ref: refMenu, maxHeight: maxHeight, disableScrollContainer: isMobile, "data-tid": "ComboBoxMenu__failed" }, /*#__PURE__*/_react.default.createElement(_MenuItem.MenuItem, { disabled: true, key: "message", isMobile: isMobile }, /*#__PURE__*/_react.default.createElement("div", { style: { maxWidth: 300, whiteSpace: 'normal' } }, errorNetworkMessage)), /*#__PURE__*/_react.default.createElement(_MenuItem.MenuItem, { link: true, onClick: this.props.repeatRequest, key: "retry", isMobile: isMobile }, errorNetworkButton));}if ((items == null || items.length === 0) && renderNotFound) {var notFoundValue = renderNotFound();if (renderAddButton) return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { maxHeight: maxHeight, ref: refMenu, disableScrollContainer: isMobile }, renderAddButton);if (notFoundValue) return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { maxHeight: maxHeight, ref: refMenu, disableScrollContainer: isMobile }, /*#__PURE__*/_react.default.createElement(_MenuItem.MenuItem, { "data-tid": "ComboBoxMenu__notFound", disabled: true, isMobile: isMobile }, notFoundValue));return null;}var total = null;var renderedItems = items && items.map(this.renderItem); // @ts-ignore // todo fix checking
165
+ };return _this;}var _proto = ComboBoxMenu.prototype;_proto.render = function render() {var _this$props2 = this.props,opened = _this$props2.opened,items = _this$props2.items,totalCount = _this$props2.totalCount,loading = _this$props2.loading,refMenu = _this$props2.refMenu,_this$props2$renderNo = _this$props2.renderNotFound,renderNotFound = _this$props2$renderNo === void 0 ? function () {return notFound;} : _this$props2$renderNo,renderTotalCount = _this$props2.renderTotalCount,maxMenuHeight = _this$props2.maxMenuHeight,requestStatus = _this$props2.requestStatus,isMobile = _this$props2.isMobile;var _this$locale = this.locale,notFound = _this$locale.notFound,errorNetworkButton = _this$locale.errorNetworkButton,errorNetworkMessage = _this$locale.errorNetworkMessage;if (!opened) {return null;}var renderAddButton = null;if (this.props.renderAddButton) {renderAddButton = this.props.renderAddButton();}var maxHeight = isMobile ? 'auto' : maxMenuHeight;if (loading && (!items || !items.length)) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { maxHeight: maxHeight, ref: refMenu, disableScrollContainer: isMobile, "data-tid": "ComboBoxMenu__loading" }, /*#__PURE__*/_react.default.createElement(_MenuItem.MenuItem, { disabled: true, isMobile: isMobile }, /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { type: "mini", dimmed: true })));}if (items === null && requestStatus === _CustomComboBoxTypes.ComboBoxRequestStatus.Failed) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { ref: refMenu, maxHeight: maxHeight, disableScrollContainer: isMobile, "data-tid": "ComboBoxMenu__failed" }, /*#__PURE__*/_react.default.createElement(_MenuItem.MenuItem, { disabled: true, key: "message", isMobile: isMobile }, /*#__PURE__*/_react.default.createElement("div", { style: { maxWidth: 300, whiteSpace: 'normal' } }, errorNetworkMessage)), /*#__PURE__*/_react.default.createElement(_MenuItem.MenuItem, { link: true, onClick: this.props.repeatRequest, key: "retry", isMobile: isMobile }, errorNetworkButton));}if (((0, _utils.isNullable)(items) || items.length === 0) && renderNotFound) {var notFoundValue = renderNotFound();if (renderAddButton) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { maxHeight: maxHeight, ref: refMenu, disableScrollContainer: isMobile }, renderAddButton);}if (notFoundValue) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { maxHeight: maxHeight, ref: refMenu, disableScrollContainer: isMobile }, /*#__PURE__*/_react.default.createElement(_MenuItem.MenuItem, { "data-tid": "ComboBoxMenu__notFound", disabled: true, isMobile: isMobile }, notFoundValue));}return null;}var total = null;var renderedItems = items && items.map(this.renderItem); // @ts-ignore // todo fix checking
161
166
  var countItems = renderedItems == null ? void 0 : renderedItems.filter(function (item) {var _item$type;return (item == null ? void 0 : (_item$type = item.type) == null ? void 0 : _item$type.__KONTUR_REACT_UI__) === 'MenuItem';}).length;if (countItems && renderTotalCount && totalCount && countItems < totalCount) {total = /*#__PURE__*/_react.default.createElement(_MenuItem.MenuItem, { disabled: true, key: "total", isMobile: isMobile }, /*#__PURE__*/_react.default.createElement("div", { style: { fontSize: 12 } }, renderTotalCount(countItems, totalCount)));}return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { "data-tid": "ComboBoxMenu__items", ref: refMenu, maxHeight: maxHeight, disableScrollContainer: isMobile }, renderedItems, total, renderAddButton && [/*#__PURE__*/_react.default.createElement(_MenuSeparator.MenuSeparator, { key: "separator" }), renderAddButton]);};return ComboBoxMenu;}(_react.Component), _class2.__KONTUR_REACT_UI__ = 'ComboBoxMenu', _class2.defaultProps = { repeatRequest: function repeatRequest() {return undefined;}, requestStatus: _CustomComboBoxTypes.ComboBoxRequestStatus.Unknown }, _temp)) || _class);exports.ComboBoxMenu = ComboBoxMenu;
@@ -1 +1 @@
1
- {"version":3,"sources":["ComboBoxMenu.tsx"],"names":["ComboBoxMenu","CustomComboBoxLocaleHelper","renderItem","item","index","props","onValueChange","React","isValidElement","element","Object","assign","key","onClick","cloneElement","isMobile","state","render","opened","items","totalCount","loading","refMenu","renderNotFound","notFound","renderTotalCount","maxMenuHeight","requestStatus","locale","errorNetworkButton","errorNetworkMessage","renderAddButton","maxHeight","length","ComboBoxRequestStatus","Failed","maxWidth","whiteSpace","repeatRequest","notFoundValue","total","renderedItems","map","countItems","filter","type","__KONTUR_REACT_UI__","fontSize","Component","defaultProps","undefined","Unknown"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\n\nimport { locale } from '../../lib/locale/decorators';\nimport { Menu } from '../Menu';\nimport { MenuItem, MenuItemState } from '../../components/MenuItem';\nimport { Spinner } from '../../components/Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuSeparator } from '../../components/MenuSeparator';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { ComboBoxLocale, CustomComboBoxLocaleHelper } from './locale';\n\nexport interface ComboBoxMenuProps<T> {\n opened?: boolean;\n items?: Nullable<T[]>;\n totalCount?: number;\n loading?: boolean;\n maxMenuHeight?: number | string;\n refMenu?: (menu: Nullable<Menu>) => void;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state: MenuItemState) => React.ReactNode;\n onValueChange: (value: T) => any;\n renderAddButton?: () => React.ReactNode;\n caption?: React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n isMobile?: boolean;\n}\n\n@locale('ComboBox', CustomComboBoxLocaleHelper)\nexport class ComboBoxMenu<T> extends Component<ComboBoxMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxMenu';\n\n public static defaultProps = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private readonly locale!: ComboBoxLocale;\n\n public render() {\n const {\n opened,\n items,\n totalCount,\n loading,\n refMenu,\n renderNotFound = () => notFound,\n renderTotalCount,\n maxMenuHeight,\n requestStatus,\n isMobile,\n } = this.props;\n\n const { notFound, errorNetworkButton, errorNetworkMessage } = this.locale;\n\n if (!opened) {\n return null;\n }\n\n let renderAddButton = null;\n if (this.props.renderAddButton) {\n renderAddButton = this.props.renderAddButton();\n }\n\n const maxHeight = isMobile ? 'auto' : maxMenuHeight;\n\n if (loading && (!items || !items.length)) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile} data-tid=\"ComboBoxMenu__loading\">\n <MenuItem disabled isMobile={isMobile}>\n <Spinner type=\"mini\" dimmed />\n </MenuItem>\n </Menu>\n );\n }\n\n if (items === null && requestStatus === ComboBoxRequestStatus.Failed) {\n return (\n <Menu ref={refMenu} maxHeight={maxHeight} disableScrollContainer={isMobile} data-tid=\"ComboBoxMenu__failed\">\n <MenuItem disabled key=\"message\" isMobile={isMobile}>\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuItem>\n <MenuItem link onClick={this.props.repeatRequest} key=\"retry\" isMobile={isMobile}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if ((items == null || items.length === 0) && renderNotFound) {\n const notFoundValue = renderNotFound();\n if (renderAddButton)\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n {renderAddButton}\n </Menu>\n );\n if (notFoundValue)\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n <MenuItem data-tid=\"ComboBoxMenu__notFound\" disabled isMobile={isMobile}>\n {notFoundValue}\n </MenuItem>\n </Menu>\n );\n return null;\n }\n\n let total = null;\n const renderedItems = items && items.map(this.renderItem);\n // @ts-ignore // todo fix checking\n const countItems = renderedItems?.filter((item) => item?.type?.__KONTUR_REACT_UI__ === 'MenuItem').length;\n\n if (countItems && renderTotalCount && totalCount && countItems < totalCount) {\n total = (\n <MenuItem disabled key=\"total\" isMobile={isMobile}>\n <div style={{ fontSize: 12 }}>{renderTotalCount(countItems, totalCount)}</div>\n </MenuItem>\n );\n }\n\n return (\n <Menu data-tid=\"ComboBoxMenu__items\" ref={refMenu} maxHeight={maxHeight} disableScrollContainer={isMobile}>\n {renderedItems}\n {total}\n {renderAddButton && [<MenuSeparator key=\"separator\" />, renderAddButton]}\n </Menu>\n );\n }\n\n private renderItem = (item: T, index: number): React.ReactNode => {\n // NOTE this is undesireable feature, better\n // to remove it from further versions\n const { renderItem, onValueChange } = this.props;\n if (typeof item === 'function' || React.isValidElement(item)) {\n // @ts-ignore\n const element = typeof item === 'function' ? item() : item;\n const props = Object.assign(\n {\n key: index,\n onClick: () => onValueChange(element.props),\n },\n element.props,\n );\n return React.cloneElement(element, props);\n }\n\n return (\n <MenuItem\n data-tid=\"ComboBoxMenu__item\"\n onClick={() => onValueChange(item)}\n key={index}\n isMobile={this.props.isMobile}\n >\n {(state) => renderItem(item, state)}\n </MenuItem>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["ComboBoxMenu.tsx"],"names":["ComboBoxMenu","CustomComboBoxLocaleHelper","renderItem","item","index","props","onValueChange","React","isValidElement","element","Object","assign","key","onClick","cloneElement","isMobile","state","render","opened","items","totalCount","loading","refMenu","renderNotFound","notFound","renderTotalCount","maxMenuHeight","requestStatus","locale","errorNetworkButton","errorNetworkMessage","renderAddButton","maxHeight","length","ComboBoxRequestStatus","Failed","maxWidth","whiteSpace","repeatRequest","notFoundValue","total","renderedItems","map","countItems","filter","type","__KONTUR_REACT_UI__","fontSize","Component","defaultProps","undefined","Unknown"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\n\nimport { isNullable } from '../../lib/utils';\nimport { locale } from '../../lib/locale/decorators';\nimport { Menu } from '../Menu';\nimport { MenuItem, MenuItemState } from '../../components/MenuItem';\nimport { Spinner } from '../../components/Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuSeparator } from '../../components/MenuSeparator';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { ComboBoxLocale, CustomComboBoxLocaleHelper } from './locale';\n\nexport interface ComboBoxMenuProps<T> {\n opened?: boolean;\n items?: Nullable<T[]>;\n totalCount?: number;\n loading?: boolean;\n maxMenuHeight?: number | string;\n refMenu?: (menu: Nullable<Menu>) => void;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state: MenuItemState) => React.ReactNode;\n onValueChange: (value: T) => any;\n renderAddButton?: () => React.ReactNode;\n caption?: React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n isMobile?: boolean;\n}\n\n@locale('ComboBox', CustomComboBoxLocaleHelper)\nexport class ComboBoxMenu<T> extends Component<ComboBoxMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxMenu';\n\n public static defaultProps = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private readonly locale!: ComboBoxLocale;\n\n public render() {\n const {\n opened,\n items,\n totalCount,\n loading,\n refMenu,\n renderNotFound = () => notFound,\n renderTotalCount,\n maxMenuHeight,\n requestStatus,\n isMobile,\n } = this.props;\n\n const { notFound, errorNetworkButton, errorNetworkMessage } = this.locale;\n\n if (!opened) {\n return null;\n }\n\n let renderAddButton = null;\n if (this.props.renderAddButton) {\n renderAddButton = this.props.renderAddButton();\n }\n\n const maxHeight = isMobile ? 'auto' : maxMenuHeight;\n\n if (loading && (!items || !items.length)) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile} data-tid=\"ComboBoxMenu__loading\">\n <MenuItem disabled isMobile={isMobile}>\n <Spinner type=\"mini\" dimmed />\n </MenuItem>\n </Menu>\n );\n }\n\n if (items === null && requestStatus === ComboBoxRequestStatus.Failed) {\n return (\n <Menu ref={refMenu} maxHeight={maxHeight} disableScrollContainer={isMobile} data-tid=\"ComboBoxMenu__failed\">\n <MenuItem disabled key=\"message\" isMobile={isMobile}>\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuItem>\n <MenuItem link onClick={this.props.repeatRequest} key=\"retry\" isMobile={isMobile}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if ((isNullable(items) || items.length === 0) && renderNotFound) {\n const notFoundValue = renderNotFound();\n if (renderAddButton) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n {renderAddButton}\n </Menu>\n );\n }\n\n if (notFoundValue) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n <MenuItem data-tid=\"ComboBoxMenu__notFound\" disabled isMobile={isMobile}>\n {notFoundValue}\n </MenuItem>\n </Menu>\n );\n }\n\n return null;\n }\n\n let total = null;\n const renderedItems = items && items.map(this.renderItem);\n // @ts-ignore // todo fix checking\n const countItems = renderedItems?.filter((item) => item?.type?.__KONTUR_REACT_UI__ === 'MenuItem').length;\n\n if (countItems && renderTotalCount && totalCount && countItems < totalCount) {\n total = (\n <MenuItem disabled key=\"total\" isMobile={isMobile}>\n <div style={{ fontSize: 12 }}>{renderTotalCount(countItems, totalCount)}</div>\n </MenuItem>\n );\n }\n\n return (\n <Menu data-tid=\"ComboBoxMenu__items\" ref={refMenu} maxHeight={maxHeight} disableScrollContainer={isMobile}>\n {renderedItems}\n {total}\n {renderAddButton && [<MenuSeparator key=\"separator\" />, renderAddButton]}\n </Menu>\n );\n }\n\n private renderItem = (item: T, index: number): React.ReactNode => {\n // NOTE this is undesireable feature, better\n // to remove it from further versions\n const { renderItem, onValueChange } = this.props;\n if (typeof item === 'function' || React.isValidElement(item)) {\n // @ts-ignore\n const element = typeof item === 'function' ? item() : item;\n const props = Object.assign(\n {\n key: index,\n onClick: () => onValueChange(element.props),\n },\n element.props,\n );\n return React.cloneElement(element, props);\n }\n\n return (\n <MenuItem\n data-tid=\"ComboBoxMenu__item\"\n onClick={() => onValueChange(item)}\n key={index}\n isMobile={this.props.isMobile}\n >\n {(state) => renderItem(item, state)}\n </MenuItem>\n );\n };\n}\n"]}
@@ -315,6 +315,7 @@ CustomComboBox = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNod
315
315
 
316
316
 
317
317
 
318
+
318
319
 
319
320
 
320
321
  dispatch = function (action) {
@@ -347,7 +348,7 @@ CustomComboBox = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNod
347
348
  _this.dispatch({
348
349
  type: 'ValueChange',
349
350
  value: value,
350
- keepFocus: _this.isMobileLayout ? false : true });
351
+ keepFocus: !_this.isMobileLayout });
351
352
 
352
353
  };_this.
353
354
 
@@ -400,7 +401,7 @@ CustomComboBox = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNod
400
401
  }
401
402
  };return _this;}var _proto = CustomComboBox.prototype; /**
402
403
  * @public
403
- */_proto.search = /*#__PURE__*/function () {var _search = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(query) {var _this2 = this;var getItems, cancelPromise, expectingId, items;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:if (query === void 0) {query = this.state.textValue;}getItems = this.props.getItems;cancelPromise = new Promise(function (_, reject) {return _this2.cancelationToken = reject;});expectingId = this.requestId += 1;if (!this.loaderShowDelay) {this.loaderShowDelay = new Promise(function (resolve) {var cancelLoader = (0, _utils.taskWithDelay)(function () {_this2.dispatch({ type: 'RequestItems' });setTimeout(resolve, LOADER_SHOW_TIME);}, DELAY_BEFORE_SHOW_LOADER);cancelPromise.catch(function () {return cancelLoader();});_this2.cancelLoaderDelay = function () {cancelLoader();resolve();};});}_context.prev = 5;_context.next = 8;return Promise.race([getItems(query), cancelPromise]);case 8:items = _context.sent;if (!this.state.loading) {_context.next = 12;break;}_context.next = 12;return Promise.race([this.loaderShowDelay, cancelPromise]);case 12:if (expectingId === this.requestId) {this.dispatch({ type: 'ReceiveItems', items: items });}_context.next = 18;break;case 15:_context.prev = 15;_context.t0 = _context["catch"](5);if (_context.t0 && _context.t0.code === 'CancelationError') {this.dispatch({ type: 'CancelRequest' });} else if (expectingId === this.requestId) {this.dispatch({ type: 'RequestFailure', repeatRequest: function repeatRequest() {_this2.search(query);if (_this2.input) {_this2.input.focus();}} });}case 18:_context.prev = 18;if (expectingId === this.requestId) {if (!this.state.loading) {this.cancelLoaderDelay();}this.cancelationToken = null;this.loaderShowDelay = null;}return _context.finish(18);case 21:case "end":return _context.stop();}}}, _callee, this, [[5, 15, 18, 21]]);}));function search(_x) {return _search.apply(this, arguments);}return search;}() /**
404
+ */_proto.search = /*#__PURE__*/function () {var _search = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(query) {var _this2 = this;var getItems, cancelPromise, expectingId, items;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:if (query === void 0) {query = this.state.textValue;}getItems = this.props.getItems;cancelPromise = new Promise(function (_, reject) {return _this2.cancelationToken = reject;});this.requestId += 1;expectingId = this.requestId;if (!this.loaderShowDelay) {this.loaderShowDelay = new Promise(function (resolve) {var cancelLoader = (0, _utils.taskWithDelay)(function () {_this2.dispatch({ type: 'RequestItems' });setTimeout(resolve, LOADER_SHOW_TIME);}, DELAY_BEFORE_SHOW_LOADER);cancelPromise.catch(function () {return cancelLoader();});_this2.cancelLoaderDelay = function () {cancelLoader();resolve();};});}_context.prev = 6;_context.next = 9;return Promise.race([getItems(query), cancelPromise]);case 9:items = _context.sent;if (!this.state.loading) {_context.next = 13;break;}_context.next = 13;return Promise.race([this.loaderShowDelay, cancelPromise]);case 13:if (expectingId === this.requestId) {this.dispatch({ type: 'ReceiveItems', items: items });}_context.next = 19;break;case 16:_context.prev = 16;_context.t0 = _context["catch"](6);if (_context.t0 && _context.t0.code === 'CancelationError') {this.dispatch({ type: 'CancelRequest' });} else if (expectingId === this.requestId) {this.dispatch({ type: 'RequestFailure', repeatRequest: function repeatRequest() {_this2.search(query);if (_this2.input) {_this2.input.focus();}} });}case 19:_context.prev = 19;if (expectingId === this.requestId) {if (!this.state.loading) {this.cancelLoaderDelay();}this.cancelationToken = null;this.loaderShowDelay = null;}return _context.finish(19);case 22:case "end":return _context.stop();}}}, _callee, this, [[6, 16, 19, 22]]);}));function search(_x) {return _search.apply(this, arguments);}return search;}() /**
404
405
  * @public
405
406
  */;_proto.cancelSearch = function cancelSearch() {if (this.cancelationToken) {this.cancelationToken(new _utils.CancelationError());}} /**
406
407
  * @public
@@ -1 +1 @@
1
- {"version":3,"sources":["CustomComboBox.tsx"],"names":["DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","ComboBoxRequestStatus","Unknown","CustomComboBox","responsiveLayout","rootNode","state","requestId","cancelationToken","reducer","cancelLoaderDelay","focus","props","disabled","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","effects","nextState","setState","stateAndEffect","Array","forEach","handleEffect","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","handleClickOutside","e","close","setTimeout","handleInputBlur","handleInputClick","search","query","getItems","cancelPromise","Promise","_","reject","expectingId","loaderShowDelay","resolve","cancelLoader","catch","race","code","cancelSearch","CancelationError","open","render","viewProps","align","borderless","disablePortal","error","menuAlign","drawArrow","placeholder","size","totalCount","warning","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","onValueChange","onClickOutside","onFocus","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","reset","React","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Input, InputIconType } from '../../components/Input';\nimport { Menu } from '../Menu';\nimport { InputLikeText } from '../InputLikeText';\nimport { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { CustomComboBoxAction, CustomComboBoxEffect, reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport interface CustomComboBoxProps<T> extends CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: 'small' | 'medium' | 'large';\n totalCount?: number;\n value?: Nullable<T>;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<T[]>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<T[]>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n};\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n const expectingId = (this.requestId += 1);\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n menuAlign: this.props.menuAlign,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n warning: this.props.warning,\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' });\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch({ type: 'DidUpdate', prevProps, prevState });\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: this.isMobileLayout ? false : true,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n this.focused = true;\n this.dispatch({ type: 'Focus' });\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n });\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n // TODO: add check for mobile layout, to call `handleBlur`\n\n if (this.state.opened) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["CustomComboBox.tsx"],"names":["DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","ComboBoxRequestStatus","Unknown","CustomComboBox","responsiveLayout","rootNode","state","requestId","cancelationToken","reducer","cancelLoaderDelay","focus","props","disabled","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","effects","nextState","setState","stateAndEffect","Array","forEach","handleEffect","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","handleClickOutside","e","close","setTimeout","handleInputBlur","handleInputClick","search","query","getItems","cancelPromise","Promise","_","reject","expectingId","loaderShowDelay","resolve","cancelLoader","catch","race","code","cancelSearch","CancelationError","open","render","viewProps","align","borderless","disablePortal","error","menuAlign","drawArrow","placeholder","size","totalCount","warning","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","onValueChange","onClickOutside","onFocus","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","reset","React","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Input, InputIconType } from '../../components/Input';\nimport { Menu } from '../Menu';\nimport { InputLikeText } from '../InputLikeText';\nimport { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { CustomComboBoxAction, CustomComboBoxEffect, reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport interface CustomComboBoxProps<T> extends CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: 'small' | 'medium' | 'large';\n totalCount?: number;\n value?: Nullable<T>;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<T[]>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<T[]>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n};\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n this.requestId += 1;\n const expectingId = this.requestId;\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n menuAlign: this.props.menuAlign,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n warning: this.props.warning,\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' });\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch({ type: 'DidUpdate', prevProps, prevState });\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: !this.isMobileLayout,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n this.focused = true;\n this.dispatch({ type: 'Focus' });\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n });\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n // TODO: add check for mobile layout, to call `handleBlur`\n\n if (this.state.opened) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"]}
@@ -46,25 +46,25 @@ export declare type CustomComboBoxAction<T> = {
46
46
  export declare type CustomComboBoxEffect<T> = (dispatch: (action: CustomComboBoxAction<T>) => void, getState: () => CustomComboBoxState<T>, getProps: () => CustomComboBoxProps<T>, getInstance: () => CustomComboBox<T>) => void;
47
47
  declare type Effect = CustomComboBoxEffect<any>;
48
48
  interface EffectFactory {
49
- Search: (query: string) => Effect;
50
- DebouncedSearch: Effect & {
49
+ search: (query: string) => Effect;
50
+ debouncedSearch: Effect & {
51
51
  cancel(): void;
52
52
  flush(): void;
53
53
  };
54
- CancelRequest: Effect;
55
- Blur: Effect;
56
- Focus: Effect;
57
- ValueChange: (value: any) => Effect;
58
- UnexpectedInput: (textValue: string, items: Nullable<any[]>) => Effect;
59
- InputChange: Effect;
60
- InputFocus: Effect;
61
- HighlightMenuItem: Effect;
62
- SelectMenuItem: (event: React.KeyboardEvent<HTMLElement>) => Effect;
63
- InputKeyDown: (event: React.KeyboardEvent<HTMLElement>) => Effect;
64
- MoveMenuHighlight: (direction: 'up' | 'down') => Effect;
65
- ResetHighlightedMenuItem: Effect;
66
- Reflow: Effect;
67
- SelectInputText: Effect;
54
+ cancelRequest: Effect;
55
+ blur: Effect;
56
+ focus: Effect;
57
+ valueChange: (value: any) => Effect;
58
+ unexpectedInput: (textValue: string, items: Nullable<any[]>) => Effect;
59
+ inputChange: Effect;
60
+ inputFocus: Effect;
61
+ highlightMenuItem: Effect;
62
+ selectMenuItem: (event: React.KeyboardEvent<HTMLElement>) => Effect;
63
+ inputKeyDown: (event: React.KeyboardEvent<HTMLElement>) => Effect;
64
+ moveMenuHighlight: (direction: 'up' | 'down') => Effect;
65
+ resetHighlightedMenuItem: Effect;
66
+ reflow: Effect;
67
+ selectInputText: Effect;
68
68
  }
69
69
  export declare const Effect: EffectFactory;
70
70
  export declare function reducer<T>(state: CustomComboBoxState<T>, props: CustomComboBoxProps<T>, action: CustomComboBoxAction<T>): Pick<CustomComboBoxState<T>, never> | [Pick<CustomComboBoxState<T>, never>, Array<CustomComboBoxEffect<T>>];
@@ -71,36 +71,36 @@ var getValueString = function getValueString(value, valueToString) {
71
71
  };
72
72
 
73
73
  var Effect = {
74
- Search: function Search(query) {return function (dispatch, getState, getProps, getInstance) {
74
+ search: function search(query) {return function (dispatch, getState, getProps, getInstance) {
75
75
  getInstance().search(query);
76
76
  };},
77
- DebouncedSearch: (0, _lodash.default)(function (dispatch, getState, getProps, getInstance) {
78
- var searchEffect = Effect.Search(getState().textValue);
77
+ debouncedSearch: (0, _lodash.default)(function (dispatch, getState, getProps, getInstance) {
78
+ var searchEffect = Effect.search(getState().textValue);
79
79
  searchEffect(dispatch, getState, getProps, getInstance);
80
80
  }, DEBOUNCE_DELAY),
81
- CancelRequest: function CancelRequest(dispatch, getState, getProps, getInstance) {
82
- Effect.DebouncedSearch.cancel();
81
+ cancelRequest: function cancelRequest(dispatch, getState, getProps, getInstance) {
82
+ Effect.debouncedSearch.cancel();
83
83
  getInstance().cancelSearch();
84
84
  },
85
- Blur: function Blur(dispatch, getState, getProps) {
85
+ blur: function blur(dispatch, getState, getProps) {
86
86
  var _getProps = getProps(),onBlur = _getProps.onBlur;
87
87
  if (onBlur) {
88
88
  onBlur();
89
89
  }
90
90
  },
91
- Focus: function Focus(dispatch, getState, getProps) {
91
+ focus: function focus(dispatch, getState, getProps) {
92
92
  var _getProps2 = getProps(),onFocus = _getProps2.onFocus;
93
93
  if (onFocus) {
94
94
  onFocus();
95
95
  }
96
96
  },
97
- ValueChange: function ValueChange(value) {return function (dispatch, getState, getProps) {
97
+ valueChange: function valueChange(value) {return function (dispatch, getState, getProps) {
98
98
  var _getProps3 = getProps(),onValueChange = _getProps3.onValueChange;
99
99
  if (onValueChange) {
100
100
  onValueChange(value);
101
101
  }
102
102
  };},
103
- UnexpectedInput: function UnexpectedInput(textValue, items) {return function (dispatch, getState, getProps) {
103
+ unexpectedInput: function unexpectedInput(textValue, items) {return function (dispatch, getState, getProps) {
104
104
  var _getProps4 = getProps(),onUnexpectedInput = _getProps4.onUnexpectedInput,valueToString = _getProps4.valueToString;
105
105
 
106
106
  if (Array.isArray(items) && items.length === 1) {
@@ -120,7 +120,7 @@ var Effect = {
120
120
  }
121
121
  }
122
122
  };},
123
- InputChange: function InputChange(dispatch, getState, getProps) {
123
+ inputChange: function inputChange(dispatch, getState, getProps) {
124
124
  var _getProps5 = getProps(),onInputValueChange = _getProps5.onInputValueChange;
125
125
  var _getState = getState(),textValue = _getState.textValue;
126
126
  if (onInputValueChange) {
@@ -130,7 +130,7 @@ var Effect = {
130
130
  }
131
131
  }
132
132
  },
133
- InputFocus: function InputFocus(dispatch, getState, getProps, getInstance) {
133
+ inputFocus: function inputFocus(dispatch, getState, getProps, getInstance) {
134
134
  var _getInstance = getInstance(),input = _getInstance.input;
135
135
 
136
136
  if (!input) {
@@ -139,7 +139,7 @@ var Effect = {
139
139
 
140
140
  input.focus();
141
141
  },
142
- HighlightMenuItem: function HighlightMenuItem(dispatch, getState, getProps, getInstance) {
142
+ highlightMenuItem: function highlightMenuItem(dispatch, getState, getProps, getInstance) {
143
143
  var _getProps6 = getProps(),value = _getProps6.value,itemToValue = _getProps6.itemToValue,valueToString = _getProps6.valueToString;
144
144
  var _getState2 = getState(),items = _getState2.items,focused = _getState2.focused,textValue = _getState2.textValue,requestStatus = _getState2.requestStatus;
145
145
  var _getInstance2 = getInstance(),menu = _getInstance2.menu;
@@ -170,33 +170,33 @@ var Effect = {
170
170
  requestAnimationFrame(function () {return menu && menu.down();});
171
171
  }
172
172
  },
173
- SelectMenuItem: function SelectMenuItem(event) {return function (dispatch, getState, getProps, getInstance) {
173
+ selectMenuItem: function selectMenuItem(event) {return function (dispatch, getState, getProps, getInstance) {
174
174
  var _getInstance3 = getInstance(),menu = _getInstance3.menu;
175
175
  if (menu) {
176
176
  menu.enter(event);
177
177
  }
178
178
  };},
179
- MoveMenuHighlight: function MoveMenuHighlight(direction) {return function (dispatch, getState, getProps, getInstance) {
179
+ moveMenuHighlight: function moveMenuHighlight(direction) {return function (dispatch, getState, getProps, getInstance) {
180
180
  var _getInstance4 = getInstance(),menu = _getInstance4.menu;
181
181
  if (menu) {
182
182
  menu[direction]();
183
183
  }
184
184
  };},
185
- ResetHighlightedMenuItem: function ResetHighlightedMenuItem(dispatch, getState, getProps, getInstance) {
185
+ resetHighlightedMenuItem: function resetHighlightedMenuItem(dispatch, getState, getProps, getInstance) {
186
186
  var combobox = getInstance();
187
187
 
188
188
  if (combobox.menu && combobox.menu.hasHighlightedItem()) {
189
189
  combobox.menu.reset();
190
190
  }
191
191
  },
192
- Reflow: function Reflow() {
192
+ reflow: function reflow() {
193
193
  LayoutEvents.emit();
194
194
  },
195
- SelectInputText: function SelectInputText(dispatch, getState, getProps, getInstance) {
195
+ selectInputText: function selectInputText(dispatch, getState, getProps, getInstance) {
196
196
  var combobox = getInstance();
197
197
  combobox.selectInputText();
198
198
  },
199
- InputKeyDown: function InputKeyDown(event) {return function (dispatch, getState, getProps, getInstance) {
199
+ inputKeyDown: function inputKeyDown(event) {return function (dispatch, getState, getProps, getInstance) {
200
200
  var _getProps7 = getProps(),onInputKeyDown = _getProps7.onInputKeyDown;
201
201
  if (onInputKeyDown) {
202
202
  onInputKeyDown(event);
@@ -224,7 +224,7 @@ action)
224
224
  items: null,
225
225
  textValue: _textValue },
226
226
 
227
- [Effect.ValueChange(_value2), Effect.CancelRequest, Effect.InputFocus]];
227
+ [Effect.valueChange(_value2), Effect.cancelRequest, Effect.inputFocus]];
228
228
 
229
229
  }
230
230
  return [
@@ -235,7 +235,7 @@ action)
235
235
  items: null,
236
236
  textValue: _textValue },
237
237
 
238
- [Effect.ValueChange(_value2), Effect.CancelRequest]];
238
+ [Effect.valueChange(_value2), Effect.cancelRequest]];
239
239
 
240
240
  }
241
241
  case 'TextChange':{
@@ -250,10 +250,10 @@ action)
250
250
  opened: false,
251
251
  items: null }),
252
252
 
253
- [Effect.InputChange]];
253
+ [Effect.inputChange]];
254
254
 
255
255
  }
256
- return [newState, [Effect.DebouncedSearch, Effect.InputChange]];
256
+ return [newState, [Effect.debouncedSearch, Effect.inputChange]];
257
257
  }
258
258
  case 'KeyPress':{
259
259
  var e = action.event;
@@ -263,13 +263,13 @@ action)
263
263
  switch (true) {
264
264
  case (0, _identifiers.isKeyEnter)(e):
265
265
  e.preventDefault();
266
- effects.push(Effect.SelectMenuItem(e));
266
+ effects.push(Effect.selectMenuItem(e));
267
267
  break;
268
268
  case (0, _identifiers.isKeyArrowVertical)(e):
269
269
  e.preventDefault();
270
- effects.push(Effect.MoveMenuHighlight((0, _identifiers.isKeyArrowUp)(e) ? 'up' : 'down'));
270
+ effects.push(Effect.moveMenuHighlight((0, _identifiers.isKeyArrowUp)(e) ? 'up' : 'down'));
271
271
  if (!state.opened) {
272
- effects.push(Effect.Search(state.textValue));
272
+ effects.push(Effect.search(state.textValue));
273
273
  }
274
274
  break;
275
275
  case (0, _identifiers.isKeyEscape)(e):
@@ -280,7 +280,7 @@ action)
280
280
 
281
281
  break;}
282
282
 
283
- return [nextState, [].concat(effects, [Effect.InputKeyDown(e)])];
283
+ return [nextState, [].concat(effects, [Effect.inputKeyDown(e)])];
284
284
  }
285
285
  case 'DidUpdate':{
286
286
  if ((0, _lodash2.default)(props.value, action.prevProps.value)) {
@@ -303,16 +303,16 @@ action)
303
303
  editing: true };
304
304
 
305
305
  if (!props.searchOnFocus) {
306
- return [_newState, [Effect.Focus]];
306
+ return [_newState, [Effect.focus]];
307
307
  }
308
308
  if (state.editing) {
309
- return [_newState, [Effect.Search(state.textValue), Effect.Focus]];
309
+ return [_newState, [Effect.search(state.textValue), Effect.focus]];
310
310
  }
311
- return [_newState, [Effect.Search(''), Effect.Focus, Effect.SelectInputText]];
311
+ return [_newState, [Effect.search(''), Effect.focus, Effect.selectInputText]];
312
312
  }
313
313
  case 'InputClick':{
314
314
  if (!state.opened && props.searchOnFocus) {
315
- return [state, [Effect.Search('')]];
315
+ return [state, [Effect.search('')]];
316
316
  }
317
317
  return state;
318
318
  }
@@ -326,7 +326,7 @@ action)
326
326
  items: null,
327
327
  editing: false },
328
328
 
329
- [Effect.Blur, Effect.CancelRequest]];
329
+ [Effect.blur, Effect.cancelRequest]];
330
330
 
331
331
  }
332
332
 
@@ -336,7 +336,7 @@ action)
336
336
  opened: false,
337
337
  items: null },
338
338
 
339
- [Effect.Blur, Effect.CancelRequest, Effect.UnexpectedInput(state.textValue, _items)]];
339
+ [Effect.blur, Effect.cancelRequest, Effect.unexpectedInput(state.textValue, _items)]];
340
340
 
341
341
  }
342
342
  case 'Reset':{
@@ -349,7 +349,7 @@ action)
349
349
  return { opened: false, items: null };
350
350
  }
351
351
  case 'Search':{
352
- return [state, [Effect.Search(action.query)]];
352
+ return [state, [Effect.search(action.query)]];
353
353
  }
354
354
  case 'RequestItems':{
355
355
  return {
@@ -367,7 +367,7 @@ action)
367
367
  items: action.items,
368
368
  requestStatus: _CustomComboBoxTypes.ComboBoxRequestStatus.Success },
369
369
 
370
- [shouldResetMenuHighlight ? Effect.ResetHighlightedMenuItem : Effect.HighlightMenuItem, Effect.Reflow]];
370
+ [shouldResetMenuHighlight ? Effect.resetHighlightedMenuItem : Effect.highlightMenuItem, Effect.reflow]];
371
371
 
372
372
  }
373
373
  case 'RequestFailure':{
@@ -379,7 +379,7 @@ action)
379
379
  requestStatus: _CustomComboBoxTypes.ComboBoxRequestStatus.Failed,
380
380
  repeatRequest: action.repeatRequest },
381
381
 
382
- [Effect.HighlightMenuItem]];
382
+ [Effect.highlightMenuItem]];
383
383
 
384
384
  }
385
385
  case 'CancelRequest':{