@skbkontur/react-ui 4.6.0 → 4.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/cjs/components/ComboBox/ComboBox.d.ts +15 -0
- package/cjs/components/ComboBox/ComboBox.js +16 -0
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.md +10 -1
- package/cjs/components/DropdownMenu/DropdownMenu.md +11 -9
- package/cjs/components/FileUploader/FileUploader.d.ts +9 -1
- package/cjs/components/FileUploader/FileUploader.js +67 -18
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.mixins.d.ts +1 -0
- package/cjs/components/FileUploader/FileUploader.mixins.js +10 -0
- package/cjs/components/FileUploader/FileUploader.mixins.js.map +1 -0
- package/cjs/components/FileUploader/FileUploader.styles.d.ts +12 -1
- package/cjs/components/FileUploader/FileUploader.styles.js +119 -22
- package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +1 -0
- package/cjs/components/Hint/Hint.js +6 -2
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Paging/Paging.js +20 -15
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.md +13 -0
- package/cjs/components/Paging/Paging.styles.d.ts +6 -2
- package/cjs/components/Paging/Paging.styles.js +40 -15
- package/cjs/components/Paging/Paging.styles.js.map +1 -1
- package/cjs/components/Select/Select.js +5 -3
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +0 -1
- package/cjs/components/SidePage/SidePage.js +0 -2
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.d.ts +0 -1
- package/cjs/components/SidePage/SidePageBody.js +6 -11
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/Toggle/Toggle.js +2 -1
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +3 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js +3 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +3 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +4 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +2 -0
- package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +2 -0
- package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +4 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +46 -11
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +7 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +54 -7
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +15 -3
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +3 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +19 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -1
- package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -0
- package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.js +18 -0
- package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.js.map +1 -0
- package/cjs/internal/Popup/Popup.d.ts +5 -0
- package/cjs/internal/Popup/Popup.js +10 -2
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/DarkTheme.d.ts +1 -0
- package/cjs/internal/themes/DarkTheme.js +2 -1
- package/cjs/internal/themes/DarkTheme.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +16 -0
- package/cjs/internal/themes/DefaultTheme.js +41 -1
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/utils.d.ts +2 -3
- package/cjs/lib/utils.js +1 -2
- package/cjs/lib/utils.js.map +1 -1
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +15 -0
- package/components/ComboBox/ComboBox.md +10 -1
- package/components/DropdownMenu/DropdownMenu.md +11 -9
- package/components/FileUploader/FileUploader/FileUploader.js +56 -20
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +9 -1
- package/components/FileUploader/FileUploader.mixins/FileUploader.mixins.js +8 -0
- package/components/FileUploader/FileUploader.mixins/FileUploader.mixins.js.map +1 -0
- package/components/FileUploader/FileUploader.mixins/package.json +6 -0
- package/components/FileUploader/FileUploader.mixins.d.ts +1 -0
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +51 -17
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
- package/components/FileUploader/FileUploader.styles.d.ts +12 -1
- package/components/Hint/Hint/Hint.js +13 -5
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +1 -0
- package/components/Paging/Paging/Paging.js +12 -9
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.md +13 -0
- package/components/Paging/Paging.styles/Paging.styles.js +27 -15
- package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
- package/components/Paging/Paging.styles.d.ts +6 -2
- package/components/Select/Select/Select.js +5 -5
- package/components/Select/Select/Select.js.map +1 -1
- package/components/SidePage/SidePage/SidePage.js +0 -1
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +0 -1
- package/components/SidePage/SidePageBody/SidePageBody.js +1 -9
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +0 -1
- package/components/Toggle/Toggle/Toggle.js +2 -1
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +3 -1
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +3 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +1 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +5 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +2 -0
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +7 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +38 -13
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -0
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +26 -5
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +7 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +13 -3
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +10 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +3 -0
- package/internal/FileUploaderControl/hooks/useFileUploaderSize/package.json +6 -0
- package/internal/FileUploaderControl/hooks/useFileUploaderSize/useFileUploaderSize.js +21 -0
- package/internal/FileUploaderControl/hooks/useFileUploaderSize/useFileUploaderSize.js.map +1 -0
- package/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -0
- package/internal/Popup/Popup/Popup.js +5 -1
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +5 -0
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/DarkTheme/DarkTheme.js +1 -0
- package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/internal/themes/DarkTheme.d.ts +1 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js +64 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +16 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +2 -3
- package/package.json +2 -2
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
2
2
|
|
|
3
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19;
|
|
3
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30;
|
|
4
4
|
|
|
5
5
|
import { css, keyframes, memoizeStyle } from "../../../lib/theming/Emotion";
|
|
6
|
+
import { fileUploaderSizeMixin } from "../FileUploader.mixins";
|
|
6
7
|
var styles = {
|
|
7
8
|
pulse: function pulse() {
|
|
8
9
|
return keyframes(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n 0% {\n box-shadow:\n 0px 0px 0px 0px #2DA4F9,\n 0px 0px 0px 1px rgba(45,164,249,0.7);\n }\n 95% {\n box-shadow:\n 0px 0px 0px 0px #2DA4F9,\n 0px 0px 0px 10px rgba(45,164,249,0);\n }\n 100% {\n box-shadow:\n 0px 0px 0px 0px #2DA4F9,\n 0px 0px 0px 1px rgba(45,164,249,0);\n }\n "])));
|
|
9
10
|
},
|
|
10
11
|
root: function root(t) {
|
|
11
|
-
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n
|
|
12
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n position: relative;\n background-color: ", ";\n line-height: ", ";\n font-size: ", ";\n color: ", ";\n position: relative;\n "])), t.fileUploaderBg, t.fileUploaderLineHeight, t.fileUploaderFontSize, t.fileUploaderTextColorDefault);
|
|
12
13
|
},
|
|
13
14
|
uploadButton: function uploadButton(t) {
|
|
14
15
|
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n width: 100%;\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n border: ", " ", " ", ";\n box-sizing: border-box;\n border-radius: ", ";\n outline: none;\n cursor: pointer;\n padding: ", " ", ";\n transition: box-shadow 0.3s ease;\n "])), t.fileUploaderBorderWidth, t.fileUploaderBorderStyle, t.fileUploaderBorderColor, t.fileUploaderBorderRadius, t.fileUploaderPaddingY, t.fileUploaderPaddingX);
|
|
@@ -23,43 +24,76 @@ var styles = {
|
|
|
23
24
|
return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n border-radius: ", ";\n animation: ", " 1.5s infinite;\n "])), t.fileUploaderBorderRadius, styles.pulse());
|
|
24
25
|
},
|
|
25
26
|
content: function content() {
|
|
26
|
-
return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n display:
|
|
27
|
+
return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n display: block;\n width: 100%;\n height: 100%;\n\n overflow: hidden;\n text-overflow: ellipsis;\n "])));
|
|
28
|
+
},
|
|
29
|
+
contentWithFiles: function contentWithFiles() {
|
|
30
|
+
return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n "])));
|
|
31
|
+
},
|
|
32
|
+
contentInnerSmall: function contentInnerSmall(t) {
|
|
33
|
+
return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n width: calc(100% - ", " - ", ");\n "])), t.inputIconSizeSmall, t.fileUploaderIconGapSmall);
|
|
34
|
+
},
|
|
35
|
+
contentInnerMedium: function contentInnerMedium(t) {
|
|
36
|
+
return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n width: calc(100% - ", " - ", ");\n "])), t.inputIconSizeMedium, t.fileUploaderIconGapMedium);
|
|
37
|
+
},
|
|
38
|
+
contentInnerLarge: function contentInnerLarge(t) {
|
|
39
|
+
return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n width: calc(100% - ", " - ", ");\n "])), t.inputIconSizeLarge, t.fileUploaderIconGapLarge);
|
|
27
40
|
},
|
|
28
41
|
fileInput: function fileInput() {
|
|
29
|
-
return css(
|
|
42
|
+
return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n width: 0;\n height: 0;\n "])));
|
|
30
43
|
},
|
|
31
44
|
afterLinkText: function afterLinkText() {
|
|
32
|
-
return css(
|
|
45
|
+
return css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n display: inline;\n "])));
|
|
46
|
+
},
|
|
47
|
+
afterLinkText_HasFiles: function afterLinkText_HasFiles() {
|
|
48
|
+
return css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: space-between;\n flex: 1 1 auto;\n "])));
|
|
33
49
|
},
|
|
34
50
|
warning: function warning(t) {
|
|
35
|
-
return css(
|
|
51
|
+
return css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteralLoose(["\n border: ", " solid ", ";\n box-shadow: 0px 0px 0px 1px ", ";\n "])), t.fileUploaderBorderWidth, t.fileUploaderBorderColorWarning, t.fileUploaderBorderColorWarning);
|
|
36
52
|
},
|
|
37
53
|
error: function error(t) {
|
|
38
|
-
return css(
|
|
54
|
+
return css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteralLoose(["\n border: ", " solid ", ";\n box-shadow: 0px 0px 0px 1px ", ";\n "])), t.fileUploaderBorderWidth, t.fileUploaderBorderColorError, t.fileUploaderBorderColorError);
|
|
39
55
|
},
|
|
40
56
|
hovered: function hovered(t) {
|
|
41
|
-
return css(
|
|
57
|
+
return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteralLoose(["\n background: ", ";\n "])), t.fileUploaderHoveredBg);
|
|
58
|
+
},
|
|
59
|
+
linkHovered: function linkHovered(t) {
|
|
60
|
+
return css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteralLoose(["\n text-decoration: ", ";\n "])), t.fileUploaderLinkHoverTextDecoration);
|
|
42
61
|
},
|
|
43
62
|
disabled: function disabled(t) {
|
|
44
|
-
return css(
|
|
63
|
+
return css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteralLoose(["\n cursor: default;\n background: ", ";\n border: ", " solid ", ";\n color: ", ";\n box-shadow: none;\n "])), t.fileUploaderDisabledBg, t.fileUploaderBorderWidth, t.fileUploaderDisabledBorderColor, t.fileUploaderDisabledTextColor);
|
|
45
64
|
},
|
|
46
65
|
icon: function icon(t) {
|
|
47
|
-
return css(
|
|
66
|
+
return css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n position: absolute;\n color: ", ";\n text-align: right;\n "])), t.fileUploaderIconColor);
|
|
48
67
|
},
|
|
49
68
|
iconDisabled: function iconDisabled(t) {
|
|
50
|
-
return css(
|
|
69
|
+
return css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.fileUploaderDisabledIconColor);
|
|
51
70
|
},
|
|
52
71
|
link: function link(t) {
|
|
53
|
-
return css(
|
|
54
|
-
},
|
|
55
|
-
linkHovered: function linkHovered(t) {
|
|
56
|
-
return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteralLoose(["\n text-decoration: ", ";\n "])), t.fileUploaderLinkHoverTextDecoration);
|
|
72
|
+
return css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteralLoose(["\n outline: none;\n text-decoration: none;\n color: ", ";\n "])), t.fileUploaderLinkColor);
|
|
57
73
|
},
|
|
58
74
|
linkDisabled: function linkDisabled(t) {
|
|
59
|
-
return css(
|
|
75
|
+
return css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteralLoose(["\n color: ", ";\n &:hover {\n text-decoration: none;\n }\n "])), t.fileUploaderDisabledLinkColor);
|
|
60
76
|
},
|
|
61
77
|
singleFile: function singleFile() {
|
|
62
|
-
return css(
|
|
78
|
+
return css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteralLoose(["\n width: 100%;\n "])));
|
|
79
|
+
},
|
|
80
|
+
sizeSmall: function sizeSmall(t) {
|
|
81
|
+
return css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), fileUploaderSizeMixin(t.fileUploaderFontSizeSmall, t.fileUploaderLineHeightSmall, t.fileUploaderPaddingXSmall, t.fileUploaderPaddingYSmall));
|
|
82
|
+
},
|
|
83
|
+
sizeMedium: function sizeMedium(t) {
|
|
84
|
+
return css(_templateObject26 || (_templateObject26 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), fileUploaderSizeMixin(t.fileUploaderFontSizeMedium, t.fileUploaderLineHeightMedium, t.fileUploaderPaddingXMedium, t.fileUploaderPaddingYMedium));
|
|
85
|
+
},
|
|
86
|
+
sizeLarge: function sizeLarge(t) {
|
|
87
|
+
return css(_templateObject27 || (_templateObject27 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), fileUploaderSizeMixin(t.fileUploaderFontSizeLarge, t.fileUploaderLineHeightLarge, t.fileUploaderPaddingXLarge, t.fileUploaderPaddingYLarge));
|
|
88
|
+
},
|
|
89
|
+
iconSmall: function iconSmall(t) {
|
|
90
|
+
return css(_templateObject28 || (_templateObject28 = _taggedTemplateLiteralLoose(["\n font-size: ", ";\n line-height: ", ";\n width: ", ";\n bottom: ", ";\n right: ", ";\n "])), t.fileUploaderFontSizeSmall, t.fileUploaderLineHeightSmall, t.inputIconSizeSmall, t.fileUploaderPaddingYSmall, t.fileUploaderPaddingXSmall);
|
|
91
|
+
},
|
|
92
|
+
iconMedium: function iconMedium(t) {
|
|
93
|
+
return css(_templateObject29 || (_templateObject29 = _taggedTemplateLiteralLoose(["\n font-size: ", ";\n line-height: ", ";\n width: ", ";\n bottom: ", ";\n right: ", ";\n "])), t.fileUploaderFontSizeMedium, t.fileUploaderLineHeightMedium, t.inputIconSizeMedium, t.fileUploaderPaddingYMedium, t.fileUploaderPaddingXMedium);
|
|
94
|
+
},
|
|
95
|
+
iconLarge: function iconLarge(t) {
|
|
96
|
+
return css(_templateObject30 || (_templateObject30 = _taggedTemplateLiteralLoose(["\n font-size: ", ";\n line-height: ", ";\n width: ", ";\n bottom: ", ";\n right: ", ";\n "])), t.fileUploaderFontSizeLarge, t.fileUploaderLineHeightLarge, t.inputIconSizeLarge, t.fileUploaderPaddingYLarge, t.fileUploaderPaddingXLarge);
|
|
63
97
|
}
|
|
64
98
|
};
|
|
65
99
|
export var jsStyles = memoizeStyle(styles);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FileUploader.styles.ts"],"names":["css","keyframes","memoizeStyle","styles","pulse","root","t","fileUploaderBg","fileUploaderLineHeight","fileUploaderFontSize","fileUploaderTextColorDefault","uploadButton","fileUploaderBorderWidth","fileUploaderBorderStyle","fileUploaderBorderColor","fileUploaderBorderRadius","fileUploaderPaddingY","fileUploaderPaddingX","uploadButtonFocus","fileUploaderBorderColorFocus","dragOver","windowDragOver","content","fileInput","afterLinkText","warning","fileUploaderBorderColorWarning","error","fileUploaderBorderColorError","hovered","fileUploaderHoveredBg","disabled","fileUploaderDisabledBg","fileUploaderDisabledBorderColor","fileUploaderDisabledTextColor","icon","fileUploaderIconSize","fileUploaderIconColor","iconDisabled","fileUploaderDisabledIconColor","link","fileUploaderLinkColor","linkHovered","fileUploaderLinkHoverTextDecoration","linkDisabled","fileUploaderDisabledLinkColor","singleFile","jsStyles"],"mappings":"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","sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nconst styles = {\n pulse() {\n return keyframes`\n 0% {\n box-shadow:\n 0px 0px 0px 0px #2DA4F9,\n 0px 0px 0px 1px rgba(45,164,249,0.7);\n }\n 95% {\n box-shadow:\n 0px 0px 0px 0px #2DA4F9,\n 0px 0px 0px 10px rgba(45,164,249,0);\n }\n 100% {\n box-shadow:\n 0px 0px 0px 0px #2DA4F9,\n 0px 0px 0px 1px rgba(45,164,249,0);\n }\n `;\n },\n\n root(t: Theme) {\n return css`\n display: inline-block;\n min-width: 285px;\n position: relative;\n background-color: ${t.fileUploaderBg};\n line-height: ${t.fileUploaderLineHeight};\n font-size: ${t.fileUploaderFontSize};\n color: ${t.fileUploaderTextColorDefault};\n `;\n },\n\n uploadButton(t: Theme) {\n return css`\n width: 100%;\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n border: ${t.fileUploaderBorderWidth} ${t.fileUploaderBorderStyle} ${t.fileUploaderBorderColor};\n box-sizing: border-box;\n border-radius: ${t.fileUploaderBorderRadius};\n outline: none;\n cursor: pointer;\n padding: ${t.fileUploaderPaddingY} ${t.fileUploaderPaddingX};\n transition: box-shadow 0.3s ease;\n `;\n },\n\n uploadButtonFocus(t: Theme) {\n return css`\n border: ${t.fileUploaderBorderWidth} solid ${t.fileUploaderBorderColorFocus};\n box-shadow: 0px 0px 0px 1px ${t.fileUploaderBorderColorFocus};\n `;\n },\n\n dragOver(t: Theme) {\n return css`\n border: 1px solid #2da4f9;\n border-radius: ${t.fileUploaderBorderRadius};\n box-shadow: 0px 0px 0px 3px #2da4f9, 0px 0px 0px 8px rgba(45, 164, 249, 0.35);\n `;\n },\n\n windowDragOver(t: Theme) {\n return css`\n border-radius: ${t.fileUploaderBorderRadius};\n animation: ${styles.pulse()} 1.5s infinite;\n `;\n },\n\n content() {\n return css`\n display: flex;\n width: 100%;\n align-items: center;\n height: 100%;\n `;\n },\n\n fileInput() {\n return css`\n width: 0;\n height: 0;\n `;\n },\n\n afterLinkText() {\n return css`\n display: flex;\n justify-content: space-between;\n flex: 1 1 auto;\n `;\n },\n\n warning(t: Theme) {\n return css`\n border: ${t.fileUploaderBorderWidth} solid ${t.fileUploaderBorderColorWarning};\n box-shadow: 0px 0px 0px 1px ${t.fileUploaderBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border: ${t.fileUploaderBorderWidth} solid ${t.fileUploaderBorderColorError};\n box-shadow: 0px 0px 0px 1px ${t.fileUploaderBorderColorError};\n `;\n },\n\n hovered(t: Theme) {\n return css`\n background: ${t.fileUploaderHoveredBg};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n cursor: default;\n background: ${t.fileUploaderDisabledBg};\n border: ${t.fileUploaderBorderWidth} solid ${t.fileUploaderDisabledBorderColor};\n color: ${t.fileUploaderDisabledTextColor};\n box-shadow: none;\n `;\n },\n\n icon(t: Theme) {\n return css`\n display: inline-block;\n font-size: ${t.fileUploaderIconSize};\n color: ${t.fileUploaderIconColor};\n `;\n },\n\n iconDisabled(t: Theme) {\n return css`\n color: ${t.fileUploaderDisabledIconColor};\n `;\n },\n\n link(t: Theme) {\n return css`\n outline: none;\n text-decoration: none;\n color: ${t.fileUploaderLinkColor};\n `;\n },\n\n linkHovered(t: Theme) {\n return css`\n text-decoration: ${t.fileUploaderLinkHoverTextDecoration};\n `;\n },\n\n linkDisabled(t: Theme) {\n return css`\n color: ${t.fileUploaderDisabledLinkColor};\n &:hover {\n text-decoration: none;\n }\n `;\n },\n\n singleFile() {\n return css`\n width: 100%;\n `;\n },\n};\n\nexport const jsStyles = memoizeStyle(styles);\n"]}
|
|
1
|
+
{"version":3,"sources":["FileUploader.styles.ts"],"names":["css","keyframes","memoizeStyle","fileUploaderSizeMixin","styles","pulse","root","t","fileUploaderBg","fileUploaderLineHeight","fileUploaderFontSize","fileUploaderTextColorDefault","uploadButton","fileUploaderBorderWidth","fileUploaderBorderStyle","fileUploaderBorderColor","fileUploaderBorderRadius","fileUploaderPaddingY","fileUploaderPaddingX","uploadButtonFocus","fileUploaderBorderColorFocus","dragOver","windowDragOver","content","contentWithFiles","contentInnerSmall","inputIconSizeSmall","fileUploaderIconGapSmall","contentInnerMedium","inputIconSizeMedium","fileUploaderIconGapMedium","contentInnerLarge","inputIconSizeLarge","fileUploaderIconGapLarge","fileInput","afterLinkText","afterLinkText_HasFiles","warning","fileUploaderBorderColorWarning","error","fileUploaderBorderColorError","hovered","fileUploaderHoveredBg","linkHovered","fileUploaderLinkHoverTextDecoration","disabled","fileUploaderDisabledBg","fileUploaderDisabledBorderColor","fileUploaderDisabledTextColor","icon","fileUploaderIconColor","iconDisabled","fileUploaderDisabledIconColor","link","fileUploaderLinkColor","linkDisabled","fileUploaderDisabledLinkColor","singleFile","sizeSmall","fileUploaderFontSizeSmall","fileUploaderLineHeightSmall","fileUploaderPaddingXSmall","fileUploaderPaddingYSmall","sizeMedium","fileUploaderFontSizeMedium","fileUploaderLineHeightMedium","fileUploaderPaddingXMedium","fileUploaderPaddingYMedium","sizeLarge","fileUploaderFontSizeLarge","fileUploaderLineHeightLarge","fileUploaderPaddingXLarge","fileUploaderPaddingYLarge","iconSmall","iconMedium","iconLarge","jsStyles"],"mappings":"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","sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nimport { fileUploaderSizeMixin } from './FileUploader.mixins';\n\nconst styles = {\n pulse() {\n return keyframes`\n 0% {\n box-shadow:\n 0px 0px 0px 0px #2DA4F9,\n 0px 0px 0px 1px rgba(45,164,249,0.7);\n }\n 95% {\n box-shadow:\n 0px 0px 0px 0px #2DA4F9,\n 0px 0px 0px 10px rgba(45,164,249,0);\n }\n 100% {\n box-shadow:\n 0px 0px 0px 0px #2DA4F9,\n 0px 0px 0px 1px rgba(45,164,249,0);\n }\n `;\n },\n\n root(t: Theme) {\n return css`\n display: inline-block;\n position: relative;\n background-color: ${t.fileUploaderBg};\n line-height: ${t.fileUploaderLineHeight};\n font-size: ${t.fileUploaderFontSize};\n color: ${t.fileUploaderTextColorDefault};\n position: relative;\n `;\n },\n\n uploadButton(t: Theme) {\n return css`\n width: 100%;\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n border: ${t.fileUploaderBorderWidth} ${t.fileUploaderBorderStyle} ${t.fileUploaderBorderColor};\n box-sizing: border-box;\n border-radius: ${t.fileUploaderBorderRadius};\n outline: none;\n cursor: pointer;\n padding: ${t.fileUploaderPaddingY} ${t.fileUploaderPaddingX};\n transition: box-shadow 0.3s ease;\n `;\n },\n\n uploadButtonFocus(t: Theme) {\n return css`\n border: ${t.fileUploaderBorderWidth} solid ${t.fileUploaderBorderColorFocus};\n box-shadow: 0px 0px 0px 1px ${t.fileUploaderBorderColorFocus};\n `;\n },\n\n dragOver(t: Theme) {\n return css`\n border: 1px solid #2da4f9;\n border-radius: ${t.fileUploaderBorderRadius};\n box-shadow: 0px 0px 0px 3px #2da4f9, 0px 0px 0px 8px rgba(45, 164, 249, 0.35);\n `;\n },\n\n windowDragOver(t: Theme) {\n return css`\n border-radius: ${t.fileUploaderBorderRadius};\n animation: ${styles.pulse()} 1.5s infinite;\n `;\n },\n\n content() {\n return css`\n display: block;\n width: 100%;\n height: 100%;\n\n overflow: hidden;\n text-overflow: ellipsis;\n `;\n },\n\n contentWithFiles() {\n return css`\n display: flex;\n align-items: center;\n `;\n },\n\n contentInnerSmall(t: Theme) {\n return css`\n width: calc(100% - ${t.inputIconSizeSmall} - ${t.fileUploaderIconGapSmall});\n `;\n },\n\n contentInnerMedium(t: Theme) {\n return css`\n width: calc(100% - ${t.inputIconSizeMedium} - ${t.fileUploaderIconGapMedium});\n `;\n },\n\n contentInnerLarge(t: Theme) {\n return css`\n width: calc(100% - ${t.inputIconSizeLarge} - ${t.fileUploaderIconGapLarge});\n `;\n },\n\n fileInput() {\n return css`\n width: 0;\n height: 0;\n `;\n },\n\n afterLinkText() {\n return css`\n display: inline;\n `;\n },\n\n afterLinkText_HasFiles() {\n return css`\n display: flex;\n justify-content: space-between;\n flex: 1 1 auto;\n `;\n },\n\n warning(t: Theme) {\n return css`\n border: ${t.fileUploaderBorderWidth} solid ${t.fileUploaderBorderColorWarning};\n box-shadow: 0px 0px 0px 1px ${t.fileUploaderBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border: ${t.fileUploaderBorderWidth} solid ${t.fileUploaderBorderColorError};\n box-shadow: 0px 0px 0px 1px ${t.fileUploaderBorderColorError};\n `;\n },\n\n hovered(t: Theme) {\n return css`\n background: ${t.fileUploaderHoveredBg};\n `;\n },\n\n linkHovered(t: Theme) {\n return css`\n text-decoration: ${t.fileUploaderLinkHoverTextDecoration};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n cursor: default;\n background: ${t.fileUploaderDisabledBg};\n border: ${t.fileUploaderBorderWidth} solid ${t.fileUploaderDisabledBorderColor};\n color: ${t.fileUploaderDisabledTextColor};\n box-shadow: none;\n `;\n },\n\n icon(t: Theme) {\n return css`\n display: inline-block;\n position: absolute;\n color: ${t.fileUploaderIconColor};\n text-align: right;\n `;\n },\n\n iconDisabled(t: Theme) {\n return css`\n color: ${t.fileUploaderDisabledIconColor};\n `;\n },\n\n link(t: Theme) {\n return css`\n outline: none;\n text-decoration: none;\n color: ${t.fileUploaderLinkColor};\n `;\n },\n\n linkDisabled(t: Theme) {\n return css`\n color: ${t.fileUploaderDisabledLinkColor};\n &:hover {\n text-decoration: none;\n }\n `;\n },\n\n singleFile() {\n return css`\n width: 100%;\n `;\n },\n\n sizeSmall(t: Theme) {\n return css`\n ${fileUploaderSizeMixin(\n t.fileUploaderFontSizeSmall,\n t.fileUploaderLineHeightSmall,\n t.fileUploaderPaddingXSmall,\n t.fileUploaderPaddingYSmall,\n )};\n `;\n },\n\n sizeMedium(t: Theme) {\n return css`\n ${fileUploaderSizeMixin(\n t.fileUploaderFontSizeMedium,\n t.fileUploaderLineHeightMedium,\n t.fileUploaderPaddingXMedium,\n t.fileUploaderPaddingYMedium,\n )};\n `;\n },\n\n sizeLarge(t: Theme) {\n return css`\n ${fileUploaderSizeMixin(\n t.fileUploaderFontSizeLarge,\n t.fileUploaderLineHeightLarge,\n t.fileUploaderPaddingXLarge,\n t.fileUploaderPaddingYLarge,\n )};\n `;\n },\n\n iconSmall(t: Theme) {\n return css`\n font-size: ${t.fileUploaderFontSizeSmall};\n line-height: ${t.fileUploaderLineHeightSmall};\n width: ${t.inputIconSizeSmall};\n bottom: ${t.fileUploaderPaddingYSmall};\n right: ${t.fileUploaderPaddingXSmall};\n `;\n },\n iconMedium(t: Theme) {\n return css`\n font-size: ${t.fileUploaderFontSizeMedium};\n line-height: ${t.fileUploaderLineHeightMedium};\n width: ${t.inputIconSizeMedium};\n bottom: ${t.fileUploaderPaddingYMedium};\n right: ${t.fileUploaderPaddingXMedium};\n `;\n },\n iconLarge(t: Theme) {\n return css`\n font-size: ${t.fileUploaderFontSizeLarge};\n line-height: ${t.fileUploaderLineHeightLarge};\n width: ${t.inputIconSizeLarge};\n bottom: ${t.fileUploaderPaddingYLarge};\n right: ${t.fileUploaderPaddingXLarge};\n `;\n },\n};\n\nexport const jsStyles = memoizeStyle(styles);\n"]}
|
|
@@ -7,16 +7,27 @@ export declare const jsStyles: {
|
|
|
7
7
|
dragOver(t: Theme): string;
|
|
8
8
|
windowDragOver(t: Theme): string;
|
|
9
9
|
content(): string;
|
|
10
|
+
contentWithFiles(): string;
|
|
11
|
+
contentInnerSmall(t: Theme): string;
|
|
12
|
+
contentInnerMedium(t: Theme): string;
|
|
13
|
+
contentInnerLarge(t: Theme): string;
|
|
10
14
|
fileInput(): string;
|
|
11
15
|
afterLinkText(): string;
|
|
16
|
+
afterLinkText_HasFiles(): string;
|
|
12
17
|
warning(t: Theme): string;
|
|
13
18
|
error(t: Theme): string;
|
|
14
19
|
hovered(t: Theme): string;
|
|
20
|
+
linkHovered(t: Theme): string;
|
|
15
21
|
disabled(t: Theme): string;
|
|
16
22
|
icon(t: Theme): string;
|
|
17
23
|
iconDisabled(t: Theme): string;
|
|
18
24
|
link(t: Theme): string;
|
|
19
|
-
linkHovered(t: Theme): string;
|
|
20
25
|
linkDisabled(t: Theme): string;
|
|
21
26
|
singleFile(): string;
|
|
27
|
+
sizeSmall(t: Theme): string;
|
|
28
|
+
sizeMedium(t: Theme): string;
|
|
29
|
+
sizeLarge(t: Theme): string;
|
|
30
|
+
iconSmall(t: Theme): string;
|
|
31
|
+
iconMedium(t: Theme): string;
|
|
32
|
+
iconLarge(t: Theme): string;
|
|
22
33
|
};
|
|
@@ -6,7 +6,7 @@ var _class, _class2, _temp;
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
8
8
|
import { ThemeFactory } from "../../../lib/theming/ThemeFactory";
|
|
9
|
-
import { Popup } from "../../../internal/Popup";
|
|
9
|
+
import { DUMMY_LOCATION, Popup } from "../../../internal/Popup";
|
|
10
10
|
import { isTestEnv } from "../../../lib/currentEnvironment";
|
|
11
11
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
12
12
|
import { cx } from "../../../lib/theming/Emotion";
|
|
@@ -33,7 +33,8 @@ var Hint = responsiveLayout(_class = rootNode(_class = (_temp = _class2 = /*#__P
|
|
|
33
33
|
_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;
|
|
34
34
|
_this.getProps = createPropsGetter(Hint.defaultProps);
|
|
35
35
|
_this.state = {
|
|
36
|
-
opened: _this.getProps().manual ? !!_this.getProps().opened : false
|
|
36
|
+
opened: _this.getProps().manual ? !!_this.getProps().opened : false,
|
|
37
|
+
position: DUMMY_LOCATION.position
|
|
37
38
|
};
|
|
38
39
|
_this.timer = null;
|
|
39
40
|
_this.popupRef = /*#__PURE__*/React.createRef();
|
|
@@ -148,6 +149,8 @@ var Hint = responsiveLayout(_class = rootNode(_class = (_temp = _class2 = /*#__P
|
|
|
148
149
|
};
|
|
149
150
|
|
|
150
151
|
_proto.renderMain = function renderMain() {
|
|
152
|
+
var _this3 = this;
|
|
153
|
+
|
|
151
154
|
var _this$getProps2 = this.getProps(),
|
|
152
155
|
disableAnimations = _this$getProps2.disableAnimations,
|
|
153
156
|
useWrapper = _this$getProps2.useWrapper;
|
|
@@ -161,6 +164,11 @@ var Hint = responsiveLayout(_class = rootNode(_class = (_temp = _class2 = /*#__P
|
|
|
161
164
|
positions: this.getPositions(),
|
|
162
165
|
backgroundColor: this.theme.hintBgColor,
|
|
163
166
|
borderColor: HINT_BORDER_COLOR,
|
|
167
|
+
onPositionChange: function onPositionChange(position) {
|
|
168
|
+
return _this3.setState({
|
|
169
|
+
position: position
|
|
170
|
+
});
|
|
171
|
+
},
|
|
164
172
|
disableAnimations: disableAnimations,
|
|
165
173
|
onMouseEnter: this.handleMouseEnter,
|
|
166
174
|
onMouseLeave: this.handleMouseLeave,
|
|
@@ -177,10 +185,10 @@ var Hint = responsiveLayout(_class = rootNode(_class = (_temp = _class2 = /*#__P
|
|
|
177
185
|
}
|
|
178
186
|
|
|
179
187
|
var _this$getProps3 = this.getProps(),
|
|
180
|
-
maxWidth = _this$getProps3.maxWidth
|
|
181
|
-
pos = _this$getProps3.pos;
|
|
188
|
+
maxWidth = _this$getProps3.maxWidth;
|
|
182
189
|
|
|
183
|
-
var
|
|
190
|
+
var centerAlignPositions = ['top', 'top center', 'bottom', 'bottom center'];
|
|
191
|
+
var className = cx((_cx = {}, _cx[styles.content(this.theme)] = true, _cx[styles.contentCenter(this.theme)] = centerAlignPositions.includes(this.state.position), _cx[styles.mobileContent(this.theme)] = this.isMobileLayout, _cx));
|
|
184
192
|
return /*#__PURE__*/React.createElement("div", {
|
|
185
193
|
className: className,
|
|
186
194
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Hint.tsx"],"names":["React","ThemeContext","ThemeFactory","Popup","isTestEnv","CommonWrapper","cx","responsiveLayout","rootNode","createPropsGetter","styles","HINT_BORDER_COLOR","Positions","Hint","getProps","defaultProps","state","opened","manual","timer","popupRef","createRef","getAnchorElement","current","anchorElement","getPositions","filter","x","startsWith","pos","handleMouseEnter","e","window","setTimeout","open","props","onMouseEnter","handleMouseLeave","clearTimeout","setState","onMouseLeave","close","componentDidUpdate","prevProps","componentWillUnmount","render","theme","create","popupPinOffset","hintPinOffset","popupMargin","hintMargin","popupBorder","hintBorder","popupBorderRadius","hintBorderRadius","isMobileLayout","renderMobile","renderMain","children","undefined","renderContent","disableAnimations","useWrapper","setRootNode","hintBgColor","text","maxWidth","className","content","contentCenter","mobileContent","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Popup, PopupPositionsType } from '../../internal/Popup';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Hint.styles';\n\nconst HINT_BORDER_COLOR = 'transparent';\n\nexport interface HintProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Переводит отображение подсказки в _\"ручной режим\"_.\n *\n * В _\"ручном режиме\"_ подсказку можно активировать только задав значение пропу `opened`.\n */\n manual?: boolean;\n /**\n * Задаёт максимальную ширину подсказки.\n */\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: (event: MouseEventType) => void;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: (event: MouseEventType) => void;\n /**\n * Если `true` - подсказка будет открыта.\n *\n * _Примечание_: работает только при `manual=true`.\n */\n opened?: boolean;\n /**\n * Расположение подсказки относительно текста.\n *\n * **Допустимые значения**: `\"top\"`, `\"right\"`, `\"bottom\"`, `\"left\"`, `\"top left\"`, `\"top center\"`, `\"top right\"`, `\"right top\"`, `\"right middle\"`, `\"right bottom\"`, `\"bottom left\"`, `\"bottom center\"`, `\"bottom right\"`, `\"left top\"`, `\"left middle\"`, `\"left bottom\"`.\n */\n pos?: 'top' | 'right' | 'bottom' | 'left' | PopupPositionsType;\n /**\n * Текст подсказки.\n */\n text: React.ReactNode;\n /**\n * Отключает анимацию.\n */\n disableAnimations?: boolean;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n}\n\nexport interface HintState {\n opened: boolean;\n}\n\nconst Positions: PopupPositionsType[] = [\n 'top center',\n 'top left',\n 'top right',\n 'bottom center',\n 'bottom left',\n 'bottom right',\n 'left middle',\n 'left top',\n 'left bottom',\n 'right middle',\n 'right top',\n 'right bottom',\n];\n\ntype DefaultProps = Required<\n Pick<HintProps, 'pos' | 'manual' | 'opened' | 'maxWidth' | 'disableAnimations' | 'useWrapper'>\n>;\n\n/**\n * Всплывающая подсказка, которая по умолчанию отображается при наведении на элемент. <br/> Можно задать другие условия отображения.\n */\n@responsiveLayout\n@rootNode\nexport class Hint extends React.PureComponent<HintProps, HintState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Hint';\n\n private isMobileLayout!: boolean;\n\n public static defaultProps: DefaultProps = {\n pos: 'top',\n manual: false,\n opened: false,\n maxWidth: 200,\n disableAnimations: isTestEnv,\n useWrapper: false,\n };\n\n private getProps = createPropsGetter(Hint.defaultProps);\n\n public state: HintState = {\n opened: this.getProps().manual ? !!this.getProps().opened : false,\n };\n\n private timer: Nullable<number> = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private popupRef = React.createRef<Popup>();\n\n public componentDidUpdate(prevProps: HintProps) {\n const { opened, manual } = this.getProps();\n if (!manual) {\n return;\n }\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n if (opened !== prevProps.opened) {\n this.setState({ opened: !!opened });\n }\n }\n\n public componentWillUnmount() {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.hintPinOffset,\n popupMargin: theme.hintMargin,\n popupBorder: theme.hintBorder,\n popupBorderRadius: theme.hintBorderRadius,\n },\n this.theme,\n )}\n >\n {this.isMobileLayout ? this.renderMobile() : this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMobile() {\n const manual = this.getProps().manual;\n return (\n <CommonWrapper {...this.props}>\n <Popup\n opened={this.state.opened}\n anchorElement={this.props.children}\n positions={[]}\n onClick={!manual ? this.open : undefined}\n mobileOnCloseRequest={!manual ? this.close : undefined}\n >\n {this.renderContent()}\n </Popup>\n </CommonWrapper>\n );\n }\n\n public renderMain() {\n const { disableAnimations, useWrapper } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n hasPin\n opened={this.state.opened}\n anchorElement={this.props.children}\n positions={this.getPositions()}\n backgroundColor={this.theme.hintBgColor}\n borderColor={HINT_BORDER_COLOR}\n disableAnimations={disableAnimations}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n useWrapper={useWrapper}\n ref={this.popupRef}\n >\n {this.renderContent()}\n </Popup>\n </CommonWrapper>\n );\n }\n\n public getAnchorElement = (): Nullable<Element> => {\n return this.popupRef.current?.anchorElement;\n };\n\n private renderContent() {\n if (!this.props.text) {\n return null;\n }\n\n const { maxWidth, pos } = this.getProps();\n const className = cx({\n [styles.content(this.theme)]: true,\n [styles.contentCenter(this.theme)]: pos === 'top' || pos === 'bottom',\n [styles.mobileContent(this.theme)]: this.isMobileLayout,\n });\n return (\n <div className={className} style={{ maxWidth: this.isMobileLayout ? '100%' : maxWidth }}>\n {this.props.text}\n </div>\n );\n }\n\n private getPositions = (): PopupPositionsType[] => {\n return Positions.filter((x) => x.startsWith(this.getProps().pos));\n };\n\n private handleMouseEnter = (e: MouseEventType) => {\n if (!this.getProps().manual && !this.timer) {\n this.timer = window.setTimeout(this.open, 400);\n }\n\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: MouseEventType) => {\n if (!this.getProps().manual && this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n this.setState({ opened: false });\n }\n\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private close = () => {\n this.setState({ opened: false });\n };\n\n private open = () => {\n this.setState({ opened: true });\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Hint.tsx"],"names":["React","ThemeContext","ThemeFactory","DUMMY_LOCATION","Popup","isTestEnv","CommonWrapper","cx","responsiveLayout","rootNode","createPropsGetter","styles","HINT_BORDER_COLOR","Positions","Hint","getProps","defaultProps","state","opened","manual","position","timer","popupRef","createRef","getAnchorElement","current","anchorElement","getPositions","filter","x","startsWith","pos","handleMouseEnter","e","window","setTimeout","open","props","onMouseEnter","handleMouseLeave","clearTimeout","setState","onMouseLeave","close","componentDidUpdate","prevProps","componentWillUnmount","render","theme","create","popupPinOffset","hintPinOffset","popupMargin","hintMargin","popupBorder","hintBorder","popupBorderRadius","hintBorderRadius","isMobileLayout","renderMobile","renderMain","children","undefined","renderContent","disableAnimations","useWrapper","setRootNode","hintBgColor","text","maxWidth","centerAlignPositions","className","content","contentCenter","includes","mobileContent","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DUMMY_LOCATION, Popup, PopupPositionsType } from '../../internal/Popup';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Hint.styles';\n\nconst HINT_BORDER_COLOR = 'transparent';\n\nexport interface HintProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Переводит отображение подсказки в _\"ручной режим\"_.\n *\n * В _\"ручном режиме\"_ подсказку можно активировать только задав значение пропу `opened`.\n */\n manual?: boolean;\n /**\n * Задаёт максимальную ширину подсказки.\n */\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: (event: MouseEventType) => void;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: (event: MouseEventType) => void;\n /**\n * Если `true` - подсказка будет открыта.\n *\n * _Примечание_: работает только при `manual=true`.\n */\n opened?: boolean;\n /**\n * Расположение подсказки относительно текста.\n *\n * **Допустимые значения**: `\"top\"`, `\"right\"`, `\"bottom\"`, `\"left\"`, `\"top left\"`, `\"top center\"`, `\"top right\"`, `\"right top\"`, `\"right middle\"`, `\"right bottom\"`, `\"bottom left\"`, `\"bottom center\"`, `\"bottom right\"`, `\"left top\"`, `\"left middle\"`, `\"left bottom\"`.\n */\n pos?: 'top' | 'right' | 'bottom' | 'left' | PopupPositionsType;\n /**\n * Текст подсказки.\n */\n text: React.ReactNode;\n /**\n * Отключает анимацию.\n */\n disableAnimations?: boolean;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n}\n\nexport interface HintState {\n opened: boolean;\n position: PopupPositionsType;\n}\n\nconst Positions: PopupPositionsType[] = [\n 'top center',\n 'top left',\n 'top right',\n 'bottom center',\n 'bottom left',\n 'bottom right',\n 'left middle',\n 'left top',\n 'left bottom',\n 'right middle',\n 'right top',\n 'right bottom',\n];\n\ntype DefaultProps = Required<\n Pick<HintProps, 'pos' | 'manual' | 'opened' | 'maxWidth' | 'disableAnimations' | 'useWrapper'>\n>;\n\n/**\n * Всплывающая подсказка, которая по умолчанию отображается при наведении на элемент. <br/> Можно задать другие условия отображения.\n */\n@responsiveLayout\n@rootNode\nexport class Hint extends React.PureComponent<HintProps, HintState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Hint';\n\n private isMobileLayout!: boolean;\n\n public static defaultProps: DefaultProps = {\n pos: 'top',\n manual: false,\n opened: false,\n maxWidth: 200,\n disableAnimations: isTestEnv,\n useWrapper: false,\n };\n\n private getProps = createPropsGetter(Hint.defaultProps);\n\n public state: HintState = {\n opened: this.getProps().manual ? !!this.getProps().opened : false,\n position: DUMMY_LOCATION.position,\n };\n\n private timer: Nullable<number> = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private popupRef = React.createRef<Popup>();\n\n public componentDidUpdate(prevProps: HintProps) {\n const { opened, manual } = this.getProps();\n if (!manual) {\n return;\n }\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n if (opened !== prevProps.opened) {\n this.setState({ opened: !!opened });\n }\n }\n\n public componentWillUnmount() {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.hintPinOffset,\n popupMargin: theme.hintMargin,\n popupBorder: theme.hintBorder,\n popupBorderRadius: theme.hintBorderRadius,\n },\n this.theme,\n )}\n >\n {this.isMobileLayout ? this.renderMobile() : this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMobile() {\n const manual = this.getProps().manual;\n return (\n <CommonWrapper {...this.props}>\n <Popup\n opened={this.state.opened}\n anchorElement={this.props.children}\n positions={[]}\n onClick={!manual ? this.open : undefined}\n mobileOnCloseRequest={!manual ? this.close : undefined}\n >\n {this.renderContent()}\n </Popup>\n </CommonWrapper>\n );\n }\n\n public renderMain() {\n const { disableAnimations, useWrapper } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n hasPin\n opened={this.state.opened}\n anchorElement={this.props.children}\n positions={this.getPositions()}\n backgroundColor={this.theme.hintBgColor}\n borderColor={HINT_BORDER_COLOR}\n onPositionChange={(position) => this.setState({ position })}\n disableAnimations={disableAnimations}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n useWrapper={useWrapper}\n ref={this.popupRef}\n >\n {this.renderContent()}\n </Popup>\n </CommonWrapper>\n );\n }\n\n public getAnchorElement = (): Nullable<Element> => {\n return this.popupRef.current?.anchorElement;\n };\n\n private renderContent() {\n if (!this.props.text) {\n return null;\n }\n\n const { maxWidth } = this.getProps();\n const centerAlignPositions = ['top', 'top center', 'bottom', 'bottom center'];\n const className = cx({\n [styles.content(this.theme)]: true,\n [styles.contentCenter(this.theme)]: centerAlignPositions.includes(this.state.position),\n [styles.mobileContent(this.theme)]: this.isMobileLayout,\n });\n return (\n <div className={className} style={{ maxWidth: this.isMobileLayout ? '100%' : maxWidth }}>\n {this.props.text}\n </div>\n );\n }\n\n private getPositions = (): PopupPositionsType[] => {\n return Positions.filter((x) => x.startsWith(this.getProps().pos));\n };\n\n private handleMouseEnter = (e: MouseEventType) => {\n if (!this.getProps().manual && !this.timer) {\n this.timer = window.setTimeout(this.open, 400);\n }\n\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: MouseEventType) => {\n if (!this.getProps().manual && this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n this.setState({ opened: false });\n }\n\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private close = () => {\n this.setState({ opened: false });\n };\n\n private open = () => {\n this.setState({ opened: true });\n };\n}\n"]}
|
|
@@ -53,6 +53,7 @@ export interface HintProps extends CommonProps {
|
|
|
53
53
|
}
|
|
54
54
|
export interface HintState {
|
|
55
55
|
opened: boolean;
|
|
56
|
+
position: PopupPositionsType;
|
|
56
57
|
}
|
|
57
58
|
declare type DefaultProps = Required<Pick<HintProps, 'pos' | 'manual' | 'opened' | 'maxWidth' | 'disableAnimations' | 'useWrapper'>>;
|
|
58
59
|
/**
|
|
@@ -75,18 +75,19 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
|
|
|
75
75
|
};
|
|
76
76
|
|
|
77
77
|
_this.renderDots = function (key) {
|
|
78
|
+
var _cx;
|
|
79
|
+
|
|
78
80
|
return /*#__PURE__*/React.createElement("span", {
|
|
79
81
|
"data-tid": PagingDataTids.dots,
|
|
80
82
|
key: key,
|
|
81
|
-
className: styles.dots(_this.theme)
|
|
83
|
+
className: cx((_cx = {}, _cx[styles.dots(_this.theme)] = true, _cx[styles.dotsDisabled(_this.theme)] = _this.props.disabled, _cx))
|
|
82
84
|
}, '...');
|
|
83
85
|
};
|
|
84
86
|
|
|
85
87
|
_this.renderForwardLink = function (disabled, focused) {
|
|
86
|
-
var
|
|
88
|
+
var _cx2;
|
|
87
89
|
|
|
88
|
-
var classes = cx((
|
|
89
|
-
var caption = _this.props.caption;
|
|
90
|
+
var classes = cx((_cx2 = {}, _cx2[styles.forwardLink(_this.theme)] = true, _cx2[styles.forwardLinkFocused()] = focused, _cx2[styles.forwardLinkDisabled(_this.theme)] = disabled || _this.props.disabled, _cx2));
|
|
90
91
|
|
|
91
92
|
var Component = _this.getProps().component;
|
|
92
93
|
|
|
@@ -99,7 +100,7 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
|
|
|
99
100
|
onClick: disabled ? emptyHandler : _this.goForward,
|
|
100
101
|
tabIndex: -1,
|
|
101
102
|
pageNumber: 'forward'
|
|
102
|
-
}, caption || forward, /*#__PURE__*/React.createElement("span", {
|
|
103
|
+
}, _this.props.caption || forward, /*#__PURE__*/React.createElement("span", {
|
|
103
104
|
className: styles.forwardIcon(_this.theme)
|
|
104
105
|
}, /*#__PURE__*/React.createElement(ArrowChevronRightIcon, {
|
|
105
106
|
size: _this.theme.pagingForwardIconSize
|
|
@@ -107,9 +108,9 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
|
|
|
107
108
|
};
|
|
108
109
|
|
|
109
110
|
_this.renderPageLink = function (pageNumber, active, focused) {
|
|
110
|
-
var
|
|
111
|
+
var _cx3;
|
|
111
112
|
|
|
112
|
-
var classes = cx((
|
|
113
|
+
var classes = cx((_cx3 = {}, _cx3[styles.pageLink(_this.theme)] = true, _cx3[styles.pageLinkFocused(_this.theme)] = focused, _cx3[styles.pageLinkDisabled(_this.theme)] = _this.props.disabled, _cx3[styles.pageLinkCurrent(_this.theme)] = active, _cx3[styles.pageLinkCurrentDisabled(_this.theme)] = active && _this.props.disabled, _cx3));
|
|
113
114
|
|
|
114
115
|
var Component = _this.getProps().component;
|
|
115
116
|
|
|
@@ -424,6 +425,8 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
|
|
|
424
425
|
};
|
|
425
426
|
|
|
426
427
|
_proto.renderMain = function renderMain() {
|
|
428
|
+
var _cx4;
|
|
429
|
+
|
|
427
430
|
var _this$getProps = this.getProps(),
|
|
428
431
|
dataTid = _this$getProps['data-tid'],
|
|
429
432
|
useGlobalListener = _this$getProps.useGlobalListener;
|
|
@@ -431,9 +434,9 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
|
|
|
431
434
|
return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
|
|
432
435
|
rootNodeRef: this.setRootNode
|
|
433
436
|
}, this.props), /*#__PURE__*/React.createElement("span", {
|
|
434
|
-
tabIndex: 0,
|
|
437
|
+
tabIndex: this.props.disabled ? -1 : 0,
|
|
435
438
|
"data-tid": dataTid,
|
|
436
|
-
className: styles.paging(this.theme),
|
|
439
|
+
className: cx((_cx4 = {}, _cx4[styles.paging(this.theme)] = true, _cx4[styles.pagingDisabled()] = this.props.disabled, _cx4)),
|
|
437
440
|
onKeyDown: useGlobalListener ? undefined : this.handleKeyDown,
|
|
438
441
|
onFocus: this.handleFocus,
|
|
439
442
|
onBlur: this.handleBlur,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Paging.tsx"],"names":["React","func","number","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","ArrowChevronRightIcon","CommonWrapper","cx","rootNode","createPropsGetter","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","theme","classes","forwardLinkFocused","caption","Component","component","forward","goForward","forwardIcon","pagingForwardIconSize","pageNumber","pageLinkFocused","handleClick","goToPage","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","pageLinkHint","transparent","getKeyName","pageLinkHintPlaceHolder","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","shouldBeVisibleWithLessThanTwoPages","renderMain","dataTid","setRootNode","paging","undefined","map","PureComponent","__KONTUR_REACT_UI__","propTypes","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\n\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component?: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener?: boolean;\n /**\n * Определяет, нужно ли показывать `Paging` когда страница всего одна.\n *\n * Этот проп будет удалён в 5-ой версии библиотеки,\n * так как поведение со скрытием `Paging`'а станет поведением по умолчанию.\n *\n * @default false\n */\n shouldBeVisibleWithLessThanTwoPages?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<\n Pick<PagingProps, 'component' | 'shouldBeVisibleWithLessThanTwoPages' | 'useGlobalListener' | 'data-tid'>\n>;\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': PagingDataTids.root,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\n\n public static propTypes = {};\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean /* %checks */ {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.getProps().useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.getProps().shouldBeVisibleWithLessThanTwoPages) {\n return null;\n }\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { 'data-tid': dataTid, useGlobalListener } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={0}\n data-tid={dataTid}\n className={styles.paging(this.theme)}\n onKeyDown={useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map(this.renderItem)}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span data-tid={PagingDataTids.dots} key={key} className={styles.dots(this.theme)}>\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.disabled(this.theme)]: disabled,\n });\n const { caption } = this.props;\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {caption || forward}\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.active(this.theme)]: active,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classes}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n if (keyboardControl && (canGoBackward || canGoForward)) {\n return (\n <span className={styles.pageLinkHint(this.theme)}>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </span>\n );\n }\n\n return <div className={styles.pageLinkHintPlaceHolder(this.theme)} />;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n target instanceof Element &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\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\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.getProps().useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n document.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n document.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n}\n\nPaging.propTypes = {\n /**\n * Current active page\n */\n activePage: number.isRequired,\n\n /**\n * React component that would be used for rendering items\n *\n * Usefull for router integration\n */\n component: func,\n\n /**\n * Total page count\n */\n pagesCount: number.isRequired,\n\n /**\n * Calls when page has been changed\n */\n onPageChange: func.isRequired,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["Paging.tsx"],"names":["React","func","number","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","ArrowChevronRightIcon","CommonWrapper","cx","rootNode","createPropsGetter","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","theme","dotsDisabled","classes","forwardLinkFocused","forwardLinkDisabled","Component","component","forward","goForward","caption","forwardIcon","pagingForwardIconSize","pageNumber","pageLinkFocused","pageLinkDisabled","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","pageLinkHint","transparent","getKeyName","pageLinkHintPlaceHolder","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","shouldBeVisibleWithLessThanTwoPages","renderMain","dataTid","setRootNode","paging","pagingDisabled","undefined","map","PureComponent","__KONTUR_REACT_UI__","propTypes","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\n\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component?: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener?: boolean;\n /**\n * Определяет, нужно ли показывать `Paging` когда страница всего одна.\n *\n * Этот проп будет удалён в 5-ой версии библиотеки,\n * так как поведение со скрытием `Paging`'а станет поведением по умолчанию.\n *\n * @default false\n */\n shouldBeVisibleWithLessThanTwoPages?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<\n Pick<PagingProps, 'component' | 'shouldBeVisibleWithLessThanTwoPages' | 'useGlobalListener' | 'data-tid'>\n>;\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': PagingDataTids.root,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\n\n public static propTypes = {};\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean /* %checks */ {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.getProps().useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.getProps().shouldBeVisibleWithLessThanTwoPages) {\n return null;\n }\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { 'data-tid': dataTid, useGlobalListener } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={dataTid}\n className={cx({ [styles.paging(this.theme)]: true, [styles.pagingDisabled()]: this.props.disabled })}\n onKeyDown={useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map(this.renderItem)}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={cx({ [styles.dots(this.theme)]: true, [styles.dotsDisabled(this.theme)]: this.props.disabled })}\n >\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n });\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {this.props.caption || forward}\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.pageLinkDisabled(this.theme)]: this.props.disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && this.props.disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classes}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n if (keyboardControl && (canGoBackward || canGoForward)) {\n return (\n <span className={styles.pageLinkHint(this.theme)}>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </span>\n );\n }\n\n return <div className={styles.pageLinkHintPlaceHolder(this.theme)} />;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n target instanceof Element &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\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\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.getProps().useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n document.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n document.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n}\n\nPaging.propTypes = {\n /**\n * Current active page\n */\n activePage: number.isRequired,\n\n /**\n * React component that would be used for rendering items\n *\n * Usefull for router integration\n */\n component: func,\n\n /**\n * Total page count\n */\n pagesCount: number.isRequired,\n\n /**\n * Calls when page has been changed\n */\n onPageChange: func.isRequired,\n};\n"]}
|
|
@@ -26,6 +26,19 @@ class Paginator3000 extends React.Component {
|
|
|
26
26
|
<Paginator3000 />;
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
+
Пейджинг в отключенном состоянии
|
|
30
|
+
|
|
31
|
+
```jsx
|
|
32
|
+
const [activePage, setActivePage] = React.useState(3);
|
|
33
|
+
|
|
34
|
+
<Paging
|
|
35
|
+
disabled
|
|
36
|
+
onPageChange={(activePage) => setActivePage(activePage)}
|
|
37
|
+
activePage={activePage}
|
|
38
|
+
pagesCount={8}
|
|
39
|
+
/>
|
|
40
|
+
```
|
|
41
|
+
|
|
29
42
|
#### Локали по умолчанию
|
|
30
43
|
|
|
31
44
|
```typescript static
|