@megafon/ui-core 6.0.0-beta.4 → 6.0.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 (513) hide show
  1. package/CHANGELOG.md +4016 -0
  2. package/dist/es/colors/ColorItem/ColorItem.css +45 -1
  3. package/dist/es/colors/ColorItem/ColorItem.d.ts +2 -2
  4. package/dist/es/colors/ColorItem/ColorItem.js +7 -5
  5. package/dist/es/colors/Colors.css +233 -1
  6. package/dist/es/colors/Colors.d.ts +1 -1
  7. package/dist/es/colors/Colors.js +55 -33
  8. package/dist/es/colors/colorsData.d.ts +4 -4
  9. package/dist/es/components/Accordion/Accordion.css +89 -1
  10. package/dist/es/components/Accordion/Accordion.d.ts +1 -2
  11. package/dist/es/components/Accordion/Accordion.js +65 -22
  12. package/dist/es/components/Avatar/Avatar.css +52 -1
  13. package/dist/es/components/Avatar/Avatar.d.ts +1 -1
  14. package/dist/es/components/Avatar/Avatar.js +27 -9
  15. package/dist/es/components/Avatar/doc/i/img.png +0 -0
  16. package/dist/es/components/Badges/components/CounterBadge/CounterBadge.css +54 -0
  17. package/dist/es/components/Badges/{CounterBadge → components/CounterBadge}/CounterBadge.d.ts +2 -2
  18. package/dist/es/components/Badges/{CounterBadge → components/CounterBadge}/CounterBadge.js +28 -10
  19. package/dist/es/components/Badges/components/NotificationBadge/NotificationBadge.css +58 -0
  20. package/dist/es/components/Badges/{NotificationBadge → components/NotificationBadge}/NotificationBadge.d.ts +4 -3
  21. package/dist/es/components/Badges/components/NotificationBadge/NotificationBadge.js +49 -0
  22. package/dist/es/components/Badges/components/PriceBadge/PriceBadge.css +119 -0
  23. package/dist/es/components/Badges/{PriceBadge → components/PriceBadge}/PriceBadge.d.ts +4 -4
  24. package/dist/es/components/Badges/{PriceBadge → components/PriceBadge}/PriceBadge.js +54 -11
  25. package/dist/es/components/Badges/components/PromoBadge/PromoBadge.css +64 -0
  26. package/dist/{lib/components/Badges → es/components/Badges/components}/PromoBadge/PromoBadge.d.ts +3 -3
  27. package/dist/es/components/Badges/{PromoBadge → components/PromoBadge}/PromoBadge.js +21 -7
  28. package/dist/es/components/Badges/{TimerBadge/components → components/TimerBadge}/Timer/Timer.js +32 -5
  29. package/dist/es/components/Badges/components/TimerBadge/TimerBadge.css +60 -0
  30. package/dist/{lib/components/Badges → es/components/Badges/components}/TimerBadge/TimerBadge.d.ts +2 -2
  31. package/dist/es/components/Badges/{TimerBadge → components/TimerBadge}/TimerBadge.js +45 -22
  32. package/dist/es/components/Banner/Banner.css +195 -1
  33. package/dist/es/components/Banner/Banner.d.ts +4 -5
  34. package/dist/es/components/Banner/Banner.js +129 -64
  35. package/dist/es/components/Banner/BannerDot.css +69 -1
  36. package/dist/es/components/Banner/BannerDot.d.ts +1 -1
  37. package/dist/es/components/Banner/BannerDot.js +22 -6
  38. package/dist/es/components/Banner/slidesSettings.d.ts +2 -4
  39. package/dist/es/components/Banner/slidesSettings.js +6 -3
  40. package/dist/es/components/Button/Button.css +814 -1
  41. package/dist/es/components/Button/Button.d.ts +6 -7
  42. package/dist/es/components/Button/Button.js +104 -44
  43. package/dist/es/components/Calendar/Calendar.css +5 -1
  44. package/dist/es/components/Calendar/Calendar.d.ts +2 -2
  45. package/dist/es/components/Calendar/Calendar.js +114 -60
  46. package/dist/es/components/Calendar/components/Day/Day.css +128 -0
  47. package/dist/{lib/components/Calendar/components/_Day → es/components/Calendar/components/Day}/Day.d.ts +4 -4
  48. package/dist/es/components/Calendar/components/{_Day → Day}/Day.js +50 -19
  49. package/dist/es/components/Calendar/components/Month/Month.css +81 -0
  50. package/dist/es/components/Calendar/components/{_Month → Month}/Month.d.ts +2 -3
  51. package/dist/es/components/Calendar/components/{_Month → Month}/Month.js +33 -9
  52. package/dist/es/components/Caption/Caption.css +48 -1
  53. package/dist/es/components/Caption/Caption.d.ts +2 -4
  54. package/dist/es/components/Caption/Caption.js +25 -11
  55. package/dist/es/components/Carousel/Carousel.css +215 -1
  56. package/dist/es/components/Carousel/Carousel.d.ts +10 -11
  57. package/dist/es/components/Carousel/Carousel.js +161 -104
  58. package/dist/es/components/Carousel/checkBreakpointsPropTypes.d.ts +1 -1
  59. package/dist/es/components/Carousel/checkBreakpointsPropTypes.js +4 -1
  60. package/dist/es/components/Carousel/useGradient.d.ts +1 -1
  61. package/dist/es/components/Carousel/useGradient.js +13 -9
  62. package/dist/es/components/Checkbox/Checkbox.css +150 -1
  63. package/dist/es/components/Checkbox/Checkbox.d.ts +4 -4
  64. package/dist/es/components/Checkbox/Checkbox.js +50 -21
  65. package/dist/es/components/Chips/Chip.css +132 -1
  66. package/dist/es/components/Chips/Chip.d.ts +26 -6
  67. package/dist/es/components/Chips/Chip.js +42 -17
  68. package/dist/es/components/Chips/Chips.css +19 -1
  69. package/dist/es/components/Chips/Chips.d.ts +2 -2
  70. package/dist/es/components/Chips/Chips.js +56 -32
  71. package/dist/es/components/Chips/components/ChipsDropdown.css +106 -1
  72. package/dist/es/components/Chips/components/ChipsDropdown.d.ts +2 -2
  73. package/dist/es/components/Chips/components/ChipsDropdown.js +27 -12
  74. package/dist/es/components/Collapse/Collapse.css +3 -0
  75. package/dist/{lib/components/_Collapse → es/components/Collapse}/Collapse.d.ts +3 -3
  76. package/dist/es/components/{_Collapse → Collapse}/Collapse.js +62 -25
  77. package/dist/es/components/ContentArea/ContentArea.css +109 -1
  78. package/dist/es/components/ContentArea/ContentArea.d.ts +4 -5
  79. package/dist/es/components/ContentArea/ContentArea.js +28 -9
  80. package/dist/es/components/ContentView/ContentView.css +103 -1
  81. package/dist/es/components/ContentView/ContentView.d.ts +2 -3
  82. package/dist/es/components/ContentView/ContentView.js +46 -12
  83. package/dist/es/components/Counter/Counter.css +123 -1
  84. package/dist/es/components/Counter/Counter.d.ts +1 -1
  85. package/dist/es/components/Counter/Counter.js +55 -20
  86. package/dist/es/components/Grid/Grid.css +102 -1
  87. package/dist/es/components/Grid/Grid.d.ts +1 -1
  88. package/dist/es/components/Grid/Grid.js +24 -8
  89. package/dist/es/components/Grid/GridColumn.css +3102 -1
  90. package/dist/es/components/Grid/GridColumn.d.ts +2 -2
  91. package/dist/es/components/Grid/GridColumn.js +62 -33
  92. package/dist/es/components/Header/Header.css +122 -1
  93. package/dist/es/components/Header/Header.d.ts +1 -3
  94. package/dist/es/components/Header/Header.js +28 -13
  95. package/dist/es/components/Link/Link.d.ts +2 -2
  96. package/dist/es/components/Link/Link.js +25 -9
  97. package/dist/es/components/List/List.css +66 -1
  98. package/dist/es/components/List/List.d.ts +1 -2
  99. package/dist/es/components/List/List.js +18 -8
  100. package/dist/es/components/List/ListItem.css +6 -1
  101. package/dist/es/components/List/ListItem.d.ts +1 -2
  102. package/dist/es/components/List/ListItem.js +7 -1
  103. package/dist/es/components/ListData/ListData.css +162 -1
  104. package/dist/es/components/ListData/ListData.d.ts +34 -6
  105. package/dist/es/components/ListData/ListData.js +65 -22
  106. package/dist/es/components/ListData/ListDataGroup.css +15 -1
  107. package/dist/es/components/ListData/ListDataGroup.d.ts +4 -4
  108. package/dist/es/components/ListData/ListDataGroup.js +74 -29
  109. package/dist/es/components/ListData/components/ListDataSortable.css +79 -1
  110. package/dist/es/components/ListData/components/ListDataSortable.d.ts +4 -4
  111. package/dist/es/components/ListData/components/ListDataSortable.js +42 -21
  112. package/dist/es/components/ListData/doc/i/img.png +0 -0
  113. package/dist/es/components/ListData/helpers.js +8 -1
  114. package/dist/es/components/Logo/Logo.css +43 -1
  115. package/dist/es/components/Logo/Logo.d.ts +1 -1
  116. package/dist/es/components/Logo/Logo.js +25 -9
  117. package/dist/es/components/NavArrow/NavArrow.css +63 -1
  118. package/dist/es/components/NavArrow/NavArrow.d.ts +3 -3
  119. package/dist/es/components/NavArrow/NavArrow.js +28 -8
  120. package/dist/es/components/Notification/Notification.css +350 -1
  121. package/dist/es/components/Notification/Notification.d.ts +4 -5
  122. package/dist/es/components/Notification/Notification.js +131 -61
  123. package/dist/es/components/Pagination/Pagination.css +5 -1
  124. package/dist/es/components/Pagination/Pagination.d.ts +3 -4
  125. package/dist/es/components/Pagination/Pagination.js +22 -7
  126. package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.css +62 -1
  127. package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.d.ts +4 -5
  128. package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.js +26 -10
  129. package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.css +10 -1
  130. package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.d.ts +2 -3
  131. package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.js +22 -5
  132. package/dist/es/components/Pagination/components/PaginationNavigation/PaginationNavigation.css +17 -1
  133. package/dist/es/components/Pagination/components/PaginationNavigation/PaginationNavigation.d.ts +2 -3
  134. package/dist/es/components/Pagination/components/PaginationNavigation/PaginationNavigation.js +23 -7
  135. package/dist/es/components/Pagination/helpers.js +3 -0
  136. package/dist/es/components/Pagination/usePagination.d.ts +1 -2
  137. package/dist/es/components/Pagination/usePagination.js +18 -6
  138. package/dist/es/components/Paragraph/Paragraph.css +43 -1
  139. package/dist/es/components/Paragraph/Paragraph.d.ts +2 -4
  140. package/dist/es/components/Paragraph/Paragraph.js +22 -9
  141. package/dist/es/components/Preloader/Preloader.css +224 -1
  142. package/dist/es/components/Preloader/Preloader.d.ts +3 -3
  143. package/dist/es/components/Preloader/Preloader.js +36 -16
  144. package/dist/es/components/RadioButton/RadioButton.css +120 -1
  145. package/dist/es/components/RadioButton/RadioButton.d.ts +1 -1
  146. package/dist/es/components/RadioButton/RadioButton.js +50 -18
  147. package/dist/es/components/Row/Row.css +238 -1
  148. package/dist/es/components/Row/Row.d.ts +2 -2
  149. package/dist/es/components/Row/Row.js +48 -23
  150. package/dist/es/components/Search/Search.css +453 -1
  151. package/dist/es/components/Search/Search.d.ts +8 -7
  152. package/dist/es/components/Search/Search.js +149 -54
  153. package/dist/es/components/Select/Select.css +389 -1
  154. package/dist/es/components/Select/Select.d.ts +84 -8
  155. package/dist/es/components/Select/Select.js +142 -52
  156. package/dist/es/components/Select/reducer/selectReducer.d.ts +1 -1
  157. package/dist/es/components/Select/reducer/selectReducer.js +32 -18
  158. package/dist/es/components/Selector/Selector.css +132 -1
  159. package/dist/es/components/Selector/Selector.d.ts +1 -1
  160. package/dist/es/components/Selector/Selector.js +50 -23
  161. package/dist/es/components/Selector/doc/Selector.example.css +17 -0
  162. package/dist/es/components/Sliders/Slider/Slider.css +128 -1
  163. package/dist/es/components/Sliders/Slider/Slider.d.ts +1 -1
  164. package/dist/es/components/Sliders/Slider/Slider.js +56 -25
  165. package/dist/es/components/Sliders/SliderRange/SliderRange.css +169 -1
  166. package/dist/es/components/Sliders/SliderRange/SliderRange.d.ts +1 -1
  167. package/dist/es/components/Sliders/SliderRange/SliderRange.js +80 -33
  168. package/dist/es/components/Sliders/SliderRange/helpers.js +2 -0
  169. package/dist/es/components/Sliders/SliderRatio/SliderRatio.css +219 -1
  170. package/dist/es/components/Sliders/SliderRatio/SliderRatio.d.ts +1 -1
  171. package/dist/es/components/Sliders/SliderRatio/SliderRatio.js +85 -36
  172. package/dist/es/components/Sliders/SliderRatio/helpers.js +1 -1
  173. package/dist/es/components/Sliders/SliderRatio/types.d.ts +1 -1
  174. package/dist/es/components/Sliders/SliderRatio/types.js +1 -0
  175. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.css +84 -1
  176. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.d.ts +2 -2
  177. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.js +35 -11
  178. package/dist/es/components/Sliders/components/SliderScale/SliderScale.css +15 -1
  179. package/dist/es/components/Sliders/components/SliderScale/SliderScale.d.ts +2 -2
  180. package/dist/es/components/Sliders/components/SliderScale/SliderScale.js +20 -6
  181. package/dist/es/components/Sliders/components/SliderScale/helpers.js +16 -12
  182. package/dist/es/components/Sliders/helpers.js +5 -1
  183. package/dist/es/components/Snackbar/Snackbar.css +220 -1
  184. package/dist/es/components/Snackbar/Snackbar.d.ts +3 -3
  185. package/dist/es/components/Snackbar/Snackbar.js +82 -44
  186. package/dist/es/components/Snackbar/SnackbarTimer/SnackbarTimer.css +66 -1
  187. package/dist/es/components/Snackbar/SnackbarTimer/SnackbarTimer.d.ts +3 -3
  188. package/dist/es/components/Snackbar/SnackbarTimer/SnackbarTimer.js +17 -9
  189. package/dist/es/components/Switcher/Switcher.css +160 -1
  190. package/dist/es/components/Switcher/Switcher.d.ts +1 -2
  191. package/dist/es/components/Switcher/Switcher.js +39 -17
  192. package/dist/es/components/Tabs/Tab.d.ts +6 -0
  193. package/dist/es/components/Tabs/Tab.js +14 -0
  194. package/dist/es/components/Tabs/Tabs.css +306 -1
  195. package/dist/es/components/Tabs/Tabs.d.ts +5 -6
  196. package/dist/es/components/Tabs/Tabs.js +177 -87
  197. package/dist/es/components/TextField/TextField.css +343 -1
  198. package/dist/es/components/TextField/TextField.d.ts +3 -3
  199. package/dist/es/components/TextField/TextField.js +188 -80
  200. package/dist/es/components/TextField/utils/countGraphemes.js +18 -10
  201. package/dist/es/components/TextLink/TextLink.css +50 -1
  202. package/dist/es/components/TextLink/TextLink.d.ts +2 -2
  203. package/dist/es/components/TextLink/TextLink.js +27 -14
  204. package/dist/es/components/Tile/Tile.css +43 -1
  205. package/dist/es/components/Tile/Tile.d.ts +5 -7
  206. package/dist/es/components/Tile/Tile.js +36 -16
  207. package/dist/es/components/Tooltip/Tooltip.css +335 -1
  208. package/dist/es/components/Tooltip/Tooltip.d.ts +8 -9
  209. package/dist/es/components/Tooltip/Tooltip.js +139 -58
  210. package/dist/es/hooks/usePrevious.js +2 -0
  211. package/dist/es/hooks/useResolution.d.ts +1 -1
  212. package/dist/es/hooks/useResolution.js +11 -5
  213. package/dist/es/hooks/useSwipe.d.ts +1 -1
  214. package/dist/es/hooks/useSwipe.js +44 -17
  215. package/dist/es/index.d.ts +9 -16
  216. package/dist/es/index.js +10 -17
  217. package/dist/lib/colors/ColorItem/ColorItem.css +45 -1
  218. package/dist/lib/colors/ColorItem/ColorItem.d.ts +2 -2
  219. package/dist/lib/colors/ColorItem/ColorItem.js +18 -9
  220. package/dist/lib/colors/Colors.css +233 -1
  221. package/dist/lib/colors/Colors.d.ts +1 -1
  222. package/dist/lib/colors/Colors.js +79 -37
  223. package/dist/lib/colors/colorsData.d.ts +4 -4
  224. package/dist/lib/colors/colorsData.js +2 -1
  225. package/dist/lib/components/Accordion/Accordion.css +89 -1
  226. package/dist/lib/components/Accordion/Accordion.d.ts +1 -2
  227. package/dist/lib/components/Accordion/Accordion.js +81 -26
  228. package/dist/lib/components/Avatar/Avatar.css +52 -1
  229. package/dist/lib/components/Avatar/Avatar.d.ts +1 -1
  230. package/dist/lib/components/Avatar/Avatar.js +41 -13
  231. package/dist/lib/components/Avatar/doc/i/img.png +0 -0
  232. package/dist/lib/components/Badges/components/CounterBadge/CounterBadge.css +54 -0
  233. package/dist/lib/components/Badges/{CounterBadge → components/CounterBadge}/CounterBadge.d.ts +2 -2
  234. package/dist/lib/components/Badges/components/CounterBadge/CounterBadge.js +81 -0
  235. package/dist/lib/components/Badges/components/NotificationBadge/NotificationBadge.css +58 -0
  236. package/dist/lib/components/Badges/{NotificationBadge → components/NotificationBadge}/NotificationBadge.d.ts +4 -3
  237. package/dist/lib/components/Badges/components/NotificationBadge/NotificationBadge.js +71 -0
  238. package/dist/lib/components/Badges/components/PriceBadge/PriceBadge.css +119 -0
  239. package/dist/lib/components/Badges/{PriceBadge → components/PriceBadge}/PriceBadge.d.ts +4 -4
  240. package/dist/lib/components/Badges/{PriceBadge → components/PriceBadge}/PriceBadge.js +75 -19
  241. package/dist/lib/components/Badges/components/PromoBadge/PromoBadge.css +64 -0
  242. package/dist/{es/components/Badges → lib/components/Badges/components}/PromoBadge/PromoBadge.d.ts +3 -3
  243. package/dist/lib/components/Badges/components/PromoBadge/PromoBadge.js +76 -0
  244. package/dist/lib/components/Badges/{TimerBadge/components → components/TimerBadge}/Timer/Timer.js +55 -11
  245. package/dist/lib/components/Badges/components/TimerBadge/TimerBadge.css +60 -0
  246. package/dist/{es/components/Badges → lib/components/Badges/components}/TimerBadge/TimerBadge.d.ts +2 -2
  247. package/dist/lib/components/Badges/components/TimerBadge/TimerBadge.js +135 -0
  248. package/dist/lib/components/Banner/Banner.css +195 -1
  249. package/dist/lib/components/Banner/Banner.d.ts +4 -5
  250. package/dist/lib/components/Banner/Banner.js +160 -72
  251. package/dist/lib/components/Banner/BannerDot.css +69 -1
  252. package/dist/lib/components/Banner/BannerDot.d.ts +1 -1
  253. package/dist/lib/components/Banner/BannerDot.js +36 -10
  254. package/dist/lib/components/Banner/slidesSettings.d.ts +2 -4
  255. package/dist/lib/components/Banner/slidesSettings.js +11 -4
  256. package/dist/lib/components/Button/Button.css +814 -1
  257. package/dist/lib/components/Button/Button.d.ts +6 -7
  258. package/dist/lib/components/Button/Button.js +157 -70
  259. package/dist/lib/components/Calendar/Calendar.css +5 -1
  260. package/dist/lib/components/Calendar/Calendar.d.ts +2 -2
  261. package/dist/lib/components/Calendar/Calendar.js +148 -70
  262. package/dist/lib/components/Calendar/components/Day/Day.css +128 -0
  263. package/dist/{es/components/Calendar/components/_Day → lib/components/Calendar/components/Day}/Day.d.ts +4 -4
  264. package/dist/lib/components/Calendar/components/Day/Day.js +117 -0
  265. package/dist/lib/components/Calendar/components/Month/Month.css +81 -0
  266. package/dist/lib/components/Calendar/components/{_Month → Month}/Month.d.ts +2 -3
  267. package/dist/lib/components/Calendar/components/Month/Month.js +122 -0
  268. package/dist/lib/components/Caption/Caption.css +48 -1
  269. package/dist/lib/components/Caption/Caption.d.ts +2 -4
  270. package/dist/lib/components/Caption/Caption.js +40 -15
  271. package/dist/lib/components/Carousel/Carousel.css +215 -1
  272. package/dist/lib/components/Carousel/Carousel.d.ts +10 -11
  273. package/dist/lib/components/Carousel/Carousel.js +226 -195
  274. package/dist/lib/components/Carousel/checkBreakpointsPropTypes.d.ts +1 -1
  275. package/dist/lib/components/Carousel/checkBreakpointsPropTypes.js +17 -5
  276. package/dist/lib/components/Carousel/useGradient.d.ts +1 -1
  277. package/dist/lib/components/Carousel/useGradient.js +24 -11
  278. package/dist/lib/components/Checkbox/Checkbox.css +150 -1
  279. package/dist/lib/components/Checkbox/Checkbox.d.ts +4 -4
  280. package/dist/lib/components/Checkbox/Checkbox.js +74 -34
  281. package/dist/lib/components/Chips/Chip.css +132 -1
  282. package/dist/lib/components/Chips/Chip.d.ts +26 -6
  283. package/dist/lib/components/Chips/Chip.js +75 -35
  284. package/dist/lib/components/Chips/Chips.css +19 -1
  285. package/dist/lib/components/Chips/Chips.d.ts +2 -2
  286. package/dist/lib/components/Chips/Chips.js +91 -46
  287. package/dist/lib/components/Chips/components/ChipsDropdown.css +106 -1
  288. package/dist/lib/components/Chips/components/ChipsDropdown.d.ts +2 -2
  289. package/dist/lib/components/Chips/components/ChipsDropdown.js +66 -30
  290. package/dist/lib/components/Collapse/Collapse.css +3 -0
  291. package/dist/{es/components/_Collapse → lib/components/Collapse}/Collapse.d.ts +3 -3
  292. package/dist/lib/components/Collapse/Collapse.js +141 -0
  293. package/dist/lib/components/ContentArea/ContentArea.css +109 -1
  294. package/dist/lib/components/ContentArea/ContentArea.d.ts +4 -5
  295. package/dist/lib/components/ContentArea/ContentArea.js +43 -13
  296. package/dist/lib/components/ContentView/ContentView.css +103 -1
  297. package/dist/lib/components/ContentView/ContentView.d.ts +2 -3
  298. package/dist/lib/components/ContentView/ContentView.js +62 -16
  299. package/dist/lib/components/Counter/Counter.css +123 -1
  300. package/dist/lib/components/Counter/Counter.d.ts +1 -1
  301. package/dist/lib/components/Counter/Counter.js +70 -24
  302. package/dist/lib/components/Grid/Grid.css +102 -1
  303. package/dist/lib/components/Grid/Grid.d.ts +1 -1
  304. package/dist/lib/components/Grid/Grid.js +39 -12
  305. package/dist/lib/components/Grid/GridColumn.css +3102 -1
  306. package/dist/lib/components/Grid/GridColumn.d.ts +2 -2
  307. package/dist/lib/components/Grid/GridColumn.js +76 -37
  308. package/dist/lib/components/Header/Header.css +122 -1
  309. package/dist/lib/components/Header/Header.d.ts +1 -3
  310. package/dist/lib/components/Header/Header.js +42 -17
  311. package/dist/lib/components/Link/Link.d.ts +2 -2
  312. package/dist/lib/components/Link/Link.js +33 -14
  313. package/dist/lib/components/List/List.css +66 -1
  314. package/dist/lib/components/List/List.d.ts +1 -2
  315. package/dist/lib/components/List/List.js +30 -12
  316. package/dist/lib/components/List/ListItem.css +6 -1
  317. package/dist/lib/components/List/ListItem.d.ts +1 -2
  318. package/dist/lib/components/List/ListItem.js +19 -5
  319. package/dist/lib/components/ListData/ListData.css +162 -1
  320. package/dist/lib/components/ListData/ListData.d.ts +34 -6
  321. package/dist/lib/components/ListData/ListData.js +110 -50
  322. package/dist/lib/components/ListData/ListDataGroup.css +15 -1
  323. package/dist/lib/components/ListData/ListDataGroup.d.ts +4 -4
  324. package/dist/lib/components/ListData/ListDataGroup.js +117 -47
  325. package/dist/lib/components/ListData/components/ListDataSortable.css +79 -1
  326. package/dist/lib/components/ListData/components/ListDataSortable.d.ts +4 -4
  327. package/dist/lib/components/ListData/components/ListDataSortable.js +73 -34
  328. package/dist/lib/components/ListData/doc/i/img.png +0 -0
  329. package/dist/lib/components/ListData/helpers.js +24 -6
  330. package/dist/lib/components/Logo/Logo.css +43 -1
  331. package/dist/lib/components/Logo/Logo.d.ts +1 -1
  332. package/dist/lib/components/Logo/Logo.js +40 -13
  333. package/dist/lib/components/NavArrow/NavArrow.css +63 -1
  334. package/dist/lib/components/NavArrow/NavArrow.d.ts +3 -3
  335. package/dist/lib/components/NavArrow/NavArrow.js +46 -14
  336. package/dist/lib/components/Notification/Notification.css +350 -1
  337. package/dist/lib/components/Notification/Notification.d.ts +4 -5
  338. package/dist/lib/components/Notification/Notification.js +200 -113
  339. package/dist/lib/components/Pagination/Pagination.css +5 -1
  340. package/dist/lib/components/Pagination/Pagination.d.ts +3 -4
  341. package/dist/lib/components/Pagination/Pagination.js +50 -18
  342. package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.css +62 -1
  343. package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.d.ts +4 -5
  344. package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.js +34 -11
  345. package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.css +10 -1
  346. package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.d.ts +2 -3
  347. package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.js +31 -6
  348. package/dist/lib/components/Pagination/components/PaginationNavigation/PaginationNavigation.css +17 -1
  349. package/dist/lib/components/Pagination/components/PaginationNavigation/PaginationNavigation.d.ts +2 -3
  350. package/dist/lib/components/Pagination/components/PaginationNavigation/PaginationNavigation.js +31 -8
  351. package/dist/lib/components/Pagination/helpers.js +6 -1
  352. package/dist/lib/components/Pagination/usePagination.d.ts +1 -2
  353. package/dist/lib/components/Pagination/usePagination.js +35 -9
  354. package/dist/lib/components/Paragraph/Paragraph.css +43 -1
  355. package/dist/lib/components/Paragraph/Paragraph.d.ts +2 -4
  356. package/dist/lib/components/Paragraph/Paragraph.js +37 -13
  357. package/dist/lib/components/Preloader/Preloader.css +224 -1
  358. package/dist/lib/components/Preloader/Preloader.d.ts +3 -3
  359. package/dist/lib/components/Preloader/Preloader.js +57 -22
  360. package/dist/lib/components/RadioButton/RadioButton.css +120 -1
  361. package/dist/lib/components/RadioButton/RadioButton.d.ts +1 -1
  362. package/dist/lib/components/RadioButton/RadioButton.js +69 -22
  363. package/dist/lib/components/Row/Row.css +238 -1
  364. package/dist/lib/components/Row/Row.d.ts +2 -2
  365. package/dist/lib/components/Row/Row.js +75 -39
  366. package/dist/lib/components/Search/Search.css +453 -1
  367. package/dist/lib/components/Search/Search.d.ts +8 -7
  368. package/dist/lib/components/Search/Search.js +261 -121
  369. package/dist/lib/components/Select/Select.css +389 -1
  370. package/dist/lib/components/Select/Select.d.ts +84 -8
  371. package/dist/lib/components/Select/Select.js +186 -69
  372. package/dist/lib/components/Select/reducer/selectReducer.d.ts +1 -1
  373. package/dist/lib/components/Select/reducer/selectReducer.js +41 -21
  374. package/dist/lib/components/Selector/Selector.css +132 -1
  375. package/dist/lib/components/Selector/Selector.d.ts +1 -1
  376. package/dist/lib/components/Selector/Selector.js +70 -27
  377. package/dist/lib/components/Selector/doc/Selector.example.css +17 -0
  378. package/dist/lib/components/Sliders/Slider/Slider.css +128 -1
  379. package/dist/lib/components/Sliders/Slider/Slider.d.ts +1 -1
  380. package/dist/lib/components/Sliders/Slider/Slider.js +75 -29
  381. package/dist/lib/components/Sliders/SliderRange/SliderRange.css +169 -1
  382. package/dist/lib/components/Sliders/SliderRange/SliderRange.d.ts +1 -1
  383. package/dist/lib/components/Sliders/SliderRange/SliderRange.js +100 -37
  384. package/dist/lib/components/Sliders/SliderRange/helpers.js +18 -5
  385. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.css +219 -1
  386. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.d.ts +1 -1
  387. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.js +111 -40
  388. package/dist/lib/components/Sliders/SliderRatio/helpers.js +27 -8
  389. package/dist/lib/components/Sliders/SliderRatio/types.d.ts +1 -1
  390. package/dist/lib/components/Sliders/SliderRatio/types.js +2 -0
  391. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.css +84 -1
  392. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.d.ts +2 -2
  393. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.js +56 -17
  394. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.css +15 -1
  395. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.d.ts +2 -2
  396. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.js +39 -11
  397. package/dist/lib/components/Sliders/components/SliderScale/helpers.js +33 -15
  398. package/dist/lib/components/Sliders/helpers.js +22 -5
  399. package/dist/lib/components/Snackbar/Snackbar.css +220 -1
  400. package/dist/lib/components/Snackbar/Snackbar.d.ts +3 -3
  401. package/dist/lib/components/Snackbar/Snackbar.js +138 -81
  402. package/dist/lib/components/Snackbar/SnackbarTimer/SnackbarTimer.css +66 -1
  403. package/dist/lib/components/Snackbar/SnackbarTimer/SnackbarTimer.d.ts +3 -3
  404. package/dist/lib/components/Snackbar/SnackbarTimer/SnackbarTimer.js +36 -17
  405. package/dist/lib/components/Switcher/Switcher.css +160 -1
  406. package/dist/lib/components/Switcher/Switcher.d.ts +1 -2
  407. package/dist/lib/components/Switcher/Switcher.js +52 -21
  408. package/dist/lib/components/Tabs/Tab.d.ts +6 -0
  409. package/dist/lib/components/Tabs/Tab.js +26 -5
  410. package/dist/lib/components/Tabs/Tabs.css +306 -1
  411. package/dist/lib/components/Tabs/Tabs.d.ts +5 -6
  412. package/dist/lib/components/Tabs/Tabs.js +209 -95
  413. package/dist/lib/components/TextField/TextField.css +343 -1
  414. package/dist/lib/components/TextField/TextField.d.ts +3 -3
  415. package/dist/lib/components/TextField/TextField.js +238 -113
  416. package/dist/lib/components/TextField/utils/countGraphemes.js +28 -11
  417. package/dist/lib/components/TextLink/TextLink.css +50 -1
  418. package/dist/lib/components/TextLink/TextLink.d.ts +2 -2
  419. package/dist/lib/components/TextLink/TextLink.js +41 -18
  420. package/dist/lib/components/Tile/Tile.css +43 -1
  421. package/dist/lib/components/Tile/Tile.d.ts +5 -7
  422. package/dist/lib/components/Tile/Tile.js +54 -26
  423. package/dist/lib/components/Tooltip/Tooltip.css +335 -1
  424. package/dist/lib/components/Tooltip/Tooltip.d.ts +8 -9
  425. package/dist/lib/components/Tooltip/Tooltip.js +218 -110
  426. package/dist/lib/constants/throttleTime.js +3 -2
  427. package/dist/lib/hooks/usePrevious.js +11 -4
  428. package/dist/lib/hooks/useResolution.d.ts +1 -1
  429. package/dist/lib/hooks/useResolution.js +23 -9
  430. package/dist/lib/hooks/useSwipe.d.ts +1 -1
  431. package/dist/lib/hooks/useSwipe.js +63 -21
  432. package/dist/lib/index.d.ts +9 -16
  433. package/dist/lib/index.js +101 -82
  434. package/package.json +101 -106
  435. package/styles/base.less +171 -0
  436. package/styles/colors.css +0 -53
  437. package/dist/es/components/Badges/CounterBadge/CounterBadge.css +0 -1
  438. package/dist/es/components/Badges/NotificationBadge/NotificationBadge.css +0 -1
  439. package/dist/es/components/Badges/NotificationBadge/NotificationBadge.js +0 -34
  440. package/dist/es/components/Badges/PriceBadge/PriceBadge.css +0 -1
  441. package/dist/es/components/Badges/PromoBadge/PromoBadge.css +0 -1
  442. package/dist/es/components/Badges/TimerBadge/TimerBadge.css +0 -1
  443. package/dist/es/components/Calendar/components/_Day/Day.css +0 -1
  444. package/dist/es/components/Calendar/components/_Month/Month.css +0 -1
  445. package/dist/es/components/Modal/Modal.css +0 -1
  446. package/dist/es/components/Modal/Modal.d.ts +0 -106
  447. package/dist/es/components/Modal/Modal.js +0 -277
  448. package/dist/es/components/Modal/_ModalContent/ModalContent.css +0 -1
  449. package/dist/es/components/Modal/_ModalContent/ModalContent.d.ts +0 -8
  450. package/dist/es/components/Modal/_ModalContent/ModalContent.js +0 -167
  451. package/dist/es/components/Modal/_ModalDesktop/ModalDesktop.css +0 -1
  452. package/dist/es/components/Modal/_ModalDesktop/ModalDesktop.d.ts +0 -8
  453. package/dist/es/components/Modal/_ModalDesktop/ModalDesktop.js +0 -32
  454. package/dist/es/components/Modal/_ModalMobileBottom/ModalMobileBottom.css +0 -1
  455. package/dist/es/components/Modal/_ModalMobileBottom/ModalMobileBottom.d.ts +0 -12
  456. package/dist/es/components/Modal/_ModalMobileBottom/ModalMobileBottom.js +0 -114
  457. package/dist/es/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.css +0 -1
  458. package/dist/es/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.d.ts +0 -8
  459. package/dist/es/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.js +0 -55
  460. package/dist/es/components/Modal/mocks.d.ts +0 -3
  461. package/dist/es/components/Modal/mocks.js +0 -79
  462. package/dist/es/components/Modal/types.d.ts +0 -28
  463. package/dist/es/components/Modal/types.js +0 -1
  464. package/dist/es/components/Modal/utils/utils.d.ts +0 -18
  465. package/dist/es/components/Modal/utils/utils.js +0 -66
  466. package/dist/es/components/ScrollBar/ScrollBar.css +0 -1
  467. package/dist/es/components/ScrollBar/ScrollBar.d.ts +0 -34
  468. package/dist/es/components/ScrollBar/ScrollBar.js +0 -86
  469. package/dist/es/components/_Collapse/Collapse.css +0 -1
  470. package/dist/es/styles/base.css +0 -1
  471. package/dist/lib/components/Badges/CounterBadge/CounterBadge.css +0 -1
  472. package/dist/lib/components/Badges/CounterBadge/CounterBadge.js +0 -52
  473. package/dist/lib/components/Badges/NotificationBadge/NotificationBadge.css +0 -1
  474. package/dist/lib/components/Badges/NotificationBadge/NotificationBadge.js +0 -43
  475. package/dist/lib/components/Badges/PriceBadge/PriceBadge.css +0 -1
  476. package/dist/lib/components/Badges/PromoBadge/PromoBadge.css +0 -1
  477. package/dist/lib/components/Badges/PromoBadge/PromoBadge.js +0 -49
  478. package/dist/lib/components/Badges/TimerBadge/TimerBadge.css +0 -1
  479. package/dist/lib/components/Badges/TimerBadge/TimerBadge.js +0 -97
  480. package/dist/lib/components/Calendar/components/_Day/Day.css +0 -1
  481. package/dist/lib/components/Calendar/components/_Day/Day.js +0 -75
  482. package/dist/lib/components/Calendar/components/_Month/Month.css +0 -1
  483. package/dist/lib/components/Calendar/components/_Month/Month.js +0 -93
  484. package/dist/lib/components/Modal/Modal.css +0 -1
  485. package/dist/lib/components/Modal/Modal.d.ts +0 -106
  486. package/dist/lib/components/Modal/Modal.js +0 -286
  487. package/dist/lib/components/Modal/_ModalContent/ModalContent.css +0 -1
  488. package/dist/lib/components/Modal/_ModalContent/ModalContent.d.ts +0 -8
  489. package/dist/lib/components/Modal/_ModalContent/ModalContent.js +0 -176
  490. package/dist/lib/components/Modal/_ModalDesktop/ModalDesktop.css +0 -1
  491. package/dist/lib/components/Modal/_ModalDesktop/ModalDesktop.d.ts +0 -8
  492. package/dist/lib/components/Modal/_ModalDesktop/ModalDesktop.js +0 -41
  493. package/dist/lib/components/Modal/_ModalMobileBottom/ModalMobileBottom.css +0 -1
  494. package/dist/lib/components/Modal/_ModalMobileBottom/ModalMobileBottom.d.ts +0 -12
  495. package/dist/lib/components/Modal/_ModalMobileBottom/ModalMobileBottom.js +0 -123
  496. package/dist/lib/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.css +0 -1
  497. package/dist/lib/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.d.ts +0 -8
  498. package/dist/lib/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.js +0 -64
  499. package/dist/lib/components/Modal/mocks.d.ts +0 -3
  500. package/dist/lib/components/Modal/mocks.js +0 -85
  501. package/dist/lib/components/Modal/types.d.ts +0 -28
  502. package/dist/lib/components/Modal/types.js +0 -5
  503. package/dist/lib/components/Modal/utils/utils.d.ts +0 -18
  504. package/dist/lib/components/Modal/utils/utils.js +0 -72
  505. package/dist/lib/components/ScrollBar/ScrollBar.css +0 -1
  506. package/dist/lib/components/ScrollBar/ScrollBar.d.ts +0 -34
  507. package/dist/lib/components/ScrollBar/ScrollBar.js +0 -94
  508. package/dist/lib/components/_Collapse/Collapse.css +0 -1
  509. package/dist/lib/components/_Collapse/Collapse.js +0 -95
  510. package/dist/lib/styles/base.css +0 -1
  511. package/styles/base.scss +0 -150
  512. /package/dist/es/components/Badges/{TimerBadge/components → components/TimerBadge}/Timer/Timer.d.ts +0 -0
  513. /package/dist/lib/components/Badges/{TimerBadge/components → components/TimerBadge}/Timer/Timer.d.ts +0 -0
