@skbkontur/react-ui 0.0.0-a5ba2462c5 → 0.0.0-a6f09fbded

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 (246) hide show
  1. package/CHANGELOG.md +0 -30
  2. package/cjs/components/Autocomplete/Autocomplete.md +113 -0
  3. package/cjs/components/Button/Button.md +261 -0
  4. package/cjs/components/Calendar/Calendar.md +276 -0
  5. package/cjs/components/Calendar/CalendarDay.md +70 -0
  6. package/cjs/components/Center/Center.md +26 -0
  7. package/cjs/components/Checkbox/Checkbox.md +171 -0
  8. package/cjs/components/ComboBox/ComboBox.d.ts +11 -5
  9. package/cjs/components/ComboBox/ComboBox.js +10 -1
  10. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  11. package/cjs/components/ComboBox/ComboBox.md +574 -0
  12. package/cjs/components/CurrencyInput/CurrencyInput.md +39 -0
  13. package/cjs/components/CurrencyLabel/CurrencyLabel.js +2 -2
  14. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  15. package/cjs/components/CurrencyLabel/CurrencyLabel.md +29 -0
  16. package/cjs/components/DateInput/DateInput.md +111 -0
  17. package/cjs/components/DatePicker/DatePicker.md +368 -0
  18. package/cjs/components/Dropdown/Dropdown.md +45 -0
  19. package/cjs/components/DropdownMenu/DropdownMenu.md +290 -0
  20. package/cjs/components/FileUploader/FileUploader.md +131 -0
  21. package/cjs/components/FxInput/FxInput.md +31 -0
  22. package/cjs/components/Gapped/Gapped.md +44 -0
  23. package/cjs/components/GlobalLoader/GlobalLoader.md +97 -0
  24. package/cjs/components/Group/Group.md +19 -0
  25. package/cjs/components/Hint/Hint.md +86 -0
  26. package/cjs/components/Input/Input.md +86 -0
  27. package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -0
  28. package/cjs/components/Input/InputLayout/InputLayout.js +4 -2
  29. package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
  30. package/cjs/components/Kebab/Kebab.md +306 -0
  31. package/cjs/components/Link/Link.md +182 -0
  32. package/cjs/components/Loader/Loader.md +33 -0
  33. package/cjs/components/MaskedInput/MaskedInput.d.ts +0 -8
  34. package/cjs/components/MaskedInput/MaskedInput.js +2 -23
  35. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  36. package/cjs/components/MaskedInput/MaskedInput.md +114 -0
  37. package/cjs/components/MenuFooter/MenuFooter.md +27 -0
  38. package/cjs/components/MenuHeader/MenuHeader.md +35 -0
  39. package/cjs/components/MenuItem/MenuItem.md +139 -0
  40. package/cjs/components/MenuSeparator/MenuSeparator.md +14 -0
  41. package/cjs/components/MiniModal/MiniModal.md +231 -0
  42. package/cjs/components/Modal/Modal.md +56 -0
  43. package/cjs/components/Paging/Paging.md +57 -0
  44. package/cjs/components/PasswordInput/PasswordInput.md +29 -0
  45. package/cjs/components/Radio/Radio.md +57 -0
  46. package/cjs/components/RadioGroup/RadioGroup.md +44 -0
  47. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +75 -0
  48. package/cjs/components/ScrollContainer/ScrollContainer.md +224 -0
  49. package/cjs/components/Select/Select.md +113 -0
  50. package/cjs/components/SidePage/SidePage.md +65 -0
  51. package/cjs/components/SingleToast/SingleToast.md +36 -0
  52. package/cjs/components/Spinner/Spinner.md +36 -0
  53. package/cjs/components/Sticky/Sticky.md +28 -0
  54. package/cjs/components/Switcher/Switcher.md +111 -0
  55. package/cjs/components/Tabs/Tab.md +73 -0
  56. package/cjs/components/Tabs/Tabs.md +54 -0
  57. package/cjs/components/Textarea/Textarea.d.ts +6 -1
  58. package/cjs/components/Textarea/Textarea.js +16 -3
  59. package/cjs/components/Textarea/Textarea.js.map +1 -1
  60. package/cjs/components/Textarea/Textarea.md +58 -0
  61. package/cjs/components/Textarea/Textarea.styles.js +2 -1
  62. package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
  63. package/cjs/components/Toast/Toast.md +69 -0
  64. package/cjs/components/Toggle/Toggle.md +110 -0
  65. package/cjs/components/Token/Token.md +48 -0
  66. package/cjs/components/TokenInput/TokenInput.md +277 -0
  67. package/cjs/components/Tooltip/Tooltip.d.ts +1 -1
  68. package/cjs/components/Tooltip/Tooltip.js +6 -8
  69. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  70. package/cjs/components/Tooltip/Tooltip.md +322 -0
  71. package/cjs/components/TooltipMenu/TooltipMenu.md +241 -0
  72. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
  73. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js +16 -7
  74. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  75. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
  76. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js +27 -9
  77. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
  78. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +7 -6
  79. package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -7
  80. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  81. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +6 -5
  82. package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -3
  83. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  84. package/cjs/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
  85. package/cjs/internal/CustomComboBox/getComboBoxTheme.js +10 -7
  86. package/cjs/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
  87. package/cjs/internal/DataTids/DATATIDS.md +12 -0
  88. package/cjs/internal/DataTids/DataTids.d.ts +12 -0
  89. package/cjs/internal/DataTids/DataTids.js +50 -0
  90. package/cjs/internal/DataTids/DataTids.js.map +1 -0
  91. package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
  92. package/cjs/internal/DataTids/DataTids.styles.js +42 -0
  93. package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
  94. package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
  95. package/cjs/internal/DataTids/componentsDataTids.js +15 -0
  96. package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
  97. package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
  98. package/cjs/internal/InputLikeText/InputLikeText.styles.js +12 -4
  99. package/cjs/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
  100. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +37 -0
  101. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +235 -0
  102. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
  103. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  104. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +10 -0
  105. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -0
  106. package/cjs/internal/ThemePlayground/Playground.md +7 -0
  107. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  108. package/cjs/internal/themes/BasicTheme.d.ts +2 -0
  109. package/cjs/internal/themes/BasicTheme.js +11 -6
  110. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  111. package/cjs/internal/themes/DarkTheme5_4.js +10 -3
  112. package/cjs/internal/themes/DarkTheme5_4.js.map +1 -1
  113. package/cjs/internal/themes/LightTheme5_4.js +10 -3
  114. package/cjs/internal/themes/LightTheme5_4.js.map +1 -1
  115. package/cjs/internal/themes/consts.d.ts +7 -0
  116. package/cjs/internal/themes/consts.js +7 -0
  117. package/cjs/internal/themes/consts.js.map +1 -0
  118. package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +64 -0
  119. package/cjs/lib/locale/LOCALECONTEXT.md +222 -0
  120. package/cjs/lib/theming/ThemeContext.md +265 -0
  121. package/components/Autocomplete/Autocomplete.md +113 -0
  122. package/components/Button/Button.md +261 -0
  123. package/components/Calendar/Calendar.md +276 -0
  124. package/components/Calendar/CalendarDay.md +70 -0
  125. package/components/Center/Center.md +26 -0
  126. package/components/Checkbox/Checkbox.md +171 -0
  127. package/components/ComboBox/ComboBox/ComboBox.js +2 -1
  128. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  129. package/components/ComboBox/ComboBox.d.ts +11 -5
  130. package/components/ComboBox/ComboBox.md +574 -0
  131. package/components/CurrencyInput/CurrencyInput.md +39 -0
  132. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -1
  133. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  134. package/components/CurrencyLabel/CurrencyLabel.md +29 -0
  135. package/components/DateInput/DateInput.md +111 -0
  136. package/components/DatePicker/DatePicker.md +368 -0
  137. package/components/Dropdown/Dropdown.md +45 -0
  138. package/components/DropdownMenu/DropdownMenu.md +290 -0
  139. package/components/FileUploader/FileUploader.md +131 -0
  140. package/components/FxInput/FxInput.md +31 -0
  141. package/components/Gapped/Gapped.md +44 -0
  142. package/components/GlobalLoader/GlobalLoader.md +97 -0
  143. package/components/Group/Group.md +19 -0
  144. package/components/Hint/Hint.md +86 -0
  145. package/components/Input/Input.md +86 -0
  146. package/components/Input/InputLayout/InputLayout/InputLayout.js +5 -2
  147. package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
  148. package/components/Input/InputLayout/InputLayout.d.ts +1 -0
  149. package/components/Kebab/Kebab.md +306 -0
  150. package/components/Link/Link.md +182 -0
  151. package/components/Loader/Loader.md +33 -0
  152. package/components/MaskedInput/MaskedInput/MaskedInput.js +1 -11
  153. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  154. package/components/MaskedInput/MaskedInput.d.ts +0 -8
  155. package/components/MaskedInput/MaskedInput.md +114 -0
  156. package/components/MenuFooter/MenuFooter.md +27 -0
  157. package/components/MenuHeader/MenuHeader.md +35 -0
  158. package/components/MenuItem/MenuItem.md +139 -0
  159. package/components/MenuSeparator/MenuSeparator.md +14 -0
  160. package/components/MiniModal/MiniModal.md +231 -0
  161. package/components/Modal/Modal.md +56 -0
  162. package/components/Paging/Paging.md +57 -0
  163. package/components/PasswordInput/PasswordInput.md +29 -0
  164. package/components/Radio/Radio.md +57 -0
  165. package/components/RadioGroup/RadioGroup.md +44 -0
  166. package/components/ResponsiveLayout/ResponsiveLayout.md +75 -0
  167. package/components/ScrollContainer/ScrollContainer.md +224 -0
  168. package/components/Select/Select.md +113 -0
  169. package/components/SidePage/SidePage.md +65 -0
  170. package/components/SingleToast/SingleToast.md +36 -0
  171. package/components/Spinner/Spinner.md +36 -0
  172. package/components/Sticky/Sticky.md +28 -0
  173. package/components/Switcher/Switcher.md +111 -0
  174. package/components/Tabs/Tab.md +73 -0
  175. package/components/Tabs/Tabs.md +54 -0
  176. package/components/Textarea/Textarea/Textarea.js +11 -2
  177. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  178. package/components/Textarea/Textarea.d.ts +6 -1
  179. package/components/Textarea/Textarea.md +58 -0
  180. package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
  181. package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
  182. package/components/Toast/Toast.md +69 -0
  183. package/components/Toggle/Toggle.md +110 -0
  184. package/components/Token/Token.md +48 -0
  185. package/components/TokenInput/TokenInput.md +277 -0
  186. package/components/Tooltip/Tooltip/Tooltip.js +4 -7
  187. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  188. package/components/Tooltip/Tooltip.d.ts +1 -1
  189. package/components/Tooltip/Tooltip.md +322 -0
  190. package/components/TooltipMenu/TooltipMenu.md +241 -0
  191. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js +21 -7
  192. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  193. package/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -0
  194. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js +14 -5
  195. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js.map +1 -1
  196. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +3 -0
  197. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +44 -51
  198. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  199. package/internal/CustomComboBox/ComboBoxView.d.ts +7 -6
  200. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +3 -5
  201. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  202. package/internal/CustomComboBox/CustomComboBox.d.ts +6 -5
  203. package/internal/CustomComboBox/getComboBoxTheme/getComboBoxTheme.js +5 -3
  204. package/internal/CustomComboBox/getComboBoxTheme/getComboBoxTheme.js.map +1 -1
  205. package/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
  206. package/internal/DataTids/DATATIDS.md +12 -0
  207. package/internal/DataTids/DataTids/DataTids.js +69 -0
  208. package/internal/DataTids/DataTids/DataTids.js.map +1 -0
  209. package/internal/DataTids/DataTids/package.json +6 -0
  210. package/internal/DataTids/DataTids.d.ts +12 -0
  211. package/internal/DataTids/DataTids.styles/DataTids.styles.js +20 -0
  212. package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
  213. package/internal/DataTids/DataTids.styles/package.json +6 -0
  214. package/internal/DataTids/DataTids.styles.d.ts +7 -0
  215. package/internal/DataTids/componentsDataTids/componentsDataTids.js +12 -0
  216. package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
  217. package/internal/DataTids/componentsDataTids/package.json +6 -0
  218. package/internal/DataTids/componentsDataTids.d.ts +5 -0
  219. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js +7 -4
  220. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js.map +1 -1
  221. package/internal/InputLikeText/InputLikeText.styles.d.ts +1 -0
  222. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +249 -0
  223. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -0
  224. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/package.json +6 -0
  225. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +37 -0
  226. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js +8 -0
  227. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/InternalTextareaWithLayout.styles.js.map +1 -0
  228. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles/package.json +6 -0
  229. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  230. package/internal/ThemePlayground/Playground.md +7 -0
  231. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  232. package/internal/themes/BasicTheme/BasicTheme.js +4 -4
  233. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  234. package/internal/themes/BasicTheme.d.ts +2 -0
  235. package/internal/themes/DarkTheme5_4/DarkTheme5_4.js +4 -2
  236. package/internal/themes/DarkTheme5_4/DarkTheme5_4.js.map +1 -1
  237. package/internal/themes/LightTheme5_4/LightTheme5_4.js +4 -2
  238. package/internal/themes/LightTheme5_4/LightTheme5_4.js.map +1 -1
  239. package/internal/themes/consts/consts.js +7 -0
  240. package/internal/themes/consts/consts.js.map +1 -0
  241. package/internal/themes/consts/package.json +6 -0
  242. package/internal/themes/consts.d.ts +7 -0
  243. package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +64 -0
  244. package/lib/locale/LOCALECONTEXT.md +222 -0
  245. package/lib/theming/ThemeContext.md +265 -0
  246. package/package.json +6 -1
