@skbkontur/react-ui 4.0.6 → 4.1.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 (219) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/cjs/components/FileUploader/FileUploader.js +5 -4
  3. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  4. package/cjs/components/FileUploader/FileUploader.styles.d.ts +3 -2
  5. package/cjs/components/FileUploader/FileUploader.styles.js +21 -15
  6. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  7. package/cjs/components/Input/Input.d.ts +1 -5
  8. package/cjs/components/Input/Input.js +14 -21
  9. package/cjs/components/Input/Input.js.map +1 -1
  10. package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
  11. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  12. package/cjs/components/Modal/Modal.styles.js +10 -6
  13. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  14. package/cjs/components/Paging/Paging.d.ts +12 -2
  15. package/cjs/components/Paging/Paging.js +14 -3
  16. package/cjs/components/Paging/Paging.js.map +1 -1
  17. package/cjs/components/Paging/PagingDefaultComponent.d.ts +9 -0
  18. package/cjs/components/Paging/PagingDefaultComponent.js +21 -0
  19. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -0
  20. package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -0
  21. package/cjs/components/PasswordInput/PasswordInput.js +22 -4
  22. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  23. package/cjs/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  24. package/cjs/components/PasswordInput/PasswordInputIcon.js +11 -0
  25. package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -0
  26. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +7 -2
  27. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  28. package/cjs/components/Switcher/Switcher.styles.js +2 -2
  29. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  30. package/cjs/components/Textarea/Textarea.d.ts +2 -2
  31. package/cjs/components/Textarea/Textarea.js +6 -6
  32. package/cjs/components/Textarea/Textarea.js.map +1 -1
  33. package/cjs/components/Textarea/TextareaCounter.js +10 -2
  34. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  35. package/cjs/components/Toast/ToastView.js +1 -1
  36. package/cjs/components/Toast/ToastView.js.map +1 -1
  37. package/cjs/components/Toast/ToastView.styles.d.ts +1 -1
  38. package/cjs/components/Toast/ToastView.styles.js +3 -2
  39. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  40. package/cjs/components/Toggle/Toggle.styles.js +12 -10
  41. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  42. package/cjs/components/TokenInput/TokenInput.styles.js +3 -2
  43. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  44. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  45. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  46. package/cjs/index.d.ts +2 -0
  47. package/cjs/index.js +2 -0
  48. package/cjs/index.js.map +1 -1
  49. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +14 -10
  50. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  51. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -1
  52. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  53. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -2
  54. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  55. package/cjs/internal/Menu/Menu.styles.js +5 -3
  56. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  57. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  58. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  59. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  60. package/cjs/internal/RenderContainer/RenderInnerContainer.js +8 -1
  61. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  62. package/cjs/internal/ThemePlayground/Playground.js +11 -19
  63. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  64. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  65. package/cjs/internal/ThemePlayground/SizesGroup.js +20 -0
  66. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -0
  67. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  68. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -2
  69. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  70. package/cjs/internal/ThemePlayground/constants.d.ts +3 -1
  71. package/cjs/internal/ThemePlayground/constants.js +3 -1
  72. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  73. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  74. package/cjs/internal/icons/16px/index.js +8 -0
  75. package/cjs/internal/icons/16px/index.js.map +1 -1
  76. package/cjs/internal/icons/20px/svg.js +6 -0
  77. package/cjs/internal/icons/20px/svg.js.map +1 -1
  78. package/cjs/internal/themes/DefaultTheme.d.ts +20 -1
  79. package/cjs/internal/themes/DefaultTheme.js +40 -5
  80. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  81. package/cjs/internal/themes/NotFlat.d.ts +6 -0
  82. package/cjs/internal/themes/NotFlat.js +12 -2
  83. package/cjs/internal/themes/NotFlat.js.map +1 -1
  84. package/cjs/internal/themes/Theme2022.d.ts +66 -0
  85. package/cjs/internal/themes/Theme2022.js +100 -0
  86. package/cjs/internal/themes/Theme2022.js.map +1 -0
  87. package/cjs/internal/themes/Theme2022Dark.d.ts +5 -0
  88. package/cjs/internal/themes/Theme2022Dark.js +9 -0
  89. package/cjs/internal/themes/Theme2022Dark.js.map +1 -0
  90. package/cjs/lib/needsPolyfillPlaceholder.d.ts +6 -0
  91. package/cjs/lib/needsPolyfillPlaceholder.js +19 -0
  92. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -0
  93. package/cjs/lib/rootNode/getRootNode.js +3 -2
  94. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  95. package/cjs/lib/rootNode/rootNodeDecorator.js +2 -1
  96. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  97. package/cjs/lib/theming/themes/Theme2022.d.ts +1 -0
  98. package/cjs/lib/theming/themes/Theme2022.js +6 -0
  99. package/cjs/lib/theming/themes/Theme2022.js.map +1 -0
  100. package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  101. package/cjs/lib/theming/themes/Theme2022Dark.js +9 -0
  102. package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -0
  103. package/components/FileUploader/FileUploader/FileUploader.js +5 -6
  104. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  105. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +15 -12
  106. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  107. package/components/FileUploader/FileUploader.styles.d.ts +3 -2
  108. package/components/Input/Input/Input.js +7 -25
  109. package/components/Input/Input/Input.js.map +1 -1
  110. package/components/Input/Input.d.ts +1 -5
  111. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
  112. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  113. package/components/Modal/Modal.styles/Modal.styles.js +4 -4
  114. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  115. package/components/Paging/Paging/Paging.js +7 -9
  116. package/components/Paging/Paging/Paging.js.map +1 -1
  117. package/components/Paging/Paging.d.ts +12 -2
  118. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js +19 -0
  119. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -0
  120. package/components/Paging/PagingDefaultComponent/package.json +6 -0
  121. package/components/Paging/PagingDefaultComponent.d.ts +9 -0
  122. package/components/PasswordInput/PasswordInput/PasswordInput.js +24 -5
  123. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  124. package/components/PasswordInput/PasswordInput.d.ts +2 -0
  125. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js +10 -0
  126. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js.map +1 -0
  127. package/components/PasswordInput/PasswordInputIcon/package.json +6 -0
  128. package/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  129. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -0
  130. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  131. package/components/Switcher/Switcher.styles/Switcher.styles.js +1 -1
  132. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  133. package/components/Textarea/Textarea/Textarea.js +6 -6
  134. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  135. package/components/Textarea/Textarea.d.ts +2 -2
  136. package/components/Textarea/TextareaCounter/TextareaCounter.js +9 -1
  137. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  138. package/components/Toast/ToastView/ToastView.js +1 -1
  139. package/components/Toast/ToastView/ToastView.js.map +1 -1
  140. package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
  141. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  142. package/components/Toast/ToastView.styles.d.ts +1 -1
  143. package/components/Toggle/Toggle.styles/Toggle.styles.js +3 -4
  144. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  145. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  146. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  147. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  148. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  149. package/index.d.ts +2 -0
  150. package/index.js +2 -0
  151. package/index.js.map +1 -1
  152. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -0
  153. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  154. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  155. package/internal/InputLikeText/InputLikeText.d.ts +1 -1
  156. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  157. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  158. package/internal/Menu/Menu.styles/Menu.styles.js +1 -1
  159. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  160. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  161. package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  162. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +8 -2
  163. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  164. package/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  165. package/internal/ThemePlayground/Playground/Playground.js +15 -29
  166. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  167. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +29 -0
  168. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -0
  169. package/internal/ThemePlayground/SizesGroup/package.json +6 -0
  170. package/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  171. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +14 -2
  172. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  173. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  174. package/internal/ThemePlayground/constants/constants.js +2 -0
  175. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  176. package/internal/ThemePlayground/constants.d.ts +3 -1
  177. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  178. package/internal/icons/16px/index/index.js +7 -0
  179. package/internal/icons/16px/index/index.js.map +1 -1
  180. package/internal/icons/20px/svg/svg.js +5 -0
  181. package/internal/icons/20px/svg/svg.js.map +1 -1
  182. package/internal/themes/DefaultTheme/DefaultTheme.js +48 -4
  183. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  184. package/internal/themes/DefaultTheme.d.ts +20 -1
  185. package/internal/themes/NotFlat/NotFlat.js +15 -0
  186. package/internal/themes/NotFlat/NotFlat.js.map +1 -1
  187. package/internal/themes/NotFlat.d.ts +6 -0
  188. package/internal/themes/Theme2022/Theme2022.js +78 -0
  189. package/internal/themes/Theme2022/Theme2022.js.map +1 -0
  190. package/internal/themes/Theme2022/package.json +6 -0
  191. package/internal/themes/Theme2022.d.ts +66 -0
  192. package/internal/themes/Theme2022Dark/Theme2022Dark.js +17 -0
  193. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  194. package/internal/themes/Theme2022Dark/package.json +6 -0
  195. package/internal/themes/Theme2022Dark.d.ts +5 -0
  196. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +21 -0
  197. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -0
  198. package/lib/needsPolyfillPlaceholder/package.json +6 -0
  199. package/lib/needsPolyfillPlaceholder.d.ts +6 -0
  200. package/lib/rootNode/getRootNode/getRootNode.js +1 -0
  201. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  202. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +2 -0
  203. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  204. package/lib/theming/themes/Theme2022/Theme2022.js +4 -0
  205. package/lib/theming/themes/Theme2022/Theme2022.js.map +1 -0
  206. package/lib/theming/themes/Theme2022/package.json +6 -0
  207. package/lib/theming/themes/Theme2022.d.ts +1 -0
  208. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +5 -0
  209. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  210. package/lib/theming/themes/Theme2022Dark/package.json +6 -0
  211. package/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  212. package/package.json +2 -2
  213. package/cjs/lib/polyfillPlaceholder.d.ts +0 -1
  214. package/cjs/lib/polyfillPlaceholder.js +0 -17
  215. package/cjs/lib/polyfillPlaceholder.js.map +0 -1
  216. package/lib/polyfillPlaceholder/package.json +0 -6
  217. package/lib/polyfillPlaceholder/polyfillPlaceholder.js +0 -12
  218. package/lib/polyfillPlaceholder/polyfillPlaceholder.js.map +0 -1
  219. package/lib/polyfillPlaceholder.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["Modal.styles.ts"],"names":["css","memoizeStyle","resetButton","styles","root","bg","t","modalBackBg","modalBackOpacity","container","window","modalBg","mobileWindow","centerContainer","mobileCenterContainer","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","modalCloseIconSize","mobileClose","mobileModalCloseButtonRightPadding","mobileModalCloseButtonTopPadding","mobileModalHeaderPadding","mobileModalCloseButtonClickArea","mobileModalCloseIconSize","mobileCloseWithoutHeader","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","mobileCloseWrapper","size","bgDefault","disabled","modalCloseButtonDisabledColor","focus","borderColorFocus","headerWrapper","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","mobileHeader","mobileModalHeaderFontSize","mobileModalHeaderLineHeight","body","modalBodyPaddingBottom","modalBodyTextColor","mobileBody","mobileModalBodyPadding","mobileModalBodyFontSize","headerWithClose","rightPadding","modalCloseLegacyGap","mobileHeaderWithClose","footer","modalFooterPaddingTop","modalFooterPaddingBottom","modalFooterTextColor","mobileFooter","mobileModalFooterPadding","footerWrapper","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderShadow","mobileFixedHeader","fixedFooter","modalFixedFooterShadow","fixedPanel","modalFixedPanelShadow","headerAddPadding","bodyWithoutHeader","modalPaddingTop","mobileBodyWithoutHeader","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom","mobileBodyAddPaddingForPanel","columnFlexContainer"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n background: ${t.modalBg};\n `;\n },\n\n mobileWindow() {\n return css`\n width: 100%;\n height: 100%;\n overflow: auto;\n `;\n },\n\n centerContainer(t: Theme) {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n `;\n },\n\n mobileCenterContainer() {\n return css`\n margin: 0;\n width: 100%;\n height: 100%;\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n mobileClose(t: Theme) {\n return css`\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${parseInt(t.mobileModalCloseButtonTopPadding) + parseInt(t.mobileModalHeaderPadding)}px;\n padding: ${t.mobileModalCloseButtonClickArea};\n margin: -${t.mobileModalCloseButtonClickArea};\n\n & > svg {\n width: ${t.mobileModalCloseIconSize};\n height: ${t.mobileModalCloseIconSize};\n }\n `;\n },\n\n mobileCloseWithoutHeader() {\n return css`\n position: static;\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n mobileCloseWrapper(t: Theme) {\n const size = parseInt(t.mobileModalCloseIconSize) + parseInt(t.mobileModalCloseButtonClickArea) * 2;\n\n return css`\n position: absolute;\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${t.mobileModalCloseButtonTopPadding};\n padding: 0px;\n margin: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ${size}px;\n height: ${size}px;\n background: radial-gradient(50% 50% at 50% 50%, ${t.bgDefault} 60%, rgba(255, 255, 255, 0) 100%);\n border-radius: ${size}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n color: ${t.modalCloseButtonHoverColor};\n outline: 2px solid ${t.borderColorFocus};\n `;\n },\n\n headerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n `;\n },\n\n mobileHeader(t: Theme) {\n return css`\n font-size: ${t.mobileModalHeaderFontSize};\n line-height: ${t.mobileModalHeaderLineHeight};\n padding: ${t.mobileModalHeaderPadding};\n `;\n },\n\n body(t: Theme) {\n return css`\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalBodyTextColor};\n `;\n },\n\n mobileBody(t: Theme) {\n return css`\n padding: ${t.mobileModalBodyPadding};\n padding-top: 0px;\n display: flex;\n flex-flow: column;\n flex: 1;\n font-size: ${t.mobileModalBodyFontSize};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n mobileHeaderWithClose(t: Theme) {\n return css`\n padding-right: ${2 * parseInt(t.mobileModalCloseButtonRightPadding) + parseInt(t.mobileModalCloseIconSize)}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalFooterTextColor};\n `;\n },\n\n mobileFooter(t: Theme) {\n return css`\n padding: ${t.mobileModalFooterPadding};\n `;\n },\n\n footerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: 10px;\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n mobileFixedHeader(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalHeaderPadding};\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: 20px;\n margin-top: 10px;\n background: ${t.modalFixedHeaderBg};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n fixedPanel(t: Theme) {\n return css`\n &:before {\n box-shadow: ${t.modalFixedPanelShadow};\n }\n `;\n },\n\n headerAddPadding() {\n return css`\n padding-bottom: 22px;\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n mobileBodyWithoutHeader(t: Theme) {\n return css`\n padding-top: 0px;\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n\n mobileBodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalBodyPadding};\n `;\n },\n\n columnFlexContainer() {\n return css`\n height: 100%;\n display: flex;\n flex-flow: column;\n overflow-y: scroll;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Modal.styles.ts"],"names":["css","memoizeStyle","resetButton","styles","root","bg","t","modalBackBg","modalBackOpacity","container","window","modalBg","modalBorderRadius","mobileWindow","centerContainer","mobileCenterContainer","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","modalCloseIconSize","mobileClose","mobileModalCloseButtonRightPadding","mobileModalCloseButtonTopPadding","mobileModalHeaderPadding","mobileModalCloseButtonClickArea","mobileModalCloseIconSize","mobileCloseWithoutHeader","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","mobileCloseWrapper","size","bgDefault","disabled","modalCloseButtonDisabledColor","focus","borderColorFocus","headerWrapper","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","mobileHeader","mobileModalHeaderFontSize","mobileModalHeaderLineHeight","body","modalBodyPaddingBottom","modalBodyTextColor","mobileBody","mobileModalBodyPadding","mobileModalBodyFontSize","headerWithClose","rightPadding","modalCloseLegacyGap","mobileHeaderWithClose","footer","modalFooterPaddingTop","modalFooterPaddingBottom","modalFooterTextColor","mobileFooter","mobileModalFooterPadding","footerWrapper","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderBorder","modalFixedHeaderShadow","mobileFixedHeader","fixedFooter","modalFixedFooterBorder","modalFixedFooterShadow","fixedPanel","modalFixedPanelShadow","headerAddPadding","bodyWithoutHeader","modalPaddingTop","mobileBodyWithoutHeader","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom","mobileBodyAddPaddingForPanel","columnFlexContainer"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n background: ${t.modalBg};\n border-radius: ${t.modalBorderRadius};\n `;\n },\n\n mobileWindow() {\n return css`\n width: 100%;\n height: 100%;\n overflow: auto;\n `;\n },\n\n centerContainer(t: Theme) {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n `;\n },\n\n mobileCenterContainer() {\n return css`\n margin: 0;\n width: 100%;\n height: 100%;\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n mobileClose(t: Theme) {\n return css`\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${parseInt(t.mobileModalCloseButtonTopPadding) + parseInt(t.mobileModalHeaderPadding)}px;\n padding: ${t.mobileModalCloseButtonClickArea};\n margin: -${t.mobileModalCloseButtonClickArea};\n\n & > svg {\n width: ${t.mobileModalCloseIconSize};\n height: ${t.mobileModalCloseIconSize};\n }\n `;\n },\n\n mobileCloseWithoutHeader() {\n return css`\n position: static;\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n mobileCloseWrapper(t: Theme) {\n const size = parseInt(t.mobileModalCloseIconSize) + parseInt(t.mobileModalCloseButtonClickArea) * 2;\n\n return css`\n position: absolute;\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${t.mobileModalCloseButtonTopPadding};\n padding: 0px;\n margin: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ${size}px;\n height: ${size}px;\n background: radial-gradient(50% 50% at 50% 50%, ${t.bgDefault} 60%, rgba(255, 255, 255, 0) 100%);\n border-radius: ${size}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n color: ${t.modalCloseButtonHoverColor};\n outline: 2px solid ${t.borderColorFocus};\n `;\n },\n\n headerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n `;\n },\n\n mobileHeader(t: Theme) {\n return css`\n font-size: ${t.mobileModalHeaderFontSize};\n line-height: ${t.mobileModalHeaderLineHeight};\n padding: ${t.mobileModalHeaderPadding};\n `;\n },\n\n body(t: Theme) {\n return css`\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalBodyTextColor};\n `;\n },\n\n mobileBody(t: Theme) {\n return css`\n padding: ${t.mobileModalBodyPadding};\n padding-top: 0px;\n display: flex;\n flex-flow: column;\n flex: 1;\n font-size: ${t.mobileModalBodyFontSize};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n mobileHeaderWithClose(t: Theme) {\n return css`\n padding-right: ${2 * parseInt(t.mobileModalCloseButtonRightPadding) + parseInt(t.mobileModalCloseIconSize)}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalFooterTextColor};\n border-radius: 0 0 ${t.modalBorderRadius} ${t.modalBorderRadius};\n `;\n },\n\n mobileFooter(t: Theme) {\n return css`\n padding: ${t.mobileModalFooterPadding};\n `;\n },\n\n footerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: 10px;\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n border-bottom: ${t.modalFixedHeaderBorder};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n mobileFixedHeader(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalHeaderPadding};\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: 20px;\n margin-top: 10px;\n background: ${t.modalFixedHeaderBg};\n border-top: ${t.modalFixedFooterBorder};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n fixedPanel(t: Theme) {\n return css`\n &:before {\n box-shadow: ${t.modalFixedPanelShadow};\n }\n `;\n },\n\n headerAddPadding() {\n return css`\n padding-bottom: 22px;\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n mobileBodyWithoutHeader(t: Theme) {\n return css`\n padding-top: 0px;\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n\n mobileBodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalBodyPadding};\n `;\n },\n\n columnFlexContainer() {\n return css`\n height: 100%;\n display: flex;\n flex-flow: column;\n overflow-y: scroll;\n `;\n },\n});\n"]}
