@skbkontur/react-ui 4.3.1 → 4.5.1

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 (481) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/cjs/components/Autocomplete/Autocomplete.js +3 -1
  3. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/Checkbox/Checkbox.js +4 -2
  5. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  6. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -1
  7. package/cjs/components/Checkbox/Checkbox.styles.js +1 -1
  8. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  9. package/cjs/components/CurrencyInput/CurrencyInput.js +6 -4
  10. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  11. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +1 -1
  12. package/cjs/components/DateInput/DateFragmentsView.d.ts +1 -1
  13. package/cjs/components/DateInput/DateFragmentsView.js +10 -1
  14. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  15. package/cjs/components/DateInput/DateInput.d.ts +1 -1
  16. package/cjs/components/DateInput/DateInput.js +1 -1
  17. package/cjs/components/DateInput/DateInput.js.map +1 -1
  18. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -2
  19. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
  20. package/cjs/components/DateInput/helpers/SelectionHelpers.js +2 -2
  21. package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
  22. package/cjs/components/DatePicker/DatePicker.js +11 -3
  23. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  24. package/cjs/components/DatePicker/Picker.js +5 -1
  25. package/cjs/components/DatePicker/Picker.js.map +1 -1
  26. package/cjs/components/FileUploader/FileUploader.d.ts +2 -1
  27. package/cjs/components/FileUploader/FileUploader.js +16 -3
  28. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  29. package/cjs/components/FxInput/FxInput.js +3 -1
  30. package/cjs/components/FxInput/FxInput.js.map +1 -1
  31. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  32. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  33. package/cjs/components/Input/Input.js +5 -2
  34. package/cjs/components/Input/Input.js.map +1 -1
  35. package/cjs/components/Input/Input.md +5 -1
  36. package/cjs/components/Input/Input.styles.d.ts +1 -0
  37. package/cjs/components/Input/Input.styles.js +17 -10
  38. package/cjs/components/Input/Input.styles.js.map +1 -1
  39. package/cjs/components/Kebab/Kebab.d.ts +1 -4
  40. package/cjs/components/Kebab/Kebab.js.map +1 -1
  41. package/cjs/components/Link/Link.d.ts +1 -3
  42. package/cjs/components/Link/Link.js +1 -1
  43. package/cjs/components/Link/Link.js.map +1 -1
  44. package/cjs/components/Loader/Loader.d.ts +2 -1
  45. package/cjs/components/Loader/Loader.js +1 -0
  46. package/cjs/components/Loader/Loader.js.map +1 -1
  47. package/cjs/components/Loader/__stories__/LoaderAndButton.js +6 -0
  48. package/cjs/components/Loader/__stories__/LoaderAndButton.js.map +1 -1
  49. package/cjs/components/MenuItem/MenuItem.js +3 -1
  50. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  51. package/cjs/components/Modal/Modal.js +2 -2
  52. package/cjs/components/Modal/Modal.js.map +1 -1
  53. package/cjs/components/Modal/Modal.styles.d.ts +2 -2
  54. package/cjs/components/Modal/Modal.styles.js +2 -2
  55. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  56. package/cjs/components/Modal/ModalBody.js +2 -2
  57. package/cjs/components/Modal/ModalBody.js.map +1 -1
  58. package/cjs/components/Paging/Paging.d.ts +1 -1
  59. package/cjs/components/Paging/Paging.js +1 -1
  60. package/cjs/components/Paging/Paging.js.map +1 -1
  61. package/cjs/components/Paging/PagingDefaultComponent.d.ts +2 -2
  62. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  63. package/cjs/components/PasswordInput/PasswordInput.js +7 -5
  64. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  65. package/cjs/components/Radio/Radio.js +3 -1
  66. package/cjs/components/Radio/Radio.js.map +1 -1
  67. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  68. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +5 -9
  69. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  70. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  71. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +2 -2
  72. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  73. package/cjs/components/ResponsiveLayout/decorator.d.ts +1 -1
  74. package/cjs/components/ResponsiveLayout/types.d.ts +9 -1
  75. package/cjs/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  76. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +31 -15
  77. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  78. package/cjs/components/Select/Item.d.ts +4 -2
  79. package/cjs/components/Select/Item.js +3 -0
  80. package/cjs/components/Select/Item.js.map +1 -1
  81. package/cjs/components/Select/Select.js +2 -0
  82. package/cjs/components/Select/Select.js.map +1 -1
  83. package/cjs/components/SidePage/SidePageFooter.d.ts +6 -4
  84. package/cjs/components/SidePage/SidePageFooter.js +4 -0
  85. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  86. package/cjs/components/Spinner/Spinner.js +1 -1
  87. package/cjs/components/Spinner/Spinner.js.map +1 -1
  88. package/cjs/components/Spinner/Spinner.styles.d.ts +1 -1
  89. package/cjs/components/Spinner/Spinner.styles.js +7 -7
  90. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  91. package/cjs/components/Tabs/Indicator.d.ts +1 -1
  92. package/cjs/components/Tabs/Indicator.js +1 -1
  93. package/cjs/components/Tabs/Indicator.js.map +1 -1
  94. package/cjs/components/Tabs/Tabs.js.map +1 -1
  95. package/cjs/components/Textarea/Textarea.js +3 -1
  96. package/cjs/components/Textarea/Textarea.js.map +1 -1
  97. package/cjs/components/Textarea/TextareaCounter.d.ts +2 -2
  98. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  99. package/cjs/components/Toast/Toast.js +1 -1
  100. package/cjs/components/Toast/Toast.js.map +1 -1
  101. package/cjs/components/Token/Token.styles.js +2 -1
  102. package/cjs/components/Token/Token.styles.js.map +1 -1
  103. package/cjs/components/TokenInput/TokenInput.d.ts +3 -0
  104. package/cjs/components/TokenInput/TokenInput.js +57 -15
  105. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  106. package/cjs/components/TokenInput/TokenInput.md +26 -0
  107. package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
  108. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  109. package/cjs/components/TokenInput/TokenInputMenu.d.ts +2 -1
  110. package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
  111. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  112. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  113. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  114. package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -2
  115. package/cjs/hooks/useEffectWithoutInitCall.js +2 -2
  116. package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -1
  117. package/cjs/hooks/useMemoObject.d.ts +2 -1
  118. package/cjs/hooks/useMemoObject.js +2 -0
  119. package/cjs/hooks/useMemoObject.js.map +1 -1
  120. package/cjs/internal/BGRuler.d.ts +1 -1
  121. package/cjs/internal/BGRuler.js.map +1 -1
  122. package/cjs/internal/Calendar/MonthViewModel.d.ts +1 -1
  123. package/cjs/internal/Calendar/config.d.ts +1 -8
  124. package/cjs/internal/CommonWrapper/CommonWrapper.js +5 -4
  125. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  126. package/cjs/internal/ComponentTable.d.ts +2 -2
  127. package/cjs/internal/ComponentTable.js +3 -1
  128. package/cjs/internal/ComponentTable.js.map +1 -1
  129. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -2
  130. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +8 -8
  131. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  132. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +4 -5
  133. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  134. package/cjs/internal/DataTids/DataTids.d.ts +5 -5
  135. package/cjs/internal/DataTids/DataTids.js +4 -0
  136. package/cjs/internal/DataTids/DataTids.js.map +1 -1
  137. package/cjs/internal/DateSelect/DateSelect.js +1 -1
  138. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  139. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  140. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  141. package/cjs/internal/InputLikeText/InputLikeText.js +4 -2
  142. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  143. package/cjs/internal/InternalMenu/InternalMenu.js +1 -1
  144. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  145. package/cjs/internal/MaskedInput/MaskedInput.js +3 -1
  146. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  147. package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
  148. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  149. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
  150. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  151. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  152. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  153. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js +7 -0
  154. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
  155. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  156. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js +2 -3
  157. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js.map +1 -1
  158. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  159. package/cjs/internal/ThemePlayground/FxInputPlayground.js +5 -5
  160. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  161. package/cjs/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  162. package/cjs/internal/ThemePlayground/HintPlayground.js.map +1 -1
  163. package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  164. package/cjs/internal/ThemePlayground/PagingPlayground.js +5 -2
  165. package/cjs/internal/ThemePlayground/PagingPlayground.js.map +1 -1
  166. package/cjs/internal/ThemePlayground/Playground.d.ts +1 -1
  167. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  168. package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  169. package/cjs/internal/ThemePlayground/SelectPlayground.js +6 -0
  170. package/cjs/internal/ThemePlayground/SelectPlayground.js.map +1 -1
  171. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  172. package/cjs/internal/ThemePlayground/SizesGroup.js +2 -0
  173. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  174. package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  175. package/cjs/internal/ThemePlayground/SwitcherPlayground.js +6 -1
  176. package/cjs/internal/ThemePlayground/SwitcherPlayground.js.map +1 -1
  177. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -4
  178. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  179. package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  180. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  181. package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  182. package/cjs/internal/ThemePlayground/TogglePlayground.js +4 -10
  183. package/cjs/internal/ThemePlayground/TogglePlayground.js.map +1 -1
  184. package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  185. package/cjs/internal/ThemePlayground/TokenInputPlayground.js +3 -0
  186. package/cjs/internal/ThemePlayground/TokenInputPlayground.js.map +1 -1
  187. package/cjs/internal/ThemePlayground/VariableValue.d.ts +1 -4
  188. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  189. package/cjs/internal/ThemePlayground/helpers.d.ts +1 -1
  190. package/cjs/internal/ThemePlayground/helpers.js +4 -2
  191. package/cjs/internal/ThemePlayground/helpers.js.map +1 -1
  192. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  193. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  194. package/cjs/internal/ZIndex/ZIndex.js +2 -9
  195. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  196. package/cjs/internal/themes/DefaultTheme.d.ts +2 -0
  197. package/cjs/internal/themes/DefaultTheme.js +8 -2
  198. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  199. package/cjs/lib/ConditionalHandler.js.map +1 -1
  200. package/cjs/lib/ModalStack.js +2 -2
  201. package/cjs/lib/ModalStack.js.map +1 -1
  202. package/cjs/lib/animation/index.js +1 -0
  203. package/cjs/lib/animation/index.js.map +1 -1
  204. package/cjs/lib/callChildRef/callChildRef.js +1 -1
  205. package/cjs/lib/callChildRef/callChildRef.js.map +1 -1
  206. package/cjs/lib/createPropsGetter.d.ts +1 -1
  207. package/cjs/lib/createPropsGetter.js +1 -0
  208. package/cjs/lib/createPropsGetter.js.map +1 -1
  209. package/cjs/lib/date/InternalDateCalculator.d.ts +1 -1
  210. package/cjs/lib/date/InternalDateCalculator.js +1 -1
  211. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  212. package/cjs/lib/date/InternalDateValidator.d.ts +1 -1
  213. package/cjs/lib/date/InternalDateValidator.js +9 -2
  214. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  215. package/cjs/lib/extractKeyboardAction.d.ts +1 -1
  216. package/cjs/lib/extractKeyboardAction.js.map +1 -1
  217. package/cjs/lib/filterProps.js +0 -1
  218. package/cjs/lib/filterProps.js.map +1 -1
  219. package/cjs/lib/locale/useLocaleForControl.d.ts +1 -1
  220. package/cjs/lib/locale/useLocaleForControl.js.map +1 -1
  221. package/cjs/lib/memo.d.ts +3 -1
  222. package/cjs/lib/memo.js +3 -3
  223. package/cjs/lib/memo.js.map +1 -1
  224. package/cjs/lib/net/fetch.js +2 -2
  225. package/cjs/lib/net/fetch.js.map +1 -1
  226. package/cjs/lib/reactGetTextContent.js +0 -1
  227. package/cjs/lib/reactGetTextContent.js.map +1 -1
  228. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -2
  229. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  230. package/cjs/lib/styles/ColorFactory.js +2 -2
  231. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  232. package/cjs/lib/styles/ColorFunctions.js.map +1 -1
  233. package/cjs/lib/theming/AnimationKeyframes.d.ts +3 -5
  234. package/cjs/lib/theming/AnimationKeyframes.js +8 -22
  235. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  236. package/cjs/lib/theming/Emotion.js +1 -0
  237. package/cjs/lib/theming/Emotion.js.map +1 -1
  238. package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
  239. package/cjs/lib/theming/ThemeFactory.js +3 -1
  240. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  241. package/cjs/lib/theming/ThemeHelpers.d.ts +2 -2
  242. package/cjs/lib/theming/ThemeHelpers.js +1 -1
  243. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  244. package/cjs/lib/utils.d.ts +3 -1
  245. package/cjs/lib/utils.js +5 -2
  246. package/cjs/lib/utils.js.map +1 -1
  247. package/cjs/lib/withClassWrapper.js +1 -4
  248. package/cjs/lib/withClassWrapper.js.map +1 -1
  249. package/components/Autocomplete/Autocomplete/Autocomplete.js +4 -1
  250. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  251. package/components/Checkbox/Checkbox/Checkbox.js +5 -2
  252. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  253. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
  254. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  255. package/components/Checkbox/Checkbox.styles.d.ts +1 -1
  256. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +8 -3
  257. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  258. package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +1 -1
  259. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +10 -1
  260. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  261. package/components/DateInput/DateFragmentsView.d.ts +1 -1
  262. package/components/DateInput/DateInput/DateInput.js +1 -1
  263. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  264. package/components/DateInput/DateInput.d.ts +1 -1
  265. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +0 -1
  266. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
  267. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +2 -2
  268. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
  269. package/components/DatePicker/DatePicker/DatePicker.js +13 -12
  270. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  271. package/components/DatePicker/Picker/Picker.js +5 -1
  272. package/components/DatePicker/Picker/Picker.js.map +1 -1
  273. package/components/FileUploader/FileUploader/FileUploader.js +9 -4
  274. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  275. package/components/FileUploader/FileUploader.d.ts +2 -1
  276. package/components/FxInput/FxInput/FxInput.js +4 -1
  277. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  278. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  279. package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  280. package/components/Input/Input/Input.js +5 -2
  281. package/components/Input/Input/Input.js.map +1 -1
  282. package/components/Input/Input.md +5 -1
  283. package/components/Input/Input.styles/Input.styles.js +13 -10
  284. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  285. package/components/Input/Input.styles.d.ts +1 -0
  286. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  287. package/components/Kebab/Kebab.d.ts +1 -4
  288. package/components/Link/Link/Link.js +1 -1
  289. package/components/Link/Link/Link.js.map +1 -1
  290. package/components/Link/Link.d.ts +1 -3
  291. package/components/Loader/Loader/Loader.js.map +1 -1
  292. package/components/Loader/Loader.d.ts +2 -1
  293. package/components/Loader/__stories__/LoaderAndButton/LoaderAndButton.js.map +1 -1
  294. package/components/MenuItem/MenuItem/MenuItem.js +4 -1
  295. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  296. package/components/Modal/Modal/Modal.js +2 -2
  297. package/components/Modal/Modal/Modal.js.map +1 -1
  298. package/components/Modal/Modal.styles/Modal.styles.js +2 -2
  299. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  300. package/components/Modal/Modal.styles.d.ts +2 -2
  301. package/components/Modal/ModalBody/ModalBody.js +2 -2
  302. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  303. package/components/Paging/Paging/Paging.js +1 -1
  304. package/components/Paging/Paging/Paging.js.map +1 -1
  305. package/components/Paging/Paging.d.ts +1 -1
  306. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  307. package/components/Paging/PagingDefaultComponent.d.ts +2 -2
  308. package/components/PasswordInput/PasswordInput/PasswordInput.js +7 -8
  309. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  310. package/components/Radio/Radio/Radio.js +4 -1
  311. package/components/Radio/Radio/Radio.js.map +1 -1
  312. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -8
  313. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  314. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  315. package/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  316. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -1
  317. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  318. package/components/ResponsiveLayout/decorator.d.ts +1 -1
  319. package/components/ResponsiveLayout/types.d.ts +9 -1
  320. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +42 -17
  321. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  322. package/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  323. package/components/Select/Item/Item.js.map +1 -1
  324. package/components/Select/Item.d.ts +4 -2
  325. package/components/Select/Select/Select.js.map +1 -1
  326. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  327. package/components/SidePage/SidePageFooter.d.ts +6 -4
  328. package/components/Spinner/Spinner/Spinner.js +1 -1
  329. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  330. package/components/Spinner/Spinner.styles/Spinner.styles.js +3 -3
  331. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  332. package/components/Spinner/Spinner.styles.d.ts +1 -1
  333. package/components/Tabs/Indicator/Indicator.js +1 -1
  334. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  335. package/components/Tabs/Indicator.d.ts +1 -1
  336. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  337. package/components/Textarea/Textarea/Textarea.js +4 -1
  338. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  339. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  340. package/components/Textarea/TextareaCounter.d.ts +2 -2
  341. package/components/Toast/Toast/Toast.js +1 -1
  342. package/components/Toast/Toast/Toast.js.map +1 -1
  343. package/components/Token/Token.styles/Token.styles.js +1 -1
  344. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  345. package/components/TokenInput/TokenInput/TokenInput.js +82 -19
  346. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  347. package/components/TokenInput/TokenInput.d.ts +3 -0
  348. package/components/TokenInput/TokenInput.md +26 -0
  349. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  350. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  351. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -1
  352. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  353. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  354. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  355. package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  356. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +2 -2
  357. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -1
  358. package/hooks/useEffectWithoutInitCall.d.ts +2 -2
  359. package/hooks/useMemoObject/useMemoObject.js.map +1 -1
  360. package/hooks/useMemoObject.d.ts +2 -1
  361. package/internal/BGRuler/BGRuler.js.map +1 -1
  362. package/internal/BGRuler.d.ts +1 -1
  363. package/internal/Calendar/MonthViewModel.d.ts +1 -1
  364. package/internal/Calendar/config.d.ts +1 -8
  365. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
  366. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  367. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  368. package/internal/ComponentTable.d.ts +2 -2
  369. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +14 -17
  370. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  371. package/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -2
  372. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +4 -5
  373. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  374. package/internal/DataTids/DataTids/DataTids.js.map +1 -1
  375. package/internal/DataTids/DataTids.d.ts +5 -5
  376. package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
  377. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  378. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  379. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  380. package/internal/InputLikeText/InputLikeText/InputLikeText.js +5 -2
  381. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  382. package/internal/InternalMenu/InternalMenu/InternalMenu.js +1 -1
  383. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  384. package/internal/MaskedInput/MaskedInput/MaskedInput.js +4 -1
  385. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  386. package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -1
  387. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  388. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +1 -1
  389. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  390. package/internal/PerformanceMetrics/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  391. package/internal/ThemePlayground/AnotherInputsPlayground/AnotherInputsPlayground.js.map +1 -1
  392. package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  393. package/internal/ThemePlayground/CurrencyInputPlayground/CurrencyInputPlayground.js.map +1 -1
  394. package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  395. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js +10 -6
  396. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
  397. package/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  398. package/internal/ThemePlayground/HintPlayground/HintPlayground.js.map +1 -1
  399. package/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  400. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js +2 -2
  401. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js.map +1 -1
  402. package/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  403. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  404. package/internal/ThemePlayground/Playground.d.ts +1 -1
  405. package/internal/ThemePlayground/SelectPlayground/SelectPlayground.js.map +1 -1
  406. package/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  407. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  408. package/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  409. package/internal/ThemePlayground/SwitcherPlayground/SwitcherPlayground.js.map +1 -1
  410. package/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  411. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +13 -3
  412. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  413. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  414. package/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  415. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js +5 -17
  416. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js.map +1 -1
  417. package/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  418. package/internal/ThemePlayground/TokenInputPlayground/TokenInputPlayground.js.map +1 -1
  419. package/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  420. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  421. package/internal/ThemePlayground/VariableValue.d.ts +1 -4
  422. package/internal/ThemePlayground/helpers/helpers.js +0 -1
  423. package/internal/ThemePlayground/helpers/helpers.js.map +1 -1
  424. package/internal/ThemePlayground/helpers.d.ts +1 -1
  425. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  426. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  427. package/internal/ZIndex/ZIndex/ZIndex.js +6 -3
  428. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  429. package/internal/themes/DefaultTheme/DefaultTheme.js +11 -1
  430. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  431. package/internal/themes/DefaultTheme.d.ts +2 -0
  432. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  433. package/lib/ModalStack/ModalStack.js +2 -2
  434. package/lib/ModalStack/ModalStack.js.map +1 -1
  435. package/lib/animation/index/index.js +1 -1
  436. package/lib/animation/index/index.js.map +1 -1
  437. package/lib/callChildRef/callChildRef/callChildRef.js +1 -1
  438. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -1
  439. package/lib/createPropsGetter/createPropsGetter.js +1 -0
  440. package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
  441. package/lib/createPropsGetter.d.ts +1 -1
  442. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +1 -2
  443. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  444. package/lib/date/InternalDateCalculator.d.ts +1 -1
  445. package/lib/date/InternalDateValidator/InternalDateValidator.js +8 -2
  446. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  447. package/lib/date/InternalDateValidator.d.ts +1 -1
  448. package/lib/extractKeyboardAction/extractKeyboardAction.js.map +1 -1
  449. package/lib/extractKeyboardAction.d.ts +1 -1
  450. package/lib/filterProps/filterProps.js +0 -1
  451. package/lib/filterProps/filterProps.js.map +1 -1
  452. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -1
  453. package/lib/locale/useLocaleForControl.d.ts +1 -1
  454. package/lib/memo/memo.js +2 -4
  455. package/lib/memo/memo.js.map +1 -1
  456. package/lib/memo.d.ts +3 -1
  457. package/lib/net/fetch/fetch.js +2 -2
  458. package/lib/net/fetch/fetch.js.map +1 -1
  459. package/lib/reactGetTextContent/reactGetTextContent.js +0 -1
  460. package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
  461. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  462. package/lib/rootNode/rootNodeDecorator.d.ts +2 -2
  463. package/lib/styles/ColorFactory/ColorFactory.js +3 -1
  464. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  465. package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
  466. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +8 -14
  467. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  468. package/lib/theming/AnimationKeyframes.d.ts +3 -5
  469. package/lib/theming/Emotion/Emotion.js.map +1 -1
  470. package/lib/theming/ThemeFactory/ThemeFactory.js +4 -1
  471. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  472. package/lib/theming/ThemeFactory.d.ts +1 -1
  473. package/lib/theming/ThemeHelpers/ThemeHelpers.js +1 -1
  474. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  475. package/lib/theming/ThemeHelpers.d.ts +2 -2
  476. package/lib/utils/utils.js +2 -2
  477. package/lib/utils/utils.js.map +1 -1
  478. package/lib/utils.d.ts +3 -1
  479. package/lib/withClassWrapper/withClassWrapper.js +1 -4
  480. package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
  481. package/package.json +3 -20