@@ -0,0 +1,110 @@
1
+ ### Базовый пример
2
+
3
+ ```jsx harmony
4
+ const [checked, setChecked] = React.useState(false);
5
+
6
+ <Toggle checked={checked} onValueChange={setChecked}>
7
+ {checked ? 'On' : 'Off'}
8
+ </Toggle>
9
+ ```
10
+
11
+ ### Тогл включенный по умолчанию
12
+
13
+ ```jsx harmony
14
+ <Toggle defaultChecked>
15
+ Включен по умолчанию
16
+ </Toggle>
17
+ ```
18
+
19
+ ### Надпись слева от переключателя
20
+
21
+ ```jsx harmony
22
+ const [checked, setChecked] = React.useState(false);
23
+
24
+ <Toggle checked={checked} onValueChange={setChecked} captionPosition="left">
25
+ Показывать уведомления
26
+ </Toggle>
27
+ ```
28
+
29
+ ### Тогл с внешним `<label/>`
30
+
31
+ ```jsx harmony
32
+ import { Gapped } from '@skbkontur/react-ui';
33
+
34
+ const [checked, setChecked] = React.useState(false);
35
+
36
+ <Gapped>
37
+ <Toggle id="toggle-1" checked={checked} onValueChange={setChecked}/>
38
+ <label htmlFor="toggle-1">Внешний label</label>
39
+ </Gapped>
40
+ ```
41
+
42
+ ### Получение фокуса после загрузки страницы
43
+
44
+ ```jsx harmony
45
+ <Toggle autoFocus>
46
+ Сразу с фокусом
47
+ </Toggle>
48
+ ```
49
+
50
+ ### Стили
51
+
52
+ ```jsx harmony
53
+ import { Gapped } from '@skbkontur/react-ui';
54
+
55
+ <Gapped gap="20px">
56
+ <Toggle warning>
57
+ Warning
58
+ </Toggle>
59
+ <Toggle error>
60
+ Error
61
+ </Toggle>
62
+ <Toggle loading>
63
+ Loading
64
+ </Toggle>
65
+ <Toggle disabled>
66
+ Disabled
67
+ </Toggle>
68
+ </Gapped>
69
+ ```
70
+
71
+ ### Размер
72
+
73
+ ```jsx harmony
74
+ import { Gapped } from '@skbkontur/react-ui';
75
+
76
+ <Gapped vertical>
77
+ <Toggle size="small">
78
+ Маленький
79
+ </Toggle>
80
+ <Toggle size="medium">
81
+ Средний
82
+ </Toggle>
83
+ <Toggle size="large">
84
+ Большой
85
+ </Toggle>
86
+ </Gapped>
87
+ ```
88
+
89
+ ### Кастомное действие при получении и потере фокуса
90
+
91
+ ```jsx harmony
92
+ import { Toast } from '@skbkontur/react-ui';
93
+
94
+ <Toggle
95
+ onFocus={() => Toast.push('Я получил фокус!')}
96
+ onBlur={() => Toast.push('И потерял его...')}
97
+ >
98
+ С кастомными действиями при фокусе и его потере
99
+ </Toggle>
100
+ ```
101
+
102
+ ### Кастомное действие при переключении
103
+
104
+ ```jsx harmony
105
+ import { Toast } from '@skbkontur/react-ui';
106
+
107
+ <Toggle onChange={() => Toast.push("Запускаю кастомное действие")}>
108
+ Кастомное действие при переключении
109
+ </Toggle>
110
+ ```
@@ -0,0 +1,48 @@
1
+ ### Базовый пример
2
+
3
+ ```jsx harmony
4
+ import { Token } from '@skbkontur/react-ui';
5
+
6
+ <Token>Example</Token>;
7
+ ```
8
+
9
+ ### Состояние валидации
10
+
11
+ ```jsx harmony
12
+ import { Gapped, Token } from '@skbkontur/react-ui';
13
+
14
+ <Gapped gap={20} vertical>
15
+ <Gapped gap={10}>
16
+ <Token>Correct</Token>
17
+ <Token warning>Warned</Token>
18
+ <Token error>Errored</Token>
19
+ </Gapped>
20
+ <Gapped gap={10}>
21
+ <Token isActive>Correct</Token>
22
+ <Token isActive warning>
23
+ Warned
24
+ </Token>
25
+ <Token isActive error>
26
+ Errored
27
+ </Token>
28
+ </Gapped>
29
+ </Gapped>;
30
+ ```
31
+
32
+ ### Размер
33
+
34
+ ```jsx harmony
35
+ import { Gapped, Token } from '@skbkontur/react-ui';
36
+
37
+ <Gapped vertical>
38
+ <Token size="small">
39
+ Маленький
40
+ </Token>
41
+ <Token size="medium">
42
+ Средний
43
+ </Token>
44
+ <Token size="large">
45
+ Большой
46
+ </Token>
47
+ </Gapped>
48
+ ```
@@ -0,0 +1,277 @@
1
+ ### Базовый пример
2
+ ```jsx harmony
3
+ import { Token } from '@skbkontur/react-ui';
4
+ import { TokenInputType } from '@skbkontur/react-ui/components/TokenInput';
5
+
6
+ const [selectedItems, setSelectedItems] = React.useState([]);
7
+
8
+ const delay = time => args => new Promise(resolve => setTimeout(resolve, time, args));
9
+
10
+ const getItems = q =>
11
+ Promise.resolve(
12
+ ['First', 'Second', 'Third', 'Fourth', 'Fifth', 'Sixth'].filter(
13
+ x => x.toLowerCase().includes(q.toLowerCase()) || x.toString() === q,
14
+ ),
15
+ ).then(delay(500));
16
+
17
+ <div style={{ width: '300px' }}>
18
+ <TokenInput
19
+ type={TokenInputType.Combined}
20
+ getItems={getItems}
21
+ selectedItems={selectedItems}
22
+ onValueChange={setSelectedItems}
23
+ renderToken={(item, tokenProps) => (
24
+ <Token key={item.toString()} {...tokenProps}>
25
+ {item}
26
+ </Token>
27
+ )}
28
+ />
29
+ </div>;
30
+ ```
31
+
32
+ ### Размер
33
+
34
+ ```jsx harmony
35
+ import { Token } from '@skbkontur/react-ui';
36
+ import { TokenInputType } from '@skbkontur/react-ui/components/TokenInput';
37
+
38
+ const [selectedItems, setSelectedItems] = React.useState([]);
39
+
40
+ const delay = time => args => new Promise(resolve => setTimeout(resolve, time, args));
41
+
42
+ const getItems = q =>
43
+ Promise.resolve(
44
+ ['First', 'Second', 'Third', 'Fourth', 'Fifth', 'Sixth'].filter(
45
+ x => x.toLowerCase().includes(q.toLowerCase()) || x.toString(10) === q,
46
+ ),
47
+ ).then(delay(500));
48
+
49
+ <div style={{ width: '300px' }}>
50
+ <TokenInput
51
+ size={'small'}
52
+ getItems={getItems}
53
+ selectedItems={selectedItems}
54
+ onValueChange={setSelectedItems}
55
+ />
56
+ <TokenInput
57
+ size={'medium'}
58
+ getItems={getItems}
59
+ selectedItems={selectedItems}
60
+ onValueChange={setSelectedItems}
61
+ />
62
+ <TokenInput
63
+ size={'large'}
64
+ getItems={getItems}
65
+ selectedItems={selectedItems}
66
+ onValueChange={setSelectedItems}
67
+ />
68
+ </div>;
69
+ ```
70
+
71
+ ### Заблокированный TokenInput с кастомными Token
72
+
73
+ ```jsx harmony
74
+ import { Token } from '@skbkontur/react-ui';
75
+ import { TokenInputType } from '@skbkontur/react-ui/components/TokenInput';
76
+
77
+ const [selectedItems, setSelectedItems] = React.useState(['aaa', 'bbb', 'ccc']);
78
+
79
+ async function getItems(query) {
80
+ return ['aaa', 'bbb', 'ccc'].filter((s) => s.includes(query));
81
+ };
82
+
83
+ <TokenInput
84
+ disabled
85
+ type={TokenInputType.Combined}
86
+ getItems={getItems}
87
+ selectedItems={selectedItems}
88
+ onValueChange={setSelectedItems}
89
+ renderToken={(item, tokenProps) => (
90
+ <Token key={item.toString()} {...tokenProps} disabled={item === 'bbb' || tokenProps.disabled} >
91
+ {item}
92
+ </Token>
93
+ )}
94
+ />
95
+ ```
96
+
97
+ ### Ограничение количества токенов в выпадающем списке
98
+
99
+ ```jsx harmony
100
+ import { Token } from '@skbkontur/react-ui';
101
+ import { TokenInputType } from '@skbkontur/react-ui/components/TokenInput';
102
+
103
+
104
+ const delay = time => args => new Promise(resolve => setTimeout(resolve, time, args));
105
+ const { cities } = require('../ComboBox/__mocks__/cities');
106
+
107
+ const maxItems = 5;
108
+
109
+ const [totalCount, setTotalCount] = React.useState(cities.length);
110
+ const [value, setValue] = React.useState([]);
111
+
112
+ const getItems = (query) => {
113
+ const items = cities
114
+ .map((x) => x.City)
115
+ .filter((x) => x.toLowerCase().includes(query.toLowerCase()) || x.toString() === query);
116
+ const result = items.slice(0, maxItems);
117
+ setTotalCount(items.length);
118
+
119
+ return Promise.resolve(result).then(delay(500));
120
+ };
121
+
122
+ const renderTotalCount = (foundCount, totalCount) => (
123
+ <span>
124
+ Показано {foundCount} из {totalCount} найденных городов
125
+ </span>
126
+ );
127
+
128
+ <div style={{ width: "300px" }}>
129
+ <TokenInput
130
+ type={TokenInputType.Combined}
131
+ selectedItems={value}
132
+ onValueChange={setValue}
133
+ getItems={getItems}
134
+ placeholder="Начните вводить название"
135
+ renderTotalCount={renderTotalCount}
136
+ totalCount={totalCount}
137
+ />
138
+ </div>
139
+ ```
140
+
141
+ ### Кастомный тип элементов меню
142
+ ```jsx harmony
143
+ import { Token } from '@skbkontur/react-ui';
144
+ import { TokenInputType } from '@skbkontur/react-ui/components/TokenInput';
145
+
146
+ const [selectedItems, setSelectedItems] = React.useState([]);
147
+
148
+ const delay = time => args => new Promise(resolve => setTimeout(resolve, time, args));
149
+ const getGenericItems = () => [
150
+ { id: '111', value: 'aaa' },
151
+ { id: '222', value: 'bbb' },
152
+ { id: '333', value: 'ccc' },
153
+ { id: '444', value: 'ddd' },
154
+ ];
155
+ const renderItem = (item) => item.value;
156
+ const renderValue = (value) => value.value;
157
+ const valueToItem = (item) => ({
158
+ value: item,
159
+ });
160
+ const getModelItems = async (query) => {
161
+ await delay(400);
162
+ return getGenericItems().filter((s) => s.value.includes(query));
163
+ }
164
+
165
+ <div style={{ width: '300px' }}>
166
+ <TokenInput
167
+ selectedItems={selectedItems}
168
+ renderItem={renderItem}
169
+ renderValue={renderValue}
170
+ valueToItem={valueToItem}
171
+ valueToString={renderValue}
172
+ getItems={getModelItems}
173
+ onValueChange={setSelectedItems}
174
+ placeholder="placeholder"
175
+ type={TokenInputType.Combined}
176
+ renderToken={(item, tokenProps) => (
177
+ <Token
178
+ key={item.id}
179
+ {...tokenProps}
180
+ >
181
+ {item.value}
182
+ </Token>
183
+ )}
184
+ />
185
+ </div>;
186
+ ```
187
+
188
+ ### Дебаунс функции getItems
189
+
190
+ Функция debounce из lodash некорректно работает с async/promise, поэтому лучше использовать кастомную функцию, как в примере ниже.
191
+
192
+ ```jsx harmony
193
+ import { TokenInput } from "@skbkontur/react-ui";
194
+ import { TokenInputType } from "@skbkontur/react-ui/components/TokenInput";
195
+
196
+ const [value, setValue] = React.useState([]);
197
+
198
+ function debounceAsync(callback, wait) {
199
+ let timeoutId = null;
200
+
201
+ return (...args) => {
202
+ if (timeoutId) {
203
+ clearTimeout(timeoutId);
204
+ }
205
+
206
+ return new Promise((resolve) => {
207
+ const timeoutPromise = new Promise((resolve) => {
208
+ timeoutId = setTimeout(resolve, wait);
209
+ });
210
+ timeoutPromise.then(async () => {
211
+ resolve(await callback(...args));
212
+ });
213
+ });
214
+ };
215
+ }
216
+
217
+ const items = ["kon", "kod", "kof", "kor", "kos"];
218
+
219
+ const getItems = async (query) => {
220
+ console.log("query: ", query);
221
+ return items.filter((item) => item.includes(query));
222
+ };
223
+
224
+ <TokenInput
225
+ style={{ width: "300px" }}
226
+ type={TokenInputType.Combined}
227
+ selectedItems={value}
228
+ onValueChange={setValue}
229
+ getItems={debounceAsync(getItems, 300)}
230
+ placeholder="Начните вводить название"
231
+ />
232
+ ```
233
+
234
+ ### Типизированная версия функции
235
+
236
+ ```typescript static
237
+ function debounceAsync<T, Callback extends (...args: any[]) => Promise<T>>(
238
+ callback: Callback,
239
+ wait: number,
240
+ ): (...args: Parameters<Callback>) => Promise<T> {
241
+ let timeoutId: number | null = null;
242
+
243
+ return (...args: any[]) => {
244
+ if (timeoutId) {
245
+ clearTimeout(timeoutId);
246
+ }
247
+
248
+ return new Promise<T>((resolve) => {
249
+ const timeoutPromise = new Promise<void>((resolve) => {
250
+ timeoutId = setTimeout(resolve, wait);
251
+ });
252
+ timeoutPromise.then(async () => {
253
+ resolve(await callback(...args));
254
+ });
255
+ });
256
+ };
257
+ }
258
+ ```
259
+
260
+ ### Локали по умолчанию
261
+
262
+ ```typescript static
263
+ interface TokenInputLocale {
264
+ addButtonComment?: string;
265
+ addButtonTitle?: string;
266
+ }
267
+
268
+ const ru_RU = {
269
+ addButtonComment: 'Нажмите запятую',
270
+ addButtonTitle: 'Добавить',
271
+ };
272
+
273
+ const en_GB = {
274
+ addButtonComment: 'Type comma',
275
+ addButtonTitle: 'Add',
276
+ };
277
+ ```
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { SizeProp } from '../../lib/types/props';
2
+ import type { SizeProp } from 'react-ui/lib/types/props';
3
3
  import type { PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup';
4
4
  import type { Nullable } from '../../typings/utility-types';
5
5
  import type { CommonProps } from '../../internal/CommonWrapper';
@@ -27,7 +27,6 @@ var _isInstanceOf = require("../../lib/isInstanceOf");
27
27
 
28
28
  var _featureFlagsContext = require("../../lib/featureFlagsContext");
29
29
  var _Emotion = require("../../lib/theming/Emotion");
30
- var _ThemeHelpers = require("../../lib/theming/ThemeHelpers");
31
30
 
32
31
  var _Tooltip2 = require("./Tooltip.styles");var _class, _Tooltip;
33
32
 
@@ -118,7 +117,7 @@ var TooltipDataTids = exports.TooltipDataTids = {
118
117
  crossIcon: 'Tooltip__crossIcon'
119
118
  };
120
119
 
121
- var DefaultPositions = [
120
+ var OldPositions = [
122
121
  'right bottom',
123
122
  'right middle',
124
123
  'right top',
@@ -375,10 +374,9 @@ Tooltip = exports.Tooltip = (0, _rootNode.rootNode)(_class = (_Tooltip = /*#__PU
375
374
 
376
375
 
377
376
 
378
- getPositions = function () {return (
379
- _this.props.allowedPositions ?
380
- _this.props.allowedPositions.filter(function (item) {return DefaultPositions.includes(item);}) :
381
- DefaultPositions);};_this.
377
+ getPositions = function () {
378
+ return _this.props.allowedPositions;
379
+ };_this.
382
380
 
383
381
  refContent = function (node) {
384
382
  _this.contentElement = node;
@@ -611,7 +609,7 @@ Tooltip = exports.Tooltip = (0, _rootNode.rootNode)(_class = (_Tooltip = /*#__PU
611
609
  margin: _this.theme.tooltipMarginSmall
612
610
  };
613
611
  }
614
- };return _this;}(0, _inheritsLoose2.default)(Tooltip, _React$PureComponent);var _proto = Tooltip.prototype;_proto.validateProps = function validateProps(props) {(0, _warning.default)(props.children || props.anchorElement, "[Tooltip]: you must provide either 'children' or 'anchorElement' prop for Tooltip to work properly");};_proto.getAllowedPositions = function getAllowedPositions() {return this.props.allowedPositions ? this.props.allowedPositions : DefaultPositions;};_proto.componentDidMount = function componentDidMount() {this.validateProps(this.getProps());};_proto.componentDidUpdate = function componentDidUpdate() {var _this$getProps = this.getProps(),trigger = _this$getProps.trigger;this.validateProps(this.getProps());if (trigger === 'closed' && this.state.opened) {this.close();}};_proto.componentWillUnmount = function componentWillUnmount() {this.clearHoverTimeout();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_featureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this2.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;_this2.sizeVariables = _this2.getSizeVariables();return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _ThemeFactory.ThemeFactory.create({ popupBackground: theme.tooltipBg, popupBorder: theme.tooltipBorder, popupBorderRadius: _this2.sizeVariables.borderRadius, popupPinSize: _this2.sizeVariables.pinSize, popupPinOffsetX: _this2.sizeVariables.pinOffsetX, popupPinOffsetY: _this2.sizeVariables.pinOffsetY, popupMargin: _this2.sizeVariables.margin }, theme) }, _this2.renderMain());});});};_proto.renderCloseButton = function renderCloseButton() {var hasCross = this.props.closeButton === undefined ? !Tooltip.triggersWithoutCloseButton.includes(this.getProps().trigger) : this.props.closeButton;if (!hasCross) {return null;}var icon = /*#__PURE__*/_react.default.createElement(_CloseButtonIcon.CloseButtonIcon, { tabbable: false, side: parseInt(this.theme.tooltipCloseBtnSide), color: this.theme.tooltipCloseBtnColor, colorHover: this.theme.tooltipCloseBtnHoverColor });return /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Tooltip2.styles.closeButton(this.theme), this.sizeVariables.closeButtonStyle), onClick: this.handleCloseButtonClick, "data-tid": TooltipDataTids.crossIcon }, icon);}; /**
612
+ };return _this;}(0, _inheritsLoose2.default)(Tooltip, _React$PureComponent);var _proto = Tooltip.prototype;_proto.validateProps = function validateProps(props) {(0, _warning.default)(props.children || props.anchorElement, "[Tooltip]: you must provide either 'children' or 'anchorElement' prop for Tooltip to work properly");};_proto.getAllowedPositions = function getAllowedPositions() {return this.props.allowedPositions ? this.props.allowedPositions : OldPositions;};_proto.componentDidMount = function componentDidMount() {this.validateProps(this.getProps());};_proto.componentDidUpdate = function componentDidUpdate() {var _this$getProps = this.getProps(),trigger = _this$getProps.trigger;this.validateProps(this.getProps());if (trigger === 'closed' && this.state.opened) {this.close();}};_proto.componentWillUnmount = function componentWillUnmount() {this.clearHoverTimeout();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_featureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this2.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;_this2.sizeVariables = _this2.getSizeVariables();return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _ThemeFactory.ThemeFactory.create({ popupBackground: theme.tooltipBg, popupBorder: theme.tooltipBorder, popupBorderRadius: _this2.sizeVariables.borderRadius, popupPinSize: _this2.sizeVariables.pinSize, popupPinOffsetX: _this2.sizeVariables.pinOffsetX, popupPinOffsetY: _this2.sizeVariables.pinOffsetY, popupMargin: _this2.sizeVariables.margin }, theme) }, _this2.renderMain());});});};_proto.renderCloseButton = function renderCloseButton() {var hasCross = this.props.closeButton === undefined ? !Tooltip.triggersWithoutCloseButton.includes(this.getProps().trigger) : this.props.closeButton;if (!hasCross) {return null;}var icon = /*#__PURE__*/_react.default.createElement(_CloseButtonIcon.CloseButtonIcon, { tabbable: false, side: parseInt(this.theme.tooltipCloseBtnSide), color: this.theme.tooltipCloseBtnColor, colorHover: this.theme.tooltipCloseBtnHoverColor });return /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Tooltip2.styles.closeButton(this.theme), this.sizeVariables.closeButtonStyle), onClick: this.handleCloseButtonClick, "data-tid": TooltipDataTids.crossIcon }, icon);}; /**
615
613
  * Программно открывает тултип.
616
614
  * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>
617
615
  * @public
@@ -619,4 +617,4 @@ Tooltip = exports.Tooltip = (0, _rootNode.rootNode)(_class = (_Tooltip = /*#__PU
619
617
  * Программно закрывает тултип.
620
618
  * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>
621
619
  * @public
622
- */;_proto.hide = function hide() {var trigger = this.getProps().trigger;if (trigger === 'opened' || trigger === 'closed') {(0, _warning.default)(true, "Function 'hide' is not supported with trigger specified '" + trigger + "'");return;}this.close();};_proto.renderMain = function renderMain() {var props = this.props;var content = this.renderContent();var _this$getPopupAndLaye = this.getPopupAndLayerProps(),popupProps = _this$getPopupAndLaye.popupProps,_this$getPopupAndLaye2 = _this$getPopupAndLaye.layerProps,layerProps = _this$getPopupAndLaye2 === void 0 ? { active: false } : _this$getPopupAndLaye2;var anchorElement = props.children || props.anchorElement;var popup = this.renderPopup(anchorElement, popupProps, content);return /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, (0, _extends2.default)({}, layerProps, { getAnchorElement: this.getAnchorElement }), popup);};_proto.renderPopup = function renderPopup(anchorElement, popupProps, content) {var _this$getProps2 = this.getProps(),disableAnimations = _this$getProps2.disableAnimations,trigger = _this$getProps2.trigger;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_Popup.Popup, (0, _extends2.default)({ "data-tid": TooltipDataTids.root, anchorElement: anchorElement, hasPin: true, hasShadow: true, maxWidth: "none", opened: this.state.opened, disableAnimations: disableAnimations, positions: (0, _ThemeHelpers.isThemeGTE)(this.theme, '5.4') ? this.getPositions() : this.props.allowedPositions, pos: this.props.pos, ignoreHover: trigger === 'hoverAnchor', onOpen: this.props.onOpen, onClose: this.props.onClose, tryPreserveFirstRenderedPosition: true, ref: this.popupRef, withoutMobile: true }, popupProps), content));};_proto.getPopupAndLayerProps = function getPopupAndLayerProps() {var props = this.props;var useWrapper = !!props.children && this.getProps().useWrapper;var trigger = this.getProps().trigger;switch (trigger) {case 'opened':return { layerProps: { active: true, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { opened: true, useWrapper: useWrapper } };case 'closed':return { popupProps: { opened: false, useWrapper: useWrapper } };case 'hoverAnchor':case 'hover':return { popupProps: { onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, useWrapper: useWrapper } };case 'manual':return { popupProps: { useWrapper: useWrapper } };case 'click':return { layerProps: { active: this.state.opened, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { onClick: this.handleClick, useWrapper: useWrapper } };case 'focus':return { popupProps: { onFocus: this.handleFocus, onBlur: this.handleBlur, useWrapper: useWrapper } };case 'hover&focus':return { layerProps: { active: this.state.opened, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, useWrapper: useWrapper } };default:throw new Error('Unknown trigger specified: ' + trigger);}};_proto.clearHoverTimeout = function clearHoverTimeout() {if (this.hoverTimeout) {_globalObject.globalObject.clearTimeout(this.hoverTimeout);this.hoverTimeout = null;}};_proto.isClickOutsideContent = function isClickOutsideContent(event) {if (this.contentElement && (0, _isInstanceOf.isInstanceOf)(event.target, _globalObject.globalObject.Element)) {return !(0, _listenFocusOutside.containsTargetOrRenderContainer)(event.target)(this.contentElement);}return true;};return Tooltip;}(_react.default.PureComponent), _Tooltip.__KONTUR_REACT_UI__ = 'Tooltip', _Tooltip.displayName = 'Tooltip', _Tooltip.defaultProps = { size: 'small', trigger: 'hover', disableAnimations: _currentEnvironment.isTestEnv, useWrapper: false, delayBeforeShow: DEFAULT_DELAY }, _Tooltip.delay = DEFAULT_DELAY, _Tooltip.triggersWithoutCloseButton = ['hover', 'hoverAnchor', 'focus', 'hover&focus'], _Tooltip)) || _class;
620
+ */;_proto.hide = function hide() {var trigger = this.getProps().trigger;if (trigger === 'opened' || trigger === 'closed') {(0, _warning.default)(true, "Function 'hide' is not supported with trigger specified '" + trigger + "'");return;}this.close();};_proto.renderMain = function renderMain() {var props = this.props;var content = this.renderContent();var _this$getPopupAndLaye = this.getPopupAndLayerProps(),popupProps = _this$getPopupAndLaye.popupProps,_this$getPopupAndLaye2 = _this$getPopupAndLaye.layerProps,layerProps = _this$getPopupAndLaye2 === void 0 ? { active: false } : _this$getPopupAndLaye2;var anchorElement = props.children || props.anchorElement;var popup = this.renderPopup(anchorElement, popupProps, content);return /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, (0, _extends2.default)({}, layerProps, { getAnchorElement: this.getAnchorElement }), popup);};_proto.renderPopup = function renderPopup(anchorElement, popupProps, content) {var _this$getProps2 = this.getProps(),disableAnimations = _this$getProps2.disableAnimations,trigger = _this$getProps2.trigger;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_Popup.Popup, (0, _extends2.default)({ "data-tid": TooltipDataTids.root, anchorElement: anchorElement, hasPin: true, hasShadow: true, maxWidth: "none", opened: this.state.opened, disableAnimations: disableAnimations, positions: this.getPositions(), pos: this.props.pos, ignoreHover: trigger === 'hoverAnchor', onOpen: this.props.onOpen, onClose: this.props.onClose, tryPreserveFirstRenderedPosition: true, ref: this.popupRef, withoutMobile: true }, popupProps), content));};_proto.getPopupAndLayerProps = function getPopupAndLayerProps() {var props = this.props;var useWrapper = !!props.children && this.getProps().useWrapper;var trigger = this.getProps().trigger;switch (trigger) {case 'opened':return { layerProps: { active: true, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { opened: true, useWrapper: useWrapper } };case 'closed':return { popupProps: { opened: false, useWrapper: useWrapper } };case 'hoverAnchor':case 'hover':return { popupProps: { onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, useWrapper: useWrapper } };case 'manual':return { popupProps: { useWrapper: useWrapper } };case 'click':return { layerProps: { active: this.state.opened, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { onClick: this.handleClick, useWrapper: useWrapper } };case 'focus':return { popupProps: { onFocus: this.handleFocus, onBlur: this.handleBlur, useWrapper: useWrapper } };case 'hover&focus':return { layerProps: { active: this.state.opened, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, useWrapper: useWrapper } };default:throw new Error('Unknown trigger specified: ' + trigger);}};_proto.clearHoverTimeout = function clearHoverTimeout() {if (this.hoverTimeout) {_globalObject.globalObject.clearTimeout(this.hoverTimeout);this.hoverTimeout = null;}};_proto.isClickOutsideContent = function isClickOutsideContent(event) {if (this.contentElement && (0, _isInstanceOf.isInstanceOf)(event.target, _globalObject.globalObject.Element)) {return !(0, _listenFocusOutside.containsTargetOrRenderContainer)(event.target)(this.contentElement);}return true;};return Tooltip;}(_react.default.PureComponent), _Tooltip.__KONTUR_REACT_UI__ = 'Tooltip', _Tooltip.displayName = 'Tooltip', _Tooltip.defaultProps = { size: 'small', trigger: 'hover', disableAnimations: _currentEnvironment.isTestEnv, useWrapper: false, delayBeforeShow: DEFAULT_DELAY }, _Tooltip.delay = DEFAULT_DELAY, _Tooltip.triggersWithoutCloseButton = ['hover', 'hoverAnchor', 'focus', 'hover&focus'], _Tooltip)) || _class;