@skbkontur/react-ui 5.4.7-7ccf0.0 → 5.4.7-a27a4.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 (281) hide show
  1. package/cjs/components/Button/Button.d.ts +1 -0
  2. package/cjs/components/Button/Button.js.map +1 -1
  3. package/cjs/components/Calendar/Calendar.d.ts +1 -1
  4. package/cjs/components/Calendar/Calendar.js.map +1 -1
  5. package/cjs/components/DateInput/DateFragmentsView.d.ts +2 -2
  6. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  7. package/cjs/components/DateRangePicker/DateRangePicker.d.ts +2 -2
  8. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  9. package/cjs/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
  10. package/cjs/components/DateRangePicker/DateRangePickerContext.js.map +1 -1
  11. package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  12. package/cjs/components/Dropdown/Dropdown.d.ts +4 -4
  13. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  14. package/cjs/components/DropdownMenu/DropdownMenu.js +3 -1
  15. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  16. package/cjs/components/FileUploader/FileUploader.d.ts +1 -1
  17. package/cjs/components/FileUploader/FileUploaderFile.js.map +1 -1
  18. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
  19. package/cjs/components/GlobalLoader/GlobalLoaderView.js +49 -50
  20. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  21. package/cjs/components/Input/Input.d.ts +2 -2
  22. package/cjs/components/Input/Input.js.map +1 -1
  23. package/cjs/components/Input/InputLayout/InputLayout.d.ts +3 -1
  24. package/cjs/components/Input/InputLayout/InputLayout.js +2 -1
  25. package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
  26. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +6 -4
  27. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  28. package/cjs/components/Kebab/Kebab.d.ts +1 -1
  29. package/cjs/components/Kebab/Kebab.js.map +1 -1
  30. package/cjs/components/Link/Link.d.ts +1 -1
  31. package/cjs/components/Link/Link.js.map +1 -1
  32. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
  33. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +1 -1
  34. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  35. package/cjs/components/MaskedInput/FixedIMaskInput.js +3 -1
  36. package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
  37. package/cjs/components/MaskedInput/MaskedInput.js +2 -2
  38. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  39. package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
  40. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  41. package/cjs/components/Modal/Modal.d.ts +4 -1
  42. package/cjs/components/Modal/Modal.js +8 -3
  43. package/cjs/components/Modal/Modal.js.map +1 -1
  44. package/cjs/components/Modal/ModalBody.d.ts +2 -2
  45. package/cjs/components/Modal/ModalBody.js.map +1 -1
  46. package/cjs/components/Paging/Paging.d.ts +2 -2
  47. package/cjs/components/Paging/Paging.js.map +1 -1
  48. package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -1
  49. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  50. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -2
  51. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  52. package/cjs/components/ResponsiveLayout/decorator.d.ts +0 -3
  53. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -1
  54. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  55. package/cjs/components/Select/Select.d.ts +1 -1
  56. package/cjs/components/Select/Select.js.map +1 -1
  57. package/cjs/components/SidePage/SidePage.d.ts +5 -2
  58. package/cjs/components/SidePage/SidePage.js +9 -3
  59. package/cjs/components/SidePage/SidePage.js.map +1 -1
  60. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -1
  61. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  62. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -1
  63. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  64. package/cjs/components/SingleToast/SingleToast.d.ts +1 -1
  65. package/cjs/components/Sticky/Sticky.js +6 -2
  66. package/cjs/components/Sticky/Sticky.js.map +1 -1
  67. package/cjs/components/Tabs/Tabs.d.ts +1 -1
  68. package/cjs/components/Tabs/Tabs.js.map +1 -1
  69. package/cjs/components/Token/TokenView.d.ts +2 -1
  70. package/cjs/components/Token/TokenView.js +4 -4
  71. package/cjs/components/Token/TokenView.js.map +1 -1
  72. package/cjs/components/TokenInput/TextWidthHelper.js +3 -1
  73. package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
  74. package/cjs/components/TokenInput/TokenInput.js +14 -7
  75. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  76. package/cjs/components/Tooltip/Tooltip.d.ts +4 -4
  77. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  78. package/cjs/hooks/useDrop.js +1 -1
  79. package/cjs/hooks/useDrop.js.map +1 -1
  80. package/cjs/internal/CommonWrapper/CommonWrapper.js +3 -2
  81. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  82. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
  83. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +84 -83
  84. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  85. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  86. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +11 -12
  87. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  88. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
  89. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js +28 -23
  90. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
  91. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
  92. package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -2
  93. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  94. package/cjs/internal/Menu/Menu.js +6 -2
  95. package/cjs/internal/Menu/Menu.js.map +1 -1
  96. package/cjs/internal/Menu/MenuNavigation.d.ts +1 -1
  97. package/cjs/internal/Menu/MenuNavigation.js.map +1 -1
  98. package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
  99. package/cjs/internal/MobilePopup/MobilePopup.js +9 -1
  100. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  101. package/cjs/internal/Popup/Popup.js +2 -4
  102. package/cjs/internal/Popup/Popup.js.map +1 -1
  103. package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -1
  104. package/cjs/internal/PopupMenu/PopupMenu.js +9 -3
  105. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  106. package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -2
  107. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  108. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +3 -1
  109. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  110. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
  111. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  112. package/cjs/lib/dom/getDOMRect.d.ts +1 -1
  113. package/cjs/lib/dom/getDOMRect.js +3 -1
  114. package/cjs/lib/dom/getDOMRect.js.map +1 -1
  115. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
  116. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  117. package/cjs/lib/forwardRefAndName.d.ts +3 -2
  118. package/cjs/lib/forwardRefAndName.js +2 -1
  119. package/cjs/lib/forwardRefAndName.js.map +1 -1
  120. package/cjs/lib/getElementRef.d.ts +5 -0
  121. package/cjs/lib/getElementRef.js +16 -0
  122. package/cjs/lib/getElementRef.js.map +1 -0
  123. package/cjs/lib/locale/decorators.d.ts +0 -3
  124. package/cjs/lib/mergeRefs.d.ts +2 -3
  125. package/cjs/lib/mergeRefs.js +1 -1
  126. package/cjs/lib/mergeRefs.js.map +1 -1
  127. package/cjs/lib/reactGetTextContent.js +6 -1
  128. package/cjs/lib/reactGetTextContent.js.map +1 -1
  129. package/cjs/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
  130. package/cjs/lib/rootNode/getRootNode.js +1 -24
  131. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  132. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +0 -3
  133. package/cjs/lib/size/SizeDecorator.d.ts +0 -3
  134. package/cjs/lib/types/polymorphic-component.d.ts +2 -1
  135. package/cjs/lib/types/polymorphic-component.js.map +1 -1
  136. package/cjs/lib/utils.d.ts +4 -3
  137. package/cjs/lib/utils.js +4 -3
  138. package/cjs/lib/utils.js.map +1 -1
  139. package/cjs/lib/withClassWrapper.d.ts +3 -8
  140. package/components/Button/Button/Button.js +1 -1
  141. package/components/Button/Button/Button.js.map +1 -1
  142. package/components/Button/Button.d.ts +1 -0
  143. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  144. package/components/Calendar/Calendar.d.ts +1 -1
  145. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  146. package/components/DateInput/DateFragmentsView.d.ts +2 -2
  147. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +1 -1
  148. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
  149. package/components/DateRangePicker/DateRangePicker.d.ts +2 -2
  150. package/components/DateRangePicker/DateRangePickerContext/DateRangePickerContext.js.map +1 -1
  151. package/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
  152. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
  153. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  154. package/components/Dropdown/Dropdown.d.ts +4 -4
  155. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  156. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  157. package/components/FileUploader/FileUploader.d.ts +1 -1
  158. package/components/FileUploader/FileUploaderFile/FileUploaderFile.js +1 -1
  159. package/components/FileUploader/FileUploaderFile/FileUploaderFile.js.map +1 -1
  160. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +5 -4
  161. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  162. package/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
  163. package/components/Input/Input/Input.js.map +1 -1
  164. package/components/Input/Input.d.ts +2 -2
  165. package/components/Input/InputLayout/InputLayout/InputLayout.js +4 -2
  166. package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
  167. package/components/Input/InputLayout/InputLayout.d.ts +3 -1
  168. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +2 -2
  169. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
  170. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  171. package/components/Kebab/Kebab.d.ts +1 -1
  172. package/components/Link/Link/Link.js.map +1 -1
  173. package/components/Link/Link.d.ts +1 -1
  174. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +1 -1
  175. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
  176. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
  177. package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +1 -1
  178. package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
  179. package/components/MaskedInput/MaskedInput/MaskedInput.js +2 -2
  180. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  181. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  182. package/components/MenuItem/MenuItem.d.ts +1 -1
  183. package/components/Modal/Modal/Modal.js +7 -3
  184. package/components/Modal/Modal/Modal.js.map +1 -1
  185. package/components/Modal/Modal.d.ts +4 -1
  186. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  187. package/components/Modal/ModalBody.d.ts +2 -2
  188. package/components/Paging/Paging/Paging.js.map +1 -1
  189. package/components/Paging/Paging.d.ts +2 -2
  190. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  191. package/components/PasswordInput/PasswordInput.d.ts +1 -1
  192. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  193. package/components/RadioGroup/RadioGroup.d.ts +2 -2
  194. package/components/ResponsiveLayout/decorator.d.ts +0 -3
  195. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
  196. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  197. package/components/ScrollContainer/ScrollContainer.d.ts +1 -1
  198. package/components/Select/Select/Select.js.map +1 -1
  199. package/components/Select/Select.d.ts +1 -1
  200. package/components/SidePage/SidePage/SidePage.js +7 -3
  201. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  202. package/components/SidePage/SidePage.d.ts +5 -2
  203. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  204. package/components/SidePage/SidePageFooter.d.ts +1 -1
  205. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  206. package/components/SidePage/SidePageHeader.d.ts +1 -1
  207. package/components/SingleToast/SingleToast.d.ts +1 -1
  208. package/components/Sticky/Sticky/Sticky.js +2 -2
  209. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  210. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  211. package/components/Tabs/Tabs.d.ts +1 -1
  212. package/components/Token/TokenView/TokenView.js +6 -4
  213. package/components/Token/TokenView/TokenView.js.map +1 -1
  214. package/components/Token/TokenView.d.ts +2 -1
  215. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +1 -1
  216. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
  217. package/components/TokenInput/TokenInput/TokenInput.js +5 -5
  218. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  219. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  220. package/components/Tooltip/Tooltip.d.ts +4 -4
  221. package/hooks/useDrop/useDrop.js +1 -1
  222. package/hooks/useDrop/useDrop.js.map +1 -1
  223. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
  224. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  225. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +2 -2
  226. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  227. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
  228. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -3
  229. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  230. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  231. package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js +7 -4
  232. package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
  233. package/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
  234. package/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
  235. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  236. package/internal/InputLikeText/InputLikeText.d.ts +2 -2
  237. package/internal/Menu/Menu/Menu.js +2 -2
  238. package/internal/Menu/Menu/Menu.js.map +1 -1
  239. package/internal/Menu/MenuNavigation/MenuNavigation.js.map +1 -1
  240. package/internal/Menu/MenuNavigation.d.ts +1 -1
  241. package/internal/MobilePopup/MobilePopup/MobilePopup.js +5 -2
  242. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  243. package/internal/MobilePopup/MobilePopup.d.ts +1 -0
  244. package/internal/Popup/Popup/Popup.js +2 -2
  245. package/internal/Popup/Popup/Popup.js.map +1 -1
  246. package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
  247. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  248. package/internal/PopupMenu/PopupMenu.d.ts +1 -1
  249. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  250. package/internal/RenderLayer/RenderLayer.d.ts +2 -2
  251. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +1 -1
  252. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -1
  253. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
  254. package/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
  255. package/lib/dom/getDOMRect/getDOMRect.js.map +1 -1
  256. package/lib/dom/getDOMRect.d.ts +1 -1
  257. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  258. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
  259. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  260. package/lib/forwardRefAndName.d.ts +3 -2
  261. package/lib/getElementRef/getElementRef.js +11 -0
  262. package/lib/getElementRef/getElementRef.js.map +1 -0
  263. package/lib/getElementRef/package.json +6 -0
  264. package/lib/getElementRef.d.ts +5 -0
  265. package/lib/locale/decorators.d.ts +0 -3
  266. package/lib/mergeRefs/mergeRefs.js.map +1 -1
  267. package/lib/mergeRefs.d.ts +2 -3
  268. package/lib/reactGetTextContent/reactGetTextContent.js +1 -1
  269. package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
  270. package/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
  271. package/lib/rootNode/getRootNode/getRootNode.js +0 -15
  272. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  273. package/lib/rootNode/rootNodeDecorator.d.ts +0 -3
  274. package/lib/size/SizeDecorator.d.ts +0 -3
  275. package/lib/types/polymorphic-component/polymorphic-component.js.map +1 -1
  276. package/lib/types/polymorphic-component.d.ts +2 -1
  277. package/lib/utils/utils.js +2 -2
  278. package/lib/utils/utils.js.map +1 -1
  279. package/lib/utils.d.ts +4 -3
  280. package/lib/withClassWrapper.d.ts +3 -8
  281. package/package.json +10 -9
@@ -1,3 +1,4 @@
1
+ import type { JSX } from 'react';
1
2
  import React from 'react';
2
3
  import type { ButtonLinkAllowedValues } from '../../lib/types/button-link';
