@megafon/ui-core 6.2.1 → 7.0.0

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 (509) hide show
  1. package/dist/es/colors/ColorItem/ColorItem.css +1 -45
  2. package/dist/es/colors/ColorItem/ColorItem.d.ts +2 -2
  3. package/dist/es/colors/ColorItem/ColorItem.js +5 -7
  4. package/dist/es/colors/Colors.css +1 -233
  5. package/dist/es/colors/Colors.d.ts +1 -1
  6. package/dist/es/colors/Colors.js +33 -55
  7. package/dist/es/colors/colorsData.d.ts +4 -4
  8. package/dist/es/components/Accordion/Accordion.css +1 -89
  9. package/dist/es/components/Accordion/Accordion.d.ts +2 -1
  10. package/dist/es/components/Accordion/Accordion.js +22 -65
  11. package/dist/es/components/Avatar/Avatar.css +1 -52
  12. package/dist/es/components/Avatar/Avatar.d.ts +1 -1
  13. package/dist/es/components/Avatar/Avatar.js +9 -27
  14. package/dist/es/components/Badges/CounterBadge/CounterBadge.css +1 -0
  15. package/dist/{lib/components/Badges/components → es/components/Badges}/CounterBadge/CounterBadge.d.ts +2 -2
  16. package/dist/es/components/Badges/{components/CounterBadge → CounterBadge}/CounterBadge.js +10 -28
  17. package/dist/es/components/Badges/NotificationBadge/NotificationBadge.css +1 -0
  18. package/dist/{lib/components/Badges/components → es/components/Badges}/NotificationBadge/NotificationBadge.d.ts +3 -3
  19. package/dist/es/components/Badges/{components/NotificationBadge → NotificationBadge}/NotificationBadge.js +8 -22
  20. package/dist/es/components/Badges/PriceBadge/PriceBadge.css +1 -0
  21. package/dist/es/components/Badges/{components/PriceBadge → PriceBadge}/PriceBadge.d.ts +4 -4
  22. package/dist/es/components/Badges/{components/PriceBadge → PriceBadge}/PriceBadge.js +11 -54
  23. package/dist/es/components/Badges/PromoBadge/PromoBadge.css +1 -0
  24. package/dist/es/components/Badges/{components/PromoBadge → PromoBadge}/PromoBadge.d.ts +4 -4
  25. package/dist/es/components/Badges/{components/PromoBadge → PromoBadge}/PromoBadge.js +9 -23
  26. package/dist/es/components/Badges/TimerBadge/TimerBadge.css +1 -0
  27. package/dist/{lib/components/Badges/components → es/components/Badges}/TimerBadge/TimerBadge.d.ts +2 -2
  28. package/dist/es/components/Badges/{components/TimerBadge → TimerBadge}/TimerBadge.js +22 -46
  29. package/dist/es/components/Badges/{components/TimerBadge → TimerBadge/components}/Timer/Timer.js +5 -32
  30. package/dist/es/components/Banner/Banner.css +1 -195
  31. package/dist/es/components/Banner/Banner.d.ts +5 -4
  32. package/dist/es/components/Banner/Banner.js +82 -130
  33. package/dist/es/components/Banner/BannerDot.css +1 -69
  34. package/dist/es/components/Banner/BannerDot.d.ts +1 -1
  35. package/dist/es/components/Banner/BannerDot.js +6 -22
  36. package/dist/es/components/Banner/slidesSettings.d.ts +4 -2
  37. package/dist/es/components/Banner/slidesSettings.js +3 -6
  38. package/dist/es/components/Button/Button.css +1 -814
  39. package/dist/es/components/Button/Button.d.ts +7 -6
  40. package/dist/es/components/Button/Button.js +44 -104
  41. package/dist/es/components/Calendar/Calendar.css +1 -24
  42. package/dist/es/components/Calendar/Calendar.d.ts +4 -4
  43. package/dist/es/components/Calendar/Calendar.js +75 -144
  44. package/dist/es/components/Calendar/components/_Day/Day.css +1 -0
  45. package/dist/es/components/Calendar/components/{Day → _Day}/Day.d.ts +4 -4
  46. package/dist/es/components/Calendar/components/{Day → _Day}/Day.js +21 -53
  47. package/dist/es/components/Calendar/components/_Month/Month.css +1 -0
  48. package/dist/es/components/Calendar/components/{Month → _Month}/Month.d.ts +3 -2
  49. package/dist/es/components/Calendar/components/{Month → _Month}/Month.js +11 -36
  50. package/dist/es/components/Caption/Caption.css +1 -48
  51. package/dist/es/components/Caption/Caption.d.ts +4 -2
  52. package/dist/es/components/Caption/Caption.js +11 -25
  53. package/dist/es/components/Carousel/Carousel.css +1 -215
  54. package/dist/es/components/Carousel/Carousel.d.ts +11 -10
  55. package/dist/es/components/Carousel/Carousel.js +135 -162
  56. package/dist/es/components/Carousel/checkBreakpointsPropTypes.d.ts +1 -1
  57. package/dist/es/components/Carousel/checkBreakpointsPropTypes.js +1 -4
  58. package/dist/es/components/Carousel/useGradient.d.ts +1 -1
  59. package/dist/es/components/Carousel/useGradient.js +9 -13
  60. package/dist/es/components/Checkbox/Checkbox.css +1 -150
  61. package/dist/es/components/Checkbox/Checkbox.d.ts +4 -4
  62. package/dist/es/components/Checkbox/Checkbox.js +21 -50
  63. package/dist/es/components/Chips/Chip.css +1 -132
  64. package/dist/es/components/Chips/Chip.d.ts +6 -26
  65. package/dist/es/components/Chips/Chip.js +17 -42
  66. package/dist/es/components/Chips/Chips.css +1 -19
  67. package/dist/es/components/Chips/Chips.d.ts +2 -2
  68. package/dist/es/components/Chips/Chips.js +32 -56
  69. package/dist/es/components/Chips/components/ChipsDropdown.css +1 -106
  70. package/dist/es/components/Chips/components/ChipsDropdown.d.ts +2 -2
  71. package/dist/es/components/Chips/components/ChipsDropdown.js +12 -27
  72. package/dist/es/components/ContentArea/ContentArea.css +1 -109
  73. package/dist/es/components/ContentArea/ContentArea.d.ts +5 -4
  74. package/dist/es/components/ContentArea/ContentArea.js +9 -28
  75. package/dist/es/components/ContentView/ContentView.css +1 -103
  76. package/dist/es/components/ContentView/ContentView.d.ts +3 -2
  77. package/dist/es/components/ContentView/ContentView.js +12 -46
  78. package/dist/es/components/Counter/Counter.css +1 -123
  79. package/dist/es/components/Counter/Counter.d.ts +1 -1
  80. package/dist/es/components/Counter/Counter.js +20 -55
  81. package/dist/es/components/Grid/Grid.css +1 -102
  82. package/dist/es/components/Grid/Grid.d.ts +1 -1
  83. package/dist/es/components/Grid/Grid.js +8 -24
  84. package/dist/es/components/Grid/GridColumn.css +1 -3102
  85. package/dist/es/components/Grid/GridColumn.d.ts +2 -2
  86. package/dist/es/components/Grid/GridColumn.js +33 -62
  87. package/dist/es/components/Header/Header.css +1 -122
  88. package/dist/es/components/Header/Header.d.ts +3 -1
  89. package/dist/es/components/Header/Header.js +13 -28
  90. package/dist/es/components/Link/Link.d.ts +2 -2
  91. package/dist/es/components/Link/Link.js +9 -25
  92. package/dist/es/components/List/List.css +1 -66
  93. package/dist/es/components/List/List.d.ts +2 -1
  94. package/dist/es/components/List/List.js +8 -18
  95. package/dist/es/components/List/ListItem.css +1 -6
  96. package/dist/es/components/List/ListItem.d.ts +2 -1
  97. package/dist/es/components/List/ListItem.js +1 -7
  98. package/dist/es/components/ListData/ListData.css +1 -162
  99. package/dist/es/components/ListData/ListData.d.ts +6 -34
  100. package/dist/es/components/ListData/ListData.js +22 -65
  101. package/dist/es/components/ListData/ListDataGroup.css +1 -15
  102. package/dist/es/components/ListData/ListDataGroup.d.ts +4 -4
  103. package/dist/es/components/ListData/ListDataGroup.js +29 -74
  104. package/dist/es/components/ListData/components/ListDataSortable.css +1 -79
  105. package/dist/es/components/ListData/components/ListDataSortable.d.ts +4 -4
  106. package/dist/es/components/ListData/components/ListDataSortable.js +21 -42
  107. package/dist/es/components/ListData/helpers.js +1 -8
  108. package/dist/es/components/Logo/Logo.css +1 -43
  109. package/dist/es/components/Logo/Logo.d.ts +1 -1
  110. package/dist/es/components/Logo/Logo.js +9 -25
  111. package/dist/es/components/Modal/Modal.css +1 -0
  112. package/dist/es/components/Modal/Modal.d.ts +106 -0
  113. package/dist/es/components/Modal/Modal.js +278 -0
  114. package/dist/es/components/Modal/_ModalContent/ModalContent.css +1 -0
  115. package/dist/es/components/Modal/_ModalContent/ModalContent.d.ts +8 -0
  116. package/dist/es/components/Modal/_ModalContent/ModalContent.js +168 -0
  117. package/dist/es/components/Modal/_ModalDesktop/ModalDesktop.css +1 -0
  118. package/dist/es/components/Modal/_ModalDesktop/ModalDesktop.d.ts +8 -0
  119. package/dist/es/components/Modal/_ModalDesktop/ModalDesktop.js +32 -0
  120. package/dist/es/components/Modal/_ModalMobileBottom/ModalMobileBottom.css +1 -0
  121. package/dist/es/components/Modal/_ModalMobileBottom/ModalMobileBottom.d.ts +12 -0
  122. package/dist/es/components/Modal/_ModalMobileBottom/ModalMobileBottom.js +114 -0
  123. package/dist/es/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.css +1 -0
  124. package/dist/es/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.d.ts +8 -0
  125. package/dist/es/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.js +55 -0
  126. package/dist/es/components/Modal/mocks.d.ts +3 -0
  127. package/dist/es/components/Modal/mocks.js +79 -0
  128. package/dist/es/components/Modal/types.d.ts +27 -0
  129. package/dist/es/components/Modal/types.js +1 -0
  130. package/dist/es/components/Modal/utils/utils.d.ts +18 -0
  131. package/dist/es/components/Modal/utils/utils.js +66 -0
  132. package/dist/es/components/NavArrow/NavArrow.css +1 -63
  133. package/dist/es/components/NavArrow/NavArrow.d.ts +3 -3
  134. package/dist/es/components/NavArrow/NavArrow.js +8 -28
  135. package/dist/es/components/Notification/Notification.css +1 -350
  136. package/dist/es/components/Notification/Notification.d.ts +5 -4
  137. package/dist/es/components/Notification/Notification.js +61 -131
  138. package/dist/es/components/Pagination/Pagination.css +1 -5
  139. package/dist/es/components/Pagination/Pagination.d.ts +4 -3
  140. package/dist/es/components/Pagination/Pagination.js +7 -22
  141. package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.css +1 -62
  142. package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.d.ts +5 -4
  143. package/dist/es/components/Pagination/components/PaginationButton/PaginationButton.js +10 -26
  144. package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.css +1 -10
  145. package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.d.ts +3 -2
  146. package/dist/es/components/Pagination/components/PaginationButtons/PaginationButtons.js +5 -22
  147. package/dist/es/components/Pagination/components/PaginationNavigation/PaginationNavigation.css +1 -17
  148. package/dist/es/components/Pagination/components/PaginationNavigation/PaginationNavigation.d.ts +3 -2
  149. package/dist/es/components/Pagination/components/PaginationNavigation/PaginationNavigation.js +7 -23
  150. package/dist/es/components/Pagination/helpers.js +0 -3
  151. package/dist/es/components/Pagination/usePagination.d.ts +2 -1
  152. package/dist/es/components/Pagination/usePagination.js +6 -18
  153. package/dist/es/components/Paragraph/Paragraph.css +1 -43
  154. package/dist/es/components/Paragraph/Paragraph.d.ts +4 -2
  155. package/dist/es/components/Paragraph/Paragraph.js +9 -22
  156. package/dist/es/components/Preloader/Preloader.css +1 -224
  157. package/dist/es/components/Preloader/Preloader.d.ts +3 -3
  158. package/dist/es/components/Preloader/Preloader.js +16 -36
  159. package/dist/es/components/RadioButton/RadioButton.css +1 -120
  160. package/dist/es/components/RadioButton/RadioButton.d.ts +1 -1
  161. package/dist/es/components/RadioButton/RadioButton.js +18 -50
  162. package/dist/es/components/Row/Row.css +1 -238
  163. package/dist/es/components/Row/Row.d.ts +2 -2
  164. package/dist/es/components/Row/Row.js +23 -48
  165. package/dist/es/components/ScrollBar/ScrollBar.css +1 -0
  166. package/dist/es/components/ScrollBar/ScrollBar.d.ts +34 -0
  167. package/dist/es/components/ScrollBar/ScrollBar.js +86 -0
  168. package/dist/es/components/Search/Search.css +1 -453
  169. package/dist/es/components/Search/Search.d.ts +7 -8
  170. package/dist/es/components/Search/Search.js +54 -149
  171. package/dist/es/components/Select/Select.css +1 -389
  172. package/dist/es/components/Select/Select.d.ts +8 -84
  173. package/dist/es/components/Select/Select.js +52 -142
  174. package/dist/es/components/Select/reducer/selectReducer.d.ts +1 -1
  175. package/dist/es/components/Select/reducer/selectReducer.js +18 -32
  176. package/dist/es/components/Selector/Selector.css +1 -132
  177. package/dist/es/components/Selector/Selector.d.ts +1 -1
  178. package/dist/es/components/Selector/Selector.js +23 -50
  179. package/dist/es/components/Sliders/Slider/Slider.css +1 -128
  180. package/dist/es/components/Sliders/Slider/Slider.d.ts +1 -1
  181. package/dist/es/components/Sliders/Slider/Slider.js +25 -56
  182. package/dist/es/components/Sliders/SliderRange/SliderRange.css +1 -169
  183. package/dist/es/components/Sliders/SliderRange/SliderRange.d.ts +1 -1
  184. package/dist/es/components/Sliders/SliderRange/SliderRange.js +33 -80
  185. package/dist/es/components/Sliders/SliderRange/helpers.js +0 -2
  186. package/dist/es/components/Sliders/SliderRatio/SliderRatio.css +1 -219
  187. package/dist/es/components/Sliders/SliderRatio/SliderRatio.d.ts +1 -1
  188. package/dist/es/components/Sliders/SliderRatio/SliderRatio.js +36 -85
  189. package/dist/es/components/Sliders/SliderRatio/helpers.js +1 -1
  190. package/dist/es/components/Sliders/SliderRatio/types.d.ts +1 -1
  191. package/dist/es/components/Sliders/SliderRatio/types.js +0 -1
  192. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.css +1 -84
  193. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.d.ts +2 -2
  194. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.js +11 -35
  195. package/dist/es/components/Sliders/components/SliderScale/SliderScale.css +1 -15
  196. package/dist/es/components/Sliders/components/SliderScale/SliderScale.d.ts +2 -2
  197. package/dist/es/components/Sliders/components/SliderScale/SliderScale.js +6 -20
  198. package/dist/es/components/Sliders/components/SliderScale/helpers.js +12 -16
  199. package/dist/es/components/Sliders/helpers.js +1 -5
  200. package/dist/es/components/Snackbar/Snackbar.css +1 -220
  201. package/dist/es/components/Snackbar/Snackbar.d.ts +3 -3
  202. package/dist/es/components/Snackbar/Snackbar.js +44 -82
  203. package/dist/es/components/Snackbar/SnackbarTimer/SnackbarTimer.css +1 -66
  204. package/dist/es/components/Snackbar/SnackbarTimer/SnackbarTimer.d.ts +3 -3
  205. package/dist/es/components/Snackbar/SnackbarTimer/SnackbarTimer.js +9 -17
  206. package/dist/es/components/Switcher/Switcher.css +1 -160
  207. package/dist/es/components/Switcher/Switcher.d.ts +2 -1
  208. package/dist/es/components/Switcher/Switcher.js +17 -39
  209. package/dist/es/components/Tabs/Tab.js +0 -14
  210. package/dist/es/components/Tabs/Tabs.css +1 -306
  211. package/dist/es/components/Tabs/Tabs.d.ts +6 -5
  212. package/dist/es/components/Tabs/Tabs.js +110 -166
  213. package/dist/es/components/TextField/TextField.css +1 -343
  214. package/dist/es/components/TextField/TextField.d.ts +3 -3
  215. package/dist/es/components/TextField/TextField.js +85 -193
  216. package/dist/es/components/TextField/utils/countGraphemes.js +10 -18
  217. package/dist/es/components/TextLink/TextLink.css +1 -50
  218. package/dist/es/components/TextLink/TextLink.d.ts +2 -2
  219. package/dist/es/components/TextLink/TextLink.js +14 -27
  220. package/dist/es/components/Tile/Tile.css +1 -43
  221. package/dist/es/components/Tile/Tile.d.ts +7 -5
  222. package/dist/es/components/Tile/Tile.js +16 -36
  223. package/dist/es/components/Tooltip/Tooltip.css +1 -335
  224. package/dist/es/components/Tooltip/Tooltip.d.ts +9 -8
  225. package/dist/es/components/Tooltip/Tooltip.js +58 -139
  226. package/dist/es/components/_Collapse/Collapse.css +1 -0
  227. package/dist/{lib/components/Collapse → es/components/_Collapse}/Collapse.d.ts +3 -3
  228. package/dist/es/components/{Collapse → _Collapse}/Collapse.js +25 -62
  229. package/dist/es/hooks/usePrevious.js +0 -2
  230. package/dist/es/hooks/useResolution.d.ts +1 -1
  231. package/dist/es/hooks/useResolution.js +5 -11
  232. package/dist/es/hooks/useSwipe.d.ts +1 -1
  233. package/dist/es/hooks/useSwipe.js +17 -44
  234. package/dist/es/index.d.ts +16 -9
  235. package/dist/es/index.js +17 -10
  236. package/dist/es/styles/base.css +1 -0
  237. package/dist/lib/colors/ColorItem/ColorItem.css +1 -45
  238. package/dist/lib/colors/ColorItem/ColorItem.d.ts +2 -2
  239. package/dist/lib/colors/ColorItem/ColorItem.js +9 -18
  240. package/dist/lib/colors/Colors.css +1 -233
  241. package/dist/lib/colors/Colors.d.ts +1 -1
  242. package/dist/lib/colors/Colors.js +38 -80
  243. package/dist/lib/colors/colorsData.d.ts +4 -4
  244. package/dist/lib/colors/colorsData.js +1 -2
  245. package/dist/lib/components/Accordion/Accordion.css +1 -89
  246. package/dist/lib/components/Accordion/Accordion.d.ts +2 -1
  247. package/dist/lib/components/Accordion/Accordion.js +27 -82
  248. package/dist/lib/components/Avatar/Avatar.css +1 -52
  249. package/dist/lib/components/Avatar/Avatar.d.ts +1 -1
  250. package/dist/lib/components/Avatar/Avatar.js +14 -42
  251. package/dist/lib/components/Badges/CounterBadge/CounterBadge.css +1 -0
  252. package/dist/{es/components/Badges/components → lib/components/Badges}/CounterBadge/CounterBadge.d.ts +2 -2
  253. package/dist/lib/components/Badges/CounterBadge/CounterBadge.js +52 -0
  254. package/dist/lib/components/Badges/NotificationBadge/NotificationBadge.css +1 -0
  255. package/dist/{es/components/Badges/components → lib/components/Badges}/NotificationBadge/NotificationBadge.d.ts +3 -3
  256. package/dist/lib/components/Badges/NotificationBadge/NotificationBadge.js +44 -0
  257. package/dist/lib/components/Badges/PriceBadge/PriceBadge.css +1 -0
  258. package/dist/lib/components/Badges/{components/PriceBadge → PriceBadge}/PriceBadge.d.ts +4 -4
  259. package/dist/lib/components/Badges/{components/PriceBadge → PriceBadge}/PriceBadge.js +20 -76
  260. package/dist/lib/components/Badges/PromoBadge/PromoBadge.css +1 -0
  261. package/dist/lib/components/Badges/{components/PromoBadge → PromoBadge}/PromoBadge.d.ts +4 -4
  262. package/dist/lib/components/Badges/PromoBadge/PromoBadge.js +56 -0
  263. package/dist/lib/components/Badges/TimerBadge/TimerBadge.css +1 -0
  264. package/dist/{es/components/Badges/components → lib/components/Badges}/TimerBadge/TimerBadge.d.ts +2 -2
  265. package/dist/lib/components/Badges/TimerBadge/TimerBadge.js +96 -0
  266. package/dist/lib/components/Badges/{components/TimerBadge → TimerBadge/components}/Timer/Timer.js +12 -56
  267. package/dist/lib/components/Banner/Banner.css +1 -195
  268. package/dist/lib/components/Banner/Banner.d.ts +5 -4
  269. package/dist/lib/components/Banner/Banner.js +94 -164
  270. package/dist/lib/components/Banner/BannerDot.css +1 -69
  271. package/dist/lib/components/Banner/BannerDot.d.ts +1 -1
  272. package/dist/lib/components/Banner/BannerDot.js +11 -37
  273. package/dist/lib/components/Banner/slidesSettings.d.ts +4 -2
  274. package/dist/lib/components/Banner/slidesSettings.js +5 -12
  275. package/dist/lib/components/Button/Button.css +1 -814
  276. package/dist/lib/components/Button/Button.d.ts +7 -6
  277. package/dist/lib/components/Button/Button.js +71 -158
  278. package/dist/lib/components/Calendar/Calendar.css +1 -24
  279. package/dist/lib/components/Calendar/Calendar.d.ts +4 -4
  280. package/dist/lib/components/Calendar/Calendar.js +90 -191
  281. package/dist/lib/components/Calendar/components/_Day/Day.css +1 -0
  282. package/dist/lib/components/Calendar/components/{Day → _Day}/Day.d.ts +4 -4
  283. package/dist/lib/components/Calendar/components/{Day → _Day}/Day.js +29 -72
  284. package/dist/lib/components/Calendar/components/_Month/Month.css +1 -0
  285. package/dist/lib/components/Calendar/components/{Month → _Month}/Month.d.ts +3 -2
  286. package/dist/lib/components/Calendar/components/_Month/Month.js +97 -0
  287. package/dist/lib/components/Caption/Caption.css +1 -48
  288. package/dist/lib/components/Caption/Caption.d.ts +4 -2
  289. package/dist/lib/components/Caption/Caption.js +16 -41
  290. package/dist/lib/components/Carousel/Carousel.css +1 -215
  291. package/dist/lib/components/Carousel/Carousel.d.ts +11 -10
  292. package/dist/lib/components/Carousel/Carousel.js +223 -228
  293. package/dist/lib/components/Carousel/checkBreakpointsPropTypes.d.ts +1 -1
  294. package/dist/lib/components/Carousel/checkBreakpointsPropTypes.js +6 -18
  295. package/dist/lib/components/Carousel/useGradient.d.ts +1 -1
  296. package/dist/lib/components/Carousel/useGradient.js +12 -25
  297. package/dist/lib/components/Checkbox/Checkbox.css +1 -150
  298. package/dist/lib/components/Checkbox/Checkbox.d.ts +4 -4
  299. package/dist/lib/components/Checkbox/Checkbox.js +35 -75
  300. package/dist/lib/components/Chips/Chip.css +1 -132
  301. package/dist/lib/components/Chips/Chip.d.ts +6 -26
  302. package/dist/lib/components/Chips/Chip.js +36 -76
  303. package/dist/lib/components/Chips/Chips.css +1 -19
  304. package/dist/lib/components/Chips/Chips.d.ts +2 -2
  305. package/dist/lib/components/Chips/Chips.js +47 -92
  306. package/dist/lib/components/Chips/components/ChipsDropdown.css +1 -106
  307. package/dist/lib/components/Chips/components/ChipsDropdown.d.ts +2 -2
  308. package/dist/lib/components/Chips/components/ChipsDropdown.js +31 -67
  309. package/dist/lib/components/ContentArea/ContentArea.css +1 -109
  310. package/dist/lib/components/ContentArea/ContentArea.d.ts +5 -4
  311. package/dist/lib/components/ContentArea/ContentArea.js +14 -44
  312. package/dist/lib/components/ContentView/ContentView.css +1 -103
  313. package/dist/lib/components/ContentView/ContentView.d.ts +3 -2
  314. package/dist/lib/components/ContentView/ContentView.js +17 -63
  315. package/dist/lib/components/Counter/Counter.css +1 -123
  316. package/dist/lib/components/Counter/Counter.d.ts +1 -1
  317. package/dist/lib/components/Counter/Counter.js +25 -71
  318. package/dist/lib/components/Grid/Grid.css +1 -102
  319. package/dist/lib/components/Grid/Grid.d.ts +1 -1
  320. package/dist/lib/components/Grid/Grid.js +13 -40
  321. package/dist/lib/components/Grid/GridColumn.css +1 -3102
  322. package/dist/lib/components/Grid/GridColumn.d.ts +2 -2
  323. package/dist/lib/components/Grid/GridColumn.js +38 -77
  324. package/dist/lib/components/Header/Header.css +1 -122
  325. package/dist/lib/components/Header/Header.d.ts +3 -1
  326. package/dist/lib/components/Header/Header.js +18 -43
  327. package/dist/lib/components/Link/Link.d.ts +2 -2
  328. package/dist/lib/components/Link/Link.js +15 -34
  329. package/dist/lib/components/List/List.css +1 -66
  330. package/dist/lib/components/List/List.d.ts +2 -1
  331. package/dist/lib/components/List/List.js +12 -30
  332. package/dist/lib/components/List/ListItem.css +1 -6
  333. package/dist/lib/components/List/ListItem.d.ts +2 -1
  334. package/dist/lib/components/List/ListItem.js +5 -19
  335. package/dist/lib/components/ListData/ListData.css +1 -162
  336. package/dist/lib/components/ListData/ListData.d.ts +6 -34
  337. package/dist/lib/components/ListData/ListData.js +51 -111
  338. package/dist/lib/components/ListData/ListDataGroup.css +1 -15
  339. package/dist/lib/components/ListData/ListDataGroup.d.ts +4 -4
  340. package/dist/lib/components/ListData/ListDataGroup.js +48 -118
  341. package/dist/lib/components/ListData/components/ListDataSortable.css +1 -79
  342. package/dist/lib/components/ListData/components/ListDataSortable.d.ts +4 -4
  343. package/dist/lib/components/ListData/components/ListDataSortable.js +35 -74
  344. package/dist/lib/components/ListData/helpers.js +7 -25
  345. package/dist/lib/components/Logo/Logo.css +1 -43
  346. package/dist/lib/components/Logo/Logo.d.ts +1 -1
  347. package/dist/lib/components/Logo/Logo.js +14 -41
  348. package/dist/lib/components/Modal/Modal.css +1 -0
  349. package/dist/lib/components/Modal/Modal.d.ts +106 -0
  350. package/dist/lib/components/Modal/Modal.js +287 -0
  351. package/dist/lib/components/Modal/_ModalContent/ModalContent.css +1 -0
  352. package/dist/lib/components/Modal/_ModalContent/ModalContent.d.ts +8 -0
  353. package/dist/lib/components/Modal/_ModalContent/ModalContent.js +177 -0
  354. package/dist/lib/components/Modal/_ModalDesktop/ModalDesktop.css +1 -0
  355. package/dist/lib/components/Modal/_ModalDesktop/ModalDesktop.d.ts +8 -0
  356. package/dist/lib/components/Modal/_ModalDesktop/ModalDesktop.js +41 -0
  357. package/dist/lib/components/Modal/_ModalMobileBottom/ModalMobileBottom.css +1 -0
  358. package/dist/lib/components/Modal/_ModalMobileBottom/ModalMobileBottom.d.ts +12 -0
  359. package/dist/lib/components/Modal/_ModalMobileBottom/ModalMobileBottom.js +123 -0
  360. package/dist/lib/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.css +1 -0
  361. package/dist/lib/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.d.ts +8 -0
  362. package/dist/lib/components/Modal/_ModalMobileFullScreen/ModalMobileFullScreen.js +64 -0
  363. package/dist/lib/components/Modal/mocks.d.ts +3 -0
  364. package/dist/lib/components/Modal/mocks.js +85 -0
  365. package/dist/lib/components/Modal/types.d.ts +27 -0
  366. package/dist/lib/components/Modal/types.js +5 -0
  367. package/dist/lib/components/Modal/utils/utils.d.ts +18 -0
  368. package/dist/lib/components/Modal/utils/utils.js +72 -0
  369. package/dist/lib/components/NavArrow/NavArrow.css +1 -63
  370. package/dist/lib/components/NavArrow/NavArrow.d.ts +3 -3
  371. package/dist/lib/components/NavArrow/NavArrow.js +15 -47
  372. package/dist/lib/components/Notification/Notification.css +1 -350
  373. package/dist/lib/components/Notification/Notification.d.ts +5 -4
  374. package/dist/lib/components/Notification/Notification.js +114 -201
  375. package/dist/lib/components/Pagination/Pagination.css +1 -5
  376. package/dist/lib/components/Pagination/Pagination.d.ts +4 -3
  377. package/dist/lib/components/Pagination/Pagination.js +19 -51
  378. package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.css +1 -62
  379. package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.d.ts +5 -4
  380. package/dist/lib/components/Pagination/components/PaginationButton/PaginationButton.js +12 -35
  381. package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.css +1 -10
  382. package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.d.ts +3 -2
  383. package/dist/lib/components/Pagination/components/PaginationButtons/PaginationButtons.js +7 -32
  384. package/dist/lib/components/Pagination/components/PaginationNavigation/PaginationNavigation.css +1 -17
  385. package/dist/lib/components/Pagination/components/PaginationNavigation/PaginationNavigation.d.ts +3 -2
  386. package/dist/lib/components/Pagination/components/PaginationNavigation/PaginationNavigation.js +9 -32
  387. package/dist/lib/components/Pagination/helpers.js +1 -6
  388. package/dist/lib/components/Pagination/usePagination.d.ts +2 -1
  389. package/dist/lib/components/Pagination/usePagination.js +10 -36
  390. package/dist/lib/components/Paragraph/Paragraph.css +1 -43
  391. package/dist/lib/components/Paragraph/Paragraph.d.ts +4 -2
  392. package/dist/lib/components/Paragraph/Paragraph.js +14 -38
  393. package/dist/lib/components/Preloader/Preloader.css +1 -224
  394. package/dist/lib/components/Preloader/Preloader.d.ts +3 -3
  395. package/dist/lib/components/Preloader/Preloader.js +23 -58
  396. package/dist/lib/components/RadioButton/RadioButton.css +1 -120
  397. package/dist/lib/components/RadioButton/RadioButton.d.ts +1 -1
  398. package/dist/lib/components/RadioButton/RadioButton.js +23 -70
  399. package/dist/lib/components/Row/Row.css +1 -238
  400. package/dist/lib/components/Row/Row.d.ts +2 -2
  401. package/dist/lib/components/Row/Row.js +40 -76
  402. package/dist/lib/components/ScrollBar/ScrollBar.css +1 -0
  403. package/dist/lib/components/ScrollBar/ScrollBar.d.ts +34 -0
  404. package/dist/lib/components/ScrollBar/ScrollBar.js +94 -0
  405. package/dist/lib/components/Search/Search.css +1 -453
  406. package/dist/lib/components/Search/Search.d.ts +7 -8
  407. package/dist/lib/components/Search/Search.js +122 -262
  408. package/dist/lib/components/Select/Select.css +1 -389
  409. package/dist/lib/components/Select/Select.d.ts +8 -84
  410. package/dist/lib/components/Select/Select.js +70 -187
  411. package/dist/lib/components/Select/reducer/selectReducer.d.ts +1 -1
  412. package/dist/lib/components/Select/reducer/selectReducer.js +22 -42
  413. package/dist/lib/components/Selector/Selector.css +1 -132
  414. package/dist/lib/components/Selector/Selector.d.ts +1 -1
  415. package/dist/lib/components/Selector/Selector.js +28 -71
  416. package/dist/lib/components/Sliders/Slider/Slider.css +1 -128
  417. package/dist/lib/components/Sliders/Slider/Slider.d.ts +1 -1
  418. package/dist/lib/components/Sliders/Slider/Slider.js +30 -76
  419. package/dist/lib/components/Sliders/SliderRange/SliderRange.css +1 -169
  420. package/dist/lib/components/Sliders/SliderRange/SliderRange.d.ts +1 -1
  421. package/dist/lib/components/Sliders/SliderRange/SliderRange.js +38 -101
  422. package/dist/lib/components/Sliders/SliderRange/helpers.js +5 -18
  423. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.css +1 -219
  424. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.d.ts +1 -1
  425. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.js +41 -112
  426. package/dist/lib/components/Sliders/SliderRatio/helpers.js +9 -28
  427. package/dist/lib/components/Sliders/SliderRatio/types.d.ts +1 -1
  428. package/dist/lib/components/Sliders/SliderRatio/types.js +0 -2
  429. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.css +1 -84
  430. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.d.ts +2 -2
  431. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.js +18 -57
  432. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.css +1 -15
  433. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.d.ts +2 -2
  434. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.js +12 -40
  435. package/dist/lib/components/Sliders/components/SliderScale/helpers.js +16 -34
  436. package/dist/lib/components/Sliders/helpers.js +5 -22
  437. package/dist/lib/components/Snackbar/Snackbar.css +1 -220
  438. package/dist/lib/components/Snackbar/Snackbar.d.ts +3 -3
  439. package/dist/lib/components/Snackbar/Snackbar.js +82 -139
  440. package/dist/lib/components/Snackbar/SnackbarTimer/SnackbarTimer.css +1 -66
  441. package/dist/lib/components/Snackbar/SnackbarTimer/SnackbarTimer.d.ts +3 -3
  442. package/dist/lib/components/Snackbar/SnackbarTimer/SnackbarTimer.js +18 -37
  443. package/dist/lib/components/Switcher/Switcher.css +1 -160
  444. package/dist/lib/components/Switcher/Switcher.d.ts +2 -1
  445. package/dist/lib/components/Switcher/Switcher.js +22 -53
  446. package/dist/lib/components/Tabs/Tab.js +5 -26
  447. package/dist/lib/components/Tabs/Tabs.css +1 -306
  448. package/dist/lib/components/Tabs/Tabs.d.ts +6 -5
  449. package/dist/lib/components/Tabs/Tabs.js +121 -200
  450. package/dist/lib/components/TextField/TextField.css +1 -343
  451. package/dist/lib/components/TextField/TextField.d.ts +3 -3
  452. package/dist/lib/components/TextField/TextField.js +119 -244
  453. package/dist/lib/components/TextField/utils/countGraphemes.js +11 -28
  454. package/dist/lib/components/TextLink/TextLink.css +1 -50
  455. package/dist/lib/components/TextLink/TextLink.d.ts +2 -2
  456. package/dist/lib/components/TextLink/TextLink.js +19 -42
  457. package/dist/lib/components/Tile/Tile.css +1 -43
  458. package/dist/lib/components/Tile/Tile.d.ts +7 -5
  459. package/dist/lib/components/Tile/Tile.js +27 -55
  460. package/dist/lib/components/Tooltip/Tooltip.css +1 -335
  461. package/dist/lib/components/Tooltip/Tooltip.d.ts +9 -8
  462. package/dist/lib/components/Tooltip/Tooltip.js +111 -219
  463. package/dist/lib/components/_Collapse/Collapse.css +1 -0
  464. package/dist/{es/components/Collapse → lib/components/_Collapse}/Collapse.d.ts +3 -3
  465. package/dist/lib/components/_Collapse/Collapse.js +95 -0
  466. package/dist/lib/constants/throttleTime.js +2 -3
  467. package/dist/lib/hooks/usePrevious.js +4 -11
  468. package/dist/lib/hooks/useResolution.d.ts +1 -1
  469. package/dist/lib/hooks/useResolution.js +10 -24
  470. package/dist/lib/hooks/useSwipe.d.ts +1 -1
  471. package/dist/lib/hooks/useSwipe.js +22 -64
  472. package/dist/lib/index.d.ts +16 -9
  473. package/dist/lib/index.js +83 -102
  474. package/dist/lib/styles/base.css +1 -0
  475. package/package.json +106 -101
  476. package/styles/base.scss +150 -0
  477. package/styles/colors.css +53 -0
  478. package/CHANGELOG.md +0 -4062
  479. package/dist/es/components/Avatar/doc/i/img.png +0 -0
  480. package/dist/es/components/Badges/components/CounterBadge/CounterBadge.css +0 -54
  481. package/dist/es/components/Badges/components/NotificationBadge/NotificationBadge.css +0 -58
  482. package/dist/es/components/Badges/components/PriceBadge/PriceBadge.css +0 -119
  483. package/dist/es/components/Badges/components/PromoBadge/PromoBadge.css +0 -69
  484. package/dist/es/components/Badges/components/TimerBadge/TimerBadge.css +0 -60
  485. package/dist/es/components/Calendar/components/Day/Day.css +0 -243
  486. package/dist/es/components/Calendar/components/Month/Month.css +0 -135
  487. package/dist/es/components/Collapse/Collapse.css +0 -3
  488. package/dist/es/components/ListData/doc/i/img.png +0 -0
  489. package/dist/es/components/Selector/doc/Selector.example.css +0 -17
  490. package/dist/lib/components/Avatar/doc/i/img.png +0 -0
  491. package/dist/lib/components/Badges/components/CounterBadge/CounterBadge.css +0 -54
  492. package/dist/lib/components/Badges/components/CounterBadge/CounterBadge.js +0 -81
  493. package/dist/lib/components/Badges/components/NotificationBadge/NotificationBadge.css +0 -58
  494. package/dist/lib/components/Badges/components/NotificationBadge/NotificationBadge.js +0 -71
  495. package/dist/lib/components/Badges/components/PriceBadge/PriceBadge.css +0 -119
  496. package/dist/lib/components/Badges/components/PromoBadge/PromoBadge.css +0 -69
  497. package/dist/lib/components/Badges/components/PromoBadge/PromoBadge.js +0 -84
  498. package/dist/lib/components/Badges/components/TimerBadge/TimerBadge.css +0 -60
  499. package/dist/lib/components/Badges/components/TimerBadge/TimerBadge.js +0 -135
  500. package/dist/lib/components/Calendar/components/Day/Day.css +0 -243
  501. package/dist/lib/components/Calendar/components/Month/Month.css +0 -135
  502. package/dist/lib/components/Calendar/components/Month/Month.js +0 -127
  503. package/dist/lib/components/Collapse/Collapse.css +0 -3
  504. package/dist/lib/components/Collapse/Collapse.js +0 -141
  505. package/dist/lib/components/ListData/doc/i/img.png +0 -0
  506. package/dist/lib/components/Selector/doc/Selector.example.css +0 -17
  507. package/styles/base.less +0 -171
  508. /package/dist/es/components/Badges/{components/TimerBadge → TimerBadge/components}/Timer/Timer.d.ts +0 -0
  509. /package/dist/lib/components/Badges/{components/TimerBadge → TimerBadge/components}/Timer/Timer.d.ts +0 -0