@@ -1,20 +1,24 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
- import "core-js/modules/es.array.concat.js";
4
3
  import "core-js/modules/es.function.name.js";
5
- import "core-js/modules/es.object.get-own-property-descriptor.js";
6
4
  import "core-js/modules/es.parse-float.js";
7
5
  import "core-js/modules/es.regexp.exec.js";
8
6
  import "core-js/modules/es.string.replace.js";
7
+ import "core-js/modules/es.object.get-own-property-descriptor.js";
8
+ import "core-js/modules/es.array.concat.js";
9
+ import "core-js/modules/es.object.values.js";
10
+
9
11
  /* eslint-disable react/no-multi-comp */
10
12
  import * as React from 'react';
11
13
  import { useCallback, useEffect, useState, useRef, useMemo } from 'react';
12
14
  import { checkEventIsClickOrEnterPress, cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
13
- import InputMask from '@mona-health/react-input-mask';
14
15
  import throttle from 'lodash.throttle';
16
+ import * as PropTypes from 'prop-types';
17
+ import InputMask from 'react-input-mask';
15
18
  import throttleTime from "../../constants/throttleTime";
16
19
  import countGraphemes from "./utils/countGraphemes";
17
20
  import "./TextField.css";
21
+
18
22
  var Hide = function Hide(props) {
19
23
  return /*#__PURE__*/React.createElement("svg", _extends({
20
24
  viewBox: "0 0 32 32"
@@ -22,6 +26,7 @@ var Hide = function Hide(props) {
22
26
  d: "M5.82 17.45l-1.65 2.31L5.8 21l1.65-2.3a15.9 15.9 0 002.67 1.3l-.87 2.71 1.92.63.86-2.7a15.64 15.64 0 003 .48V24h2v-2.84a15.64 15.64 0 003-.48l.86 2.7 1.92-.63-.93-2.75a15.9 15.9 0 002.67-1.38L26.2 21l1.63-1.2-1.65-2.31a16.16 16.16 0 001.82-1.8l-1.51-1.35a13.8 13.8 0 01-21 0L4 15.69a16.15 16.15 0 001.82 1.76zM23 11.92l1-1.77a16 16 0 00-16 0l1 1.77a14 14 0 0114 0z"
23
27
  }));
24
28
  };
29
+
25
30
  var Show = function Show(props) {
26
31
  return /*#__PURE__*/React.createElement("svg", _extends({
27
32
  viewBox: "0 0 32 32"
@@ -31,6 +36,7 @@ var Show = function Show(props) {
31
36
  d: "M20 16a4 4 0 10-4 4 4 4 0 004-4zm-6 0a2 2 0 112 2 2 2 0 01-2-2z"
32
37
  }));
33
38
  };
39
+
34
40
  var ClearIcon = function ClearIcon(props) {
35
41
  return /*#__PURE__*/React.createElement("svg", _extends({
36
42
  viewBox: "0 0 32 32"
@@ -39,6 +45,7 @@ var ClearIcon = function ClearIcon(props) {
39
45
  d: "M16 14.5L11.5 10 10 11.5l4.5 4.5-4.5 4.5 1.5 1.5 4.5-4.5 4.5 4.5 1.5-1.5-4.5-4.5 4.5-4.5-1.5-1.5-4.5 4.5z"
40
46
  }));
41
47
  };
48
+
42
49
  var CheckedIcon = function CheckedIcon(props) {
43
50
  return /*#__PURE__*/React.createElement("svg", _extends({
44
51
  viewBox: "0 0 32 32"
@@ -46,6 +53,7 @@ var CheckedIcon = function CheckedIcon(props) {
46
53
  d: "M22.2 9l-7.8 9.4-3.6-3.7L9 16.5c3.6 3.7 5.4 5.5 5.5 5.5.1 0 3.3-3.8 9.5-11.3L22.2 9z"
47
54
  }));
48
55
  };
56
+
49
57
  var ResizeIcon = function ResizeIcon(props) {
50
58
  return /*#__PURE__*/React.createElement("svg", _extends({
51
59
  width: 12,
@@ -54,6 +62,7 @@ var ResizeIcon = function ResizeIcon(props) {
54
62
  d: "M1 11L11 1M7 11l4-4"
55
63
  }));
56
64
  };
65
+
57
66
  var TEXTAREA_MAX_HEIGHT = 144;
58
67
  var DEFAULT_LABEL_TOP_POSITION = 16;
59
68
  var DEFAULT_ROW_COUNT = 3;
@@ -77,83 +86,92 @@ export var MinTextareaHeight = {
77
86
  THREE_ROWS: ROW_HEIGHT * DEFAULT_ROW_COUNT
78
87
  };
79
88
  var cn = cnCreate('mfui-text-field');
89
+
80
90
  var TextField = function TextField(_ref) {
81
91
  var className = _ref.className,
82
- customIcon = _ref.customIcon,
83
- disabled = _ref.disabled,
84
- _ref$hideIcon = _ref.hideIcon,
85
- hideIcon = _ref$hideIcon === void 0 ? false : _ref$hideIcon,
86
- id = _ref.id,
87
- label = _ref.label,
88
- mask = _ref.mask,
89
- maskChar = _ref.maskChar,
90
- maxLength = _ref.maxLength,
91
- graphemesCounter = _ref.graphemesCounter,
92
- symbolCounter = _ref.symbolCounter,
93
- _ref$textarea = _ref.textarea,
94
- textarea = _ref$textarea === void 0 ? false : _ref$textarea,
95
- name = _ref.name,
96
- _ref$hidePlaceholder = _ref.hidePlaceholder,
97
- hidePlaceholder = _ref$hidePlaceholder === void 0 ? false : _ref$hidePlaceholder,
98
- placeholder = _ref.placeholder,
99
- required = _ref.required,
100
- _ref$isControlled = _ref.isControlled,
101
- isControlled = _ref$isControlled === void 0 ? false : _ref$isControlled,
102
- _ref$minTextareaHeigh = _ref.minTextareaHeight,
103
- minTextareaHeight = _ref$minTextareaHeigh === void 0 ? MinTextareaHeight.THREE_ROWS : _ref$minTextareaHeigh,
104
- _ref$disableEnterLine = _ref.disableEnterLineBreak,
105
- disableEnterLineBreak = _ref$disableEnterLine === void 0 ? false : _ref$disableEnterLine,
106
- _ref$hideResizeButton = _ref.hideResizeButton,
107
- hideResizeButton = _ref$hideResizeButton === void 0 ? false : _ref$hideResizeButton,
108
- onBlur = _ref.onBlur,
109
- onChange = _ref.onChange,
110
- onBeforeMaskChange = _ref.onBeforeMaskChange,
111
- onIconClick = _ref.onIconClick,
112
- onFocus = _ref.onFocus,
113
- onKeyUp = _ref.onKeyUp,
114
- _ref$theme = _ref.theme,
115
- theme = _ref$theme === void 0 ? 'default' : _ref$theme,
116
- _ref$type = _ref.type,
117
- type = _ref$type === void 0 ? 'text' : _ref$type,
118
- _ref$value = _ref.value,
119
- value = _ref$value === void 0 ? '' : _ref$value,
120
- verification = _ref.verification,
121
- _ref$noticeText = _ref.noticeText,
122
- noticeText = _ref$noticeText === void 0 ? '' : _ref$noticeText,
123
- inputRef = _ref.inputRef,
124
- inputMode = _ref.inputMode,
125
- autoComplete = _ref.autoComplete,
126
- _ref$classes = _ref.classes,
127
- classes = _ref$classes === void 0 ? {} : _ref$classes,
128
- dataAttrs = _ref.dataAttrs;
92
+ customIcon = _ref.customIcon,
93
+ disabled = _ref.disabled,
94
+ _ref$hideIcon = _ref.hideIcon,
95
+ hideIcon = _ref$hideIcon === void 0 ? false : _ref$hideIcon,
96
+ id = _ref.id,
97
+ label = _ref.label,
98
+ mask = _ref.mask,
99
+ maskChar = _ref.maskChar,
100
+ maxLength = _ref.maxLength,
101
+ graphemesCounter = _ref.graphemesCounter,
102
+ symbolCounter = _ref.symbolCounter,
103
+ _ref$textarea = _ref.textarea,
104
+ textarea = _ref$textarea === void 0 ? false : _ref$textarea,
105
+ name = _ref.name,
106
+ _ref$hidePlaceholder = _ref.hidePlaceholder,
107
+ hidePlaceholder = _ref$hidePlaceholder === void 0 ? false : _ref$hidePlaceholder,
108
+ placeholder = _ref.placeholder,
109
+ required = _ref.required,
110
+ _ref$isControlled = _ref.isControlled,
111
+ isControlled = _ref$isControlled === void 0 ? false : _ref$isControlled,
112
+ _ref$minTextareaHeigh = _ref.minTextareaHeight,
113
+ minTextareaHeight = _ref$minTextareaHeigh === void 0 ? MinTextareaHeight.THREE_ROWS : _ref$minTextareaHeigh,
114
+ _ref$disableEnterLine = _ref.disableEnterLineBreak,
115
+ disableEnterLineBreak = _ref$disableEnterLine === void 0 ? false : _ref$disableEnterLine,
116
+ _ref$hideResizeButton = _ref.hideResizeButton,
117
+ hideResizeButton = _ref$hideResizeButton === void 0 ? false : _ref$hideResizeButton,
118
+ onBlur = _ref.onBlur,
119
+ onChange = _ref.onChange,
120
+ onBeforeMaskChange = _ref.onBeforeMaskChange,
121
+ onIconClick = _ref.onIconClick,
122
+ onFocus = _ref.onFocus,
123
+ onKeyUp = _ref.onKeyUp,
124
+ _ref$theme = _ref.theme,
125
+ theme = _ref$theme === void 0 ? 'default' : _ref$theme,
126
+ _ref$type = _ref.type,
127
+ type = _ref$type === void 0 ? 'text' : _ref$type,
128
+ _ref$value = _ref.value,
129
+ value = _ref$value === void 0 ? '' : _ref$value,
130
+ verification = _ref.verification,
131
+ _ref$noticeText = _ref.noticeText,
132
+ noticeText = _ref$noticeText === void 0 ? '' : _ref$noticeText,
133
+ inputRef = _ref.inputRef,
134
+ inputMode = _ref.inputMode,
135
+ autoComplete = _ref.autoComplete,
136
+ _ref$classes = _ref.classes,
137
+ classes = _ref$classes === void 0 ? {} : _ref$classes,
138
+ dataAttrs = _ref.dataAttrs;
139
+
129
140
  var _useState = useState(true),
130
- _useState2 = _slicedToArray(_useState, 2),
131
- isPasswordHidden = _useState2[0],
132
- setPasswordHidden = _useState2[1];
141
+ _useState2 = _slicedToArray(_useState, 2),
142
+ isPasswordHidden = _useState2[0],
143
+ setPasswordHidden = _useState2[1];
144
+
133
145
  var _useState3 = useState(value),
134
- _useState4 = _slicedToArray(_useState3, 2),
135
- inputValue = _useState4[0],
136
- setInputValue = _useState4[1];
146
+ _useState4 = _slicedToArray(_useState3, 2),
147
+ inputValue = _useState4[0],
148
+ setInputValue = _useState4[1];
149
+
137
150
  var _useState5 = useState(minTextareaHeight),
138
- _useState6 = _slicedToArray(_useState5, 2),
139
- textareaHeight = _useState6[0],
140
- setTextareaHeight = _useState6[1];
151
+ _useState6 = _slicedToArray(_useState5, 2),
152
+ textareaHeight = _useState6[0],
153
+ setTextareaHeight = _useState6[1];
154
+
141
155
  var _useState7 = useState(false),
142
- _useState8 = _slicedToArray(_useState7, 2),
143
- isMaxLimitExceeded = _useState8[0],
144
- setIsMaxLimitExceeded = _useState8[1];
156
+ _useState8 = _slicedToArray(_useState7, 2),
157
+ isMaxLimitExceeded = _useState8[0],
158
+ setIsMaxLimitExceeded = _useState8[1];
159
+
145
160
  var _useState9 = useState(noticeText),
146
- _useState10 = _slicedToArray(_useState9, 2),
147
- currentNoticeText = _useState10[0],
148
- setCurrentNoticeText = _useState10[1];
161
+ _useState10 = _slicedToArray(_useState9, 2),
162
+ currentNoticeText = _useState10[0],
163
+ setCurrentNoticeText = _useState10[1];
164
+
149
165
  var _useState11 = useState(false),
150
- _useState12 = _slicedToArray(_useState11, 2),
151
- isTextareaResizeFocused = _useState12[0],
152
- setIsTextareaResizeFocused = _useState12[1];
166
+ _useState12 = _slicedToArray(_useState11, 2),
167
+ isTextareaResizeFocused = _useState12[0],
168
+ setIsTextareaResizeFocused = _useState12[1];
169
+
153
170
  var _useState13 = useState(false),
154
- _useState14 = _slicedToArray(_useState13, 2),
155
- isTextareaResized = _useState14[0],
156
- setIsTextareaResized = _useState14[1];
171
+ _useState14 = _slicedToArray(_useState13, 2),
172
+ isTextareaResized = _useState14[0],
173
+ setIsTextareaResized = _useState14[1];
174
+
157
175
  var fieldNode = useRef();
158
176
  var labelRef = useRef(null);
159
177
  var resizerRef = useRef(null);
@@ -171,9 +189,11 @@ var TextField = function TextField(_ref) {
171
189
  var actualPlaceholder = placeholder || DEFAULT_PLACEHOLDERS[type];
172
190
  var checkSymbolMaxLimit = useCallback(function () {
173
191
  var textareaValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
192
+
174
193
  if (!symbolCounter) {
175
194
  return;
176
195
  }
196
+
177
197
  var countValue = graphemesCounter ? countGraphemes(String(textareaValue)) : String(textareaValue).length;
178
198
  setIsMaxLimitExceeded(symbolCounter < countValue);
179
199
  }, [graphemesCounter, symbolCounter]);
@@ -181,12 +201,16 @@ var TextField = function TextField(_ref) {
181
201
  if (!textarea || !fieldNode.current || isTextareaResized) {
182
202
  return;
183
203
  }
204
+
184
205
  fieldNode.current.style.height = "".concat(minTextareaHeight, "px");
185
206
  var scrollHeight = fieldNode.current.scrollHeight;
207
+
186
208
  var _window$getComputedSt = window.getComputedStyle(fieldNode.current),
187
- paddingTop = _window$getComputedSt.paddingTop,
188
- paddingBottom = _window$getComputedSt.paddingBottom;
209
+ paddingTop = _window$getComputedSt.paddingTop,
210
+ paddingBottom = _window$getComputedSt.paddingBottom;
211
+
189
212
  var innerHeight = scrollHeight - parseFloat(paddingTop) - parseFloat(paddingBottom);
213
+
190
214
  if (innerHeight >= TEXTAREA_MAX_HEIGHT) {
191
215
  fieldNode.current.style.height = "".concat(TEXTAREA_MAX_HEIGHT, "px");
192
216
  } else {
@@ -204,10 +228,12 @@ var TextField = function TextField(_ref) {
204
228
  if (!resizerRef.current || textarea !== TextareaTypes.FLEXIBLE) {
205
229
  return;
206
230
  }
231
+
207
232
  var handleStartResize = function handleStartResize(downEvent) {
208
233
  if (!fieldNode.current) {
209
234
  return;
210
235
  }
236
+
211
237
  setIsTextareaResizeFocused(true);
212
238
  downEvent.preventDefault();
213
239
  var originalHeight = parseFloat(getComputedStyle(fieldNode.current).getPropertyValue('height').replace('px', ''));
@@ -219,6 +245,7 @@ var TextField = function TextField(_ref) {
219
245
  setTextareaHeight(updatedHeight);
220
246
  setIsTextareaResized(true);
221
247
  }, throttleTime.resizeTextarea);
248
+
222
249
  var handleResizeCancel = function handleResizeCancel() {
223
250
  setIsTextareaResizeFocused(false);
224
251
  window.removeEventListener('mousemove', handleResize);
@@ -226,11 +253,13 @@ var TextField = function TextField(_ref) {
226
253
  window.removeEventListener('mouseup', handleResizeCancel);
227
254
  window.removeEventListener('touchend', handleResizeCancel);
228
255
  };
256
+
229
257
  window.addEventListener('mousemove', handleResize);
230
258
  window.addEventListener('touchmove', handleResize);
231
259
  window.addEventListener('mouseup', handleResizeCancel);
232
260
  window.addEventListener('touchend', handleResizeCancel);
233
261
  };
262
+
234
263
  resizerRef.current.addEventListener('mousedown', handleStartResize);
235
264
  resizerRef.current.addEventListener('touchstart', handleStartResize);
236
265
  }, [textarea, minTextareaHeight]);
@@ -239,32 +268,42 @@ var TextField = function TextField(_ref) {
239
268
  return !prevPassState;
240
269
  });
241
270
  }, []);
271
+
242
272
  var handleInputChange = function handleInputChange(e) {
243
273
  !isControlled && setInputValue(e.target.value);
244
274
  checkSymbolMaxLimit(e.target.value);
245
275
  onChange === null || onChange === void 0 ? void 0 : onChange(e);
246
276
  };
277
+
247
278
  var handleNoticeTransitionEnd = useCallback(function () {
248
279
  !noticeText && setCurrentNoticeText(noticeText);
249
280
  }, [noticeText]);
281
+
250
282
  var handleTextareaScroll = function handleTextareaScroll() {
251
283
  if (!(fieldNode === null || fieldNode === void 0 ? void 0 : fieldNode.current) || !(labelRef === null || labelRef === void 0 ? void 0 : labelRef.current)) {
252
284
  return;
253
285
  }
286
+
254
287
  var scrollTop = fieldNode.current.scrollTop;
288
+
255
289
  if (!scrollTop) {
256
290
  labelRef.current.style.top = '';
257
291
  return;
258
292
  }
293
+
259
294
  labelRef.current.style.top = "".concat(DEFAULT_LABEL_TOP_POSITION - scrollTop, "px");
260
295
  };
296
+
261
297
  var handleTextareaKeyDown = function handleTextareaKeyDown(e) {
262
298
  checkEventIsClickOrEnterPress(e) && !e.shiftKey && e.preventDefault();
263
299
  };
300
+
264
301
  var handleIconClick = useCallback(function (e) {
265
302
  var _a;
303
+
266
304
  var field = fieldNode.current;
267
305
  isPasswordType && togglePasswordHiding();
306
+
268
307
  if (!customIcon && hasClearIcon) {
269
308
  var nativeInputValue = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value');
270
309
  var inputEvent = new Event('change', {
@@ -274,6 +313,7 @@ var TextField = function TextField(_ref) {
274
313
  field === null || field === void 0 ? void 0 : field.dispatchEvent(inputEvent);
275
314
  field === null || field === void 0 ? void 0 : field.focus();
276
315
  }
316
+
277
317
  onIconClick === null || onIconClick === void 0 ? void 0 : onIconClick(e);
278
318
  }, [isPasswordType, togglePasswordHiding, onIconClick, customIcon, hasClearIcon]);
279
319
  var handleFocus = useCallback(function (e) {
@@ -282,12 +322,11 @@ var TextField = function TextField(_ref) {
282
322
  var handleBlur = useCallback(function (e) {
283
323
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
284
324
  }, [onBlur]);
285
- var handleBeforeMaskChange = useCallback(function (_ref2) {
286
- var previousState = _ref2.previousState,
287
- nextState = _ref2.nextState;
288
- return onBeforeMaskChange === null || onBeforeMaskChange === void 0 ? void 0 : onBeforeMaskChange(nextState.enteredString, nextState, previousState);
325
+ var handleBeforeMaskChange = useCallback(function (newState, oldState, inputedValue) {
326
+ return onBeforeMaskChange && onBeforeMaskChange(inputedValue, newState, oldState);
289
327
  }, [onBeforeMaskChange]);
290
328
  var textareaType = textarea === TextareaTypes.FLEXIBLE ? TextareaTypes.FLEXIBLE : TextareaTypes.FIXED;
329
+
291
330
  var commonParams = _extends(_extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.input)), {
292
331
  disabled: disabled,
293
332
  id: id,
@@ -302,6 +341,7 @@ var TextField = function TextField(_ref) {
302
341
  required: required,
303
342
  inputMode: inputMode
304
343
  });
344
+
305
345
  var inputParams = _extends(_extends({}, commonParams), {
306
346
  className: cn('field', {
307
347
  'no-icon': hideIcon
@@ -309,11 +349,13 @@ var TextField = function TextField(_ref) {
309
349
  type: isVisiblePassword ? 'text' : type,
310
350
  autoComplete: autoComplete
311
351
  });
352
+
312
353
  var inputMaskParams = {
313
354
  mask: mask,
314
- maskPlaceholder: maskChar,
315
- beforeMaskedStateChange: onBeforeMaskChange ? handleBeforeMaskChange : undefined
355
+ maskChar: maskChar,
356
+ beforeMaskedValueChange: onBeforeMaskChange ? handleBeforeMaskChange : undefined
316
357
  };
358
+
317
359
  var textareaParams = _extends(_extends({}, commonParams), {
318
360
  className: cn('field', {
319
361
  type: textareaType,
@@ -321,39 +363,48 @@ var TextField = function TextField(_ref) {
321
363
  resized: isTextareaResizeFocused
322
364
  }, classes === null || classes === void 0 ? void 0 : classes.input)
323
365
  });
366
+
324
367
  var getFieldNode = function getFieldNode(node) {
325
368
  if (!node) {
326
369
  return;
327
370
  }
371
+
328
372
  fieldNode.current = node;
329
373
  inputRef === null || inputRef === void 0 ? void 0 : inputRef(node);
330
374
  };
375
+
331
376
  var getIcon = function getIcon() {
332
377
  switch (true) {
333
378
  case !!customIcon:
334
379
  return customIcon;
380
+
335
381
  case isPasswordType && isPasswordHidden:
336
382
  return /*#__PURE__*/React.createElement(Hide, {
337
383
  className: cn('icon')
338
384
  });
385
+
339
386
  case isPasswordType && !isPasswordHidden:
340
387
  return /*#__PURE__*/React.createElement(Show, {
341
388
  className: cn('icon')
342
389
  });
390
+
343
391
  case isValidVerification:
344
392
  return /*#__PURE__*/React.createElement(CheckedIcon, {
345
393
  className: cn('icon')
346
394
  });
395
+
347
396
  case hasClearIcon:
348
397
  return /*#__PURE__*/React.createElement(ClearIcon, {
349
398
  className: cn('icon', {
350
399
  clear: true
351
400
  })
352
401
  });
402
+
353
403
  default:
354
404
  return undefined;
355
405
  }
356
406
  };
407
+
357
408
  var renderLabel = function renderLabel() {
358
409
  var currentLabel = label || actualPlaceholder;
359
410
  return /*#__PURE__*/React.createElement("label", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.label), {
@@ -364,6 +415,7 @@ var TextField = function TextField(_ref) {
364
415
  className: cn('require-mark')
365
416
  }, "*"));
366
417
  };
418
+
367
419
  var renderTextarea = function renderTextarea() {
368
420
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("textarea", _extends({}, textareaParams, {
369
421
  style: {
@@ -374,11 +426,14 @@ var TextField = function TextField(_ref) {
374
426
  onScroll: handleTextareaScroll
375
427
  })), renderLabel());
376
428
  };
429
+
377
430
  var renderIconBlock = function renderIconBlock() {
378
431
  var icon = getIcon();
432
+
379
433
  if (!icon) {
380
434
  return undefined;
381
435
  }
436
+
382
437
  return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.iconBox), {
383
438
  className: cn('icon-box', {
384
439
  error: isErrorVerification && !customIcon,
@@ -388,19 +443,23 @@ var TextField = function TextField(_ref) {
388
443
  onClick: handleIconClick
389
444
  }), icon);
390
445
  };
446
+
391
447
  var renderInput = function renderInput() {
392
448
  return /*#__PURE__*/React.createElement(React.Fragment, null, mask ? /*#__PURE__*/React.createElement(InputMask, _extends({}, inputParams, inputMaskParams, {
393
- ref: getFieldNode
449
+ inputRef: getFieldNode
394
450
  })) : /*#__PURE__*/React.createElement("input", _extends({}, inputParams, {
395
451
  ref: getFieldNode
396
452
  })), renderLabel(), !hideIcon && renderIconBlock());
397
453
  };
454
+
398
455
  var renderField = function renderField() {
399
456
  if (textarea) {
400
457
  return renderTextarea();
401
458
  }
459
+
402
460
  return renderInput();
403
461
  };
462
+
404
463
  var isPlaceholderShowed = isPasswordType && isPasswordHidden && !!inputValue;
405
464
  var valueHasSymbols = inputValue !== null && inputValue !== undefined;
406
465
  var currentSymbolCount = valueHasSymbols && (graphemesCounter && countGraphemes(String(inputValue)) || String(inputValue).length) || 0;
@@ -435,4 +494,53 @@ var TextField = function TextField(_ref) {
435
494
  })
436
495
  }, "".concat(currentSymbolCount, "/").concat(symbolCounter))));
437
496
  };
497
+
498
+ TextField.propTypes = {
499
+ textarea: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(Object.values(TextareaTypes))]),
500
+ label: PropTypes.string,
501
+ theme: PropTypes.oneOf(['default', 'white']),
502
+ hideIcon: PropTypes.bool,
503
+ verification: PropTypes.oneOf(Object.values(Verification)),
504
+ disabled: PropTypes.bool,
505
+ required: PropTypes.bool,
506
+ type: PropTypes.oneOf(['text', 'password', 'tel', 'email']),
507
+ inputMode: PropTypes.oneOf(['numeric', 'tel', 'decimal', 'email', 'url', 'search', 'none']),
508
+ autoComplete: PropTypes.string,
509
+ name: PropTypes.string,
510
+ hidePlaceholder: PropTypes.bool,
511
+ placeholder: PropTypes.string,
512
+ id: PropTypes.string,
513
+ isControlled: PropTypes.bool,
514
+ value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
515
+ maxLength: PropTypes.number,
516
+ symbolCounter: PropTypes.number,
517
+ graphemesCounter: PropTypes.bool,
518
+ customIcon: PropTypes.element,
519
+ mask: PropTypes.string,
520
+ maskChar: PropTypes.string,
521
+ noticeText: PropTypes.string,
522
+ className: PropTypes.string,
523
+ minTextareaHeight: PropTypes.oneOf([24, 72]),
524
+ hideResizeButton: PropTypes.bool,
525
+ disableEnterLineBreak: PropTypes.bool,
526
+ onChange: PropTypes.func,
527
+ onBeforeMaskChange: PropTypes.func,
528
+ onBlur: PropTypes.func,
529
+ onFocus: PropTypes.func,
530
+ onKeyUp: PropTypes.func,
531
+ onIconClick: PropTypes.func,
532
+ inputRef: PropTypes.func,
533
+ classes: PropTypes.shape({
534
+ label: PropTypes.string,
535
+ input: PropTypes.string
536
+ }),
537
+ dataAttrs: PropTypes.shape({
538
+ root: PropTypes.objectOf(PropTypes.string.isRequired),
539
+ label: PropTypes.objectOf(PropTypes.string.isRequired),
540
+ notice: PropTypes.objectOf(PropTypes.string.isRequired),
541
+ input: PropTypes.objectOf(PropTypes.string.isRequired),
542
+ iconBox: PropTypes.objectOf(PropTypes.string.isRequired),
543
+ resizer: PropTypes.objectOf(PropTypes.string.isRequired)
544
+ })
545
+ };
438
546
  export default TextField;
@@ -1,17 +1,18 @@
1
- import "core-js/modules/es.array.from.js";
2
1
  import "core-js/modules/es.date.to-string.js";
3
2
  import "core-js/modules/es.object.to-string.js";
4
- import "core-js/modules/es.regexp.exec.js";
5
3
  import "core-js/modules/es.regexp.to-string.js";
6
- import "core-js/modules/es.string.iterator.js";
4
+ import "core-js/modules/es.regexp.exec.js";
7
5
  import "core-js/modules/es.string.replace.js";
6
+ import "core-js/modules/es.array.from.js";
7
+ import "core-js/modules/es.string.iterator.js";
8
8
  var regex = /[\uFE00-\uFE0F]|(?:\uD83C[\uDFFB-\uDFFF])/g;
9
- var regexSymbolWithCombiningMarks = /((?:[\0-\u02FF\u0370-\u0482\u048A-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u060F\u061B-\u064A\u0660-\u066F\u0671-\u06D5\u06DD\u06DE\u06E5\u06E6\u06E9\u06EE-\u0710\u0712-\u072F\u074B-\u07A5\u07B1-\u07EA\u07F4-\u07FC\u07FE-\u0815\u081A\u0824\u0828\u082E-\u0858\u085C-\u0897\u08A0-\u08C9\u08E2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0964-\u0980\u0984-\u09BB\u09BD\u09C5\u09C6\u09C9\u09CA\u09CE-\u09D6\u09D8-\u09E1\u09E4-\u09FD\u09FF\u0A00\u0A04-\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A6F\u0A72-\u0A74\u0A76-\u0A80\u0A84-\u0ABB\u0ABD\u0AC6\u0ACA\u0ACE-\u0AE1\u0AE4-\u0AF9\u0B00\u0B04-\u0B3B\u0B3D\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B61\u0B64-\u0B81\u0B83-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE-\u0BD6\u0BD8-\u0BFF\u0C05-\u0C3B\u0C3D\u0C45\u0C49\u0C4E-\u0C54\u0C57-\u0C61\u0C64-\u0C80\u0C84-\u0CBB\u0CBD\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CE1\u0CE4-\u0CF2\u0CF4-\u0CFF\u0D04-\u0D3A\u0D3D\u0D45\u0D49\u0D4E-\u0D56\u0D58-\u0D61\u0D64-\u0D80\u0D84-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF4-\u0E30\u0E32\u0E33\u0E3B-\u0E46\u0E4F-\u0EB0\u0EB2\u0EB3\u0EBD-\u0EC7\u0ECF-\u0F17\u0F1A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F40-\u0F70\u0F85\u0F88-\u0F8C\u0F98\u0FBD-\u0FC5\u0FC7-\u102A\u103F-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u109E-\u135C\u1360-\u1711\u1716-\u1731\u1735-\u1751\u1754-\u1771\u1774-\u17B3\u17D4-\u17DC\u17DE-\u180A\u180E\u1810-\u1884\u1887-\u18A8\u18AA-\u191F\u192C-\u192F\u193C-\u1A16\u1A1C-\u1A54\u1A5F\u1A7D\u1A7E\u1A80-\u1AAF\u1ACF-\u1AFF\u1B05-\u1B33\u1B45-\u1B6A\u1B74-\u1B7F\u1B83-\u1BA0\u1BAE-\u1BE5\u1BF4-\u1C23\u1C38-\u1CCF\u1CD3\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA-\u1DBF\u1E00-\u20CF\u20F1-\u2CEE\u2CF2-\u2D7E\u2D80-\u2DDF\u2E00-\u3029\u3030-\u3098\u309B-\uA66E\uA673\uA67E-\uA69D\uA6A0-\uA6EF\uA6F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA828-\uA82B\uA82D-\uA87F\uA882-\uA8B3\uA8C6-\uA8DF\uA8F2-\uA8FE\uA900-\uA925\uA92E-\uA946\uA954-\uA97F\uA984-\uA9B2\uA9C1-\uA9E4\uA9E6-\uAA28\uAA37-\uAA42\uAA44-\uAA4B\uAA4E-\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2-\uAAEA\uAAF0-\uAAF4\uAAF7-\uABE2\uABEB\uABEE-\uD7FF\uE000-\uFB1D\uFB1F-\uFDFF\uFE10-\uFE1F\uFE30-\uFFFF]|\uD800[\uDC00-\uDDFC\uDDFE-\uDEDF\uDEE1-\uDF75\uDF7B-\uDFFF]|[\uD801\uD808-\uD80C\uD80E-\uD819\uD81C-\uD82E\uD830-\uD832\uD835\uD837\uD83B-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD802[\uDC00-\uDE00\uDE04\uDE07-\uDE0B\uDE10-\uDE37\uDE3B-\uDE3E\uDE40-\uDEE4\uDEE7-\uDFFF]|\uD803[\uDC00-\uDD23\uDD28-\uDEAA\uDEAD-\uDEFC\uDF00-\uDF45\uDF51-\uDF81\uDF86-\uDFFF]|\uD804[\uDC03-\uDC37\uDC47-\uDC6F\uDC71\uDC72\uDC75-\uDC7E\uDC83-\uDCAF\uDCBB-\uDCC1\uDCC3-\uDCFF\uDD03-\uDD26\uDD35-\uDD44\uDD47-\uDD72\uDD74-\uDD7F\uDD83-\uDDB2\uDDC1-\uDDC8\uDDCD\uDDD0-\uDE2B\uDE38-\uDE3D\uDE3F\uDE40\uDE42-\uDEDE\uDEEB-\uDEFF\uDF04-\uDF3A\uDF3D\uDF45\uDF46\uDF49\uDF4A\uDF4E-\uDF56\uDF58-\uDF61\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC00-\uDC34\uDC47-\uDC5D\uDC5F-\uDCAF\uDCC4-\uDDAE\uDDB6\uDDB7\uDDC1-\uDDDB\uDDDE-\uDE2F\uDE41-\uDEAA\uDEB8-\uDF1C\uDF2C-\uDFFF]|\uD806[\uDC00-\uDC2B\uDC3B-\uDD2F\uDD36\uDD39\uDD3A\uDD3F\uDD41\uDD44-\uDDD0\uDDD8\uDDD9\uDDE1-\uDDE3\uDDE5-\uDE00\uDE0B-\uDE32\uDE3A\uDE3F-\uDE46\uDE48-\uDE50\uDE5C-\uDE89\uDE9A-\uDFFF]|\uD807[\uDC00-\uDC2E\uDC37\uDC40-\uDC91\uDCA8\uDCB7-\uDD30\uDD37-\uDD39\uDD3B\uDD3E\uDD46\uDD48-\uDD89\uDD8F\uDD92\uDD98-\uDEF2\uDEF7-\uDEFF\uDF02\uDF04-\uDF33\uDF3B-\uDF3D\uDF43-\uDFFF]|\uD80D[\uDC00-\uDC3F\uDC41-\uDC46\uDC56-\uDFFF]|\uD81A[\uDC00-\uDEEF\uDEF5-\uDF2F\uDF37-\uDFFF]|\uD81B[\uDC00-\uDF4E\uDF50\uDF88-\uDF8E\uDF93-\uDFE3\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD82F[\uDC00-\uDC9C\uDC9F-\uDFFF]|\uD833[\uDC00-\uDEFF\uDF2E\uDF2F\uDF47-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDC8E\uDC90-\uDD2F\uDD37-\uDEAD\uDEAF-\uDEEB\uDEF0-\uDFFF]|\uD839[\uDC00-\uDCEB\uDCF0-\uDFFF]|\uD83A[\uDC00-\uDCCF\uDCD7-\uDD43\uDD4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]))((?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC82\uDCB0-\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDCE\uDDCF\uDE2C-\uDE37\uDE3E\uDE41\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD3E\uDD40\uDD42\uDD43\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6\uDF00\uDF01\uDF03\uDF34-\uDF3A\uDF3E-\uDF42]|\uD80D[\uDC40\uDC47-\uDC55]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF])+)/g;
10
- var joiner = '200d';
11
- // eslint-disable-next-line no-magic-numbers
9
+ var regexSymbolWithCombiningMarks = /((?:[\0-\u02FF\u0370-\u0482\u048A-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u060F\u061B-\u064A\u0660-\u066F\u0671-\u06D5\u06DD\u06DE\u06E5\u06E6\u06E9\u06EE-\u0710\u0712-\u072F\u074B-\u07A5\u07B1-\u07EA\u07F4-\u07FC\u07FE-\u0815\u081A\u0824\u0828\u082E-\u0858\u085C-\u08D2\u08E2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0964-\u0980\u0984-\u09BB\u09BD\u09C5\u09C6\u09C9\u09CA\u09CE-\u09D6\u09D8-\u09E1\u09E4-\u09FD\u09FF\u0A00\u0A04-\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A6F\u0A72-\u0A74\u0A76-\u0A80\u0A84-\u0ABB\u0ABD\u0AC6\u0ACA\u0ACE-\u0AE1\u0AE4-\u0AF9\u0B00\u0B04-\u0B3B\u0B3D\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B61\u0B64-\u0B81\u0B83-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE-\u0BD6\u0BD8-\u0BFF\u0C05-\u0C3D\u0C45\u0C49\u0C4E-\u0C54\u0C57-\u0C61\u0C64-\u0C80\u0C84-\u0CBB\u0CBD\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CE1\u0CE4-\u0CFF\u0D04-\u0D3A\u0D3D\u0D45\u0D49\u0D4E-\u0D56\u0D58-\u0D61\u0D64-\u0D80\u0D84-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF4-\u0E30\u0E32\u0E33\u0E3B-\u0E46\u0E4F-\u0EB0\u0EB2\u0EB3\u0EBD-\u0EC7\u0ECE-\u0F17\u0F1A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F40-\u0F70\u0F85\u0F88-\u0F8C\u0F98\u0FBD-\u0FC5\u0FC7-\u102A\u103F-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u109E-\u135C\u1360-\u1711\u1715-\u1731\u1735-\u1751\u1754-\u1771\u1774-\u17B3\u17D4-\u17DC\u17DE-\u180A\u180E-\u1884\u1887-\u18A8\u18AA-\u191F\u192C-\u192F\u193C-\u1A16\u1A1C-\u1A54\u1A5F\u1A7D\u1A7E\u1A80-\u1AAF\u1AC1-\u1AFF\u1B05-\u1B33\u1B45-\u1B6A\u1B74-\u1B7F\u1B83-\u1BA0\u1BAE-\u1BE5\u1BF4-\u1C23\u1C38-\u1CCF\u1CD3\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA-\u1DBF\u1DFA\u1E00-\u20CF\u20F1-\u2CEE\u2CF2-\u2D7E\u2D80-\u2DDF\u2E00-\u3029\u3030-\u3098\u309B-\uA66E\uA673\uA67E-\uA69D\uA6A0-\uA6EF\uA6F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA828-\uA82B\uA82D-\uA87F\uA882-\uA8B3\uA8C6-\uA8DF\uA8F2-\uA8FE\uA900-\uA925\uA92E-\uA946\uA954-\uA97F\uA984-\uA9B2\uA9C1-\uA9E4\uA9E6-\uAA28\uAA37-\uAA42\uAA44-\uAA4B\uAA4E-\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2-\uAAEA\uAAF0-\uAAF4\uAAF7-\uABE2\uABEB\uABEE-\uD7FF\uE000-\uFB1D\uFB1F-\uFDFF\uFE10-\uFE1F\uFE30-\uFFFF]|\uD800[\uDC00-\uDDFC\uDDFE-\uDEDF\uDEE1-\uDF75\uDF7B-\uDFFF]|[\uD801\uD808-\uD819\uD81C-\uD82E\uD830-\uD833\uD835\uD837\uD839\uD83B-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD802[\uDC00-\uDE00\uDE04\uDE07-\uDE0B\uDE10-\uDE37\uDE3B-\uDE3E\uDE40-\uDEE4\uDEE7-\uDFFF]|\uD803[\uDC00-\uDD23\uDD28-\uDEAA\uDEAD-\uDF45\uDF51-\uDFFF]|\uD804[\uDC03-\uDC37\uDC47-\uDC7E\uDC83-\uDCAF\uDCBB-\uDCFF\uDD03-\uDD26\uDD35-\uDD44\uDD47-\uDD72\uDD74-\uDD7F\uDD83-\uDDB2\uDDC1-\uDDC8\uDDCD\uDDD0-\uDE2B\uDE38-\uDE3D\uDE3F-\uDEDE\uDEEB-\uDEFF\uDF04-\uDF3A\uDF3D\uDF45\uDF46\uDF49\uDF4A\uDF4E-\uDF56\uDF58-\uDF61\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC00-\uDC34\uDC47-\uDC5D\uDC5F-\uDCAF\uDCC4-\uDDAE\uDDB6\uDDB7\uDDC1-\uDDDB\uDDDE-\uDE2F\uDE41-\uDEAA\uDEB8-\uDF1C\uDF2C-\uDFFF]|\uD806[\uDC00-\uDC2B\uDC3B-\uDD2F\uDD36\uDD39\uDD3A\uDD3F\uDD41\uDD44-\uDDD0\uDDD8\uDDD9\uDDE1-\uDDE3\uDDE5-\uDE00\uDE0B-\uDE32\uDE3A\uDE3F-\uDE46\uDE48-\uDE50\uDE5C-\uDE89\uDE9A-\uDFFF]|\uD807[\uDC00-\uDC2E\uDC37\uDC40-\uDC91\uDCA8\uDCB7-\uDD30\uDD37-\uDD39\uDD3B\uDD3E\uDD46\uDD48-\uDD89\uDD8F\uDD92\uDD98-\uDEF2\uDEF7-\uDFFF]|\uD81A[\uDC00-\uDEEF\uDEF5-\uDF2F\uDF37-\uDFFF]|\uD81B[\uDC00-\uDF4E\uDF50\uDF88-\uDF8E\uDF93-\uDFE3\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD82F[\uDC00-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDD2F\uDD37-\uDEEB\uDEF0-\uDFFF]|\uD83A[\uDC00-\uDCCF\uDCD7-\uDD43\uDD4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]))((?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1AC0\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDCE\uDDCF\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD3E\uDD40\uDD42\uDD43\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF])+)/g;
10
+ var joiner = '200d'; // eslint-disable-next-line no-magic-numbers
11
+
12
12
  var isJoiner = function isJoiner(_char) {
13
13
  return _char.charCodeAt(0).toString(16) === joiner;
14
14
  };
15
+
15
16
  var countGraphemes = function countGraphemes(text) {
16
17
  var normalizedText = text.normalize('NFC').replace(regex, '').replace(regexSymbolWithCombiningMarks, function (_, symbol) {
17
18
  return symbol;
@@ -19,26 +20,33 @@ var countGraphemes = function countGraphemes(text) {
19
20
  var tokens = Array.from(normalizedText);
20
21
  var length = 0;
21
22
  var isComplexChar = false;
23
+
22
24
  for (var i = 0; i < tokens.length; i++) {
23
25
  var _char2 = tokens[i];
24
26
  var nextChar = tokens[i + 1];
27
+
25
28
  if (!nextChar) {
26
- length += 1;
27
- // eslint-disable-next-line no-continue
29
+ length += 1; // eslint-disable-next-line no-continue
30
+
28
31
  continue;
29
32
  }
33
+
30
34
  if (isJoiner(nextChar)) {
31
- isComplexChar = true;
32
- // eslint-disable-next-line no-continue
35
+ isComplexChar = true; // eslint-disable-next-line no-continue
36
+
33
37
  continue;
34
38
  }
39
+
35
40
  if (!isJoiner(_char2) && isComplexChar) {
36
41
  isComplexChar = false;
37
42
  }
43
+
38
44
  if (!isComplexChar) {
39
45
  length += 1;
40
46
  }
41
47
  }
48
+
42
49
  return length;
43
50
  };
51
+
44
52
  export default countGraphemes;