@@ -19,6 +19,7 @@ import { styles } from "../Paging.styles";
19
19
  import * as NavigationHelper from "../NavigationHelper";
20
20
  import { getItems } from "../PagingHelper";
21
21
  import { PagingLocaleHelper } from "../locale";
22
+ import { PagingDefaultComponent } from "../PagingDefaultComponent";
22
23
  var IGNORE_EVENT_TAGS = ['input', 'textarea'];
23
24
  export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_class = _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {
24
25
  _inheritsLoose(Paging, _React$PureComponent);
@@ -399,6 +400,10 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
399
400
  _proto.render = function render() {
400
401
  var _this2 = this;
401
402
 
403
+ if (this.props.pagesCount < 2 && !this.props.shouldBeVisibleWithLessThanTwoPages) {
404
+ return null;
405
+ }
406
+
402
407
  return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
403
408
  _this2.theme = theme;
404
409
  return _this2.renderMain();
@@ -422,15 +427,8 @@ export var Paging = (_dec = locale('Paging', PagingLocaleHelper), rootNode(_clas
422
427
 
423
428
  return Paging;
424
429
  }(React.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Paging', _class2.defaultProps = (_class2$defaultProps = {
425
- component: function component(_ref) {
426
- var className = _ref.className,
427
- onClick = _ref.onClick,
428
- children = _ref.children;
429
- return /*#__PURE__*/React.createElement("span", {
430
- className: className,
431
- onClick: onClick
432
- }, children);
433
- },
430
+ component: PagingDefaultComponent,
431
+ shouldBeVisibleWithLessThanTwoPages: true,
434
432
  useGlobalListener: false
435
433
  }, _class2$defaultProps['data-tid'] = 'Paging__root', _class2$defaultProps), _class2.propTypes = {}, _temp)) || _class) || _class);
