@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.
Files changed (155) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/cjs/components/ComboBox/ComboBox.d.ts +15 -0
  3. package/cjs/components/ComboBox/ComboBox.js +16 -0
  4. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  5. package/cjs/components/ComboBox/ComboBox.md +10 -1
  6. package/cjs/components/DropdownMenu/DropdownMenu.md +11 -9
  7. package/cjs/components/FileUploader/FileUploader.d.ts +9 -1
  8. package/cjs/components/FileUploader/FileUploader.js +67 -18
  9. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  10. package/cjs/components/FileUploader/FileUploader.mixins.d.ts +1 -0
  11. package/cjs/components/FileUploader/FileUploader.mixins.js +10 -0
  12. package/cjs/components/FileUploader/FileUploader.mixins.js.map +1 -0
  13. package/cjs/components/FileUploader/FileUploader.styles.d.ts +12 -1
  14. package/cjs/components/FileUploader/FileUploader.styles.js +119 -22
  15. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  16. package/cjs/components/Hint/Hint.d.ts +1 -0
  17. package/cjs/components/Hint/Hint.js +6 -2
  18. package/cjs/components/Hint/Hint.js.map +1 -1
  19. package/cjs/components/Paging/Paging.js +20 -15
  20. package/cjs/components/Paging/Paging.js.map +1 -1
  21. package/cjs/components/Paging/Paging.md +13 -0
  22. package/cjs/components/Paging/Paging.styles.d.ts +6 -2
  23. package/cjs/components/Paging/Paging.styles.js +40 -15
  24. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  25. package/cjs/components/Select/Select.js +5 -3
  26. package/cjs/components/Select/Select.js.map +1 -1
  27. package/cjs/components/SidePage/SidePage.d.ts +0 -1
  28. package/cjs/components/SidePage/SidePage.js +0 -2
  29. package/cjs/components/SidePage/SidePage.js.map +1 -1
  30. package/cjs/components/SidePage/SidePageBody.d.ts +0 -1
  31. package/cjs/components/SidePage/SidePageBody.js +6 -11
  32. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  33. package/cjs/components/Toggle/Toggle.js +2 -1
  34. package/cjs/components/Toggle/Toggle.js.map +1 -1
  35. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  36. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +3 -1
  37. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  38. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
  39. package/cjs/internal/CustomComboBox/ComboBoxView.js +3 -1
  40. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  41. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  42. package/cjs/internal/CustomComboBox/CustomComboBox.js +3 -1
  43. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  44. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +4 -1
  45. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  46. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +2 -0
  47. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +2 -0
  48. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +1 -1
  49. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +4 -1
  50. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  51. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -0
  52. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +46 -11
  53. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  54. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +7 -0
  55. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +54 -7
  56. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +1 -1
  57. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -0
  58. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +15 -3
  59. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  60. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +3 -0
  61. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +19 -1
  62. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -1
  63. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -0
  64. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.js +18 -0
  65. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.js.map +1 -0
  66. package/cjs/internal/Popup/Popup.d.ts +5 -0
  67. package/cjs/internal/Popup/Popup.js +10 -2
  68. package/cjs/internal/Popup/Popup.js.map +1 -1
  69. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  70. package/cjs/internal/themes/DarkTheme.d.ts +1 -0
  71. package/cjs/internal/themes/DarkTheme.js +2 -1
  72. package/cjs/internal/themes/DarkTheme.js.map +1 -1
  73. package/cjs/internal/themes/DefaultTheme.d.ts +16 -0
  74. package/cjs/internal/themes/DefaultTheme.js +41 -1
  75. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  76. package/cjs/lib/utils.d.ts +2 -3
  77. package/cjs/lib/utils.js +1 -2
  78. package/cjs/lib/utils.js.map +1 -1
  79. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  80. package/components/ComboBox/ComboBox.d.ts +15 -0
  81. package/components/ComboBox/ComboBox.md +10 -1
  82. package/components/DropdownMenu/DropdownMenu.md +11 -9
  83. package/components/FileUploader/FileUploader/FileUploader.js +56 -20
  84. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  85. package/components/FileUploader/FileUploader.d.ts +9 -1
  86. package/components/FileUploader/FileUploader.mixins/FileUploader.mixins.js +8 -0
  87. package/components/FileUploader/FileUploader.mixins/FileUploader.mixins.js.map +1 -0
  88. package/components/FileUploader/FileUploader.mixins/package.json +6 -0
  89. package/components/FileUploader/FileUploader.mixins.d.ts +1 -0
  90. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +51 -17
  91. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  92. package/components/FileUploader/FileUploader.styles.d.ts +12 -1
  93. package/components/Hint/Hint/Hint.js +13 -5
  94. package/components/Hint/Hint/Hint.js.map +1 -1
  95. package/components/Hint/Hint.d.ts +1 -0
  96. package/components/Paging/Paging/Paging.js +12 -9
  97. package/components/Paging/Paging/Paging.js.map +1 -1
  98. package/components/Paging/Paging.md +13 -0
  99. package/components/Paging/Paging.styles/Paging.styles.js +27 -15
  100. package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
  101. package/components/Paging/Paging.styles.d.ts +6 -2
  102. package/components/Select/Select/Select.js +5 -5
  103. package/components/Select/Select/Select.js.map +1 -1
  104. package/components/SidePage/SidePage/SidePage.js +0 -1
  105. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  106. package/components/SidePage/SidePage.d.ts +0 -1
  107. package/components/SidePage/SidePageBody/SidePageBody.js +1 -9
  108. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  109. package/components/SidePage/SidePageBody.d.ts +0 -1
  110. package/components/Toggle/Toggle/Toggle.js +2 -1
  111. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  112. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +3 -1
  113. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  114. package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  115. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +3 -1
  116. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  117. package/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
  118. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +1 -0
  119. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  120. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  121. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +5 -1
  122. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  123. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +1 -1
  124. package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +2 -0
  125. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +7 -1
  126. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  127. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +38 -13
  128. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  129. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -0
  130. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +26 -5
  131. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +1 -1
  132. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +7 -0
  133. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +13 -3
  134. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  135. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -0
  136. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +10 -1
  137. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +1 -1
  138. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +3 -0
  139. package/internal/FileUploaderControl/hooks/useFileUploaderSize/package.json +6 -0
  140. package/internal/FileUploaderControl/hooks/useFileUploaderSize/useFileUploaderSize.js +21 -0
  141. package/internal/FileUploaderControl/hooks/useFileUploaderSize/useFileUploaderSize.js.map +1 -0
  142. package/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -0
  143. package/internal/Popup/Popup/Popup.js +5 -1
  144. package/internal/Popup/Popup/Popup.js.map +1 -1
  145. package/internal/Popup/Popup.d.ts +5 -0
  146. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  147. package/internal/themes/DarkTheme/DarkTheme.js +1 -0
  148. package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
  149. package/internal/themes/DarkTheme.d.ts +1 -0
  150. package/internal/themes/DefaultTheme/DefaultTheme.js +64 -0
  151. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  152. package/internal/themes/DefaultTheme.d.ts +16 -0
  153. package/lib/utils/utils.js.map +1 -1
  154. package/lib/utils.d.ts +2 -3
  155. 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 min-width: 285px;\n position: relative;\n background-color: ", ";\n line-height: ", ";\n font-size: ", ";\n color: ", ";\n "])), t.fileUploaderBg, t.fileUploaderLineHeight, t.fileUploaderFontSize, t.fileUploaderTextColorDefault);
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: flex;\n width: 100%;\n align-items: center;\n height: 100%;\n "])));
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(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n width: 0;\n height: 0;\n "])));
42
+ return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n width: 0;\n height: 0;\n "])));
30
43
  },