@@ -1,24 +1,20 @@
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";
3
4
  import "core-js/modules/es.function.name.js";
5
+ import "core-js/modules/es.object.get-own-property-descriptor.js";
4
6
  import "core-js/modules/es.parse-float.js";
5
7
  import "core-js/modules/es.regexp.exec.js";
6
8
  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
-
11
9
  /* eslint-disable react/no-multi-comp */
12
10
  import * as React from 'react';
13
11
  import { useCallback, useEffect, useState, useRef, useMemo } from 'react';
14
12
  import { checkEventIsClickOrEnterPress, cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
13
+ import InputMask from '@mona-health/react-input-mask';
15
14
  import throttle from 'lodash.throttle';
16
- import * as PropTypes from 'prop-types';
17
- import InputMask from 'react-input-mask';
18
15
  import throttleTime from "../../constants/throttleTime";
19
16
  import countGraphemes from "./utils/countGraphemes";
20
17
  import "./TextField.css";
21
-
22
18
  var Hide = function Hide(props) {
23
19
  return /*#__PURE__*/React.createElement("svg", _extends({
24
20
  viewBox: "0 0 32 32"
@@ -26,7 +22,6 @@ var Hide = function Hide(props) {
26
22
  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"
27
23
  }));
28
24
  };
29
-
30
25
  var Show = function Show(props) {
31
26
  return /*#__PURE__*/React.createElement("svg", _extends({
32
27
  viewBox: "0 0 32 32"
@@ -36,7 +31,6 @@ var Show = function Show(props) {
36
31
  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"
37
32
  }));
38
33
  };
39
-
40
34
  var ClearIcon = function ClearIcon(props) {
41
35
  return /*#__PURE__*/React.createElement("svg", _extends({
42
36
  viewBox: "0 0 32 32"
@@ -45,7 +39,6 @@ var ClearIcon = function ClearIcon(props) {
45
39
  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"
46
40
  }));
47
41
  };
48
-
49
42
  var CheckedIcon = function CheckedIcon(props) {
50
43
  return /*#__PURE__*/React.createElement("svg", _extends({
51
44
  viewBox: "0 0 32 32"
@@ -53,7 +46,6 @@ var CheckedIcon = function CheckedIcon(props) {
53
46
  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"
54
47
  }));
55
48
  };
56
-
57
49
  var ResizeIcon = function ResizeIcon(props) {
58
50
  return /*#__PURE__*/React.createElement("svg", _extends({
59
51
  width: 12,
@@ -62,7 +54,6 @@ var ResizeIcon = function ResizeIcon(props) {
62
54
  d: "M1 11L11 1M7 11l4-4"
63
55
  }));
64
56
  };
65
-
66
57
  var TEXTAREA_MAX_HEIGHT = 144;
67
58
  var DEFAULT_LABEL_TOP_POSITION = 16;
68
59
  var DEFAULT_ROW_COUNT = 3;
@@ -86,92 +77,83 @@ export var MinTextareaHeight = {
86
77
  THREE_ROWS: ROW_HEIGHT * DEFAULT_ROW_COUNT
87
78
  };
88
79
  var cn = cnCreate('mfui-text-field');
89
-
90
80
  var TextField = function TextField(_ref) {
91
81
  var className = _ref.className,
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
-
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;
140
129
  var _useState = useState(true),
141
- _useState2 = _slicedToArray(_useState, 2),
142
- isPasswordHidden = _useState2[0],
143
- setPasswordHidden = _useState2[1];
144
-
130
+ _useState2 = _slicedToArray(_useState, 2),
131
+ isPasswordHidden = _useState2[0],
132
+ setPasswordHidden = _useState2[1];
145
133
  var _useState3 = useState(value),
146
- _useState4 = _slicedToArray(_useState3, 2),
147
- inputValue = _useState4[0],
148
- setInputValue = _useState4[1];
149
-
134
+ _useState4 = _slicedToArray(_useState3, 2),
135
+ inputValue = _useState4[0],
136
+ setInputValue = _useState4[1];
150
137
  var _useState5 = useState(minTextareaHeight),
151
- _useState6 = _slicedToArray(_useState5, 2),
152
- textareaHeight = _useState6[0],
153
- setTextareaHeight = _useState6[1];
154
-
138
+ _useState6 = _slicedToArray(_useState5, 2),
139
+ textareaHeight = _useState6[0],
140
+ setTextareaHeight = _useState6[1];
155
141
  var _useState7 = useState(false),
156
- _useState8 = _slicedToArray(_useState7, 2),
157
- isMaxLimitExceeded = _useState8[0],
158
- setIsMaxLimitExceeded = _useState8[1];
159
-
142
+ _useState8 = _slicedToArray(_useState7, 2),
143
+ isMaxLimitExceeded = _useState8[0],
144
+ setIsMaxLimitExceeded = _useState8[1];
160
145
  var _useState9 = useState(noticeText),
161
- _useState10 = _slicedToArray(_useState9, 2),
162
- currentNoticeText = _useState10[0],
163
- setCurrentNoticeText = _useState10[1];
164
-
146
+ _useState10 = _slicedToArray(_useState9, 2),
147
+ currentNoticeText = _useState10[0],
148
+ setCurrentNoticeText = _useState10[1];
165
149
  var _useState11 = useState(false),
166
- _useState12 = _slicedToArray(_useState11, 2),
167
- isTextareaResizeFocused = _useState12[0],
168
- setIsTextareaResizeFocused = _useState12[1];
169
-
150
+ _useState12 = _slicedToArray(_useState11, 2),
151
+ isTextareaResizeFocused = _useState12[0],
152
+ setIsTextareaResizeFocused = _useState12[1];
170
153
  var _useState13 = useState(false),
171
- _useState14 = _slicedToArray(_useState13, 2),
172
- isTextareaResized = _useState14[0],
173
- setIsTextareaResized = _useState14[1];
174
-
154
+ _useState14 = _slicedToArray(_useState13, 2),
155
+ isTextareaResized = _useState14[0],
156
+ setIsTextareaResized = _useState14[1];
175
157
  var fieldNode = useRef();
176
158
  var labelRef = useRef(null);
177
159
  var resizerRef = useRef(null);
@@ -189,11 +171,9 @@ var TextField = function TextField(_ref) {
189
171
  var actualPlaceholder = placeholder || DEFAULT_PLACEHOLDERS[type];
190
172
  var checkSymbolMaxLimit = useCallback(function () {
191
173
  var textareaValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
192
-
193
174
  if (!symbolCounter) {
194
175
  return;
195
176
  }
196
-
197
177
  var countValue = graphemesCounter ? countGraphemes(String(textareaValue)) : String(textareaValue).length;
198
178
  setIsMaxLimitExceeded(symbolCounter < countValue);
199
179
  }, [graphemesCounter, symbolCounter]);
@@ -201,16 +181,12 @@ var TextField = function TextField(_ref) {
201
181
  if (!textarea || !fieldNode.current || isTextareaResized) {
202
182
  return;
203
183
  }
204
-
205
184
  fieldNode.current.style.height = "".concat(minTextareaHeight, "px");
206
185
  var scrollHeight = fieldNode.current.scrollHeight;
207
-
208
186
  var _window$getComputedSt = window.getComputedStyle(fieldNode.current),
209
- paddingTop = _window$getComputedSt.paddingTop,
210
- paddingBottom = _window$getComputedSt.paddingBottom;
211
-
187
+ paddingTop = _window$getComputedSt.paddingTop,
188
+ paddingBottom = _window$getComputedSt.paddingBottom;
212
189
  var innerHeight = scrollHeight - parseFloat(paddingTop) - parseFloat(paddingBottom);
213
-
214
190
  if (innerHeight >= TEXTAREA_MAX_HEIGHT) {
215
191
  fieldNode.current.style.height = "".concat(TEXTAREA_MAX_HEIGHT, "px");
216
192
  } else {
@@ -228,12 +204,10 @@ var TextField = function TextField(_ref) {
228
204
  if (!resizerRef.current || textarea !== TextareaTypes.FLEXIBLE) {
229
205
  return;
230
206
  }
231
-
232
207
  var handleStartResize = function handleStartResize(downEvent) {
233
208
  if (!fieldNode.current) {
234
209
  return;
235
210
  }
236
-
237
211
  setIsTextareaResizeFocused(true);
238
212
  downEvent.preventDefault();
239
213
  var originalHeight = parseFloat(getComputedStyle(fieldNode.current).getPropertyValue('height').replace('px', ''));
@@ -245,21 +219,18 @@ var TextField = function TextField(_ref) {
245
219
  setTextareaHeight(updatedHeight);
246
220
  setIsTextareaResized(true);
247
221
  }, throttleTime.resizeTextarea);
248
-
249
- var handleResizeCancel = function handleResizeCancel() {
222
+ var _handleResizeCancel = function handleResizeCancel() {
250
223
  setIsTextareaResizeFocused(false);
251
224
  window.removeEventListener('mousemove', handleResize);
252
225
  window.removeEventListener('touchmove', handleResize);
253
- window.removeEventListener('mouseup', handleResizeCancel);
254
- window.removeEventListener('touchend', handleResizeCancel);
226
+ window.removeEventListener('mouseup', _handleResizeCancel);
227
+ window.removeEventListener('touchend', _handleResizeCancel);
255
228
  };
256
-
257
229
  window.addEventListener('mousemove', handleResize);
258
230
  window.addEventListener('touchmove', handleResize);
259
- window.addEventListener('mouseup', handleResizeCancel);
260
- window.addEventListener('touchend', handleResizeCancel);
231
+ window.addEventListener('mouseup', _handleResizeCancel);
232
+ window.addEventListener('touchend', _handleResizeCancel);
261
233
  };
262
-
263
234
  resizerRef.current.addEventListener('mousedown', handleStartResize);
264
235
  resizerRef.current.addEventListener('touchstart', handleStartResize);
265
236
  }, [textarea, minTextareaHeight]);
@@ -268,42 +239,32 @@ var TextField = function TextField(_ref) {
268
239
  return !prevPassState;
269
240
  });
270
241
  }, []);
271
-
272
242
  var handleInputChange = function handleInputChange(e) {
273
243
  !isControlled && setInputValue(e.target.value);
274
244
  checkSymbolMaxLimit(e.target.value);
275
245
  onChange === null || onChange === void 0 ? void 0 : onChange(e);
276
246
  };
277
-
278
247
  var handleNoticeTransitionEnd = useCallback(function () {
279
248
  !noticeText && setCurrentNoticeText(noticeText);
280
249
  }, [noticeText]);
281
-
282
250
  var handleTextareaScroll = function handleTextareaScroll() {
283
251
  if (!(fieldNode === null || fieldNode === void 0 ? void 0 : fieldNode.current) || !(labelRef === null || labelRef === void 0 ? void 0 : labelRef.current)) {
284
252
  return;
285
253
  }
286
-
287
254
  var scrollTop = fieldNode.current.scrollTop;
288
-
289
255
  if (!scrollTop) {
290
256
  labelRef.current.style.top = '';
291
257
  return;
292
258
  }
293
-
294
259
  labelRef.current.style.top = "".concat(DEFAULT_LABEL_TOP_POSITION - scrollTop, "px");
295
260
  };
296
-
297
261
  var handleTextareaKeyDown = function handleTextareaKeyDown(e) {
298
262
  checkEventIsClickOrEnterPress(e) && !e.shiftKey && e.preventDefault();
299
263
  };
300
-
301
264
  var handleIconClick = useCallback(function (e) {
302
265
  var _a;
303
-
304
266
  var field = fieldNode.current;
305
267
  isPasswordType && togglePasswordHiding();
306
-
307
268
  if (!customIcon && hasClearIcon) {
308
269
  var nativeInputValue = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value');
309
270
  var inputEvent = new Event('change', {
@@ -313,7 +274,6 @@ var TextField = function TextField(_ref) {
313
274
  field === null || field === void 0 ? void 0 : field.dispatchEvent(inputEvent);
314
275
  field === null || field === void 0 ? void 0 : field.focus();
315
276
  }
316
-
317
277
  onIconClick === null || onIconClick === void 0 ? void 0 : onIconClick(e);
318
278
  }, [isPasswordType, togglePasswordHiding, onIconClick, customIcon, hasClearIcon]);
319
279
  var handleFocus = useCallback(function (e) {
@@ -322,11 +282,12 @@ var TextField = function TextField(_ref) {
322
282
  var handleBlur = useCallback(function (e) {
323
283
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
324
284
  }, [onBlur]);
325
- var handleBeforeMaskChange = useCallback(function (newState, oldState, inputedValue) {
326
- return onBeforeMaskChange && onBeforeMaskChange(inputedValue, newState, oldState);
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);
327
289
  }, [onBeforeMaskChange]);
328
290
  var textareaType = textarea === TextareaTypes.FLEXIBLE ? TextareaTypes.FLEXIBLE : TextareaTypes.FIXED;
329
-
330
291
  var commonParams = _extends(_extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.input)), {
331
292
  disabled: disabled,
332
293
  id: id,
@@ -341,7 +302,6 @@ var TextField = function TextField(_ref) {
341
302
  required: required,
342
303
  inputMode: inputMode
343
304
  });
344
-
345
305
  var inputParams = _extends(_extends({}, commonParams), {
346
306
  className: cn('field', {
347
307
  'no-icon': hideIcon
@@ -349,13 +309,11 @@ var TextField = function TextField(_ref) {
349
309
  type: isVisiblePassword ? 'text' : type,
350
310
  autoComplete: autoComplete
351
311
  });
352
-
353
312
  var inputMaskParams = {
354
313
  mask: mask,
355
- maskChar: maskChar,
356
- beforeMaskedValueChange: onBeforeMaskChange ? handleBeforeMaskChange : undefined
314
+ maskPlaceholder: maskChar,
315
+ beforeMaskedStateChange: onBeforeMaskChange ? handleBeforeMaskChange : undefined
357
316
  };
358
-
359
317
  var textareaParams = _extends(_extends({}, commonParams), {
360
318
  className: cn('field', {
361
319
  type: textareaType,
@@ -363,48 +321,39 @@ var TextField = function TextField(_ref) {
363
321
  resized: isTextareaResizeFocused
364
322
  }, classes === null || classes === void 0 ? void 0 : classes.input)
365
323
  });
366
-
367
324
  var getFieldNode = function getFieldNode(node) {
368
325
  if (!node) {
369
326
  return;
370
327
  }
371
-
372
328
  fieldNode.current = node;
373
329
  inputRef === null || inputRef === void 0 ? void 0 : inputRef(node);
374
330
  };
375
-
376
331
  var getIcon = function getIcon() {
377
332
  switch (true) {
378
333
  case !!customIcon:
379
334
  return customIcon;
380
-
381
335
  case isPasswordType && isPasswordHidden:
382
336
  return /*#__PURE__*/React.createElement(Hide, {
383
337
  className: cn('icon')
384
338
  });
385
-
386
339
  case isPasswordType && !isPasswordHidden:
387
340
  return /*#__PURE__*/React.createElement(Show, {
388
341
  className: cn('icon')
389
342
  });
390
-
391
343
  case isValidVerification:
392
344
  return /*#__PURE__*/React.createElement(CheckedIcon, {
393
345
  className: cn('icon')
394
346
  });
395
-
396
347
  case hasClearIcon:
397
348
  return /*#__PURE__*/React.createElement(ClearIcon, {
398
349
  className: cn('icon', {
399
350
  clear: true
400
351
  })
401
352
  });
402
-
403
353
  default:
404
354
  return undefined;
405
355
  }
406
356
  };
407
-
408
357
  var renderLabel = function renderLabel() {
409
358
  var currentLabel = label || actualPlaceholder;
410
359
  return /*#__PURE__*/React.createElement("label", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.label), {
@@ -415,7 +364,6 @@ var TextField = function TextField(_ref) {
415
364
  className: cn('require-mark')
416
365
  }, "*"));
417
366
  };
418
-
419
367
  var renderTextarea = function renderTextarea() {
420
368
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("textarea", _extends({}, textareaParams, {
421
369
  style: {
@@ -426,14 +374,11 @@ var TextField = function TextField(_ref) {
426
374
  onScroll: handleTextareaScroll
427
375
  })), renderLabel());
428
376
  };
429
-
430
377
  var renderIconBlock = function renderIconBlock() {
431
378
  var icon = getIcon();
432
-
433
379
  if (!icon) {
434
380
  return undefined;
435
381
  }
436
-
437
382
  return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.iconBox), {
438
383
  className: cn('icon-box', {
439
384
  error: isErrorVerification && !customIcon,
@@ -443,23 +388,19 @@ var TextField = function TextField(_ref) {
443
388
  onClick: handleIconClick
444
389
  }), icon);
445
390
  };
446
-
447
391
  var renderInput = function renderInput() {
448
392
  return /*#__PURE__*/React.createElement(React.Fragment, null, mask ? /*#__PURE__*/React.createElement(InputMask, _extends({}, inputParams, inputMaskParams, {
449
- inputRef: getFieldNode
393
+ ref: getFieldNode
450
394
  })) : /*#__PURE__*/React.createElement("input", _extends({}, inputParams, {
451
395
  ref: getFieldNode
452
396
  })), renderLabel(), !hideIcon && renderIconBlock());
453
397
  };
454
-
455
398
  var renderField = function renderField() {
456
399
  if (textarea) {
457
400
  return renderTextarea();
458
401
  }
459
-
460
402
  return renderInput();
461
403
  };
462
-
463
404
  var isPlaceholderShowed = isPasswordType && isPasswordHidden && !!inputValue;
464
405
  var valueHasSymbols = inputValue !== null && inputValue !== undefined;
465
406
  var currentSymbolCount = valueHasSymbols && (graphemesCounter && countGraphemes(String(inputValue)) || String(inputValue).length) || 0;
@@ -494,53 +435,4 @@ var TextField = function TextField(_ref) {
494
435
  })
495
436
  }, "".concat(currentSymbolCount, "/").concat(symbolCounter))));
496
437
  };
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.oneOfType([PropTypes.string, PropTypes.element]),
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
- };
546
438
  export default TextField;
@@ -1,18 +1,17 @@
1
+ import "core-js/modules/es.array.from.js";
1
2
  import "core-js/modules/es.date.to-string.js";
2
3
  import "core-js/modules/es.object.to-string.js";
3
- import "core-js/modules/es.regexp.to-string.js";
4
4
  import "core-js/modules/es.regexp.exec.js";
5
- import "core-js/modules/es.string.replace.js";
6
- import "core-js/modules/es.array.from.js";
5
+ import "core-js/modules/es.regexp.to-string.js";
7
6
  import "core-js/modules/es.string.iterator.js";
7
+ import "core-js/modules/es.string.replace.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-\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
-
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
12
12
  var isJoiner = function isJoiner(_char) {
13
13
  return _char.charCodeAt(0).toString(16) === joiner;
14
14
  };
15
-
16
15
  var countGraphemes = function countGraphemes(text) {
17
16
  var normalizedText = text.normalize('NFC').replace(regex, '').replace(regexSymbolWithCombiningMarks, function (_, symbol) {
18
17
  return symbol;
@@ -20,33 +19,26 @@ var countGraphemes = function countGraphemes(text) {
20
19
  var tokens = Array.from(normalizedText);
21
20
  var length = 0;
22
21
  var isComplexChar = false;
23
-
24
22
  for (var i = 0; i < tokens.length; i++) {
25
23
  var _char2 = tokens[i];
26
24
  var nextChar = tokens[i + 1];
27
-
28
25
  if (!nextChar) {
29
- length += 1; // eslint-disable-next-line no-continue
30
-
26
+ length += 1;
27
+ // eslint-disable-next-line no-continue
31
28
  continue;
32
29
  }
33
-
34
30
  if (isJoiner(nextChar)) {
35
- isComplexChar = true; // eslint-disable-next-line no-continue
36
-
31
+ isComplexChar = true;
32
+ // eslint-disable-next-line no-continue
37
33
  continue;
38
34
  }
39
-
40
35
  if (!isJoiner(_char2) && isComplexChar) {
41
36
  isComplexChar = false;
42
37
  }
43
-
44
38
  if (!isComplexChar) {
45
39
  length += 1;
46
40
  }
47
41
  }
48
-
49
42
  return length;
50
43
  };
51
-
52
44
  export default countGraphemes;