3
4
  import type { ThemeIn } from '../../lib/theming/Theme';
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_warning","_utils","_client","_keyListener","_ThemeContext","_CommonWrapper","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_SizeDecorator","_renderEnvironment","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","withRenderEnvironment","withSize","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_this2","_this$cx","_this$cx4","_this$cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","size","styles","cx","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","nonInteractive","rootClassName","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","buttonOnlyProps","innerShadowNode","outlineNode","_this$cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_this$cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","KeyListener","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this3","getStyles","emotion","getActiveStyles","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_this$getProps2","_commonClasses","commonClasses","sizeLargeWithIcon","sizeLargeWithRightIcon","sizeLargeWithIconWithoutText","sizeLarge","_commonClasses3","sizeMediumWithIcon","sizeMediumWithRightIcon","sizeMediumWithIconWithoutText","sizeMedium","_commonClasses5","sizeSmallWithIcon","sizeSmallWithRightIcon","sizeSmallWithIconWithoutText","sizeSmall","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type"],"sources":["Button.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon } from '../../lib/utils';\nimport { isSafari } from '../../lib/client';\nimport { KeyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles, getActiveStyles, globalClasses } from './Button.styles';\nimport type { ButtonIconProps } from './ButtonIcon';\nimport { ButtonIcon, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Задаёт выравнивание текста в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Преобразует обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на кнопке после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки.\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в следующей мажорной версии.\n *\n * Альтернативный вариант использования — через переменную темы `btnBorderWidth` */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Блокирует кнопку и перекрашивает в серый. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Ошибка\".\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в следующей мажорной версии. */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку.\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в следующей мажорной версии.\n *\n * Альтернативный вариант использования — через переменные темы `btnPaddingXSmall`, `btnPaddingXMedium`, `btnPaddingXLarge` */\n narrow?: boolean;\n\n /** Задаёт размер кнопки. */\n size?: SizeProp;\n\n /** Задаёт HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** Задаёт HTML-атрибут `title`. */\n title?: string;\n\n /** Задаёт стиль кнопки.\n * **Вариант `link` устарел.** Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Предупреждение\".\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в следующей мажорной версии. */\n warning?: boolean;\n\n /** Задаёт ширину кнопки. */\n width?: number | string;\n\n /** Задаёт объект с переменными темы. */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n/** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */\n@withRenderEnvironment\n@withSize\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n // By default, the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private activeStyles!: ReturnType<typeof getActiveStyles>;\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n if (this.props.autoFocus) {\n this.keyListener.isTabPressed = true;\n this.focus();\n }\n warning(\n this.props.use !== 'link',\n '[Button]: `use=\"link\"` has been deprecated. Please, use `<Link component=\"button\" />` instead.',\n );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /** Программно устанавливает фокус на кнопке. Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n this.activeStyles = getActiveStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n theme,\n ...rest\n } = props;\n const { use, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused), size: this.size },\n this.theme,\n this.styles,\n this.cx,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const nonInteractive = disabled || loading;\n const rootClassName = this.cx(\n this.styles.root(this.theme),\n this.styles[use](this.theme),\n sizeClass,\n narrow && this.styles.narrow(),\n _noPadding && this.styles.noPadding(),\n _noRightPadding && this.styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(nonInteractive\n ? [\n this.styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && this.styles.disabledWithoutOutline(this.theme),\n checked && this.styles.checkedDisabled(this.theme),\n borderless && this.styles.borderless(),\n use === 'backless' && this.styles.backlessDisabled(this.theme),\n use === 'text' && this.styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && this.activeStyles[use](this.theme),\n isFocused && this.styles.focus(this.theme),\n checked && this.styles.checked(this.theme),\n checked && isFocused && this.styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && this.styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: nonInteractive, tabIndex }),\n };\n\n const wrapProps = {\n className: this.cx(globalClasses.root, {\n [this.styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const buttonOnlyProps = component === 'button' ? { disabled: nonInteractive } : {};\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !nonInteractive) {\n outlineNode = (\n <div\n className={this.cx(this.styles.outline(), {\n [this.styles.outlineWarning(this.theme)]: warning,\n [this.styles.outlineError(this.theme)]: error,\n [this.styles.outlineLink()]: isLink,\n [this.styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [this.styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = this.cx({\n [this.styles.root(this.theme)]: true,\n [sizeClass]: true,\n [this.styles.link(this.theme)]: true,\n [this.styles.linkLineHeight()]: !isSafari,\n [this.styles.linkLineHeightSafariFallback()]: isSafari,\n [this.styles.linkFocus(this.theme)]: isFocused,\n [this.styles.linkDisabled(this.theme)]: nonInteractive,\n });\n Object.assign(wrapProps, {\n className: this.cx(this.styles.wrap(this.theme), this.styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={this.size} />;\n\n let captionNode = (\n <div\n className={this.cx(this.styles.caption(), globalClasses.caption, {\n [this.styles.captionLink()]: isLink,\n [this.styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={this.cx(globalClasses.text, {\n [this.styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps} {...buttonOnlyProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n const { icon, rightIcon, children } = this.getProps();\n\n switch (this.size) {\n case 'large': {\n const commonClasses = {\n [this.styles.sizeLargeWithIcon(this.theme)]: !!icon,\n [this.styles.sizeLargeWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeLargeWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeLarge(this.theme), commonClasses);\n }\n case 'medium': {\n const commonClasses = {\n [this.styles.sizeMediumWithIcon(this.theme)]: !!icon,\n [this.styles.sizeMediumWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeMediumWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeMedium(this.theme), commonClasses);\n }\n case 'small':\n default: {\n const commonClasses = {\n [this.styles.sizeSmallWithIcon(this.theme)]: !!icon,\n [this.styles.sizeSmallWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeSmallWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeSmall(this.theme), commonClasses);\n }\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.wrapLarge(this.theme);\n case 'medium':\n return this.styles.wrapMedium(this.theme);\n case 'small':\n default:\n return this.styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_warning","_utils","_client","_keyListener","_ThemeContext","_CommonWrapper","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_SizeDecorator","_renderEnvironment","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","withRenderEnvironment","withSize","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_this2","_this$cx","_this$cx4","_this$cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","size","styles","cx","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","nonInteractive","rootClassName","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","buttonOnlyProps","innerShadowNode","outlineNode","_this$cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_this$cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","KeyListener","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this3","getStyles","emotion","getActiveStyles","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_this$getProps2","_commonClasses","commonClasses","sizeLargeWithIcon","sizeLargeWithRightIcon","sizeLargeWithIconWithoutText","sizeLarge","_commonClasses3","sizeMediumWithIcon","sizeMediumWithRightIcon","sizeMediumWithIconWithoutText","sizeMedium","_commonClasses5","sizeSmallWithIcon","sizeSmallWithRightIcon","sizeSmallWithIconWithoutText","sizeSmall","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type"],"sources":["Button.tsx"],"sourcesContent":["import type { HTMLAttributes, JSX } from 'react';\nimport React from 'react';\nimport warning from 'warning';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon } from '../../lib/utils';\nimport { isSafari } from '../../lib/client';\nimport { KeyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getActiveStyles, getStyles, globalClasses } from './Button.styles';\nimport type { ButtonIconProps } from './ButtonIcon';\nimport { ButtonIcon, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Задаёт выравнивание текста в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Преобразует обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на кнопке после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки.\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в следующей мажорной версии.\n *\n * Альтернативный вариант использования — через переменную темы `btnBorderWidth` */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Блокирует кнопку и перекрашивает в серый. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Ошибка\".\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в следующей мажорной версии. */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку.\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в следующей мажорной версии.\n *\n * Альтернативный вариант использования — через переменные темы `btnPaddingXSmall`, `btnPaddingXMedium`, `btnPaddingXLarge` */\n narrow?: boolean;\n\n /** Задаёт размер кнопки. */\n size?: SizeProp;\n\n /** Задаёт HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** Задаёт HTML-атрибут `title`. */\n title?: string;\n\n /** Задаёт стиль кнопки.\n * **Вариант `link` устарел.** Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Предупреждение\".\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в следующей мажорной версии. */\n warning?: boolean;\n\n /** Задаёт ширину кнопки. */\n width?: number | string;\n\n /** Задаёт объект с переменными темы. */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n/** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */\n@withRenderEnvironment\n@withSize\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n // By default, the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private activeStyles!: ReturnType<typeof getActiveStyles>;\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n if (this.props.autoFocus) {\n this.keyListener.isTabPressed = true;\n this.focus();\n }\n warning(\n this.props.use !== 'link',\n '[Button]: `use=\"link\"` has been deprecated. Please, use `<Link component=\"button\" />` instead.',\n );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /** Программно устанавливает фокус на кнопке. Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n this.activeStyles = getActiveStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n theme,\n ...rest\n } = props;\n const { use, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused), size: this.size },\n this.theme,\n this.styles,\n this.cx,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const nonInteractive = disabled || loading;\n const rootClassName = this.cx(\n this.styles.root(this.theme),\n this.styles[use](this.theme),\n sizeClass,\n narrow && this.styles.narrow(),\n _noPadding && this.styles.noPadding(),\n _noRightPadding && this.styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(nonInteractive\n ? [\n this.styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && this.styles.disabledWithoutOutline(this.theme),\n checked && this.styles.checkedDisabled(this.theme),\n borderless && this.styles.borderless(),\n use === 'backless' && this.styles.backlessDisabled(this.theme),\n use === 'text' && this.styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && this.activeStyles[use](this.theme),\n isFocused && this.styles.focus(this.theme),\n checked && this.styles.checked(this.theme),\n checked && isFocused && this.styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && this.styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: nonInteractive, tabIndex }),\n };\n\n const wrapProps = {\n className: this.cx(globalClasses.root, {\n [this.styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const buttonOnlyProps = component === 'button' ? { disabled: nonInteractive } : {};\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !nonInteractive) {\n outlineNode = (\n <div\n className={this.cx(this.styles.outline(), {\n [this.styles.outlineWarning(this.theme)]: warning,\n [this.styles.outlineError(this.theme)]: error,\n [this.styles.outlineLink()]: isLink,\n [this.styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [this.styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = this.cx({\n [this.styles.root(this.theme)]: true,\n [sizeClass]: true,\n [this.styles.link(this.theme)]: true,\n [this.styles.linkLineHeight()]: !isSafari,\n [this.styles.linkLineHeightSafariFallback()]: isSafari,\n [this.styles.linkFocus(this.theme)]: isFocused,\n [this.styles.linkDisabled(this.theme)]: nonInteractive,\n });\n Object.assign(wrapProps, {\n className: this.cx(this.styles.wrap(this.theme), this.styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={this.size} />;\n\n let captionNode = (\n <div\n className={this.cx(this.styles.caption(), globalClasses.caption, {\n [this.styles.captionLink()]: isLink,\n [this.styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={this.cx(globalClasses.text, {\n [this.styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps} {...buttonOnlyProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n const { icon, rightIcon, children } = this.getProps();\n\n switch (this.size) {\n case 'large': {\n const commonClasses = {\n [this.styles.sizeLargeWithIcon(this.theme)]: !!icon,\n [this.styles.sizeLargeWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeLargeWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeLarge(this.theme), commonClasses);\n }\n case 'medium': {\n const commonClasses = {\n [this.styles.sizeMediumWithIcon(this.theme)]: !!icon,\n [this.styles.sizeMediumWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeMediumWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeMedium(this.theme), commonClasses);\n }\n case 'small':\n default: {\n const commonClasses = {\n [this.styles.sizeSmallWithIcon(this.theme)]: !!icon,\n [this.styles.sizeSmallWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeSmallWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeSmall(this.theme), commonClasses);\n }\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.wrapLarge(this.theme);\n case 'medium':\n return this.styles.wrapMedium(this.theme);\n case 'small':\n default:\n return this.styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;;;;;AAKA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;;AAEA,IAAAK,aAAA,GAAAL,OAAA;;AAEA,IAAAM,cAAA,GAAAN,OAAA;;AAEA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;;;AAGA,IAAAW,cAAA,GAAAX,OAAA;AACA,IAAAY,kBAAA,GAAAZ,OAAA;;AAEA,IAAAa,QAAA,GAAAb,OAAA;;AAEA,IAAAc,WAAA,GAAAd,OAAA;AACA,IAAAe,YAAA,GAAAf,OAAA;AACA,IAAAgB,kBAAA,GAAAhB,OAAA;AACA,IAAAiB,kBAAA,GAAAjB,OAAA,wBAAwD,IAAAkB,MAAA,EAAAC,OAAA,KAAAC,SAAA,gBAAAC,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgGjD,IAAMC,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAG,QAAQ;;;;;;;;;AASzC,IAAME,cAAc,GAAAD,OAAA,CAAAC,cAAA,GAAG;EAC5BC,WAAW,EAAE,qBAAqB;EAClCC,IAAI,EAAE,cAAc;EACpBC,OAAO,EAAE;AACX,CAAU;;;;AAIV,IAAMC,aAAuE,GAAG,SAA1EA,aAAuEA,CAAAC,IAAA,EAA8B,KAAxBC,QAAQ,GAAAD,IAAA,CAARC,QAAQ,CAAKC,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EAAAJ,IAAA,EAAAT,SAAA;EAClG,oBAAOtB,MAAA,CAAAmC,OAAA,CAAAC,aAAA,SAAUH,IAAI,EAAGD,QAAe,CAAC;AAC1C,CAAC;;AAED;;;;AAIaK,MAAM,GAAAZ,OAAA,CAAAY,MAAA,OAHlBC,wCAAqB,EAAAlB,MAAA,OACrBmB,uBAAQ,EAAAnB,MAAA,OACRoB,kBAAQ,EAAApB,MAAA,IAAAC,OAAA,0BAAAoB,gBAAA,YAAAJ,OAAA,OAAAK,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;;;;IAkBCU,QAAQ,GAAG,IAAAC,oCAAiB,EAAChB,MAAM,CAACiB,YAAY,CAAC,CAAAZ,KAAA;;IAElDa,KAAK,GAAG;MACbC,YAAY,EAAE;IAChB,CAAC,CAAAd,KAAA;;;;;;;;IAQOe,IAAI,GAAuB,IAAI,CAAAf,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqE/BgB,UAAU,GAAG,UAACC,KAA0C,EAAK,KAAAC,MAAA,EAAAC,QAAA,EAAAC,SAAA,EAAAC,SAAA;MACnE;QACEC,OAAO;;;;;;;;;;;;;;;;;;;;;;;QAuBLL,KAAK,CAvBPK,OAAO,CACPC,MAAM,GAsBJN,KAAK,CAtBPM,MAAM,CACNC,QAAQ,GAqBNP,KAAK,CArBPO,QAAQ,CACRC,UAAU,GAoBRR,KAAK,CApBPQ,UAAU,CACVC,OAAO,GAmBLT,KAAK,CAnBPS,OAAO,CACPC,KAAK,GAkBHV,KAAK,CAlBPU,KAAK,CACLC,OAAO,GAiBLX,KAAK,CAjBPW,OAAO,CACPC,OAAO,GAgBLZ,KAAK,CAhBPY,OAAO,CACPC,MAAM,GAeJb,KAAK,CAfPa,MAAM,CACNC,KAAK,GAcHd,KAAK,CAdPc,KAAK,CACLC,IAAI,GAaFf,KAAK,CAbPe,IAAI,CACJC,SAAS,GAYPhB,KAAK,CAZPgB,SAAS,CACTC,UAAU,GAWRjB,KAAK,CAXPiB,UAAU,CACVC,eAAe,GAUblB,KAAK,CAVPkB,eAAe,CACfC,eAAe,GASbnB,KAAK,CATPmB,eAAe,CACfC,KAAK,GAQHpB,KAAK,CARPoB,KAAK,CACLC,YAAY,GAOVrB,KAAK,CAPPqB,YAAY,CACZC,KAAK,GAMHtB,KAAK,CANPsB,KAAK,CACLC,QAAQ,GAKNvB,KAAK,CALPuB,QAAQ,CACGC,UAAU,GAInBxB,KAAK,CAJPyB,SAAS,CACJC,OAAO,GAGV1B,KAAK,CAHP2B,GAAG,CACHC,KAAK,GAEH5B,KAAK,CAFP4B,KAAK,CACFtD,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EACLwB,KAAK,EAAApC,UAAA;MACT,IAAAiE,cAAA,GAAqC9C,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAA5CkC,GAAG,GAAAE,cAAA,CAAHF,GAAG,CAAEF,SAAS,GAAAI,cAAA,CAATJ,SAAS,CAAEpD,QAAQ,GAAAwD,cAAA,CAARxD,QAAQ;;MAEhC,IAAMyD,SAAS,GAAG/C,KAAA,CAAKgD,gBAAgB,CAAC,CAAC;;MAEzC,IAAMC,SAAS,GAAGjD,KAAA,CAAKa,KAAK,CAACC,YAAY,IAAIsB,eAAe;MAC5D,IAAMc,MAAM,GAAGN,GAAG,KAAK,MAAM;;MAE7B,IAAAO,eAAA,GAA4C,IAAAC,2BAAc,MAAAC,SAAA,CAAA5D,OAAA;QACnDO,KAAA,CAAKiB,KAAK,IAAEgC,SAAS,EAAEK,OAAO,CAACL,SAAS,CAAC,EAAEM,IAAI,EAAEvD,KAAA,CAAKuD,IAAI;QAC/DvD,KAAA,CAAK6C,KAAK;QACV7C,KAAA,CAAKwD,MAAM;QACXxD,KAAA,CAAKyD;QACP,CAAC,CALMC,sBAAsB,GAAAP,eAAA,IAAEQ,SAAS,GAAAR,eAAA;MAMxC,IAAMS,uCAAuC,GAAG,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAACC,QAAQ,CAACjB,GAAG,CAAC;;MAEtF,IAAMkB,cAAc,GAAGtC,QAAQ,IAAIK,OAAO;MAC1C,IAAMkC,aAAa,GAAG,CAAA7C,MAAA,GAAAlB,KAAA,EAAKyD,EAAE,CAAAjD,KAAA,CAAAU,MAAA;MAC3BlB,KAAA,CAAKwD,MAAM,CAACtE,IAAI,CAACc,KAAA,CAAK6C,KAAK,CAAC;MAC5B7C,KAAA,CAAKwD,MAAM,CAACZ,GAAG,CAAC,CAAC5C,KAAA,CAAK6C,KAAK,CAAC;MAC5BE,SAAS;MACTjB,MAAM,IAAI9B,KAAA,CAAKwD,MAAM,CAAC1B,MAAM,CAAC,CAAC;MAC9BI,UAAU,IAAIlC,KAAA,CAAKwD,MAAM,CAACQ,SAAS,CAAC,CAAC;MACrC7B,eAAe,IAAInC,KAAA,CAAKwD,MAAM,CAACS,cAAc,CAAC,CAAC;MAC/CP,sBAAsB,EAAAjD,MAAA;QAClBqD,cAAc;QACd;QACE9D,KAAA,CAAKwD,MAAM,CAAChC,QAAQ,CAACxB,KAAA,CAAK6C,KAAK,CAAC;QAChCe,uCAAuC,IAAI5D,KAAA,CAAKwD,MAAM,CAACU,sBAAsB,CAAClE,KAAA,CAAK6C,KAAK,CAAC;QACzFnB,OAAO,IAAI1B,KAAA,CAAKwD,MAAM,CAACW,eAAe,CAACnE,KAAA,CAAK6C,KAAK,CAAC;QAClDpB,UAAU,IAAIzB,KAAA,CAAKwD,MAAM,CAAC/B,UAAU,CAAC,CAAC;QACtCmB,GAAG,KAAK,UAAU,IAAI5C,KAAA,CAAKwD,MAAM,CAACY,gBAAgB,CAACpE,KAAA,CAAK6C,KAAK,CAAC;QAC9DD,GAAG,KAAK,MAAM,IAAI5C,KAAA,CAAKwD,MAAM,CAACa,YAAY,CAAC,CAAC;QAC5CC,sBAAa,CAAC9C,QAAQ,CACvB;;QACD;QACED,MAAM,IAAI,CAACG,OAAO,IAAI1B,KAAA,CAAKuE,YAAY,CAAC3B,GAAG,CAAC,CAAC5C,KAAA,CAAK6C,KAAK,CAAC;QACxDI,SAAS,IAAIjD,KAAA,CAAKwD,MAAM,CAACgB,KAAK,CAACxE,KAAA,CAAK6C,KAAK,CAAC;QAC1CnB,OAAO,IAAI1B,KAAA,CAAKwD,MAAM,CAAC9B,OAAO,CAAC1B,KAAA,CAAK6C,KAAK,CAAC;QAC1CnB,OAAO,IAAIuB,SAAS,IAAIjD,KAAA,CAAKwD,MAAM,CAACiB,cAAc,CAACzE,KAAA,CAAK6C,KAAK,CAAC;QAC9DpB,UAAU,IAAI,CAACC,OAAO,IAAI,CAACuB,SAAS,IAAIjD,KAAA,CAAKwD,MAAM,CAAC/B,UAAU,CAAC,CAAC,CACjE;;MACP,CAAC;;MAED,IAAMiD,SAAS,OAAArB,SAAA,CAAA5D,OAAA;MACVF,IAAI;QACPoF,SAAS,EAAEZ,aAAa;QACxBa,KAAK,MAAAvB,SAAA,CAAA5D,OAAA;UACHoF,SAAS,EAAExC,KAAK;QACbf,OAAO,CACX;;QACDwD,OAAO,EAAE9E,KAAA,CAAK+E,WAAW;QACzBC,MAAM,EAAEhF,KAAA,CAAKiF,UAAU;QACvBzC,QAAQ,EAAExC,KAAA,CAAKkF,WAAW,CAAC,EAAE5C,YAAY,EAAZA,YAAY,EAAEd,QAAQ,EAAEsC,cAAc,EAAEtB,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC,GACjF;;;MAED,IAAM2C,SAAS,GAAG;QAChBR,SAAS,EAAE3E,KAAA,CAAKyD,EAAE,CAACa,sBAAa,CAACpF,IAAI,GAAAiC,QAAA,OAAAA,QAAA;QAClCnB,KAAA,CAAKwD,MAAM,CAAC4B,IAAI,CAACpF,KAAA,CAAK6C,KAAK,CAAC,IAAG,IAAI,EAAA1B,QAAA;QACnCnB,KAAA,CAAKqF,oBAAoB,CAAC,CAAC,IAAG,IAAI,EAAAlE,QAAA;QACpC,CAAC;QACFyD,KAAK,EAAE;UACLrC,KAAK,EAALA;QACF;MACF,CAAC;;MAED,IAAM+C,eAAe,GAAG5C,SAAS,KAAK,QAAQ,GAAG,EAAElB,QAAQ,EAAEsC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;;MAElF,IAAMyB,eAAe,GAAG,IAAI;;MAE5B,IAAIC,WAAW,GAAG,IAAI;MACtB,IAAI,CAAC,CAACvC,SAAS,IAAIC,MAAM,KAAK,CAACY,cAAc,EAAE,KAAA2B,SAAA;QAC7CD,WAAW;QACTlI,MAAA,CAAAmC,OAAA,CAAAC,aAAA;UACEiF,SAAS,EAAE3E,KAAA,CAAKyD,EAAE,CAACzD,KAAA,CAAKwD,MAAM,CAACkC,OAAO,CAAC,CAAC,GAAAD,SAAA,OAAAA,SAAA;UACrCzF,KAAA,CAAKwD,MAAM,CAACmC,cAAc,CAAC3F,KAAA,CAAK6C,KAAK,CAAC,IAAGjB,OAAO,EAAA6D,SAAA;UAChDzF,KAAA,CAAKwD,MAAM,CAACoC,YAAY,CAAC5F,KAAA,CAAK6C,KAAK,CAAC,IAAGlB,KAAK,EAAA8D,SAAA;UAC5CzF,KAAA,CAAKwD,MAAM,CAACqC,WAAW,CAAC,CAAC,IAAG3C,MAAM,EAAAuC,SAAA;UAClCzF,KAAA,CAAKwD,MAAM,CAACsC,kBAAkB,CAAC9F,KAAA,CAAK6C,KAAK,CAAC,IAAGK,MAAM,IAAItB,OAAO,EAAA6D,SAAA;UAC9DzF,KAAA,CAAKwD,MAAM,CAACuC,gBAAgB,CAAC/F,KAAA,CAAK6C,KAAK,CAAC,IAAGK,MAAM,IAAIvB,KAAK,EAAA8D,SAAA;UAC5D,CAAE;QACJ,CACF;;MACH;;MAEA,IAAMO,SAA4C,GAAG;QACnDpD,GAAG,EAAHA,GAAG;QACHW,IAAI,EAAEvD,KAAA,CAAKuD,IAAI;QACf0C,WAAW,EAAE,CAAC,CAAC3G,QAAQ;QACvBuC,OAAO,EAAEA,OAAO,IAAI;MACtB,CAAC;MACD,IAAMqE,YAAY,GAAGlE,IAAI,iBAAI1E,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAACpB,WAAA,CAAA6H,UAAU,MAAA9C,SAAA,CAAA5D,OAAA,MAAKuG,SAAS,IAAEI,QAAQ,EAAC,MAAM,EAACpE,IAAI,EAAEA,IAAK,GAAE,CAAC;MACtF,IAAMqE,aAAa,GAAGpE,SAAS;MAC7B3E,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAACpB,WAAA,CAAA6H,UAAU,MAAA9C,SAAA,CAAA5D,OAAA,MAAKuG,SAAS,IAAEM,YAAY,EAAE,CAAC,CAACtE,IAAI,IAAI,CAAC,CAACC,SAAU,EAACmE,QAAQ,EAAC,OAAO,EAACpE,IAAI,EAAEC,SAAU,GAAE,CACpG;;;MAED;MACA,IAAIiB,MAAM,EAAE,KAAAqD,SAAA;QACV7B,SAAS,CAACC,SAAS,GAAG3E,KAAA,CAAKyD,EAAE,EAAA8C,SAAA,OAAAA,SAAA;QAC1BvG,KAAA,CAAKwD,MAAM,CAACtE,IAAI,CAACc,KAAA,CAAK6C,KAAK,CAAC,IAAG,IAAI,EAAA0D,SAAA;QACnCxD,SAAS,IAAG,IAAI,EAAAwD,SAAA;QAChBvG,KAAA,CAAKwD,MAAM,CAACgD,IAAI,CAACxG,KAAA,CAAK6C,KAAK,CAAC,IAAG,IAAI,EAAA0D,SAAA;QACnCvG,KAAA,CAAKwD,MAAM,CAACiD,cAAc,CAAC,CAAC,IAAG,CAACC,gBAAQ,EAAAH,SAAA;QACxCvG,KAAA,CAAKwD,MAAM,CAACmD,4BAA4B,CAAC,CAAC,IAAGD,gBAAQ,EAAAH,SAAA;QACrDvG,KAAA,CAAKwD,MAAM,CAACoD,SAAS,CAAC5G,KAAA,CAAK6C,KAAK,CAAC,IAAGI,SAAS,EAAAsD,SAAA;QAC7CvG,KAAA,CAAKwD,MAAM,CAACqD,YAAY,CAAC7G,KAAA,CAAK6C,KAAK,CAAC,IAAGiB,cAAc,EAAAyC,SAAA;QACvD,CAAC;QACFO,MAAM,CAACC,MAAM,CAAC5B,SAAS,EAAE;UACvBR,SAAS,EAAE3E,KAAA,CAAKyD,EAAE,CAACzD,KAAA,CAAKwD,MAAM,CAAC4B,IAAI,CAACpF,KAAA,CAAK6C,KAAK,CAAC,EAAE7C,KAAA,CAAKwD,MAAM,CAACwD,QAAQ,CAAC,CAAC,CAAC;UACxEpC,KAAK,EAAE,EAAErC,KAAK,EAAE4C,SAAS,CAACP,KAAK,CAACrC,KAAK,CAAC;QACxC,CAAC,CAAC;;QAEFmC,SAAS,CAACE,KAAK,CAACC,SAAS,GAAGoC,SAAS;MACvC;;MAEA,IAAMC,cAAc,GAAGrF,OAAO,IAAI,CAACG,IAAI,IAAI,CAACC,SAAS;MACrD,IAAMkF,WAAW,GAAGD,cAAc,iBAAI5J,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAACjB,kBAAA,CAAA2I,iBAAiB,IAAC7D,IAAI,EAAEvD,KAAA,CAAKuD,IAAK,EAAE,CAAC;;MAE5E,IAAI8D,WAAW;MACb/J,MAAA,CAAAmC,OAAA,CAAAC,aAAA;QACEiF,SAAS,EAAE3E,KAAA,CAAKyD,EAAE,CAACzD,KAAA,CAAKwD,MAAM,CAAC8D,OAAO,CAAC,CAAC,EAAEhD,sBAAa,CAACgD,OAAO,GAAAlG,SAAA,OAAAA,SAAA;QAC5DpB,KAAA,CAAKwD,MAAM,CAAC+D,WAAW,CAAC,CAAC,IAAGrE,MAAM,EAAA9B,SAAA;QAClCpB,KAAA,CAAKwD,MAAM,CAACgE,eAAe,CAAC,CAAC,IAAG,CAAC9F,OAAO,IAAIF,QAAQ,EAAAJ,SAAA;QACtD,CAAE;;MAEF+F,WAAW;MACXjB,YAAY;MACb5I,MAAA,CAAAmC,OAAA,CAAAC,aAAA;QACEiF,SAAS,EAAE3E,KAAA,CAAKyD,EAAE,CAACa,sBAAa,CAACmD,IAAI,GAAApG,SAAA,OAAAA,SAAA;QAClCrB,KAAA,CAAKwD,MAAM,CAACkE,gBAAgB,CAAC,CAAC,IAAGR,cAAc,EAAA7F,SAAA;QACjD,CAAE;;MAEF/B;MACG,CAAC;MACN+G;MACE,CACN;;MACD,IAAInD,MAAM,IAAI,CAACrB,OAAO,EAAE;QACtBwF,WAAW;QACT/J,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAAC7B,aAAA,CAAA8J,YAAY,CAACC,QAAQ,IAACC,KAAK,EAAE,IAAAC,oCAAiB,EAAC9H,KAAA,CAAK6C,KAAK,CAAE;;QAExDvF,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAACxB,KAAA,CAAA6J,IAAI;UACHC,OAAO,EAAE/E,SAAU;UACnBzB,QAAQ,EAAEA,QAAS;UACnBQ,IAAI,EAAEhC,KAAA,CAAKiI,cAAc,CAACjG,IAAI,CAAE;UAChCC,SAAS,EAAEjC,KAAA,CAAKiI,cAAc,CAAChG,SAAS,CAAE;UAC1CO,QAAQ,EAAE,CAAC,CAAE;UACbE,SAAS,EAAEtD,aAAc;;QAExBE;QACG;;QAEa,CACxB;;MACH;;MAEA,IAAM4I,IAAuB,GAAGxF,SAAS;;MAEzC;QACEpF,MAAA,CAAAmC,OAAA,CAAAC,aAAA,aAAA2D,SAAA,CAAA5D,OAAA,MAAU0F,SAAS,IAAE,YAAUnG,cAAc,CAACE,IAAK;QACjD5B,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAACwI,IAAI,MAAA7E,SAAA,CAAA5D,OAAA,IAAC,YAAUT,cAAc,CAACC,WAAY,EAACkJ,GAAG,EAAEnI,KAAA,CAAKX,IAAK,IAAKqF,SAAS,EAAMY,eAAe;QAC3FC,eAAe;QACfC,WAAW;QACX7B,SAAS;QACT0D;QACG;QACF,CAAC;;IAEX,CAAC,CAAArH,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0DO+E,WAAW,GAAG,UAACqD,CAAmB,EAAK;MAC7C,IAAI,CAACpI,KAAA,CAAKiB,KAAK,CAACO,QAAQ,IAAI,CAACxB,KAAA,CAAKiB,KAAK,CAACqB,YAAY,EAAE;QACpD;QACA;QACAtC,KAAA,CAAKqI,YAAY,CAACC,qBAAqB,YAAvCtI,KAAA,CAAKqI,YAAY,CAACC,qBAAqB,CAAG,YAAM;UAC9C,IAAItI,KAAA,CAAKuI,WAAW,CAACC,YAAY,EAAE;YACjCxI,KAAA,CAAKyI,QAAQ,CAAC,EAAE3H,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;UACvC;QACF,CAAC,CAAC;QACFd,KAAA,CAAKiB,KAAK,CAAC6D,OAAO,YAAlB9E,KAAA,CAAKiB,KAAK,CAAC6D,OAAO,CAAGsD,CAAC,CAAC;MACzB;IACF,CAAC,CAAApI,KAAA;;IAEOiF,UAAU,GAAG,UAACmD,CAAmB,EAAK;MAC5CpI,KAAA,CAAKyI,QAAQ,CAAC,EAAE3H,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;MACtC,IAAI,CAACd,KAAA,CAAKiB,KAAK,CAACO,QAAQ,IAAI,CAACxB,KAAA,CAAKiB,KAAK,CAACqB,YAAY,EAAE;QACpDtC,KAAA,CAAKiB,KAAK,CAAC+D,MAAM,YAAjBhF,KAAA,CAAKiB,KAAK,CAAC+D,MAAM,CAAGoD,CAAC,CAAC;MACxB;IACF,CAAC,CAAApI,KAAA;;IAEOX,IAAI,GAAG,UAAC0B,IAAwB,EAAK;MAC3Cf,KAAA,CAAKe,IAAI,GAAGA,IAAI;IAClB,CAAC,QAAAf,KAAA,MAAA0I,eAAA,CAAAjJ,OAAA,EAAAE,MAAA,EAAAI,gBAAA,MAAA4I,MAAA,GAAAhJ,MAAA,CAAAiJ,SAAA,CAAAD,MAAA,CAhVME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,CAACN,WAAW,GAAG,IAAIO,wBAAW,CAAC,IAAI,CAACT,YAAY,CAAC,CACrD,IAAI,IAAI,CAACpH,KAAK,CAAC8H,SAAS,EAAE,CACxB,IAAI,CAACR,WAAW,CAACC,YAAY,GAAG,IAAI,CACpC,IAAI,CAAChE,KAAK,CAAC,CAAC,CACd,CACA,IAAA5C,gBAAO,EACL,IAAI,CAACX,KAAK,CAAC2B,GAAG,KAAK,MAAM,EACzB,gGACF,CAAC,CACH,CAAC,CAAAjD,MAAA,CAEaqJ,wBAAwB,GAAtC,SAAAA,yBAAuC/H,KAAkB,EAAE,CACzD,IAAIA,KAAK,CAACY,OAAO,IAAIZ,KAAK,CAACO,QAAQ,EAAE,CACnC,OAAO,EAAEV,YAAY,EAAE,KAAK,CAAC,CAAC,CAChC,CACA,OAAO,IAAI,CACb,CAAC,CAED;AACF;AACA,KAFE,CAAA6H,MAAA,CAGOnE,KAAK,GAAZ,SAAAA,MAAA,EAAe,KAAAyE,UAAA,CACb,CAAAA,UAAA,OAAI,CAAClI,IAAI,aAATkI,UAAA,CAAWzE,KAAK,CAAC,CAAC,CACpB,CAAC,CAED;AACF;AACA,KAFE,CAAAmE,MAAA,CAGOO,IAAI,GAAX,SAAAA,KAAA,EAAc,KAAAC,WAAA,CACZ,CAAAA,WAAA,OAAI,CAACpI,IAAI,aAAToI,WAAA,CAAWD,IAAI,CAAC,CAAC,CACnB,CAAC,CAAAP,MAAA,CAEMS,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,IAAI,CAAC7F,MAAM,GAAG,IAAA8F,kBAAS,EAAC,IAAI,CAACC,OAAO,CAAC,CACrC,IAAI,CAAChF,YAAY,GAAG,IAAAiF,wBAAe,EAAC,IAAI,CAACD,OAAO,CAAC,CAEjD,oBACEjM,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAAC7B,aAAA,CAAA8J,YAAY,CAAC8B,QAAQ,QACnB,UAAC5G,KAAK,EAAK,CACVwG,MAAI,CAACxG,KAAK,GAAGwG,MAAI,CAACpI,KAAK,CAAC4B,KAAK,GAAG6G,0BAAY,CAACC,MAAM,CAACN,MAAI,CAACpI,KAAK,CAAC4B,KAAK,EAAWA,KAAK,CAAC,GAAGA,KAAK,CAC7F,oBACEvF,MAAA,CAAAmC,OAAA,CAAAC,aAAA,CAAC5B,cAAA,CAAA8L,aAAa,MAAAvG,SAAA,CAAA5D,OAAA,IAACoK,WAAW,EAAER,MAAI,CAACS,WAAY,IAAKT,MAAI,CAACpI,KAAK,GACzDoI,MAAI,CAACrI,UACO,CAAC,CAEpB,CACqB,CAAC,CAE5B,CAAC,CAAA2H,MAAA,CAEOzD,WAAW,GAAnB,SAAAA,YAAA6E,KAAA,EAIgE,KAH9DzH,YAAY,GAAAyH,KAAA,CAAZzH,YAAY,CACZd,QAAQ,GAAAuI,KAAA,CAARvI,QAAQ,CAAAwI,cAAA,GAAAD,KAAA,CACRvH,QAAQ,CAARA,QAAQ,GAAAwH,cAAA,cAAG,CAAC,GAAAA,cAAA,CAEZ,IAAI1H,YAAY,IAAId,QAAQ,EAAE,CAC5B,OAAO,CAAC,CAAC,CACX,CAEA,OAAOgB,QAAQ,CACjB,CAAC,CAAAmG,MAAA,CAqMOV,cAAc,GAAtB,SAAAA,eAAuBjG,IAAoC,EAAE,CAC3D,IAAIA,IAAI,IAAI,IAAAiI,mBAAY,EAACjI,IAAI,CAAC,EAAE,KAAAkI,gBAAA,CAC9B,IAAMC,KAAK,GAAG,IAAAC,8BAAkB,EAAC,IAAI,CAACvH,KAAK,CAAC,CAC5C,oBAAOwH,cAAK,CAACC,YAAY,CAACtI,IAAI,EAAE,EAAEuB,IAAI,GAAA2G,gBAAA,GAAElI,IAAI,CAACf,KAAK,CAACsC,IAAI,YAAA2G,gBAAA,GAAIC,KAAK,CAAC,IAAI,CAAC5G,IAAI,CAAC,CAAC,CAAC,CAAC,CAChF,CAEA,OAAOvB,IAAI,CACb,CAAC,CAAA2G,MAAA,CAEO3F,gBAAgB,GAAxB,SAAAA,iBAAA,EAA2B,CACzB,IAAAuH,eAAA,GAAsC,IAAI,CAAC7J,QAAQ,CAAC,CAAC,CAA7CsB,IAAI,GAAAuI,eAAA,CAAJvI,IAAI,CAAEC,SAAS,GAAAsI,eAAA,CAATtI,SAAS,CAAE3C,QAAQ,GAAAiL,eAAA,CAARjL,QAAQ,CAEjC,QAAQ,IAAI,CAACiE,IAAI,GACf,KAAK,OAAO,CAAE,KAAAiH,cAAA,CACZ,IAAMC,aAAa,IAAAD,cAAA,OAAAA,cAAA,CAChB,IAAI,CAAChH,MAAM,CAACkH,iBAAiB,CAAC,IAAI,CAAC7H,KAAK,CAAC,IAAG,CAAC,CAACb,IAAI,EAAAwI,cAAA,CAClD,IAAI,CAAChH,MAAM,CAACmH,sBAAsB,CAAC,IAAI,CAAC9H,KAAK,CAAC,IAAG,CAAC,CAACZ,SAAS,EAAAuI,cAAA,CAC5D,IAAI,CAAChH,MAAM,CAACoH,4BAA4B,CAAC,IAAI,CAAC/H,KAAK,CAAC,IAAG,CAAC,CAAC,CAACb,IAAI,IAAI,CAAC,CAACC,SAAS,KAAK,CAAC3C,QAAQ,EAAAkL,cAAA,CAC7F,CAED,OAAO,IAAI,CAAC/G,EAAE,CAAC,IAAI,CAACD,MAAM,CAACqH,SAAS,CAAC,IAAI,CAAChI,KAAK,CAAC,EAAE4H,aAAa,CAAC,CAClE,CACA,KAAK,QAAQ,CAAE,KAAAK,eAAA,CACb,IAAML,eAAa,IAAAK,eAAA,OAAAA,eAAA,CAChB,IAAI,CAACtH,MAAM,CAACuH,kBAAkB,CAAC,IAAI,CAAClI,KAAK,CAAC,IAAG,CAAC,CAACb,IAAI,EAAA8I,eAAA,CACnD,IAAI,CAACtH,MAAM,CAACwH,uBAAuB,CAAC,IAAI,CAACnI,KAAK,CAAC,IAAG,CAAC,CAACZ,SAAS,EAAA6I,eAAA,CAC7D,IAAI,CAACtH,MAAM,CAACyH,6BAA6B,CAAC,IAAI,CAACpI,KAAK,CAAC,IAAG,CAAC,CAAC,CAACb,IAAI,IAAI,CAAC,CAACC,SAAS,KAAK,CAAC3C,QAAQ,EAAAwL,eAAA,CAC9F,CAED,OAAO,IAAI,CAACrH,EAAE,CAAC,IAAI,CAACD,MAAM,CAAC0H,UAAU,CAAC,IAAI,CAACrI,KAAK,CAAC,EAAE4H,eAAa,CAAC,CACnE,CACA,KAAK,OAAO,CACZ,QAAS,KAAAU,eAAA,CACP,IAAMV,eAAa,IAAAU,eAAA,OAAAA,eAAA,CAChB,IAAI,CAAC3H,MAAM,CAAC4H,iBAAiB,CAAC,IAAI,CAACvI,KAAK,CAAC,IAAG,CAAC,CAACb,IAAI,EAAAmJ,eAAA,CAClD,IAAI,CAAC3H,MAAM,CAAC6H,sBAAsB,CAAC,IAAI,CAACxI,KAAK,CAAC,IAAG,CAAC,CAACZ,SAAS,EAAAkJ,eAAA,CAC5D,IAAI,CAAC3H,MAAM,CAAC8H,4BAA4B,CAAC,IAAI,CAACzI,KAAK,CAAC,IAAG,CAAC,CAAC,CAACb,IAAI,IAAI,CAAC,CAACC,SAAS,KAAK,CAAC3C,QAAQ,EAAA6L,eAAA,CAC7F,CAED,OAAO,IAAI,CAAC1H,EAAE,CAAC,IAAI,CAACD,MAAM,CAAC+H,SAAS,CAAC,IAAI,CAAC1I,KAAK,CAAC,EAAE4H,eAAa,CAAC,CAClE,CACF,CACF,CAAC,CAAA9B,MAAA,CAEOtD,oBAAoB,GAA5B,SAAAA,qBAAA,EAA+B,CAC7B,QAAQ,IAAI,CAAC9B,IAAI,GACf,KAAK,OAAO,CACV,OAAO,IAAI,CAACC,MAAM,CAACgI,SAAS,CAAC,IAAI,CAAC3I,KAAK,CAAC,CAC1C,KAAK,QAAQ,CACX,OAAO,IAAI,CAACW,MAAM,CAACiI,UAAU,CAAC,IAAI,CAAC5I,KAAK,CAAC,CAC3C,KAAK,OAAO,CACZ,QACE,OAAO,IAAI,CAACW,MAAM,CAACkI,SAAS,CAAC,IAAI,CAAC7I,KAAK,CAAC,CAC5C,CACF,CAAC,QAAAlD,MAAA,GA3V8F0K,cAAK,CAACsB,SAAS,GAAAhN,OAAA,CAIhGiN,mBAAmB,GAAG,QAAQ,EAAAjN,OAAA,CAC9BkN,WAAW,GAAG,QAAQ,EAAAlN,OAAA,CACtBmN,UAAU,GAAG,IAAI,EAAAnN,OAAA,CAEjBiC,YAAY,GAAiB,EACzCgC,GAAG,EAAE,SAAS,EACd;EACA;EACA;EACAmJ,IAAI,EAAE,QAAQ,EACdrJ,SAAS,EAAE5D,wBAAwB,CACrC,CAAC,EAAAH,OAAA,MAAAD,MAAA,KAAAA,MAAA,KAAAA,MAAA","ignoreList":[]}
@@ -32,7 +32,7 @@ export interface CalendarProps extends CommonProps {
32
32
  * @default (props: CalendarDayProps) => <CalendarDay {...props} />
33
33
  * @param {CalendarDayProps} props - параметры дня.
34
34
  * @returns {ReactElement} элемент, который отрисовывает контент числа месяца. */
35
- renderDay?: (props: CalendarDayProps) => React.ReactElement;
35
+ renderDay?: (props: CalendarDayProps) => React.ReactElement<any>;
36
36
  /** Задает функцию, которая вызывается при каждом изменении месяца.
37
37
  * @param {CalendarMonthChangeInfo} changeInfo - информация о изменении отображаемого месяца, где
38
38
  * `month: number` - номер текущего отображаемого месяца от 1 до 12,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_normalizeWheel2","_lodash","_shallowequal","_isInstanceOf","_InternalDate","_rootNode","_CommonWrapper","_constants","_ThemeContext","_animation","_client","_createPropsGetter","_InternalDateTransformer","_renderEnvironment","_config","_MonthViewModel","CalendarScrollEvents","_interopRequireWildcard","_Month","_Calendar2","_CalendarDateShape","CalendarUtils","_CalendarContext","_CalendarDay","_class","_Calendar","CalendarDataTids","exports","root","month","dayCell","headerMonth","headerYear","Calendar","withRenderEnvironment","rootNode","_React$Component","props","_this$props$initialYe","_this","call","getProps","createPropsGetter","defaultProps","touchStartY","scrollToMonth","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","year","monthNative","minDate","maxDate","minMonth","maxMonth","currentMonth","diffInMonths","maxMonthsToAdd","onEnd","isYearChanges","monthsToPrependCount","monthsToPrepend","monthsToAppendCount","monthsToAppend","wrap","_callee$","_context","prev","next","getMonthInNativeFormat","animation","inProgress","finish","Promise","r","setTimeout","getDateInNativeFormat","isGreater","create","getMonthInHumanFormat","abrupt","isLess","state","months","scrollTo","themeConfig","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","setState","getMonths","scrollPosition","Math","abs","min","Array","from","length","_","index","MonthViewModel","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","slice","stop","_x","_x2","apply","arguments","handleMonthChange","visibleMonths","changeInfo","onMonthChange","getViewModel","item","renderMain","monthsForRender","getVisibleMonths","wrapperStyle","height","WRAPPER_HEIGHT","context","value","isHoliday","renderDay","today","getTodayDate","onDateClick","handleDateClick","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","ref","refRoot","className","cx","styles","style","wrapper","CalendarContext","Provider","map","renderMonth","separator","element","isMobile","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","dateShape","InternalDateTransformer","dateToHumanString","onValueChange","handleMonthYearChange","executeAnimations","pixelY","_ref2","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","isInstanceOf","globalObject","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","throttle","WheelEvent","preventDefault","_normalizeWheel","normalizeWheel","wheelEndTimeout","clearTimeout","scrollToNearestWeek","_this$state","scrollDirection","thresholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_HEIGHT","amount","pos","scrollAmmount","scrollAmount","_ref3","_this$getProps","minDateShape","maxDateShape","initialDate","getInitialDate","date","initialMonth","initialYear","_inheritsLoose2","formatDate","InternalDate","setComponents","toString","withPad","_proto","prototype","componentDidUpdate","prevProps","prevState","_this$props","shallowEqual","parseValue","getComponentsLikeNumber","visibleMonthsModels","prevFirstVisibleMonthModels","prevCurrentMonth","componentWillUnmount","cancel","render","_this2","getStyles","emotion","ThemeContext","Consumer","_ref4","top","Month","key","onMonthYearChange","toNativeFormat","getMonthPositions","positions","i","position","push","_this3","x","filter","_ref5","isMonthVisible","React","Component","__KONTUR_REACT_UI__","displayName","Day","CalendarDay","MIN_DATE","MIN_MONTH","MIN_YEAR","MAX_DATE","MAX_MONTH","MAX_YEAR","_day","isWeekend"],"sources":["Calendar.tsx"],"sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\nimport shallowEqual from 'shallowequal';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject, SafeTimer } from '../../lib/globalObject';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport type { Nullable, Range } from '../../typings/utility-types';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { getStyles } from './Calendar.styles';\nimport type { CalendarDateShape } from './CalendarDateShape';\nimport { create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\nimport type { CalendarContextProps } from './CalendarContext';\nimport { CalendarContext } from './CalendarContext';\nimport type { CalendarDayProps } from './CalendarDay';\nimport { CalendarDay } from './CalendarDay';\n\nexport interface CalendarProps extends CommonProps {\n /** Задает функцию, которая вызывается при изменении value.\n * @param {string} date - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (date: string) => void;\n\n /** Задает текущую дату в формате `dd.mm.yyyy`. */\n value: Nullable<string>;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy`. */\n maxDate?: string;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает начальную дату периода в формате `dd.mm.yyyy`. */\n periodStartDate?: string;\n\n /** Задает конечную дату периода в формате `dd.mm.yyyy`. */\n periodEndDate?: string;\n\n /** Задает функцию для определения праздничных дней.\n * @default (_day, isWeekend) => isWeekend.\n * @param {string} day - строка в формате `dd.mm.yyyy`.\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье).\n * @returns {boolean} `true` для выходного или `false` для рабочего дня. */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n\n /** Задает начальный месяц. */\n initialMonth?: Range<1, 13>;\n\n /** Задает начальный год. */\n initialYear?: number;\n\n /** Задает метод отрисовки дат в календаре.\n * @default (props: CalendarDayProps) => <CalendarDay {...props} />\n * @param {CalendarDayProps} props - параметры дня.\n * @returns {ReactElement} элемент, который отрисовывает контент числа месяца. */\n renderDay?: (props: CalendarDayProps) => React.ReactElement;\n\n /** Задает функцию, которая вызывается при каждом изменении месяца.\n * @param {CalendarMonthChangeInfo} changeInfo - информация о изменении отображаемого месяца, где\n * `month: number` - номер текущего отображаемого месяца от 1 до 12,\n * `year: number` - отображаемый год. */\n onMonthChange?: (changeInfo: CalendarMonthChangeInfo) => void;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n scrollDirection: number;\n scrollTarget: number;\n}\n\nexport interface CalendarMonthChangeInfo {\n month: number;\n year: number;\n}\n\nexport const CalendarDataTids = {\n root: 'Calendar__root',\n month: 'MonthView__month',\n dayCell: 'DayCellView__root',\n headerMonth: 'MonthView__headerMonth',\n headerYear: 'MonthView__headerYear',\n} as const;\n\ntype DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' | 'isHoliday'>>;\n\n/**\n * Компонент календаря `Calendar` из DatePicker'а помогает выбирать дату с помощью мыши.\n */\n@withRenderEnvironment\n@rootNode\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n public static displayName = 'Calendar';\n\n public static Day = CalendarDay;\n\n private static formatDate(date: number, month: number, year: number) {\n return new InternalDate().setComponents({ date, month, year }).toString({ withPad: true });\n }\n\n public static defaultProps: DefaultProps = {\n minDate: Calendar.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),\n maxDate: Calendar.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),\n isHoliday: (_day: string, isWeekend: boolean) => isWeekend,\n };\n\n private getProps = createPropsGetter(Calendar.defaultProps);\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private wheelEndTimeout: SafeTimer;\n private root: Nullable<HTMLElement>;\n private animation!: ReturnType<typeof animation>;\n private touchStartY: Nullable<number> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const { minDate, maxDate, value } = this.getProps();\n\n const minDateShape = this.getDateInNativeFormat(minDate);\n const maxDateShape = this.getDateInNativeFormat(maxDate);\n const dateShape = this.getDateInNativeFormat(value);\n\n const today = CalendarUtils.getTodayDate();\n const initialDate = CalendarUtils.getInitialDate({\n today,\n date: dateShape,\n minDate: minDateShape,\n maxDate: maxDateShape,\n });\n\n const initialMonth = this.props.initialMonth\n ? CalendarUtils.getMonthInNativeFormat(this.props.initialMonth)\n : initialDate.month;\n const initialYear = this.props.initialYear ?? initialDate.year;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n scrollDirection: 1,\n scrollTarget: 0,\n };\n }\n\n public componentDidUpdate(prevProps: Readonly<CalendarProps>, prevState: Readonly<CalendarState>): void {\n const { value, onMonthChange } = this.props;\n if (value && !shallowEqual(value, prevProps.value)) {\n const date = new InternalDate().parseValue(value).getComponentsLikeNumber();\n this.scrollToMonth(date.month, date.year);\n }\n\n if (onMonthChange) {\n const visibleMonthsModels = this.getVisibleMonths(this.state).map(this.getViewModel);\n const prevFirstVisibleMonthModels = this.getVisibleMonths(prevState).map(this.getViewModel);\n\n if (visibleMonthsModels.length > 0 && prevFirstVisibleMonthModels.length > 0) {\n const currentMonth = visibleMonthsModels[0].month;\n const prevCurrentMonth = prevFirstVisibleMonthModels[0].month;\n\n if (currentMonth !== prevCurrentMonth) {\n this.handleMonthChange(visibleMonthsModels);\n }\n }\n }\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\n }\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n this.animation = animation(this.globalObject);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Прокручивает календарь до переданной даты\n * @public\n */\n public scrollToMonth = async (month: number, year: number) => {\n const monthNative = CalendarUtils.getMonthInNativeFormat(month);\n\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => setTimeout(r, 0));\n }\n\n const minDate = this.getDateInNativeFormat(this.getProps().minDate);\n const maxDate = this.getDateInNativeFormat(this.getProps().maxDate);\n\n if (minDate && isGreater(minDate, create(32, monthNative, year))) {\n const minMonth = CalendarUtils.getMonthInHumanFormat(minDate.month);\n this.scrollToMonth(minMonth, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, monthNative, year))) {\n const maxMonth = CalendarUtils.getMonthInHumanFormat(maxDate.month);\n this.scrollToMonth(maxMonth, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - monthNative - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () => {\n this.setState({\n months: CalendarUtils.getMonths(monthNative, year),\n scrollPosition: 0,\n });\n };\n\n const isYearChanges = (state: CalendarState) => {\n return (\n state.months[1].year !== year &&\n // if diff in months is 2 or less,\n // either year is not changing either months already\n // have right isFirstInYear/isLastInYear flags\n Math.abs(diffInMonths) > 2\n );\n };\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index, year);\n });\n this.setState(\n (state) => {\n const yearChanges = isYearChanges(state);\n if (yearChanges) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[0].isFirstInYear = true;\n if (monthsToPrepend.length) {\n // Mutating item here is safe as it was just created\n monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;\n }\n }\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index - monthsToAppendCount + 2, year);\n });\n this.setState(\n (state) => {\n if (isYearChanges(state)) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[state.months.length - 1].isLastInYear = true;\n // Mutating item here is safe as it was just created\n if (monthsToAppend[0]) {\n monthsToAppend[0].isFirstInYear = true;\n }\n }\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private handleMonthChange = (visibleMonths: MonthViewModel[]): void => {\n const currentMonth = visibleMonths[0];\n const changeInfo = {\n month: CalendarUtils.getMonthInHumanFormat(currentMonth.month),\n year: currentMonth.year,\n };\n\n this.props.onMonthChange?.(changeInfo);\n };\n\n private getViewModel = (item: [number, MonthViewModel]): MonthViewModel => item[1];\n\n private renderMain = () => {\n const monthsForRender = this.getVisibleMonths(this.state);\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n\n const props = this.getProps();\n\n const context: CalendarContextProps = {\n value: this.getDateInNativeFormat(props.value),\n minDate: this.getDateInNativeFormat(props.minDate),\n maxDate: this.getDateInNativeFormat(props.maxDate),\n isHoliday: props.isHoliday,\n renderDay: props.renderDay,\n today: CalendarUtils.getTodayDate(),\n onDateClick: this.handleDateClick,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...props}>\n <div ref={this.refRoot} data-tid={CalendarDataTids.root} className={this.cx(this.styles.root(this.theme))}>\n <div style={wrapperStyle} className={this.styles.wrapper()}>\n <CalendarContext.Provider value={context}>\n {monthsForRender.map(this.renderMonth, this)}\n </CalendarContext.Provider>\n </div>\n <div className={this.styles.separator(this.theme)} />\n </div>\n </CommonWrapper>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n onMonthYearChange={this.handleMonthYearChange}\n />\n );\n }\n\n private handleDateClick = (dateShape: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToHumanString(dateShape);\n\n this.props.onValueChange?.(value);\n };\n\n private getDateInNativeFormat(date: Nullable<string>) {\n return new InternalDate().parseValue(date).toNativeFormat();\n }\n\n private getMonthPositions(months: MonthViewModel[], scrollPosition: number) {\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private getVisibleMonths(state: Readonly<CalendarState>): Array<[number, MonthViewModel]> {\n const { months, scrollPosition } = state;\n const positions = this.getMonthPositions(months, scrollPosition);\n\n return months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme));\n }\n\n private handleMonthYearChange = (monthNative: number, year: number) => {\n const month = CalendarUtils.getMonthInHumanFormat(monthNative);\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const thresholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_HEIGHT;\n\n if (scrollTarget < thresholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = thresholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) => {\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n }));\n },\n onEnd,\n );\n };\n}\n"],"mappings":"6nBAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;;;;AAIA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;;AAEA,IAAAM,SAAA,GAAAN,OAAA;;AAEA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;;;AAGA,IAAAS,aAAA,GAAAT,OAAA;AACA,IAAAU,UAAA,GAAAV,OAAA;AACA,IAAAW,OAAA,GAAAX,OAAA;AACA,IAAAY,kBAAA,GAAAZ,OAAA;AACA,IAAAa,wBAAA,GAAAb,OAAA;AACA,IAAAc,kBAAA,GAAAd,OAAA;;AAEA,IAAAe,OAAA,GAAAf,OAAA;AACA,IAAAgB,eAAA,GAAAhB,OAAA;AACA,IAAAiB,oBAAA,GAAAC,uBAAA,CAAAlB,OAAA;AACA,IAAAmB,MAAA,GAAAnB,OAAA;AACA,IAAAoB,UAAA,GAAApB,OAAA;;AAEA,IAAAqB,kBAAA,GAAArB,OAAA;AACA,IAAAsB,aAAA,GAAAJ,uBAAA,CAAAlB,OAAA;;AAEA,IAAAuB,gBAAA,GAAAvB,OAAA;;AAEA,IAAAwB,YAAA,GAAAxB,OAAA,kBAA4C,IAAAyB,MAAA,EAAAC,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DrC,IAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC9BE,IAAI,EAAE,gBAAgB;EACtBC,KAAK,EAAE,kBAAkB;EACzBC,OAAO,EAAE,mBAAmB;EAC5BC,WAAW,EAAE,wBAAwB;EACrCC,UAAU,EAAE;AACd,CAAU;;;;AAIV;AACA;AACA,GAFA;;;AAKaC,QAAQ,GAAAN,OAAA,CAAAM,QAAA,OAFpBC,wCAAqB,EAAAV,MAAA,OACrBW,kBAAQ,EAAAX,MAAA,IAAAC,SAAA,0BAAAW,gBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BP,SAAAH,SAAYI,MAAoB,EAAE,KAAAC,qBAAA,KAAAC,KAAA;IAChCA,KAAA,GAAAH,gBAAA,CAAAI,IAAA,OAAMH,MAAK,CAAC,SAACE,KAAA,CAfPE,QAAQ,GAAG,IAAAC,oCAAiB,EAACT,QAAQ,CAACU,YAAY,CAAC,CAAAJ,KAAA,CAUnDK,WAAW,GAAqB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4E5C;AACF;AACA;AACA,OAHEL,KAAA;IAIOM,aAAa,iCAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,gBAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAG,SAAAC,QAAOtB,KAAa,EAAEuB,IAAY,OAAAC,WAAA,EAAAC,OAAA,EAAAC,OAAA,EAAAC,QAAA,EAAAC,QAAA,EAAAC,YAAA,EAAAC,YAAA,EAAAC,cAAA,EAAAC,KAAA,EAAAC,aAAA,EAAAC,oBAAA,EAAAC,eAAA,EAAAC,mBAAA,EAAAC,cAAA,QAAAjB,YAAA,CAAAD,OAAA,CAAAmB,IAAA,UAAAC,SAAAC,QAAA,qBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;cACjDlB,WAAW,GAAGhC,aAAa,CAACmD,sBAAsB,CAAC3C,KAAK,CAAC;;cAE3DU,KAAA,CAAKkC,SAAS,CAACC,UAAU,CAAC,CAAC,GAAAL,QAAA,CAAAE,IAAA;cAC7BhC,KAAA,CAAKkC,SAAS,CAACE,MAAM,CAAC,CAAC;cACvB;cAAAN,QAAA,CAAAE,IAAA,YACM,IAAIK,OAAO,CAAC,UAACC,CAAC,UAAKC,UAAU,CAACD,CAAC,EAAE,CAAC,CAAC,GAAC;;;cAGtCvB,OAAO,GAAGf,KAAA,CAAKwC,qBAAqB,CAACxC,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACa,OAAO,CAAC;cAC7DC,OAAO,GAAGhB,KAAA,CAAKwC,qBAAqB,CAACxC,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACc,OAAO,CAAC;;cAE/DD,OAAO,IAAI,IAAA0B,4BAAS,EAAC1B,OAAO,EAAE,IAAA2B,yBAAM,EAAC,EAAE,EAAE5B,WAAW,EAAED,IAAI,CAAC,CAAC,IAAAiB,QAAA,CAAAE,IAAA;cACxDf,QAAQ,GAAGnC,aAAa,CAAC6D,qBAAqB,CAAC5B,OAAO,CAACzB,KAAK,CAAC;cACnEU,KAAA,CAAKM,aAAa,CAACW,QAAQ,EAAEF,OAAO,CAACF,IAAI,CAAC,CAAC,OAAAiB,QAAA,CAAAc,MAAA;;;;cAIzC5B,OAAO,IAAI,IAAA6B,yBAAM,EAAC7B,OAAO,EAAE,IAAA0B,yBAAM,EAAC,CAAC,EAAE5B,WAAW,EAAED,IAAI,CAAC,CAAC,IAAAiB,QAAA,CAAAE,IAAA;cACpDd,QAAQ,GAAGpC,aAAa,CAAC6D,qBAAqB,CAAC3B,OAAO,CAAC1B,KAAK,CAAC;cACnEU,KAAA,CAAKM,aAAa,CAACY,QAAQ,EAAEF,OAAO,CAACH,IAAI,CAAC,CAAC,OAAAiB,QAAA,CAAAc,MAAA;;;;cAIvCzB,YAAY,GAAGnB,KAAA,CAAK8C,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC;cACnC3B,YAAY,GAAGD,YAAY,CAAC7B,KAAK,GAAG6B,YAAY,CAACN,IAAI,GAAG,EAAE,GAAGC,WAAW,GAAGD,IAAI,GAAG,EAAE;;cAEtFO,YAAY,KAAK,CAAC,IAAAU,QAAA,CAAAE,IAAA;cACpBhC,KAAA,CAAKgD,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAAlB,QAAA,CAAAc,MAAA;;;;cAIbvB,cAAc,GAAG,IAAA4B,mBAAW,EAACjD,KAAA,CAAKkD,KAAK,CAAC,CAACC,8BAA8B;;cAEvE7B,KAAK,GAAG,SAARA,KAAKA,CAAA,EAAS;gBAClBtB,KAAA,CAAKoD,QAAQ,CAAC;kBACZL,MAAM,EAAEjE,aAAa,CAACuE,SAAS,CAACvC,WAAW,EAAED,IAAI,CAAC;kBAClDyC,cAAc,EAAE;gBAClB,CAAC,CAAC;cACJ,CAAC;;cAEK/B,aAAa,GAAG,SAAhBA,aAAaA,CAAIuB,KAAoB,EAAK;gBAC9C;kBACEA,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC,CAAClC,IAAI,KAAKA,IAAI;kBAC7B;kBACA;kBACA;kBACA0C,IAAI,CAACC,GAAG,CAACpC,YAAY,CAAC,GAAG,CAAC;;cAE9B,CAAC;;cAED;cACA;cACA,IAAIA,YAAY,GAAG,CAAC,EAAE;gBACdI,oBAAoB,GAAG+B,IAAI,CAACE,GAAG,CAACF,IAAI,CAACC,GAAG,CAACpC,YAAY,CAAC,GAAG,CAAC,EAAEC,cAAc,CAAC;gBAC3EI,eAAe,GAAGiC,KAAK,CAACC,IAAI,CAAC,EAAEC,MAAM,EAAEpC,oBAAoB,CAAC,CAAC,EAAE,UAACqC,CAAC,EAAEC,KAAK,EAAK;kBACjF,OAAOC,8BAAc,CAACrB,MAAM,CAAC5B,WAAW,GAAGgD,KAAK,EAAEjD,IAAI,CAAC;gBACzD,CAAC,CAAC;gBACFb,KAAA,CAAKoD,QAAQ;kBACX,UAACN,KAAK,EAAK;oBACT,IAAMkB,WAAW,GAAGzC,aAAa,CAACuB,KAAK,CAAC;oBACxC,IAAIkB,WAAW,EAAE;sBACf;sBACA;sBACAlB,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC,CAACkB,aAAa,GAAG,IAAI;sBACpC,IAAIxC,eAAe,CAACmC,MAAM,EAAE;wBAC1B;wBACAnC,eAAe,CAACA,eAAe,CAACmC,MAAM,GAAG,CAAC,CAAC,CAACM,YAAY,GAAG,IAAI;sBACjE;oBACF;oBACA,OAAO;sBACLnB,MAAM,EAAEtB,eAAe,CAAC0C,MAAM,CAACrB,KAAK,CAACC,MAAM,CAAC;sBAC5CO,cAAc,EAAE,CAACxE,aAAa,CAACsF,eAAe,CAAC3C,eAAe,EAAEzB,KAAA,CAAKkD,KAAK;oBAC5E,CAAC;kBACH,CAAC;kBACD,YAAM;oBACJ,IAAMmB,cAAc,GAAGrE,KAAA,CAAK8C,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC,CAACuB,SAAS,CAACtE,KAAA,CAAKkD,KAAK,CAAC;oBACjElD,KAAA,CAAKgD,QAAQ,CAACqB,cAAc,EAAE/C,KAAK,CAAC;kBACtC;gBACF,CAAC;cACH;;cAEA;cACA;cACA,IAAIF,YAAY,GAAG,CAAC,EAAE;gBACdM,mBAAmB,GAAG6B,IAAI,CAACE,GAAG,CAACF,IAAI,CAACC,GAAG,CAACpC,YAAY,CAAC,EAAEC,cAAc,CAAC;gBACtEM,cAAc,GAAG+B,KAAK,CAACC,IAAI,CAAC,EAAEC,MAAM,EAAElC,mBAAmB,CAAC,CAAC,EAAE,UAACmC,CAAC,EAAEC,KAAK,EAAK;kBAC/E,OAAOC,8BAAc,CAACrB,MAAM,CAAC5B,WAAW,GAAGgD,KAAK,GAAGpC,mBAAmB,GAAG,CAAC,EAAEb,IAAI,CAAC;gBACnF,CAAC,CAAC;gBACFb,KAAA,CAAKoD,QAAQ;kBACX,UAACN,KAAK,EAAK;oBACT,IAAIvB,aAAa,CAACuB,KAAK,CAAC,EAAE;sBACxB;sBACA;sBACAA,KAAK,CAACC,MAAM,CAACD,KAAK,CAACC,MAAM,CAACa,MAAM,GAAG,CAAC,CAAC,CAACM,YAAY,GAAG,IAAI;sBACzD;sBACA,IAAIvC,cAAc,CAAC,CAAC,CAAC,EAAE;wBACrBA,cAAc,CAAC,CAAC,CAAC,CAACsC,aAAa,GAAG,IAAI;sBACxC;oBACF;oBACA,OAAO,EAAElB,MAAM,EAAED,KAAK,CAACC,MAAM,CAACoB,MAAM,CAACxC,cAAc,CAAC,CAAC,CAAC;kBACxD,CAAC;kBACD,YAAM;oBACJ,IAAM0C,cAAc,GAAG,CAAC,CAAC,GAAGvF,aAAa,CAACsF,eAAe,CAACpE,KAAA,CAAK8C,KAAK,CAACC,MAAM,CAACwB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEvE,KAAA,CAAKkD,KAAK,CAAC;oBACrGlD,KAAA,CAAKgD,QAAQ,CAACqB,cAAc,EAAE/C,KAAK,CAAC;kBACtC;gBACF,CAAC;cACH,CAAC,0BAAAQ,QAAA,CAAA0C,IAAA,OAAA5D,OAAA,GACF,oBAAA6D,EAAA,EAAAC,GAAA,UAAAnE,IAAA,CAAAoE,KAAA,OAAAC,SAAA,QAAA5E,KAAA;;;IAEO6E,iBAAiB,GAAG,UAACC,aAA+B,EAAW;MACrE,IAAM3D,YAAY,GAAG2D,aAAa,CAAC,CAAC,CAAC;MACrC,IAAMC,UAAU,GAAG;QACjBzF,KAAK,EAAER,aAAa,CAAC6D,qBAAqB,CAACxB,YAAY,CAAC7B,KAAK,CAAC;QAC9DuB,IAAI,EAAEM,YAAY,CAACN;MACrB,CAAC;;MAEDb,KAAA,CAAKF,KAAK,CAACkF,aAAa,YAAxBhF,KAAA,CAAKF,KAAK,CAACkF,aAAa,CAAGD,UAAU,CAAC;IACxC,CAAC,CAAA/E,KAAA;;IAEOiF,YAAY,GAAG,UAACC,IAA8B,UAAqBA,IAAI,CAAC,CAAC,CAAC,GAAAlF,KAAA;;IAE1EmF,UAAU,GAAG,YAAM;MACzB,IAAMC,eAAe,GAAGpF,KAAA,CAAKqF,gBAAgB,CAACrF,KAAA,CAAK8C,KAAK,CAAC;MACzD,IAAMwC,YAAY,GAAG,EAAEC,MAAM,EAAE,IAAAtC,mBAAW,EAACjD,KAAA,CAAKkD,KAAK,CAAC,CAACsC,cAAc,CAAC,CAAC;;MAEvE,IAAM1F,KAAK,GAAGE,KAAA,CAAKE,QAAQ,CAAC,CAAC;;MAE7B,IAAMuF,OAA6B,GAAG;QACpCC,KAAK,EAAE1F,KAAA,CAAKwC,qBAAqB,CAAC1C,KAAK,CAAC4F,KAAK,CAAC;QAC9C3E,OAAO,EAAEf,KAAA,CAAKwC,qBAAqB,CAAC1C,KAAK,CAACiB,OAAO,CAAC;QAClDC,OAAO,EAAEhB,KAAA,CAAKwC,qBAAqB,CAAC1C,KAAK,CAACkB,OAAO,CAAC;QAClD2E,SAAS,EAAE7F,KAAK,CAAC6F,SAAS;QAC1BC,SAAS,EAAE9F,KAAK,CAAC8F,SAAS;QAC1BC,KAAK,EAAE/G,aAAa,CAACgH,YAAY,CAAC,CAAC;QACnCC,WAAW,EAAE/F,KAAA,CAAKgG;MACpB,CAAC;;MAED;QACE1I,MAAA,CAAAmD,OAAA,CAAAwF,aAAA,CAAClI,cAAA,CAAAmI,aAAa,MAAAC,SAAA,CAAA1F,OAAA,IAAC2F,WAAW,EAAEpG,KAAA,CAAKqG,WAAY,IAAKvG,KAAK;QACrDxC,MAAA,CAAAmD,OAAA,CAAAwF,aAAA,UAAKK,GAAG,EAAEtG,KAAA,CAAKuG,OAAQ,EAAC,YAAUpH,gBAAgB,CAACE,IAAK,EAACmH,SAAS,EAAExG,KAAA,CAAKyG,EAAE,CAACzG,KAAA,CAAK0G,MAAM,CAACrH,IAAI,CAACW,KAAA,CAAKkD,KAAK,CAAC,CAAE;QACxG5F,MAAA,CAAAmD,OAAA,CAAAwF,aAAA,UAAKU,KAAK,EAAErB,YAAa,EAACkB,SAAS,EAAExG,KAAA,CAAK0G,MAAM,CAACE,OAAO,CAAC,CAAE;QACzDtJ,MAAA,CAAAmD,OAAA,CAAAwF,aAAA,CAAClH,gBAAA,CAAA8H,eAAe,CAACC,QAAQ,IAACpB,KAAK,EAAED,OAAQ;QACtCL,eAAe,CAAC2B,GAAG,CAAC/G,KAAA,CAAKgH,WAAW,EAAAhH,KAAM;QACnB;QACvB,CAAC;QACN1C,MAAA,CAAAmD,OAAA,CAAAwF,aAAA,UAAKO,SAAS,EAAExG,KAAA,CAAK0G,MAAM,CAACO,SAAS,CAACjH,KAAA,CAAKkD,KAAK,CAAE,EAAE;QACjD;QACQ,CAAC;;IAEpB,CAAC,CAAAlD,KAAA;;IAEOuG,OAAO,GAAG,UAACW,OAA2B,EAAK;MACjD,IAAI,CAAClH,KAAA,CAAKX,IAAI,IAAI6H,OAAO,EAAE;QACzB,IAAIC,gBAAQ,EAAE;UACZD,OAAO,CAACE,gBAAgB,CAAC,YAAY,EAAEpH,KAAA,CAAKqH,gBAAgB,CAAC;UAC7DH,OAAO,CAACE,gBAAgB,CAAC,WAAW,EAAEpH,KAAA,CAAKsH,wBAAwB,CAAC;QACtE,CAAC,MAAM;UACLJ,OAAO,CAACE,gBAAgB,CAAC,OAAO,EAAEpH,KAAA,CAAKuH,WAAW,EAAE,EAAEC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACzE;MACF;MACA,IAAIxH,KAAA,CAAKX,IAAI,IAAI,CAAC6H,OAAO,EAAE;QACzB,IAAIC,gBAAQ,EAAE;UACZnH,KAAA,CAAKX,IAAI,CAACoI,mBAAmB,CAAC,YAAY,EAAEzH,KAAA,CAAKqH,gBAAgB,CAAC;UAClErH,KAAA,CAAKX,IAAI,CAACoI,mBAAmB,CAAC,WAAW,EAAEzH,KAAA,CAAKsH,wBAAwB,CAAC;QAC3E,CAAC,MAAM;UACLtH,KAAA,CAAKX,IAAI,CAACoI,mBAAmB,CAAC,OAAO,EAAEzH,KAAA,CAAKuH,WAAW,CAAC;QAC1D;MACF;MACAvH,KAAA,CAAKX,IAAI,GAAG6H,OAAO;IACrB,CAAC,CAAAlH,KAAA;;;;;;;;;;;;;IAaOgG,eAAe,GAAG,UAAC0B,SAA4B,EAAK;MAC1D,IAAMhC,KAAK,GAAGiC,gDAAuB,CAACC,iBAAiB,CAACF,SAAS,CAAC;;MAElE1H,KAAA,CAAKF,KAAK,CAAC+H,aAAa,YAAxB7H,KAAA,CAAKF,KAAK,CAAC+H,aAAa,CAAGnC,KAAK,CAAC;IACnC,CAAC,CAAA1F,KAAA;;;;;;;;;;;;;;;;;;;;;;;;IAwBO8H,qBAAqB,GAAG,UAAChH,WAAmB,EAAED,IAAY,EAAK;MACrE,IAAMvB,KAAK,GAAGR,aAAa,CAAC6D,qBAAqB,CAAC7B,WAAW,CAAC;MAC9Dd,KAAA,CAAKM,aAAa,CAAChB,KAAK,EAAEuB,IAAI,CAAC;IACjC,CAAC,CAAAb,KAAA;;IAEO+H,iBAAiB,GAAG,UAACC,MAAc,EAAK;MAC9ChI,KAAA,CAAKoD,QAAQ,CAAC,UAAA6E,KAAA,EAAgC,KAA7BlF,MAAM,GAAAkF,KAAA,CAANlF,MAAM,CAAEO,cAAc,GAAA2E,KAAA,CAAd3E,cAAc;QACrC,IAAMe,cAAc,GAAGvF,aAAa,CAACoJ,uBAAuB;UAC1DnF,MAAM;UACNO,cAAc;UACd0E,MAAM;UACNhI,KAAA,CAAKkD;QACP,CAAC,CAACI,cAAc;QAChB,OAAO,EAAE6E,YAAY,EAAE9D,cAAc,CAAC,CAAC;MACzC,CAAC,EAAErE,KAAA,CAAKoI,cAAc,CAAC;;MAEvBpI,KAAA,CAAKkC,SAAS,CAACmG,OAAO,CAACL,MAAM,EAAE,UAACM,MAAM,EAAK;QACzC;QACAtI,KAAA,CAAKoD,QAAQ,CAACtE,aAAa,CAACyJ,UAAU,CAACD,MAAM,EAAEtI,KAAA,CAAKkD,KAAK,CAAQ,CAAC;MACpE,CAAC,CAAC;;MAEFzE,oBAAoB,CAAC+J,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAAxI,KAAA;;IAEOqH,gBAAgB,GAAG,UAACoB,KAAY,EAAK;MAC3C,IAAI,CAAC,IAAAC,0BAAY,EAACD,KAAK,EAAEzI,KAAA,CAAK2I,YAAY,CAACC,UAAU,CAAC,EAAE;QACtD;MACF;;MAEA,IAAMC,OAAO,GAAGJ,KAAK,CAACK,aAAa,CAAC,CAAC,CAAC,CAACD,OAAO;MAC9C7I,KAAA,CAAKK,WAAW,GAAGwI,OAAO;IAC5B,CAAC,CAAA7I,KAAA;;IAEO+I,eAAe,GAAG,UAACN,KAAY,EAAK;MAC1C,IAAI,CAAC,IAAAC,0BAAY,EAACD,KAAK,EAAEzI,KAAA,CAAK2I,YAAY,CAACC,UAAU,CAAC,EAAE;QACtD;MACF;;MAEA,IAAQC,OAAO,GAAKJ,KAAK,CAACO,cAAc,CAAC,CAAC,CAAC,CAAnCH,OAAO;;MAEf,IAAMP,MAAM,GAAG,CAACtI,KAAA,CAAKK,WAAW,IAAI,CAAC,IAAIwI,OAAO;MAChD7I,KAAA,CAAKK,WAAW,GAAGwI,OAAO;;MAE1B7I,KAAA,CAAK+H,iBAAiB,CAACO,MAAM,CAAC;IAChC,CAAC,CAAAtI,KAAA;;IAEOsH,wBAAwB,GAAG,IAAA2B,eAAQ,EAACjJ,KAAA,CAAK+I,eAAe,EAAE,EAAE,CAAC,CAAA/I,KAAA;;IAE7DuH,WAAW,GAAG,UAACkB,KAAY,EAAK;MACtC,IAAI,CAAC,IAAAC,0BAAY,EAACD,KAAK,EAAEzI,KAAA,CAAK2I,YAAY,CAACO,UAAU,CAAC,EAAE;QACtD;MACF;MACAT,KAAK,CAACU,cAAc,CAAC,CAAC;MACtB,IAAAC,eAAA,GAAmB,IAAAC,wBAAc,EAACZ,KAAK,CAAC,CAAhCT,MAAM,GAAAoB,eAAA,CAANpB,MAAM;;MAEdhI,KAAA,CAAK+H,iBAAiB,CAACC,MAAM,CAAC;IAChC,CAAC,CAAAhI,KAAA;;IAEOoI,cAAc,GAAG,YAAM;MAC7B,IAAIpI,KAAA,CAAKsJ,eAAe,EAAE;QACxBC,YAAY,CAACvJ,KAAA,CAAKsJ,eAAe,CAAC;MACpC;MACAtJ,KAAA,CAAKsJ,eAAe,GAAG/G,UAAU,CAACvC,KAAA,CAAKwJ,mBAAmB,EAAE,GAAG,CAAC;IAClE,CAAC,CAAAxJ,KAAA;IACOwJ,mBAAmB,GAAG,YAAM;MAClC,IAAAC,WAAA,GAA0CzJ,KAAA,CAAK8C,KAAK,CAA5CqF,YAAY,GAAAsB,WAAA,CAAZtB,YAAY,CAAEuB,eAAe,GAAAD,WAAA,CAAfC,eAAe;;MAErC,IAAMC,eAAe,GAAG,IAAA1G,mBAAW,EAACjD,KAAA,CAAKkD,KAAK,CAAC,CAAC0G,yBAAyB,GAAG,IAAA3G,mBAAW,EAACjD,KAAA,CAAKkD,KAAK,CAAC,CAAC2G,UAAU;;MAE9G,IAAI1B,YAAY,GAAGwB,eAAe,EAAE;QAClC,IAAItF,cAAc,GAAG,CAAC;QACtB,IAAIqF,eAAe,GAAG,CAAC,EAAE;UACvBrF,cAAc,GAAGsF,eAAe;QAClC;;QAEA3J,KAAA,CAAKoD,QAAQ,CAAC,EAAE+E,YAAY,EAAE9D,cAAc,CAAC,CAAC,EAAE,YAAM;UACpD,IAAMyF,MAAM,GAAG3B,YAAY,GAAG9D,cAAc;UAC5CrE,KAAA,CAAKkC,SAAS,CAACmG,OAAO,CAACyB,MAAM,EAAE,UAACxB,MAAM,EAAK;YACzC;YACAtI,KAAA,CAAKoD,QAAQ,CAACtE,aAAa,CAACyJ,UAAU,CAACD,MAAM,EAAEtI,KAAA,CAAKkD,KAAK,CAAQ,CAAC;UACpE,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ;IACF,CAAC,CAAAlD,KAAA;;IAEOgD,QAAQ,GAAG,UAAC+G,GAAW,EAAEzI,KAAkB,EAAK;MACtD,IAAM0I,aAAa,GAAGD,GAAG,GAAG/J,KAAA,CAAK8C,KAAK,CAACQ,cAAc;MACrD,OAAOtD,KAAA,CAAKiK,YAAY,CAACD,aAAa,EAAE1I,KAAK,CAAC;IAChD,CAAC,CAAAtB,KAAA;;IAEOiK,YAAY,GAAG,UAACD,aAAqB,EAAE1I,KAAkB,EAAK;MACpE,OAAOtB,KAAA,CAAKkC,SAAS,CAACmG,OAAO;QAC3B2B,aAAa;QACb,UAAC1B,MAAM,EAAK;UACVtI,KAAA,CAAKoD,QAAQ,CAAC,UAAA8G,KAAA,OAAG5G,cAAc,GAAA4G,KAAA,CAAd5G,cAAc,QAAQ;cACrCA,cAAc,EAAEA,cAAc,GAAGgF;YACnC,CAAC,EAAC,CAAC;QACL,CAAC;QACDhH;MACF,CAAC;IACH,CAAC,CAhYC,IAAA6I,cAAA,GAAoCnK,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAA3Ca,QAAO,GAAAoJ,cAAA,CAAPpJ,OAAO,CAAEC,QAAO,GAAAmJ,cAAA,CAAPnJ,OAAO,CAAE0E,MAAK,GAAAyE,cAAA,CAALzE,KAAK,CAE/B,IAAM0E,YAAY,GAAGpK,KAAA,CAAKwC,qBAAqB,CAACzB,QAAO,CAAC,CACxD,IAAMsJ,YAAY,GAAGrK,KAAA,CAAKwC,qBAAqB,CAACxB,QAAO,CAAC,CACxD,IAAM0G,UAAS,GAAG1H,KAAA,CAAKwC,qBAAqB,CAACkD,MAAK,CAAC,CAEnD,IAAMG,KAAK,GAAG/G,aAAa,CAACgH,YAAY,CAAC,CAAC,CAC1C,IAAMwE,WAAW,GAAGxL,aAAa,CAACyL,cAAc,CAAC,EAC/C1E,KAAK,EAALA,KAAK,EACL2E,IAAI,EAAE9C,UAAS,EACf3G,OAAO,EAAEqJ,YAAY,EACrBpJ,OAAO,EAAEqJ,YAAY,CACvB,CAAC,CAAC,CAEF,IAAMI,YAAY,GAAGzK,KAAA,CAAKF,KAAK,CAAC2K,YAAY,GACxC3L,aAAa,CAACmD,sBAAsB,CAACjC,KAAA,CAAKF,KAAK,CAAC2K,YAAY,CAAC,GAC7DH,WAAW,CAAChL,KAAK,CACrB,IAAMoL,WAAW,IAAA3K,qBAAA,GAAGC,KAAA,CAAKF,KAAK,CAAC4K,WAAW,YAAA3K,qBAAA,GAAIuK,WAAW,CAACzJ,IAAI,CAE9Db,KAAA,CAAK8C,KAAK,GAAG,EACXQ,cAAc,EAAE,CAAC,EACjBP,MAAM,EAAEjE,aAAa,CAACuE,SAAS,CAACoH,YAAY,EAAEC,WAAW,CAAC,EAC1DhB,eAAe,EAAE,CAAC,EAClBvB,YAAY,EAAE,CAAC,CACjB,CAAC,CAAC,OAAAnI,KAAA,CACJ,CAAC,IAAA2K,eAAA,CAAAlK,OAAA,EAAAf,QAAA,EAAAG,gBAAA,EAAAH,QAAA,CApDckL,UAAU,GAAzB,SAAAA,WAA0BJ,IAAY,EAAElL,KAAa,EAAEuB,IAAY,EAAE,CACnE,OAAO,IAAIgK,0BAAY,CAAC,CAAC,CAACC,aAAa,CAAC,EAAEN,IAAI,EAAJA,IAAI,EAAElL,KAAK,EAALA,KAAK,EAAEuB,IAAI,EAAJA,IAAI,CAAC,CAAC,CAAC,CAACkK,QAAQ,CAAC,EAAEC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAC5F,CAAC,KAAAC,MAAA,GAAAvL,QAAA,CAAAwL,SAAA,CAAAD,MAAA,CAoDME,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAkC,EAAEC,SAAkC,EAAQ,CACtG,IAAAC,WAAA,GAAiC,IAAI,CAACxL,KAAK,CAAnC4F,KAAK,GAAA4F,WAAA,CAAL5F,KAAK,CAAEV,aAAa,GAAAsG,WAAA,CAAbtG,aAAa,CAC5B,IAAIU,KAAK,IAAI,CAAC,IAAA6F,qBAAY,EAAC7F,KAAK,EAAE0F,SAAS,CAAC1F,KAAK,CAAC,EAAE,CAClD,IAAM8E,IAAI,GAAG,IAAIK,0BAAY,CAAC,CAAC,CAACW,UAAU,CAAC9F,KAAK,CAAC,CAAC+F,uBAAuB,CAAC,CAAC,CAC3E,IAAI,CAACnL,aAAa,CAACkK,IAAI,CAAClL,KAAK,EAAEkL,IAAI,CAAC3J,IAAI,CAAC,CAC3C,CAEA,IAAImE,aAAa,EAAE,CACjB,IAAM0G,mBAAmB,GAAG,IAAI,CAACrG,gBAAgB,CAAC,IAAI,CAACvC,KAAK,CAAC,CAACiE,GAAG,CAAC,IAAI,CAAC9B,YAAY,CAAC,CACpF,IAAM0G,2BAA2B,GAAG,IAAI,CAACtG,gBAAgB,CAACgG,SAAS,CAAC,CAACtE,GAAG,CAAC,IAAI,CAAC9B,YAAY,CAAC,CAE3F,IAAIyG,mBAAmB,CAAC9H,MAAM,GAAG,CAAC,IAAI+H,2BAA2B,CAAC/H,MAAM,GAAG,CAAC,EAAE,CAC5E,IAAMzC,YAAY,GAAGuK,mBAAmB,CAAC,CAAC,CAAC,CAACpM,KAAK,CACjD,IAAMsM,gBAAgB,GAAGD,2BAA2B,CAAC,CAAC,CAAC,CAACrM,KAAK,CAE7D,IAAI6B,YAAY,KAAKyK,gBAAgB,EAAE,CACrC,IAAI,CAAC/G,iBAAiB,CAAC6G,mBAAmB,CAAC,CAC7C,CACF,CACF,CACF,CAAC,CAAAT,MAAA,CAEMY,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,IAAI,CAAC3J,SAAS,CAACC,UAAU,CAAC,CAAC,EAAE,CAC/B,IAAI,CAACD,SAAS,CAAC4J,MAAM,CAAC,CAAC,CACzB,CACF,CAAC,CAAAb,MAAA,CAEMc,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,IAAI,CAACtF,MAAM,GAAG,IAAAuF,oBAAS,EAAC,IAAI,CAACC,OAAO,CAAC,CACrC,IAAI,CAAChK,SAAS,GAAG,IAAAA,oBAAS,EAAC,IAAI,CAACyG,YAAY,CAAC,CAE7C,oBACErL,MAAA,CAAAmD,OAAA,CAAAwF,aAAA,CAAChI,aAAA,CAAAkO,YAAY,CAACC,QAAQ,QACnB,UAAClJ,KAAK,EAAK,CACV8I,MAAI,CAAC9I,KAAK,GAAGA,KAAK,CAClB,OAAO8I,MAAI,CAAC7G,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CAAC,CAAA8F,MAAA,CAkLOjE,WAAW,GAAnB,SAAAA,YAAAqF,KAAA,EAA4D,KAAvCC,GAAG,GAAAD,KAAA,IAAE/M,KAAK,GAAA+M,KAAA,IAC7B,oBACE/O,MAAA,CAAAmD,OAAA,CAAAwF,aAAA,CAACtH,MAAA,CAAA4N,KAAK,IACJC,GAAG,EAAElN,KAAK,CAACA,KAAK,GAAG,GAAG,GAAGA,KAAK,CAACuB,IAAK,EACpCyL,GAAG,EAAEA,GAAI,EACThN,KAAK,EAAEA,KAAM,EACbmN,iBAAiB,EAAE,IAAI,CAAC3E,qBAAsB,EAC/C,CAAC,CAEN,CAAC,CAAAmD,MAAA,CAQOzI,qBAAqB,GAA7B,SAAAA,sBAA8BgI,IAAsB,EAAE,CACpD,OAAO,IAAIK,0BAAY,CAAC,CAAC,CAACW,UAAU,CAAChB,IAAI,CAAC,CAACkC,cAAc,CAAC,CAAC,CAC7D,CAAC,CAAAzB,MAAA,CAEO0B,iBAAiB,GAAzB,SAAAA,kBAA0B5J,MAAwB,EAAEO,cAAsB,EAAE,CAC1E,IAAMsJ,SAAS,GAAG,CAACtJ,cAAc,GAAGP,MAAM,CAAC,CAAC,CAAC,CAACuB,SAAS,CAAC,IAAI,CAACpB,KAAK,CAAC,CAAC,CACpE,KAAK,IAAI2J,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG9J,MAAM,CAACa,MAAM,EAAEiJ,CAAC,EAAE,EAAE,CACtC,IAAMC,QAAQ,GAAGF,SAAS,CAACC,CAAC,GAAG,CAAC,CAAC,GAAG9J,MAAM,CAAC8J,CAAC,GAAG,CAAC,CAAC,CAACvI,SAAS,CAAC,IAAI,CAACpB,KAAK,CAAC,CACvE0J,SAAS,CAACG,IAAI,CAACD,QAAQ,CAAC,CAC1B,CACA,OAAOF,SAAS,CAClB,CAAC,CAAA3B,MAAA,CAEO5F,gBAAgB,GAAxB,SAAAA,iBAAyBvC,KAA8B,EAAmC,KAAAkK,MAAA,QACxF,IAAQjK,MAAM,GAAqBD,KAAK,CAAhCC,MAAM,CAAEO,cAAc,GAAKR,KAAK,CAAxBQ,cAAc,CAC9B,IAAMsJ,SAAS,GAAG,IAAI,CAACD,iBAAiB,CAAC5J,MAAM,EAAEO,cAAc,CAAC,CAEhE,OAAOP,MAAM,CACVgE,GAAG,CAA2B,UAACkG,CAAC,EAAEJ,CAAC,UAAK,CAACD,SAAS,CAACC,CAAC,CAAC,EAAEI,CAAC,CAAC,GAAC,CAC1DC,MAAM,CAAC,UAAAC,KAAA,OAAEb,GAAG,GAAAa,KAAA,IAAE7N,KAAK,GAAA6N,KAAA,WAAMrO,aAAa,CAACsO,cAAc,CAACd,GAAG,EAAEhN,KAAK,EAAE0N,MAAI,CAAC9J,KAAK,CAAC,GAAC,CACnF,CAAC,QAAAxD,QAAA,GA3T2B2N,cAAK,CAACC,SAAS,GAAApO,SAAA,CAC7BqO,mBAAmB,GAAG,UAAU,EAAArO,SAAA,CAChCsO,WAAW,GAAG,UAAU,EAAAtO,SAAA,CAExBuO,GAAG,GAAGC,wBAAW,EAAAxO,SAAA,CAMjBkB,YAAY,GAAiB,EACzCW,OAAO,EAAErB,SAAQ,CAACkL,UAAU,CAAC+C,mBAAQ,EAAEC,oBAAS,EAAEC,mBAAQ,CAAC,EAC3D7M,OAAO,EAAEtB,SAAQ,CAACkL,UAAU,CAACkD,mBAAQ,EAAEC,oBAAS,EAAEC,mBAAQ,CAAC,EAC3DrI,SAAS,EAAE,SAAAA,UAACsI,IAAY,EAAEC,SAAkB,UAAKA,SAAS,GAC5D,CAAC,EAAAhP,SAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_normalizeWheel2","_lodash","_shallowequal","_isInstanceOf","_InternalDate","_rootNode","_CommonWrapper","_constants","_ThemeContext","_animation","_client","_createPropsGetter","_InternalDateTransformer","_renderEnvironment","_config","_MonthViewModel","CalendarScrollEvents","_interopRequireWildcard","_Month","_Calendar2","_CalendarDateShape","CalendarUtils","_CalendarContext","_CalendarDay","_class","_Calendar","CalendarDataTids","exports","root","month","dayCell","headerMonth","headerYear","Calendar","withRenderEnvironment","rootNode","_React$Component","props","_this$props$initialYe","_this","call","getProps","createPropsGetter","defaultProps","touchStartY","scrollToMonth","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","year","monthNative","minDate","maxDate","minMonth","maxMonth","currentMonth","diffInMonths","maxMonthsToAdd","onEnd","isYearChanges","monthsToPrependCount","monthsToPrepend","monthsToAppendCount","monthsToAppend","wrap","_callee$","_context","prev","next","getMonthInNativeFormat","animation","inProgress","finish","Promise","r","setTimeout","getDateInNativeFormat","isGreater","create","getMonthInHumanFormat","abrupt","isLess","state","months","scrollTo","themeConfig","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","setState","getMonths","scrollPosition","Math","abs","min","Array","from","length","_","index","MonthViewModel","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","slice","stop","_x","_x2","apply","arguments","handleMonthChange","visibleMonths","changeInfo","onMonthChange","getViewModel","item","renderMain","monthsForRender","getVisibleMonths","wrapperStyle","height","WRAPPER_HEIGHT","context","value","isHoliday","renderDay","today","getTodayDate","onDateClick","handleDateClick","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","ref","refRoot","className","cx","styles","style","wrapper","CalendarContext","Provider","map","renderMonth","separator","element","isMobile","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","dateShape","InternalDateTransformer","dateToHumanString","onValueChange","handleMonthYearChange","executeAnimations","pixelY","_ref2","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","isInstanceOf","globalObject","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","throttle","WheelEvent","preventDefault","_normalizeWheel","normalizeWheel","wheelEndTimeout","clearTimeout","scrollToNearestWeek","_this$state","scrollDirection","thresholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_HEIGHT","amount","pos","scrollAmmount","scrollAmount","_ref3","_this$getProps","minDateShape","maxDateShape","initialDate","getInitialDate","date","initialMonth","initialYear","_inheritsLoose2","formatDate","InternalDate","setComponents","toString","withPad","_proto","prototype","componentDidUpdate","prevProps","prevState","_this$props","shallowEqual","parseValue","getComponentsLikeNumber","visibleMonthsModels","prevFirstVisibleMonthModels","prevCurrentMonth","componentWillUnmount","cancel","render","_this2","getStyles","emotion","ThemeContext","Consumer","_ref4","top","Month","key","onMonthYearChange","toNativeFormat","getMonthPositions","positions","i","position","push","_this3","x","filter","_ref5","isMonthVisible","React","Component","__KONTUR_REACT_UI__","displayName","Day","CalendarDay","MIN_DATE","MIN_MONTH","MIN_YEAR","MAX_DATE","MAX_MONTH","MAX_YEAR","_day","isWeekend"],"sources":["Calendar.tsx"],"sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\nimport shallowEqual from 'shallowequal';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject, SafeTimer } from '../../lib/globalObject';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport type { Nullable, Range } from '../../typings/utility-types';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { getStyles } from './Calendar.styles';\nimport type { CalendarDateShape } from './CalendarDateShape';\nimport { create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\nimport type { CalendarContextProps } from './CalendarContext';\nimport { CalendarContext } from './CalendarContext';\nimport type { CalendarDayProps } from './CalendarDay';\nimport { CalendarDay } from './CalendarDay';\n\nexport interface CalendarProps extends CommonProps {\n /** Задает функцию, которая вызывается при изменении value.\n * @param {string} date - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (date: string) => void;\n\n /** Задает текущую дату в формате `dd.mm.yyyy`. */\n value: Nullable<string>;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy`. */\n maxDate?: string;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает начальную дату периода в формате `dd.mm.yyyy`. */\n periodStartDate?: string;\n\n /** Задает конечную дату периода в формате `dd.mm.yyyy`. */\n periodEndDate?: string;\n\n /** Задает функцию для определения праздничных дней.\n * @default (_day, isWeekend) => isWeekend.\n * @param {string} day - строка в формате `dd.mm.yyyy`.\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье).\n * @returns {boolean} `true` для выходного или `false` для рабочего дня. */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n\n /** Задает начальный месяц. */\n initialMonth?: Range<1, 13>;\n\n /** Задает начальный год. */\n initialYear?: number;\n\n /** Задает метод отрисовки дат в календаре.\n * @default (props: CalendarDayProps) => <CalendarDay {...props} />\n * @param {CalendarDayProps} props - параметры дня.\n * @returns {ReactElement} элемент, который отрисовывает контент числа месяца. */\n renderDay?: (props: CalendarDayProps) => React.ReactElement<any>;\n\n /** Задает функцию, которая вызывается при каждом изменении месяца.\n * @param {CalendarMonthChangeInfo} changeInfo - информация о изменении отображаемого месяца, где\n * `month: number` - номер текущего отображаемого месяца от 1 до 12,\n * `year: number` - отображаемый год. */\n onMonthChange?: (changeInfo: CalendarMonthChangeInfo) => void;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n scrollDirection: number;\n scrollTarget: number;\n}\n\nexport interface CalendarMonthChangeInfo {\n month: number;\n year: number;\n}\n\nexport const CalendarDataTids = {\n root: 'Calendar__root',\n month: 'MonthView__month',\n dayCell: 'DayCellView__root',\n headerMonth: 'MonthView__headerMonth',\n headerYear: 'MonthView__headerYear',\n} as const;\n\ntype DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' | 'isHoliday'>>;\n\n/**\n * Компонент календаря `Calendar` из DatePicker'а помогает выбирать дату с помощью мыши.\n */\n@withRenderEnvironment\n@rootNode\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n public static displayName = 'Calendar';\n\n public static Day = CalendarDay;\n\n private static formatDate(date: number, month: number, year: number) {\n return new InternalDate().setComponents({ date, month, year }).toString({ withPad: true });\n }\n\n public static defaultProps: DefaultProps = {\n minDate: Calendar.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),\n maxDate: Calendar.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),\n isHoliday: (_day: string, isWeekend: boolean) => isWeekend,\n };\n\n private getProps = createPropsGetter(Calendar.defaultProps);\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private wheelEndTimeout: SafeTimer;\n private root: Nullable<HTMLElement>;\n private animation!: ReturnType<typeof animation>;\n private touchStartY: Nullable<number> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const { minDate, maxDate, value } = this.getProps();\n\n const minDateShape = this.getDateInNativeFormat(minDate);\n const maxDateShape = this.getDateInNativeFormat(maxDate);\n const dateShape = this.getDateInNativeFormat(value);\n\n const today = CalendarUtils.getTodayDate();\n const initialDate = CalendarUtils.getInitialDate({\n today,\n date: dateShape,\n minDate: minDateShape,\n maxDate: maxDateShape,\n });\n\n const initialMonth = this.props.initialMonth\n ? CalendarUtils.getMonthInNativeFormat(this.props.initialMonth)\n : initialDate.month;\n const initialYear = this.props.initialYear ?? initialDate.year;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n scrollDirection: 1,\n scrollTarget: 0,\n };\n }\n\n public componentDidUpdate(prevProps: Readonly<CalendarProps>, prevState: Readonly<CalendarState>): void {\n const { value, onMonthChange } = this.props;\n if (value && !shallowEqual(value, prevProps.value)) {\n const date = new InternalDate().parseValue(value).getComponentsLikeNumber();\n this.scrollToMonth(date.month, date.year);\n }\n\n if (onMonthChange) {\n const visibleMonthsModels = this.getVisibleMonths(this.state).map(this.getViewModel);\n const prevFirstVisibleMonthModels = this.getVisibleMonths(prevState).map(this.getViewModel);\n\n if (visibleMonthsModels.length > 0 && prevFirstVisibleMonthModels.length > 0) {\n const currentMonth = visibleMonthsModels[0].month;\n const prevCurrentMonth = prevFirstVisibleMonthModels[0].month;\n\n if (currentMonth !== prevCurrentMonth) {\n this.handleMonthChange(visibleMonthsModels);\n }\n }\n }\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\n }\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n this.animation = animation(this.globalObject);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Прокручивает календарь до переданной даты\n * @public\n */\n public scrollToMonth = async (month: number, year: number) => {\n const monthNative = CalendarUtils.getMonthInNativeFormat(month);\n\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => setTimeout(r, 0));\n }\n\n const minDate = this.getDateInNativeFormat(this.getProps().minDate);\n const maxDate = this.getDateInNativeFormat(this.getProps().maxDate);\n\n if (minDate && isGreater(minDate, create(32, monthNative, year))) {\n const minMonth = CalendarUtils.getMonthInHumanFormat(minDate.month);\n this.scrollToMonth(minMonth, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, monthNative, year))) {\n const maxMonth = CalendarUtils.getMonthInHumanFormat(maxDate.month);\n this.scrollToMonth(maxMonth, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - monthNative - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () => {\n this.setState({\n months: CalendarUtils.getMonths(monthNative, year),\n scrollPosition: 0,\n });\n };\n\n const isYearChanges = (state: CalendarState) => {\n return (\n state.months[1].year !== year &&\n // if diff in months is 2 or less,\n // either year is not changing either months already\n // have right isFirstInYear/isLastInYear flags\n Math.abs(diffInMonths) > 2\n );\n };\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index, year);\n });\n this.setState(\n (state) => {\n const yearChanges = isYearChanges(state);\n if (yearChanges) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[0].isFirstInYear = true;\n if (monthsToPrepend.length) {\n // Mutating item here is safe as it was just created\n monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;\n }\n }\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index - monthsToAppendCount + 2, year);\n });\n this.setState(\n (state) => {\n if (isYearChanges(state)) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[state.months.length - 1].isLastInYear = true;\n // Mutating item here is safe as it was just created\n if (monthsToAppend[0]) {\n monthsToAppend[0].isFirstInYear = true;\n }\n }\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private handleMonthChange = (visibleMonths: MonthViewModel[]): void => {\n const currentMonth = visibleMonths[0];\n const changeInfo = {\n month: CalendarUtils.getMonthInHumanFormat(currentMonth.month),\n year: currentMonth.year,\n };\n\n this.props.onMonthChange?.(changeInfo);\n };\n\n private getViewModel = (item: [number, MonthViewModel]): MonthViewModel => item[1];\n\n private renderMain = () => {\n const monthsForRender = this.getVisibleMonths(this.state);\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n\n const props = this.getProps();\n\n const context: CalendarContextProps = {\n value: this.getDateInNativeFormat(props.value),\n minDate: this.getDateInNativeFormat(props.minDate),\n maxDate: this.getDateInNativeFormat(props.maxDate),\n isHoliday: props.isHoliday,\n renderDay: props.renderDay,\n today: CalendarUtils.getTodayDate(),\n onDateClick: this.handleDateClick,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...props}>\n <div ref={this.refRoot} data-tid={CalendarDataTids.root} className={this.cx(this.styles.root(this.theme))}>\n <div style={wrapperStyle} className={this.styles.wrapper()}>\n <CalendarContext.Provider value={context}>\n {monthsForRender.map(this.renderMonth, this)}\n </CalendarContext.Provider>\n </div>\n <div className={this.styles.separator(this.theme)} />\n </div>\n </CommonWrapper>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n onMonthYearChange={this.handleMonthYearChange}\n />\n );\n }\n\n private handleDateClick = (dateShape: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToHumanString(dateShape);\n\n this.props.onValueChange?.(value);\n };\n\n private getDateInNativeFormat(date: Nullable<string>) {\n return new InternalDate().parseValue(date).toNativeFormat();\n }\n\n private getMonthPositions(months: MonthViewModel[], scrollPosition: number) {\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private getVisibleMonths(state: Readonly<CalendarState>): Array<[number, MonthViewModel]> {\n const { months, scrollPosition } = state;\n const positions = this.getMonthPositions(months, scrollPosition);\n\n return months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme));\n }\n\n private handleMonthYearChange = (monthNative: number, year: number) => {\n const month = CalendarUtils.getMonthInHumanFormat(monthNative);\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, this.globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const thresholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_HEIGHT;\n\n if (scrollTarget < thresholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = thresholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) => {\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n }));\n },\n onEnd,\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { type JSX } from 'react';
2
2
  import type { InternalDateFragment } from '../../lib/date/types';
3
3
  import { InternalDateComponentType } from '../../lib/date/types';
4
4
  interface DateFragmentViewProps {
@@ -16,7 +16,7 @@ export declare class DateFragmentsView extends React.Component<DateFragmentViewP
16
16
  private rootNode;
17
17
  isFragment: (el: HTMLElement | EventTarget) => boolean;
18
18
  getRootNode: () => HTMLSpanElement | null;
19
- render(): React.JSX.Element;
19
+ render(): JSX.Element;
20
20
  private renderMain;
21
21
  private renderSeparator;
22
22
  private renderDateComponent;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_MaskCharLowLine","_InternalDateValidator","_types","_ThemeContext","_renderEnvironment","_DateFragmentsView2","_class","DateFragmentsView","exports","withRenderEnvironment","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","rootNode","isFragment","el","fragments","from","querySelectorAll","some","fragment","contains","getRootNode","rootRef","_inheritsLoose2","default","_proto","prototype","render","_this2","styles","getStyles","emotion","createElement","ThemeContext","Consumer","theme","renderMain","_this$cx","_this3","ref","className","cx","root","selected","props","map","index","type","InternalDateComponentType","Separator","renderSeparator","renderDateComponent","_this$cx2","separatorClassName","mask","delimiterFilled","value","key","_this4","_this$props","inputMode","onSelectDateComponent","valueWithPad","getValueMask","valueMask","lengthMask","InternalDateValidator","testParseToNumber","Math","max","toString","handleMouseUp","e","_this4$globalObject$d","globalObject","document","activeElement","currentTarget","onMouseUp","fill","_","i","MaskCharLowLine","React","Component"],"sources":["DateFragmentsView.tsx"],"sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { MaskCharLowLine } from '../../internal/MaskCharLowLine';\nimport { InternalDateValidator } from '../../lib/date/InternalDateValidator';\nimport type { InternalDateFragment } from '../../lib/date/types';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './DateFragmentsView.styles';\n\ninterface DateFragmentViewProps {\n selected: InternalDateComponentType | null;\n fragments: InternalDateFragment[];\n inputMode: boolean;\n onSelectDateComponent: (type: InternalDateComponentType, e: React.MouseEvent<HTMLSpanElement>) => void;\n}\n\n@withRenderEnvironment\nexport class DateFragmentsView extends React.Component<DateFragmentViewProps> {\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private rootNode: HTMLSpanElement | null = null;\n\n public isFragment = (el: HTMLElement | EventTarget): boolean => {\n if (this.rootNode) {\n // NOTE: NodeList doesn't support method 'forEach' in IE11\n const fragments: HTMLSpanElement[] = Array.from(this.rootNode.querySelectorAll('[data-fragment]'));\n return fragments.some((fragment) => fragment === el || fragment.contains(el as HTMLSpanElement));\n }\n return false;\n };\n\n public getRootNode = () => this.rootNode;\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n return (\n <span\n ref={this.rootRef}\n className={this.cx({\n [this.styles.root()]: true,\n [this.styles.selected(this.theme)]: true,\n })}\n >\n {this.props.fragments.map((fragment, index) =>\n fragment.type === InternalDateComponentType.Separator\n ? this.renderSeparator(fragment, index)\n : this.renderDateComponent(fragment, index),\n )}\n </span>\n );\n }\n\n private renderSeparator(fragment: InternalDateFragment, index: number): JSX.Element {\n const separatorClassName = this.cx({\n [this.styles.mask(this.theme)]: true,\n [this.styles.delimiterFilled()]: this.props.fragments[index + 1].value !== null,\n });\n\n return (\n <span key={index} className={separatorClassName}>\n {fragment.value}\n </span>\n );\n }\n\n private renderDateComponent(fragment: InternalDateFragment, index: number): JSX.Element {\n const { inputMode, onSelectDateComponent, selected } = this.props;\n const { type, value, length, valueWithPad } = fragment;\n\n const getValueMask = () => {\n if (value === null || (selected === type && inputMode)) {\n return value;\n }\n\n return valueWithPad || value;\n };\n\n const valueMask = getValueMask();\n\n const lengthMask = InternalDateValidator.testParseToNumber(valueMask)\n ? Math.max(length - valueMask.toString().length, 0)\n : length;\n\n const handleMouseUp = (e: React.MouseEvent<HTMLSpanElement>) => {\n if (this.globalObject.document?.activeElement?.contains(e.currentTarget)) {\n onSelectDateComponent(type, e);\n }\n };\n\n return (\n <span key={index} data-fragment=\"\" onMouseUp={handleMouseUp}>\n {valueMask}\n <span data-tid=\"DateFragmentsView__placeholder\" className={this.styles.mask(this.theme)}>\n {Array(lengthMask)\n .fill('')\n .map((_, i) => (\n <MaskCharLowLine key={i} />\n ))}\n </span>\n </span>\n );\n }\n\n private rootRef = (el: HTMLSpanElement | null) => {\n this.rootNode = el;\n };\n}\n"],"mappings":"qQAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;;;AAIA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;;AAEA,IAAAG,MAAA,GAAAH,OAAA;;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;;AAEA,IAAAM,mBAAA,GAAAN,OAAA,+BAAuD,IAAAO,MAAA;;;;;;;;;;AAU1CC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,OAD7BE,wCAAqB,EAAAH,MAAA,0BAAAI,gBAAA,YAAAH,kBAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;IAOZU,QAAQ,GAA2B,IAAI,CAAAV,KAAA;;IAExCW,UAAU,GAAG,UAACC,EAA6B,EAAc;MAC9D,IAAIZ,KAAA,CAAKU,QAAQ,EAAE;QACjB;QACA,IAAMG,SAA4B,GAAGR,KAAK,CAACS,IAAI,CAACd,KAAA,CAAKU,QAAQ,CAACK,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAClG,OAAOF,SAAS,CAACG,IAAI,CAAC,UAACC,QAAQ,UAAKA,QAAQ,KAAKL,EAAE,IAAIK,QAAQ,CAACC,QAAQ,CAACN,EAAqB,CAAC,GAAC;MAClG;MACA,OAAO,KAAK;IACd,CAAC,CAAAZ,KAAA;;IAEMmB,WAAW,GAAG,oBAAMnB,KAAA,CAAKU,QAAQ,GAAAV,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoFhCoB,OAAO,GAAG,UAACR,EAA0B,EAAK;MAChDZ,KAAA,CAAKU,QAAQ,GAAGE,EAAE;IACpB,CAAC,QAAAZ,KAAA,MAAAqB,eAAA,CAAAC,OAAA,EAAA1B,iBAAA,EAAAG,gBAAA,MAAAwB,MAAA,GAAA3B,iBAAA,CAAA4B,SAAA,CAAAD,MAAA,CApFME,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,IAAI,CAACC,MAAM,GAAG,IAAAC,6BAAS,EAAC,IAAI,CAACC,OAAO,CAAC,CAErC,oBACE3C,MAAA,CAAAoC,OAAA,CAAAQ,aAAA,CAACtC,aAAA,CAAAuC,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVP,MAAI,CAACO,KAAK,GAAGA,KAAK,CAClB,OAAOP,MAAI,CAACQ,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CAAC,CAAAX,MAAA,CAEOW,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAC,QAAA,CAAAC,MAAA,QACnB,oBACElD,MAAA,CAAAoC,OAAA,CAAAQ,aAAA,WACEO,GAAG,EAAE,IAAI,CAACjB,OAAQ,EAClBkB,SAAS,EAAE,IAAI,CAACC,EAAE,EAAAJ,QAAA,OAAAA,QAAA,CACf,IAAI,CAACR,MAAM,CAACa,IAAI,CAAC,CAAC,IAAG,IAAI,EAAAL,QAAA,CACzB,IAAI,CAACR,MAAM,CAACc,QAAQ,CAAC,IAAI,CAACR,KAAK,CAAC,IAAG,IAAI,EAAAE,QAAA,CACzC,CAAE,IAEF,IAAI,CAACO,KAAK,CAAC7B,SAAS,CAAC8B,GAAG,CAAC,UAAC1B,QAAQ,EAAE2B,KAAK,UACxC3B,QAAQ,CAAC4B,IAAI,KAAKC,gCAAyB,CAACC,SAAS,GACjDX,MAAI,CAACY,eAAe,CAAC/B,QAAQ,EAAE2B,KAAK,CAAC,GACrCR,MAAI,CAACa,mBAAmB,CAAChC,QAAQ,EAAE2B,KAAK,CAAC,EAC/C,CACI,CAAC,CAEX,CAAC,CAAArB,MAAA,CAEOyB,eAAe,GAAvB,SAAAA,gBAAwB/B,QAA8B,EAAE2B,KAAa,EAAe,KAAAM,SAAA,CAClF,IAAMC,kBAAkB,GAAG,IAAI,CAACZ,EAAE,EAAAW,SAAA,OAAAA,SAAA,CAC/B,IAAI,CAACvB,MAAM,CAACyB,IAAI,CAAC,IAAI,CAACnB,KAAK,CAAC,IAAG,IAAI,EAAAiB,SAAA,CACnC,IAAI,CAACvB,MAAM,CAAC0B,eAAe,CAAC,CAAC,IAAG,IAAI,CAACX,KAAK,CAAC7B,SAAS,CAAC+B,KAAK,GAAG,CAAC,CAAC,CAACU,KAAK,KAAK,IAAI,EAAAJ,SAAA,CAChF,CAAC,CAEF,oBACEhE,MAAA,CAAAoC,OAAA,CAAAQ,aAAA,WAAMyB,GAAG,EAAEX,KAAM,EAACN,SAAS,EAAEa,kBAAmB,IAC7ClC,QAAQ,CAACqC,KACN,CAAC,CAEX,CAAC,CAAA/B,MAAA,CAEO0B,mBAAmB,GAA3B,SAAAA,oBAA4BhC,QAA8B,EAAE2B,KAAa,EAAe,KAAAY,MAAA,QACtF,IAAAC,WAAA,GAAuD,IAAI,CAACf,KAAK,CAAzDgB,SAAS,GAAAD,WAAA,CAATC,SAAS,CAAEC,qBAAqB,GAAAF,WAAA,CAArBE,qBAAqB,CAAElB,QAAQ,GAAAgB,WAAA,CAARhB,QAAQ,CAClD,IAAQI,IAAI,GAAkC5B,QAAQ,CAA9C4B,IAAI,CAAES,KAAK,GAA2BrC,QAAQ,CAAxCqC,KAAK,CAAEnD,MAAM,GAAmBc,QAAQ,CAAjCd,MAAM,CAAEyD,YAAY,GAAK3C,QAAQ,CAAzB2C,YAAY,CAEzC,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS,CACzB,IAAIP,KAAK,KAAK,IAAI,IAAKb,QAAQ,KAAKI,IAAI,IAAIa,SAAU,EAAE,CACtD,OAAOJ,KAAK,CACd,CAEA,OAAOM,YAAY,IAAIN,KAAK,CAC9B,CAAC,CAED,IAAMQ,SAAS,GAAGD,YAAY,CAAC,CAAC,CAEhC,IAAME,UAAU,GAAGC,4CAAqB,CAACC,iBAAiB,CAACH,SAAS,CAAC,GACjEI,IAAI,CAACC,GAAG,CAAChE,MAAM,GAAG2D,SAAS,CAACM,QAAQ,CAAC,CAAC,CAACjE,MAAM,EAAE,CAAC,CAAC,GACjDA,MAAM,CAEV,IAAMkE,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,CAAoC,EAAK,KAAAC,qBAAA,CAC9D,KAAAA,qBAAA,GAAIf,MAAI,CAACgB,YAAY,CAACC,QAAQ,cAAAF,qBAAA,GAA1BA,qBAAA,CAA4BG,aAAa,aAAzCH,qBAAA,CAA2CrD,QAAQ,CAACoD,CAAC,CAACK,aAAa,CAAC,EAAE,CACxEhB,qBAAqB,CAACd,IAAI,EAAEyB,CAAC,CAAC,CAChC,CACF,CAAC,CAED,oBACEpF,MAAA,CAAAoC,OAAA,CAAAQ,aAAA,WAAMyB,GAAG,EAAEX,KAAM,EAAC,iBAAc,EAAE,EAACgC,SAAS,EAAEP,aAAc,IACzDP,SAAS,eACV5E,MAAA,CAAAoC,OAAA,CAAAQ,aAAA,WAAM,YAAS,gCAAgC,EAACQ,SAAS,EAAE,IAAI,CAACX,MAAM,CAACyB,IAAI,CAAC,IAAI,CAACnB,KAAK,CAAE,IACrF5B,KAAK,CAAC0D,UAAU,CAAC,CACfc,IAAI,CAAC,EAAE,CAAC,CACRlC,GAAG,CAAC,UAACmC,CAAC,EAAEC,CAAC,uBACR7F,MAAA,CAAAoC,OAAA,CAAAQ,aAAA,CAACzC,gBAAA,CAAA2F,eAAe,IAACzB,GAAG,EAAEwB,CAAE,EAAE,CAAC,EAC5B,CACC,CACF,CAAC,CAEX,CAAC,QAAAnF,iBAAA,GAnGoCqF,cAAK,CAACC,SAAS,MAAAvF,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_MaskCharLowLine","_InternalDateValidator","_types","_ThemeContext","_renderEnvironment","_DateFragmentsView2","_class","DateFragmentsView","exports","withRenderEnvironment","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","rootNode","isFragment","el","fragments","from","querySelectorAll","some","fragment","contains","getRootNode","rootRef","_inheritsLoose2","default","_proto","prototype","render","_this2","styles","getStyles","emotion","createElement","ThemeContext","Consumer","theme","renderMain","_this$cx","_this3","ref","className","cx","root","selected","props","map","index","type","InternalDateComponentType","Separator","renderSeparator","renderDateComponent","_this$cx2","separatorClassName","mask","delimiterFilled","value","key","_this4","_this$props","inputMode","onSelectDateComponent","valueWithPad","getValueMask","valueMask","lengthMask","InternalDateValidator","testParseToNumber","Math","max","toString","handleMouseUp","e","_this4$globalObject$d","globalObject","document","activeElement","currentTarget","onMouseUp","fill","_","i","MaskCharLowLine","React","Component"],"sources":["DateFragmentsView.tsx"],"sourcesContent":["import React, { type JSX } from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { MaskCharLowLine } from '../../internal/MaskCharLowLine';\nimport { InternalDateValidator } from '../../lib/date/InternalDateValidator';\nimport type { InternalDateFragment } from '../../lib/date/types';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './DateFragmentsView.styles';\n\ninterface DateFragmentViewProps {\n selected: InternalDateComponentType | null;\n fragments: InternalDateFragment[];\n inputMode: boolean;\n onSelectDateComponent: (type: InternalDateComponentType, e: React.MouseEvent<HTMLSpanElement>) => void;\n}\n\n@withRenderEnvironment\nexport class DateFragmentsView extends React.Component<DateFragmentViewProps> {\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private rootNode: HTMLSpanElement | null = null;\n\n public isFragment = (el: HTMLElement | EventTarget): boolean => {\n if (this.rootNode) {\n // NOTE: NodeList doesn't support method 'forEach' in IE11\n const fragments: HTMLSpanElement[] = Array.from(this.rootNode.querySelectorAll('[data-fragment]'));\n return fragments.some((fragment) => fragment === el || fragment.contains(el as HTMLSpanElement));\n }\n return false;\n };\n\n public getRootNode = () => this.rootNode;\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n return (\n <span\n ref={this.rootRef}\n className={this.cx({\n [this.styles.root()]: true,\n [this.styles.selected(this.theme)]: true,\n })}\n >\n {this.props.fragments.map((fragment, index) =>\n fragment.type === InternalDateComponentType.Separator\n ? this.renderSeparator(fragment, index)\n : this.renderDateComponent(fragment, index),\n )}\n </span>\n );\n }\n\n private renderSeparator(fragment: InternalDateFragment, index: number): JSX.Element {\n const separatorClassName = this.cx({\n [this.styles.mask(this.theme)]: true,\n [this.styles.delimiterFilled()]: this.props.fragments[index + 1].value !== null,\n });\n\n return (\n <span key={index} className={separatorClassName}>\n {fragment.value}\n </span>\n );\n }\n\n private renderDateComponent(fragment: InternalDateFragment, index: number): JSX.Element {\n const { inputMode, onSelectDateComponent, selected } = this.props;\n const { type, value, length, valueWithPad } = fragment;\n\n const getValueMask = () => {\n if (value === null || (selected === type && inputMode)) {\n return value;\n }\n\n return valueWithPad || value;\n };\n\n const valueMask = getValueMask();\n\n const lengthMask = InternalDateValidator.testParseToNumber(valueMask)\n ? Math.max(length - valueMask.toString().length, 0)\n : length;\n\n const handleMouseUp = (e: React.MouseEvent<HTMLSpanElement>) => {\n if (this.globalObject.document?.activeElement?.contains(e.currentTarget)) {\n onSelectDateComponent(type, e);\n }\n };\n\n return (\n <span key={index} data-fragment=\"\" onMouseUp={handleMouseUp}>\n {valueMask}\n <span data-tid=\"DateFragmentsView__placeholder\" className={this.styles.mask(this.theme)}>\n {Array(lengthMask)\n .fill('')\n .map((_, i) => (\n <MaskCharLowLine key={i} />\n ))}\n </span>\n </span>\n );\n }\n\n private rootRef = (el: HTMLSpanElement | null) => {\n this.rootNode = el;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -44,7 +44,6 @@ export declare const DateRangePicker: {
44
44
  disabled?: boolean | undefined;
45
45
  onFocus?: ((x0: React.FocusEvent<HTMLElement>) => void) | undefined;
46
46
  onBlur?: ((x0: React.FocusEvent<HTMLElement>) => void) | undefined;
47
- value?: string | null | undefined;
48
47
  id?: string | undefined | undefined;
49
48
  width?: string | number | undefined;
50
49
  "aria-describedby"?: string | undefined | undefined;
@@ -52,6 +51,7 @@ export declare const DateRangePicker: {
52
51
  "aria-labelledby"?: string | undefined | undefined;
53
52
  onKeyDown?: ((x0: React.KeyboardEvent<HTMLElement>) => void) | undefined;
54
53
  onClick?: ((x0: React.MouseEvent<HTMLElement>) => void) | undefined;
54
+ value?: string | null | undefined;
55
55
  autoFocus?: boolean | undefined;
56
56
  onValueChange?: ((value: string) => void) | undefined;
57
57
  minDate?: string | undefined;
@@ -70,7 +70,6 @@ export declare const DateRangePicker: {
70
70
  disabled?: boolean | undefined;
71
71
  onFocus?: ((x0: React.FocusEvent<HTMLElement>) => void) | undefined;
72
72
  onBlur?: ((x0: React.FocusEvent<HTMLElement>) => void) | undefined;
73
- value?: string | null | undefined;
74
73
  id?: string | undefined | undefined;
75
74
  width?: string | number | undefined;
76
75
  "aria-describedby"?: string | undefined | undefined;
@@ -78,6 +77,7 @@ export declare const DateRangePicker: {
78
77
  "aria-labelledby"?: string | undefined | undefined;
79
78
  onKeyDown?: ((x0: React.KeyboardEvent<HTMLElement>) => void) | undefined;
80
79
  onClick?: ((x0: React.MouseEvent<HTMLElement>) => void) | undefined;
80
+ value?: string | null | undefined;
81
81
  autoFocus?: boolean | undefined;
82
82
  onValueChange?: ((value: string) => void) | undefined;
83
83
  minDate?: string | undefined;