436
434
  Paging.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"sources":["Paging.tsx"],"names":["React","func","number","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","ArrowChevronRightIcon","CommonWrapper","cx","rootNode","styles","NavigationHelper","getItems","PagingLocaleHelper","IGNORE_EVENT_TAGS","Paging","state","focusedByTab","focusedItem","keyboardControl","props","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","activePage","renderPageLink","dots","theme","classes","forwardLink","forwardLinkFocused","Component","component","caption","forward","goForward","forwardIcon","pagingForwardIconSize","pageNumber","pageLink","pageLinkFocused","handleClick","goToPage","pageLinkWrapper","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","renderMain","setRootNode","paging","undefined","map","PureComponent","__KONTUR_REACT_UI__","defaultProps","className","onClick","children","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';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\ninterface 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\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\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 = {\n component: ({ className, onClick, children }: any) => (\n <span className={className} onClick={onClick}>\n {children}\n </span>\n ),\n useGlobalListener: false,\n ['data-tid']: 'Paging__root',\n };\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.props.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.props;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n if (!prevProps.useGlobalListener && this.props.useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !this.props.useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== this.props.useGlobalListener) {\n this.setState({\n keyboardControl: this.props.useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={0}\n data-tid={this.props['data-tid']}\n className={styles.paging(this.theme)}\n onKeyDown={this.props.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=\"Paging__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 { component: Component, caption } = this.props;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid=\"Paging__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.props.component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid=\"Paging__pageLinkWrapper\"\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid=\"Paging__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 = (e: React.FocusEvent<HTMLElement>) => {\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.props.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 (1 <= pageNumber && 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","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","IGNORE_EVENT_TAGS","Paging","state","focusedByTab","focusedItem","keyboardControl","props","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","activePage","renderPageLink","dots","theme","classes","forwardLink","forwardLinkFocused","Component","component","caption","forward","goForward","forwardIcon","pagingForwardIconSize","pageNumber","pageLink","pageLinkFocused","handleClick","goToPage","pageLinkWrapper","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","setRootNode","paging","undefined","map","PureComponent","__KONTUR_REACT_UI__","defaultProps","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';\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\ninterface 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\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 = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n ['data-tid']: 'Paging__root',\n };\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.props.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.props;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n if (!prevProps.useGlobalListener && this.props.useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !this.props.useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== this.props.useGlobalListener) {\n this.setState({\n keyboardControl: this.props.useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.props.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 return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={0}\n data-tid={this.props['data-tid']}\n className={styles.paging(this.theme)}\n onKeyDown={this.props.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=\"Paging__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 { component: Component, caption } = this.props;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid=\"Paging__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.props.component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid=\"Paging__pageLinkWrapper\"\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid=\"Paging__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 = (e: React.FocusEvent<HTMLElement>) => {\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.props.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 (1 <= pageNumber && 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"]}
