@skbkontur/react-ui 0.0.0-1b188ff0e7 → 0.0.0-1c6f0751ba
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.
- package/CHANGELOG.md +69 -0
- package/cjs/components/Button/getInnerLinkTheme.js +2 -3
- package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +4 -5
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
- package/cjs/components/CurrencyInput/CurrencyHelper.js +21 -6
- package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js +1 -2
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateInput/helpers/SelectionHelpers.js +7 -9
- package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.js +1 -2
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/Input/Input.js +1 -2
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAside.js +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +4 -4
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/cjs/components/Link/Link.js +4 -2
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Link/Link.mixins.d.ts +1 -2
- package/cjs/components/Link/Link.mixins.js +5 -16
- package/cjs/components/Link/Link.mixins.js.map +1 -1
- package/cjs/components/Link/Link.styles.d.ts +2 -0
- package/cjs/components/Link/Link.styles.js +58 -38
- package/cjs/components/Link/Link.styles.js.map +1 -1
- package/cjs/components/Loader/Loader.js +1 -2
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/Paging/Paging.js +2 -3
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js +2 -3
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.js +1 -2
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/cjs/components/SidePage/SidePage.js +1 -2
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/Sticky/Sticky.js +2 -3
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Textarea/Textarea.js +1 -2
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toast/ToastStatic.js +2 -3
- package/cjs/components/Toast/ToastStatic.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.js +2 -3
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.js +6 -6
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.js +4 -5
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.js +4 -5
- package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +4 -5
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +19 -9
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.js +2 -3
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +2 -3
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.js +3 -4
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.js +2 -3
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.js +1 -2
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +4 -15
- package/cjs/internal/themes/DefaultTheme.js +10 -45
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/internal/themes/Theme2022.d.ts +0 -3
- package/cjs/internal/themes/Theme2022.js +1 -10
- package/cjs/internal/themes/Theme2022.js.map +1 -1
- package/cjs/lib/SSRSafe.d.ts +0 -1
- package/cjs/lib/SSRSafe.js +3 -6
- package/cjs/lib/SSRSafe.js.map +1 -1
- package/cjs/lib/Upgrades.d.ts +0 -2
- package/cjs/lib/Upgrades.js +0 -14
- package/cjs/lib/Upgrades.js.map +1 -1
- package/cjs/lib/client.js +3 -5
- package/cjs/lib/client.js.map +1 -1
- package/cjs/lib/dom/getScrollWidth.js +3 -4
- package/cjs/lib/dom/getScrollWidth.js.map +1 -1
- package/cjs/lib/dom/tabbableHelpers.js +1 -3
- package/cjs/lib/dom/tabbableHelpers.js.map +1 -1
- package/cjs/lib/events/MouseDrag.js +3 -4
- package/cjs/lib/events/MouseDrag.js.map +1 -1
- package/cjs/lib/events/fixClickFocusIE.js +1 -2
- package/cjs/lib/events/fixClickFocusIE.js.map +1 -1
- package/cjs/lib/listenFocusOutside.js +5 -6
- package/cjs/lib/listenFocusOutside.js.map +1 -1
- package/cjs/lib/needsPolyfillPlaceholder.js +2 -3
- package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -1
- package/cjs/lib/theming/Emotion.js +1 -3
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +2 -3
- package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js +4 -5
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +32 -4
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
- package/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
- package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +1 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js +1 -2
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +6 -7
- package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
- package/components/FileUploader/FileUploader/FileUploader.js +1 -2
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/Input/Input/Input.js +1 -2
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js +1 -2
- package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +7 -5
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
- package/components/Link/Link/Link.js +4 -4
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.mixins/Link.mixins.js +2 -5
- package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
- package/components/Link/Link.mixins.d.ts +1 -2
- package/components/Link/Link.styles/Link.styles.js +29 -21
- package/components/Link/Link.styles/Link.styles.js.map +1 -1
- package/components/Link/Link.styles.d.ts +2 -0
- package/components/Loader/Loader/Loader.js +1 -2
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Paging/Paging/Paging.js +2 -3
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +2 -3
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/ScrollContainer/ScrollBar/ScrollBar.js +1 -2
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
- package/components/SidePage/SidePage/SidePage.js +1 -2
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/Sticky/Sticky/Sticky.js +3 -3
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +1 -2
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Toast/ToastStatic/ToastStatic.js +3 -3
- package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +3 -4
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +8 -6
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +8 -7
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/FocusTrap/FocusTrap/FocusTrap.js +2 -3
- package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +5 -4
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +27 -16
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/internal/Popup/PopupHelper/PopupHelper.js +1 -2
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +2 -3
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +3 -4
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +2 -3
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +1 -2
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +7 -66
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +4 -15
- package/internal/themes/Theme2022/Theme2022.js +0 -15
- package/internal/themes/Theme2022/Theme2022.js.map +1 -1
- package/internal/themes/Theme2022.d.ts +0 -3
- package/lib/SSRSafe/SSRSafe.js +1 -3
- package/lib/SSRSafe/SSRSafe.js.map +1 -1
- package/lib/SSRSafe.d.ts +0 -1
- package/lib/Upgrades/Upgrades.js +1 -14
- package/lib/Upgrades/Upgrades.js.map +1 -1
- package/lib/Upgrades.d.ts +0 -2
- package/lib/client/client.js +2 -3
- package/lib/client/client.js.map +1 -1
- package/lib/dom/getScrollWidth/getScrollWidth.js +3 -3
- package/lib/dom/getScrollWidth/getScrollWidth.js.map +1 -1
- package/lib/dom/tabbableHelpers/tabbableHelpers.js +1 -2
- package/lib/dom/tabbableHelpers/tabbableHelpers.js.map +1 -1
- package/lib/events/MouseDrag/MouseDrag.js +2 -3
- package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
- package/lib/events/fixClickFocusIE/fixClickFocusIE.js +1 -2
- package/lib/events/fixClickFocusIE/fixClickFocusIE.js.map +1 -1
- package/lib/listenFocusOutside/listenFocusOutside.js +4 -5
- package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
- package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +1 -2
- package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -1
- package/lib/theming/Emotion/Emotion.js +1 -3
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,75 @@
|
|
|
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
|
+
## [4.15.6](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.15.5...@skbkontur/react-ui@4.15.6) (2023-08-02)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @skbkontur/react-ui
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [4.15.5](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.15.4...@skbkontur/react-ui@4.15.5) (2023-08-02)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **InputLikeText:** use debounce to control async content selection ([#3226](https://github.com/skbkontur/retail-ui/issues/3226)) ([18e5947](https://github.com/skbkontur/retail-ui/commit/18e5947086f0a6b161b4fc0d40412a600131337f))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## [4.15.4](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.15.3...@skbkontur/react-ui@4.15.4) (2023-07-24)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* a correct republish of the previous release
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## [4.15.3](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.15.2...@skbkontur/react-ui@4.15.3) (2023-07-21)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
* **ComboBox,InputLikeText:** use `flushSync` only in React 18 ([#3206](https://github.com/skbkontur/retail-ui/issues/3206)) ([ee55374](https://github.com/skbkontur/retail-ui/commit/ee55374df69f797f1257d99250366770b513a096))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
## [4.15.2](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.15.1...@skbkontur/react-ui@4.15.2) (2023-07-17)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
### Bug Fixes
|
|
51
|
+
|
|
52
|
+
* **ComboBox:** use `flushSync` only in React@18 ([#3202](https://github.com/skbkontur/retail-ui/issues/3202)) ([9795006](https://github.com/skbkontur/retail-ui/commit/9795006c799b7266fd88bb9dcf5760148c3ad12d))
|
|
53
|
+
* **CurrencyInput:** allow to work with very small or large values ([#3200](https://github.com/skbkontur/retail-ui/issues/3200)) ([ffc234f](https://github.com/skbkontur/retail-ui/commit/ffc234f726479c9a26b3da5c1b768b061dbf52d1))
|
|
54
|
+
* **Link, Button:** add theme variables for border-bottom ([#3203](https://github.com/skbkontur/retail-ui/issues/3203)) ([d418758](https://github.com/skbkontur/retail-ui/commit/d4187586f24d943716b24ac2cfc437e69becf53e))
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## [4.15.1](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.15.0...@skbkontur/react-ui@4.15.1) (2023-07-04)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
### Bug Fixes
|
|
64
|
+
|
|
65
|
+
* allow use inherit as a linkColor ([#3185](https://github.com/skbkontur/retail-ui/issues/3185)) ([09218bb](https://github.com/skbkontur/retail-ui/commit/09218bb9bce9746e25b1894b9c3631e0a0b44785))
|
|
66
|
+
* **ComboBox:** flushSync throws an error into console ([#3189](https://github.com/skbkontur/retail-ui/issues/3189)) ([8e0d2d2](https://github.com/skbkontur/retail-ui/commit/8e0d2d20f2bd5e5f034841a8057ce4a06012d23b))
|
|
67
|
+
* **html:** get rid of type duplication ([#3188](https://github.com/skbkontur/retail-ui/issues/3188)) ([5de46a4](https://github.com/skbkontur/retail-ui/commit/5de46a4aef7728239f417c225235f9a97ec23cac))
|
|
68
|
+
* **Modal.Header, Modal.Footer:** passing common props ([#3187](https://github.com/skbkontur/retail-ui/issues/3187)) ([4aa327b](https://github.com/skbkontur/retail-ui/commit/4aa327b9b457912591c57b83342e722ae0802506))
|
|
69
|
+
* **theme:** add missing units to values ([#3184](https://github.com/skbkontur/retail-ui/issues/3184)) ([885a372](https://github.com/skbkontur/retail-ui/commit/885a372d8d6b5e3df3894cfee8f59ed685b0c056))
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
6
75
|
# [4.15.0](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.14.2...@skbkontur/react-ui@4.15.0) (2023-06-13)
|
|
7
76
|
|
|
8
77
|
|
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
var getInnerLinkTheme = function getInnerLinkTheme(theme) {
|
|
5
5
|
return _ThemeFactory.ThemeFactory.create(
|
|
6
6
|
{
|
|
7
|
-
linkLineBorderBottomColor: theme.btnLinkLineBorderBottomColor,
|
|
8
7
|
linkLineBorderBottomStyle: theme.btnLinkLineBorderBottomStyle,
|
|
8
|
+
linkLineHoverBorderBottomStyle: theme.btnLinkHoverLineBorderBottomStyle,
|
|
9
|
+
linkLineBorderBottomOpacity: theme.btnLinkLineBorderBottomOpacity,
|
|
9
10
|
linkLineBorderBottomWidth: theme.btnLinkLineBorderBottomWidth,
|
|
10
|
-
linkLineHoverBorderBottomColor: theme.btnLinkLineHoverBorderBottomColor,
|
|
11
|
-
linkLineActiveBorderBottomColor: theme.btnLinkLineActiveBorderBottomColor,
|
|
12
11
|
linkDisabledColor: theme.btnLinkDisabledColor },
|
|
13
12
|
|
|
14
13
|
theme);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["getInnerLinkTheme.ts"],"names":["getInnerLinkTheme","theme","ThemeFactory","create","
|
|
1
|
+
{"version":3,"sources":["getInnerLinkTheme.ts"],"names":["getInnerLinkTheme","theme","ThemeFactory","create","linkLineBorderBottomStyle","btnLinkLineBorderBottomStyle","linkLineHoverBorderBottomStyle","btnLinkHoverLineBorderBottomStyle","linkLineBorderBottomOpacity","btnLinkLineBorderBottomOpacity","linkLineBorderBottomWidth","btnLinkLineBorderBottomWidth","linkDisabledColor","btnLinkDisabledColor"],"mappings":"0EAAA;;;AAGO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAyB;AACxD,SAAOC,2BAAaC,MAAb;AACL;AACEC,IAAAA,yBAAyB,EAAEH,KAAK,CAACI,4BADnC;AAEEC,IAAAA,8BAA8B,EAAEL,KAAK,CAACM,iCAFxC;AAGEC,IAAAA,2BAA2B,EAAEP,KAAK,CAACQ,8BAHrC;AAIEC,IAAAA,yBAAyB,EAAET,KAAK,CAACU,4BAJnC;AAKEC,IAAAA,iBAAiB,EAAEX,KAAK,CAACY,oBAL3B,EADK;;AAQLZ,EAAAA,KARK,CAAP;;AAUD,CAXM,C","sourcesContent":["import { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const getInnerLinkTheme = (theme: Theme): Theme => {\n return ThemeFactory.create(\n {\n linkLineBorderBottomStyle: theme.btnLinkLineBorderBottomStyle,\n linkLineHoverBorderBottomStyle: theme.btnLinkHoverLineBorderBottomStyle,\n linkLineBorderBottomOpacity: theme.btnLinkLineBorderBottomOpacity,\n linkLineBorderBottomWidth: theme.btnLinkLineBorderBottomWidth,\n linkDisabledColor: theme.btnLinkDisabledColor,\n },\n theme,\n );\n};\n"]}
|
|
@@ -14,7 +14,6 @@ var _Emotion = require("../../lib/theming/Emotion");
|
|
|
14
14
|
var _rootNode = require("../../lib/rootNode");
|
|
15
15
|
var _fixFirefoxModifiedClickOnLabel = require("../../lib/events/fixFirefoxModifiedClickOnLabel");
|
|
16
16
|
var _ThemeHelpers = require("../../lib/theming/ThemeHelpers");
|
|
17
|
-
var _SSRSafe = require("../../lib/SSRSafe");
|
|
18
17
|
|
|
19
18
|
var _Checkbox = require("./Checkbox.styles");
|
|
20
19
|
var _CheckedIcon = require("./CheckedIcon");
|
|
@@ -124,13 +123,13 @@ Checkbox = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/func
|
|
|
124
123
|
_this.input.current.indeterminate = true;
|
|
125
124
|
}
|
|
126
125
|
|
|
127
|
-
|
|
128
|
-
|
|
126
|
+
document.addEventListener('keydown', _this.handleShiftPress);
|
|
127
|
+
document.addEventListener('keyup', _this.handleShiftRelease);
|
|
129
128
|
};_this.
|
|
130
129
|
|
|
131
130
|
componentWillUnmount = function () {
|
|
132
|
-
|
|
133
|
-
|
|
131
|
+
document.removeEventListener('keydown', _this.handleShiftPress);
|
|
132
|
+
document.removeEventListener('keyup', _this.handleShiftRelease);
|
|
134
133
|
};_this.
|
|
135
134
|
|
|
136
135
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Checkbox.tsx"],"names":["CheckboxDataTids","root","Checkbox","rootNode","state","focusedByTab","indeterminate","props","initialIndeterminate","isShiftPressed","input","React","createRef","handleShiftPress","e","key","setState","handleShiftRelease","componentDidMount","current","renderTarget","addEventListener","componentWillUnmount","removeEventListener","setIndeterminate","resetIndeterminate","renderMain","error","warning","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","ariaDescribedby","rest","isIndeterminate","_isTheme2022","theme","iconClass","styles","icon","iconFixPosition","checked","iconUnchecked","IconCheck","parseInt","checkboxBoxSize","IconSquare","rootClass","rootFallback","isIE11","isEdge","rootChecked","rootDisableTextSelect","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","box","boxWrapper","globalClasses","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","requestAnimationFrame","keyListener","isTabPressed","event","currentTarget","undefined","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","func"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { renderTarget } from '../../lib/SSRSafe';\n\nimport { styles, globalClasses } from './Checkbox.styles';\nimport { CheckedIcon } from './CheckedIcon';\nimport { IndeterminateIcon } from './IndeterminateIcon';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n renderTarget.addEventListener('keydown', this.handleShiftPress);\n renderTarget.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n renderTarget.removeEventListener('keydown', this.handleShiftPress);\n renderTarget.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.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 /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const _isTheme2022 = isTheme2022(this.theme);\n\n const iconClass = cx(\n styles.icon(),\n !_isTheme2022 && styles.iconFixPosition(),\n !props.checked && !isIndeterminate && styles.iconUnchecked(),\n );\n\n const IconCheck = _isTheme2022 ? (\n <span className={iconClass}>\n <CheckedIcon size={parseInt(this.theme.checkboxBoxSize)} />\n </span>\n ) : (\n <OkIcon className={iconClass} />\n );\n const IconSquare = _isTheme2022 ? (\n <span className={iconClass}>\n <IndeterminateIcon size={parseInt(this.theme.checkboxBoxSize)} />\n </span>\n ) : (\n <SquareIcon className={iconClass} />\n );\n\n const rootClass = cx({\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div className={cx(styles.boxWrapper(this.theme))}>\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} aria-describedby={ariaDescribedby} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Checkbox.tsx"],"names":["CheckboxDataTids","root","Checkbox","rootNode","state","focusedByTab","indeterminate","props","initialIndeterminate","isShiftPressed","input","React","createRef","handleShiftPress","e","key","setState","handleShiftRelease","componentDidMount","current","document","addEventListener","componentWillUnmount","removeEventListener","setIndeterminate","resetIndeterminate","renderMain","error","warning","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","ariaDescribedby","rest","isIndeterminate","_isTheme2022","theme","iconClass","styles","icon","iconFixPosition","checked","iconUnchecked","IconCheck","parseInt","checkboxBoxSize","IconSquare","rootClass","rootFallback","isIE11","isEdge","rootChecked","rootDisableTextSelect","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","box","boxWrapper","globalClasses","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","requestAnimationFrame","keyListener","isTabPressed","event","currentTarget","undefined","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","func"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles, globalClasses } from './Checkbox.styles';\nimport { CheckedIcon } from './CheckedIcon';\nimport { IndeterminateIcon } from './IndeterminateIcon';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n document.addEventListener('keydown', this.handleShiftPress);\n document.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n document.removeEventListener('keydown', this.handleShiftPress);\n document.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.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 /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const _isTheme2022 = isTheme2022(this.theme);\n\n const iconClass = cx(\n styles.icon(),\n !_isTheme2022 && styles.iconFixPosition(),\n !props.checked && !isIndeterminate && styles.iconUnchecked(),\n );\n\n const IconCheck = _isTheme2022 ? (\n <span className={iconClass}>\n <CheckedIcon size={parseInt(this.theme.checkboxBoxSize)} />\n </span>\n ) : (\n <OkIcon className={iconClass} />\n );\n const IconSquare = _isTheme2022 ? (\n <span className={iconClass}>\n <IndeterminateIcon size={parseInt(this.theme.checkboxBoxSize)} />\n </span>\n ) : (\n <SquareIcon className={iconClass} />\n );\n\n const rootClass = cx({\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div className={cx(styles.boxWrapper(this.theme))}>\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} aria-describedby={ariaDescribedby} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
|
|
@@ -69,8 +69,7 @@ CurrencyHelper = /*#__PURE__*/function () {function CurrencyHelper() {}CurrencyH
|
|
|
69
69
|
if ((0, _utils.isNullable)(value)) {
|
|
70
70
|
return '';
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
return CurrencyHelper.formatString(value.toString(), options);
|
|
72
|
+
return CurrencyHelper.formatString(this.toDecimalString(value), options);
|
|
74
73
|
};CurrencyHelper.
|
|
75
74
|
|
|
76
75
|
parse = function parse(value) {
|
|
@@ -202,10 +201,26 @@ CurrencyHelper = /*#__PURE__*/function () {function CurrencyHelper() {}CurrencyH
|
|
|
202
201
|
};CurrencyHelper.
|
|
203
202
|
|
|
204
203
|
destructString = function destructString(value) {
|
|
205
|
-
var match = /^(-)?(\d*)?(\.)?(\d*)?$/.exec(value);
|
|
204
|
+
var match = /^(-)?(\d*)?(\.)?(\d*)?(e)?([-+]?\d+)?$/.exec(value);
|
|
206
205
|
if (!match) {
|
|
207
206
|
return null;
|
|
208
207
|
}
|
|
209
|
-
var _match$ = match[1],sign = _match$ === void 0 ? '' : _match$,_match$2 = match[2],integer = _match$2 === void 0 ? '' : _match$2,_match$3 = match[3],delimiter = _match$3 === void 0 ? '' : _match$3,_match$4 = match[4],fraction = _match$4 === void 0 ? '' : _match$4;
|
|
210
|
-
return { sign: sign, integer: integer, delimiter: delimiter, fraction: fraction };
|
|
211
|
-
};return CurrencyHelper;}();exports.CurrencyHelper = CurrencyHelper;CurrencyHelper.defaultOptions = { fractionDigits: null, hideTrailingZeros: false, thousandsDelimiter: _client.isSafari ? _constants.SPACE : _constants.THIN_SPACE, minusSign: _constants.MINUS_SIGN };
|
|
208
|
+
var _match$ = match[1],sign = _match$ === void 0 ? '' : _match$,_match$2 = match[2],integer = _match$2 === void 0 ? '' : _match$2,_match$3 = match[3],delimiter = _match$3 === void 0 ? '' : _match$3,_match$4 = match[4],fraction = _match$4 === void 0 ? '' : _match$4,_match$5 = match[6],exponent = _match$5 === void 0 ? '' : _match$5;
|
|
209
|
+
return { sign: sign, integer: integer, delimiter: delimiter, fraction: fraction, exponent: exponent };
|
|
210
|
+
};return CurrencyHelper;}();exports.CurrencyHelper = CurrencyHelper;CurrencyHelper.defaultOptions = { fractionDigits: null, hideTrailingZeros: false, thousandsDelimiter: _client.isSafari ? _constants.SPACE : _constants.THIN_SPACE, minusSign: _constants.MINUS_SIGN };CurrencyHelper.
|
|
211
|
+
|
|
212
|
+
toDecimalString = function (number) {
|
|
213
|
+
if (!number.toString().includes('e')) {
|
|
214
|
+
return number.toString();
|
|
215
|
+
}
|
|
216
|
+
var destructed = CurrencyHelper.destructString(number.toExponential());
|
|
217
|
+
if (destructed === null) {
|
|
218
|
+
return '';
|
|
219
|
+
}
|
|
220
|
+
var _destructed$sign = destructed.sign,sign = _destructed$sign === void 0 ? '' : _destructed$sign,integer = destructed.integer,fraction = destructed.fraction,exponent = destructed.exponent;
|
|
221
|
+
var intExponent = parseInt(exponent || '0');
|
|
222
|
+
if (intExponent > 0) {
|
|
223
|
+
return [sign, integer, fraction, '0'.repeat(intExponent - fraction.length)].join('');
|
|
224
|
+
}
|
|
225
|
+
return [sign, '0.', ' 0'.repeat(-intExponent - 1), integer, fraction].join('');
|
|
226
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CurrencyHelper.tsx"],"names":["CurrencyHelper","getOptions","options","defaultOptions","getInfo","value","raw","unformatString","formatted","formatString","cursorMap","getCursorMap","formattingOptions","regexp","RegExp","thousandsDelimiter","index","length","cursor","skip","ignoredSymbol","exec","format","toString","parse","cleaned","destructed","destructString","result","sign","integer","delimiter","fraction","parseFloat","replace","formatForClipboard","unformattedValue","fractionDigits","hideTrailingZeros","parts","blockSize","start","i","push","substring","Math","max","join","padEnd","min","MAX_SAFE_DIGITS","minusSign","isValidString","unsigned","integerDigits","extractValid","match","token","substr","MAX_ALLOWED_CHARS","isSafari","SPACE","THIN_SPACE","MINUS_SIGN"],"mappings":"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","sourcesContent":["import { isNonNullable, isNullable } from '../../lib/utils';\nimport { Nullable } from '../../typings/utility-types';\nimport { isSafari } from '../../lib/client';\n\nimport { DecimalOptions } from './CurrencyInputHelper';\nimport { CursorMap } from './CursorHelper';\nimport { MAX_ALLOWED_CHARS, MAX_SAFE_DIGITS, MINUS_SIGN, SPACE, THIN_SPACE } from './constants';\n\nexport interface DecimalFormattingOptions {\n fractionDigits?: Nullable<number>;\n hideTrailingZeros?: boolean;\n thousandsDelimiter?: string;\n minusSign?: string;\n}\n\ntype DecimalFormattingOptionsInternal = Required<DecimalFormattingOptions>;\n\nexport interface FormattingInfo {\n raw: string;\n formatted: string;\n cursorMap: CursorMap;\n}\n\nexport class CurrencyHelper {\n public static defaultOptions: DecimalFormattingOptionsInternal = {\n fractionDigits: null,\n hideTrailingZeros: false,\n thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,\n minusSign: MINUS_SIGN,\n };\n\n public static getOptions(options?: Nullable<DecimalFormattingOptions>): DecimalFormattingOptionsInternal {\n return { ...CurrencyHelper.defaultOptions, ...options };\n }\n\n public static getInfo(value: string, options?: Nullable<DecimalFormattingOptions>): FormattingInfo {\n const raw = CurrencyHelper.unformatString(value);\n const formatted = CurrencyHelper.formatString(value, options);\n const cursorMap = CurrencyHelper.getCursorMap(formatted, options);\n\n return { raw, formatted, cursorMap };\n }\n\n public static getCursorMap(formatted: string, formattingOptions?: Nullable<DecimalFormattingOptions>): CursorMap {\n const options = CurrencyHelper.getOptions(formattingOptions);\n const regexp = new RegExp(options.thousandsDelimiter);\n const cursorMap: CursorMap = [];\n\n let index = formatted.length;\n let cursor = formatted.length;\n let skip = 0;\n\n while (index >= 0) {\n cursorMap[index] = cursor;\n\n const ignoredSymbol = regexp.exec(formatted[index - 1]);\n if (ignoredSymbol) {\n ++skip;\n } else {\n cursor = cursor - skip - 1;\n skip = 0;\n }\n --index;\n }\n return cursorMap;\n }\n\n public static format(value: Nullable<number>, options?: Nullable<DecimalFormattingOptions>): string {\n if (isNullable(value)) {\n return '';\n }\n\n return CurrencyHelper.formatString(value.toString(), options);\n }\n\n public static parse(value: string): Nullable<number> {\n const cleaned = CurrencyHelper.unformatString(value);\n if (!cleaned) {\n return null;\n }\n\n const destructed = CurrencyHelper.destructString(cleaned);\n if (!destructed) {\n return null;\n }\n\n const result =\n destructed.sign + (destructed.integer || '0') + (destructed.delimiter || '.') + (destructed.fraction || '0');\n\n return parseFloat(result);\n }\n\n public static unformatString(value: string): string {\n return value\n .replace(/\\s/g, '')\n .replace(',', '.')\n .replace(/[\\u2212\\u002D\\uFE63\\uFF0D\\u2012\\u2013\\u2014\\u2015]/g, '-');\n }\n\n public static formatForClipboard(value: string): string {\n return CurrencyHelper.unformatString(value).replace('.', ',');\n }\n\n public static formatString(value: string, formattingOptions?: Nullable<DecimalFormattingOptions>): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue) || {\n sign: '',\n integer: '',\n delimiter: '',\n fraction: '',\n };\n\n const { sign, integer, delimiter } = destructed;\n let fraction = destructed.fraction;\n let fractionDigits = fraction.length;\n\n const options = CurrencyHelper.getOptions(formattingOptions);\n if (options.hideTrailingZeros) {\n fraction = fraction.replace(/0+$/, '');\n fractionDigits = fraction.length;\n } else if (options.fractionDigits !== null) {\n fractionDigits = options.fractionDigits;\n }\n\n const parts = [];\n\n const blockSize = 3;\n const start = ((integer.length - 1) % blockSize) - blockSize + 1;\n for (let i = start; i < integer.length; i += blockSize) {\n parts.push(integer.substring(Math.max(i, 0), i + blockSize));\n }\n\n let result = parts.join(options.thousandsDelimiter);\n\n if (delimiter || fractionDigits) {\n result += ',';\n result += fraction.padEnd(Math.min(fractionDigits, MAX_SAFE_DIGITS), '0');\n }\n\n if (sign) {\n result = options.minusSign + result;\n }\n\n return result;\n }\n\n public static isValidString(value: string, options: DecimalOptions) {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue);\n\n if (!destructed) {\n return false;\n }\n\n const { sign, integer, delimiter, fraction } = destructed;\n\n if (options.unsigned && sign) {\n return false;\n }\n\n if (options.fractionDigits === 0 && delimiter) {\n return false;\n }\n\n const integerDigits = integer === '0' ? 0 : integer.length;\n const fractionDigits = fraction.length;\n\n if (isNonNullable(options.integerDigits) && integerDigits > options.integerDigits) {\n return false;\n }\n\n if (isNullable(options.integerDigits) && integerDigits > MAX_SAFE_DIGITS - (options.fractionDigits || 0)) {\n return false;\n }\n\n if (isNonNullable(options.fractionDigits) && fractionDigits > options.fractionDigits) {\n return false;\n }\n\n return integerDigits + fractionDigits <= MAX_SAFE_DIGITS;\n }\n\n public static extractValid(value: string, options: DecimalOptions): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n\n const match = /[-.\\d]+/.exec(unformattedValue);\n\n if (!match) {\n return '';\n }\n\n const token = match[0].substr(0, MAX_ALLOWED_CHARS);\n\n for (let i = token.length; i >= 0; --i) {\n const result = token.substr(0, i);\n if (CurrencyHelper.isValidString(result, options)) {\n return result;\n }\n }\n\n return '';\n }\n\n public static destructString(value: string) {\n const match = /^(-)?(\\d*)?(\\.)?(\\d*)?$/.exec(value);\n if (!match) {\n return null;\n }\n const [, sign = '', integer = '', delimiter = '', fraction = ''] = match;\n return { sign, integer, delimiter, fraction };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["CurrencyHelper.tsx"],"names":["CurrencyHelper","getOptions","options","defaultOptions","getInfo","value","raw","unformatString","formatted","formatString","cursorMap","getCursorMap","formattingOptions","regexp","RegExp","thousandsDelimiter","index","length","cursor","skip","ignoredSymbol","exec","format","toDecimalString","parse","cleaned","destructed","destructString","result","sign","integer","delimiter","fraction","parseFloat","replace","formatForClipboard","unformattedValue","fractionDigits","hideTrailingZeros","parts","blockSize","start","i","push","substring","Math","max","join","padEnd","min","MAX_SAFE_DIGITS","minusSign","isValidString","unsigned","integerDigits","extractValid","match","token","substr","MAX_ALLOWED_CHARS","exponent","isSafari","SPACE","THIN_SPACE","MINUS_SIGN","number","toString","includes","toExponential","intExponent","parseInt","repeat"],"mappings":"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","sourcesContent":["import { isNonNullable, isNullable } from '../../lib/utils';\nimport { Nullable } from '../../typings/utility-types';\nimport { isSafari } from '../../lib/client';\n\nimport { DecimalOptions } from './CurrencyInputHelper';\nimport { CursorMap } from './CursorHelper';\nimport { MAX_ALLOWED_CHARS, MAX_SAFE_DIGITS, MINUS_SIGN, SPACE, THIN_SPACE } from './constants';\n\nexport interface DecimalFormattingOptions {\n fractionDigits?: Nullable<number>;\n hideTrailingZeros?: boolean;\n thousandsDelimiter?: string;\n minusSign?: string;\n}\n\ntype DecimalFormattingOptionsInternal = Required<DecimalFormattingOptions>;\n\nexport interface FormattingInfo {\n raw: string;\n formatted: string;\n cursorMap: CursorMap;\n}\n\nexport class CurrencyHelper {\n public static defaultOptions: DecimalFormattingOptionsInternal = {\n fractionDigits: null,\n hideTrailingZeros: false,\n thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,\n minusSign: MINUS_SIGN,\n };\n\n public static getOptions(options?: Nullable<DecimalFormattingOptions>): DecimalFormattingOptionsInternal {\n return { ...CurrencyHelper.defaultOptions, ...options };\n }\n\n public static getInfo(value: string, options?: Nullable<DecimalFormattingOptions>): FormattingInfo {\n const raw = CurrencyHelper.unformatString(value);\n const formatted = CurrencyHelper.formatString(value, options);\n const cursorMap = CurrencyHelper.getCursorMap(formatted, options);\n\n return { raw, formatted, cursorMap };\n }\n\n public static getCursorMap(formatted: string, formattingOptions?: Nullable<DecimalFormattingOptions>): CursorMap {\n const options = CurrencyHelper.getOptions(formattingOptions);\n const regexp = new RegExp(options.thousandsDelimiter);\n const cursorMap: CursorMap = [];\n\n let index = formatted.length;\n let cursor = formatted.length;\n let skip = 0;\n\n while (index >= 0) {\n cursorMap[index] = cursor;\n\n const ignoredSymbol = regexp.exec(formatted[index - 1]);\n if (ignoredSymbol) {\n ++skip;\n } else {\n cursor = cursor - skip - 1;\n skip = 0;\n }\n --index;\n }\n return cursorMap;\n }\n\n public static format(value: Nullable<number>, options?: Nullable<DecimalFormattingOptions>): string {\n if (isNullable(value)) {\n return '';\n }\n return CurrencyHelper.formatString(this.toDecimalString(value), options);\n }\n\n public static parse(value: string): Nullable<number> {\n const cleaned = CurrencyHelper.unformatString(value);\n if (!cleaned) {\n return null;\n }\n\n const destructed = CurrencyHelper.destructString(cleaned);\n if (!destructed) {\n return null;\n }\n\n const result =\n destructed.sign + (destructed.integer || '0') + (destructed.delimiter || '.') + (destructed.fraction || '0');\n\n return parseFloat(result);\n }\n\n public static unformatString(value: string): string {\n return value\n .replace(/\\s/g, '')\n .replace(',', '.')\n .replace(/[\\u2212\\u002D\\uFE63\\uFF0D\\u2012\\u2013\\u2014\\u2015]/g, '-');\n }\n\n public static formatForClipboard(value: string): string {\n return CurrencyHelper.unformatString(value).replace('.', ',');\n }\n\n public static formatString(value: string, formattingOptions?: Nullable<DecimalFormattingOptions>): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue) || {\n sign: '',\n integer: '',\n delimiter: '',\n fraction: '',\n };\n\n const { sign, integer, delimiter } = destructed;\n let fraction = destructed.fraction;\n let fractionDigits = fraction.length;\n\n const options = CurrencyHelper.getOptions(formattingOptions);\n if (options.hideTrailingZeros) {\n fraction = fraction.replace(/0+$/, '');\n fractionDigits = fraction.length;\n } else if (options.fractionDigits !== null) {\n fractionDigits = options.fractionDigits;\n }\n\n const parts = [];\n\n const blockSize = 3;\n const start = ((integer.length - 1) % blockSize) - blockSize + 1;\n for (let i = start; i < integer.length; i += blockSize) {\n parts.push(integer.substring(Math.max(i, 0), i + blockSize));\n }\n\n let result = parts.join(options.thousandsDelimiter);\n\n if (delimiter || fractionDigits) {\n result += ',';\n result += fraction.padEnd(Math.min(fractionDigits, MAX_SAFE_DIGITS), '0');\n }\n\n if (sign) {\n result = options.minusSign + result;\n }\n\n return result;\n }\n\n public static isValidString(value: string, options: DecimalOptions) {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue);\n\n if (!destructed) {\n return false;\n }\n\n const { sign, integer, delimiter, fraction } = destructed;\n\n if (options.unsigned && sign) {\n return false;\n }\n\n if (options.fractionDigits === 0 && delimiter) {\n return false;\n }\n\n const integerDigits = integer === '0' ? 0 : integer.length;\n const fractionDigits = fraction.length;\n\n if (isNonNullable(options.integerDigits) && integerDigits > options.integerDigits) {\n return false;\n }\n\n if (isNullable(options.integerDigits) && integerDigits > MAX_SAFE_DIGITS - (options.fractionDigits || 0)) {\n return false;\n }\n\n if (isNonNullable(options.fractionDigits) && fractionDigits > options.fractionDigits) {\n return false;\n }\n\n return integerDigits + fractionDigits <= MAX_SAFE_DIGITS;\n }\n\n public static extractValid(value: string, options: DecimalOptions): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n\n const match = /[-.\\d]+/.exec(unformattedValue);\n\n if (!match) {\n return '';\n }\n\n const token = match[0].substr(0, MAX_ALLOWED_CHARS);\n\n for (let i = token.length; i >= 0; --i) {\n const result = token.substr(0, i);\n if (CurrencyHelper.isValidString(result, options)) {\n return result;\n }\n }\n\n return '';\n }\n\n public static destructString(value: string) {\n const match = /^(-)?(\\d*)?(\\.)?(\\d*)?(e)?([-+]?\\d+)?$/.exec(value);\n if (!match) {\n return null;\n }\n const [, sign = '', integer = '', delimiter = '', fraction = '', , exponent = ''] = match;\n return { sign, integer, delimiter, fraction, exponent };\n }\n\n private static toDecimalString = (number: number) => {\n if (!number.toString().includes('e')) {\n return number.toString();\n }\n const destructed = this.destructString(number.toExponential());\n if (destructed === null) {\n return '';\n }\n const { sign = '', integer, fraction, exponent } = destructed;\n const intExponent = parseInt(exponent || '0');\n if (intExponent > 0) {\n return [sign, integer, fraction, '0'.repeat(intExponent - fraction.length)].join('');\n }\n return [sign, '0.', ' 0'.repeat(-intExponent - 1), integer, fraction].join('');\n };\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
export declare const commaAliases: ((e:
|
|
2
|
+
export declare const commaAliases: ((e: import("react").KeyboardEvent<HTMLElement> | KeyboardEvent) => boolean)[];
|
|
3
3
|
export declare const CURRENCY_INPUT_ACTIONS: {
|
|
4
4
|
Unknown: number;
|
|
5
5
|
Ignore: number;
|
|
@@ -6,7 +6,6 @@ var _types = require("../../lib/date/types");
|
|
|
6
6
|
|
|
7
7
|
var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
8
8
|
var _Emotion = require("../../lib/theming/Emotion");
|
|
9
|
-
var _SSRSafe = require("../../lib/SSRSafe");
|
|
10
9
|
|
|
11
10
|
var _DateFragmentsView = require("./DateFragmentsView.styles");var
|
|
12
11
|
|
|
@@ -108,4 +107,4 @@ DateFragmentsView = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose
|
|
|
108
107
|
|
|
109
108
|
rootRef = function (el) {
|
|
110
109
|
_this.rootNode = el;
|
|
111
|
-
};return _this;}var _proto = DateFragmentsView.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this3 = this;return /*#__PURE__*/_react.default.createElement("span", { ref: this.rootRef, className: _DateFragmentsView.styles.root(this.theme) }, this.props.fragments.map(function (fragment, index) {return fragment.type === _types.InternalDateComponentType.Separator ? _this3.renderSeparator(fragment, index) : _this3.renderDateComponent(fragment, index);}));};_proto.renderSeparator = function renderSeparator(fragment, index) {var _cx;var separatorClassName = (0, _Emotion.cx)((_cx = {}, _cx[_DateFragmentsView.styles.mask(this.theme)] = true, _cx[_DateFragmentsView.styles.delimiterFilled()] = this.props.fragments[index + 1].value !== null, _cx));return /*#__PURE__*/_react.default.createElement("span", { key: index, className: separatorClassName }, fragment.value);};_proto.renderDateComponent = function renderDateComponent(fragment, index) {var _this$props = this.props,inputMode = _this$props.inputMode,onSelectDateComponent = _this$props.onSelectDateComponent,selected = _this$props.selected;var type = fragment.type,value = fragment.value,length = fragment.length,valueWithPad = fragment.valueWithPad;var getValueMask = function getValueMask() {if (value === null || selected === type && inputMode) {return value;}return valueWithPad || value;};var valueMask = getValueMask();var lengthMask = _InternalDateValidator.InternalDateValidator.testParseToNumber(valueMask) ? Math.max(length - valueMask.toString().length, 0) : length;var handleMouseUp = function handleMouseUp(e) {if (
|
|
110
|
+
};return _this;}var _proto = DateFragmentsView.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this3 = this;return /*#__PURE__*/_react.default.createElement("span", { ref: this.rootRef, className: _DateFragmentsView.styles.root(this.theme) }, this.props.fragments.map(function (fragment, index) {return fragment.type === _types.InternalDateComponentType.Separator ? _this3.renderSeparator(fragment, index) : _this3.renderDateComponent(fragment, index);}));};_proto.renderSeparator = function renderSeparator(fragment, index) {var _cx;var separatorClassName = (0, _Emotion.cx)((_cx = {}, _cx[_DateFragmentsView.styles.mask(this.theme)] = true, _cx[_DateFragmentsView.styles.delimiterFilled()] = this.props.fragments[index + 1].value !== null, _cx));return /*#__PURE__*/_react.default.createElement("span", { key: index, className: separatorClassName }, fragment.value);};_proto.renderDateComponent = function renderDateComponent(fragment, index) {var _this$props = this.props,inputMode = _this$props.inputMode,onSelectDateComponent = _this$props.onSelectDateComponent,selected = _this$props.selected;var type = fragment.type,value = fragment.value,length = fragment.length,valueWithPad = fragment.valueWithPad;var getValueMask = function getValueMask() {if (value === null || selected === type && inputMode) {return value;}return valueWithPad || value;};var valueMask = getValueMask();var lengthMask = _InternalDateValidator.InternalDateValidator.testParseToNumber(valueMask) ? Math.max(length - valueMask.toString().length, 0) : length;var handleMouseUp = function handleMouseUp(e) {if (document.activeElement && document.activeElement.contains(e.currentTarget)) {onSelectDateComponent(type, e);}};return /*#__PURE__*/_react.default.createElement("span", { key: index, "data-fragment": "", onMouseUp: handleMouseUp }, valueMask, /*#__PURE__*/_react.default.createElement("span", { "data-tid": "DateFragmentsView__placeholder", className: _DateFragmentsView.styles.mask(this.theme) }, Array(lengthMask).fill('').map(function (_, i) {return /*#__PURE__*/_react.default.createElement(_MaskCharLowLine.MaskCharLowLine, { key: i });})));};return DateFragmentsView;}(_react.default.Component);exports.DateFragmentsView = DateFragmentsView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DateFragmentsView.tsx"],"names":["DateFragmentsView","rootNode","isFragment","el","fragments","Array","from","querySelectorAll","some","fragment","contains","getRootNode","rootRef","render","theme","renderMain","styles","root","props","map","index","type","InternalDateComponentType","Separator","renderSeparator","renderDateComponent","separatorClassName","mask","delimiterFilled","value","inputMode","onSelectDateComponent","selected","length","valueWithPad","getValueMask","valueMask","lengthMask","InternalDateValidator","testParseToNumber","Math","max","toString","handleMouseUp","e","
|
|
1
|
+
{"version":3,"sources":["DateFragmentsView.tsx"],"names":["DateFragmentsView","rootNode","isFragment","el","fragments","Array","from","querySelectorAll","some","fragment","contains","getRootNode","rootRef","render","theme","renderMain","styles","root","props","map","index","type","InternalDateComponentType","Separator","renderSeparator","renderDateComponent","separatorClassName","mask","delimiterFilled","value","inputMode","onSelectDateComponent","selected","length","valueWithPad","getValueMask","valueMask","lengthMask","InternalDateValidator","testParseToNumber","Math","max","toString","handleMouseUp","e","document","activeElement","currentTarget","fill","_","i","React","Component"],"mappings":"6PAAA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+D;;;;;;;;;AASaA,iB;;AAEHC,IAAAA,Q,GAAmC,I;;AAEpCC,IAAAA,U,GAAa,UAACC,EAAD,EAA4C;AAC9D,UAAI,MAAKF,QAAT,EAAmB;AACjB;AACA,YAAMG,SAA4B,GAAGC,KAAK,CAACC,IAAN,CAAW,MAAKL,QAAL,CAAcM,gBAAd,CAA+B,iBAA/B,CAAX,CAArC;AACA,eAAOH,SAAS,CAACI,IAAV,CAAe,UAACC,QAAD,UAAcA,QAAQ,KAAKN,EAAb,IAAmBM,QAAQ,CAACC,QAAT,CAAkBP,EAAlB,CAAjC,EAAf,CAAP;AACD;AACD,aAAO,KAAP;AACD,K;;AAEMQ,IAAAA,W,GAAc,oBAAM,MAAKV,QAAX,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4EbW,IAAAA,O,GAAU,UAACT,EAAD,EAAgC;AAChD,YAAKF,QAAL,GAAgBE,EAAhB;AACD,K,+DA5EMU,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEOA,U,GAAR,sBAAqB,mBACnB,oBACE,uCAAM,GAAG,EAAE,KAAKH,OAAhB,EAAyB,SAAS,EAAEI,0BAAOC,IAAP,CAAY,KAAKH,KAAjB,CAApC,IACG,KAAKI,KAAL,CAAWd,SAAX,CAAqBe,GAArB,CAAyB,UAACV,QAAD,EAAWW,KAAX,UACxBX,QAAQ,CAACY,IAAT,KAAkBC,iCAA0BC,SAA5C,GACI,MAAI,CAACC,eAAL,CAAqBf,QAArB,EAA+BW,KAA/B,CADJ,GAEI,MAAI,CAACK,mBAAL,CAAyBhB,QAAzB,EAAmCW,KAAnC,CAHoB,EAAzB,CADH,CADF,CASD,C,QAEOI,e,GAAR,yBAAwBf,QAAxB,EAAwDW,KAAxD,EAAoF,SAClF,IAAMM,kBAAkB,GAAG,gCACxBV,0BAAOW,IAAP,CAAY,KAAKb,KAAjB,CADwB,IACE,IADF,MAExBE,0BAAOY,eAAP,EAFwB,IAEG,KAAKV,KAAL,CAAWd,SAAX,CAAqBgB,KAAK,GAAG,CAA7B,EAAgCS,KAAhC,KAA0C,IAF7C,OAA3B,CAKA,oBACE,uCAAM,GAAG,EAAET,KAAX,EAAkB,SAAS,EAAEM,kBAA7B,IACGjB,QAAQ,CAACoB,KADZ,CADF,CAKD,C,QAEOJ,mB,GAAR,6BAA4BhB,QAA5B,EAA4DW,KAA5D,EAAwF,CACtF,kBAAuD,KAAKF,KAA5D,CAAQY,SAAR,eAAQA,SAAR,CAAmBC,qBAAnB,eAAmBA,qBAAnB,CAA0CC,QAA1C,eAA0CA,QAA1C,CACA,IAAQX,IAAR,GAA8CZ,QAA9C,CAAQY,IAAR,CAAcQ,KAAd,GAA8CpB,QAA9C,CAAcoB,KAAd,CAAqBI,MAArB,GAA8CxB,QAA9C,CAAqBwB,MAArB,CAA6BC,YAA7B,GAA8CzB,QAA9C,CAA6ByB,YAA7B,CAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,GAAM,CACzB,IAAIN,KAAK,KAAK,IAAV,IAAmBG,QAAQ,KAAKX,IAAb,IAAqBS,SAA5C,EAAwD,CACtD,OAAOD,KAAP,CACD,CAED,OAAOK,YAAY,IAAIL,KAAvB,CACD,CAND,CAQA,IAAMO,SAAS,GAAGD,YAAY,EAA9B,CAEA,IAAME,UAAU,GAAGC,6CAAsBC,iBAAtB,CAAwCH,SAAxC,IACfI,IAAI,CAACC,GAAL,CAASR,MAAM,GAAGG,SAAS,CAACM,QAAV,GAAqBT,MAAvC,EAA+C,CAA/C,CADe,GAEfA,MAFJ,CAIA,IAAMU,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD,EAA0C,CAC9D,IAAIC,QAAQ,CAACC,aAAT,IAA0BD,QAAQ,CAACC,aAAT,CAAuBpC,QAAvB,CAAgCkC,CAAC,CAACG,aAAlC,CAA9B,EAAgF,CAC9EhB,qBAAqB,CAACV,IAAD,EAAOuB,CAAP,CAArB,CACD,CACF,CAJD,CAMA,oBACE,uCAAM,GAAG,EAAExB,KAAX,EAAkB,iBAAc,EAAhC,EAAmC,SAAS,EAAEuB,aAA9C,IACGP,SADH,eAEE,uCAAM,YAAS,gCAAf,EAAgD,SAAS,EAAEpB,0BAAOW,IAAP,CAAY,KAAKb,KAAjB,CAA3D,IACGT,KAAK,CAACgC,UAAD,CAAL,CACEW,IADF,CACO,EADP,EAEE7B,GAFF,CAEM,UAAC8B,CAAD,EAAIC,CAAJ,uBACH,6BAAC,gCAAD,IAAiB,GAAG,EAAEA,CAAtB,GADG,EAFN,CADH,CAFF,CADF,CAYD,C,4BAvFoCC,eAAMC,S","sourcesContent":["import React from 'react';\n\nimport { MaskCharLowLine } from '../../internal/MaskCharLowLine';\nimport { InternalDateValidator } from '../../lib/date/InternalDateValidator';\nimport { InternalDateComponentType, InternalDateFragment } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } 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\nexport class DateFragmentsView extends React.Component<DateFragmentViewProps> {\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 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 ref={this.rootRef} className={styles.root(this.theme)}>\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 = cx({\n [styles.mask(this.theme)]: true,\n [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 (document.activeElement && 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={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"]}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
"use strict";exports.__esModule = true;exports.selectNodeContents = exports.removeAllSelections = void 0;var
|
|
2
|
-
|
|
3
|
-
var selectNodeContents = function selectNodeContents(node, start, end) {
|
|
1
|
+
"use strict";exports.__esModule = true;exports.selectNodeContents = exports.removeAllSelections = void 0;var selectNodeContents = function selectNodeContents(node, start, end) {
|
|
4
2
|
if (!node) {
|
|
5
3
|
return;
|
|
6
4
|
}
|
|
7
|
-
if ('createRange' in
|
|
5
|
+
if ('createRange' in document) {
|
|
8
6
|
try {
|
|
9
|
-
var selection =
|
|
10
|
-
var range =
|
|
7
|
+
var selection = window.getSelection();
|
|
8
|
+
var range = window.document.createRange();
|
|
11
9
|
if (start !== undefined && end !== undefined) {
|
|
12
10
|
range.setStart(node, start);
|
|
13
11
|
range.setEnd(node, end);
|
|
@@ -26,9 +24,9 @@ var selectNodeContents = function selectNodeContents(node, start, end) {
|
|
|
26
24
|
}
|
|
27
25
|
|
|
28
26
|
// @ts-expect-error: IE-specific API.
|
|
29
|
-
if (typeof
|
|
27
|
+
if (typeof document.body.createTextRange === 'function') {
|
|
30
28
|
// @ts-expect-error: Read the comment above.
|
|
31
|
-
var _range =
|
|
29
|
+
var _range = document.body.createTextRange();
|
|
32
30
|
_range.moveToElementText(node);
|
|
33
31
|
if (typeof _range.select === 'function') {
|
|
34
32
|
_range.select();
|
|
@@ -38,7 +36,7 @@ var selectNodeContents = function selectNodeContents(node, start, end) {
|
|
|
38
36
|
};exports.selectNodeContents = selectNodeContents;
|
|
39
37
|
|
|
40
38
|
var removeAllSelections = function removeAllSelections() {
|
|
41
|
-
var selection =
|
|
39
|
+
var selection = window.getSelection();
|
|
42
40
|
if (selection !== null) {
|
|
43
41
|
try {
|
|
44
42
|
// Fix IE from issue not working (https://github.com/skbkontur/retail-ui/issues/1205)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SelectionHelpers.tsx"],"names":["selectNodeContents","node","start","end","
|
|
1
|
+
{"version":3,"sources":["SelectionHelpers.tsx"],"names":["selectNodeContents","node","start","end","document","selection","window","getSelection","range","createRange","undefined","setStart","setEnd","removeAllRanges","addRange","e","body","createTextRange","moveToElementText","select","removeAllSelections"],"mappings":"yGAAO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,IAAD,EAA2BC,KAA3B,EAA2CC,GAA3C,EAA4D;AAC5F,MAAI,CAACF,IAAL,EAAW;AACT;AACD;AACD,MAAI,iBAAiBG,QAArB,EAA+B;AAC7B,QAAI;AACF,UAAMC,SAAS,GAAGC,MAAM,CAACC,YAAP,EAAlB;AACA,UAAMC,KAAK,GAAGF,MAAM,CAACF,QAAP,CAAgBK,WAAhB,EAAd;AACA,UAAIP,KAAK,KAAKQ,SAAV,IAAuBP,GAAG,KAAKO,SAAnC,EAA8C;AAC5CF,QAAAA,KAAK,CAACG,QAAN,CAAeV,IAAf,EAAqBC,KAArB;AACAM,QAAAA,KAAK,CAACI,MAAN,CAAaX,IAAb,EAAmBE,GAAnB;AACD,OAHD,MAGO;AACLK,QAAAA,KAAK,CAACR,kBAAN,CAAyBC,IAAzB;AACD;AACD,UAAII,SAAS,KAAK,IAAlB,EAAwB;AACtB;AACAA,QAAAA,SAAS,CAACQ,eAAV;AACAR,QAAAA,SAAS,CAACS,QAAV,CAAmBN,KAAnB;AACA;AACD;AACF,KAfD,CAeE,OAAOO,CAAP,EAAU;AACV;AACD;AACF;;AAED;AACA,MAAI,OAAOX,QAAQ,CAACY,IAAT,CAAcC,eAArB,KAAyC,UAA7C,EAAyD;AACvD;AACA,QAAMT,MAAK,GAAGJ,QAAQ,CAACY,IAAT,CAAcC,eAAd,EAAd;AACAT,IAAAA,MAAK,CAACU,iBAAN,CAAwBjB,IAAxB;AACA,QAAI,OAAOO,MAAK,CAACW,MAAb,KAAwB,UAA5B,EAAwC;AACtCX,MAAAA,MAAK,CAACW,MAAN;AACD;AACD;AACD;AACF,CAnCM,C;;AAqCA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AACvC,MAAMf,SAAS,GAAGC,MAAM,CAACC,YAAP,EAAlB;AACA,MAAIF,SAAS,KAAK,IAAlB,EAAwB;AACtB,QAAI;AACF;AACAA,MAAAA,SAAS,CAACQ,eAAV;AACD,KAHD,CAGE,OAAOE,CAAP,EAAU;AACV;AACD;AACF;AACF,CAVM,C","sourcesContent":["export const selectNodeContents = (node: HTMLElement | null, start?: number, end?: number) => {\n if (!node) {\n return;\n }\n if ('createRange' in document) {\n try {\n const selection = window.getSelection();\n const range = window.document.createRange();\n if (start !== undefined && end !== undefined) {\n range.setStart(node, start);\n range.setEnd(node, end);\n } else {\n range.selectNodeContents(node);\n }\n if (selection !== null) {\n // Fix IE from issue not working (https://github.com/skbkontur/retail-ui/issues/1205)\n selection.removeAllRanges();\n selection.addRange(range);\n return;\n }\n } catch (e) {\n // empty block\n }\n }\n\n // @ts-expect-error: IE-specific API.\n if (typeof document.body.createTextRange === 'function') {\n // @ts-expect-error: Read the comment above.\n const range = document.body.createTextRange();\n range.moveToElementText(node);\n if (typeof range.select === 'function') {\n range.select();\n }\n return;\n }\n};\n\nexport const removeAllSelections = () => {\n const selection = window.getSelection();\n if (selection !== null) {\n try {\n // Fix IE from issue not working (https://github.com/skbkontur/retail-ui/issues/1205)\n selection.removeAllRanges();\n } catch (e) {\n // empty block\n }\n }\n};\n"]}
|
|
@@ -21,7 +21,6 @@ var _CommonWrapper = require("../../internal/CommonWrapper");
|
|
|
21
21
|
var _FileUploaderFileValidationResult = require("../../internal/FileUploaderControl/FileUploaderFileValidationResult");
|
|
22
22
|
var _useFileUploaderSize = require("../../internal/FileUploaderControl/hooks/useFileUploaderSize");
|
|
23
23
|
var _ThemeHelpers = require("../../lib/theming/ThemeHelpers");
|
|
24
|
-
var _SSRSafe = require("../../lib/SSRSafe");
|
|
25
24
|
|
|
26
25
|
var _UploadIcon = require("./UploadIcon");
|
|
27
26
|
var _FileUploader2 = require("./FileUploader.styles");var _excluded = ["disabled", "error", "warning", "multiple", "width", "hideFiles", "onBlur", "onFocus", "onChange", "request", "validateBeforeUpload", "onRequestSuccess", "onRequestError", "size", "renderFile"];function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}
|
|
@@ -205,7 +204,7 @@ var _FileUploader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
205
204
|
var _useDrop2 = (0, _useDrop3.useDrop)(),isWindowDraggable = _useDrop2.isDraggable,windowRef = _useDrop2.ref;
|
|
206
205
|
|
|
207
206
|
if (_client.isBrowser) {
|
|
208
|
-
windowRef.current =
|
|
207
|
+
windowRef.current = window.document;
|
|
209
208
|
}
|
|
210
209
|
|
|
211
210
|
var focus = (0, _react.useCallback)(function () {var _inputRef$current;
|