31
44
  afterLinkText: function afterLinkText() {
32
- return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: space-between;\n flex: 1 1 auto;\n "])));
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(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n border: ", " solid ", ";\n box-shadow: 0px 0px 0px 1px ", ";\n "])), t.fileUploaderBorderWidth, t.fileUploaderBorderColorWarning, t.fileUploaderBorderColorWarning);
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(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n border: ", " solid ", ";\n box-shadow: 0px 0px 0px 1px ", ";\n "])), t.fileUploaderBorderWidth, t.fileUploaderBorderColorError, t.fileUploaderBorderColorError);
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(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n background: ", ";\n "])), t.fileUploaderHoveredBg);
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(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n cursor: default;\n background: ", ";\n border: ", " solid ", ";\n color: ", ";\n box-shadow: none;\n "])), t.fileUploaderDisabledBg, t.fileUploaderBorderWidth, t.fileUploaderDisabledBorderColor, t.fileUploaderDisabledTextColor);
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(_templateObject14 || (_templateObject14 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n font-size: ", ";\n color: ", ";\n "])), t.fileUploaderIconSize, t.fileUploaderIconColor);
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(_templateObject15 || (_templateObject15 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.fileUploaderDisabledIconColor);
69
+ return css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.fileUploaderDisabledIconColor);
51
70
  },
52
71
  link: function link(t) {
53
- return css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteralLoose(["\n outline: none;\n text-decoration: none;\n color: ", ";\n "])), t.fileUploaderLinkColor);
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(_templateObject18 || (_templateObject18 = _taggedTemplateLiteralLoose(["\n color: ", ";\n &:hover {\n text-decoration: none;\n }\n "])), t.fileUploaderDisabledLinkColor);
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(_templateObject19 || (_templateObject19 = _taggedTemplateLiteralLoose(["\n width: 100%;\n "])));
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 className = cx((_cx = {}, _cx[styles.content(this.theme)] = true, _cx[styles.contentCenter(this.theme)] = pos === 'top' || pos === 'bottom', _cx[styles.mobileContent(this.theme)] = this.isMobileLayout, _cx));
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 _cx;
88
+ var _cx2;
87
89
 
88
- var classes = cx((_cx = {}, _cx[styles.forwardLink(_this.theme)] = true, _cx[styles.forwardLinkFocused()] = focused, _cx[styles.disabled(_this.theme)] = disabled, _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 _cx2;
111
+ var _cx3;
111
112
 
112
- var classes = cx((_cx2 = {}, _cx2[styles.pageLink(_this.theme)] = true, _cx2[styles.pageLinkFocused(_this.theme)] = focused, _cx2[styles.active(_this.theme)] = active, _cx2));
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":"iKAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,EAAeC,MAAf,QAA6B,YAA7B;;AAEA,SAASC,cAAT,EAAyBC,eAAzB,EAA0CC,UAA1C,QAA4D,uCAA5D;AACA,SAASC,MAAT,QAAuB,6BAAvB;;AAEA,SAASC,WAAT,QAA4B,8BAA5B;AACA,SAASC,YAAT,QAA6B,iBAA7B;AACA,SAASC,MAAT,QAAuB,kBAAvB;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,qBAAT,QAAsC,2BAAtC;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,MAAT,QAAuB,iBAAvB;AACA,OAAO,KAAKC,gBAAZ,MAAkC,oBAAlC;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,SAAuBC,kBAAvB,QAAiD,UAAjD;AACA,SAASC,sBAAT,QAAuC,0BAAvC;;AAEA,IAAMC,iBAAiB,GAAG,CAAC,OAAD,EAAU,UAAV,CAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,OAAO,IAAMC,cAAc,GAAG;AAC5BC,EAAAA,IAAI,EAAE,cADsB;AAE5BC,EAAAA,IAAI,EAAE,cAFsB;AAG5BC,EAAAA,WAAW,EAAE,qBAHe;AAI5BC,EAAAA,eAAe,EAAE,yBAJW;AAK5BC,EAAAA,QAAQ,EAAE,kBALkB,EAAvB;;;;;;;;;AAcP,WAAaC,MAAb,WADCtB,MAAM,CAAC,QAAD,EAAWa,kBAAX,CACP,EAFCL,QAED;;;;;;;;;;AAUUe,IAAAA,QAVV,GAUqBd,iBAAiB,CAACa,MAAM,CAACE,YAAR,CAVtC;;;;;;;;;AAmBSC,IAAAA,KAnBT,GAmB8B;AAC1BC,MAAAA,YAAY,EAAE,KADY;AAE1BC,MAAAA,WAAW,EAAE,IAFa;AAG1BC,MAAAA,eAAe,EAAE,MAAKL,QAAL,GAAgBM,iBAHP,EAnB9B;;;;;AA2BUC,IAAAA,mBA3BV,GA2BgC,KA3BhC;AA4BUC,IAAAA,SA5BV,GA4B8C,IA5B9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6FUC,IAAAA,UA7FV,GA6FuB,UAACC,IAAD,EAAiBC,KAAjB,EAAmC;AACtD,UAAMC,OAAO,GAAG,MAAKC,cAAL,OAA0BH,IAA1C;AACA,cAAQA,IAAR;AACE,aAAK,GAAL,CAAU;AACR,gBAAMI,GAAG,aAAUH,KAAK,GAAG,CAAR,GAAY,MAAZ,GAAqB,OAA/B,CAAT;AACA,mBAAO,MAAKI,UAAL,CAAgBD,GAAhB,CAAP;AACD;AACD,aAAK,SAAL,CAAgB;AACd,gBAAME,QAAQ,GAAG,MAAKC,cAAL,CAAoBP,IAApB,CAAjB;AACA,mBAAO,MAAKQ,iBAAL,CAAuBF,QAAvB,EAAiCJ,OAAjC,CAAP;AACD;AACD,gBAAS;AACP,gBAAMO,MAAM,GAAG,MAAKC,KAAL,CAAWC,UAAX,KAA0BX,IAAzC;AACA,mBAAO,MAAKY,cAAL,CAAoBZ,IAApB,EAA0BS,MAA1B,EAAkCP,OAAlC,CAAP;AACD,WAZH;;AAcD,KA7GH;;AA+GUG,IAAAA,UA/GV,GA+GuB,UAACD,GAAD,EAAiB;AACpC;AACE,sCAAM,YAAUrB,cAAc,CAACE,IAA/B,EAAqC,GAAG,EAAEmB,GAA1C,EAA+C,SAAS,EAAE3B,MAAM,CAACQ,IAAP,CAAY,MAAK4B,KAAjB,CAA1D;AACG,aADH,CADF;;;AAKD,KArHH;;AAuHUL,IAAAA,iBAvHV,GAuH8B,UAACF,QAAD,EAAoBJ,OAApB,EAAsD;AAChF,UAAMY,OAAO,GAAGxC,EAAE;AACfG,MAAAA,MAAM,CAACS,WAAP,CAAmB,MAAK2B,KAAxB,CADe,IACkB,IADlB;AAEfpC,MAAAA,MAAM,CAACsC,kBAAP,EAFe,IAEeb,OAFf;AAGfzB,MAAAA,MAAM,CAAC6B,QAAP,CAAgB,MAAKO,KAArB,CAHe,IAGeP,QAHf,OAAlB;;AAKA,UAAQU,OAAR,GAAoB,MAAKN,KAAzB,CAAQM,OAAR;AACA,UAAMC,SAAS,GAAG,MAAK3B,QAAL,GAAgB4B,SAAlC;AACA,UAAQC,OAAR,GAAoB,MAAKpD,MAAzB,CAAQoD,OAAR;;AAEA;AACE,4BAAC,SAAD;AACE,UAAA,GAAG,EAAE,SADP;AAEE,sBAAUpC,cAAc,CAACG,WAF3B;AAGE,UAAA,MAAM,EAAE,KAHV;AAIE,UAAA,SAAS,EAAE4B,OAJb;AAKE,UAAA,OAAO,EAAER,QAAQ,GAAGrC,YAAH,GAAkB,MAAKmD,SAL1C;AAME,UAAA,QAAQ,EAAE,CAAC,CANb;AAOE,UAAA,UAAU,EAAE,SAPd;;AASGJ,QAAAA,OAAO,IAAIG,OATd;AAUE,sCAAM,SAAS,EAAE1C,MAAM,CAAC4C,WAAP,CAAmB,MAAKR,KAAxB,CAAjB;AACE,4BAAC,qBAAD,IAAuB,IAAI,EAAE,MAAKA,KAAL,CAAWS,qBAAxC,GADF,CAVF,CADF;;;;AAgBD,KAjJH;;AAmJUV,IAAAA,cAnJV,GAmJ2B,UAACW,UAAD,EAAqBd,MAArB,EAAsCP,OAAtC,EAAwE;AAC/F,UAAMY,OAAO,GAAGxC,EAAE;AACfG,MAAAA,MAAM,CAACW,QAAP,CAAgB,MAAKyB,KAArB,CADe,IACe,IADf;AAEfpC,MAAAA,MAAM,CAAC+C,eAAP,CAAuB,MAAKX,KAA5B,CAFe,IAEsBX,OAFtB;AAGfzB,MAAAA,MAAM,CAACgC,MAAP,CAAc,MAAKI,KAAnB,CAHe,IAGaJ,MAHb,QAAlB;;AAKA,UAAMQ,SAAS,GAAG,MAAK3B,QAAL,GAAgB4B,SAAlC;AACA,UAAMO,WAAW,GAAG,SAAdA,WAAc,WAAM,MAAKC,QAAL,CAAcH,UAAd,CAAN,EAApB;;AAEA;AACE;AACE,sBAAUxC,cAAc,CAACI,eAD3B;AAEE,UAAA,GAAG,EAAEoC,UAFP;AAGE,UAAA,SAAS,EAAE9C,MAAM,CAACU,eAAP,EAHb;AAIE,UAAA,WAAW,EAAE,MAAKwC,uBAJpB;;AAME,4BAAC,SAAD;AACE,sBAAU5C,cAAc,CAACK,QAD3B;AAEE,UAAA,MAAM,EAAEqB,MAFV;AAGE,UAAA,SAAS,EAAEK,OAHb;AAIE,UAAA,OAAO,EAAEW,WAJX;AAKE,UAAA,QAAQ,EAAE,CAAC,CALb;AAME,UAAA,UAAU,EAAEF,UANd;;AAQGA,QAAAA,UARH,CANF;;AAgBGd,QAAAA,MAAM,IAAI,MAAKmB,oBAAL,EAhBb,CADF;;;AAoBD,KAhLH;;AAkLUA,IAAAA,oBAlLV,GAkLiC,YAAM;AACnC,UAAI,MAAKlB,KAAL,CAAWmB,qBAAf,EAAsC;AACpC,eAAO,IAAP;AACD;;AAED,UAAQlC,eAAR,GAA4B,MAAKH,KAAjC,CAAQG,eAAR;AACA,UAAMmC,aAAa,GAAG,MAAKA,aAAL,EAAtB;AACA,UAAMC,YAAY,GAAG,MAAKA,YAAL,EAArB;;AAEA,UAAIpC,eAAe,KAAKmC,aAAa,IAAIC,YAAtB,CAAnB,EAAwD;AACtD;AACE,wCAAM,SAAS,EAAEtD,MAAM,CAACuD,YAAP,CAAoB,MAAKnB,KAAzB,CAAjB;AACE,wCAAM,SAAS,EAAEiB,aAAa,GAAG,EAAH,GAAQrD,MAAM,CAACwD,WAAP,EAAtC,IAA6D,GAA7D,CADF;AAEE,4CAAOvD,gBAAgB,CAACwD,UAAjB,EAAP,CAFF;AAGE,wCAAM,SAAS,EAAEH,YAAY,GAAG,EAAH,GAAQtD,MAAM,CAACwD,WAAP,EAArC,IAA4D,GAA5D,CAHF,CADF;;;AAOD;;AAED,0BAAO,6BAAK,SAAS,EAAExD,MAAM,CAAC0D,uBAAP,CAA+B,MAAKtB,KAApC,CAAhB,GAAP;AACD,KAtMH;;AAwMUuB,IAAAA,eAxMV,GAwM4B,YAAM;AAC9B,YAAKC,QAAL,CAAc,EAAE5C,YAAY,EAAE,KAAhB,EAAuBC,WAAW,EAAE,IAApC,EAAd;AACD,KA1MH;;AA4MUiC,IAAAA,uBA5MV,GA4MoC,YAAM;AACtC,UAAIzD,MAAJ,EAAY;AACV;AACA;AACAoE,QAAAA,UAAU,CAAC,oBAAM,MAAKxC,SAAL,IAAkB,MAAKA,SAAL,CAAeyC,KAAf,EAAxB,EAAD,EAAiD,CAAjD,CAAV;AACD;AACF,KAlNH;;AAoNUC,IAAAA,aApNV,GAoN0B,UAACC,CAAD,EAAyD;AAC/E,UAAIA,CAAC,CAACC,QAAN,EAAgB;AACd;AACD;;AAED,UAAMC,MAAM,GAAGF,CAAC,CAACE,MAAjB;;AAEA,UAAMC,WAAW,GAAGhF,cAAc,CAAC6E,CAAD,CAAlC;AACA,UAAMI,YAAY,GAAGhF,eAAe,CAAC4E,CAAD,CAApC;;AAEA;AACEE,MAAAA,MAAM,YAAYG,OAAlB;AACChE,MAAAA,iBAAiB,CAACiE,QAAlB,CAA2BJ,MAAM,CAACK,OAAP,CAAeC,WAAf,EAA3B,KAA6DN,MAAD,CAAwBO,iBADrF,CADF;AAGE;AACA;AACD;;AAED,UAAIxE,gBAAgB,CAACyE,eAAjB,CAAiCV,CAAjC,KAAuCG,WAA3C,EAAwD;AACtD,cAAKP,QAAL,CAAc,EAAE3C,WAAW,EAAE,IAAf,EAAd,EAAqC,MAAK0D,UAA1C;AACA;AACD;AACD,UAAI1E,gBAAgB,CAACyE,eAAjB,CAAiCV,CAAjC,KAAuCI,YAA3C,EAAyD;AACvD,cAAKR,QAAL,CAAc,EAAE3C,WAAW,EAAE,IAAf,EAAd,EAAqC,MAAK0B,SAA1C;AACA;AACD;;AAED,UAAI,MAAKtB,SAAL,IAAkB,MAAKA,SAAL,KAAmB2C,CAAC,CAACE,MAA3C,EAAmD;AACjD,YAAIC,WAAJ,EAAiB;AACf,gBAAKP,QAAL,CAAc,EAAE5C,YAAY,EAAE,IAAhB,EAAd,EAAsC,MAAK4D,aAA3C;AACA;AACD;AACD,YAAIR,YAAJ,EAAkB;AAChB,gBAAKR,QAAL,CAAc,EAAE5C,YAAY,EAAE,IAAhB,EAAd,EAAsC,MAAK6D,cAA3C;AACA;AACD;AACD,YAAIxF,UAAU,CAAC2E,CAAD,CAAd,EAAmB;AACjB,gBAAKc,iBAAL,CAAuB,MAAKpD,cAAL,EAAvB;AACA;AACD;AACF;AACF,KA5PH;;AA8PUqD,IAAAA,WA9PV,GA8PwB,YAAM;AAC1B,UAAI,MAAK9C,KAAL,CAAWJ,QAAf,EAAyB;AACvB;AACD;;AAED,YAAK+B,QAAL,CAAc,EAAE1C,eAAe,EAAE,IAAnB,EAAd;;AAEA;AACA;AACA8D,MAAAA,qBAAqB,CAAC,YAAM;AAC1B,YAAIzF,WAAW,CAAC0F,YAAhB,EAA8B;AAC5B,gBAAKrB,QAAL,CAAc,EAAE5C,YAAY,EAAE,IAAhB,EAAd;AACD;AACF,OAJoB,CAArB;AAKD,KA5QH;;AA8QUkE,IAAAA,UA9QV,GA8QuB,YAAM;AACzB,YAAKtB,QAAL,CAAc;AACZ5C,QAAAA,YAAY,EAAE,KADF;AAEZE,QAAAA,eAAe,EAAE,MAAKL,QAAL,GAAgBM,iBAAhB,IAAqC,KAF1C,EAAd;;AAID,KAnRH;;AAqRUjB,IAAAA,QArRV,GAqRqB,YAAkB;AACnC,aAAOA,QAAQ,CAAC,MAAK+B,KAAL,CAAWC,UAAZ,EAAwB,MAAKD,KAAL,CAAWkD,UAAnC,CAAR,CAAuDC,MAAvD,CAA8D,SAA9D,CAAP;AACD,KAvRH;;AAyRU1D,IAAAA,cAzRV,GAyR2B,YAA0B;AACjD,UAAI,CAAC,MAAKX,KAAL,CAAWC,YAAhB,EAA8B;AAC5B,eAAO,IAAP;AACD;;AAED,UAAQC,WAAR,GAAwB,MAAKF,KAA7B,CAAQE,WAAR;AACA,UAAIA,WAAW,IAAI,MAAKf,QAAL,GAAgBoE,QAAhB,CAAyBrD,WAAzB,CAAf,IAAwD,MAAKoE,eAAL,CAAqBpE,WAArB,CAA5D,EAA+F;AAC7F,eAAOA,WAAP;AACD;;AAED,aAAO,MAAKgB,KAAL,CAAWC,UAAlB;AACD,KApSH;;AAsSUmD,IAAAA,eAtSV,GAsS4B,UAAC9D,IAAD,EAAoB;AAC5C,aAAO,CAAC,MAAKO,cAAL,CAAoBP,IAApB,CAAR;AACD,KAxSH;;AA0SUO,IAAAA,cA1SV,GA0S2B,UAACP,IAAD,EAAoB;AAC3C,cAAQA,IAAR;AACE,aAAK,GAAL;AACE,iBAAO,IAAP;AACF,aAAK,SAAL;AACE,iBAAO,CAAC,MAAK+B,YAAL,EAAR;AACF;AACE,iBAAO,KAAP,CANJ;;AAQD,KAnTH;;AAqTUwB,IAAAA,iBArTV,GAqT8B,UAACvD,IAAD,EAA8B;AACxD,UAAIA,IAAI,KAAK,SAAb,EAAwB;AACtB,cAAKoB,SAAL;AACD;AACD,UAAI,OAAOpB,IAAP,KAAgB,QAApB,EAA8B;AAC5B,cAAK0B,QAAL,CAAc1B,IAAd;AACD;AACF,KA5TH;;AA8TUqD,IAAAA,aA9TV,GA8T0B,YAAM;AAC5B,YAAKU,SAAL,CAAe,CAAC,CAAhB;AACD,KAhUH;;AAkUUT,IAAAA,cAlUV,GAkU2B,YAAM;AAC7B,YAAKS,SAAL,CAAe,CAAf;AACD,KApUH;;AAsUUA,IAAAA,SAtUV,GAsUsB,UAACC,IAAD,EAAkB;AACpC,UAAMtE,WAAW,GAAG,MAAKS,cAAL,EAApB;AACA,UAAM8D,KAAK,GAAG,MAAKtF,QAAL,EAAd;AACA,UAAIsB,KAAK,GAAGgE,KAAK,CAACC,SAAN,CAAgB,UAACC,CAAD,UAAOA,CAAC,KAAKzE,WAAb,EAAhB,CAAZ;AACA,SAAG;AACDO,QAAAA,KAAK,GAAG,CAACA,KAAK,GAAG+D,IAAR,GAAeC,KAAK,CAACG,MAAtB,IAAgCH,KAAK,CAACG,MAA9C;AACD,OAFD,QAES,CAAC,MAAKN,eAAL,CAAqBG,KAAK,CAAChE,KAAD,CAA1B,CAFV;AAGA,YAAKoC,QAAL,CAAc,EAAE3C,WAAW,EAAEuE,KAAK,CAAChE,KAAD,CAApB,EAAd;AACD,KA9UH;;AAgVU6B,IAAAA,aAhVV,GAgV0B,YAAe;AACrC,aAAO,MAAKpB,KAAL,CAAWC,UAAX,GAAwB,CAA/B;AACD,KAlVH;;AAoVUoB,IAAAA,YApVV,GAoVyB,YAAe;AACpC,aAAO,MAAKrB,KAAL,CAAWC,UAAX,GAAwB,MAAKD,KAAL,CAAWkD,UAA1C;AACD,KAtVH;;AAwVUR,IAAAA,UAxVV,GAwVuB,YAAM;AACzB,YAAK1B,QAAL,CAAc,MAAKhB,KAAL,CAAWC,UAAX,GAAwB,CAAtC;AACD,KA1VH;;AA4VUS,IAAAA,SA5VV,GA4VsB,YAAM;AACxB,YAAKM,QAAL,CAAc,MAAKhB,KAAL,CAAWC,UAAX,GAAwB,CAAtC;AACD,KA9VH;;AAgWUe,IAAAA,QAhWV,GAgWqB,UAACH,UAAD,EAAwB;AACzC,UAAIA,UAAU,IAAI,CAAd,IAAmBA,UAAU,KAAK,MAAKb,KAAL,CAAWC,UAA7C,IAA2DY,UAAU,IAAI,MAAKb,KAAL,CAAWkD,UAAxF,EAAoG;AAClG,cAAKlD,KAAL,CAAW2D,YAAX,CAAwB9C,UAAxB;AACD;AACF,KApWH;;AAsWU+C,IAAAA,iBAtWV,GAsW8B,YAAM;AAChC,UAAI,MAAKzE,mBAAT,EAA8B;AAC5B;AACD;;AAED0E,MAAAA,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqC,MAAKhC,aAA1C;AACA,YAAK3C,mBAAL,GAA2B,IAA3B;AACD,KA7WH;;AA+WU4E,IAAAA,oBA/WV,GA+WiC,YAAM;AACnC,UAAI,MAAK5E,mBAAT,EAA8B;AAC5B0E,QAAAA,QAAQ,CAACG,mBAAT,CAA6B,SAA7B,EAAwC,MAAKlC,aAA7C;;AAEA,cAAK3C,mBAAL,GAA2B,KAA3B;AACD;AACF,KArXH;;AAuXU8E,IAAAA,YAvXV,GAuXyB,UAACC,OAAD,EAAqC;AAC1D,YAAK9E,SAAL,GAAiB8E,OAAjB;AACD,KAzXH,sBAegBC,SAfhB,GAeE,mBAAwBtD,UAAxB,EAAiE,aAAc,CAC7E,OAAOA,UAAU,KAAK,SAAtB,CACD,CAjBH,sCA8BSuD,iBA9BT,GA8BE,6BAA2B,CACzB,IAAMlF,iBAAiB,GAAG,KAAKN,QAAL,GAAgBM,iBAA1C,CACA,IAAIA,iBAAJ,EAAuB,CACrB,KAAK0E,iBAAL,GACD,CACF,CAnCH,QAqCSS,kBArCT,GAqCE,4BAA0BC,SAA1B,EAAkD,CAChD,IAAMpF,iBAAiB,GAAG,KAAKN,QAAL,GAAgBM,iBAA1C,CACA,IAAI,CAACoF,SAAS,CAACpF,iBAAX,IAAgCA,iBAApC,EAAuD,CACrD,KAAK0E,iBAAL,GACD,CAED,IAAIU,SAAS,CAACpF,iBAAV,IAA+B,CAACA,iBAApC,EAAuD,CACrD,KAAK6E,oBAAL,GACD,CAED,IAAIO,SAAS,CAACpF,iBAAV,KAAgCA,iBAApC,EAAuD,CACrD,KAAKyC,QAAL,CAAc,EACZ1C,eAAe,EAAEC,iBADL,EAAd,EAGD,CACF,CApDH,QAsDSqF,oBAtDT,GAsDE,gCAA8B,CAC5B,KAAKR,oBAAL,GACD,CAxDH,QA0DSS,MA1DT,GA0DE,kBAAgB,mBACd,IAAI,KAAKxE,KAAL,CAAWkD,UAAX,GAAwB,CAAxB,IAA6B,CAAC,KAAKtE,QAAL,GAAgB6F,mCAAlD,EAAuF,CACrF,OAAO,IAAP,CACD,CAED,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACtE,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACuE,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CAvEH,QAyEUA,UAzEV,GAyEE,sBAAqB,CACnB,qBAAmD,KAAK9F,QAAL,EAAnD,CAAoB+F,OAApB,kBAAQ,UAAR,EAA6BzF,iBAA7B,kBAA6BA,iBAA7B,CACA,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,KAAK0F,WAAjC,IAAkD,KAAK5E,KAAvD,gBACE,8BACE,QAAQ,EAAE,CADZ,EAEE,YAAU2E,OAFZ,EAGE,SAAS,EAAE5G,MAAM,CAAC8G,MAAP,CAAc,KAAK1E,KAAnB,CAHb,EAIE,SAAS,EAAEjB,iBAAiB,GAAG4F,SAAH,GAAe,KAAKhD,aAJlD,EAKE,OAAO,EAAE,KAAKgB,WALhB,EAME,MAAM,EAAE,KAAKG,UANf,EAOE,WAAW,EAAE,KAAKvB,eAPpB,EAQE,GAAG,EAAE,KAAKuC,YARZ,IAUG,KAAKhG,QAAL,GAAgB8G,GAAhB,CAAoB,KAAK1F,UAAzB,CAVH,CADF,CADF,CAgBD,CA3FH,iBAA4BtC,KAAK,CAACiI,aAAlC,WACgBC,mBADhB,GACsC,QADtC,UAGgBpG,YAHhB,GAG6C,EACzC2B,SAAS,EAAErC,sBAD8B,EAEzCsG,mCAAmC,EAAE,IAFI,EAGzCvF,iBAAiB,EAAE,KAHsB,EAIzC,YAAYb,cAAc,CAACC,IAJc,EAH7C,UAYgB4G,SAZhB,GAY4B,EAZ5B;;;AA4XAvG,MAAM,CAACuG,SAAP,GAAmB;AACjB;AACF;AACA;AACEjF,EAAAA,UAAU,EAAEhD,MAAM,CAACkI,UAJF;;AAMjB;AACF;AACA;AACA;AACA;AACE3E,EAAAA,SAAS,EAAExD,IAXM;;AAajB;AACF;AACA;AACEkG,EAAAA,UAAU,EAAEjG,MAAM,CAACkI,UAhBF;;AAkBjB;AACF;AACA;AACExB,EAAAA,YAAY,EAAE3G,IAAI,CAACmI,UArBF,EAAnB","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