@@ -33,6 +33,15 @@ export interface PagingProps extends CommonProps {
33
33
  * на каждом из них. Такие случаи лучше обрабатывать отдельно.
34
34
  */
35
35
  useGlobalListener: boolean;
36
+ /**
37
+ * Определяет, нужно ли показывать `Paging` когда страница всего одна.
38
+ *
39
+ * Этот проп будет удалён в 5-ой версии библиотеки,
40
+ * так как поведение со скрытием `Paging`'а станет поведением по умолчанию.
41
+ *
42
+ * @default false
43
+ */
44
+ shouldBeVisibleWithLessThanTwoPages: boolean;
36
45
  }
37
46
  export interface PagingState {
38
47
  focusedByTab: boolean;
@@ -43,7 +52,8 @@ export declare type ItemType = number | '.' | 'forward';
43
52
  export declare class Paging extends React.PureComponent<PagingProps, PagingState> {
44
53
  static __KONTUR_REACT_UI__: string;
45
54
  static defaultProps: {
46
- component: ({ className, onClick, children }: any) => JSX.Element;
55
+ component: ({ onClick, className, children, ...rest }: import("./PagingDefaultComponent").PagingDefaultComponentProps) => JSX.Element;
56
+ shouldBeVisibleWithLessThanTwoPages: boolean;
47
57
  useGlobalListener: boolean;
48
58
  "data-tid": string;
49
59
  };
@@ -58,7 +68,7 @@ export declare class Paging extends React.PureComponent<PagingProps, PagingState
58
68
  componentDidMount(): void;
59
69
  componentDidUpdate(prevProps: PagingProps): void;
60
70
  componentWillUnmount(): void;
61
- render(): JSX.Element;
71
+ render(): JSX.Element | null;
62
72
  private renderMain;
63
73
  private renderItem;
64
74
  private renderDots;
@@ -0,0 +1,19 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ var _excluded = ["onClick", "className", "children"];
4
+ import React from 'react';
5
+ import { extractDataProps } from "../../../lib/utils";
6
+ export var PagingDefaultComponent = function PagingDefaultComponent(_ref) {
7
+ var onClick = _ref.onClick,
8
+ className = _ref.className,
9
+ children = _ref.children,
10
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
11
+
12
+ var _extractDataProps = extractDataProps(rest),
13
+ dataProps = _extractDataProps.dataProps;
14
+
15
+ return /*#__PURE__*/React.createElement("span", _extends({
16
+ onClick: onClick,
17
+ className: className
18
+ }, dataProps), children);
19
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PagingDefaultComponent.tsx"],"names":["React","extractDataProps","PagingDefaultComponent","onClick","className","children","rest","dataProps"],"mappings":"mNAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,gBAAT,QAAiC,iBAAjC;;;;;;;;;;AAUA,OAAO,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,OAA4E,KAAzEC,OAAyE,QAAzEA,OAAyE,CAAhEC,SAAgE,QAAhEA,SAAgE,CAArDC,QAAqD,QAArDA,QAAqD,CAAxCC,IAAwC;AAChH,0BAAsBL,gBAAgB,CAACK,IAAD,CAAtC,CAAQC,SAAR,qBAAQA,SAAR;;AAEA;AACE,2CAAM,OAAO,EAAEJ,OAAf,EAAwB,SAAS,EAAEC,SAAnC,IAAkDG,SAAlD;AACGF,IAAAA,QADH,CADF;;;AAKD,CARM","sourcesContent":["import React from 'react';\n\nimport { extractDataProps } from '../../lib/utils';\nimport { CommonProps } from '../../internal/CommonWrapper';\n\ntype PagingDefaultComponentInterface = {\n onClick: () => void;\n children: React.ReactNode;\n};\n\nexport type PagingDefaultComponentProps = PagingDefaultComponentInterface & Pick<CommonProps, 'className'>;\n\nexport const PagingDefaultComponent = ({ onClick, className, children, ...rest }: PagingDefaultComponentProps) => {\n const { dataProps } = extractDataProps(rest);\n\n return (\n <span onClick={onClick} className={className} {...dataProps}>\n {children}\n </span>\n );\n};\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/components/Paging/PagingDefaultComponent.js",
3
+ "module": "PagingDefaultComponent",
4
+ "types": "../PagingDefaultComponent.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { CommonProps } from '../../internal/CommonWrapper';
3
+ declare type PagingDefaultComponentInterface = {
4
+ onClick: () => void;
5
+ children: React.ReactNode;
6
+ };
7
+ export declare type PagingDefaultComponentProps = PagingDefaultComponentInterface & Pick<CommonProps, 'className'>;
8
+ export declare const PagingDefaultComponent: ({ onClick, className, children, ...rest }: PagingDefaultComponentProps) => JSX.Element;
9
+ export {};
@@ -11,13 +11,13 @@ import PropTypes from 'prop-types';
11
11
  import { isKeyCapsLock } from "../../../lib/events/keyboard/identifiers";
12
12
  import { KeyboardEventCodes as Codes } from "../../../lib/events/keyboard/KeyboardEventCodes";
13
13
  import { Input } from "../../Input";
14
- import { EyeClosedIcon, EyeOpenedIcon } from "../../../internal/icons/16px";
15
14
  import { isIE11 } from "../../../lib/client";
16
15
  import { CommonWrapper } from "../../../internal/CommonWrapper";
17
16
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
18
17
  import { cx } from "../../../lib/theming/Emotion";
19
18
  import { rootNode } from "../../../lib/rootNode";
20
19
  import { styles } from "../PasswordInput.styles";
20
+ import { PasswordInputIcon } from "../PasswordInputIcon";
21
21
  export
22
22
  /**
23
23
  * Компонент для ввода пароля
@@ -110,6 +110,16 @@ var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
110
110
  }
111
111
  };
112
112
 
113
+ _this.onBlur = function (e) {
114
+ if (_this.props.onBlur) {
115
+ _this.props.onBlur(e);
116
+ }
117
+
118
+ _this.setState({
119
+ visible: false
120
+ });
121
+ };
122
+
113
123
  _this.renderEye = function () {
114
124
  var capsLockEnabled = _this.state.capsLockEnabled;
115
125
  return /*#__PURE__*/React.createElement("span", {
@@ -121,10 +131,8 @@ var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
121
131
  "data-tid": "PasswordInputEyeIcon",
122
132
  className: cx(styles.toggleVisibility(_this.theme), _this.getEyeWrapperClassname()),
123
133
  onClick: _this.handleToggleVisibility
124
- }, _this.state.visible ? /*#__PURE__*/React.createElement(EyeClosedIcon, {
125
- size: 14
126
- }) : /*#__PURE__*/React.createElement(EyeOpenedIcon, {
127
- size: 14
134
+ }, !_this.props.disabled && /*#__PURE__*/React.createElement(PasswordInputIcon, {
135
+ visible: _this.state.visible
128
136
  })));
129
137
  };
130
138
 
@@ -137,6 +145,7 @@ var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
137
145
  rest = _objectWithoutPropertiesLoose(props, _excluded);
138
146
 
139
147
  var inputProps = _extends({}, rest, {
148
+ onBlur: _this.onBlur,
140
149
  onKeyDown: _this.handleKeydown,
141
150
  onKeyPress: _this.handleKeyPress,
142
151
  rightIcon: _this.renderEye()
@@ -170,6 +179,16 @@ var PasswordInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
170
179
  }
171
180
  };
172
181
 
182
+ PasswordInput.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
183
+ if (props.disabled) {
184
+ return {
185
+ visible: false
186
+ };
187
+ }
188
+
189
+ return state;
190
+ };
191
+
173
192
  _proto.render = function render() {
174
193
  var _this2 = this;
175
194
 
@@ -1 +1 @@
1
- {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","isKeyCapsLock","KeyboardEventCodes","Codes","Input","EyeClosedIcon","EyeOpenedIcon","isIE11","CommonWrapper","ThemeContext","cx","rootNode","styles","PasswordInput","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","iconWrapper","capsLockDetector","toggleVisibility","theme","getEyeWrapperClassname","refInput","element","renderMain","rest","inputProps","rightIcon","root","componentDidMount","window","document","msCapsLockWarningOff","render","setRootNode","right","size","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { EyeClosedIcon, EyeOpenedIcon } from '../../internal/icons/16px';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './PasswordInput.styles';\n\nexport interface PasswordInputProps extends CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps = {\n size: 'small',\n };\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-ignore\n if (isIE11 && !window.document.msCapsLockWarningOff) {\n // turns off default ie capslock warning\n // @ts-ignore\n window.document.msCapsLockWarningOff = true;\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && capsLockEnabled != null) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getEyeWrapperClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return styles.eyeWrapperLarge(this.theme);\n case 'medium':\n return styles.eyeWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.eyeWrapperSmall(this.theme);\n }\n }\n\n private renderEye = () => {\n const { capsLockEnabled } = this.state;\n\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && <span className={styles.capsLockDetector()} data-tid=\"PasswordInputCapsLockDetector\" />}\n <span\n data-tid=\"PasswordInputEyeIcon\"\n className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}\n onClick={this.handleToggleVisibility}\n >\n {this.state.visible ? <EyeClosedIcon size={14} /> : <EyeOpenedIcon size={14} />}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n return (\n <div className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["PasswordInput.tsx"],"names":["React","PropTypes","isKeyCapsLock","KeyboardEventCodes","Codes","Input","isIE11","CommonWrapper","ThemeContext","cx","rootNode","styles","PasswordInputIcon","PasswordInput","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","onBlur","renderEye","iconWrapper","capsLockDetector","toggleVisibility","theme","getEyeWrapperClassname","disabled","refInput","element","renderMain","rest","inputProps","rightIcon","root","componentDidMount","window","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","right","size","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyCapsLock } from '../../lib/events/keyboard/identifiers';\nimport { KeyboardEventCodes as Codes } from '../../lib/events/keyboard/KeyboardEventCodes';\nimport { Input, InputProps } from '../Input';\nimport { Nullable } from '../../typings/utility-types';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\n\nexport interface PasswordInputProps extends CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps = {\n size: 'small',\n };\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-ignore\n if (isIE11 && !window.document.msCapsLockWarningOff) {\n // turns off default ie capslock warning\n // @ts-ignore\n window.document.msCapsLockWarningOff = true;\n }\n }\n\n public static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState) {\n if (props.disabled) {\n return { visible: false };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n this.handleBlur();\n };\n\n private handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { onKeyPress, detectCapsLock } = this.props;\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n const capsLockEnabled = e.getModifierState(Codes.CapsLock);\n\n this.setState({ capsLockEnabled });\n };\n\n private handleKeydown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const {\n props: { detectCapsLock, onKeyDown },\n state: { capsLockEnabled },\n } = this;\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n\n if (!detectCapsLock) {\n return;\n }\n\n if (isKeyCapsLock(e) && capsLockEnabled != null) {\n this.setState({ capsLockEnabled: !capsLockEnabled });\n }\n };\n\n private handleToggleVisibility = () => {\n this.setState((prevState) => ({ visible: !prevState.visible }), this.handleFocus);\n };\n\n private handleFocus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n private handleBlur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private onBlur = (e: React.FocusEvent<HTMLInputElement, Element>) => {\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n\n this.setState({ visible: false });\n };\n\n private getEyeWrapperClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return styles.eyeWrapperLarge(this.theme);\n case 'medium':\n return styles.eyeWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.eyeWrapperSmall(this.theme);\n }\n }\n\n private renderEye = () => {\n const { capsLockEnabled } = this.state;\n\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && <span className={styles.capsLockDetector()} data-tid=\"PasswordInputCapsLockDetector\" />}\n <span\n data-tid=\"PasswordInputEyeIcon\"\n className={cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}\n onClick={this.handleToggleVisibility}\n >\n {!this.props.disabled && <PasswordInputIcon visible={this.state.visible} />}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private renderMain = (props: CommonWrapperRestProps<PasswordInputProps>) => {\n const { detectCapsLock, ...rest } = props;\n const inputProps = {\n ...rest,\n onBlur: this.onBlur,\n onKeyDown: this.handleKeydown,\n onKeyPress: this.handleKeyPress,\n rightIcon: this.renderEye(),\n };\n\n return (\n <div className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n );\n };\n}\n"]}
@@ -28,6 +28,7 @@ export declare class PasswordInput extends React.PureComponent<PasswordInputProp
28
28
  private input;
29
29
  private setRootNode;
30
30
  componentDidMount(): void;
31
+ static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState): PasswordInputState;
31
32
  render(): JSX.Element;
32
33
  /**
33
34
  * @public
@@ -42,6 +43,7 @@ export declare class PasswordInput extends React.PureComponent<PasswordInputProp
42
43
  private handleToggleVisibility;
43
44
  private handleFocus;
44
45
  private handleBlur;
46
+ private onBlur;
45
47
  private getEyeWrapperClassname;
46
48
  private renderEye;
47
49
  private refInput;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { EyeClosedIcon, EyeOpenedIcon } from "../../../internal/icons/16px";
3
+ export var PasswordInputIcon = function PasswordInputIcon(_ref) {
4
+ var visible = _ref.visible;
5
+ return visible ? /*#__PURE__*/React.createElement(EyeClosedIcon, {
6
+ size: 14
7
+ }) : /*#__PURE__*/React.createElement(EyeOpenedIcon, {
8
+ size: 14
9
+ });
10
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PasswordInputIcon.tsx"],"names":["React","EyeClosedIcon","EyeOpenedIcon","PasswordInputIcon","visible"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,aAAT,EAAwBC,aAAxB,QAA6C,2BAA7C;;;;;;AAMA,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,OAAyC,KAAtCC,OAAsC,QAAtCA,OAAsC;AACxE,SAAOA,OAAO,gBAAG,oBAAC,aAAD,IAAe,IAAI,EAAE,EAArB,GAAH,gBAAiC,oBAAC,aAAD,IAAe,IAAI,EAAE,EAArB,GAA/C;AACD,CAFM","sourcesContent":["import React from 'react';\n\nimport { EyeClosedIcon, EyeOpenedIcon } from '../../internal/icons/16px';\n\nimport { PasswordInputState } from './PasswordInput';\n\nexport type PasswordInputIconProps = Pick<PasswordInputState, 'visible'>;\n\nexport const PasswordInputIcon = ({ visible }: PasswordInputIconProps) => {\n return visible ? <EyeClosedIcon size={14} /> : <EyeOpenedIcon size={14} />;\n};\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/components/PasswordInput/PasswordInputIcon.js",
3
+ "module": "PasswordInputIcon",
4
+ "types": "../PasswordInputIcon.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,3 @@
1
+ import { PasswordInputState } from './PasswordInput';
2
+ export declare type PasswordInputIconProps = Pick<PasswordInputState, 'visible'>;
3
+ export declare const PasswordInputIcon: ({ visible }: PasswordInputIconProps) => JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import React, { useEffect } from 'react';
2
+ import propTypes from 'prop-types';
2
3
  import { isFunction } from "../../../lib/utils";
3
4
  import { CommonWrapper } from "../../../internal/CommonWrapper";
4
5
  import { useResponsiveLayout } from "../useResponsiveLayout";
@@ -16,4 +17,8 @@ export var ResponsiveLayout = function ResponsiveLayout(props) {
16
17
  }
17
18
  }, [layoutFlags]);
18
19
  return /*#__PURE__*/React.createElement(CommonWrapper, props, isFunction(props.children) ? (_props$children = props.children(layoutFlags)) != null ? _props$children : null : (_props$children2 = props.children) != null ? _props$children2 : null);
20
+ };
21
+ ResponsiveLayout.propTypes = {
22
+ onLayoutChange: propTypes.func,
23
+ children: propTypes.node
19
24
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["React","useEffect","isFunction","CommonWrapper","useResponsiveLayout","ResponsiveLayout","props","layoutFlags","onLayoutChange","children"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;;AAEA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,aAAT,QAA8B,8BAA9B;;;AAGA,SAASC,mBAAT,QAAoC,uBAApC;;;;;;;AAOA;AACA;AACA;;AAEA,OAAO,IAAMC,gBAAiD,GAAG,SAApDA,gBAAoD,CAACC,KAAD,EAAW;AAC1E,MAAMC,WAAW,GAAGH,mBAAmB,EAAvC;;AAEAH,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIK,KAAK,CAACE,cAAV,EAA0B;AACxBF,MAAAA,KAAK,CAACE,cAAN,CAAqBD,WAArB;AACD;AACF,GAJQ,EAIN,CAACA,WAAD,CAJM,CAAT;;AAMA;AACE,wBAAC,aAAD,EAAmBD,KAAnB;AACGJ,IAAAA,UAAU,CAACI,KAAK,CAACG,QAAP,CAAV,sBAA6BH,KAAK,CAACG,QAAN,CAAeF,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACG,QAAzE,+BAAqF,IADxF,CADF;;;AAKD,CAdM","sourcesContent":["import React, { useEffect } from 'react';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps {\n onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport const ResponsiveLayout: React.FC<ResponsiveLayoutProps> = (props) => {\n const layoutFlags = useResponsiveLayout();\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n};\n"]}
1
+ {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["React","useEffect","propTypes","isFunction","CommonWrapper","useResponsiveLayout","ResponsiveLayout","props","layoutFlags","onLayoutChange","children","func","node"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,aAAT,QAA8B,8BAA9B;;;AAGA,SAASC,mBAAT,QAAoC,uBAApC;;;;;;;AAOA;AACA;AACA;;AAEA,OAAO,IAAMC,gBAAiD,GAAG,SAApDA,gBAAoD,CAACC,KAAD,EAAW;AAC1E,MAAMC,WAAW,GAAGH,mBAAmB,EAAvC;;AAEAJ,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIM,KAAK,CAACE,cAAV,EAA0B;AACxBF,MAAAA,KAAK,CAACE,cAAN,CAAqBD,WAArB;AACD;AACF,GAJQ,EAIN,CAACA,WAAD,CAJM,CAAT;;AAMA;AACE,wBAAC,aAAD,EAAmBD,KAAnB;AACGJ,IAAAA,UAAU,CAACI,KAAK,CAACG,QAAP,CAAV,sBAA6BH,KAAK,CAACG,QAAN,CAAeF,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACG,QAAzE,+BAAqF,IADxF,CADF;;;AAKD,CAdM;;AAgBPJ,gBAAgB,CAACJ,SAAjB,GAA6B;AAC3BO,EAAAA,cAAc,EAAEP,SAAS,CAACS,IADC;AAE3BD,EAAAA,QAAQ,EAAER,SAAS,CAACU,IAFO,EAA7B","sourcesContent":["import React, { useEffect } from 'react';\nimport propTypes from 'prop-types';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps {\n onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport const ResponsiveLayout: React.FC<ResponsiveLayoutProps> = (props) => {\n const layoutFlags = useResponsiveLayout();\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n};\n\nResponsiveLayout.propTypes = {\n onLayoutChange: propTypes.func,\n children: propTypes.node,\n};\n"]}
@@ -28,6 +28,6 @@ export var styles = memoizeStyle({
28
28
  error: function error(t) {
29
29
  var insideWidth = parseInt(t.btnBorderWidth);
30
30
  var outsideWidth = parseInt(t.switcherOutlineWidth) - insideWidth + "px";
31
- return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n border-radius: 2px;\n box-shadow: inset 0 0 0 ", "px ", ", 0 0 0 ", " ", ";\n "])), insideWidth, t.borderColorError, outsideWidth, t.borderColorError);
31
+ return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n border-radius: ", ";\n box-shadow: inset 0 0 0 ", "px ", ", 0 0 0 ", " ", ";\n "])), t.switcherBorderRadius, insideWidth, t.borderColorError, outsideWidth, t.borderColorError);
32
32
  }
33
33
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Switcher.styles.ts"],"names":["css","memoizeStyle","styles","root","wrap","input","caption","t","switcherTextColor","captionSmall","switcherCaptionGapSmall","switcherCaptionFontSizeSmall","switcherCaptionLineHeightSmall","captionMedium","switcherCaptionGapMedium","switcherCaptionFontSizeMedium","switcherCaptionLineHeightMedium","captionLarge","switcherCaptionGapLarge","switcherCaptionFontSizeLarge","switcherCaptionLineHeightLarge","error","insideWidth","parseInt","btnBorderWidth","outsideWidth","switcherOutlineWidth","borderColorError"],"mappings":"kPAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,IADiC,kBAC1B;AACL,WAAOH,GAAP;;;AAGD,GALgC;;AAOjCI,EAAAA,IAPiC,kBAO1B;AACL,WAAOJ,GAAP;;;;AAID,GAZgC;;AAcjCK,EAAAA,KAdiC,mBAczB;AACN,WAAOL,GAAP;;;;;;AAMD,GArBgC;;AAuBjCM,EAAAA,OAvBiC,mBAuBzBC,CAvByB,EAuBf;AAChB,WAAOP,GAAP;AACWO,IAAAA,CAAC,CAACC,iBADb;;;;AAKD,GA7BgC;;AA+BjCC,EAAAA,YA/BiC,wBA+BpBF,CA/BoB,EA+BV;AACrB,WAAOP,GAAP;AACkBO,IAAAA,CAAC,CAACG,uBADpB;AAEeH,IAAAA,CAAC,CAACI,4BAFjB;AAGiBJ,IAAAA,CAAC,CAACK,8BAHnB;;AAKD,GArCgC;;AAuCjCC,EAAAA,aAvCiC,yBAuCnBN,CAvCmB,EAuCT;AACtB,WAAOP,GAAP;AACkBO,IAAAA,CAAC,CAACO,wBADpB;AAEeP,IAAAA,CAAC,CAACQ,6BAFjB;AAGiBR,IAAAA,CAAC,CAACS,+BAHnB;;AAKD,GA7CgC;;AA+CjCC,EAAAA,YA/CiC,wBA+CpBV,CA/CoB,EA+CV;AACrB,WAAOP,GAAP;AACkBO,IAAAA,CAAC,CAACW,uBADpB;AAEeX,IAAAA,CAAC,CAACY,4BAFjB;AAGiBZ,IAAAA,CAAC,CAACa,8BAHnB;;AAKD,GArDgC;;AAuDjCC,EAAAA,KAvDiC,iBAuD3Bd,CAvD2B,EAuDjB;AACd,QAAMe,WAAW,GAAGC,QAAQ,CAAChB,CAAC,CAACiB,cAAH,CAA5B;AACA,QAAMC,YAAY,GAAMF,QAAQ,CAAChB,CAAC,CAACmB,oBAAH,CAAR,GAAmCJ,WAAzC,OAAlB;AACA,WAAOtB,GAAP;;AAE4BsB,IAAAA,WAF5B,EAE6Cf,CAAC,CAACoB,gBAF/C,EAE0EF,YAF1E,EAE0FlB,CAAC,CAACoB,gBAF5F;;AAID,GA9DgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n line-height: normal;\n `;\n },\n\n wrap() {\n return css`\n display: inline-block;\n vertical-align: middle;\n `;\n },\n\n input() {\n return css`\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.switcherTextColor};\n vertical-align: middle;\n display: inline-block;\n `;\n },\n\n captionSmall(t: Theme) {\n return css`\n margin-right: ${t.switcherCaptionGapSmall};\n font-size: ${t.switcherCaptionFontSizeSmall};\n line-height: ${t.switcherCaptionLineHeightSmall};\n `;\n },\n\n captionMedium(t: Theme) {\n return css`\n margin-right: ${t.switcherCaptionGapMedium};\n font-size: ${t.switcherCaptionFontSizeMedium};\n line-height: ${t.switcherCaptionLineHeightMedium};\n `;\n },\n\n captionLarge(t: Theme) {\n return css`\n margin-right: ${t.switcherCaptionGapLarge};\n font-size: ${t.switcherCaptionFontSizeLarge};\n line-height: ${t.switcherCaptionLineHeightLarge};\n `;\n },\n\n error(t: Theme) {\n const insideWidth = parseInt(t.btnBorderWidth);\n const outsideWidth = `${parseInt(t.switcherOutlineWidth) - insideWidth}px`;\n return css`\n border-radius: 2px;\n box-shadow: inset 0 0 0 ${insideWidth}px ${t.borderColorError}, 0 0 0 ${outsideWidth} ${t.borderColorError};\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Switcher.styles.ts"],"names":["css","memoizeStyle","styles","root","wrap","input","caption","t","switcherTextColor","captionSmall","switcherCaptionGapSmall","switcherCaptionFontSizeSmall","switcherCaptionLineHeightSmall","captionMedium","switcherCaptionGapMedium","switcherCaptionFontSizeMedium","switcherCaptionLineHeightMedium","captionLarge","switcherCaptionGapLarge","switcherCaptionFontSizeLarge","switcherCaptionLineHeightLarge","error","insideWidth","parseInt","btnBorderWidth","outsideWidth","switcherOutlineWidth","switcherBorderRadius","borderColorError"],"mappings":"kPAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,IADiC,kBAC1B;AACL,WAAOH,GAAP;;;AAGD,GALgC;;AAOjCI,EAAAA,IAPiC,kBAO1B;AACL,WAAOJ,GAAP;;;;AAID,GAZgC;;AAcjCK,EAAAA,KAdiC,mBAczB;AACN,WAAOL,GAAP;;;;;;AAMD,GArBgC;;AAuBjCM,EAAAA,OAvBiC,mBAuBzBC,CAvByB,EAuBf;AAChB,WAAOP,GAAP;AACWO,IAAAA,CAAC,CAACC,iBADb;;;;AAKD,GA7BgC;;AA+BjCC,EAAAA,YA/BiC,wBA+BpBF,CA/BoB,EA+BV;AACrB,WAAOP,GAAP;AACkBO,IAAAA,CAAC,CAACG,uBADpB;AAEeH,IAAAA,CAAC,CAACI,4BAFjB;AAGiBJ,IAAAA,CAAC,CAACK,8BAHnB;;AAKD,GArCgC;;AAuCjCC,EAAAA,aAvCiC,yBAuCnBN,CAvCmB,EAuCT;AACtB,WAAOP,GAAP;AACkBO,IAAAA,CAAC,CAACO,wBADpB;AAEeP,IAAAA,CAAC,CAACQ,6BAFjB;AAGiBR,IAAAA,CAAC,CAACS,+BAHnB;;AAKD,GA7CgC;;AA+CjCC,EAAAA,YA/CiC,wBA+CpBV,CA/CoB,EA+CV;AACrB,WAAOP,GAAP;AACkBO,IAAAA,CAAC,CAACW,uBADpB;AAEeX,IAAAA,CAAC,CAACY,4BAFjB;AAGiBZ,IAAAA,CAAC,CAACa,8BAHnB;;AAKD,GArDgC;;AAuDjCC,EAAAA,KAvDiC,iBAuD3Bd,CAvD2B,EAuDjB;AACd,QAAMe,WAAW,GAAGC,QAAQ,CAAChB,CAAC,CAACiB,cAAH,CAA5B;AACA,QAAMC,YAAY,GAAMF,QAAQ,CAAChB,CAAC,CAACmB,oBAAH,CAAR,GAAmCJ,WAAzC,OAAlB;AACA,WAAOtB,GAAP;AACmBO,IAAAA,CAAC,CAACoB,oBADrB;AAE4BL,IAAAA,WAF5B,EAE6Cf,CAAC,CAACqB,gBAF/C,EAE0EH,YAF1E,EAE0FlB,CAAC,CAACqB,gBAF5F;;AAID,GA9DgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n line-height: normal;\n `;\n },\n\n wrap() {\n return css`\n display: inline-block;\n vertical-align: middle;\n `;\n },\n\n input() {\n return css`\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.switcherTextColor};\n vertical-align: middle;\n display: inline-block;\n `;\n },\n\n captionSmall(t: Theme) {\n return css`\n margin-right: ${t.switcherCaptionGapSmall};\n font-size: ${t.switcherCaptionFontSizeSmall};\n line-height: ${t.switcherCaptionLineHeightSmall};\n `;\n },\n\n captionMedium(t: Theme) {\n return css`\n margin-right: ${t.switcherCaptionGapMedium};\n font-size: ${t.switcherCaptionFontSizeMedium};\n line-height: ${t.switcherCaptionLineHeightMedium};\n `;\n },\n\n captionLarge(t: Theme) {\n return css`\n margin-right: ${t.switcherCaptionGapLarge};\n font-size: ${t.switcherCaptionFontSizeLarge};\n line-height: ${t.switcherCaptionLineHeightLarge};\n `;\n },\n\n error(t: Theme) {\n const insideWidth = parseInt(t.btnBorderWidth);\n const outsideWidth = `${parseInt(t.switcherOutlineWidth) - insideWidth}px`;\n return css`\n border-radius: ${t.switcherBorderRadius};\n box-shadow: inset 0 0 0 ${insideWidth}px ${t.borderColorError}, 0 0 0 ${outsideWidth} ${t.borderColorError};\n `;\n },\n});\n"]}
@@ -10,7 +10,7 @@ import PropTypes from 'prop-types';
10
10
  import throttle from 'lodash.throttle';
11
11
  import raf from 'raf';
12
12
  import { isKeyEnter } from "../../../lib/events/keyboard/identifiers";
13
- import { polyfillPlaceholder } from "../../../lib/polyfillPlaceholder";
13
+ import { needsPolyfillPlaceholder } from "../../../lib/needsPolyfillPlaceholder";
14
14
  import * as LayoutEvents from "../../../lib/LayoutEvents";
15
15
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
16
16
  import { RenderLayer } from "../../../internal/RenderLayer";
@@ -45,7 +45,7 @@ var Textarea = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
45
45
 
46
46
  _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
47
47
  _this.state = {
48
- polyfillPlaceholder: polyfillPlaceholder,
48
+ needsPolyfillPlaceholder: needsPolyfillPlaceholder,
49
49
  isCounterVisible: false
50
50
  };
51
51
 
@@ -123,7 +123,7 @@ var Textarea = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
123
123
  };
124
124
  var placeholderPolyfill = null;
125
125
 
126
- if (_this.state.polyfillPlaceholder && !textareaProps.value) {
126
+ if (_this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {
127
127
  placeholderPolyfill = /*#__PURE__*/React.createElement("span", {
128
128
  className: styles.placeholder()
129
129
  }, placeholder);
@@ -196,12 +196,12 @@ var Textarea = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
196
196
  };
197
197
 
198
198
  _this.handleChange = function (e) {
199
- if (polyfillPlaceholder) {
199
+ if (needsPolyfillPlaceholder) {
200
200
  var fieldIsEmpty = e.target.value === '';
201
201
 
202
- if (_this.state.polyfillPlaceholder !== fieldIsEmpty) {
202
+ if (_this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {
203
203
  _this.setState({
204
- polyfillPlaceholder: fieldIsEmpty
204
+ needsPolyfillPlaceholder: fieldIsEmpty
205
205
  });
206
206
  }
207
207
  }