@skbkontur/react-ui 3.6.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +71 -0
- package/cjs/components/Button/Button.d.ts +1 -0
- package/cjs/components/Button/Button.js +7 -4
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.js +2 -2
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +9 -8
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.js +3 -2
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +14 -5
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.styles.d.ts +4 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js +9 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js.map +1 -0
- package/cjs/components/FxInput/FxInput.js +1 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Input/Input.styles.js +1 -1
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Kebab/Kebab.js +2 -2
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.js +2 -2
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +3 -1
- package/cjs/components/Loader/Loader.js +20 -1
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.md +1 -1
- package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
- package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.d.ts +1 -0
- package/cjs/components/Modal/Modal.styles.js +24 -21
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalClose.js +23 -3
- package/cjs/components/Modal/ModalClose.js.map +1 -1
- package/cjs/components/Paging/Paging.js +2 -2
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.styles.js +2 -1
- package/cjs/components/Paging/Paging.styles.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +9 -1
- package/cjs/components/Radio/Radio.js +37 -4
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/Radio/Radio.styles.d.ts +1 -1
- package/cjs/components/Radio/Radio.styles.js +5 -10
- package/cjs/components/Radio/Radio.styles.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.d.ts +37 -0
- package/cjs/components/ScrollContainer/ScrollBar.js +244 -0
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.constants.d.ts +23 -0
- package/cjs/components/ScrollContainer/ScrollContainer.constants.js +33 -0
- package/cjs/components/ScrollContainer/ScrollContainer.constants.js.map +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +38 -23
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.d.ts +10 -0
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +62 -0
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +81 -153
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.md +62 -13
- package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +12 -3
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js +72 -9
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +1 -2
- package/cjs/components/SidePage/SidePage.js +1 -5
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePage.styles.d.ts +2 -1
- package/cjs/components/SidePage/SidePage.styles.js +44 -28
- package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +4 -1
- package/cjs/components/SidePage/SidePageHeader.js +33 -23
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Switcher/Switcher.js +1 -1
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.d.ts +1 -1
- package/cjs/components/Switcher/Switcher.styles.js +3 -2
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +0 -3
- package/cjs/components/Tabs/Tab.js +3 -13
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tab.styles.js +2 -2
- package/cjs/components/Tabs/Tab.styles.js.map +1 -1
- package/cjs/components/Toggle/Toggle.js +6 -5
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Toggle/Toggle.styles.d.ts +1 -0
- package/cjs/components/Toggle/Toggle.styles.js +26 -16
- package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
- package/cjs/components/Token/Token.styles.js +8 -9
- package/cjs/components/Token/Token.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +8 -0
- package/cjs/components/TokenInput/TokenInput.js +24 -2
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.styles.js +2 -1
- package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +3 -2
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +5 -7
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +2 -1
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/ThemePlayground/darkTheme.js +3 -3
- package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/icons/CrossIcon.js +8 -1
- package/cjs/internal/icons/CrossIcon.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +23 -7
- package/cjs/internal/themes/DefaultTheme.js +77 -32
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/internal/themes/FlatTheme.d.ts +4 -4
- package/cjs/internal/themes/FlatTheme.js +16 -8
- package/cjs/internal/themes/FlatTheme.js.map +1 -1
- package/cjs/internal/themes/Theme8px.d.ts +0 -5
- package/cjs/internal/themes/Theme8px.js +2 -12
- package/cjs/internal/themes/Theme8px.js.map +1 -1
- package/cjs/lib/Upgrades.d.ts +2 -0
- package/cjs/lib/Upgrades.js +14 -0
- package/cjs/lib/Upgrades.js.map +1 -1
- package/cjs/lib/events/keyListener.d.ts +7 -0
- package/cjs/lib/events/keyListener.js +22 -0
- package/cjs/lib/events/keyListener.js.map +1 -0
- package/cjs/lib/events/keyboard/identifiers.d.ts +1 -0
- package/cjs/lib/events/keyboard/identifiers.js +6 -1
- package/cjs/lib/events/keyboard/identifiers.js.map +1 -1
- package/cjs/lib/events/tabListener.d.ts +1 -6
- package/cjs/lib/events/tabListener.js +2 -15
- package/cjs/lib/events/tabListener.js.map +1 -1
- package/cjs/lib/locale/LOCALECONTEXT.md +1 -1
- package/cjs/lib/styles/ColorFunctions.js +1 -1
- package/cjs/lib/styles/ColorFunctions.js.map +1 -1
- package/cjs/lib/theming/Emotion.js +1 -1
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.md +1 -1
- package/cjs/lib/utils.d.ts +7 -0
- package/cjs/lib/utils.js +12 -2
- package/cjs/lib/utils.js.map +1 -1
- package/components/Button/Button/Button.js +5 -4
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -0
- package/components/Button/Button.styles/Button.styles.js +1 -1
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js +5 -5
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +2 -2
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +11 -5
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js +10 -0
- package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js.map +1 -0
- package/components/CurrencyLabel/CurrencyLabel.styles/package.json +6 -0
- package/components/CurrencyLabel/CurrencyLabel.styles.d.ts +4 -0
- package/components/FxInput/FxInput/FxInput.js +2 -1
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/Input/Input.styles/Input.styles.js +1 -1
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Kebab/Kebab/Kebab.js +2 -2
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Link/Link/Link.js +2 -2
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Loader/Loader/Loader.js +34 -14
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +3 -1
- package/components/MenuItem/MenuItem.md +1 -1
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
- package/components/Modal/Modal.styles/Modal.styles.js +18 -15
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +1 -0
- package/components/Modal/ModalClose/ModalClose.js +25 -2
- package/components/Modal/ModalClose/ModalClose.js.map +1 -1
- package/components/Paging/Paging/Paging.js +2 -2
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.styles/Paging.styles.js +1 -1
- package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
- package/components/Radio/Radio/Radio.js +36 -3
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +9 -1
- package/components/Radio/Radio.styles/Radio.styles.js +3 -3
- package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
- package/components/Radio/Radio.styles.d.ts +1 -1
- package/components/ScrollContainer/ScrollBar/ScrollBar.js +254 -0
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -0
- package/components/ScrollContainer/ScrollBar/package.json +6 -0
- package/components/ScrollContainer/ScrollBar.d.ts +37 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +121 -205
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js +31 -0
- package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js.map +1 -0
- package/components/ScrollContainer/ScrollContainer.constants/package.json +6 -0
- package/components/ScrollContainer/ScrollContainer.constants.d.ts +23 -0
- package/components/ScrollContainer/ScrollContainer.d.ts +38 -23
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +55 -0
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -0
- package/components/ScrollContainer/ScrollContainer.helpers/package.json +6 -0
- package/components/ScrollContainer/ScrollContainer.helpers.d.ts +10 -0
- package/components/ScrollContainer/ScrollContainer.md +62 -13
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +23 -9
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.styles.d.ts +12 -3
- package/components/SidePage/SidePage/SidePage.js +2 -4
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +1 -2
- package/components/SidePage/SidePage.styles/SidePage.styles.js +20 -16
- package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
- package/components/SidePage/SidePage.styles.d.ts +2 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js +40 -22
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +4 -1
- package/components/Switcher/Switcher/Switcher.js +1 -1
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js +2 -2
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Switcher/Switcher.styles.d.ts +1 -1
- package/components/Tabs/Tab/Tab.js +2 -16
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +0 -3
- package/components/Tabs/Tab.styles/Tab.styles.js +1 -1
- package/components/Tabs/Tab.styles/Tab.styles.js.map +1 -1
- package/components/Toggle/Toggle/Toggle.js +5 -5
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.styles/Toggle.styles.js +15 -12
- package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
- package/components/Toggle/Toggle.styles.d.ts +1 -0
- package/components/Token/Token.styles/Token.styles.js +2 -2
- package/components/Token/Token.styles/Token.styles.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +24 -2
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +8 -0
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +1 -1
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +3 -2
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +4 -4
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +2 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +2 -2
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +2 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/ThemePlayground/darkTheme/darkTheme.js +3 -3
- package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/icons/CrossIcon/CrossIcon.js +2 -1
- package/internal/icons/CrossIcon/CrossIcon.js.map +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +100 -19
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +23 -7
- package/internal/themes/FlatTheme/FlatTheme.js +18 -6
- package/internal/themes/FlatTheme/FlatTheme.js.map +1 -1
- package/internal/themes/FlatTheme.d.ts +4 -4
- package/internal/themes/Theme8px/Theme8px.js +1 -14
- package/internal/themes/Theme8px/Theme8px.js.map +1 -1
- package/internal/themes/Theme8px.d.ts +0 -5
- package/lib/Upgrades/Upgrades.js +13 -0
- package/lib/Upgrades/Upgrades.js.map +1 -1
- package/lib/Upgrades.d.ts +2 -0
- package/lib/events/keyListener/keyListener.js +22 -0
- package/lib/events/keyListener/keyListener.js.map +1 -0
- package/lib/events/keyListener/package.json +6 -0
- package/lib/events/keyListener.d.ts +7 -0
- package/lib/events/keyboard/identifiers/identifiers.js +10 -1
- package/lib/events/keyboard/identifiers/identifiers.js.map +1 -1
- package/lib/events/keyboard/identifiers.d.ts +1 -0
- package/lib/events/tabListener/tabListener.js +2 -19
- package/lib/events/tabListener/tabListener.js.map +1 -1
- package/lib/events/tabListener.d.ts +1 -6
- package/lib/locale/LOCALECONTEXT.md +1 -1
- package/lib/styles/ColorFunctions/ColorFunctions.js +1 -1
- package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
- package/lib/theming/Emotion/Emotion.js +1 -1
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/ThemeContext.md +1 -1
- package/lib/utils/utils.js +10 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +7 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Paging.tsx"],"names":["React","func","number","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","tabListener","emptyHandler","isIE11","ThemeContext","ArrowChevronRightIcon","CommonWrapper","cx","styles","NavigationHelper","getItems","PagingLocaleHelper","IGNORE_EVENT_TAGS","Paging","state","focusedByTab","focusedItem","keyboardControl","props","useGlobalListener","theme","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","activePage","renderPageLink","dots","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","UNSAFE_componentWillReceiveProps","nextProps","componentDidUpdate","prevProps","componentWillUnmount","render","renderMain","paging","undefined","map","__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 { tabListener } from '../../lib/events/tabListener';\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';\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@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.Component<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\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 UNSAFE_componentWillReceiveProps(nextProps: PagingProps) {\n if (this.props.useGlobalListener !== nextProps.useGlobalListener) {\n this.setState({\n keyboardControl: nextProps.useGlobalListener,\n });\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\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 {...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 (tabListener.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","styles","NavigationHelper","getItems","PagingLocaleHelper","IGNORE_EVENT_TAGS","Paging","state","focusedByTab","focusedItem","keyboardControl","props","useGlobalListener","theme","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","activePage","renderPageLink","dots","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","UNSAFE_componentWillReceiveProps","nextProps","componentDidUpdate","prevProps","componentWillUnmount","render","renderMain","paging","undefined","map","__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';\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@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.Component<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\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 UNSAFE_componentWillReceiveProps(nextProps: PagingProps) {\n if (this.props.useGlobalListener !== nextProps.useGlobalListener) {\n this.setState({\n keyboardControl: nextProps.useGlobalListener,\n });\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\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 {...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"]}
|
|
@@ -21,7 +21,7 @@ export var styles = memoizeStyle({
|
|
|
21
21
|
return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n vertical-align: -2px;\n position: absolute;\n margin-top: ", ";\n right: 0;\n "])), t.pagingForwardIconMarginTop);
|
|
22
22
|
},
|
|
23
23
|
disabled: function disabled(t) {
|
|
24
|
-
return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.pagingForwardLinkDisabledColor);
|
|
24
|
+
return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n color: ", ";\n cursor: default;\n "])), t.pagingForwardLinkDisabledColor);
|
|
25
25
|
},
|
|
26
26
|
pageLinkWrapper: function pageLinkWrapper() {
|
|
27
27
|
return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n flex-flow: column nowrap;\n text-align: center;\n user-select: none;\n vertical-align: top;\n "])));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Paging.styles.ts"],"names":["is8pxTheme","css","memoizeStyle","styles","paging","t","pagingFontSize","pagingLineHeight","dots","pagingDotsColor","pagingDotsPadding","forwardLink","pagingForwardLinkColor","pagingPageForwardLinkMarginTop","pagingPageForwardLinkMarginLeft","pagingPageForwardLinkPaddingRight","forwardLinkFocused","forwardIcon","pagingForwardIconMarginTop","disabled","pagingForwardLinkDisabledColor","pageLinkWrapper","pageLink","pagingPageLinkBorderRadius","pagingPageLinkMargin","pagingPageLinkMinWidth","pagingPageLinkPaddingY","pagingPageLinkPaddingX","pagingPageLinkLegacyPaddingY","pagingPageLinkHoverBg","active","pagingPageLinkActiveBg","pagingPageLinkActiveColor","pageLinkFocused","borderColorFocus","transparent","pageLinkHintPlaceHolder","pagingPageLinkHintLineHeight","pageLinkHint","pagingPageLinkHintFontSize","pagingPageLinkHintColor"],"mappings":"gVAAA,SAASA,UAAT,QAA2B,gCAA3B;AACA,SAASC,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,MADiC,kBAC1BC,CAD0B,EAChB;AACf,WAAOJ,GAAP;;;AAGeI,IAAAA,CAAC,CAACC,cAHjB;AAIiBD,IAAAA,CAAC,CAACE,gBAJnB;;AAMD,GARgC;;AAUjCC,EAAAA,IAViC,gBAU5BH,CAV4B,EAUlB;AACb,WAAOJ,GAAP;AACWI,IAAAA,CAAC,CAACI,eADb;;AAGaJ,IAAAA,CAAC,CAACK,iBAHf;;AAKD,GAhBgC;;AAkBjCC,EAAAA,WAlBiC,uBAkBrBN,CAlBqB,EAkBX;AACpB,WAAOJ,GAAP;AACWI,IAAAA,CAAC,CAACO,sBADb;;;AAIgBP,IAAAA,CAAC,CAACQ,8BAJlB;AAKiBR,IAAAA,CAAC,CAACS,+BALnB;;AAOmBT,IAAAA,CAAC,CAACU,iCAPrB;;;;;;AAaD,GAhCgC;;AAkCjCC,EAAAA,kBAlCiC,gCAkCZ;AACnB,WAAOf,GAAP;;;AAGD,GAtCgC;;AAwCjCgB,EAAAA,WAxCiC,uBAwCrBZ,CAxCqB,EAwCX;AACpB,WAAOJ,GAAP;;;AAGgBI,IAAAA,CAAC,CAACa,0BAHlB;;;AAMD,GA/CgC;;AAiDjCC,EAAAA,QAjDiC,oBAiDxBd,CAjDwB,EAiDd;AACjB,WAAOJ,GAAP;AACWI,IAAAA,CAAC,CAACe,8BADb
|
|
1
|
+
{"version":3,"sources":["Paging.styles.ts"],"names":["is8pxTheme","css","memoizeStyle","styles","paging","t","pagingFontSize","pagingLineHeight","dots","pagingDotsColor","pagingDotsPadding","forwardLink","pagingForwardLinkColor","pagingPageForwardLinkMarginTop","pagingPageForwardLinkMarginLeft","pagingPageForwardLinkPaddingRight","forwardLinkFocused","forwardIcon","pagingForwardIconMarginTop","disabled","pagingForwardLinkDisabledColor","pageLinkWrapper","pageLink","pagingPageLinkBorderRadius","pagingPageLinkMargin","pagingPageLinkMinWidth","pagingPageLinkPaddingY","pagingPageLinkPaddingX","pagingPageLinkLegacyPaddingY","pagingPageLinkHoverBg","active","pagingPageLinkActiveBg","pagingPageLinkActiveColor","pageLinkFocused","borderColorFocus","transparent","pageLinkHintPlaceHolder","pagingPageLinkHintLineHeight","pageLinkHint","pagingPageLinkHintFontSize","pagingPageLinkHintColor"],"mappings":"gVAAA,SAASA,UAAT,QAA2B,gCAA3B;AACA,SAASC,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,MADiC,kBAC1BC,CAD0B,EAChB;AACf,WAAOJ,GAAP;;;AAGeI,IAAAA,CAAC,CAACC,cAHjB;AAIiBD,IAAAA,CAAC,CAACE,gBAJnB;;AAMD,GARgC;;AAUjCC,EAAAA,IAViC,gBAU5BH,CAV4B,EAUlB;AACb,WAAOJ,GAAP;AACWI,IAAAA,CAAC,CAACI,eADb;;AAGaJ,IAAAA,CAAC,CAACK,iBAHf;;AAKD,GAhBgC;;AAkBjCC,EAAAA,WAlBiC,uBAkBrBN,CAlBqB,EAkBX;AACpB,WAAOJ,GAAP;AACWI,IAAAA,CAAC,CAACO,sBADb;;;AAIgBP,IAAAA,CAAC,CAACQ,8BAJlB;AAKiBR,IAAAA,CAAC,CAACS,+BALnB;;AAOmBT,IAAAA,CAAC,CAACU,iCAPrB;;;;;;AAaD,GAhCgC;;AAkCjCC,EAAAA,kBAlCiC,gCAkCZ;AACnB,WAAOf,GAAP;;;AAGD,GAtCgC;;AAwCjCgB,EAAAA,WAxCiC,uBAwCrBZ,CAxCqB,EAwCX;AACpB,WAAOJ,GAAP;;;AAGgBI,IAAAA,CAAC,CAACa,0BAHlB;;;AAMD,GA/CgC;;AAiDjCC,EAAAA,QAjDiC,oBAiDxBd,CAjDwB,EAiDd;AACjB,WAAOJ,GAAP;AACWI,IAAAA,CAAC,CAACe,8BADb;;;AAID,GAtDgC;;AAwDjCC,EAAAA,eAxDiC,6BAwDf;AAChB,WAAOpB,GAAP;;;;;;;AAOD,GAhEgC;;AAkEjCqB,EAAAA,QAlEiC,oBAkExBjB,CAlEwB,EAkEd;AACjB,WAAOJ,GAAP;AACmBI,IAAAA,CAAC,CAACkB,0BADrB;AAEWlB,IAAAA,CAAC,CAACO,sBAFb;;;AAKYP,IAAAA,CAAC,CAACmB,oBALd;;AAOenB,IAAAA,CAAC,CAACoB,sBAPjB;AAQapB,IAAAA,CAAC,CAACqB,sBARf,EAQyCrB,CAAC,CAACsB,sBAR3C;AASM3B,IAAAA,UAAU,CAACK,CAAD,CAAV,GAAgBA,CAAC,CAACqB,sBAAlB,GAA2CrB,CAAC,CAACuB,4BATnD;;;;AAakBvB,IAAAA,CAAC,CAACwB,qBAbpB;;;AAgBD,GAnFgC;;AAqFjCC,EAAAA,MArFiC,kBAqF1BzB,CArF0B,EAqFhB;AACf,WAAOJ,GAAP;;AAEgBI,IAAAA,CAAC,CAAC0B,sBAFlB;AAGW1B,IAAAA,CAAC,CAAC2B,yBAHb;;AAKD,GA3FgC;;AA6FjCC,EAAAA,eA7FiC,2BA6FjB5B,CA7FiB,EA6FP;AACxB,WAAOJ,GAAP;AACID,IAAAA,UAAU,CAACK,CAAD,CAAV;;AAE0BA,IAAAA,CAAC,CAAC6B,gBAF5B;;;;AAMsB7B,IAAAA,CAAC,CAAC6B,gBANxB,MADJ;;AASD,GAvGgC;;AAyGjCC,EAAAA,WAzGiC,yBAyGnB;AACZ,WAAOlC,GAAP;;;AAGD,GA7GgC;;AA+GjCmC,EAAAA,uBA/GiC,mCA+GT/B,CA/GS,EA+GC;AAChC,WAAOJ,GAAP;AACYI,IAAAA,CAAC,CAACgC,4BADd;AAEiBhC,IAAAA,CAAC,CAACgC,4BAFnB;;AAID,GApHgC;;AAsHjCC,EAAAA,YAtHiC,wBAsHpBjC,CAtHoB,EAsHV;AACrB,WAAOJ,GAAP;;;AAGeI,IAAAA,CAAC,CAACkC,0BAHjB;AAIiBlC,IAAAA,CAAC,CAACgC,4BAJnB;AAKWhC,IAAAA,CAAC,CAACmC,uBALb;;AAOD,GA9HgC,EAAD,CAA3B","sourcesContent":["import { is8pxTheme } from '../../lib/theming/ThemeHelpers';\nimport { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n paging(t: Theme) {\n return css`\n user-select: none;\n outline: 0;\n font-size: ${t.pagingFontSize};\n line-height: ${t.pagingLineHeight};\n `;\n },\n\n dots(t: Theme) {\n return css`\n color: ${t.pagingDotsColor};\n display: inline-block;\n padding: ${t.pagingDotsPadding};\n `;\n },\n\n forwardLink(t: Theme) {\n return css`\n color: ${t.pagingForwardLinkColor};\n cursor: pointer;\n display: inline-block;\n margin-top: ${t.pagingPageForwardLinkMarginTop};\n margin-left: ${t.pagingPageForwardLinkMarginLeft};\n outline: none;\n padding-right: ${t.pagingPageForwardLinkPaddingRight};\n position: relative;\n text-decoration: none;\n user-select: none;\n vertical-align: top;\n `;\n },\n\n forwardLinkFocused() {\n return css`\n text-decoration: underline;\n `;\n },\n\n forwardIcon(t: Theme) {\n return css`\n vertical-align: -2px;\n position: absolute;\n margin-top: ${t.pagingForwardIconMarginTop};\n right: 0;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.pagingForwardLinkDisabledColor};\n cursor: default;\n `;\n },\n\n pageLinkWrapper() {\n return css`\n display: inline-flex;\n flex-flow: column nowrap;\n text-align: center;\n user-select: none;\n vertical-align: top;\n `;\n },\n\n pageLink(t: Theme) {\n return css`\n border-radius: ${t.pagingPageLinkBorderRadius};\n color: ${t.pagingForwardLinkColor};\n cursor: pointer;\n display: block;\n margin: ${t.pagingPageLinkMargin};\n outline: none;\n min-width: ${t.pagingPageLinkMinWidth};\n padding: ${t.pagingPageLinkPaddingY} ${t.pagingPageLinkPaddingX}\n ${is8pxTheme(t) ? t.pagingPageLinkPaddingY : t.pagingPageLinkLegacyPaddingY};\n text-decoration: none;\n\n &:hover {\n background: ${t.pagingPageLinkHoverBg};\n }\n `;\n },\n\n active(t: Theme) {\n return css`\n cursor: default;\n background: ${t.pagingPageLinkActiveBg} !important; // override hover styles\n color: ${t.pagingPageLinkActiveColor};\n `;\n },\n\n pageLinkFocused(t: Theme) {\n return css`\n ${is8pxTheme(t)\n ? `\n box-shadow: 0 0 0 2px ${t.borderColorFocus};\n `\n : `\n margin: 0 -1px;\n border: solid 2px ${t.borderColorFocus};`}\n `;\n },\n\n transparent() {\n return css`\n color: transparent;\n `;\n },\n\n pageLinkHintPlaceHolder(t: Theme) {\n return css`\n height: ${t.pagingPageLinkHintLineHeight};\n line-height: ${t.pagingPageLinkHintLineHeight};\n `;\n },\n\n pageLinkHint(t: Theme) {\n return css`\n display: inline-block;\n margin: 0 -20px;\n font-size: ${t.pagingPageLinkHintFontSize};\n line-height: ${t.pagingPageLinkHintLineHeight};\n color: ${t.pagingPageLinkHintColor};\n `;\n },\n});\n"]}
|
|
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
7
7
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
8
8
|
import { cx } from "../../../lib/theming/Emotion";
|
|
9
|
+
import { keyListener } from "../../../lib/events/keyListener";
|
|
9
10
|
import { styles, globalClasses } from "../Radio.styles";
|
|
10
11
|
export var Radio = /*#__PURE__*/function (_React$Component) {
|
|
11
12
|
_inheritsLoose(Radio, _React$Component);
|
|
@@ -18,6 +19,9 @@ export var Radio = /*#__PURE__*/function (_React$Component) {
|
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
22
|
+
_this.state = {
|
|
23
|
+
focusedByKeyboard: false
|
|
24
|
+
};
|
|
21
25
|
_this.theme = void 0;
|
|
22
26
|
_this.inputEl = /*#__PURE__*/React.createRef();
|
|
23
27
|
|
|
@@ -41,7 +45,7 @@ export var Radio = /*#__PURE__*/function (_React$Component) {
|
|
|
41
45
|
rest = _objectWithoutPropertiesLoose(props, ["active", "disabled", "warning", "error", "focused", "pressed", "hovered", "onMouseOver", "onMouseEnter", "onMouseLeave", "onValueChange"]);
|
|
42
46
|
|
|
43
47
|
var radioProps = {
|
|
44
|
-
className: cx((_cx = {}, _cx[styles.radio(_this.theme)] = true, _cx[styles.checked(_this.theme)] = _this.props.checked, _cx[styles.focus(_this.theme)] = _this.props.focused, _cx[styles.error(_this.theme)] = error, _cx[styles.warning(_this.theme)] = warning, _cx[styles.disabled(_this.theme)] = disabled, _cx[styles.checkedDisabled(_this.theme)] = _this.props.checked && disabled, _cx[globalClasses.radio] = true, _cx))
|
|
48
|
+
className: cx((_cx = {}, _cx[styles.radio(_this.theme)] = true, _cx[styles.checked(_this.theme)] = _this.props.checked, _cx[styles.focus(_this.theme)] = _this.props.focused || _this.state.focusedByKeyboard, _cx[styles.error(_this.theme)] = error, _cx[styles.warning(_this.theme)] = warning, _cx[styles.disabled(_this.theme)] = disabled, _cx[styles.checkedDisabled(_this.theme)] = _this.props.checked && disabled, _cx[globalClasses.radio] = true, _cx))
|
|
45
49
|
};
|
|
46
50
|
var value;
|
|
47
51
|
|
|
@@ -51,12 +55,14 @@ export var Radio = /*#__PURE__*/function (_React$Component) {
|
|
|
51
55
|
|
|
52
56
|
var inputProps = _extends({}, rest, {
|
|
53
57
|
type: 'radio',
|
|
54
|
-
className: styles.input(
|
|
58
|
+
className: styles.input(),
|
|
55
59
|
disabled: disabled,
|
|
56
60
|
tabIndex: _this.props.tabIndex,
|
|
57
61
|
value: value,
|
|
58
62
|
ref: _this.inputEl,
|
|
59
|
-
onChange: _this.handleChange
|
|
63
|
+
onChange: _this.handleChange,
|
|
64
|
+
onFocus: _this.handleFocus,
|
|
65
|
+
onBlur: _this.handleBlur
|
|
60
66
|
});
|
|
61
67
|
|
|
62
68
|
var labelProps = {
|
|
@@ -107,6 +113,32 @@ export var Radio = /*#__PURE__*/function (_React$Component) {
|
|
|
107
113
|
_this.props.onMouseLeave == null ? void 0 : _this.props.onMouseLeave(e);
|
|
108
114
|
};
|
|
109
115
|
|
|
116
|
+
_this.handleFocus = function (e) {
|
|
117
|
+
if (!_this.context.disabled) {
|
|
118
|
+
// focus event fires before keyDown eventlistener
|
|
119
|
+
// so we should check tabPressed in async way
|
|
120
|
+
requestAnimationFrame(function () {
|
|
121
|
+
if (keyListener.isArrowPressed || keyListener.isTabPressed) {
|
|
122
|
+
_this.setState({
|
|
123
|
+
focusedByKeyboard: true
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
if (_this.props.onFocus) {
|
|
129
|
+
_this.props.onFocus(e);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
_this.handleBlur = function (e) {
|
|
135
|
+
_this.props.onBlur == null ? void 0 : _this.props.onBlur(e);
|
|
136
|
+
|
|
137
|
+
_this.setState({
|
|
138
|
+
focusedByKeyboard: false
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
|
|
110
142
|
return _this;
|
|
111
143
|
}
|
|
112
144
|
|
|
@@ -128,6 +160,7 @@ export var Radio = /*#__PURE__*/function (_React$Component) {
|
|
|
128
160
|
_proto.focus = function focus() {
|
|
129
161
|
var _this$inputEl$current;
|
|
130
162
|
|
|
163
|
+
keyListener.isTabPressed = true;
|
|
131
164
|
(_this$inputEl$current = this.inputEl.current) == null ? void 0 : _this$inputEl$current.focus();
|
|
132
165
|
}
|
|
133
166
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Radio.tsx"],"names":["React","PropTypes","ThemeContext","CommonWrapper","cx","styles","globalClasses","Radio","theme","inputEl","createRef","renderMain","props","active","disabled","context","warning","error","focused","pressed","hovered","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","radioProps","className","radio","checked","focus","checkedDisabled","value","inputProps","type","input","tabIndex","ref","onChange","handleChange","labelProps","root","rootChecked","handleMouseOver","handleMouseEnter","handleMouseLeave","_isInRadioGroup","activeItem","name","suppressHydrationWarning","placeholder","children","renderLabel","Boolean","e","onSelect","render","current","blur","labelClassNames","label","labelDisabled","Component","__KONTUR_REACT_UI__","contextTypes","any","func","string","bool","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles, globalClasses } from './Radio.styles';\n\nexport interface RadioProps<T>\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Состояние ошибки */\n error?: boolean;\n /** Состояние Предупреждения */\n warning?: boolean;\n /** Состояние фокуса */\n focused?: boolean;\n /** Состояние нажатия */\n pressed?: boolean;\n /** Состояние hover */\n hovered?: boolean;\n /** Состояние active */\n active?: boolean;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /** Значение */\n value: T;\n }\n > {}\n\nexport class Radio<T> extends React.Component<RadioProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Radio';\n\n public static contextTypes = {\n activeItem: PropTypes.any,\n onSelect: PropTypes.func,\n name: PropTypes.string,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n };\n\n public static defaultProps = {\n focused: false,\n };\n\n private theme!: Theme;\n private inputEl = React.createRef<HTMLInputElement>();\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n this.inputEl.current?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.inputEl.current?.blur();\n }\n\n public renderMain = (props: CommonWrapperRestProps<RadioProps<T>>) => {\n const {\n active,\n disabled = this.context.disabled,\n warning = this.context.warning,\n error = this.context.error,\n focused,\n pressed,\n hovered,\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n onValueChange,\n ...rest\n } = props;\n\n const radioProps = {\n className: cx({\n [styles.radio(this.theme)]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [styles.focus(this.theme)]: this.props.focused,\n [styles.error(this.theme)]: error,\n [styles.warning(this.theme)]: warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.checkedDisabled(this.theme)]: this.props.checked && disabled,\n [globalClasses.radio]: true,\n }),\n };\n\n let value: string | number | undefined;\n if (typeof this.props.value === 'string' || typeof this.props.value === 'number') {\n value = this.props.value;\n }\n\n const inputProps = {\n ...rest,\n type: 'radio',\n className: styles.input(this.theme),\n disabled,\n tabIndex: this.props.tabIndex,\n value,\n ref: this.inputEl,\n onChange: this.handleChange,\n };\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.props.checked && styles.rootChecked(this.theme)),\n onMouseOver: this.handleMouseOver,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n };\n\n if (this._isInRadioGroup()) {\n const checked = this.props.value === this.context.activeItem;\n inputProps.checked = checked;\n inputProps.name = this.context.name;\n inputProps.suppressHydrationWarning = true;\n radioProps.className = cx(radioProps.className, {\n [styles.checked(this.theme)]: checked,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n });\n }\n\n return (\n <label {...labelProps}>\n <input {...inputProps} />\n <span {...radioProps}>\n <span className={styles.placeholder()} />\n </span>\n {this.props.children && this.renderLabel()}\n </label>\n );\n };\n\n private _isInRadioGroup = () => Boolean(this.context.name);\n\n private renderLabel() {\n const labelClassNames = cx({\n [styles.label(this.theme)]: true,\n [styles.labelDisabled()]: !!(this.props.disabled || this.context.disabled),\n });\n\n return <div className={labelClassNames}>{this.props.children}</div>;\n }\n\n private handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n this.props.onValueChange?.(this.props.value);\n\n if (this._isInRadioGroup()) {\n this.context.onSelect(this.props.value);\n }\n\n this.props.onChange?.(e);\n };\n\n private handleMouseOver: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseOver?.(e);\n };\n\n private handleMouseEnter: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseEnter?.(e);\n };\n\n private handleMouseLeave: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseLeave?.(e);\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Radio.tsx"],"names":["React","PropTypes","ThemeContext","CommonWrapper","cx","keyListener","styles","globalClasses","Radio","state","focusedByKeyboard","theme","inputEl","createRef","renderMain","props","active","disabled","context","warning","error","focused","pressed","hovered","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","radioProps","className","radio","checked","focus","checkedDisabled","value","inputProps","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","root","rootChecked","handleMouseOver","handleMouseEnter","handleMouseLeave","_isInRadioGroup","activeItem","name","suppressHydrationWarning","placeholder","children","renderLabel","Boolean","e","onSelect","requestAnimationFrame","isArrowPressed","isTabPressed","setState","render","current","blur","labelClassNames","label","labelDisabled","Component","__KONTUR_REACT_UI__","contextTypes","any","func","string","bool","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\n\nimport { styles, globalClasses } from './Radio.styles';\n\nexport interface RadioProps<T>\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Состояние ошибки */\n error?: boolean;\n /** Состояние Предупреждения */\n warning?: boolean;\n /** Состояние фокуса */\n focused?: boolean;\n /** Состояние нажатия */\n pressed?: boolean;\n /** Состояние hover */\n hovered?: boolean;\n /** Состояние active */\n active?: boolean;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /** Значение */\n value: T;\n }\n > {}\n\nexport interface RadioState {\n focusedByKeyboard: boolean;\n}\n\nexport class Radio<T> extends React.Component<RadioProps<T>, RadioState> {\n public static __KONTUR_REACT_UI__ = 'Radio';\n\n public state = {\n focusedByKeyboard: false,\n };\n\n public static contextTypes = {\n activeItem: PropTypes.any,\n onSelect: PropTypes.func,\n name: PropTypes.string,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n };\n\n public static defaultProps = {\n focused: false,\n };\n\n private theme!: Theme;\n private inputEl = React.createRef<HTMLInputElement>();\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.inputEl.current?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.inputEl.current?.blur();\n }\n\n public renderMain = (props: CommonWrapperRestProps<RadioProps<T>>) => {\n const {\n active,\n disabled = this.context.disabled,\n warning = this.context.warning,\n error = this.context.error,\n focused,\n pressed,\n hovered,\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n onValueChange,\n ...rest\n } = props;\n\n const radioProps = {\n className: cx({\n [styles.radio(this.theme)]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [styles.focus(this.theme)]: this.props.focused || this.state.focusedByKeyboard,\n [styles.error(this.theme)]: error,\n [styles.warning(this.theme)]: warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.checkedDisabled(this.theme)]: this.props.checked && disabled,\n [globalClasses.radio]: true,\n }),\n };\n\n let value: string | number | undefined;\n if (typeof this.props.value === 'string' || typeof this.props.value === 'number') {\n value = this.props.value;\n }\n\n const inputProps = {\n ...rest,\n type: 'radio',\n className: styles.input(),\n disabled,\n tabIndex: this.props.tabIndex,\n value,\n ref: this.inputEl,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n };\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.props.checked && styles.rootChecked(this.theme)),\n onMouseOver: this.handleMouseOver,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n };\n\n if (this._isInRadioGroup()) {\n const checked = this.props.value === this.context.activeItem;\n inputProps.checked = checked;\n inputProps.name = this.context.name;\n inputProps.suppressHydrationWarning = true;\n radioProps.className = cx(radioProps.className, {\n [styles.checked(this.theme)]: checked,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n });\n }\n\n return (\n <label {...labelProps}>\n <input {...inputProps} />\n <span {...radioProps}>\n <span className={styles.placeholder()} />\n </span>\n {this.props.children && this.renderLabel()}\n </label>\n );\n };\n\n private _isInRadioGroup = () => Boolean(this.context.name);\n\n private renderLabel() {\n const labelClassNames = cx({\n [styles.label(this.theme)]: true,\n [styles.labelDisabled()]: !!(this.props.disabled || this.context.disabled),\n });\n\n return <div className={labelClassNames}>{this.props.children}</div>;\n }\n\n private handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n this.props.onValueChange?.(this.props.value);\n\n if (this._isInRadioGroup()) {\n this.context.onSelect(this.props.value);\n }\n\n this.props.onChange?.(e);\n };\n\n private handleMouseOver: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseOver?.(e);\n };\n\n private handleMouseEnter: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseEnter?.(e);\n };\n\n private handleMouseLeave: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseLeave?.(e);\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.context.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isArrowPressed || keyListener.isTabPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByKeyboard: false });\n };\n}\n"]}
|
|
@@ -24,8 +24,14 @@ export interface RadioProps<T> extends CommonProps, Override<React.InputHTMLAttr
|
|
|
24
24
|
value: T;
|
|
25
25
|
}> {
|
|
26
26
|
}
|
|
27
|
-
export
|
|
27
|
+
export interface RadioState {
|
|
28
|
+
focusedByKeyboard: boolean;
|
|
29
|
+
}
|
|
30
|
+
export declare class Radio<T> extends React.Component<RadioProps<T>, RadioState> {
|
|
28
31
|
static __KONTUR_REACT_UI__: string;
|
|
32
|
+
state: {
|
|
33
|
+
focusedByKeyboard: boolean;
|
|
34
|
+
};
|
|
29
35
|
static contextTypes: {
|
|
30
36
|
activeItem: PropTypes.Requireable<any>;
|
|
31
37
|
onSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -55,4 +61,6 @@ export declare class Radio<T> extends React.Component<RadioProps<T>> {
|
|
|
55
61
|
private handleMouseOver;
|
|
56
62
|
private handleMouseEnter;
|
|
57
63
|
private handleMouseLeave;
|
|
64
|
+
private handleFocus;
|
|
65
|
+
private handleBlur;
|
|
58
66
|
}
|
|
@@ -39,14 +39,14 @@ export var styles = memoizeStyle({
|
|
|
39
39
|
checkedDisabled: function checkedDisabled(t) {
|
|
40
40
|
return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n &::before {\n background: ", ";\n }\n "])), t.gray);
|
|
41
41
|
},
|
|
42
|
-
input: function input(
|
|
43
|
-
return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n
|
|
42
|
+
input: function input() {
|
|
43
|
+
return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n "])));
|
|
44
44
|
},
|
|
45
45
|
disabled: function disabled(t) {
|
|
46
46
|
return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n background: ", " !important; // override root hover/active styles\n border-color: transparent !important; // override root hover/active styles\n box-shadow: ", " !important; // override root hover/active styles\n "])), t.radioDisabledBg, t.radioDisabledShadow);
|
|
47
47
|
},
|
|
48
48
|
label: function label(t) {
|
|
49
|
-
return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n display: ", ";\n line-height: ", ";\n margin-left: ", ";\n white-space: normal;\n font-size: ", ";\n "])), t.radioLabelDisplay, t.radioLineHeight, t.radioLabelGap, t.radioFontSize);
|
|
49
|
+
return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n display: ", ";\n line-height: ", ";\n margin-left: ", ";\n white-space: normal;\n font-size: ", ";\n color: ", ";\n "])), t.radioLabelDisplay, t.radioLineHeight, t.radioLabelGap, t.radioFontSize, t.radioTextColor);
|
|
50
50
|
},
|
|
51
51
|
labelDisabled: function labelDisabled() {
|
|
52
52
|
return css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n color: #a0a0a0;\n "])));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Radio.styles.ts"],"names":["css","memoizeStyle","prefix","globalClasses","radio","mixins","afterOutline","t","radioOutlineWidth","radioSizeAfter","styles","root","radioPaddingY","radioHoverBg","radioHoverShadow","radioActiveBg","radioActiveShadow","rootChecked","radioCheckedHoverBgColor","radioSize","radioBorderWidthCompensation","radioMarginY","radioMarginX","radioBgImage","radioBorder","radioBoxShadow","radioVerticalAlign","radioBgColor","focus","radioFocusShadow","radioBorderColorFocus","warning","radioBorderColorWarning","error","radioBorderColorError","checked","radioCheckedBgColor","radioCheckedBorderColor","radioBulletSize","radioCheckedBulletColor","checkedDisabled","gray","input","disabled","radioDisabledBg","radioDisabledShadow","label","radioLabelDisplay","radioLineHeight","radioLabelGap","radioFontSize","labelDisabled","placeholder"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["Radio.styles.ts"],"names":["css","memoizeStyle","prefix","globalClasses","radio","mixins","afterOutline","t","radioOutlineWidth","radioSizeAfter","styles","root","radioPaddingY","radioHoverBg","radioHoverShadow","radioActiveBg","radioActiveShadow","rootChecked","radioCheckedHoverBgColor","radioSize","radioBorderWidthCompensation","radioMarginY","radioMarginX","radioBgImage","radioBorder","radioBoxShadow","radioVerticalAlign","radioBgColor","focus","radioFocusShadow","radioBorderColorFocus","warning","radioBorderColorWarning","error","radioBorderColorError","checked","radioCheckedBgColor","radioCheckedBorderColor","radioBulletSize","radioCheckedBulletColor","checkedDisabled","gray","input","disabled","radioDisabledBg","radioDisabledShadow","label","radioLabelDisplay","radioLineHeight","radioLabelGap","radioFontSize","radioTextColor","labelDisabled","placeholder"],"mappings":"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","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const globalClasses = prefix('radio')({\n radio: 'radio',\n});\n\nconst mixins = {\n afterOutline(t: Theme) {\n return css`\n content: ' ';\n position: absolute;\n left: -${t.radioOutlineWidth};\n top: -${t.radioOutlineWidth};\n width: ${t.radioSizeAfter};\n height: ${t.radioSizeAfter};\n border-width: ${t.radioOutlineWidth};\n border-style: solid;\n border-radius: 50%;\n box-sizing: border-box;\n `;\n },\n};\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n padding-top: ${t.radioPaddingY};\n padding-bottom: ${t.radioPaddingY};\n display: inline-block;\n\n &:hover .${globalClasses.radio} {\n background: ${t.radioHoverBg};\n box-shadow: ${t.radioHoverShadow};\n }\n &:active .${globalClasses.radio} {\n background: ${t.radioActiveBg};\n box-shadow: ${t.radioActiveShadow};\n }\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.radio} {\n background: ${t.radioCheckedHoverBgColor};\n }\n `;\n },\n\n radio(t: Theme) {\n const radioSize = `calc(${t.radioSize} - 2 * ${t.radioBorderWidthCompensation})`;\n const radioMarginY = `calc(${t.radioMarginY} + ${t.radioBorderWidthCompensation})`;\n const radioMarginX = t.radioBorderWidthCompensation;\n return css`\n background-image: ${t.radioBgImage};\n border-radius: 50%;\n border: ${t.radioBorder};\n box-shadow: ${t.radioBoxShadow};\n box-sizing: border-box;\n display: inline-block;\n height: ${radioSize};\n width: ${radioSize};\n position: relative;\n vertical-align: ${t.radioVerticalAlign};\n margin: ${radioMarginY} ${radioMarginX};\n background-color: ${t.radioBgColor};\n\n &::after {\n content: ' ';\n display: inline-block;\n }\n `;\n },\n\n focus(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorFocus};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorWarning};\n }\n `;\n },\n\n error(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorError};\n }\n `;\n },\n\n checked(t: Theme) {\n return css`\n position: relative;\n background-color: ${t.radioCheckedBgColor};\n border-color: ${t.radioCheckedBorderColor};\n\n &::before {\n content: ' ';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n height: ${t.radioBulletSize};\n width: ${t.radioBulletSize};\n border-radius: 50%;\n background: ${t.radioCheckedBulletColor};\n }\n `;\n },\n\n checkedDisabled(t: Theme) {\n return css`\n &::before {\n background: ${t.gray};\n }\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background: ${t.radioDisabledBg} !important; // override root hover/active styles\n border-color: transparent !important; // override root hover/active styles\n box-shadow: ${t.radioDisabledShadow} !important; // override root hover/active styles\n `;\n },\n\n label(t: Theme) {\n return css`\n display: ${t.radioLabelDisplay};\n line-height: ${t.radioLineHeight};\n margin-left: ${t.radioLabelGap};\n white-space: normal;\n font-size: ${t.radioFontSize};\n color: ${t.radioTextColor};\n `;\n },\n\n labelDisabled() {\n return css`\n color: #a0a0a0;\n `;\n },\n\n placeholder() {\n return css`\n display: inline-block;\n `;\n },\n});\n"]}
|
|
@@ -11,7 +11,7 @@ export declare const styles: {
|
|
|
11
11
|
error(t: Theme): string;
|
|
12
12
|
checked(t: Theme): string;
|
|
13
13
|
checkedDisabled(t: Theme): string;
|
|
14
|
-
input(
|
|
14
|
+
input(): string;
|
|
15
15
|
disabled(t: Theme): string;
|
|
16
16
|
label(t: Theme): string;
|
|
17
17
|
labelDisabled(): string;
|