@skbkontur/react-ui 5.1.4 → 5.1.6

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 (152) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/cjs/components/Autocomplete/__docs__/Autocomplete.mdx +2 -1
  3. package/cjs/components/Button/__docs__/Button.mdx +6 -5
  4. package/cjs/components/Calendar/__docs__/Calendar.mdx +6 -5
  5. package/cjs/components/Calendar/__docs__/CalendarDay.mdx +2 -1
  6. package/cjs/components/Center/__docs__/Center.mdx +2 -1
  7. package/cjs/components/Checkbox/__docs__/Checkbox.mdx +6 -5
  8. package/cjs/components/ComboBox/__docs__/ComboBox.mdx +6 -5
  9. package/cjs/components/CurrencyInput/__docs__/CurrencyInput.mdx +6 -5
  10. package/cjs/components/CurrencyLabel/__docs__/CurrencyLabel.mdx +2 -1
  11. package/cjs/components/DateInput/DateInput.js +12 -9
  12. package/cjs/components/DateInput/DateInput.js.map +1 -1
  13. package/cjs/components/DateInput/__docs__/DateInput.mdx +2 -3
  14. package/cjs/components/DatePicker/__docs__/DatePicker.mdx +6 -5
  15. package/cjs/components/DateRangePicker/DateRangePicker.d.ts +2 -0
  16. package/cjs/components/DateRangePicker/DateRangePicker.js +42 -8
  17. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  18. package/cjs/components/DateRangePicker/DateRangePickerInput.js +4 -8
  19. package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  20. package/cjs/components/DateRangePicker/__docs__/DateRangePicker.mdx +6 -8
  21. package/cjs/components/Dropdown/__docs__/Dropdown.mdx +6 -5
  22. package/cjs/components/DropdownMenu/__docs__/DropdownMenu.mdx +6 -5
  23. package/cjs/components/FileUploader/__docs__/FileUploader.mdx +6 -5
  24. package/cjs/components/FxInput/__docs__/FxInput.mdx +6 -5
  25. package/cjs/components/Gapped/__docs__/Gapped.mdx +2 -1
  26. package/cjs/components/GlobalLoader/__docs__/GlobalLoader.mdx +6 -5
  27. package/cjs/components/Group/__docs__/Group.mdx +2 -1
  28. package/cjs/components/Hint/__docs__/Hint.mdx +6 -5
  29. package/cjs/components/Input/__docs__/Input.mdx +6 -5
  30. package/cjs/components/Kebab/__docs__/Kebab.mdx +6 -5
  31. package/cjs/components/Link/__docs__/Link.mdx +6 -5
  32. package/cjs/components/Loader/__docs__/Loader.mdx +2 -3
  33. package/cjs/components/MaskedInput/__docs__/MaskedInput.mdx +6 -5
  34. package/cjs/components/MenuFooter/__docs__/MenuFooter.mdx +2 -1
  35. package/cjs/components/MenuHeader/__docs__/MenuHeader.mdx +2 -1
  36. package/cjs/components/MenuItem/__docs__/MenuItem.mdx +2 -1
  37. package/cjs/components/MenuSeparator/__docs__/MenuSeparator.mdx +2 -1
  38. package/cjs/components/MiniModal/__docs__/MiniModal.mdx +6 -5
  39. package/cjs/components/Modal/__docs__/Modal.mdx +6 -5
  40. package/cjs/components/Paging/__docs__/Paging.mdx +6 -5
  41. package/cjs/components/PasswordInput/__docs__/PasswordInput.mdx +6 -5
  42. package/cjs/components/Radio/__docs__/Radio.mdx +6 -5
  43. package/cjs/components/RadioGroup/__docs__/RadioGroup.mdx +6 -5
  44. package/cjs/components/ResponsiveLayout/__docs__/ResponsiveLayout.mdx +2 -1
  45. package/cjs/components/ScrollContainer/__docs__/ScrollContainer.mdx +2 -1
  46. package/cjs/components/Select/__docs__/Select.mdx +6 -5
  47. package/cjs/components/SidePage/SidePage.js +1 -1
  48. package/cjs/components/SidePage/SidePage.js.map +1 -1
  49. package/cjs/components/SidePage/SidePageHeader.js +4 -1
  50. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  51. package/cjs/components/SidePage/__docs__/SidePage.mdx +6 -5
  52. package/cjs/components/SingleToast/__docs__/SingleToast.mdx +6 -5
  53. package/cjs/components/Spinner/__docs__/Spinner.mdx +6 -5
  54. package/cjs/components/Sticky/Sticky.d.ts +3 -0
  55. package/cjs/components/Sticky/Sticky.js +15 -1
  56. package/cjs/components/Sticky/Sticky.js.map +1 -1
  57. package/cjs/components/Sticky/__docs__/Sticky.mdx +2 -1
  58. package/cjs/components/Switcher/__docs__/Switcher.mdx +6 -5
  59. package/cjs/components/Tabs/__docs__/Tab.mdx +6 -5
  60. package/cjs/components/Tabs/__docs__/Tabs.mdx +6 -5
  61. package/cjs/components/Textarea/__docs__/Textarea.mdx +6 -5
  62. package/cjs/components/Toast/__docs__/Toast.mdx +6 -5
  63. package/cjs/components/Toggle/__docs__/Toggle.mdx +6 -5
  64. package/cjs/components/Token/__docs__/Token.mdx +6 -5
  65. package/cjs/components/TokenInput/__docs__/TokenInput.mdx +6 -5
  66. package/cjs/components/Tooltip/__docs__/Tooltip.mdx +6 -5
  67. package/cjs/components/TooltipMenu/__docs__/TooltipMenu.mdx +2 -1
  68. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  69. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  70. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  71. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  72. package/cjs/lib/rootNode/getRootNode.js +5 -12
  73. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  74. package/cjs/lib/utils.d.ts +1 -0
  75. package/cjs/lib/utils.js +5 -1
  76. package/cjs/lib/utils.js.map +1 -1
  77. package/components/Autocomplete/__docs__/Autocomplete.mdx +2 -1
  78. package/components/Button/__docs__/Button.mdx +6 -5
  79. package/components/Calendar/__docs__/Calendar.mdx +6 -5
  80. package/components/Calendar/__docs__/CalendarDay.mdx +2 -1
  81. package/components/Center/__docs__/Center.mdx +2 -1
  82. package/components/Checkbox/__docs__/Checkbox.mdx +6 -5
  83. package/components/ComboBox/__docs__/ComboBox.mdx +6 -5
  84. package/components/CurrencyInput/__docs__/CurrencyInput.mdx +6 -5
  85. package/components/CurrencyLabel/__docs__/CurrencyLabel.mdx +2 -1
  86. package/components/DateInput/DateInput/DateInput.js +12 -9
  87. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  88. package/components/DateInput/__docs__/DateInput.mdx +2 -3
  89. package/components/DatePicker/__docs__/DatePicker.mdx +6 -5
  90. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +31 -11
  91. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
  92. package/components/DateRangePicker/DateRangePicker.d.ts +2 -0
  93. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +5 -8
  94. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
  95. package/components/DateRangePicker/__docs__/DateRangePicker.mdx +6 -8
  96. package/components/Dropdown/__docs__/Dropdown.mdx +6 -5
  97. package/components/DropdownMenu/__docs__/DropdownMenu.mdx +6 -5
  98. package/components/FileUploader/__docs__/FileUploader.mdx +6 -5
  99. package/components/FxInput/__docs__/FxInput.mdx +6 -5
  100. package/components/Gapped/__docs__/Gapped.mdx +2 -1
  101. package/components/GlobalLoader/__docs__/GlobalLoader.mdx +6 -5
  102. package/components/Group/__docs__/Group.mdx +2 -1
  103. package/components/Hint/__docs__/Hint.mdx +6 -5
  104. package/components/Input/__docs__/Input.mdx +6 -5
  105. package/components/Kebab/__docs__/Kebab.mdx +6 -5
  106. package/components/Link/__docs__/Link.mdx +6 -5
  107. package/components/Loader/__docs__/Loader.mdx +2 -3
  108. package/components/MaskedInput/__docs__/MaskedInput.mdx +6 -5
  109. package/components/MenuFooter/__docs__/MenuFooter.mdx +2 -1
  110. package/components/MenuHeader/__docs__/MenuHeader.mdx +2 -1
  111. package/components/MenuItem/__docs__/MenuItem.mdx +2 -1
  112. package/components/MenuSeparator/__docs__/MenuSeparator.mdx +2 -1
  113. package/components/MiniModal/__docs__/MiniModal.mdx +6 -5
  114. package/components/Modal/__docs__/Modal.mdx +6 -5
  115. package/components/Paging/__docs__/Paging.mdx +6 -5
  116. package/components/PasswordInput/__docs__/PasswordInput.mdx +6 -5
  117. package/components/Radio/__docs__/Radio.mdx +6 -5
  118. package/components/RadioGroup/__docs__/RadioGroup.mdx +6 -5
  119. package/components/ResponsiveLayout/__docs__/ResponsiveLayout.mdx +2 -1
  120. package/components/ScrollContainer/__docs__/ScrollContainer.mdx +2 -1
  121. package/components/Select/__docs__/Select.mdx +6 -5
  122. package/components/SidePage/SidePage/SidePage.js +1 -1
  123. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  124. package/components/SidePage/SidePageHeader/SidePageHeader.js +6 -1
  125. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  126. package/components/SidePage/__docs__/SidePage.mdx +6 -5
  127. package/components/SingleToast/__docs__/SingleToast.mdx +6 -5
  128. package/components/Spinner/__docs__/Spinner.mdx +6 -5
  129. package/components/Sticky/Sticky/Sticky.js +9 -1
  130. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  131. package/components/Sticky/Sticky.d.ts +3 -0
  132. package/components/Sticky/__docs__/Sticky.mdx +2 -1
  133. package/components/Switcher/__docs__/Switcher.mdx +6 -5
  134. package/components/Tabs/__docs__/Tab.mdx +6 -5
  135. package/components/Tabs/__docs__/Tabs.mdx +6 -5
  136. package/components/Textarea/__docs__/Textarea.mdx +6 -5
  137. package/components/Toast/__docs__/Toast.mdx +6 -5
  138. package/components/Toggle/__docs__/Toggle.mdx +6 -5
  139. package/components/Token/__docs__/Token.mdx +6 -5
  140. package/components/TokenInput/__docs__/TokenInput.mdx +6 -5
  141. package/components/Tooltip/__docs__/Tooltip.mdx +6 -5
  142. package/components/TooltipMenu/__docs__/TooltipMenu.mdx +2 -1
  143. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  144. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
  145. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  146. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  147. package/lib/rootNode/getRootNode/getRootNode.js +5 -12
  148. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  149. package/lib/utils/utils.js +3 -0
  150. package/lib/utils/utils.js.map +1 -1
  151. package/lib/utils.d.ts +1 -0
  152. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,32 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.1.6](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.1.5...@skbkontur/react-ui@5.1.6) (2025-07-02)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **DatePicker,DateInput:** onBlur wasn't called, calendar wasn't closed ([a67649c](https://github.com/skbkontur/retail-ui/commit/a67649c1d862cc23c7981c16610da50bb8046c37))
12
+ * **SidePage,Sticky:** prevent page crash, reduce rerenders ([17bddad](https://github.com/skbkontur/retail-ui/commit/17bddad211bb8cc29aa4323fd9aabca8d3fca9f5))
13
+ * **SidePage:** revert lost animation ([eab52ad](https://github.com/skbkontur/retail-ui/commit/eab52adf66ad0211ee5b9b1d8e61aa9e7f5c6066))
14
+
15
+
16
+
17
+
18
+
19
+ ## [5.1.5](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.1.4...@skbkontur/react-ui@5.1.5) (2025-06-11)
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * **DateRangePicker:** improve calendar scrolling speed ([8489445](https://github.com/skbkontur/retail-ui/commit/8489445e48acdeabcf1e8d09e3eceed549bdefe1))
25
+ * **DateRangePicker:** reset calendar range by null & undefined ([afcb3c2](https://github.com/skbkontur/retail-ui/commit/afcb3c2f2d94e49a4b781a375469af91c975a387))
26
+ * **Validations:** scroll to element on focus in iframe ([fa9beab](https://github.com/skbkontur/retail-ui/commit/fa9beab61c5cedb547757b14fa544e1798b8ebf2))
27
+
28
+
29
+
30
+
31
+
6
32
  ## [5.1.4](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.1.3...@skbkontur/react-ui@5.1.4) (2025-06-06)
7
33
 
8
34
 
@@ -1,6 +1,7 @@
1
1
  import * as AutocompleteStories from './Autocomplete.docs.stories.tsx';
2
2
  import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
3
  import { Meta } from '../../../.storybook/Meta';
4
+ import { Header } from '../../../.storybook/Header';
4
5
  import { PropsTable } from '../../../.storybook/PropsTable';
5
6
 
6
7
  import { Autocomplete } from '../Autocomplete';
@@ -8,7 +9,7 @@ import { Button, Group, Gapped } from '@skbkontur/react-ui';
8
9
 
9
10
  <Meta of={AutocompleteStories} />
10
11
 
11
- # Autocomplete
12
+ <Header component="Autocomplete" />
12
13
 
13
14
  <Description />
14
15
 
@@ -1,15 +1,16 @@
1
1
  import * as ButtonStories from './Button.docs.stories.tsx';
2
2
  import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
3
  import { Meta } from '../../../.storybook/Meta';
4
+ import { Header } from '../../../.storybook/Header';
4
5
  import { PropsTable } from '../../../.storybook/PropsTable';
5
6
 
6
7
  <Meta of={ButtonStories} />
7
8
 
8
- # Button
9
-
10
- [Компонент в Контур.Гайдах](https://guides.kontur.ru/components/button)
11
-
12
- [Компонент в Figma](https://www.figma.com/file/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI-Modern-Layout?node-id=200%3A2498)
9
+ <Header
10
+ component="Button"
11
+ guides="https://guides.kontur.ru/components/button"
12
+ figma="https://www.figma.com/file/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI-Modern-Layout?node-id=200%3A2498"
13
+ />
13
14
 
14
15
  <Description />
15
16
 
@@ -1,15 +1,16 @@
1
1
  import * as CalendarStories from './Calendar.docs.stories.tsx';
2
2
  import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
3
  import { Meta } from '../../../.storybook/Meta';
4
+ import { Header } from '../../../.storybook/Header';
4
5
  import { PropsTable } from '../../../.storybook/PropsTable';
5
6
 
6
7
  <Meta of={CalendarStories} />
7
8
 
8
- # Calendar
9
-
10
- [Компонент в Контур.Гайдах](https://guides.kontur.ru/components/input-fields/calendar/#_Blok_kalendarya)
11
-
12
- [Компонент в Figma](https://www.figma.com/design/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI?node-id=200-979&t=DrNoIKKKInwy9gzX-0)
9
+ <Header
10
+ component="Calendar"
11
+ guides="https://guides.kontur.ru/components/input-fields/calendar/#_Blok_kalendarya"
12
+ figma="https://www.figma.com/design/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI?node-id=200-979&t=DrNoIKKKInwy9gzX-0"
13
+ />
13
14
 
14
15
  <Description />
15
16
 
@@ -1,11 +1,12 @@
1
1
  import * as CalendarDayStories from './CalendarDay.docs.stories.tsx';
2
2
  import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
3
  import { Meta } from '../../../.storybook/Meta';
4
+ import { Header } from '../../../.storybook/Header';
4
5
  import { PropsTable } from '../../../.storybook/PropsTable';
5
6
 
6
7
  <Meta of={CalendarDayStories} />
7
8
 
8
- # Calendar
9
+ <Header component="Calendar" />
9
10
 
10
11
  <Description />
11
12
 
@@ -1,11 +1,12 @@
1
1
  import * as CenterStories from './Center.docs.stories.tsx';
2
2
  import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
3
  import { Meta } from '../../../.storybook/Meta';
4
+ import { Header } from '../../../.storybook/Header';
4
5
  import { PropsTable } from '../../../.storybook/PropsTable';
5
6
 
6
7
  <Meta of={CenterStories} />
7
8
 
8
- # Center
9
+ <Header component="Center" />
9
10
 
10
11
  <Description />
11
12
 
@@ -1,15 +1,16 @@
1
1
  import * as CheckboxStories from './Checkbox.docs.stories.tsx';
2
2
  import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
3
  import { Meta } from '../../../.storybook/Meta';
4
+ import { Header } from '../../../.storybook/Header';
4
5
  import { PropsTable } from '../../../.storybook/PropsTable';
5
6
 
6
7
  <Meta of={CheckboxStories} />
7
8
 
8
- # Checkbox
9
-
10
- [Компонент в Контур.Гайдах](https://guides.kontur.ru/components/selection-elements/checkbox/)
11
-
12
- [Компонент в Figma](https://www.figma.com/file/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI-Modern-Layout?node-id=203%3A7278)
9
+ <Header
10
+ component="Checkbox"
11
+ guides="https://guides.kontur.ru/components/selection-elements/checkbox/"
12
+ figma="https://www.figma.com/file/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI?node-id=203%3A7278"
13
+ />
13
14
 
14
15
  <Description />
15
16
 
@@ -1,15 +1,16 @@
1
1
  import * as ComboBoxStories from './ComboBox.docs.stories.tsx';
2
2
  import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
3
  import { Meta } from '../../../.storybook/Meta';
4
+ import { Header } from '../../../.storybook/Header';
4
5
  import { PropsTable } from '../../../.storybook/PropsTable';
5
6
 
6
7
  <Meta of={ComboBoxStories} />
7
8
 
8
- # ComboBox
9
-
10
- [Компонент в Контур.Гайдах](https://guides.kontur.ru/components/input-fields/combobox/)
11
-
12
- [Компонент в Figma](https://www.figma.com/file/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI-Modern-Layout?node-id=203%3A1602)
9
+ <Header
10
+ component="Combobox"
11
+ guides="https://guides.kontur.ru/components/input-fields/combobox/"
12
+ figma="https://www.figma.com/file/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI-Modern-Layout?node-id=203%3A1602"
13
+ />
13
14
 
14
15
  <Description />
15
16
 
@@ -1,15 +1,16 @@
1
1
  import * as CurrencyInputStories from './CurrencyInput.docs.stories.tsx';
2
2
  import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
3
  import { Meta } from '../../../.storybook/Meta';
4
+ import { Header } from '../../../.storybook/Header';
4
5
  import { PropsTable } from '../../../.storybook/PropsTable';
5
6
 
6
7
  <Meta of={CurrencyInputStories} />
7
8
 
8
- # CurrencyInput
9
-
10
- [Компонент в Контур.Гайдах](https://guides.kontur.ru/components/input-fields/currency/)
11
-
12
- [Компонент в Figma](https://www.figma.com/file/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI-Modern-Layout?node-id=203%3A1602)
9
+ <Header
10
+ component="CurrencyInput"
11
+ guides="https://guides.kontur.ru/components/input-fields/currency/"
12
+ figma="https://www.figma.com/file/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI-Modern-Layout?node-id=203%3A1602"
13
+ />
13
14
 
14
15
  <Description />
15
16
 
@@ -1,11 +1,12 @@
1
1
  import * as CurrencyLabelStories from './CurrencyLabel.docs.stories.tsx';
2
2
  import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
3
  import { Meta } from '../../../.storybook/Meta';
4
+ import { Header } from '../../../.storybook/Header';
4
5
  import { PropsTable } from '../../../.storybook/PropsTable';
5
6
 
6
7
  <Meta of={CurrencyLabelStories} />
7
8
 
8
- # CurrencyLabel
9
+ <Header component="CurrencyLabel" />
9
10
 
10
11
  <Description />
11
12
 
@@ -409,17 +409,20 @@ DateInput = exports.DateInput = (_dec = (0, _decorators.locale)('DatePicker', _l
409
409
  };_this.
410
410
 
411
411
  emitChange = function () {
412
- var value = _this.iDateMediator.getInternalString();
413
- if (_this.props.value === value) {
414
- return;
415
- }
416
412
  if (_this.props.onValueChange) {
417
- _this.props.onValueChange(value);
418
- }
419
- if (_this.blurEvent && _this.props.onBlur) {
420
- _this.props.onBlur(_this.blurEvent);
421
- _this.blurEvent = null;
413
+ var value = _this.iDateMediator.getInternalString();
414
+ if (_this.props.value !== value) {
415
+ _this.props.onValueChange(value);
416
+ }
422
417
  }
418
+
419
+ // `this.blurEvent` is always null in `flushSync` without `setTimeout` due to sync update
420
+ setTimeout(function () {
421
+ if (_this.blurEvent && _this.props.onBlur) {
422
+ _this.props.onBlur(_this.blurEvent);
423
+ _this.blurEvent = null;
424
+ }
425
+ });
423
426
  };_this.
424
427
 
425
428
  clearSelected = function () {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactDom","_globalObject","_ConditionalHandler","_constants","_types","_locale","_InputLikeText","_decorators","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_FocusControlWrapper","_CalendarIcon","_DateFragmentsView","_DateInput2","_DateInputKeyboardActions","_InternalDateMediator","_dec","_class","_DateInput","DateInputDataTids","exports","icon","DateInput","locale","DatePickerLocaleHelper","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","_this$props","withIcon","_this$props$disabled","disabled","size","_cx","theme","default","createElement","CalendarIcon","iconStyles","cx","styles","iconSmall","iconMedium","iconLarge","iconDisabled","className","handleFocus","setState","prevState","focused","onFocus","resetFocus","updateValue","inputMode","handleBlur","onBlur","restored","restore","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","globalObject","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","extractAction","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","sync","valueFormatted","getString","update","_extends2","emitChange","React","version","search","ReactDOM","flushSync","updateFromProps","value","get","getInternalString","onValueChange","clear","_this$state","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","_this$iDateMediator$i","inputKey","key","_inheritsLoose2","_proto","prototype","componentDidUpdate","prevProps","_this$getProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","_this2","ThemeContext","Consumer","renderMain","_cx2","_this$state2","showValue","Boolean","_this$getProps2","width","CommonWrapper","rootNodeRef","setRootNode","FocusControlWrapper","onBlurWhenDisabled","InputLikeText","id","ref","error","warning","onClick","onMouseDownCapture","onPaste","rightIcon","onDoubleClickCapture","onMouseDragStart","onMouseDragEnd","takeContentWidth","valueVisible","DateFragmentsView","fragments","getFragments","onSelectDateComponent","Component","__KONTUR_REACT_UI__","displayName","MIN_FULLDATE","MAX_FULLDATE"],"sources":["DateInput.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { DatePickerLocale } from '../DatePicker/locale';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\n\nimport { CalendarIcon } from './CalendarIcon';\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport const DateInputDataTids = {\n icon: 'DateInput__icon',\n} as const;\n\nexport interface DateInputProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Устанавливает значение датаинпута. */\n value?: string;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy` */\n maxDate?: string;\n\n /** Задает ширину поля. */\n width?: string | number;\n\n /** Добавляет иконку календаря. */\n withIcon?: boolean;\n\n /** Задает размер поля. */\n size?: SizeProp;\n\n /** Задает функцию, которая вызывается при потере датаинпутом фокуса. */\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при клике на датаинпут. */\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при получении датаинпутом фокуса. */\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при изменении value.\n * @param value - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (value: string) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'size' | 'width'>>;\n\n/**\n * Компонент поля `DateInput` из DatePicker'а помогает выбирать дату с клавиатуры.\n */\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n public static displayName = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps(false);\n }\n !this.props.disabled && this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps(false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\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 const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width, size } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <InputLikeText\n id={this.props.id}\n width={width}\n ref={this.inputLikeTextRef}\n size={size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n aria-describedby={this.props['aria-describedby']}\n aria-label={this.props['aria-label']}\n aria-labelledby={this.props['aria-labelledby']}\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </FocusControlWrapper>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.getProps().size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = <CalendarIcon size={size} />;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles} data-tid={DateInputDataTids.icon}>\n {icon}\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => this.updateValue({ focused: false, selected: null, inputMode: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.resetFocus();\n\n if (this.props.onBlur) {\n const restored = this.iDateMediator.restore();\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = globalObject.getSelection?.();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}, sync = true): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n const update = () => this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n\n if (sync && React.version.search('18') === 0) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n };\n\n private updateFromProps = (sync: boolean): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue({}, sync);\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const { inputMode, changed } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n if (!changed) {\n this.blink();\n return;\n }\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactDom","_globalObject","_ConditionalHandler","_constants","_types","_locale","_InputLikeText","_decorators","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_FocusControlWrapper","_CalendarIcon","_DateFragmentsView","_DateInput2","_DateInputKeyboardActions","_InternalDateMediator","_dec","_class","_DateInput","DateInputDataTids","exports","icon","DateInput","locale","DatePickerLocaleHelper","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","_this$props","withIcon","_this$props$disabled","disabled","size","_cx","theme","default","createElement","CalendarIcon","iconStyles","cx","styles","iconSmall","iconMedium","iconLarge","iconDisabled","className","handleFocus","setState","prevState","focused","onFocus","resetFocus","updateValue","inputMode","handleBlur","onBlur","restored","restore","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","globalObject","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","extractAction","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","sync","valueFormatted","getString","update","_extends2","emitChange","React","version","search","ReactDOM","flushSync","updateFromProps","value","get","onValueChange","getInternalString","setTimeout","clear","_this$state","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","_this$iDateMediator$i","inputKey","key","_inheritsLoose2","_proto","prototype","componentDidUpdate","prevProps","_this$getProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","_this2","ThemeContext","Consumer","renderMain","_cx2","_this$state2","showValue","Boolean","_this$getProps2","width","CommonWrapper","rootNodeRef","setRootNode","FocusControlWrapper","onBlurWhenDisabled","InputLikeText","id","ref","error","warning","onClick","onMouseDownCapture","onPaste","rightIcon","onDoubleClickCapture","onMouseDragStart","onMouseDragEnd","takeContentWidth","valueVisible","DateFragmentsView","fragments","getFragments","onSelectDateComponent","Component","__KONTUR_REACT_UI__","displayName","MIN_FULLDATE","MAX_FULLDATE"],"sources":["DateInput.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { DatePickerLocale } from '../DatePicker/locale';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\n\nimport { CalendarIcon } from './CalendarIcon';\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport const DateInputDataTids = {\n icon: 'DateInput__icon',\n} as const;\n\nexport interface DateInputProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Устанавливает значение датаинпута. */\n value?: string;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy` */\n maxDate?: string;\n\n /** Задает ширину поля. */\n width?: string | number;\n\n /** Добавляет иконку календаря. */\n withIcon?: boolean;\n\n /** Задает размер поля. */\n size?: SizeProp;\n\n /** Задает функцию, которая вызывается при потере датаинпутом фокуса. */\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при клике на датаинпут. */\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при получении датаинпутом фокуса. */\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при изменении value.\n * @param value - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (value: string) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'size' | 'width'>>;\n\n/**\n * Компонент поля `DateInput` из DatePicker'а помогает выбирать дату с клавиатуры.\n */\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n public static displayName = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps(false);\n }\n !this.props.disabled && this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps(false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\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 const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width, size } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <InputLikeText\n id={this.props.id}\n width={width}\n ref={this.inputLikeTextRef}\n size={size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n aria-describedby={this.props['aria-describedby']}\n aria-label={this.props['aria-label']}\n aria-labelledby={this.props['aria-labelledby']}\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </FocusControlWrapper>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.getProps().size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = <CalendarIcon size={size} />;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles} data-tid={DateInputDataTids.icon}>\n {icon}\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => this.updateValue({ focused: false, selected: null, inputMode: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.resetFocus();\n\n if (this.props.onBlur) {\n const restored = this.iDateMediator.restore();\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = globalObject.getSelection?.();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}, sync = true): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n const update = () => this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n\n if (sync && React.version.search('18') === 0) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n };\n\n private updateFromProps = (sync: boolean): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue({}, sync);\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n if (this.props.onValueChange) {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value !== value) {\n this.props.onValueChange(value);\n }\n }\n\n // `this.blurEvent` is always null in `flushSync` without `setTimeout` due to sync update\n setTimeout(() => {\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n });\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const { inputMode, changed } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n if (!changed) {\n this.blink();\n return;\n }\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,13 +1,12 @@
1
1
  import * as DateInputStories from './DateInput.docs.stories.tsx';
2
2
  import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
3
  import { Meta } from '../../../.storybook/Meta';
4
+ import { Header } from '../../../.storybook/Header';
4
5
  import { PropsTable } from '../../../.storybook/PropsTable';
5
6
 
6
7
  <Meta of={DateInputStories} />
7
8
 
8
- # DateInput
9
-
10
- [Компонент в Контур.Гайдах](https://guides.kontur.ru/components/input-fields/calendar/)
9
+ <Header component="DateInput" guides="https://guides.kontur.ru/components/input-fields/calendar/" />
11
10
 
12
11
  <Description />
13
12
 
@@ -1,15 +1,16 @@
1
1
  import * as DatePickerStories from './DatePicker.docs.stories.tsx';
2
2
  import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
3
  import { Meta } from '../../../.storybook/Meta';
4
+ import { Header } from '../../../.storybook/Header';
4
5
  import { PropsTable } from '../../../.storybook/PropsTable';
5
6
 
6
7
  <Meta of={DatePickerStories} />
7
8
 
8
- # DatePicker
9
-
10
- [Компонент в Контур.Гайдах](https://guides.kontur.ru/components/input-fields/calendar/)
11
-
12
- [Компонент в Figma](https://www.figma.com/file/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI-Modern-Layout?node-id=281%3A18389)
9
+ <Header
10
+ component="DatePicker"
11
+ guides="https://guides.kontur.ru/components/input-fields/calendar/"
12
+ figma="https://www.figma.com/file/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI-Modern-Layout?node-id=281%3A18389"
13
+ />
13
14
 
14
15
  <Description />
15
16
 
@@ -14,6 +14,8 @@ export declare const DateRangePickerDataTids: {
14
14
  readonly endOptionalButton: "DateRangePicker__endOptionalButton";
15
15
  readonly mobileStart: "DateRangePicker__mobileStart";
16
16
  readonly mobileEnd: "DateRangePicker__mobileEnd";
17
+ readonly rangeStart: "DateRangePicker__rangeStart";
18
+ readonly rangeEnd: "DateRangePicker__rangeEnd";
17
19
  };
18
20
  export interface DateRangePickerProps extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>, Pick<DatePickerProps, 'size' | 'renderDay' | 'menuPos' | 'menuAlign' | 'useMobileNativeDatePicker' | 'enableTodayLink' | 'onMonthChange'> {
19
21
  /**
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.DateRangePickerDataTids = exports.DateRangePicker = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _react = _interopRequireWildcard(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.DateRangePickerDataTids = exports.DateRangePicker = void 0;var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _react = _interopRequireWildcard(require("react"));
2
2
 
3
3
  var _MobilePopup = require("../../internal/MobilePopup");
4
4
  var _useLocaleForControl = require("../../lib/locale/useLocaleForControl");
@@ -47,9 +47,13 @@ var DateRangePickerDataTids = exports.DateRangePickerDataTids = {
47
47
  startOptionalButton: 'DateRangePicker__startOptionalButton',
48
48
  endOptionalButton: 'DateRangePicker__endOptionalButton',
49
49
  mobileStart: 'DateRangePicker__mobileStart',
50
- mobileEnd: 'DateRangePicker__mobileEnd'
50
+ mobileEnd: 'DateRangePicker__mobileEnd',
51
+ rangeStart: 'DateRangePicker__rangeStart',
52
+ rangeEnd: 'DateRangePicker__rangeEnd'
51
53
  };
52
54
 
55
+ var DayDateAttribute = 'data-date-range-picker-day';
56
+
53
57
 
54
58
 
55
59
 
@@ -301,7 +305,11 @@ var DateRangePicker = exports.DateRangePicker = Object.assign(
301
305
  anchorElement: (0, _rootNode.getRootNode)(dateRangePickerRef.current),
302
306
  margin: parseInt(theme.datePickerMenuOffsetY) }, /*#__PURE__*/
303
307
 
304
- _react.default.createElement("div", { className: _DateRangePicker.styles.calendarWrapper(theme), onMouseDown: function onMouseDown(e) {return e.preventDefault();} },
308
+ _react.default.createElement("div", {
309
+ className: _DateRangePicker.styles.calendarWrapper(theme),
310
+ onMouseDown: function onMouseDown(e) {return e.preventDefault();},
311
+ onMouseMove: handleCalendarRangeMouseMove },
312
+
305
313
  renderCalendar(theme),
306
314
  renderButtons()
307
315
  )
@@ -412,11 +420,26 @@ var DateRangePicker = exports.DateRangePicker = Object.assign(
412
420
  ));
413
421
 
414
422
 
423
+ // Use parent mousemove event instead each CalendarDay's mouseenter / mouseover
424
+ function handleCalendarRangeMouseMove(e) {
425
+ if (!startValue && !endValue) {
426
+ return;
427
+ }
428
+
429
+ var hoveredElement = e.target;
430
+ if (!hoveredElement.hasAttribute(DayDateAttribute) && hoveredDay === null) {
431
+ return;
432
+ }
433
+
434
+ var date = String(hoveredElement == null ? void 0 : hoveredElement.getAttribute(DayDateAttribute)) || null;
435
+ setHoveredDay(date);
436
+ }
437
+
415
438
  function renderCalendarRange(
416
439
  props,
417
440
  t,
418
441
  renderDayFn)
419
- {var _cx4;
442
+ {var _extends2, _cx4;
420
443
  var day = props.date;
421
444
 
422
445
  var isDayFirst = startValue === day;
@@ -466,10 +489,20 @@ var DateRangePicker = exports.DateRangePicker = Object.assign(
466
489
  }
467
490
  }
468
491
 
492
+ var renderDayProps = (0, _extends3.default)({},
493
+ props, (_extends2 = {}, _extends2[
494
+ DayDateAttribute] = props.date, _extends2));
495
+
496
+
497
+ var dataTid = null;
498
+ if (isDayFirst) {
499
+ dataTid = DateRangePickerDataTids.rangeStart;
500
+ } else if (isDayLast) {
501
+ dataTid = DateRangePickerDataTids.rangeEnd;
502
+ }
503
+
469
504
  return /*#__PURE__*/(
470
505
  _react.default.createElement("div", {
471
- onMouseOver: function onMouseOver() {return setHoveredDay(day);},
472
- onMouseOut: function onMouseOut() {return setHoveredDay(null);},
473
506
  className: (0, _Emotion.cx)(
474
507
  _DateRangePicker.styles.rangeCalendarDay(), (0,
475
508
  _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", ";\n border-top-left-radius: ", ";\n border-bottom-left-radius: ", ";\n border-top-right-radius: ", ";\n border-bottom-right-radius: ", ";\n "])),
@@ -484,9 +517,10 @@ var DateRangePicker = exports.DateRangePicker = Object.assign(
484
517
  _DateRangePicker.styles.rangeCalendarDayHoverInPeriod(t)] = isDayInPeriod, _cx4[
485
518
  _DateRangePicker.styles.rangeCalendarDayInHoveredPeriod(t)] = isDayInHoveredPeriod, _cx4)
486
519
 
487
- ) },
520
+ ),
521
+ "data-tid": dataTid },
488
522
 
489
- renderDayFn ? renderDayFn(props) : /*#__PURE__*/_react.default.createElement(_Calendar.CalendarDay, props)
523
+ renderDayFn ? renderDayFn(renderDayProps) : /*#__PURE__*/_react.default.createElement(_Calendar.CalendarDay, renderDayProps)
490
524
  ));
491
525
 
492
526
  }