@@ -1 +1 @@
1
- {"version":3,"sources":["TokenInput.styles.ts"],"names":["css","memoizeStyle","mixins","inputAndHelperCommonStyles","t","tokenInputInputPaddingRight","tokenInputInputPaddingLeft","tokenInputLineHeight","tokenInputFontSize","inputAndHelperCommonEditingStyles","tokenMarginY","tokenMarginX","tokenPaddingX","tokenLineHeight","styles","label","tokenInputBg","tokenInputShadow","tokenInputBorderWidth","tokenInputBorderColor","tokenInputBorderTopColor","tokenInputPaddingY","tokenInputPaddingX","tokenInputBorderRadius","warning","tokenInputBorderColorWarning","tokenInputOutlineWidth","error","tokenInputBorderColorError","labelFocused","tokenInputBorderColorFocus","labelDisabled","tokenInputDisabledBg","tokenInputDisabledBorderColor","input","tokenInputTextColor","tokenInputPlaceholderColor","tokenInputPlaceholderColorDisabled","tokenInputPlaceholderColorLight","helperContainer","helperText","helperTextEditing","tokenFontSize","tokenLegacyTextShift","inputDisabled","tokenInputTextColorDisabled","inputEditing","reservedInput"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nconst mixins = {\n inputAndHelperCommonStyles(t: Theme) {\n return css`\n padding: 0 ${t.tokenInputInputPaddingRight} 0 ${t.tokenInputInputPaddingLeft};\n line-height: ${t.tokenInputLineHeight};\n font-size: ${t.tokenInputFontSize};\n `;\n },\n inputAndHelperCommonEditingStyles(t: Theme) {\n return css`\n margin: ${t.tokenMarginY} ${t.tokenMarginX};\n padding: 0 ${t.tokenInputInputPaddingRight} 0 ${t.tokenPaddingX};\n line-height: ${t.tokenLineHeight};\n `;\n },\n};\n\nexport const styles = memoizeStyle({\n label(t: Theme) {\n return css`\n background-color: ${t.tokenInputBg};\n box-shadow: ${t.tokenInputShadow};\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColor};\n border-top-color: ${t.tokenInputBorderTopColor};\n box-sizing: border-box;\n cursor: text;\n padding: ${t.tokenInputPaddingY} ${t.tokenInputPaddingX};\n display: flex;\n flex-wrap: wrap;\n align-items: start;\n outline: none;\n position: relative;\n border-radius: ${t.tokenInputBorderRadius};\n `;\n },\n\n warning(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorWarning};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorError};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorError};\n `;\n },\n\n labelFocused(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorFocus};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorFocus};\n `;\n },\n\n labelDisabled(t: Theme) {\n return css`\n background: ${t.tokenInputDisabledBg};\n border-color: ${t.tokenInputDisabledBorderColor};\n box-shadow: none;\n `;\n },\n\n input(t: Theme) {\n return css`\n min-width: 0;\n max-width: 100%;\n width: 50px;\n background: transparent;\n border: none;\n box-shadow: none;\n outline: none;\n font-family: inherit;\n margin: ${t.tokenMarginY} 0 ${t.tokenMarginY} 0;\n overflow: hidden;\n resize: none;\n height: ${t.tokenInputLineHeight};\n -webkit-appearance: none;\n text-overflow: clip;\n background-clip: padding-box;\n transition: background-color 0.15s ease-in;\n color: ${t.tokenInputTextColor};\n box-sizing: border-box;\n word-break: break-all;\n\n ${mixins.inputAndHelperCommonStyles(t)};\n\n &::-ms-clear {\n display: none;\n }\n &::placeholder {\n color: ${t.tokenInputPlaceholderColor};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColor};\n }\n &:disabled::placeholder {\n color: ${t.tokenInputPlaceholderColorDisabled};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColorDisabled};\n }\n &:focus::placeholder {\n color: ${t.tokenInputPlaceholderColorLight};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColorLight};\n }\n /* fix firefox placeholder opacity */\n &:-moz-placeholder {\n opacity: 1;\n }\n &::-moz-placeholder {\n opacity: 1;\n }\n `;\n },\n\n helperContainer(t: Theme) {\n return css`\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding: ${t.tokenInputPaddingY} ${t.tokenInputPaddingX};\n visibility: hidden;\n `;\n },\n\n helperText(t: Theme) {\n return css`\n max-width: 100%;\n word-break: break-all;\n\n // don't collapse spaces\n // so they get counted in width\n white-space: pre-wrap;\n\n ${mixins.inputAndHelperCommonStyles(t)}\n `;\n },\n\n helperTextEditing(t: Theme) {\n return css`\n ${mixins.inputAndHelperCommonEditingStyles(t)};\n\n font-size: ${t.tokenFontSize};\n padding-bottom: ${t.tokenLegacyTextShift};\n `;\n },\n\n inputDisabled(t: Theme) {\n return css`\n pointer-events: none;\n /* fix text color in safari */\n -webkit-text-fill-color: currentcolor;\n color: ${t.tokenInputTextColorDisabled};\n `;\n },\n\n inputEditing(t: Theme) {\n return css`\n ${mixins.inputAndHelperCommonEditingStyles(t)};\n `;\n },\n\n reservedInput(t: Theme) {\n return css`\n min-width: 2px;\n min-height: ${t.tokenInputLineHeight};\n line-height: ${t.tokenInputLineHeight};\n font-size: ${t.tokenInputFontSize};\n margin: ${t.tokenMarginY} 0 ${t.tokenMarginY} 0;\n padding: 0 ${t.tokenInputInputPaddingRight} 0 ${t.tokenInputInputPaddingLeft};\n color: ${t.tokenInputTextColorDisabled};\n word-break: break-all;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["TokenInput.styles.ts"],"names":["css","memoizeStyle","mixins","inputAndHelperCommonStyles","t","tokenInputInputPaddingRight","tokenInputInputPaddingLeft","tokenInputLineHeight","tokenInputFontSize","inputAndHelperCommonEditingStyles","tokenMarginY","tokenMarginX","tokenPaddingX","tokenLineHeight","styles","label","tokenInputBg","tokenInputShadow","tokenInputBorderWidth","tokenInputBorderColor","tokenInputBorderTopColor","tokenInputPaddingY","tokenInputPaddingX","tokenInputBorderRadius","warning","tokenInputBorderColorWarning","tokenInputOutlineWidth","error","tokenInputBorderColorError","labelFocused","tokenInputBorderColorFocus","labelDisabled","tokenInputDisabledBg","tokenInputDisabledBorderColor","input","tokenInputTextColor","tokenInputPlaceholderColor","tokenInputPlaceholderColorDisabled","tokenInputPlaceholderColorLight","helperContainer","helperText","helperTextEditing","tokenFontSize","tokenLegacyTextShift","inputDisabled","tokenInputTextColorDisabled","inputEditing","reservedInput"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nconst mixins = {\n inputAndHelperCommonStyles(t: Theme) {\n return css`\n padding: 0 ${t.tokenInputInputPaddingRight} 0 ${t.tokenInputInputPaddingLeft};\n line-height: ${t.tokenInputLineHeight};\n font-size: ${t.tokenInputFontSize};\n `;\n },\n inputAndHelperCommonEditingStyles(t: Theme) {\n return css`\n margin: ${t.tokenMarginY} ${t.tokenMarginX};\n padding: 0 ${t.tokenInputInputPaddingRight} 0 ${t.tokenPaddingX};\n line-height: ${t.tokenLineHeight};\n `;\n },\n};\n\nexport const styles = memoizeStyle({\n label(t: Theme) {\n return css`\n background-color: ${t.tokenInputBg};\n box-shadow: ${t.tokenInputShadow};\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColor};\n border-top-color: ${t.tokenInputBorderTopColor};\n box-sizing: border-box;\n cursor: text;\n padding: ${t.tokenInputPaddingY} ${t.tokenInputPaddingX};\n display: flex;\n flex-wrap: wrap;\n align-items: start;\n outline: none;\n position: relative;\n border-radius: ${t.tokenInputBorderRadius};\n `;\n },\n\n warning(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorWarning};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorError};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorError};\n `;\n },\n\n labelFocused(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorFocus};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorFocus};\n `;\n },\n\n labelDisabled(t: Theme) {\n return css`\n background: ${t.tokenInputDisabledBg};\n border-color: ${t.tokenInputDisabledBorderColor};\n box-shadow: none;\n cursor: default;\n `;\n },\n\n input(t: Theme) {\n return css`\n min-width: 0;\n max-width: 100%;\n width: 50px;\n background: transparent;\n border: none;\n box-shadow: none;\n outline: none;\n font-family: inherit;\n margin: ${t.tokenMarginY} 0 ${t.tokenMarginY} 0;\n overflow: hidden;\n resize: none;\n height: ${t.tokenInputLineHeight};\n -webkit-appearance: none;\n text-overflow: clip;\n background-clip: padding-box;\n transition: background-color 0.15s ease-in;\n color: ${t.tokenInputTextColor};\n box-sizing: border-box;\n word-break: break-all;\n\n ${mixins.inputAndHelperCommonStyles(t)};\n\n &::-ms-clear {\n display: none;\n }\n &::placeholder {\n color: ${t.tokenInputPlaceholderColor};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColor};\n }\n &:disabled::placeholder {\n color: ${t.tokenInputPlaceholderColorDisabled};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColorDisabled};\n }\n &:focus::placeholder {\n color: ${t.tokenInputPlaceholderColorLight};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColorLight};\n }\n /* fix firefox placeholder opacity */\n &:-moz-placeholder {\n opacity: 1;\n }\n &::-moz-placeholder {\n opacity: 1;\n }\n `;\n },\n\n helperContainer(t: Theme) {\n return css`\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding: ${t.tokenInputPaddingY} ${t.tokenInputPaddingX};\n visibility: hidden;\n `;\n },\n\n helperText(t: Theme) {\n return css`\n max-width: 100%;\n word-break: break-all;\n\n // don't collapse spaces\n // so they get counted in width\n white-space: pre-wrap;\n\n ${mixins.inputAndHelperCommonStyles(t)}\n `;\n },\n\n helperTextEditing(t: Theme) {\n return css`\n ${mixins.inputAndHelperCommonEditingStyles(t)};\n\n font-size: ${t.tokenFontSize};\n padding-bottom: ${t.tokenLegacyTextShift};\n `;\n },\n\n inputDisabled(t: Theme) {\n return css`\n pointer-events: none;\n /* fix text color in safari */\n -webkit-text-fill-color: currentcolor;\n color: ${t.tokenInputTextColorDisabled};\n `;\n },\n\n inputEditing(t: Theme) {\n return css`\n ${mixins.inputAndHelperCommonEditingStyles(t)};\n `;\n },\n\n reservedInput(t: Theme) {\n return css`\n min-width: 2px;\n min-height: ${t.tokenInputLineHeight};\n line-height: ${t.tokenInputLineHeight};\n font-size: ${t.tokenInputFontSize};\n margin: ${t.tokenMarginY} 0 ${t.tokenMarginY} 0;\n padding: 0 ${t.tokenInputInputPaddingRight} 0 ${t.tokenInputInputPaddingLeft};\n color: ${t.tokenInputTextColorDisabled};\n word-break: break-all;\n `;\n },\n});\n"]}
@@ -68,7 +68,7 @@ export var TokenInputMenu = /*#__PURE__*/function (_React$Component) {
68
68
  menuAlign = _this$props.menuAlign;
69
69
  return /*#__PURE__*/React.createElement(Popup, {
70
70
  "data-tid": TokenInputDataTids.tokenInputMenu,
71
- opened: opened,
71
+ opened: !!opened,
72
72
  positions: ['bottom left', 'top left'],
73
73
  anchorElement: anchorElement,
74
74
  popupOffset: menuAlign === 'left' ? 0 : 5,
@@ -1 +1 @@
1
- {"version":3,"sources":["TokenInputMenu.tsx"],"names":["React","ThemeFactory","Popup","ComboBoxMenu","ThemeContext","TokenInputDataTids","TokenInputMenu","menu","getMenuRef","getPopupMargin","paddingY","parseInt","theme","tokenInputPaddingY","outlineWidth","controlOutlineWidth","marginY","tokenMarginY","menuRef","node","render","create","popupMargin","renderMain","props","loading","maxMenuHeight","renderTotalCount","totalCount","opened","items","renderNotFound","renderItem","onValueChange","renderAddButton","anchorElement","menuWidth","menuAlign","tokenInputMenu","undefined","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Popup } from '../../internal/Popup';\nimport { ComboBoxMenu, ComboBoxMenuProps } from '../../internal/CustomComboBox';\nimport { Menu } from '../../internal/Menu';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { TokenInputDataTids, TokenInputMenuAlign, TokenInputProps } from './TokenInput';\n\nexport interface TokenInputMenuProps<T> extends ComboBoxMenuProps<T> {\n anchorElement: HTMLElement;\n menuWidth: TokenInputProps<string>['menuWidth'];\n menuAlign: TokenInputMenuAlign;\n}\n\nexport class TokenInputMenu<T = string> extends React.Component<TokenInputMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'TokenInputMenu';\n\n private theme!: Theme;\n\n private menu: Menu | null = null;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: this.getPopupMargin() + 'px',\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getMenuRef = (): any | null => this.menu;\n\n private renderMain() {\n const {\n loading,\n maxMenuHeight,\n renderTotalCount,\n totalCount,\n opened,\n items,\n renderNotFound,\n renderItem,\n onValueChange,\n renderAddButton,\n anchorElement,\n menuWidth,\n menuAlign,\n } = this.props;\n\n return (\n <Popup\n data-tid={TokenInputDataTids.tokenInputMenu}\n opened={opened!}\n positions={['bottom left', 'top left']}\n anchorElement={anchorElement}\n popupOffset={menuAlign === 'left' ? 0 : 5}\n margin={menuAlign === 'left' ? 1 : undefined}\n hasShadow\n width={menuAlign === 'cursor' ? 'auto' : menuWidth}\n withoutMobile\n >\n <ComboBoxMenu\n items={items}\n loading={loading}\n maxMenuHeight={maxMenuHeight}\n onValueChange={onValueChange}\n opened={opened}\n refMenu={this.menuRef}\n renderTotalCount={renderTotalCount}\n renderItem={renderItem}\n renderNotFound={renderNotFound}\n totalCount={totalCount}\n renderAddButton={renderAddButton}\n />\n </Popup>\n );\n }\n\n private getPopupMargin = (): number => {\n const paddingY = parseInt(this.theme.tokenInputPaddingY, 10) || 0;\n const outlineWidth = parseInt(this.theme.controlOutlineWidth, 10) || 0;\n const marginY = parseInt(this.theme.tokenMarginY, 10) || 0;\n return paddingY + outlineWidth + marginY;\n };\n\n private menuRef = (node: any) => (this.menu = node);\n}\n"]}
1
+ {"version":3,"sources":["TokenInputMenu.tsx"],"names":["React","ThemeFactory","Popup","ComboBoxMenu","ThemeContext","TokenInputDataTids","TokenInputMenu","menu","getMenuRef","getPopupMargin","paddingY","parseInt","theme","tokenInputPaddingY","outlineWidth","controlOutlineWidth","marginY","tokenMarginY","menuRef","node","render","create","popupMargin","renderMain","props","loading","maxMenuHeight","renderTotalCount","totalCount","opened","items","renderNotFound","renderItem","onValueChange","renderAddButton","anchorElement","menuWidth","menuAlign","tokenInputMenu","undefined","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Popup, PopupProps } from '../../internal/Popup';\nimport { ComboBoxMenu, ComboBoxMenuProps } from '../../internal/CustomComboBox';\nimport { Menu } from '../../internal/Menu';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { TokenInputDataTids, TokenInputMenuAlign, TokenInputProps } from './TokenInput';\n\nexport interface TokenInputMenuProps<T> extends ComboBoxMenuProps<T> {\n anchorElement: PopupProps['anchorElement'];\n menuWidth: TokenInputProps<string>['menuWidth'];\n menuAlign: TokenInputMenuAlign;\n}\n\nexport class TokenInputMenu<T = string> extends React.Component<TokenInputMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'TokenInputMenu';\n\n private theme!: Theme;\n\n private menu: Menu | null = null;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: this.getPopupMargin() + 'px',\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getMenuRef = (): any | null => this.menu;\n\n private renderMain() {\n const {\n loading,\n maxMenuHeight,\n renderTotalCount,\n totalCount,\n opened,\n items,\n renderNotFound,\n renderItem,\n onValueChange,\n renderAddButton,\n anchorElement,\n menuWidth,\n menuAlign,\n } = this.props;\n\n return (\n <Popup\n data-tid={TokenInputDataTids.tokenInputMenu}\n opened={!!opened}\n positions={['bottom left', 'top left']}\n anchorElement={anchorElement}\n popupOffset={menuAlign === 'left' ? 0 : 5}\n margin={menuAlign === 'left' ? 1 : undefined}\n hasShadow\n width={menuAlign === 'cursor' ? 'auto' : menuWidth}\n withoutMobile\n >\n <ComboBoxMenu\n items={items}\n loading={loading}\n maxMenuHeight={maxMenuHeight}\n onValueChange={onValueChange}\n opened={opened}\n refMenu={this.menuRef}\n renderTotalCount={renderTotalCount}\n renderItem={renderItem}\n renderNotFound={renderNotFound}\n totalCount={totalCount}\n renderAddButton={renderAddButton}\n />\n </Popup>\n );\n }\n\n private getPopupMargin = (): number => {\n const paddingY = parseInt(this.theme.tokenInputPaddingY, 10) || 0;\n const outlineWidth = parseInt(this.theme.controlOutlineWidth, 10) || 0;\n const marginY = parseInt(this.theme.tokenMarginY, 10) || 0;\n return paddingY + outlineWidth + marginY;\n };\n\n private menuRef = (node: any) => (this.menu = node);\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
+ import { PopupProps } from '../../internal/Popup';
2
3
  import { ComboBoxMenuProps } from '../../internal/CustomComboBox';
3
4
  import { TokenInputMenuAlign, TokenInputProps } from './TokenInput';
4
5
  export interface TokenInputMenuProps<T> extends ComboBoxMenuProps<T> {
5
- anchorElement: HTMLElement;
6
+ anchorElement: PopupProps['anchorElement'];
6
7
  menuWidth: TokenInputProps<string>['menuWidth'];
7
8
  menuAlign: TokenInputMenuAlign;
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["TooltipMenu.tsx"],"names":["React","ThemeFactory","ThemeContext","PopupMenu","isProductionEnv","isTestEnv","CommonWrapper","rootNode","createPropsGetter","TooltipMenuDataTids","root","TooltipMenu","props","getProps","defaultProps","caption","Error","render","theme","create","popupPinOffset","tooltipMenuPinOffset","popupMargin","tooltipMenuMargin","popupPinSize","tooltipMenuPinSize","renderMain","setRootNode","menuMaxHeight","menuWidth","header","footer","positions","onOpen","onClose","disableAnimations","children","Component","__KONTUR_REACT_UI__"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,SAAT,QAA0C,0BAA1C;;AAEA,SAASC,eAAT,EAA0BC,SAA1B,QAA2C,8BAA3C;;;AAGA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,OAAO,IAAMC,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,mBAD2B,EAA5B;;;;;;;;;;;;;;;;;AAkBP,OAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAEA,IAAaC,WAAb,GADCJ,QACD,qHAUE,qBAAYK,KAAZ,EAAqC;AACnC,wCAAMA,KAAN,UADmC,MAF7BC,QAE6B,GAFlBL,iBAAiB,CAACG,WAAW,CAACG,YAAb,CAEC;;AAGnC,QAAI,CAACF,KAAK,CAACG,OAAP,IAAkB,CAACX,eAAvB,EAAwC;AACtC,YAAM,IAAIY,KAAJ,CAAU,+BAAV,CAAN;AACD,KALkC;AAMpC,GAhBH;;AAkBSC,EAAAA,MAlBT,GAkBE,kBAAgB;AACd;AACE,0BAAC,YAAD,CAAc,QAAd;AACG,gBAACC,KAAD,EAAW;AACV;AACE,8BAAC,YAAD,CAAc,QAAd;AACE,YAAA,KAAK,EAAEjB,YAAY,CAACkB,MAAb;AACL;AACEC,cAAAA,cAAc,EAAEF,KAAK,CAACG,oBADxB;AAEEC,cAAAA,WAAW,EAAEJ,KAAK,CAACK,iBAFrB;AAGEC,cAAAA,YAAY,EAAEN,KAAK,CAACO,kBAHtB,EADK;;AAMLP,YAAAA,KANK,CADT;;;AAUG,UAAA,MAAI,CAACQ,UAAL,EAVH,CADF;;;AAcD,OAhBH,CADF;;;AAoBD,GAvCH;;AAyCSA,EAAAA,UAzCT,GAyCE,sBAAoB;AAClB,QAAI,CAAC,KAAKd,KAAL,CAAWG,OAAhB,EAAyB;AACvB,aAAO,IAAP;AACD;;AAED;AACE,0BAAC,aAAD,aAAe,WAAW,EAAE,KAAKY,WAAjC,IAAkD,KAAKf,KAAvD;AACE,0BAAC,SAAD;AACE,oBAAUH,mBAAmB,CAACC,IADhC;AAEE,QAAA,aAAa,EAAE,KAAKE,KAAL,CAAWgB,aAF5B;AAGE,QAAA,SAAS,EAAE,KAAKhB,KAAL,CAAWiB,SAHxB;AAIE,QAAA,OAAO,EAAE,KAAKjB,KAAL,CAAWG,OAJtB;AAKE,QAAA,MAAM,EAAE,KAAKH,KAAL,CAAWkB,MALrB;AAME,QAAA,MAAM,EAAE,KAAKlB,KAAL,CAAWmB,MANrB;AAOE,QAAA,SAAS,EAAE,KAAKnB,KAAL,CAAWoB,SAPxB;AAQE,QAAA,MAAM,EAAE,KAAKpB,KAAL,CAAWqB,MARrB;AASE,QAAA,OAAO,EAAE,KAAKrB,KAAL,CAAWsB,OATtB;AAUE,QAAA,WAAW,MAVb;AAWE,QAAA,iBAAiB,EAAE,KAAKrB,QAAL,GAAgBsB,iBAXrC;;AAaG,WAAKvB,KAAL,CAAWwB,QAbd,CADF,CADF;;;;AAmBD,GAjEH,sBAAiCpC,KAAK,CAACqC,SAAvC,WACgBC,mBADhB,GACsC,aADtC,UAIgBxB,YAJhB,GAI6C,EACzCqB,iBAAiB,EAAE9B,SADsB,EAJ7C","sourcesContent":["import React from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { MenuItemProps } from '../MenuItem';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { MenuHeaderProps } from '../MenuHeader';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nexport type TooltipMenuChildType = React.ReactElement<MenuItemProps | {} | MenuHeaderProps>;\n\nexport interface TooltipMenuProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {\n children?: TooltipMenuChildType | TooltipMenuChildType[];\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол [`MenuHeader`](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен [`MenuSeparator`](#/Components/MenuSeparator).\n */\n footer?: React.ReactNode;\n /** Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n */\n positions?: PopupPositionsType[];\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n}\n\nexport const TooltipMenuDataTids = {\n root: 'TooltipMenu__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TooltipMenuProps, 'disableAnimations'>>;\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент.\n *\n * Положение меню задаётся с помощью массива `positions` и работает так:\n * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,\n * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.\n *\n * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.\n *\n * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.\n */\n@rootNode\nexport class TooltipMenu extends React.Component<TooltipMenuProps> {\n public static __KONTUR_REACT_UI__ = 'TooltipMenu';\n private setRootNode!: TSetRootNode;\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(TooltipMenu.defaultProps);\n\n constructor(props: TooltipMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipMenuPinOffset,\n popupMargin: theme.tooltipMenuMargin,\n popupPinSize: theme.tooltipMenuPinSize,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n data-tid={TooltipMenuDataTids.root}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n caption={this.props.caption}\n header={this.props.header}\n footer={this.props.footer}\n positions={this.props.positions}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n popupHasPin\n disableAnimations={this.getProps().disableAnimations}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["TooltipMenu.tsx"],"names":["React","ThemeFactory","ThemeContext","PopupMenu","isProductionEnv","isTestEnv","CommonWrapper","rootNode","createPropsGetter","TooltipMenuDataTids","root","TooltipMenu","props","getProps","defaultProps","caption","Error","render","theme","create","popupPinOffset","tooltipMenuPinOffset","popupMargin","tooltipMenuMargin","popupPinSize","tooltipMenuPinSize","renderMain","setRootNode","menuMaxHeight","menuWidth","header","footer","positions","onOpen","onClose","disableAnimations","children","Component","__KONTUR_REACT_UI__"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,SAAT,QAA0C,0BAA1C;;AAEA,SAASC,eAAT,EAA0BC,SAA1B,QAA2C,8BAA3C;;;AAGA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,OAAO,IAAMC,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,mBAD2B,EAA5B;;;;;;;;;;;;;;;;;AAkBP,OAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAEA,IAAaC,WAAb,GADCJ,QACD,qHAUE,qBAAYK,KAAZ,EAAqC;AACnC,wCAAMA,KAAN,UADmC,MAF7BC,QAE6B,GAFlBL,iBAAiB,CAACG,WAAW,CAACG,YAAb,CAEC;;AAGnC,QAAI,CAACF,KAAK,CAACG,OAAP,IAAkB,CAACX,eAAvB,EAAwC;AACtC,YAAM,IAAIY,KAAJ,CAAU,+BAAV,CAAN;AACD,KALkC;AAMpC,GAhBH;;AAkBSC,EAAAA,MAlBT,GAkBE,kBAAgB;AACd;AACE,0BAAC,YAAD,CAAc,QAAd;AACG,gBAACC,KAAD,EAAW;AACV;AACE,8BAAC,YAAD,CAAc,QAAd;AACE,YAAA,KAAK,EAAEjB,YAAY,CAACkB,MAAb;AACL;AACEC,cAAAA,cAAc,EAAEF,KAAK,CAACG,oBADxB;AAEEC,cAAAA,WAAW,EAAEJ,KAAK,CAACK,iBAFrB;AAGEC,cAAAA,YAAY,EAAEN,KAAK,CAACO,kBAHtB,EADK;;AAMLP,YAAAA,KANK,CADT;;;AAUG,UAAA,MAAI,CAACQ,UAAL,EAVH,CADF;;;AAcD,OAhBH,CADF;;;AAoBD,GAvCH;;AAyCSA,EAAAA,UAzCT,GAyCE,sBAAoB;AAClB,QAAI,CAAC,KAAKd,KAAL,CAAWG,OAAhB,EAAyB;AACvB,aAAO,IAAP;AACD;;AAED;AACE,0BAAC,aAAD,aAAe,WAAW,EAAE,KAAKY,WAAjC,IAAkD,KAAKf,KAAvD;AACE,0BAAC,SAAD;AACE,oBAAUH,mBAAmB,CAACC,IADhC;AAEE,QAAA,aAAa,EAAE,KAAKE,KAAL,CAAWgB,aAF5B;AAGE,QAAA,SAAS,EAAE,KAAKhB,KAAL,CAAWiB,SAHxB;AAIE,QAAA,OAAO,EAAE,KAAKjB,KAAL,CAAWG,OAJtB;AAKE,QAAA,MAAM,EAAE,KAAKH,KAAL,CAAWkB,MALrB;AAME,QAAA,MAAM,EAAE,KAAKlB,KAAL,CAAWmB,MANrB;AAOE,QAAA,SAAS,EAAE,KAAKnB,KAAL,CAAWoB,SAPxB;AAQE,QAAA,MAAM,EAAE,KAAKpB,KAAL,CAAWqB,MARrB;AASE,QAAA,OAAO,EAAE,KAAKrB,KAAL,CAAWsB,OATtB;AAUE,QAAA,WAAW,MAVb;AAWE,QAAA,iBAAiB,EAAE,KAAKrB,QAAL,GAAgBsB,iBAXrC;;AAaG,WAAKvB,KAAL,CAAWwB,QAbd,CADF,CADF;;;;AAmBD,GAjEH,sBAAiCpC,KAAK,CAACqC,SAAvC,WACgBC,mBADhB,GACsC,aADtC,UAIgBxB,YAJhB,GAI6C,EACzCqB,iBAAiB,EAAE9B,SADsB,EAJ7C","sourcesContent":["import React from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { MenuItemProps } from '../MenuItem';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { MenuHeaderProps } from '../MenuHeader';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nexport type TooltipMenuChildType = React.ReactElement<MenuItemProps | unknown | MenuHeaderProps>;\n\nexport interface TooltipMenuProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {\n children?: TooltipMenuChildType | TooltipMenuChildType[];\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол [`MenuHeader`](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен [`MenuSeparator`](#/Components/MenuSeparator).\n */\n footer?: React.ReactNode;\n /** Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n */\n positions?: PopupPositionsType[];\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n}\n\nexport const TooltipMenuDataTids = {\n root: 'TooltipMenu__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TooltipMenuProps, 'disableAnimations'>>;\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент.\n *\n * Положение меню задаётся с помощью массива `positions` и работает так:\n * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,\n * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.\n *\n * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.\n *\n * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.\n */\n@rootNode\nexport class TooltipMenu extends React.Component<TooltipMenuProps> {\n public static __KONTUR_REACT_UI__ = 'TooltipMenu';\n private setRootNode!: TSetRootNode;\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(TooltipMenu.defaultProps);\n\n constructor(props: TooltipMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipMenuPinOffset,\n popupMargin: theme.tooltipMenuMargin,\n popupPinSize: theme.tooltipMenuPinSize,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n data-tid={TooltipMenuDataTids.root}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n caption={this.props.caption}\n header={this.props.header}\n footer={this.props.footer}\n positions={this.props.positions}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n popupHasPin\n disableAnimations={this.getProps().disableAnimations}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n}\n"]}
@@ -4,7 +4,7 @@ import { MenuItemProps } from '../MenuItem';
4
4
  import { MenuHeaderProps } from '../MenuHeader';
5
5
  import { PopupPositionsType } from '../../internal/Popup';
6
6
  import { CommonProps } from '../../internal/CommonWrapper';
7
- export declare type TooltipMenuChildType = React.ReactElement<MenuItemProps | {} | MenuHeaderProps>;
7
+ export declare type TooltipMenuChildType = React.ReactElement<MenuItemProps | unknown | MenuHeaderProps>;
8
8
  export interface TooltipMenuProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {
9
9
  children?: TooltipMenuChildType | TooltipMenuChildType[];
10
10
  /** Максимальная высота меню */
@@ -1,7 +1,7 @@
1
- import React, { useRef } from 'react';
1
+ import { useEffect, useRef } from 'react';
2
2
  export var useEffectWithoutInitCall = function useEffectWithoutInitCall(effect, deps) {
3
3
  var isInitialRenderRef = useRef(true);
4
- React.useEffect(function () {
4
+ useEffect(function () {
5
5
  if (isInitialRenderRef.current) {
6
6
  isInitialRenderRef.current = false;
7
7
  } else {
@@ -1 +1 @@
1
- {"version":3,"sources":["useEffectWithoutInitCall.ts"],"names":["React","useRef","useEffectWithoutInitCall","effect","deps","isInitialRenderRef","useEffect","current"],"mappings":"AAAA,OAAOA,KAAP,IAAgCC,MAAhC,QAA8C,OAA9C;;AAEA,OAAO,IAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,MAAD,EAAqBC,IAArB,EAA8C;AACpF,MAAMC,kBAAkB,GAAGJ,MAAM,CAAC,IAAD,CAAjC;;AAEAD,EAAAA,KAAK,CAACM,SAAN,CAAgB,YAAM;AACpB,QAAID,kBAAkB,CAACE,OAAvB,EAAgC;AAC9BF,MAAAA,kBAAkB,CAACE,OAAnB,GAA6B,KAA7B;AACD,KAFD,MAEO;AACLJ,MAAAA,MAAM;AACP;AACF,GAND,EAMGC,IANH;AAOD,CAVM","sourcesContent":["import React, { DependencyList, useRef } from 'react';\n\nexport const useEffectWithoutInitCall = (effect: () => void, deps: DependencyList) => {\n const isInitialRenderRef = useRef(true);\n\n React.useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else {\n effect();\n }\n }, deps);\n};\n"]}
1
+ {"version":3,"sources":["useEffectWithoutInitCall.ts"],"names":["useEffect","useRef","useEffectWithoutInitCall","effect","deps","isInitialRenderRef","current"],"mappings":"AAAA,SAASA,SAAT,EAAoCC,MAApC,QAAkD,OAAlD;;AAEA,OAAO,IAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,MAAD,EAAqBC,IAArB,EAA8C;AACpF,MAAMC,kBAAkB,GAAGJ,MAAM,CAAC,IAAD,CAAjC;;AAEAD,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIK,kBAAkB,CAACC,OAAvB,EAAgC;AAC9BD,MAAAA,kBAAkB,CAACC,OAAnB,GAA6B,KAA7B;AACD,KAFD,MAEO;AACLH,MAAAA,MAAM;AACP;AACF,GANQ,EAMNC,IANM,CAAT;AAOD,CAVM","sourcesContent":["import { useEffect, DependencyList, useRef } from 'react';\n\nexport const useEffectWithoutInitCall = (effect: () => void, deps: DependencyList) => {\n const isInitialRenderRef = useRef(true);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else {\n effect();\n }\n }, deps);\n};\n"]}
@@ -1,2 +1,2 @@
1
- import React from 'react';
2
- export declare const useEffectWithoutInitCall: (effect: () => void, deps: React.DependencyList) => void;
1
+ import { DependencyList } from 'react';
2
+ export declare const useEffectWithoutInitCall: (effect: () => void, deps: DependencyList) => void;
@@ -1 +1 @@
1
- {"version":3,"sources":["useMemoObject.ts"],"names":["useMemo","useMemoObject","objectValue","Object","values"],"mappings":"AAAA,SAASA,OAAT,QAAwB,OAAxB;;AAEA,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAyBC,WAAzB,EAAkD;AAC7E,SAAOF,OAAO,CAAU,oBAAME,WAAN,EAAV,EAA6BC,MAAM,CAACC,MAAP,CAAcF,WAAd,CAA7B,CAAd;AACD,CAFM","sourcesContent":["import { useMemo } from 'react';\n\nexport const useMemoObject = <TObject extends object>(objectValue: TObject) => {\n return useMemo<TObject>(() => objectValue, Object.values(objectValue));\n};\n"]}
1
+ {"version":3,"sources":["useMemoObject.ts"],"names":["useMemo","useMemoObject","objectValue","Object","values"],"mappings":"AAAA,SAASA,OAAT,QAAwB,OAAxB;;;;AAIA,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAA4BC,WAA5B,EAAqD;AAChF,SAAOF,OAAO,CAAU,oBAAME,WAAN,EAAV,EAA6BC,MAAM,CAACC,MAAP,CAAcF,WAAd,CAA7B,CAAd;AACD,CAFM","sourcesContent":["import { useMemo } from 'react';\n\nimport { AnyObject } from '../lib/utils';\n\nexport const useMemoObject = <TObject extends AnyObject>(objectValue: TObject) => {\n return useMemo<TObject>(() => objectValue, Object.values(objectValue));\n};\n"]}
@@ -1 +1,2 @@
1
- export declare const useMemoObject: <TObject extends object>(objectValue: TObject) => TObject;
1
+ import { AnyObject } from '../lib/utils';
2
+ export declare const useMemoObject: <TObject extends AnyObject>(objectValue: TObject) => TObject;
@@ -1 +1 @@
1
- {"version":3,"sources":["BGRuler.tsx"],"names":["React","getDOMRect","createPropsGetter","BGRuler","getProps","defaultProps","iframe","componentDidMount","contentWindow","addEventListener","update","componentWillUnmount","removeEventListener","forceUpdate","iframeRef","ref","render","props","width","bottom","height","top","left","right","color","wrapper","position","overflow","border","visibility","marks","backgroundSize","backgroundRepeat","highMarks","backgroundImage","middleMarks","shortMarks","rulerWidth","labels","Array","Math","ceil","fill","map","value","index","label","fontFamily","fontSize","lineHeight","Component"],"mappings":"gIAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,UAAT,QAA2B,uBAA3B;AACA,SAASC,iBAAT,QAAkC,0BAAlC;;;;;;;;;;;;;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA,WAAaC,OAAb;;;;;;;;;AASUC,IAAAA,QATV,GASqBF,iBAAiB,CAACC,OAAO,CAACE,YAAT,CATtC;;AAWUC,IAAAA,MAXV,GAW6C,IAX7C;;AAaSC,IAAAA,iBAbT,GAa6B,YAAM;AAC/B,UAAI,MAAKD,MAAL,IAAe,MAAKA,MAAL,CAAYE,aAA/B,EAA8C;AAC5C,cAAKF,MAAL,CAAYE,aAAZ,CAA0BC,gBAA1B,CAA2C,QAA3C,EAAqD,MAAKC,MAA1D,EAAkE,IAAlE;AACD;AACD,YAAKA,MAAL;AACD,KAlBH;;AAoBSC,IAAAA,oBApBT,GAoBgC,YAAM;AAClC,UAAI,MAAKL,MAAL,IAAe,MAAKA,MAAL,CAAYE,aAA/B,EAA8C;AAC5C,cAAKF,MAAL,CAAYE,aAAZ,CAA0BI,mBAA1B,CAA8C,QAA9C,EAAwD,MAAKF,MAA7D,EAAqE,IAArE;AACD;AACF,KAxBH;;AA0BSA,IAAAA,MA1BT,GA0BkB,YAAM;AACpB,YAAKG,WAAL;AACD,KA5BH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgHUC,IAAAA,SAhHV,GAgHsB,UAACC,GAAD,EAAmC;AACrD,YAAKT,MAAL,GAAcS,GAAd;AACD,KAlHH,qDA8BSC,MA9BT,GA8BE,kBAAgB,CACd,kBAA0B,KAAKC,KAA/B,CAAQC,KAAR,eAAQA,KAAR,CAAeC,MAAf,eAAeA,MAAf,CACA,qBAA4C,KAAKf,QAAL,EAA5C,CAAQgB,MAAR,kBAAQA,MAAR,CAAgBC,GAAhB,kBAAgBA,GAAhB,CAAqBC,IAArB,kBAAqBA,IAArB,CAA2BC,KAA3B,kBAA2BA,KAA3B,CAAkCC,KAAlC,kBAAkCA,KAAlC,CACA,IAAMC,OAA4B,GAAG,EACnCC,QAAQ,EAAE,UADyB,EAEnCR,KAAK,EAALA,KAFmC,EAGnCE,MAAM,EAANA,MAHmC,EAInCC,GAAG,EAAHA,GAJmC,EAKnCF,MAAM,EAANA,MALmC,EAMnCG,IAAI,EAAJA,IANmC,EAOnCC,KAAK,EAALA,KAPmC,EAQnCI,QAAQ,EAAE,QARyB,EAArC,CAUA,IAAMrB,MAA2B,GAAG,EAClCoB,QAAQ,EAAE,UADwB,EAElCR,KAAK,EAAE,MAF2B,EAGlCE,MAAM,EAAE,MAH0B,EAIlCQ,MAAM,EAAE,CAJ0B,EAKlCC,UAAU,EAAE,QALsB,EAApC,CAOA,IAAMC,KAA0B,GAAG,EACjCJ,QAAQ,EAAE,UADuB,EAEjCL,GAAG,EAAE,CAF4B,EAGjCC,IAAI,EAAE,CAH2B,EAIjCJ,KAAK,EAAE,MAJ0B,EAKjCa,cAAc,EAAE,YALiB,EAMjCC,gBAAgB,EAAE,UANe,EAAnC,CAQA,IAAMC,SAA8B,gBAC/BH,KAD+B,IAElCV,MAAM,EAAE,MAF0B,EAGlCc,eAAe,8BAA4BV,KAA5B,YAAwCA,KAAxC,2BAHmB,GAApC,CAKA,IAAMW,WAAgC,gBACjCL,KADiC,IAEpCV,MAAM,EAAE,KAF4B,EAGpCc,eAAe,+DAA6DV,KAA7D,eAA4EA,KAA5E,6BAHqB,GAAtC,CAKA,IAAMY,UAA+B,gBAChCN,KADgC,IAEnCV,MAAM,EAAE,KAF2B,EAGnCc,eAAe,wEAC4CV,KAD5C,cAC0DA,KAD1D,mGAE6CA,KAF7C,eAE4DA,KAF5D,mGAG6CA,KAH7C,eAG4DA,KAH5D,mGAI6CA,KAJ7C,eAI4DA,KAJ5D,mGAK6CA,KAL7C,eAK4DA,KAL5D,mGAM6CA,KAN7C,eAM4DA,KAN5D,mGAO6CA,KAP7C,eAO4DA,KAP5D,mGAQ6CA,KAR7C,eAQ4DA,KAR5D,qCAHoB,GAArC,CAcA,IAAMa,UAAU,GAAGpC,UAAU,CAAC,KAAKK,MAAN,CAAV,CAAwBY,KAA3C,CACA,IAAMoB,MAAM,GAAGC,KAAK,CAACC,IAAI,CAACC,IAAL,CAAUJ,UAAU,GAAG,GAAvB,IAA8B,CAA/B,CAAL,CACZK,IADY,CACP,IADO,EAEZC,GAFY,CAER,UAACC,KAAD,EAAQC,KAAR,EAAkB,CACrB,IAAMC,KAA0B,GAAG,EACjCpB,QAAQ,EAAE,UADuB,EAEjCqB,UAAU,EAAE,OAFqB,EAGjCC,QAAQ,EAAE,EAHuB,EAIjCC,UAAU,EAAE,CAJqB,EAKjCzB,KAAK,EAALA,KALiC,EAMjCL,MAAM,EAAE,CAAC,CANwB,EAOjCG,IAAI,EAAEuB,KAAK,GAAG,GAAR,GAAc,CAPa,EAAnC,CASA,oBACE,8BAAM,GAAG,EAAEA,KAAX,EAAkB,KAAK,EAAEC,KAAzB,IACGD,KAAK,GAAG,GADX,CADF,CAKD,CAjBY,CAAf,CAkBA,oBACE,6BAAK,KAAK,EAAEpB,OAAZ,iBACE,6BAAK,KAAK,EAAEQ,SAAZ,GADF,eAEE,6BAAK,KAAK,EAAEE,WAAZ,GAFF,eAGE,6BAAK,KAAK,EAAEC,UAAZ,GAHF,EAIGE,MAJH,eAKE,gCAAQ,KAAK,EAAC,SAAd,EAAwB,KAAK,EAAEhC,MAA/B,EAAuC,GAAG,EAAE,KAAKQ,SAAjD,GALF,CADF,CASD,CA9GH,kBAA6Bd,KAAK,CAACkD,SAAnC,EAAa/C,O,CACGE,Y,GAA6B,EACzCe,MAAM,EAAE,EADiC,EAEzCC,GAAG,EAAE,CAFoC,EAGzCC,IAAI,EAAE,CAHmC,EAIzCC,KAAK,EAAE,CAJkC,EAKzCC,KAAK,EAAE,MALkC,E","sourcesContent":["import React from 'react';\n\nimport { getDOMRect } from '../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../lib/createPropsGetter';\n\ninterface BGRulerProps {\n width?: string | number;\n height?: string | number;\n top?: string | number;\n bottom?: string | number;\n right?: string | number;\n left?: string | number;\n color?: string;\n}\n\ntype DefaultProps = Required<Pick<BGRulerProps, 'height' | 'top' | 'left' | 'right' | 'color'>>;\n\n/**\n * Компонент рисует пиксельную линейку на заднем фоне.\n * Помогает контролировать размеры элементов при скриншотном тестировании.\n *\n * @see FxInput/__stories__/FxInput.stories.tsx\n */\nexport class BGRuler extends React.Component<BGRulerProps> {\n public static defaultProps: DefaultProps = {\n height: 20,\n top: 0,\n left: 0,\n right: 0,\n color: '#333',\n };\n\n private getProps = createPropsGetter(BGRuler.defaultProps);\n\n private iframe: HTMLIFrameElement | null = null;\n\n public componentDidMount = () => {\n if (this.iframe && this.iframe.contentWindow) {\n this.iframe.contentWindow.addEventListener('resize', this.update, true);\n }\n this.update();\n };\n\n public componentWillUnmount = () => {\n if (this.iframe && this.iframe.contentWindow) {\n this.iframe.contentWindow.removeEventListener('resize', this.update, true);\n }\n };\n\n public update = () => {\n this.forceUpdate();\n };\n\n public render() {\n const { width, bottom } = this.props;\n const { height, top, left, right, color } = this.getProps();\n const wrapper: React.CSSProperties = {\n position: 'absolute',\n width,\n height,\n top,\n bottom,\n left,\n right,\n overflow: 'hidden',\n };\n const iframe: React.CSSProperties = {\n position: 'absolute',\n width: '100%',\n height: '100%',\n border: 0,\n visibility: 'hidden',\n };\n const marks: React.CSSProperties = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n backgroundSize: '100px 20px',\n backgroundRepeat: 'repeat-x',\n };\n const highMarks: React.CSSProperties = {\n ...marks,\n height: '100%',\n backgroundImage: `linear-gradient(90deg, ${color} 0, ${color} 1px, transparent 1px)`,\n };\n const middleMarks: React.CSSProperties = {\n ...marks,\n height: '75%',\n backgroundImage: `linear-gradient(90deg, transparent 0, transparent 49px, ${color} 49px, ${color} 50px, transparent 50px)`,\n };\n const shortMarks: React.CSSProperties = {\n ...marks,\n height: '40%',\n backgroundImage: `\n linear-gradient(90deg, transparent 0, transparent 9px, ${color} 9px, ${color} 10px, transparent 10px),\n linear-gradient(90deg, transparent 0, transparent 19px, ${color} 19px, ${color} 20px, transparent 20px),\n linear-gradient(90deg, transparent 0, transparent 29px, ${color} 29px, ${color} 30px, transparent 30px),\n linear-gradient(90deg, transparent 0, transparent 39px, ${color} 39px, ${color} 40px, transparent 40px),\n linear-gradient(90deg, transparent 0, transparent 59px, ${color} 59px, ${color} 60px, transparent 60px),\n linear-gradient(90deg, transparent 0, transparent 69px, ${color} 69px, ${color} 70px, transparent 70px),\n linear-gradient(90deg, transparent 0, transparent 79px, ${color} 79px, ${color} 80px, transparent 80px),\n linear-gradient(90deg, transparent 0, transparent 89px, ${color} 89px, ${color} 90px, transparent 90px)\n `,\n };\n const rulerWidth = getDOMRect(this.iframe).width;\n const labels = Array(Math.ceil(rulerWidth / 100) + 1)\n .fill(null)\n .map((value, index) => {\n const label: React.CSSProperties = {\n position: 'absolute',\n fontFamily: 'Arial',\n fontSize: 10,\n lineHeight: 1,\n color,\n bottom: -1,\n left: index * 100 + 5,\n };\n return (\n <span key={index} style={label}>\n {index * 100}\n </span>\n );\n });\n return (\n <div style={wrapper}>\n <div style={highMarks} />\n <div style={middleMarks} />\n <div style={shortMarks} />\n {labels}\n <iframe title=\"BGRuler\" style={iframe} ref={this.iframeRef} />\n </div>\n );\n }\n\n private iframeRef = (ref: HTMLIFrameElement | null) => {\n this.iframe = ref;\n };\n}\n"]}
1
+ {"version":3,"sources":["BGRuler.tsx"],"names":["React","getDOMRect","createPropsGetter","BGRuler","getProps","defaultProps","iframe","componentDidMount","contentWindow","addEventListener","update","componentWillUnmount","removeEventListener","forceUpdate","iframeRef","ref","render","props","width","bottom","height","top","left","right","color","wrapper","position","overflow","border","visibility","marks","backgroundSize","backgroundRepeat","highMarks","backgroundImage","middleMarks","shortMarks","rulerWidth","labels","Array","Math","ceil","fill","map","value","index","label","fontFamily","fontSize","lineHeight","Component"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { getDOMRect } from '../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../lib/createPropsGetter';\n\nexport interface BGRulerProps {\n width?: string | number;\n height?: string | number;\n top?: string | number;\n bottom?: string | number;\n right?: string | number;\n left?: string | number;\n color?: string;\n}\n\ntype DefaultProps = Required<Pick<BGRulerProps, 'height' | 'top' | 'left' | 'right' | 'color'>>;\n\n/**\n * Компонент рисует пиксельную линейку на заднем фоне.\n * Помогает контролировать размеры элементов при скриншотном тестировании.\n *\n * @see FxInput/__stories__/FxInput.stories.tsx\n */\nexport class BGRuler extends React.Component<BGRulerProps> {\n public static defaultProps: DefaultProps = {\n height: 20,\n top: 0,\n left: 0,\n right: 0,\n color: '#333',\n };\n\n private getProps = createPropsGetter(BGRuler.defaultProps);\n\n private iframe: HTMLIFrameElement | null = null;\n\n public componentDidMount = () => {\n if (this.iframe && this.iframe.contentWindow) {\n this.iframe.contentWindow.addEventListener('resize', this.update, true);\n }\n this.update();\n };\n\n public componentWillUnmount = () => {\n if (this.iframe && this.iframe.contentWindow) {\n this.iframe.contentWindow.removeEventListener('resize', this.update, true);\n }\n };\n\n public update = () => {\n this.forceUpdate();\n };\n\n public render() {\n const { width, bottom } = this.props;\n const { height, top, left, right, color } = this.getProps();\n const wrapper: React.CSSProperties = {\n position: 'absolute',\n width,\n height,\n top,\n bottom,\n left,\n right,\n overflow: 'hidden',\n };\n const iframe: React.CSSProperties = {\n position: 'absolute',\n width: '100%',\n height: '100%',\n border: 0,\n visibility: 'hidden',\n };\n const marks: React.CSSProperties = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n backgroundSize: '100px 20px',\n backgroundRepeat: 'repeat-x',\n };\n const highMarks: React.CSSProperties = {\n ...marks,\n height: '100%',\n backgroundImage: `linear-gradient(90deg, ${color} 0, ${color} 1px, transparent 1px)`,\n };\n const middleMarks: React.CSSProperties = {\n ...marks,\n height: '75%',\n backgroundImage: `linear-gradient(90deg, transparent 0, transparent 49px, ${color} 49px, ${color} 50px, transparent 50px)`,\n };\n const shortMarks: React.CSSProperties = {\n ...marks,\n height: '40%',\n backgroundImage: `\n linear-gradient(90deg, transparent 0, transparent 9px, ${color} 9px, ${color} 10px, transparent 10px),\n linear-gradient(90deg, transparent 0, transparent 19px, ${color} 19px, ${color} 20px, transparent 20px),\n linear-gradient(90deg, transparent 0, transparent 29px, ${color} 29px, ${color} 30px, transparent 30px),\n linear-gradient(90deg, transparent 0, transparent 39px, ${color} 39px, ${color} 40px, transparent 40px),\n linear-gradient(90deg, transparent 0, transparent 59px, ${color} 59px, ${color} 60px, transparent 60px),\n linear-gradient(90deg, transparent 0, transparent 69px, ${color} 69px, ${color} 70px, transparent 70px),\n linear-gradient(90deg, transparent 0, transparent 79px, ${color} 79px, ${color} 80px, transparent 80px),\n linear-gradient(90deg, transparent 0, transparent 89px, ${color} 89px, ${color} 90px, transparent 90px)\n `,\n };\n const rulerWidth = getDOMRect(this.iframe).width;\n const labels = Array(Math.ceil(rulerWidth / 100) + 1)\n .fill(null)\n .map((value, index) => {\n const label: React.CSSProperties = {\n position: 'absolute',\n fontFamily: 'Arial',\n fontSize: 10,\n lineHeight: 1,\n color,\n bottom: -1,\n left: index * 100 + 5,\n };\n return (\n <span key={index} style={label}>\n {index * 100}\n </span>\n );\n });\n return (\n <div style={wrapper}>\n <div style={highMarks} />\n <div style={middleMarks} />\n <div style={shortMarks} />\n {labels}\n <iframe title=\"BGRuler\" style={iframe} ref={this.iframeRef} />\n </div>\n );\n }\n\n private iframeRef = (ref: HTMLIFrameElement | null) => {\n this.iframe = ref;\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- interface BGRulerProps {
2
+ export interface BGRulerProps {
3
3
  width?: string | number;
4
4
  height?: string | number;
5
5
  top?: string | number;
@@ -1,7 +1,7 @@
1
1
  import { Theme } from '../../lib/theming/Theme';
2
2
  import { DayCellViewModel } from './DayCellViewModel';
3
3
  export declare class MonthViewModel {
4
- static create: (month: number, year: number) => MonthViewModel;
4
+ static create: (...args: number[]) => any;
5
5
  readonly daysCount: number;
6
6
  readonly offset: number;
7
7
  readonly month: number;
@@ -1,9 +1,2 @@
1
1
  import { Theme } from '../../lib/theming/Theme';
2
- export declare const themeConfig: (t: Theme) => {
3
- DAY_SIZE: number;
4
- MONTH_TITLE_HEIGHT: number;
5
- MONTH_TITLE_OFFSET_HEIGHT: number;
6
- WRAPPER_HEIGHT: number;
7
- MONTH_BOTTOM_MARGIN: number;
8
- MAX_MONTHS_TO_APPEND_ON_SCROLL: number;
9
- };
2
+ export declare const themeConfig: (t: Theme) => any;
@@ -52,6 +52,7 @@ export var CommonWrapper = rootNode(_class = /*#__PURE__*/function (_React$Compo
52
52
  var _proto = CommonWrapper.prototype;
53
53
 
54
54
  _proto.render = function render() {
55
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
55
56
  var _extractCommonProps = extractCommonProps(this.props),
56
57
  _extractCommonProps$ = _extractCommonProps[0],
57
58
  className = _extractCommonProps$.className,
@@ -78,10 +79,10 @@ var extractCommonProps = function extractCommonProps(props) {
78
79
 
79
80
  for (var key in props) {
80
81
  if (isCommonProp(key)) {
81
- // @ts-ignore
82
+ // @ts-expect-error: See: https://github.com/skbkontur/retail-ui/pull/2257#discussion_r565275843 and https://github.com/skbkontur/retail-ui/pull/2257#discussion_r569542736.
82
83
  common[key] = props[key];
83
84
  } else {
84
- // @ts-ignore
85
+ // @ts-expect-error: Read the comment above.
85
86
  rest[key] = props[key];
86
87
  }
87
88
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["CommonWrapper.tsx"],"names":["React","isFunction","isRefableElement","cx","getRootNode","rootNode","isInstanceWithRootNode","callChildRef","CommonWrapper","rootNodeSubscription","ref","instance","setRootNode","props","rootNodeRef","remove","addRootNodeChangeListener","node","originalRef","child","render","extractCommonProps","className","style","children","dataProps","rest","isValidElement","cloneElement","Component","common","key","isCommonProp","name","indexOf"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isFunction, isRefableElement } from '../../lib/utils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { Nullable } from '../../typings/utility-types';\nimport { getRootNode, rootNode, TSetRootNode, TRootNodeSubscription, isInstanceWithRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\n\nexport interface CommonProps {\n /**\n * HTML-атрибут `class`.\n */\n className?: React.HTMLAttributes<HTMLElement>['className'];\n /**\n * HTML-атрибут `style`.\n */\n style?: React.HTMLAttributes<HTMLElement>['style'];\n /**\n * На равне с data-tid транслируются любые data-атрибуты. Они попадают на корневой элемент.\n */\n 'data-tid'?: string;\n children?: React.ReactNode;\n}\n\ninterface CommonPropsRootNodeRef {\n rootNodeRef?: (instance: Nullable<Element>) => void;\n}\n\nexport type NotCommonProps<P> = Omit<P, keyof CommonProps>;\n\nexport type CommonWrapperProps<P> = P & {\n children: React.ReactNode | ((rest: CommonWrapperRestProps<P>) => React.ReactNode);\n};\nexport type CommonWrapperRestProps<P> = Omit<NotCommonProps<P>, 'children'>;\n\n@rootNode\nexport class CommonWrapper<P extends CommonProps & CommonPropsRootNodeRef> extends React.Component<\n CommonWrapperProps<P> & CommonPropsRootNodeRef\n> {\n private child: React.ReactNode;\n private setRootNode!: TSetRootNode;\n private rootNodeSubscription: Nullable<TRootNodeSubscription> = null;\n\n render() {\n const [{ className, style, children, rootNodeRef, ...dataProps }, { ...rest }] = extractCommonProps(this.props);\n this.child = isFunction(children) ? children(rest) : children;\n return React.isValidElement<CommonProps & React.RefAttributes<any>>(this.child)\n ? React.cloneElement(this.child, {\n ref: isRefableElement(this.child) ? this.ref : null,\n className: cx(this.child.props.className, className),\n style: {\n ...this.child.props.style,\n ...style,\n },\n ...dataProps,\n })\n : this.child;\n }\n\n private ref = (instance: Nullable<React.ReactInstance>) => {\n this.setRootNode(instance);\n this.props.rootNodeRef?.(getRootNode(instance));\n\n // refs are called when instances change\n // so we have to renew or remove old subscription\n this.rootNodeSubscription?.remove();\n this.rootNodeSubscription = null;\n\n if (instance && isInstanceWithRootNode(instance)) {\n this.rootNodeSubscription = instance.addRootNodeChangeListener?.((node) => {\n this.setRootNode(node);\n this.props.rootNodeRef?.(node);\n });\n }\n\n const originalRef = (this.child as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n };\n}\n\nconst extractCommonProps = <P extends CommonProps & CommonPropsRootNodeRef>(\n props: P,\n): [CommonProps & CommonPropsRootNodeRef, NotCommonProps<P>] => {\n const common = {} as CommonProps & CommonPropsRootNodeRef;\n const rest = {} as NotCommonProps<P>;\n\n for (const key in props) {\n if (isCommonProp(key)) {\n // @ts-ignore\n common[key] = props[key];\n } else {\n // @ts-ignore\n rest[key] = props[key];\n }\n }\n\n return [common, rest];\n};\n\nconst isCommonProp = (name: string) => {\n switch (true) {\n case name === 'className':\n case name === 'style':\n case name === 'rootNodeRef':\n case name === 'children':\n case name.indexOf('data-') === 0: // все data-атрибуты\n return true;\n default:\n return false;\n }\n};\n"]}
1
+ {"version":3,"sources":["CommonWrapper.tsx"],"names":["React","isFunction","isRefableElement","cx","getRootNode","rootNode","isInstanceWithRootNode","callChildRef","CommonWrapper","rootNodeSubscription","ref","instance","setRootNode","props","rootNodeRef","remove","addRootNodeChangeListener","node","originalRef","child","render","extractCommonProps","className","style","children","dataProps","rest","isValidElement","cloneElement","Component","common","key","isCommonProp","name","indexOf"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isFunction, isRefableElement } from '../../lib/utils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { Nullable } from '../../typings/utility-types';\nimport { getRootNode, rootNode, TSetRootNode, TRootNodeSubscription, isInstanceWithRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\n\nexport interface CommonProps {\n /**\n * HTML-атрибут `class`.\n */\n className?: React.HTMLAttributes<HTMLElement>['className'];\n /**\n * HTML-атрибут `style`.\n */\n style?: React.HTMLAttributes<HTMLElement>['style'];\n /**\n * На равне с data-tid транслируются любые data-атрибуты. Они попадают на корневой элемент.\n */\n 'data-tid'?: string;\n children?: React.ReactNode;\n}\n\ninterface CommonPropsRootNodeRef {\n rootNodeRef?: (instance: Nullable<Element>) => void;\n}\n\nexport type NotCommonProps<P> = Omit<P, keyof CommonProps>;\n\nexport type CommonWrapperProps<P> = P & {\n children: React.ReactNode | ((rest: CommonWrapperRestProps<P>) => React.ReactNode);\n};\nexport type CommonWrapperRestProps<P> = Omit<NotCommonProps<P>, 'children'>;\n\n@rootNode\nexport class CommonWrapper<P extends CommonProps & CommonPropsRootNodeRef> extends React.Component<\n CommonWrapperProps<P> & CommonPropsRootNodeRef\n> {\n private child: React.ReactNode;\n private setRootNode!: TSetRootNode;\n private rootNodeSubscription: Nullable<TRootNodeSubscription> = null;\n\n render() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [{ className, style, children, rootNodeRef, ...dataProps }, { ...rest }] = extractCommonProps(this.props);\n this.child = isFunction(children) ? children(rest) : children;\n return React.isValidElement<CommonProps & React.RefAttributes<any>>(this.child)\n ? React.cloneElement(this.child, {\n ref: isRefableElement(this.child) ? this.ref : null,\n className: cx(this.child.props.className, className),\n style: {\n ...this.child.props.style,\n ...style,\n },\n ...dataProps,\n })\n : this.child;\n }\n\n private ref = (instance: Nullable<React.ReactInstance>) => {\n this.setRootNode(instance);\n this.props.rootNodeRef?.(getRootNode(instance));\n\n // refs are called when instances change\n // so we have to renew or remove old subscription\n this.rootNodeSubscription?.remove();\n this.rootNodeSubscription = null;\n\n if (instance && isInstanceWithRootNode(instance)) {\n this.rootNodeSubscription = instance.addRootNodeChangeListener?.((node) => {\n this.setRootNode(node);\n this.props.rootNodeRef?.(node);\n });\n }\n\n const originalRef = (this.child as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n };\n}\n\nconst extractCommonProps = <P extends CommonProps & CommonPropsRootNodeRef>(\n props: P,\n): [CommonProps & CommonPropsRootNodeRef, NotCommonProps<P>] => {\n const common = {} as CommonProps & CommonPropsRootNodeRef;\n const rest = {} as NotCommonProps<P>;\n\n for (const key in props) {\n if (isCommonProp(key)) {\n // @ts-expect-error: See: https://github.com/skbkontur/retail-ui/pull/2257#discussion_r565275843 and https://github.com/skbkontur/retail-ui/pull/2257#discussion_r569542736.\n common[key] = props[key];\n } else {\n // @ts-expect-error: Read the comment above.\n rest[key] = props[key];\n }\n }\n\n return [common, rest];\n};\n\nconst isCommonProp = (name: string) => {\n switch (true) {\n case name === 'className':\n case name === 'style':\n case name === 'rootNodeRef':\n case name === 'children':\n case name.indexOf('data-') === 0: // все data-атрибуты\n return true;\n default:\n return false;\n }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["ComponentTable.tsx"],"names":["React","isFunctionalComponent","createPropsGetter","renderPropsDesc","props","Object","keys","map","key","value","isValidElement","createElement","JSON","stringify","node","index","nodes","length","ComponentTable","getProps","defaultProps","render","rows","cols","Component","presetProps","presetState","borderSpacing","marginBottom","captionSide","i","colProps","whiteSpace","rowIndex","rowProps","state","rowState","colIndex","colState","undefined","el","setState"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isFunctionalComponent, DefaultizeProps } from '../lib/utils';\nimport { createPropsGetter } from '../lib/createPropsGetter';\n\n// TODO We should output state too\nconst renderPropsDesc = <P extends Record<string, any>>(props: P): React.ReactNode => {\n return Object.keys(props)\n .map((key) => {\n const value = props[key];\n switch (typeof value) {\n case 'boolean':\n return value ? key : `${key}: false`;\n case 'string':\n return `${key}: \"${value}\"`;\n case 'object':\n if (React.isValidElement(value)) {\n return React.createElement('span', {}, [`${key}: `, value]);\n }\n return `${key}: ${JSON.stringify(value)}`;\n default:\n return `${key}: ${value}`;\n }\n })\n .map((node, index, nodes) => (\n <span key={index}>\n {node} {index + 1 < nodes.length ? ', ' : null}\n </span>\n ));\n};\n\ntype StatePropsObject<P, S> = { props?: Partial<P>; state?: Partial<S> };\nexport type StatePropsCombinations<P, S> = Array<StatePropsObject<P, S>>;\n\nexport type StateType<C> = C extends React.Component<any, infer S> | React.ComponentClass<any, infer S> ? S : never;\n\nexport interface ComponentTableProps<C, P, S> {\n rows?: StatePropsCombinations<P, S>;\n cols?: StatePropsCombinations<P, S>;\n presetProps?: DefaultizeProps<C, P>;\n presetState?: Partial<S>;\n Component: C;\n}\n\ntype DefaultProps<C, P, S> = Required<Pick<ComponentTableProps<C, P, S>, 'presetProps' | 'presetState'>>;\n\n// Known limitation: Don't work when component have `propTypes` static field\nexport class ComponentTable<\n T extends React.Component<any, any, any>,\n C extends React.ComponentType<any>,\n P extends React.ComponentProps<C>,\n> extends React.Component<\n ComponentTableProps<C extends React.ComponentClass<P, any> ? React.ClassType<P, T, C> : C, P, StateType<C>>\n> {\n public static defaultProps: DefaultProps<unknown, Record<string | number | symbol, unknown>, unknown> = {\n presetProps: {},\n presetState: {},\n };\n\n private getProps = createPropsGetter(ComponentTable.defaultProps);\n\n public render() {\n const { rows = [], cols = [], Component } = this.props;\n const { presetProps, presetState } = this.getProps();\n return (\n <table style={{ borderSpacing: 10, marginBottom: 20 }}>\n <caption style={{ captionSide: 'bottom' }}>{renderPropsDesc(presetProps)}</caption>\n <thead>\n <tr>\n <th />\n {cols.map(({ props: colProps = {} }, i) => (\n <th style={{ whiteSpace: 'nowrap' }} key={i}>\n {renderPropsDesc(colProps)}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map(({ props: rowProps = {}, state: rowState = {} }, rowIndex) => (\n <tr key={rowIndex}>\n <td style={{ whiteSpace: 'nowrap' }}>{renderPropsDesc(rowProps)}</td>\n {cols.map(({ props: colProps = {}, state: colState = {} }, colIndex) => (\n <td key={colIndex}>\n {/* Defaultized props incompatible with JSX.LibraryManagedAttributes so just ignore it\n // @ts-ignore */}\n <Component\n {...presetProps}\n {...rowProps}\n {...colProps}\n ref={\n // NOTE Call setState from outside is bad practice, but here it needed for test state combinations\n isFunctionalComponent(Component)\n ? undefined\n : (el: React.Component<P, StateType<C>>) =>\n el &&\n el.setState((state: StateType<C>) => ({\n ...state,\n ...presetState,\n ...rowState,\n ...colState,\n }))\n }\n />\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["ComponentTable.tsx"],"names":["React","isFunctionalComponent","createPropsGetter","renderPropsDesc","props","Object","keys","map","key","value","isValidElement","createElement","JSON","stringify","node","index","nodes","length","ComponentTable","getProps","defaultProps","render","rows","cols","Component","presetProps","presetState","borderSpacing","marginBottom","captionSide","i","colProps","whiteSpace","rowIndex","rowProps","state","rowState","colIndex","colState","undefined","el","setState"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isFunctionalComponent, DefaultizeProps } from '../lib/utils';\nimport { createPropsGetter } from '../lib/createPropsGetter';\n\n// TODO We should output state too\nconst renderPropsDesc = <P extends Record<string, any>>(props: P): React.ReactNode => {\n return Object.keys(props)\n .map((key) => {\n const value = props[key];\n switch (typeof value) {\n case 'boolean':\n return value ? key : `${key}: false`;\n case 'string':\n return `${key}: \"${value}\"`;\n case 'object':\n if (React.isValidElement(value)) {\n return React.createElement('span', {}, [`${key}: `, value]);\n }\n return `${key}: ${JSON.stringify(value)}`;\n default:\n return `${key}: ${value}`;\n }\n })\n .map((node, index, nodes) => (\n <span key={index}>\n {node} {index + 1 < nodes.length ? ', ' : null}\n </span>\n ));\n};\n\ninterface StatePropsObject<P, S> {\n props?: Partial<P>;\n state?: Partial<S>;\n}\nexport type StatePropsCombinations<P, S> = Array<StatePropsObject<P, S>>;\n\nexport type StateType<C> = C extends React.Component<any, infer S> | React.ComponentClass<any, infer S> ? S : never;\n\nexport interface ComponentTableProps<C, P, S> {\n rows?: StatePropsCombinations<P, S>;\n cols?: StatePropsCombinations<P, S>;\n presetProps?: DefaultizeProps<C, P>;\n presetState?: Partial<S>;\n Component: C;\n}\n\ntype DefaultProps<C, P, S> = Required<Pick<ComponentTableProps<C, P, S>, 'presetProps' | 'presetState'>>;\n\n// Known limitation: Don't work when component have `propTypes` static field\nexport class ComponentTable<\n T extends React.Component<any, any, any>,\n C extends React.ComponentType<any>,\n P extends React.ComponentProps<C>,\n> extends React.Component<\n ComponentTableProps<C extends React.ComponentClass<P, any> ? React.ClassType<P, T, C> : C, P, StateType<C>>\n> {\n public static defaultProps: DefaultProps<unknown, Record<string | number | symbol, unknown>, unknown> = {\n presetProps: {},\n presetState: {},\n };\n\n private getProps = createPropsGetter(ComponentTable.defaultProps);\n\n public render() {\n const { rows = [], cols = [], Component } = this.props;\n const { presetProps, presetState } = this.getProps();\n return (\n <table style={{ borderSpacing: 10, marginBottom: 20 }}>\n <caption style={{ captionSide: 'bottom' }}>{renderPropsDesc(presetProps)}</caption>\n <thead>\n <tr>\n <th />\n {cols.map(({ props: colProps = {} }, i) => (\n <th style={{ whiteSpace: 'nowrap' }} key={i}>\n {renderPropsDesc(colProps)}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map(({ props: rowProps = {}, state: rowState = {} }, rowIndex) => (\n <tr key={rowIndex}>\n <td style={{ whiteSpace: 'nowrap' }}>{renderPropsDesc(rowProps)}</td>\n {cols.map(({ props: colProps = {}, state: colState = {} }, colIndex) => (\n <td key={colIndex}>\n {/* @ts-expect-error: Defaultized props incompatible with JSX.LibraryManagedAttributes so just ignore it */}\n <Component\n {...presetProps}\n {...rowProps}\n {...colProps}\n ref={\n // NOTE Call setState from outside is bad practice, but here it needed for test state combinations\n isFunctionalComponent(Component)\n ? undefined\n : (el: React.Component<P, StateType<C>>) =>\n el &&\n el.setState((state: StateType<C>) => ({\n ...state,\n ...presetState,\n ...rowState,\n ...colState,\n }))\n }\n />\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n }\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import { DefaultizeProps } from '../lib/utils';
3
- declare type StatePropsObject<P, S> = {
3
+ interface StatePropsObject<P, S> {
4
4
  props?: Partial<P>;
5
5
  state?: Partial<S>;
6
- };
6
+ }
7
7
  export declare type StatePropsCombinations<P, S> = Array<StatePropsObject<P, S>>;
8
8
  export declare type StateType<C> = C extends React.Component<any, infer S> | React.ComponentClass<any, infer S> ? S : never;
9
9
  export interface ComponentTableProps<C, P, S> {
@@ -2,11 +2,11 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
2
2
 
3
3
  var _dec, _class, _class2, _temp;
4
4
 
5
- import React, { Component } from 'react';
6
- import { isNullable } from "../../../lib/utils";
5
+ import React from 'react';
6
+ import { isFunction, isNullable } from "../../../lib/utils";
7
7
  import { locale } from "../../../lib/locale/decorators";
8
8
  import { Menu } from "../../Menu";
9
- import { MenuItem } from "../../../components/MenuItem";
9
+ import { isMenuItem, MenuItem } from "../../../components/MenuItem";
10
10
  import { Spinner } from "../../../components/Spinner";
11
11
  import { MenuSeparator } from "../../../components/MenuSeparator";
12
12
  import { createPropsGetter } from "../../../lib/createPropsGetter";
@@ -19,8 +19,8 @@ export var ComboBoxMenuDataTids = {
19
19
  items: 'ComboBoxMenu__items',
20
20
  item: 'ComboBoxMenu__item'
21
21
  };
22
- export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
23
- _inheritsLoose(ComboBoxMenu, _Component);
22
+ export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
23
+ _inheritsLoose(ComboBoxMenu, _React$Component);
24
24
 
25
25
  function ComboBoxMenu() {
26
26
  var _this;
@@ -29,7 +29,7 @@ export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper)
29
29
  args[_key] = arguments[_key];
30
30
  }
31
31
 
32
- _this = _Component.call.apply(_Component, [this].concat(args)) || this;
32
+ _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
33
33
  _this.getProps = createPropsGetter(ComboBoxMenu.defaultProps);
34
34
 
35
35
  _this.renderItem = function (item, index) {
@@ -39,9 +39,8 @@ export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper)
39
39
  renderItem = _this$props.renderItem,
40
40
  onValueChange = _this$props.onValueChange;
41
41
 
42
- if (typeof item === 'function' || /*#__PURE__*/React.isValidElement(item)) {
43
- // @ts-ignore
44
- var element = typeof item === 'function' ? item() : item;
42
+ if (isFunction(item) || /*#__PURE__*/React.isValidElement(item)) {
43
+ var element = isFunction(item) ? item() : item;
45
44
  var props = Object.assign({
46
45
  key: index,
47
46
  onClick: function onClick() {
@@ -165,13 +164,11 @@ export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper)
165
164
  }
166
165
 
167
166
  var total = null;
168
- var renderedItems = items && items.map(this.renderItem); // @ts-ignore // todo fix checking
169
-
170
- var countItems = renderedItems == null ? void 0 : renderedItems.filter(function (item) {
171
- var _item$type;
172
-
173
- return (item == null ? void 0 : (_item$type = item.type) == null ? void 0 : _item$type.__KONTUR_REACT_UI__) === 'MenuItem';
174
- }).length;
167
+ var renderedItems = items && items.map(this.renderItem);
168
+ var menuItems = renderedItems == null ? void 0 : renderedItems.filter(function (item) {
169
+ return isMenuItem(item);
170
+ });
171
+ var countItems = menuItems == null ? void 0 : menuItems.length;
175
172
 
176
173
  if (countItems && renderTotalCount && totalCount && countItems < totalCount) {
177
174
  total = /*#__PURE__*/React.createElement(MenuItem, {
@@ -196,7 +193,7 @@ export var ComboBoxMenu = (_dec = locale('ComboBox', CustomComboBoxLocaleHelper)
196
193
  };
197
194
 
198
195
  return ComboBoxMenu;
199
- }(Component), _class2.__KONTUR_REACT_UI__ = 'ComboBoxMenu', _class2.defaultProps = {
196
+ }(React.Component), _class2.__KONTUR_REACT_UI__ = 'ComboBoxMenu', _class2.defaultProps = {
200
197
  repeatRequest: function repeatRequest() {
201
198
  return undefined;
202
199
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["ComboBoxMenu.tsx"],"names":["React","Component","isNullable","locale","Menu","MenuItem","Spinner","MenuSeparator","createPropsGetter","ComboBoxRequestStatus","CustomComboBoxLocaleHelper","ComboBoxMenuDataTids","loading","failed","notFound","items","item","ComboBoxMenu","getProps","defaultProps","renderItem","index","props","onValueChange","isValidElement","element","Object","assign","key","onClick","cloneElement","isMobile","state","render","opened","totalCount","refMenu","renderNotFound","renderTotalCount","maxMenuHeight","requestStatus","errorNetworkButton","errorNetworkMessage","renderAddButton","maxHeight","length","Failed","maxWidth","whiteSpace","repeatRequest","notFoundValue","total","renderedItems","map","countItems","filter","type","__KONTUR_REACT_UI__","fontSize","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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\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\nexport const ComboBoxMenuDataTids = {\n loading: 'ComboBoxMenu__loading',\n failed: 'ComboBoxMenu__failed',\n notFound: 'ComboBoxMenu__notFound',\n items: 'ComboBoxMenu__items',\n item: 'ComboBoxMenu__item',\n} as const;\n\ntype DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;\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: DefaultProps<unknown> = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private getProps = createPropsGetter(ComboBoxMenu.defaultProps);\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 isMobile,\n } = this.props;\n\n const requestStatus = this.getProps().requestStatus;\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\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n data-tid={ComboBoxMenuDataTids.loading}\n >\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\n ref={refMenu}\n maxHeight={maxHeight}\n disableScrollContainer={isMobile}\n data-tid={ComboBoxMenuDataTids.failed}\n >\n <MenuItem disabled key=\"message\" isMobile={isMobile}>\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuItem>\n <MenuItem link onClick={this.getProps().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={ComboBoxMenuDataTids.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={ComboBoxMenuDataTids.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={ComboBoxMenuDataTids.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":["React","isFunction","isNullable","locale","Menu","isMenuItem","MenuItem","Spinner","MenuSeparator","createPropsGetter","ComboBoxRequestStatus","CustomComboBoxLocaleHelper","ComboBoxMenuDataTids","loading","failed","notFound","items","item","ComboBoxMenu","getProps","defaultProps","renderItem","index","props","onValueChange","isValidElement","element","Object","assign","key","onClick","cloneElement","isMobile","state","render","opened","totalCount","refMenu","renderNotFound","renderTotalCount","maxMenuHeight","requestStatus","errorNetworkButton","errorNetworkMessage","renderAddButton","maxHeight","length","Failed","maxWidth","whiteSpace","repeatRequest","notFoundValue","total","renderedItems","map","menuItems","filter","countItems","fontSize","Component","__KONTUR_REACT_UI__","undefined","Unknown"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isFunction, isNullable } from '../../lib/utils';\nimport { locale } from '../../lib/locale/decorators';\nimport { Menu } from '../Menu';\nimport { isMenuItem, MenuItem, MenuItemState } from '../../components/MenuItem';\nimport { Spinner } from '../../components/Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\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\nexport const ComboBoxMenuDataTids = {\n loading: 'ComboBoxMenu__loading',\n failed: 'ComboBoxMenu__failed',\n notFound: 'ComboBoxMenu__notFound',\n items: 'ComboBoxMenu__items',\n item: 'ComboBoxMenu__item',\n} as const;\n\ntype DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;\n\n@locale('ComboBox', CustomComboBoxLocaleHelper)\nexport class ComboBoxMenu<T> extends React.Component<ComboBoxMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxMenu';\n\n public static defaultProps: DefaultProps<unknown> = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private getProps = createPropsGetter(ComboBoxMenu.defaultProps);\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 isMobile,\n } = this.props;\n\n const requestStatus = this.getProps().requestStatus;\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\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n data-tid={ComboBoxMenuDataTids.loading}\n >\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\n ref={refMenu}\n maxHeight={maxHeight}\n disableScrollContainer={isMobile}\n data-tid={ComboBoxMenuDataTids.failed}\n >\n <MenuItem disabled key=\"message\" isMobile={isMobile}>\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuItem>\n <MenuItem link onClick={this.getProps().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={ComboBoxMenuDataTids.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 const menuItems = renderedItems?.filter((item) => {\n return isMenuItem(item);\n });\n const countItems = menuItems?.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={ComboBoxMenuDataTids.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 (isFunction(item) || React.isValidElement(item)) {\n const element = isFunction(item) ? 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={ComboBoxMenuDataTids.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,4 +1,4 @@
1
- import React, { Component } from 'react';
1
+ import React from 'react';
2
2
  import { Menu } from '../Menu';
3
3
  import { MenuItemState } from '../../components/MenuItem';
4
4
  import { Nullable } from '../../typings/utility-types';
@@ -28,7 +28,7 @@ export declare const ComboBoxMenuDataTids: {
28
28
  readonly item: "ComboBoxMenu__item";
29
29
  };
30
30
  declare type DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;
31
- export declare class ComboBoxMenu<T> extends Component<ComboBoxMenuProps<T>> {
31
+ export declare class ComboBoxMenu<T> extends React.Component<ComboBoxMenuProps<T>> {
32
32
  static __KONTUR_REACT_UI__: string;
33
33
  static defaultProps: DefaultProps<unknown>;
34
34
  private getProps;
@@ -149,8 +149,7 @@ export var Effect = {
149
149
  menu.highlightItem(index);
150
150
 
151
151
  if (index >= 0) {
152
- // FIXME: accessing private props
153
- // @ts-ignore
152
+ // @ts-expect-error: Use of private property.
154
153
  requestAnimationFrame(function () {
155
154
  return menu && menu.scrollToSelected();
156
155
  });
@@ -198,7 +197,7 @@ export var Effect = {
198
197
  combobox.selectInputText();
199
198
  },
200
199
  inputKeyDown: function inputKeyDown(event) {
201
- return function (dispatch, getState, getProps, getInstance) {
200
+ return function (dispatch, getState, getProps) {
202
201
  var _getProps7 = getProps(),
203
202
  onInputKeyDown = _getProps7.onInputKeyDown;
204
203
 
@@ -209,7 +208,7 @@ export var Effect = {
209
208
  }
210
209
  };
211
210
 
212
- var never = function never(_) {
211
+ var never = function never() {
213
212
  return null;
214
213
  };
215
214
 
@@ -424,7 +423,7 @@ export function reducer(state, props, action) {
424
423
 
425
424
  default:
426
425
  {
427
- never(action);
426
+ never();
428
427
  }
429
428
  }
430
429