@skbkontur/react-ui 0.0.0-95a1dbe516 → 0.0.0-9ab4f802f3
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 +120 -0
- package/README.md +41 -13
- package/cjs/components/Autocomplete/Autocomplete.js +12 -6
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Autocomplete/Autocomplete.md +76 -3
- package/cjs/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
- package/cjs/components/Autocomplete/Autocomplete.styles.js +7 -1
- package/cjs/components/Autocomplete/Autocomplete.styles.js.map +1 -1
- package/cjs/components/Button/Button.js +2 -2
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.md +38 -11
- package/cjs/components/Calendar/Calendar.d.ts +28 -5
- package/cjs/components/Calendar/Calendar.js +80 -36
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Calendar/Calendar.md +82 -1
- package/cjs/components/Calendar/Calendar.styles.js +1 -1
- package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
- package/cjs/components/Calendar/CalendarContext.d.ts +12 -0
- package/cjs/components/Calendar/CalendarContext.js +16 -0
- package/cjs/components/Calendar/CalendarContext.js.map +1 -0
- package/cjs/components/Calendar/CalendarDateShape.d.ts +4 -2
- package/cjs/components/Calendar/CalendarDateShape.js +13 -3
- package/cjs/components/Calendar/CalendarDateShape.js.map +1 -1
- package/cjs/components/Calendar/CalendarDay.d.ts +12 -0
- package/cjs/components/Calendar/CalendarDay.js +79 -0
- package/cjs/components/Calendar/CalendarDay.js.map +1 -0
- package/cjs/components/Calendar/CalendarDay.md +70 -0
- package/cjs/components/Calendar/CalendarUtils.d.ts +2 -1
- package/cjs/components/Calendar/CalendarUtils.js +4 -6
- package/cjs/components/Calendar/CalendarUtils.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.d.ts +4 -12
- package/cjs/components/Calendar/DayCellView.js +20 -42
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.styles.d.ts +2 -5
- package/cjs/components/Calendar/DayCellView.styles.js +37 -43
- package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
- package/cjs/components/Calendar/Month.d.ts +0 -10
- package/cjs/components/Calendar/Month.js +36 -88
- package/cjs/components/Calendar/Month.js.map +1 -1
- package/cjs/components/Calendar/MonthView.d.ts +3 -2
- package/cjs/components/Calendar/MonthView.js +47 -37
- package/cjs/components/Calendar/MonthView.js.map +1 -1
- package/cjs/components/Calendar/MonthView.styles.d.ts +3 -0
- package/cjs/components/Calendar/MonthView.styles.js +45 -7
- package/cjs/components/Calendar/MonthView.styles.js.map +1 -1
- package/cjs/components/Calendar/MonthViewModel.js +24 -6
- package/cjs/components/Calendar/MonthViewModel.js.map +1 -1
- package/cjs/components/Calendar/config.js +12 -6
- package/cjs/components/Calendar/config.js.map +1 -1
- package/cjs/components/Calendar/index.d.ts +1 -0
- package/cjs/components/Calendar/index.js +2 -1
- package/cjs/components/Calendar/index.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +1 -1
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateInput/DateInput.js +1 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +4 -1
- package/cjs/components/DatePicker/DatePicker.js +72 -45
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.md +29 -1
- package/cjs/components/DatePicker/DatePickerHelpers.js +2 -1
- package/cjs/components/DatePicker/DatePickerHelpers.js.map +1 -1
- package/cjs/components/DatePicker/MobilePicker.d.ts +10 -0
- package/cjs/components/DatePicker/MobilePicker.js +118 -0
- package/cjs/components/DatePicker/MobilePicker.js.map +1 -0
- package/cjs/components/DatePicker/MobilePicker.styles.d.ts +3 -0
- package/cjs/components/DatePicker/MobilePicker.styles.js +8 -0
- package/cjs/components/DatePicker/MobilePicker.styles.js.map +1 -0
- package/cjs/components/DatePicker/Picker.js +1 -1
- package/cjs/components/DatePicker/Picker.js.map +1 -1
- package/cjs/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
- package/cjs/components/DatePicker/getMobilePickerTheme.js +19 -0
- package/cjs/components/DatePicker/getMobilePickerTheme.js.map +1 -0
- package/cjs/components/Dropdown/Dropdown.js +1 -1
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.md +39 -0
- package/cjs/components/FileUploader/FileUploader.d.ts +2 -0
- package/cjs/components/FileUploader/FileUploader.js +32 -9
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.md +29 -0
- package/cjs/components/FxInput/FxInput.js +1 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Group/Group.js +1 -1
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +4 -3
- package/cjs/components/Hint/Hint.js +9 -8
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.js +1 -1
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.d.ts +1 -1
- package/cjs/components/Input/Input.styles.js +3 -2
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.styles.js +3 -2
- package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/cjs/components/Kebab/Kebab.js +6 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.js +3 -2
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.js +1 -1
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.js +2 -2
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MiniModal/MiniModal.js +1 -1
- package/cjs/components/MiniModal/MiniModal.js.map +1 -1
- package/cjs/components/Modal/Modal.js +1 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.js +1 -1
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.js +8 -3
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.js +1 -1
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.js +10 -1
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.js +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +6 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.js +6 -3
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.js +1 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.js +1 -1
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.js +1 -1
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.js +1 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.js +1 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.js +1 -1
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Switcher/Switcher.js +1 -1
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Indicator.js +1 -1
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.js +2 -2
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.js +1 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.js +1 -1
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toast/Toast.js +1 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.js +1 -1
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toggle/Toggle.js +1 -1
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.js +2 -1
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.js +1 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js +2 -2
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +10 -5
- package/cjs/components/Tooltip/Tooltip.js +59 -20
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js +4 -4
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/hooks/useDrop.d.ts +1 -1
- package/cjs/hooks/useDrop.js.map +1 -1
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +2 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +2 -2
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
- package/cjs/internal/CommonWrapper/utils/extractCommonProps.js.map +1 -0
- package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.js → utils/getCommonVisualStateDataAttributes.js} +3 -4
- package/cjs/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
- package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.js → utils/getVisualStateDataAttributes.js} +3 -3
- package/cjs/internal/CommonWrapper/utils/getVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js.map +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -3
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js +3 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +2 -0
- package/cjs/internal/DateSelect/DateSelect.js +51 -4
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.styles.d.ts +1 -0
- package/cjs/internal/DateSelect/DateSelect.styles.js +15 -1
- package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
- package/cjs/internal/DateSelect/locale/locales/en.js +2 -1
- package/cjs/internal/DateSelect/locale/locales/en.js.map +1 -1
- package/cjs/internal/DateSelect/locale/locales/ru.js +2 -1
- package/cjs/internal/DateSelect/locale/locales/ru.js.map +1 -1
- package/cjs/internal/DateSelect/locale/types.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +16 -3
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +4 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +3 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +2 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.js +2 -2
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/Menu/Menu.js +2 -2
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +7 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +32 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +15 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.js +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/cjs/internal/NativeDateInput/utils.js +3 -2
- package/cjs/internal/NativeDateInput/utils.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +15 -4
- package/cjs/internal/Popup/Popup.js +67 -4
- package/cjs/internal/Popup/Popup.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.d.ts +3 -0
- package/cjs/internal/RenderContainer/RenderContainer.js +34 -24
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +8 -4
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.js +5 -1
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +1 -1
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +9 -6
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/constants.js +2 -1
- package/cjs/internal/ThemePlayground/constants.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +7 -3
- package/cjs/internal/ZIndex/ZIndex.js +41 -3
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/themes/DarkTheme.d.ts +2 -0
- package/cjs/internal/themes/DarkTheme.js +6 -1
- package/cjs/internal/themes/DarkTheme.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +18 -0
- package/cjs/internal/themes/DefaultTheme.js +32 -4
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/date/InternalDate.d.ts +2 -0
- package/cjs/lib/date/InternalDate.js +8 -1
- package/cjs/lib/date/InternalDate.js.map +1 -1
- package/cjs/lib/date/InternalDateTransformer.d.ts +3 -0
- package/cjs/lib/date/InternalDateTransformer.js +23 -0
- package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
- package/cjs/lib/date/InternalDateValidator.js +2 -1
- package/cjs/lib/date/InternalDateValidator.js.map +1 -1
- package/cjs/lib/date/comparison.d.ts +6 -0
- package/cjs/lib/date/comparison.js +44 -0
- package/cjs/lib/date/comparison.js.map +1 -0
- package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/listenFocusOutside.js +4 -2
- package/cjs/lib/listenFocusOutside.js.map +1 -1
- package/cjs/lib/locale/constants.d.ts +3 -0
- package/cjs/lib/locale/constants.js +6 -2
- package/cjs/lib/locale/constants.js.map +1 -1
- package/cjs/lib/taskWithDelayAndMinimalDuration.js +1 -0
- package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/cjs/lib/theming/Emotion.d.ts +7 -1
- package/cjs/lib/theming/Emotion.js +6 -3
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.d.ts +0 -2
- package/cjs/lib/theming/ThemeContext.js +1 -3
- package/cjs/lib/theming/ThemeContext.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.md +3 -1
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js +50 -0
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js.map +1 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.js +75 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.js.map +1 -0
- package/cjs/lib/widgets/StylesContainer.d.ts +13 -0
- package/cjs/lib/widgets/StylesContainer.js +70 -0
- package/cjs/lib/widgets/StylesContainer.js.map +1 -0
- package/cjs/lib/widgets/index.d.ts +1 -0
- package/cjs/lib/widgets/index.js +1 -0
- package/cjs/lib/widgets/index.js.map +1 -0
- package/components/Autocomplete/Autocomplete/Autocomplete.js +11 -5
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.md +76 -3
- package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js +4 -1
- package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js.map +1 -1
- package/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
- package/components/Button/Button/Button.js +3 -3
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.md +38 -11
- package/components/Calendar/Calendar/Calendar.js +83 -66
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +28 -5
- package/components/Calendar/Calendar.md +82 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
- package/components/Calendar/CalendarContext/CalendarContext.js +2 -0
- package/components/Calendar/CalendarContext/CalendarContext.js.map +1 -0
- package/components/Calendar/CalendarContext/package.json +6 -0
- package/components/Calendar/CalendarContext.d.ts +12 -0
- package/components/Calendar/CalendarDateShape/CalendarDateShape.js +23 -1
- package/components/Calendar/CalendarDateShape/CalendarDateShape.js.map +1 -1
- package/components/Calendar/CalendarDateShape.d.ts +4 -2
- package/components/Calendar/CalendarDay/CalendarDay.js +64 -0
- package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -0
- package/components/Calendar/CalendarDay/package.json +6 -0
- package/components/Calendar/CalendarDay.d.ts +12 -0
- package/components/Calendar/CalendarDay.md +70 -0
- package/components/Calendar/CalendarUtils/CalendarUtils.js +5 -4
- package/components/Calendar/CalendarUtils/CalendarUtils.js.map +1 -1
- package/components/Calendar/CalendarUtils.d.ts +2 -1
- package/components/Calendar/DayCellView/DayCellView.js +33 -46
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Calendar/DayCellView.d.ts +4 -12
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js +10 -14
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
- package/components/Calendar/DayCellView.styles.d.ts +2 -5
- package/components/Calendar/Month/Month.js +50 -84
- package/components/Calendar/Month/Month.js.map +1 -1
- package/components/Calendar/Month.d.ts +0 -10
- package/components/Calendar/MonthView/MonthView.js +50 -45
- package/components/Calendar/MonthView/MonthView.js.map +1 -1
- package/components/Calendar/MonthView.d.ts +3 -2
- package/components/Calendar/MonthView.styles/MonthView.styles.js +20 -6
- package/components/Calendar/MonthView.styles/MonthView.styles.js.map +1 -1
- package/components/Calendar/MonthView.styles.d.ts +3 -0
- package/components/Calendar/MonthViewModel/MonthViewModel.js +9 -6
- package/components/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
- package/components/Calendar/config/config.js +6 -4
- package/components/Calendar/config/config.js.map +1 -1
- package/components/Calendar/index/index.js +2 -1
- package/components/Calendar/index/index.js.map +1 -1
- package/components/Calendar/index.d.ts +1 -0
- package/components/Checkbox/Checkbox/Checkbox.js +2 -2
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js +2 -2
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +2 -2
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js +62 -41
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +4 -1
- package/components/DatePicker/DatePicker.md +29 -1
- package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js +2 -1
- package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js.map +1 -1
- package/components/DatePicker/MobilePicker/MobilePicker.js +91 -0
- package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -0
- package/components/DatePicker/MobilePicker/package.json +6 -0
- package/components/DatePicker/MobilePicker.d.ts +10 -0
- package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js +10 -0
- package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js.map +1 -0
- package/components/DatePicker/MobilePicker.styles/package.json +6 -0
- package/components/DatePicker/MobilePicker.styles.d.ts +3 -0
- package/components/DatePicker/Picker/Picker.js +3 -3
- package/components/DatePicker/Picker/Picker.js.map +1 -1
- package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js +14 -0
- package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js.map +1 -0
- package/components/DatePicker/getMobilePickerTheme/package.json +6 -0
- package/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
- package/components/Dropdown/Dropdown/Dropdown.js +3 -3
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -3
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.md +39 -0
- package/components/FileUploader/FileUploader/FileUploader.js +30 -8
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +2 -0
- package/components/FileUploader/FileUploader.md +29 -0
- package/components/FxInput/FxInput/FxInput.js +2 -2
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/Group/Group/Group.js +2 -2
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Hint/Hint/Hint.js +53 -48
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +4 -3
- package/components/Input/Input/Input.js +3 -3
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.styles/Input.styles.js +2 -2
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Input/Input.styles.d.ts +1 -1
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -2
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
- package/components/Kebab/Kebab/Kebab.js +7 -4
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Link/Link/Link.js +6 -3
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Loader/Loader/Loader.js +2 -2
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js +3 -3
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MiniModal/MiniModal/MiniModal.js +2 -2
- package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
- package/components/Modal/Modal/Modal.js +3 -3
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/ModalBody/ModalBody.js +3 -3
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Paging/Paging/Paging.js +10 -6
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +2 -2
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/Radio/Radio/Radio.js +2 -2
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js +8 -4
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/ScrollContainer/ScrollBar/ScrollBar.js +2 -2
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +5 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/components/Select/Select/Select.js +6 -5
- package/components/Select/Select/Select.js.map +1 -1
- package/components/SidePage/SidePage/SidePage.js +2 -2
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePageBody/SidePageBody.js +2 -2
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageContainer/SidePageContainer.js +2 -2
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js +2 -2
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js +2 -2
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/Spinner/Spinner/Spinner.js +2 -2
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Switcher/Switcher/Switcher.js +3 -3
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Tabs/Indicator/Indicator.js +2 -2
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Tab/Tab.js +3 -3
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tabs/Tabs.js +2 -2
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +2 -2
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Toast/Toast/Toast.js +3 -3
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/ToastView/ToastView.js +2 -2
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toggle/Toggle/Toggle.js +2 -2
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Token/Token/Token.js +6 -3
- package/components/Token/Token/Token.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +2 -2
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +3 -3
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js +67 -46
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +10 -5
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +3 -3
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/hooks/useDrop/useDrop.js.map +1 -1
- package/hooks/useDrop.d.ts +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +2 -2
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/utils/extractCommonProps/extractCommonProps.js.map +1 -0
- package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/package.json +1 -1
- package/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
- package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/getCommonVisualStateDataAttributes.js +1 -5
- package/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/package.json +1 -1
- package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/getVisualStateDataAttributes.js +3 -3
- package/internal/CommonWrapper/utils/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/package.json +1 -1
- package/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
- package/internal/CommonWrapper/utils/tryGetBoolean/package.json +6 -0
- package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js +3 -0
- package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js.map +1 -0
- package/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +3 -3
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +5 -3
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js +59 -6
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +2 -0
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +4 -1
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
- package/internal/DateSelect/DateSelect.styles.d.ts +1 -0
- package/internal/DateSelect/locale/locales/en/en.js +2 -1
- package/internal/DateSelect/locale/locales/en/en.js.map +1 -1
- package/internal/DateSelect/locale/locales/ru/ru.js +2 -1
- package/internal/DateSelect/locale/locales/ru/ru.js.map +1 -1
- package/internal/DateSelect/locale/types.d.ts +1 -0
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +12 -3
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +4 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -2
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +3 -3
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -2
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +3 -3
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/Menu/Menu/Menu.js +3 -3
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +4 -3
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js +37 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js +11 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
- package/internal/MobilePopup/MobilePopupFooter/index/index.js +1 -0
- package/internal/MobilePopup/MobilePopupFooter/index/index.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/index/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
- package/internal/MobilePopup/MobilePopupFooter/package.json +6 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -2
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/NativeDateInput/utils/utils.js +2 -1
- package/internal/NativeDateInput/utils/utils.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +53 -10
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +15 -4
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +19 -12
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderContainer.d.ts +3 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -5
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +2 -2
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/ThemePlayground/Playground/Playground.js +2 -2
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +10 -7
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/constants/constants.js +3 -0
- package/internal/ThemePlayground/constants/constants.js.map +1 -1
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +2 -2
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +55 -7
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +7 -3
- package/internal/themes/DarkTheme/DarkTheme.js +2 -0
- package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/internal/themes/DarkTheme.d.ts +2 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js +32 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +18 -0
- package/lib/date/InternalDate/InternalDate.js +7 -1
- package/lib/date/InternalDate/InternalDate.js.map +1 -1
- package/lib/date/InternalDate.d.ts +2 -0
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js +30 -0
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
- package/lib/date/InternalDateTransformer.d.ts +3 -0
- package/lib/date/InternalDateValidator/InternalDateValidator.js +6 -1
- package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
- package/lib/date/comparison/comparison.js +45 -0
- package/lib/date/comparison/comparison.js.map +1 -0
- package/lib/date/comparison/package.json +6 -0
- package/lib/date/comparison.d.ts +6 -0
- package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/lib/listenFocusOutside/listenFocusOutside.js +3 -2
- package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
- package/lib/locale/constants/constants.js +4 -1
- package/lib/locale/constants/constants.js.map +1 -1
- package/lib/locale/constants.d.ts +3 -0
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +2 -0
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/lib/theming/Emotion/Emotion.js +12 -3
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/Emotion.d.ts +7 -1
- package/lib/theming/ThemeContext/ThemeContext.js +0 -2
- package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
- package/lib/theming/ThemeContext.d.ts +0 -2
- package/lib/theming/ThemeContext.md +3 -1
- package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js +33 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js.map +1 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024/package.json +6 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
- package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js +50 -0
- package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js.map +1 -0
- package/lib/theming/themes/Theme2022Update2024/package.json +6 -0
- package/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
- package/lib/widgets/StylesContainer/StylesContainer.js +65 -0
- package/lib/widgets/StylesContainer/StylesContainer.js.map +1 -0
- package/lib/widgets/StylesContainer/package.json +6 -0
- package/lib/widgets/StylesContainer.d.ts +13 -0
- package/lib/widgets/index/index.js +1 -0
- package/lib/widgets/index/index.js.map +1 -0
- package/lib/widgets/index/package.json +6 -0
- package/lib/widgets/index.d.ts +1 -0
- package/lib/widgets/package.json +6 -0
- package/package.json +3 -2
- package/cjs/internal/CommonWrapper/extractCommonProps.js.map +0 -1
- package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +0 -1
- package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +0 -1
- package/cjs/lib/theming/StyleContainer.d.ts +0 -4
- package/cjs/lib/theming/StyleContainer.js +0 -21
- package/cjs/lib/theming/StyleContainer.js.map +0 -1
- package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +0 -1
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +0 -1
- package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +0 -1
- package/lib/theming/StyleContainer/StyleContainer.js +0 -21
- package/lib/theming/StyleContainer/StyleContainer.js.map +0 -1
- package/lib/theming/StyleContainer/package.json +0 -6
- package/lib/theming/StyleContainer.d.ts +0 -4
- /package/cjs/internal/CommonWrapper/{extractCommonProps.js → utils/extractCommonProps.js} +0 -0
- /package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
- /package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/extractCommonProps.js +0 -0
- /package/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MiniModal.tsx"],"names":["MiniModalDataTids","icon","title","description","actions","indent","MiniModal","ref","children","propsTheme","theme","rest","contextTheme","Header","MiniModalHeader","Footer","MiniModalFooter","Indent","MiniModalIndent","Body","MiniModalBody"],"mappings":"yYAAA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oD;;AAEO,IAAMA,iBAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,iBADyB;AAE/BC,EAAAA,KAAK,EAAE,kBAFwB;AAG/BC,EAAAA,WAAW,EAAE,wBAHkB;AAI/BC,EAAAA,OAAO,EAAE,oBAJsB;AAK/BC,EAAAA,MAAM,EAAE,mBALuB,EAA1B,C;;;AAQA,IAAMC,SAAS,GAAG;;;;;;;;;AASvB,WATuB,EASV,gBAA2CC,GAA3C,EAAmD,KAAhDC,QAAgD,QAAhDA,QAAgD,CAA/BC,UAA+B,QAAtCC,KAAsC,CAAhBC,IAAgB;AAChE,MAAMC,YAAY,GAAG,yBAArB;;AAEA;AACE,iCAAC,
|
|
1
|
+
{"version":3,"sources":["MiniModal.tsx"],"names":["MiniModalDataTids","icon","title","description","actions","indent","MiniModal","ref","children","propsTheme","theme","rest","contextTheme","Header","MiniModalHeader","Footer","MiniModalFooter","Indent","MiniModalIndent","Body","MiniModalBody"],"mappings":"yYAAA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oD;;AAEO,IAAMA,iBAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,iBADyB;AAE/BC,EAAAA,KAAK,EAAE,kBAFwB;AAG/BC,EAAAA,WAAW,EAAE,wBAHkB;AAI/BC,EAAAA,OAAO,EAAE,oBAJsB;AAK/BC,EAAAA,MAAM,EAAE,mBALuB,EAA1B,C;;;AAQA,IAAMC,SAAS,GAAG;;;;;;;;;AASvB,WATuB,EASV,gBAA2CC,GAA3C,EAAmD,KAAhDC,QAAgD,QAAhDA,QAAgD,CAA/BC,UAA+B,QAAtCC,KAAsC,CAAhBC,IAAgB;AAChE,MAAMC,YAAY,GAAG,yBAArB;;AAEA;AACE,iCAAC,0BAAD,CAAc,QAAd,IAAuB,KAAK,EAAE,0CAAkBA,YAAlB,EAAgCH,UAAhC,CAA9B;AACE,iCAAC,YAAD,2BAAO,KAAK,EAAE,GAAd,EAAmB,OAAO,MAA1B,EAA2B,GAAG,EAAEF,GAAhC,IAAyCI,IAAzC;AACGH,IAAAA,QADH,CADF,CADF;;;;AAOD,CAnBwB,CAAlB,C;;AAqBPF,SAAS,CAACO,MAAV,GAAmBC,gCAAnB;AACAR,SAAS,CAACS,MAAV,GAAmBC,gCAAnB;AACAV,SAAS,CAACW,MAAV,GAAmBC,gCAAnB;AACAZ,SAAS,CAACa,IAAV,GAAiBC,4BAAjB","sourcesContent":["import React from 'react';\n\nimport { Modal, ModalProps } from '../Modal';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { useTheme } from '../../lib/theming/useTheme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { getMiniModalTheme } from './getMiniModalTheme';\nimport { MiniModalFooter } from './MiniModalFooter';\nimport { MiniModalHeader } from './MiniModalHeader';\nimport { MiniModalBody } from './MiniModalBody';\nimport { MiniModalIndent } from './MiniModalIndent';\n\nexport const MiniModalDataTids = {\n icon: 'MiniModal__icon',\n title: 'MiniModal__title',\n description: 'MiniModal__description',\n actions: 'MiniModal__actions',\n indent: 'MiniModal__indent',\n} as const;\n\nexport const MiniModal = forwardRefAndName<\n Modal,\n ModalProps,\n {\n Header: typeof MiniModalHeader;\n Indent: typeof MiniModalIndent;\n Footer: typeof MiniModalFooter;\n Body: typeof MiniModalBody;\n }\n>('MiniModal', ({ children, theme: propsTheme, ...rest }, ref) => {\n const contextTheme = useTheme();\n\n return (\n <ThemeContext.Provider value={getMiniModalTheme(contextTheme, propsTheme)}>\n <Modal width={400} noClose ref={ref} {...rest}>\n {children}\n </Modal>\n </ThemeContext.Provider>\n );\n});\n\nMiniModal.Header = MiniModalHeader;\nMiniModal.Footer = MiniModalFooter;\nMiniModal.Indent = MiniModalIndent;\nMiniModal.Body = MiniModalBody;\n"]}
|
|
@@ -390,5 +390,5 @@ Modal = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(M
|
|
|
390
390
|
|
|
391
391
|
setHasPanel = function (hasPanel) {if (hasPanel === void 0) {hasPanel = false;}
|
|
392
392
|
_this.state.hasPanel !== hasPanel && _this.setState({ hasPanel: hasPanel });
|
|
393
|
-
};return _this;}var _proto = Modal.prototype;_proto.componentDidMount = function componentDidMount() {this.stackSubscription = _ModalStack.ModalStack.add(this, this.handleStackChange);if (mountedModalsCount === 0) {_globalObject.globalObject.addEventListener == null ? void 0 : _globalObject.globalObject.addEventListener('resize', this.throttledCheckHorizontalScroll);}mountedModalsCount++;_globalObject.globalObject.addEventListener == null ? void 0 : _globalObject.globalObject.addEventListener('keydown', this.handleKeyDown);this.checkHorizontalScrollAppearance();if (this.containerNode) {this.containerNode.addEventListener('scroll', LayoutEvents.emit);}};_proto.componentWillUnmount = function componentWillUnmount() {if (--mountedModalsCount === 0) {_globalObject.globalObject.removeEventListener == null ? void 0 : _globalObject.globalObject.removeEventListener('resize', this.throttledCheckHorizontalScroll);LayoutEvents.emit();}_globalObject.globalObject.removeEventListener == null ? void 0 : _globalObject.globalObject.removeEventListener('keydown', this.handleKeyDown);if ((0, _utils.isNonNullable)(this.stackSubscription)) {this.stackSubscription.remove();}_ModalStack.ModalStack.remove(this);if (this.containerNode) {this.containerNode.removeEventListener('scroll', LayoutEvents.emit);}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.
|
|
393
|
+
};return _this;}var _proto = Modal.prototype;_proto.componentDidMount = function componentDidMount() {this.stackSubscription = _ModalStack.ModalStack.add(this, this.handleStackChange);if (mountedModalsCount === 0) {_globalObject.globalObject.addEventListener == null ? void 0 : _globalObject.globalObject.addEventListener('resize', this.throttledCheckHorizontalScroll);}mountedModalsCount++;_globalObject.globalObject.addEventListener == null ? void 0 : _globalObject.globalObject.addEventListener('keydown', this.handleKeyDown);this.checkHorizontalScrollAppearance();if (this.containerNode) {this.containerNode.addEventListener('scroll', LayoutEvents.emit);}};_proto.componentWillUnmount = function componentWillUnmount() {if (--mountedModalsCount === 0) {_globalObject.globalObject.removeEventListener == null ? void 0 : _globalObject.globalObject.removeEventListener('resize', this.throttledCheckHorizontalScroll);LayoutEvents.emit();}_globalObject.globalObject.removeEventListener == null ? void 0 : _globalObject.globalObject.removeEventListener('keydown', this.handleKeyDown);if ((0, _utils.isNonNullable)(this.stackSubscription)) {this.stackSubscription.remove();}_ModalStack.ModalStack.remove(this);if (this.containerNode) {this.containerNode.removeEventListener('scroll', LayoutEvents.emit);}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = (0, _getModalTheme.getModalTheme)(theme, _this2.props.theme);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _this2.theme }, _this2.renderMain());});});};_proto.renderMain = function renderMain() {var _this3 = this;var _this$props = this.props,noClose = _this$props.noClose,disableClose = _this$props.disableClose,width = _this$props.width,alignTop = _this$props.alignTop,children = _this$props.children,ariaLabel = _this$props['aria-label'],ariaLabelledby = _this$props['aria-labelledby'];var _this$state = this.state,hasHeader = _this$state.hasHeader,hasFooter = _this$state.hasFooter,hasPanel = _this$state.hasPanel;var _this$getProps = this.getProps(),role = _this$getProps.role,disableFocusLock = _this$getProps.disableFocusLock;var modalContextProps = { hasHeader: hasHeader, horizontalScroll: this.state.horizontalScroll, setHasHeader: this.setHasHeader, setHasFooter: this.setHasFooter, setHasPanel: this.setHasPanel };if (!noClose) {modalContextProps.close = { disableClose: disableClose, requestClose: this.requestClose };}if (!hasFooter) {modalContextProps.additionalPadding = true;}if (hasFooter && hasPanel) {modalContextProps.additionalPadding = true;}var style = {};var containerStyle = {};if (width) {style.width = width;} else {containerStyle.width = 'auto';}var styles = (0, _Modal.getStyles)(this.emotion);return /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, null, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'Modal', className: styles.root() }, /*#__PURE__*/_react.default.createElement(_HideBodyVerticalScroll.HideBodyVerticalScroll, null), this.state.hasBackground && /*#__PURE__*/_react.default.createElement("div", { onMouseDown: this.handleContainerMouseDown, onMouseUp: this.handleContainerMouseUp, onClick: this.handleContainerClick, className: styles.bg(this.theme) }), /*#__PURE__*/_react.default.createElement(_ResponsiveLayout.ResponsiveLayout, null, function (_ref) {var _this3$emotion$cx, _this3$emotion$cx2, _this3$emotion$cx3, _this3$emotion$cx4, _this3$emotion$cx5;var isMobile = _ref.isMobile;return /*#__PURE__*/_react.default.createElement("div", { "aria-labelledby": ariaLabelledby, ref: _this3.refContainer, className: _this3.emotion.cx(styles.container(), isMobile && styles.containerMobile(_this3.theme)), onMouseDown: _this3.handleContainerMouseDown, onMouseUp: _this3.handleContainerMouseUp, onClick: _this3.handleContainerClick, "data-tid": ModalDataTids.container }, /*#__PURE__*/_react.default.createElement("div", { "aria-modal": true, "aria-label": ariaLabel, role: role, className: _this3.emotion.cx((_this3$emotion$cx = {}, _this3$emotion$cx[styles.centerContainer()] = true, _this3$emotion$cx[styles.mobileCenterContainer()] = isMobile, _this3$emotion$cx[styles.alignTop()] = Boolean(alignTop), _this3$emotion$cx)), style: isMobile ? undefined : containerStyle, "data-tid": ModalDataTids.content }, /*#__PURE__*/_react.default.createElement("div", { className: _this3.emotion.cx((_this3$emotion$cx2 = {}, _this3$emotion$cx2[styles.window(_this3.theme)] = true, _this3$emotion$cx2[styles.mobileWindow()] = isMobile, _this3$emotion$cx2)), style: isMobile ? undefined : style }, /*#__PURE__*/_react.default.createElement(_ResizeDetector.ResizeDetector, { onResize: _this3.handleResize, fullHeight: isMobile }, /*#__PURE__*/_react.default.createElement(_reactFocusLock.default, { disabled: disableFocusLock, autoFocus: false, className: _this3.emotion.cx((_this3$emotion$cx3 = {}, _this3$emotion$cx3[styles.columnFlexContainer()] = isMobile, _this3$emotion$cx3), 'focus-lock-container') }, !hasHeader && !noClose && /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { className: _this3.emotion.cx((_this3$emotion$cx4 = {}, _this3$emotion$cx4[styles.closeWrapper(_this3.theme)] = true, _this3$emotion$cx4[styles.mobileCloseWrapper(_this3.theme)] = isMobile, _this3$emotion$cx4)) }, /*#__PURE__*/_react.default.createElement(_ModalClose.ModalClose, { className: _this3.emotion.cx((_this3$emotion$cx5 = {}, _this3$emotion$cx5[styles.mobileCloseWithoutHeader()] = isMobile && !_this3.state.hasHeader, _this3$emotion$cx5)), requestClose: _this3.requestClose, disableClose: disableClose })), /*#__PURE__*/_react.default.createElement(_ModalContext.ModalContext.Provider, { value: modalContextProps }, children))))));}))));};return Modal;}(_react.default.Component);exports.Modal = Modal;Modal.__KONTUR_REACT_UI__ = 'Modal';Modal.displayName = 'Modal';Modal.Header = _ModalHeader.ModalHeader;Modal.Body = _ModalBody.ModalBody;Modal.Footer = _ModalFooter.ModalFooter;Modal.defaultProps = { // NOTE: в ie нормально не работает
|
|
394
394
|
disableFocusLock: _client.isIE11, role: 'dialog' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Modal.tsx"],"names":["mountedModalsCount","ModalDataTids","container","content","close","Modal","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","LayoutEvents","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","globalObject","addEventListener","componentWillUnmount","removeEventListener","remove","render","emotion","theme","renderMain","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","role","disableFocusLock","modalContextProps","additionalPadding","style","containerStyle","styles","root","bg","isMobile","cx","containerMobile","centerContainer","mobileCenterContainer","Boolean","undefined","window","mobileWindow","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","React","Component","__KONTUR_REACT_UI__","displayName","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter","isIE11"],"mappings":"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","sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { getStyles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeProvider value={this.theme}>{this.renderMain()}</ThemeProvider>;\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n const styles = getStyles(this.emotion);\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={this.emotion.cx(styles.container(), isMobile && styles.containerMobile(this.theme))}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={this.emotion.cx({\n [styles.centerContainer()]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={this.emotion.cx({\n [styles.window(this.theme)]: true,\n [styles.mobileWindow()]: isMobile,\n })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={this.emotion.cx(\n { [styles.columnFlexContainer()]: isMobile },\n 'focus-lock-container',\n )}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n className={this.emotion.cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={this.emotion.cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Modal.tsx"],"names":["mountedModalsCount","ModalDataTids","container","content","close","Modal","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","LayoutEvents","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","globalObject","addEventListener","componentWillUnmount","removeEventListener","remove","render","emotion","theme","renderMain","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","role","disableFocusLock","modalContextProps","additionalPadding","style","containerStyle","styles","root","bg","isMobile","cx","containerMobile","centerContainer","mobileCenterContainer","Boolean","undefined","window","mobileWindow","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","React","Component","__KONTUR_REACT_UI__","displayName","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter","isIE11"],"mappings":"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","sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { getStyles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n const styles = getStyles(this.emotion);\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={this.emotion.cx(styles.container(), isMobile && styles.containerMobile(this.theme))}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={this.emotion.cx({\n [styles.centerContainer()]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={this.emotion.cx({\n [styles.window(this.theme)]: true,\n [styles.mobileWindow()]: isMobile,\n })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={this.emotion.cx(\n { [styles.columnFlexContainer()]: isMobile },\n 'focus-lock-container',\n )}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n className={this.emotion.cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={this.emotion.cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
|
|
@@ -59,7 +59,7 @@ ModalBody = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_c
|
|
|
59
59
|
|
|
60
60
|
handleResize = function () {
|
|
61
61
|
LayoutEvents.emit();
|
|
62
|
-
};return _this;}var _proto = ModalBody.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.
|
|
62
|
+
};return _this;}var _proto = ModalBody.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = (0, _getModalBodyTheme.getModalBodyTheme)(theme);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _this2.theme }, _this2.renderMain());});});};_proto.
|
|
63
63
|
|
|
64
64
|
renderMain = function renderMain() {var _this3 = this;
|
|
65
65
|
var noPadding = this.props.noPadding;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ModalBody.tsx"],"names":["ModalBody","responsiveLayout","rootNode","handleResize","LayoutEvents","emit","render","emotion","theme","renderMain","noPadding","props","styles","additionalPadding","hasHeader","setRootNode","cx","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","bodyWithoutPadding","children","React","Component","__KONTUR_REACT_UI__","displayName","__MODAL_BODY__"],"mappings":"8aAAA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wD;;;;;;;;;AASA;AACA;AACA;AACA;AACA,G;;;AAGaA,S,OAFZC,2B,eACAC,kB;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BSC,IAAAA,Y,GAAe,YAAM;AAC3BC,MAAAA,YAAY,CAACC,IAAb;AACD,K,uDApBMC,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,wBAAD,QACG,UAACC,OAAD,EAAa,CACZ,MAAI,CAACA,OAAL,GAAeA,OAAf,CACA,oBACE,6BAAC,
|
|
1
|
+
{"version":3,"sources":["ModalBody.tsx"],"names":["ModalBody","responsiveLayout","rootNode","handleResize","LayoutEvents","emit","render","emotion","theme","renderMain","noPadding","props","styles","additionalPadding","hasHeader","setRootNode","cx","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","bodyWithoutPadding","children","React","Component","__KONTUR_REACT_UI__","displayName","__MODAL_BODY__"],"mappings":"8aAAA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wD;;;;;;;;;AASA;AACA;AACA;AACA;AACA,G;;;AAGaA,S,OAFZC,2B,eACAC,kB;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BSC,IAAAA,Y,GAAe,YAAM;AAC3BC,MAAAA,YAAY,CAACC,IAAb;AACD,K,uDApBMC,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,wBAAD,QACG,UAACC,OAAD,EAAa,CACZ,MAAI,CAACA,OAAL,GAAeA,OAAf,CACA,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAa,0CAAkBA,KAAlB,CAAb,CACA,oBAAO,6BAAC,0BAAD,CAAc,QAAd,IAAuB,KAAK,EAAE,MAAI,CAACA,KAAnC,IAA2C,MAAI,CAACC,UAAL,EAA3C,CAAP,CACD,CAJH,CADF,CAQD,CAXH,CADF,CAeD,C;;AAMMA,EAAAA,U,GAAP,sBAAiC;AAC/B,QAAQC,SAAR,GAAsB,KAAKC,KAA3B,CAAQD,SAAR;AACA,QAAME,MAAM,GAAG,sBAAU,KAAKL,OAAf,CAAf;;AAEA;AACE,mCAAC,0BAAD,CAAc,QAAd;AACG,iDAAGM,iBAAH,QAAGA,iBAAH,CAAsBC,SAAtB,QAAsBA,SAAtB;AACC,uCAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAACC,WAAjC,IAAkD,MAAI,CAACJ,KAAvD;AACE,uCAAC,cAAD;AACE,YAAA,SAAS,EAAE,MAAI,CAACJ,OAAL,CAAaS,EAAb;AACRJ,YAAAA,MAAM,CAACK,IAAP,CAAY,MAAI,CAACT,KAAjB,CADQ,IACkB,IADlB;AAERI,YAAAA,MAAM,CAACM,UAAP,CAAkB,MAAI,CAACV,KAAvB,CAFQ,IAEwB,MAAI,CAACW,cAF7B;AAGRP,YAAAA,MAAM,CAACQ,iBAAP,CAAyB,MAAI,CAACZ,KAA9B,CAHQ,IAG+B,CAACM,SAHhC;AAIRF,YAAAA,MAAM,CAACS,uBAAP,EAJQ,IAI2B,CAACP,SAAD,IAAc,MAAI,CAACK,cAJ9C;AAKRP,YAAAA,MAAM,CAACU,sBAAP,CAA8B,MAAI,CAACd,KAAnC,CALQ,IAKoCK,iBALpC;AAMRD,YAAAA,MAAM,CAACW,4BAAP,CAAoC,MAAI,CAACf,KAAzC,CANQ,IAM0CK,iBAAiB,IAAI,MAAI,CAACM,cANpE;AAORP,YAAAA,MAAM,CAACY,kBAAP,EAPQ,IAOsBd,SAPtB,qBADb;;;AAWG,UAAA,MAAI,CAACS,cAAL;AACC,uCAAC,8BAAD,IAAgB,QAAQ,EAAE,MAAI,CAAChB,YAA/B,IAA8C,MAAI,CAACQ,KAAL,CAAWc,QAAzD,CADD;;AAGC,UAAA,MAAI,CAACd,KAAL,CAAWc,QAdf,CADF,CADD,GADH,CADF;;;;;;;AAyBD,G,oBA7D4BC,eAAMC,S,WACrBC,mB,GAAsB,W,UACtBC,W,GAAc,W,UACdC,c,GAAiB,I","sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { ModalContext } from './ModalContext';\nimport { getStyles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\n\nexport interface ModalBodyProps extends CommonProps {\n /**\n * убирает отступы\n */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами от края модалки\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static displayName = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private emotion!: Emotion;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const { noPadding } = this.props;\n const styles = getStyles(this.emotion);\n\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n className={this.emotion.cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"]}
|
|
@@ -16,7 +16,7 @@ var _CommonWrapper = require("../../internal/CommonWrapper");
|
|
|
16
16
|
var _rootNode = require("../../lib/rootNode");
|
|
17
17
|
var _createPropsGetter = require("../../lib/createPropsGetter");
|
|
18
18
|
var _ThemeHelpers = require("../../lib/theming/ThemeHelpers");
|
|
19
|
-
var _getVisualStateDataAttributes = require("../../internal/CommonWrapper/getVisualStateDataAttributes");
|
|
19
|
+
var _getVisualStateDataAttributes = require("../../internal/CommonWrapper/utils/getVisualStateDataAttributes");
|
|
20
20
|
var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
21
21
|
var _Emotion = require("../../lib/theming/Emotion");
|
|
22
22
|
|
|
@@ -196,6 +196,10 @@ Paging = (_dec = (0, _decorators.locale)('Paging', _locale.PagingLocaleHelper),
|
|
|
196
196
|
|
|
197
197
|
|
|
198
198
|
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
|
|
199
203
|
|
|
200
204
|
|
|
201
205
|
|
|
@@ -261,7 +265,7 @@ Paging = (_dec = (0, _decorators.locale)('Paging', _locale.PagingLocaleHelper),
|
|
|
261
265
|
|
|
262
266
|
|
|
263
267
|
return /*#__PURE__*/(
|
|
264
|
-
_react.default.createElement(Component, {
|
|
268
|
+
_react.default.createElement(Component, (0, _extends2.default)({
|
|
265
269
|
key: 'forward',
|
|
266
270
|
"data-tid": PagingDataTids.forwardLink,
|
|
267
271
|
active: false,
|
|
@@ -269,6 +273,7 @@ Paging = (_dec = (0, _decorators.locale)('Paging', _locale.PagingLocaleHelper),
|
|
|
269
273
|
onClick: disabled ? _utils.emptyHandler : _this.goForward,
|
|
270
274
|
tabIndex: -1,
|
|
271
275
|
pageNumber: 'forward' },
|
|
276
|
+
(0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({ disabled: disabled })),
|
|
272
277
|
|
|
273
278
|
_this.props.caption || forward,
|
|
274
279
|
forwardIcon));
|
|
@@ -512,7 +517,7 @@ Paging = (_dec = (0, _decorators.locale)('Paging', _locale.PagingLocaleHelper),
|
|
|
512
517
|
|
|
513
518
|
refContainer = function (element) {
|
|
514
519
|
_this.container = element;
|
|
515
|
-
};return _this;}Paging.isForward = function isForward(pageNumber) /* %checks */{return pageNumber === 'forward';};var _proto = Paging.prototype;_proto.componentDidMount = function componentDidMount() {var useGlobalListener = this.getProps().useGlobalListener;if (useGlobalListener) {this.addGlobalListener();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var useGlobalListener = this.getProps().useGlobalListener;if (!prevProps.useGlobalListener && useGlobalListener) {this.addGlobalListener();}if (prevProps.useGlobalListener && !useGlobalListener) {this.removeGlobalListener();}if (prevProps.useGlobalListener !== useGlobalListener) {this.setState({ keyboardControl: useGlobalListener });}};_proto.componentWillUnmount = function componentWillUnmount() {this.removeGlobalListener();};_proto.render = function render() {var _this2 = this;if (this.props.pagesCount < 2 && !this.getProps().shouldBeVisibleWithLessThanTwoPages) {return null;}return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.
|
|
520
|
+
};return _this;}Paging.isForward = function isForward(pageNumber) /* %checks */{return pageNumber === 'forward';};var _proto = Paging.prototype;_proto.componentDidMount = function componentDidMount() {var useGlobalListener = this.getProps().useGlobalListener;if (useGlobalListener) {this.addGlobalListener();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var useGlobalListener = this.getProps().useGlobalListener;if (!prevProps.useGlobalListener && useGlobalListener) {this.addGlobalListener();}if (prevProps.useGlobalListener && !useGlobalListener) {this.removeGlobalListener();}if (prevProps.useGlobalListener !== useGlobalListener) {this.setState({ keyboardControl: useGlobalListener });}};_proto.componentWillUnmount = function componentWillUnmount() {this.removeGlobalListener();};_proto.render = function render() {var _this2 = this;if (this.props.pagesCount < 2 && !this.getProps().shouldBeVisibleWithLessThanTwoPages) {return null;}return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});});};_proto.renderMain = function renderMain() {var _this$emotion$cx4;var _this$getProps = this.getProps(),dataTid = _this$getProps['data-tid'],useGlobalListener = _this$getProps.useGlobalListener;var styles = (0, _Paging.getStyles)(this.emotion);return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props, (0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({ disabled: this.props.disabled })), /*#__PURE__*/_react.default.createElement("span", { tabIndex: this.props.disabled ? -1 : 0, "data-tid": dataTid, className: this.emotion.cx((_this$emotion$cx4 = {}, _this$emotion$cx4[styles.paging(this.theme)] = true, _this$emotion$cx4[styles.pagingDisabled()] = this.props.disabled, _this$emotion$cx4)), onKeyDown: useGlobalListener ? undefined : this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, ref: this.refContainer }, this.getItems().map(this.renderItem)));};return Paging;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Paging', _class2.displayName = 'Paging', _class2.defaultProps = { component: _PagingDefaultComponent.PagingDefaultComponent, shouldBeVisibleWithLessThanTwoPages: true, useGlobalListener: false, 'data-tid': PagingDataTids.root }, _class2.propTypes = {}, _temp)) || _class) || _class);exports.Paging = Paging;
|
|
516
521
|
|
|
517
522
|
|
|
518
523
|
Paging.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Paging.tsx"],"names":["IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","PagingLocaleHelper","rootNode","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","styles","emotion","cx","theme","dotsDisabled","classes","pageLinkFocused","pageLinkDisabled","forwardLinkFocused","forwardLinkDisabled","Component","component","forward","locale","forwardIcon","parseInt","pagingForwardIconSize","marginLeft","emptyHandler","goForward","caption","pageNumber","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","transparent","NavigationHelper","getKeyName","pageLinkHint","handleMouseDown","setState","isIE11","globalObject","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","shouldBeVisibleWithLessThanTwoPages","renderMain","dataTid","setRootNode","paging","pagingDisabled","undefined","map","React","PureComponent","__KONTUR_REACT_UI__","displayName","PagingDefaultComponent","propTypes","number","isRequired","func"],"mappings":"ocAAA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4C;;AAEA,IAAMA,iBAAiB,GAAG,CAAC,OAAD,EAAU,UAAV,CAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDO,IAAMC,cAAc,GAAG;AAC5BC,EAAAA,IAAI,EAAE,cADsB;AAE5BC,EAAAA,IAAI,EAAE,cAFsB;AAG5BC,EAAAA,WAAW,EAAE,qBAHe;AAI5BC,EAAAA,eAAe,EAAE,yBAJW;AAK5BC,EAAAA,QAAQ,EAAE,kBALkB,EAAvB,C;;;;;;;;;AAcMC,M,WADZ,wBAAO,QAAP,EAAiBC,0BAAjB,C,MADAC,kB;;;;;;;;;;;AAaSC,IAAAA,Q,GAAW,0CAAkBH,MAAM,CAACI,YAAzB,C;;;;;;;;;AASZC,IAAAA,K,GAAqB;AAC1BC,MAAAA,YAAY,EAAE,KADY;AAE1BC,MAAAA,WAAW,EAAE,IAFa;AAG1BC,MAAAA,eAAe,EAAE,MAAKL,QAAL,GAAgBM,iBAHP,E;;;;;;AASpBC,IAAAA,mB,GAAsB,K;AACtBC,IAAAA,S,GAAoC,I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4EpCC,IAAAA,U,GAAa,UAACC,IAAD,EAAiBC,KAAjB,EAAmC;AACtD,UAAMC,OAAO,GAAG,MAAKC,cAAL,OAA0BH,IAA1C;AACA,cAAQA,IAAR;AACE,aAAK,GAAL,CAAU;AACR,gBAAMI,GAAG,aAAUH,KAAK,GAAG,CAAR,GAAY,MAAZ,GAAqB,OAA/B,CAAT;AACA,mBAAO,MAAKI,UAAL,CAAgBD,GAAhB,CAAP;AACD;AACD,aAAK,SAAL,CAAgB;AACd,gBAAME,QAAQ,GAAG,MAAKC,cAAL,CAAoBP,IAApB,CAAjB;AACA,mBAAO,MAAKQ,iBAAL,CAAuBF,QAAvB,EAAiCJ,OAAjC,CAAP;AACD;AACD,gBAAS;AACP,gBAAMO,MAAM,GAAG,MAAKC,KAAL,CAAWC,UAAX,KAA0BX,IAAzC;AACA,mBAAO,MAAKY,cAAL,CAAoBZ,IAApB,EAA0BS,MAA1B,EAAkCP,OAAlC,CAAP;AACD,WAZH;;AAcD,K;;AAEOG,IAAAA,U,GAAa,UAACD,GAAD,EAAiB;AACpC,UAAMS,MAAM,GAAG,uBAAU,MAAKC,OAAf,CAAf;AACA;AACE;AACE,sBAAUjC,cAAc,CAACE,IAD3B;AAEE,UAAA,GAAG,EAAEqB,GAFP;AAGE,UAAA,SAAS,EAAE,MAAKU,OAAL,CAAaC,EAAb;AACRF,UAAAA,MAAM,CAAC9B,IAAP,CAAY,MAAKiC,KAAjB,CADQ,IACkB,IADlB;AAERH,UAAAA,MAAM,CAACI,YAAP,CAAoB,MAAKD,KAAzB,CAFQ,IAE0B,MAAKN,KAAL,CAAWJ,QAFrC,oBAHb;;;AAQG,aARH,CADF;;;AAYD,K;;AAEOE,IAAAA,iB,GAAoB,UAACF,QAAD,EAAoBJ,OAApB,EAAsD;AAChF,UAAMW,MAAM,GAAG,uBAAU,MAAKC,OAAf,CAAf;AACA,UAAMI,OAAO,GAAG,+BAAY,MAAKF,KAAjB;AACZ,YAAKF,OAAL,CAAaC,EAAb;AACEF,MAAAA,MAAM,CAAC3B,QAAP,CAAgB,MAAK8B,KAArB,CADF;AAEEH,MAAAA,MAAM,CAAC7B,WAAP,CAAmB,MAAKgC,KAAxB,CAFF;AAGEd,MAAAA,OAAO,IAAIW,MAAM,CAACM,eAAP,CAAuB,MAAKH,KAA5B,CAHb;AAIE,OAACV,QAAQ,IAAI,MAAKI,KAAL,CAAWJ,QAAxB,KAAqCO,MAAM,CAACO,gBAAP,CAAwB,MAAKJ,KAA7B,CAJvC,CADY;;AAOZ,YAAKF,OAAL,CAAaC,EAAb;AACGF,MAAAA,MAAM,CAAC7B,WAAP,CAAmB,MAAKgC,KAAxB,CADH,IACoC,IADpC;AAEGH,MAAAA,MAAM,CAACQ,kBAAP,EAFH,IAEiCnB,OAFjC;AAGGW,MAAAA,MAAM,CAACS,mBAAP,CAA2B,MAAKN,KAAhC,CAHH,IAG4CV,QAAQ,IAAI,MAAKI,KAAL,CAAWJ,QAHnE,qBAPJ;;AAYA,UAAMiB,SAAS,GAAG,MAAKjC,QAAL,GAAgBkC,SAAlC;AACA,UAAQC,OAAR,GAAoB,MAAKC,MAAzB,CAAQD,OAAR;;AAEA,UAAME,WAAW,GAAG,+BAAY,MAAKX,KAAjB;AAClB,mCAAC,wBAAD,IAAa,IAAI,EAAEY,QAAQ,CAAC,MAAKZ,KAAL,CAAWa,qBAAZ,CAA3B,EAA+D,KAAK,EAAE,EAAEC,UAAU,EAAE,CAAd,EAAtE,GADkB;;AAGlB,6CAAM,SAAS,EAAEjB,MAAM,CAACc,WAAP,CAAmB,MAAKX,KAAxB,CAAjB;AACE,mCAAC,yBAAD,IAAuB,IAAI,EAAE,MAAKA,KAAL,CAAWa,qBAAxC,GADF,CAHF;;;;AAQA;AACE,qCAAC,SAAD;AACE,UAAA,GAAG,EAAE,SADP;AAEE,sBAAUhD,cAAc,CAACG,WAF3B;AAGE,UAAA,MAAM,EAAE,KAHV;AAIE,UAAA,SAAS,EAAEkC,OAJb;AAKE,UAAA,OAAO,EAAEZ,QAAQ,GAAGyB,mBAAH,GAAkB,MAAKC,SAL1C;AAME,UAAA,QAAQ,EAAE,CAAC,CANb;AAOE,UAAA,UAAU,EAAE,SAPd;;AASG,cAAKtB,KAAL,CAAWuB,OAAX,IAAsBR,OATzB;AAUGE,QAAAA,WAVH,CADF;;;AAcD,K;;AAEOf,IAAAA,c,GAAiB,UAACsB,UAAD,EAAqBzB,MAArB,EAAsCP,OAAtC,EAAwE;AAC/F,UAAMW,MAAM,GAAG,uBAAU,MAAKC,OAAf,CAAf;AACA,UAAMR,QAAQ,GAAG,MAAKI,KAAL,CAAWJ,QAA5B;AACA,UAAMY,OAAO,GAAG,MAAKJ,OAAL,CAAaC,EAAb;AACbF,MAAAA,MAAM,CAAC3B,QAAP,CAAgB,MAAK8B,KAArB,CADa,IACiB,IADjB;AAEbH,MAAAA,MAAM,CAACM,eAAP,CAAuB,MAAKH,KAA5B,CAFa,IAEwBd,OAFxB;AAGbW,MAAAA,MAAM,CAACO,gBAAP,CAAwB,MAAKJ,KAA7B,CAHa,IAGyBV,QAHzB;AAIbO,MAAAA,MAAM,CAACsB,eAAP,CAAuB,MAAKnB,KAA5B,CAJa,IAIwBP,MAJxB;AAKbI,MAAAA,MAAM,CAACuB,uBAAP,CAA+B,MAAKpB,KAApC,CALa,IAKgCP,MAAM,IAAIH,QAL1C,qBAAhB;;AAOA,UAAMiB,SAAS,GAAG,MAAKjC,QAAL,GAAgBkC,SAAlC;AACA,UAAMa,WAAW,GAAG,SAAdA,WAAc,WAAM,MAAKC,QAAL,CAAcJ,UAAd,CAAN,EAApB;;AAEA;AACE;AACE,sBAAUrD,cAAc,CAACI,eAD3B;AAEE,UAAA,GAAG,EAAEiD,UAFP;AAGE,UAAA,SAAS,EAAErB,MAAM,CAAC5B,eAAP,EAHb;AAIM,wEAA6B,EAAEwB,MAAM,EAANA,MAAF,EAAUH,QAAQ,EAARA,QAAV,EAA7B,CAJN;AAKE,UAAA,WAAW,EAAE,MAAKiC,uBALpB;;AAOE,qCAAC,SAAD;AACE,sBAAU1D,cAAc,CAACK,QAD3B;AAEE,UAAA,MAAM,EAAEuB,MAFV;AAGE,UAAA,SAAS,EAAES,OAHb;AAIE,UAAA,OAAO,EAAEmB,WAJX;AAKE,UAAA,QAAQ,EAAE,CAAC,CALb;AAME,UAAA,UAAU,EAAEH,UANd;;AAQGA,QAAAA,UARH,CAPF;;AAiBGzB,QAAAA,MAAM,IAAI,MAAK+B,oBAAL,EAjBb,CADF;;;AAqBD,K;;AAEOA,IAAAA,oB,GAAuB,YAAM;AACnC,UAAI,MAAK9B,KAAL,CAAW+B,qBAAf,EAAsC;AACpC,eAAO,IAAP;AACD;;AAED,UAAQ9C,eAAR,GAA4B,MAAKH,KAAjC,CAAQG,eAAR;AACA,UAAM+C,aAAa,GAAG,MAAKA,aAAL,EAAtB;AACA,UAAMC,YAAY,GAAG,MAAKA,YAAL,EAArB;;AAEA,UAAIC,IAAI,GAAG,IAAX;AACA,UAAM/B,MAAM,GAAG,uBAAU,MAAKC,OAAf,CAAf;AACA,UAAInB,eAAe,KAAK+C,aAAa,IAAIC,YAAtB,CAAnB,EAAwD;AACtDC,QAAAA,IAAI;AACF;AACE,+CAAM,SAAS,EAAEF,aAAa,GAAG,EAAH,GAAQ7B,MAAM,CAACgC,WAAP,EAAtC,IAA6D,GAA7D,CADF;AAEE,mDAAOC,gBAAgB,CAACC,UAAjB,EAAP,CAFF;AAGE,+CAAM,SAAS,EAAEJ,YAAY,GAAG,EAAH,GAAQ9B,MAAM,CAACgC,WAAP,EAArC,IAA4D,GAA5D,CAHF,CADF;;;AAOD;AACD,0BAAO,sCAAK,SAAS,EAAEhC,MAAM,CAACmC,YAAP,CAAoB,MAAKhC,KAAzB,CAAhB,IAAkD4B,IAAlD,CAAP;AACD,K;;AAEOK,IAAAA,e,GAAkB,YAAM;AAC9B,YAAKC,QAAL,CAAc,EAAEzD,YAAY,EAAE,KAAhB,EAAuBC,WAAW,EAAE,IAApC,EAAd;AACD,K;;AAEO6C,IAAAA,uB,GAA0B,YAAM;AACtC,UAAIY,cAAJ,EAAY;AACV;AACA;AACAC,mCAAaC,UAAb,CAAwB,oBAAM,MAAKvD,SAAL,IAAkB,MAAKA,SAAL,CAAewD,KAAf,EAAxB,EAAxB,EAAwE,CAAxE;AACD;AACF,K;;AAEOC,IAAAA,a,GAAgB,UAACC,CAAD,EAAyD;AAC/E,UAAIA,CAAC,CAACC,QAAN,EAAgB;AACd;AACD;;AAED,UAAMC,MAAM,GAAGF,CAAC,CAACE,MAAjB;;AAEA,UAAMC,WAAW,GAAG,iCAAeH,CAAf,CAApB;AACA,UAAMI,YAAY,GAAG,kCAAgBJ,CAAhB,CAArB;;AAEA;AACE,sCAAaE,MAAb,EAAqBN,2BAAaS,OAAlC;AACCjF,MAAAA,iBAAiB,CAACkF,QAAlB,CAA2BJ,MAAM,CAACK,OAAP,CAAeC,WAAf,EAA3B,KAA6DN,MAAD,CAAwBO,iBADrF,CADF;AAGE;AACA;AACD;;AAED,UAAInB,gBAAgB,CAACoB,eAAjB,CAAiCV,CAAjC,KAAuCG,WAA3C,EAAwD;AACtD,cAAKT,QAAL,CAAc,EAAExD,WAAW,EAAE,IAAf,EAAd,EAAqC,MAAKyE,UAA1C;AACA;AACD;AACD,UAAIrB,gBAAgB,CAACoB,eAAjB,CAAiCV,CAAjC,KAAuCI,YAA3C,EAAyD;AACvD,cAAKV,QAAL,CAAc,EAAExD,WAAW,EAAE,IAAf,EAAd,EAAqC,MAAKsC,SAA1C;AACA;AACD;;AAED,UAAI,MAAKlC,SAAL,IAAkB,MAAKA,SAAL,KAAmB0D,CAAC,CAACE,MAA3C,EAAmD;AACjD,YAAIC,WAAJ,EAAiB;AACf,gBAAKT,QAAL,CAAc,EAAEzD,YAAY,EAAE,IAAhB,EAAd,EAAsC,MAAK2E,aAA3C;AACA;AACD;AACD,YAAIR,YAAJ,EAAkB;AAChB,gBAAKV,QAAL,CAAc,EAAEzD,YAAY,EAAE,IAAhB,EAAd,EAAsC,MAAK4E,cAA3C;AACA;AACD;AACD,YAAI,6BAAWb,CAAX,CAAJ,EAAmB;AACjB,gBAAKc,iBAAL,CAAuB,MAAKnE,cAAL,EAAvB;AACA;AACD;AACF;AACF,K;;AAEOoE,IAAAA,W,GAAc,YAAM;AAC1B,UAAI,MAAK7D,KAAL,CAAWJ,QAAf,EAAyB;AACvB;AACD;;AAED,YAAK4C,QAAL,CAAc,EAAEvD,eAAe,EAAE,IAAnB,EAAd;;AAEA;AACA;AACAyD,iCAAaoB,qBAAb,+CAAaA,qBAAb,CAAqC,YAAM;AACzC,YAAIC,yBAAYC,YAAhB,EAA8B;AAC5B,gBAAKxB,QAAL,CAAc,EAAEzD,YAAY,EAAE,IAAhB,EAAd;AACD;AACF,OAJD;AAKD,K;;AAEOkF,IAAAA,U,GAAa,YAAM;AACzB,YAAKzB,QAAL,CAAc;AACZzD,QAAAA,YAAY,EAAE,KADF;AAEZE,QAAAA,eAAe,EAAE,MAAKL,QAAL,GAAgBM,iBAAhB,IAAqC,KAF1C,EAAd;;AAID,K;;AAEOgF,IAAAA,Q,GAAW,YAAkB;AACnC,aAAO,4BAAS,MAAKlE,KAAL,CAAWC,UAApB,EAAgC,MAAKD,KAAL,CAAWmE,UAA3C,EAAuDC,MAAvD,CAA8D,SAA9D,CAAP;AACD,K;;AAEO3E,IAAAA,c,GAAiB,YAA0B;AACjD,UAAI,CAAC,MAAKX,KAAL,CAAWC,YAAhB,EAA8B;AAC5B,eAAO,IAAP;AACD;;AAED,UAAQC,WAAR,GAAwB,MAAKF,KAA7B,CAAQE,WAAR;AACA,UAAIA,WAAW,IAAI,MAAKkF,QAAL,GAAgBd,QAAhB,CAAyBpE,WAAzB,CAAf,IAAwD,MAAKqF,eAAL,CAAqBrF,WAArB,CAA5D,EAA+F;AAC7F,eAAOA,WAAP;AACD;;AAED,aAAO,MAAKgB,KAAL,CAAWC,UAAlB;AACD,K;;AAEOoE,IAAAA,e,GAAkB,UAAC/E,IAAD,EAAoB;AAC5C,aAAO,CAAC,MAAKO,cAAL,CAAoBP,IAApB,CAAR;AACD,K;;AAEOO,IAAAA,c,GAAiB,UAACP,IAAD,EAAoB;AAC3C,cAAQA,IAAR;AACE,aAAK,GAAL;AACE,iBAAO,IAAP;AACF,aAAK,SAAL;AACE,iBAAO,CAAC,MAAK2C,YAAL,EAAR;AACF;AACE,iBAAO,KAAP,CANJ;;AAQD,K;;AAEO2B,IAAAA,iB,GAAoB,UAACtE,IAAD,EAA8B;AACxD,UAAIA,IAAI,KAAK,SAAb,EAAwB;AACtB,cAAKgC,SAAL;AACD;AACD,UAAI,OAAOhC,IAAP,KAAgB,QAApB,EAA8B;AAC5B,cAAKsC,QAAL,CAActC,IAAd;AACD;AACF,K;;AAEOoE,IAAAA,a,GAAgB,YAAM;AAC5B,YAAKY,SAAL,CAAe,CAAC,CAAhB;AACD,K;;AAEOX,IAAAA,c,GAAiB,YAAM;AAC7B,YAAKW,SAAL,CAAe,CAAf;AACD,K;;AAEOA,IAAAA,S,GAAY,UAACC,IAAD,EAAkB;AACpC,UAAMvF,WAAW,GAAG,MAAKS,cAAL,EAApB;AACA,UAAM+E,KAAK,GAAG,MAAKN,QAAL,EAAd;AACA,UAAI3E,KAAK,GAAGiF,KAAK,CAACC,SAAN,CAAgB,UAACC,CAAD,UAAOA,CAAC,KAAK1F,WAAb,EAAhB,CAAZ;AACA,SAAG;AACDO,QAAAA,KAAK,GAAG,CAACA,KAAK,GAAGgF,IAAR,GAAeC,KAAK,CAACG,MAAtB,IAAgCH,KAAK,CAACG,MAA9C;AACD,OAFD,QAES,CAAC,MAAKN,eAAL,CAAqBG,KAAK,CAACjF,KAAD,CAA1B,CAFV;AAGA,YAAKiD,QAAL,CAAc,EAAExD,WAAW,EAAEwF,KAAK,CAACjF,KAAD,CAApB,EAAd;AACD,K;;AAEOyC,IAAAA,a,GAAgB,YAAe;AACrC,aAAO,MAAKhC,KAAL,CAAWC,UAAX,GAAwB,CAA/B;AACD,K;;AAEOgC,IAAAA,Y,GAAe,YAAe;AACpC,aAAO,MAAKjC,KAAL,CAAWC,UAAX,GAAwB,MAAKD,KAAL,CAAWmE,UAA1C;AACD,K;;AAEOV,IAAAA,U,GAAa,YAAM;AACzB,YAAK7B,QAAL,CAAc,MAAK5B,KAAL,CAAWC,UAAX,GAAwB,CAAtC;AACD,K;;AAEOqB,IAAAA,S,GAAY,YAAM;AACxB,YAAKM,QAAL,CAAc,MAAK5B,KAAL,CAAWC,UAAX,GAAwB,CAAtC;AACD,K;;AAEO2B,IAAAA,Q,GAAW,UAACJ,UAAD,EAAwB;AACzC,UAAIA,UAAU,IAAI,CAAd,IAAmBA,UAAU,KAAK,MAAKxB,KAAL,CAAWC,UAA7C,IAA2DuB,UAAU,IAAI,MAAKxB,KAAL,CAAWmE,UAAxF,EAAoG;AAClG,cAAKnE,KAAL,CAAW4E,YAAX,CAAwBpD,UAAxB;AACD;AACF,K;;AAEOqD,IAAAA,iB,GAAoB,YAAM;AAChC,UAAI,MAAK1F,mBAAT,EAA8B;AAC5B;AACD;;AAED,0DAAa2F,QAAb,2CAAuBC,gBAAvB,CAAwC,SAAxC,EAAmD,MAAKlC,aAAxD;AACA,YAAK1D,mBAAL,GAA2B,IAA3B;AACD,K;;AAEO6F,IAAAA,oB,GAAuB,YAAM;AACnC,UAAI,MAAK7F,mBAAT,EAA8B;AAC5B,6DAAa2F,QAAb,4CAAuBG,mBAAvB,CAA2C,SAA3C,EAAsD,MAAKpC,aAA3D;;AAEA,cAAK1D,mBAAL,GAA2B,KAA3B;AACD;AACF,K;;AAEO+F,IAAAA,Y,GAAe,UAACC,OAAD,EAAqC;AAC1D,YAAK/F,SAAL,GAAiB+F,OAAjB;AACD,K,sBAjZaC,S,GAAd,mBAAwB5D,UAAxB,EAAiE,aAAc,CAC7E,OAAOA,UAAU,KAAK,SAAtB,CACD,C,sCAcM6D,iB,GAAP,6BAA2B,CACzB,IAAMnG,iBAAiB,GAAG,KAAKN,QAAL,GAAgBM,iBAA1C,CACA,IAAIA,iBAAJ,EAAuB,CACrB,KAAK2F,iBAAL,GACD,CACF,C,QAEMS,kB,GAAP,4BAA0BC,SAA1B,EAAkD,CAChD,IAAMrG,iBAAiB,GAAG,KAAKN,QAAL,GAAgBM,iBAA1C,CACA,IAAI,CAACqG,SAAS,CAACrG,iBAAX,IAAgCA,iBAApC,EAAuD,CACrD,KAAK2F,iBAAL,GACD,CAED,IAAIU,SAAS,CAACrG,iBAAV,IAA+B,CAACA,iBAApC,EAAuD,CACrD,KAAK8F,oBAAL,GACD,CAED,IAAIO,SAAS,CAACrG,iBAAV,KAAgCA,iBAApC,EAAuD,CACrD,KAAKsD,QAAL,CAAc,EACZvD,eAAe,EAAEC,iBADL,EAAd,EAGD,CACF,C,QAEMsG,oB,GAAP,gCAA8B,CAC5B,KAAKR,oBAAL,GACD,C,QAEMS,M,GAAP,kBAAgB,mBACd,IAAI,KAAKzF,KAAL,CAAWmE,UAAX,GAAwB,CAAxB,IAA6B,CAAC,KAAKvF,QAAL,GAAgB8G,mCAAlD,EAAuF,CACrF,OAAO,IAAP,CACD,CAED,oBACE,6BAAC,wBAAD,QACG,UAACtF,OAAD,EAAa,CACZ,MAAI,CAACA,OAAL,GAAeA,OAAf,CACA,oBACE,6BAAC,2BAAD,QACG,UAACE,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACqF,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CAXH,CADF,CAeD,C,QAEOA,U,GAAR,sBAAqB,uBACnB,qBAAmD,KAAK/G,QAAL,EAAnD,CAAoBgH,OAApB,kBAAQ,UAAR,EAA6B1G,iBAA7B,kBAA6BA,iBAA7B,CACA,IAAMiB,MAAM,GAAG,uBAAU,KAAKC,OAAf,CAAf,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKyF,WAAjC,IAAkD,KAAK7F,KAAvD,gBACE,uCACE,QAAQ,EAAE,KAAKA,KAAL,CAAWJ,QAAX,GAAsB,CAAC,CAAvB,GAA2B,CADvC,EAEE,YAAUgG,OAFZ,EAGE,SAAS,EAAE,KAAKxF,OAAL,CAAaC,EAAb,4CACRF,MAAM,CAAC2F,MAAP,CAAc,KAAKxF,KAAnB,CADQ,IACoB,IADpB,oBAERH,MAAM,CAAC4F,cAAP,EAFQ,IAEkB,KAAK/F,KAAL,CAAWJ,QAF7B,qBAHb,EAOE,SAAS,EAAEV,iBAAiB,GAAG8G,SAAH,GAAe,KAAKnD,aAPlD,EAQE,OAAO,EAAE,KAAKgB,WARhB,EASE,MAAM,EAAE,KAAKI,UATf,EAUE,WAAW,EAAE,KAAK1B,eAVpB,EAWE,GAAG,EAAE,KAAK2C,YAXZ,IAaG,KAAKhB,QAAL,GAAgB+B,GAAhB,CAAoB,KAAK5G,UAAzB,CAbH,CADF,CADF,CAmBD,C,iBAxGyB6G,eAAMC,a,WAClBC,mB,GAAsB,Q,UACtBC,W,GAAc,Q,UAEdxH,Y,GAA6B,EACzCiC,SAAS,EAAEwF,8CAD8B,EAEzCZ,mCAAmC,EAAE,IAFI,EAGzCxG,iBAAiB,EAAE,KAHsB,EAIzC,YAAYf,cAAc,CAACC,IAJc,E,UAS7BmI,S,GAAY,E;;;AAuZ5B9H,MAAM,CAAC8H,SAAP,GAAmB;AACjB;AACF;AACA;AACEtG,EAAAA,UAAU,EAAEuG,kBAAOC,UAJF;;AAMjB;AACF;AACA;AACA;AACA;AACE3F,EAAAA,SAAS,EAAE4F,eAXM;;AAajB;AACF;AACA;AACEvC,EAAAA,UAAU,EAAEqC,kBAAOC,UAhBF;;AAkBjB;AACF;AACA;AACE7B,EAAAA,YAAY,EAAE8B,gBAAKD,UArBF,EAAnB","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\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 { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/getVisualStateDataAttributes';\nimport { ThemeConsumer } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport { getStyles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon } from './ForwardIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component?: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener?: boolean;\n /**\n * Определяет, нужно ли показывать `Paging` когда страница всего одна.\n *\n * Этот проп будет удалён в 5-ой версии библиотеки,\n * так как поведение со скрытием `Paging`'а станет поведением по умолчанию.\n *\n * @default false\n */\n shouldBeVisibleWithLessThanTwoPages?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<\n Pick<PagingProps, 'component' | 'shouldBeVisibleWithLessThanTwoPages' | 'useGlobalListener' | 'data-tid'>\n>;\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': PagingDataTids.root,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\n\n public static propTypes = {};\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean /* %checks */ {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.getProps().useGlobalListener,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.getProps().shouldBeVisibleWithLessThanTwoPages) {\n return null;\n }\n\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const { 'data-tid': dataTid, useGlobalListener } = this.getProps();\n const styles = getStyles(this.emotion);\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={dataTid}\n className={this.emotion.cx({\n [styles.paging(this.theme)]: true,\n [styles.pagingDisabled()]: this.props.disabled,\n })}\n onKeyDown={useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map(this.renderItem)}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n const styles = getStyles(this.emotion);\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={this.emotion.cx({\n [styles.dots(this.theme)]: true,\n [styles.dotsDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const styles = getStyles(this.emotion);\n const classes = isTheme2022(this.theme)\n ? this.emotion.cx(\n styles.pageLink(this.theme),\n styles.forwardLink(this.theme),\n focused && styles.pageLinkFocused(this.theme),\n (disabled || this.props.disabled) && styles.pageLinkDisabled(this.theme),\n )\n : this.emotion.cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n });\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = isTheme2022(this.theme) ? (\n <ForwardIcon size={parseInt(this.theme.pagingForwardIconSize)} style={{ marginLeft: 4 }} />\n ) : (\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n );\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {this.props.caption || forward}\n {forwardIcon}\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const styles = getStyles(this.emotion);\n const disabled = this.props.disabled;\n const classes = this.emotion.cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.pageLinkDisabled(this.theme)]: disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n {...getVisualStateDataAttributes({ active, disabled })}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classes}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n let hint = null;\n const styles = getStyles(this.emotion);\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={styles.pageLinkHint(this.theme)}>{hint}</div>;\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 globalObject.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 isInstanceOf(target, globalObject.Element) &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.getProps().useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n globalObject.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":["IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","PagingLocaleHelper","rootNode","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","styles","emotion","cx","theme","dotsDisabled","classes","pageLinkFocused","pageLinkDisabled","forwardLinkFocused","forwardLinkDisabled","Component","component","forward","locale","forwardIcon","parseInt","pagingForwardIconSize","marginLeft","emptyHandler","goForward","caption","pageNumber","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","transparent","NavigationHelper","getKeyName","pageLinkHint","handleMouseDown","setState","isIE11","globalObject","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","shouldBeVisibleWithLessThanTwoPages","renderMain","dataTid","setRootNode","paging","pagingDisabled","undefined","map","React","PureComponent","__KONTUR_REACT_UI__","displayName","PagingDefaultComponent","propTypes","number","isRequired","func"],"mappings":"ocAAA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4C;;AAEA,IAAMA,iBAAiB,GAAG,CAAC,OAAD,EAAU,UAAV,CAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDO,IAAMC,cAAc,GAAG;AAC5BC,EAAAA,IAAI,EAAE,cADsB;AAE5BC,EAAAA,IAAI,EAAE,cAFsB;AAG5BC,EAAAA,WAAW,EAAE,qBAHe;AAI5BC,EAAAA,eAAe,EAAE,yBAJW;AAK5BC,EAAAA,QAAQ,EAAE,kBALkB,EAAvB,C;;;;;;;;;AAcMC,M,WADZ,wBAAO,QAAP,EAAiBC,0BAAjB,C,MADAC,kB;;;;;;;;;;;AAaSC,IAAAA,Q,GAAW,0CAAkBH,MAAM,CAACI,YAAzB,C;;;;;;;;;AASZC,IAAAA,K,GAAqB;AAC1BC,MAAAA,YAAY,EAAE,KADY;AAE1BC,MAAAA,WAAW,EAAE,IAFa;AAG1BC,MAAAA,eAAe,EAAE,MAAKL,QAAL,GAAgBM,iBAHP,E;;;;;;AASpBC,IAAAA,mB,GAAsB,K;AACtBC,IAAAA,S,GAAoC,I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFpCC,IAAAA,U,GAAa,UAACC,IAAD,EAAiBC,KAAjB,EAAmC;AACtD,UAAMC,OAAO,GAAG,MAAKC,cAAL,OAA0BH,IAA1C;AACA,cAAQA,IAAR;AACE,aAAK,GAAL,CAAU;AACR,gBAAMI,GAAG,aAAUH,KAAK,GAAG,CAAR,GAAY,MAAZ,GAAqB,OAA/B,CAAT;AACA,mBAAO,MAAKI,UAAL,CAAgBD,GAAhB,CAAP;AACD;AACD,aAAK,SAAL,CAAgB;AACd,gBAAME,QAAQ,GAAG,MAAKC,cAAL,CAAoBP,IAApB,CAAjB;AACA,mBAAO,MAAKQ,iBAAL,CAAuBF,QAAvB,EAAiCJ,OAAjC,CAAP;AACD;AACD,gBAAS;AACP,gBAAMO,MAAM,GAAG,MAAKC,KAAL,CAAWC,UAAX,KAA0BX,IAAzC;AACA,mBAAO,MAAKY,cAAL,CAAoBZ,IAApB,EAA0BS,MAA1B,EAAkCP,OAAlC,CAAP;AACD,WAZH;;AAcD,K;;AAEOG,IAAAA,U,GAAa,UAACD,GAAD,EAAiB;AACpC,UAAMS,MAAM,GAAG,uBAAU,MAAKC,OAAf,CAAf;AACA;AACE;AACE,sBAAUjC,cAAc,CAACE,IAD3B;AAEE,UAAA,GAAG,EAAEqB,GAFP;AAGE,UAAA,SAAS,EAAE,MAAKU,OAAL,CAAaC,EAAb;AACRF,UAAAA,MAAM,CAAC9B,IAAP,CAAY,MAAKiC,KAAjB,CADQ,IACkB,IADlB;AAERH,UAAAA,MAAM,CAACI,YAAP,CAAoB,MAAKD,KAAzB,CAFQ,IAE0B,MAAKN,KAAL,CAAWJ,QAFrC,oBAHb;;;AAQG,aARH,CADF;;;AAYD,K;;AAEOE,IAAAA,iB,GAAoB,UAACF,QAAD,EAAoBJ,OAApB,EAAsD;AAChF,UAAMW,MAAM,GAAG,uBAAU,MAAKC,OAAf,CAAf;AACA,UAAMI,OAAO,GAAG,+BAAY,MAAKF,KAAjB;AACZ,YAAKF,OAAL,CAAaC,EAAb;AACEF,MAAAA,MAAM,CAAC3B,QAAP,CAAgB,MAAK8B,KAArB,CADF;AAEEH,MAAAA,MAAM,CAAC7B,WAAP,CAAmB,MAAKgC,KAAxB,CAFF;AAGEd,MAAAA,OAAO,IAAIW,MAAM,CAACM,eAAP,CAAuB,MAAKH,KAA5B,CAHb;AAIE,OAACV,QAAQ,IAAI,MAAKI,KAAL,CAAWJ,QAAxB,KAAqCO,MAAM,CAACO,gBAAP,CAAwB,MAAKJ,KAA7B,CAJvC,CADY;;AAOZ,YAAKF,OAAL,CAAaC,EAAb;AACGF,MAAAA,MAAM,CAAC7B,WAAP,CAAmB,MAAKgC,KAAxB,CADH,IACoC,IADpC;AAEGH,MAAAA,MAAM,CAACQ,kBAAP,EAFH,IAEiCnB,OAFjC;AAGGW,MAAAA,MAAM,CAACS,mBAAP,CAA2B,MAAKN,KAAhC,CAHH,IAG4CV,QAAQ,IAAI,MAAKI,KAAL,CAAWJ,QAHnE,qBAPJ;;AAYA,UAAMiB,SAAS,GAAG,MAAKjC,QAAL,GAAgBkC,SAAlC;AACA,UAAQC,OAAR,GAAoB,MAAKC,MAAzB,CAAQD,OAAR;;AAEA,UAAME,WAAW,GAAG,+BAAY,MAAKX,KAAjB;AAClB,mCAAC,wBAAD,IAAa,IAAI,EAAEY,QAAQ,CAAC,MAAKZ,KAAL,CAAWa,qBAAZ,CAA3B,EAA+D,KAAK,EAAE,EAAEC,UAAU,EAAE,CAAd,EAAtE,GADkB;;AAGlB,6CAAM,SAAS,EAAEjB,MAAM,CAACc,WAAP,CAAmB,MAAKX,KAAxB,CAAjB;AACE,mCAAC,yBAAD,IAAuB,IAAI,EAAE,MAAKA,KAAL,CAAWa,qBAAxC,GADF,CAHF;;;;AAQA;AACE,qCAAC,SAAD;AACE,UAAA,GAAG,EAAE,SADP;AAEE,sBAAUhD,cAAc,CAACG,WAF3B;AAGE,UAAA,MAAM,EAAE,KAHV;AAIE,UAAA,SAAS,EAAEkC,OAJb;AAKE,UAAA,OAAO,EAAEZ,QAAQ,GAAGyB,mBAAH,GAAkB,MAAKC,SAL1C;AAME,UAAA,QAAQ,EAAE,CAAC,CANb;AAOE,UAAA,UAAU,EAAE,SAPd;AAQM,wEAA6B,EAAE1B,QAAQ,EAARA,QAAF,EAA7B,CARN;;AAUG,cAAKI,KAAL,CAAWuB,OAAX,IAAsBR,OAVzB;AAWGE,QAAAA,WAXH,CADF;;;AAeD,K;;AAEOf,IAAAA,c,GAAiB,UAACsB,UAAD,EAAqBzB,MAArB,EAAsCP,OAAtC,EAAwE;AAC/F,UAAMW,MAAM,GAAG,uBAAU,MAAKC,OAAf,CAAf;AACA,UAAMR,QAAQ,GAAG,MAAKI,KAAL,CAAWJ,QAA5B;AACA,UAAMY,OAAO,GAAG,MAAKJ,OAAL,CAAaC,EAAb;AACbF,MAAAA,MAAM,CAAC3B,QAAP,CAAgB,MAAK8B,KAArB,CADa,IACiB,IADjB;AAEbH,MAAAA,MAAM,CAACM,eAAP,CAAuB,MAAKH,KAA5B,CAFa,IAEwBd,OAFxB;AAGbW,MAAAA,MAAM,CAACO,gBAAP,CAAwB,MAAKJ,KAA7B,CAHa,IAGyBV,QAHzB;AAIbO,MAAAA,MAAM,CAACsB,eAAP,CAAuB,MAAKnB,KAA5B,CAJa,IAIwBP,MAJxB;AAKbI,MAAAA,MAAM,CAACuB,uBAAP,CAA+B,MAAKpB,KAApC,CALa,IAKgCP,MAAM,IAAIH,QAL1C,qBAAhB;;AAOA,UAAMiB,SAAS,GAAG,MAAKjC,QAAL,GAAgBkC,SAAlC;AACA,UAAMa,WAAW,GAAG,SAAdA,WAAc,WAAM,MAAKC,QAAL,CAAcJ,UAAd,CAAN,EAApB;;AAEA;AACE;AACE,sBAAUrD,cAAc,CAACI,eAD3B;AAEE,UAAA,GAAG,EAAEiD,UAFP;AAGE,UAAA,SAAS,EAAErB,MAAM,CAAC5B,eAAP,EAHb;AAIM,wEAA6B,EAAEwB,MAAM,EAANA,MAAF,EAAUH,QAAQ,EAARA,QAAV,EAA7B,CAJN;AAKE,UAAA,WAAW,EAAE,MAAKiC,uBALpB;;AAOE,qCAAC,SAAD;AACE,sBAAU1D,cAAc,CAACK,QAD3B;AAEE,UAAA,MAAM,EAAEuB,MAFV;AAGE,UAAA,SAAS,EAAES,OAHb;AAIE,UAAA,OAAO,EAAEmB,WAJX;AAKE,UAAA,QAAQ,EAAE,CAAC,CALb;AAME,UAAA,UAAU,EAAEH,UANd;;AAQGA,QAAAA,UARH,CAPF;;AAiBGzB,QAAAA,MAAM,IAAI,MAAK+B,oBAAL,EAjBb,CADF;;;AAqBD,K;;AAEOA,IAAAA,oB,GAAuB,YAAM;AACnC,UAAI,MAAK9B,KAAL,CAAW+B,qBAAf,EAAsC;AACpC,eAAO,IAAP;AACD;;AAED,UAAQ9C,eAAR,GAA4B,MAAKH,KAAjC,CAAQG,eAAR;AACA,UAAM+C,aAAa,GAAG,MAAKA,aAAL,EAAtB;AACA,UAAMC,YAAY,GAAG,MAAKA,YAAL,EAArB;;AAEA,UAAIC,IAAI,GAAG,IAAX;AACA,UAAM/B,MAAM,GAAG,uBAAU,MAAKC,OAAf,CAAf;AACA,UAAInB,eAAe,KAAK+C,aAAa,IAAIC,YAAtB,CAAnB,EAAwD;AACtDC,QAAAA,IAAI;AACF;AACE,+CAAM,SAAS,EAAEF,aAAa,GAAG,EAAH,GAAQ7B,MAAM,CAACgC,WAAP,EAAtC,IAA6D,GAA7D,CADF;AAEE,mDAAOC,gBAAgB,CAACC,UAAjB,EAAP,CAFF;AAGE,+CAAM,SAAS,EAAEJ,YAAY,GAAG,EAAH,GAAQ9B,MAAM,CAACgC,WAAP,EAArC,IAA4D,GAA5D,CAHF,CADF;;;AAOD;AACD,0BAAO,sCAAK,SAAS,EAAEhC,MAAM,CAACmC,YAAP,CAAoB,MAAKhC,KAAzB,CAAhB,IAAkD4B,IAAlD,CAAP;AACD,K;;AAEOK,IAAAA,e,GAAkB,YAAM;AAC9B,YAAKC,QAAL,CAAc,EAAEzD,YAAY,EAAE,KAAhB,EAAuBC,WAAW,EAAE,IAApC,EAAd;AACD,K;;AAEO6C,IAAAA,uB,GAA0B,YAAM;AACtC,UAAIY,cAAJ,EAAY;AACV;AACA;AACAC,mCAAaC,UAAb,CAAwB,oBAAM,MAAKvD,SAAL,IAAkB,MAAKA,SAAL,CAAewD,KAAf,EAAxB,EAAxB,EAAwE,CAAxE;AACD;AACF,K;;AAEOC,IAAAA,a,GAAgB,UAACC,CAAD,EAAyD;AAC/E,UAAIA,CAAC,CAACC,QAAN,EAAgB;AACd;AACD;;AAED,UAAMC,MAAM,GAAGF,CAAC,CAACE,MAAjB;;AAEA,UAAMC,WAAW,GAAG,iCAAeH,CAAf,CAApB;AACA,UAAMI,YAAY,GAAG,kCAAgBJ,CAAhB,CAArB;;AAEA;AACE,sCAAaE,MAAb,EAAqBN,2BAAaS,OAAlC;AACCjF,MAAAA,iBAAiB,CAACkF,QAAlB,CAA2BJ,MAAM,CAACK,OAAP,CAAeC,WAAf,EAA3B,KAA6DN,MAAD,CAAwBO,iBADrF,CADF;AAGE;AACA;AACD;;AAED,UAAInB,gBAAgB,CAACoB,eAAjB,CAAiCV,CAAjC,KAAuCG,WAA3C,EAAwD;AACtD,cAAKT,QAAL,CAAc,EAAExD,WAAW,EAAE,IAAf,EAAd,EAAqC,MAAKyE,UAA1C;AACA;AACD;AACD,UAAIrB,gBAAgB,CAACoB,eAAjB,CAAiCV,CAAjC,KAAuCI,YAA3C,EAAyD;AACvD,cAAKV,QAAL,CAAc,EAAExD,WAAW,EAAE,IAAf,EAAd,EAAqC,MAAKsC,SAA1C;AACA;AACD;;AAED,UAAI,MAAKlC,SAAL,IAAkB,MAAKA,SAAL,KAAmB0D,CAAC,CAACE,MAA3C,EAAmD;AACjD,YAAIC,WAAJ,EAAiB;AACf,gBAAKT,QAAL,CAAc,EAAEzD,YAAY,EAAE,IAAhB,EAAd,EAAsC,MAAK2E,aAA3C;AACA;AACD;AACD,YAAIR,YAAJ,EAAkB;AAChB,gBAAKV,QAAL,CAAc,EAAEzD,YAAY,EAAE,IAAhB,EAAd,EAAsC,MAAK4E,cAA3C;AACA;AACD;AACD,YAAI,6BAAWb,CAAX,CAAJ,EAAmB;AACjB,gBAAKc,iBAAL,CAAuB,MAAKnE,cAAL,EAAvB;AACA;AACD;AACF;AACF,K;;AAEOoE,IAAAA,W,GAAc,YAAM;AAC1B,UAAI,MAAK7D,KAAL,CAAWJ,QAAf,EAAyB;AACvB;AACD;;AAED,YAAK4C,QAAL,CAAc,EAAEvD,eAAe,EAAE,IAAnB,EAAd;;AAEA;AACA;AACAyD,iCAAaoB,qBAAb,+CAAaA,qBAAb,CAAqC,YAAM;AACzC,YAAIC,yBAAYC,YAAhB,EAA8B;AAC5B,gBAAKxB,QAAL,CAAc,EAAEzD,YAAY,EAAE,IAAhB,EAAd;AACD;AACF,OAJD;AAKD,K;;AAEOkF,IAAAA,U,GAAa,YAAM;AACzB,YAAKzB,QAAL,CAAc;AACZzD,QAAAA,YAAY,EAAE,KADF;AAEZE,QAAAA,eAAe,EAAE,MAAKL,QAAL,GAAgBM,iBAAhB,IAAqC,KAF1C,EAAd;;AAID,K;;AAEOgF,IAAAA,Q,GAAW,YAAkB;AACnC,aAAO,4BAAS,MAAKlE,KAAL,CAAWC,UAApB,EAAgC,MAAKD,KAAL,CAAWmE,UAA3C,EAAuDC,MAAvD,CAA8D,SAA9D,CAAP;AACD,K;;AAEO3E,IAAAA,c,GAAiB,YAA0B;AACjD,UAAI,CAAC,MAAKX,KAAL,CAAWC,YAAhB,EAA8B;AAC5B,eAAO,IAAP;AACD;;AAED,UAAQC,WAAR,GAAwB,MAAKF,KAA7B,CAAQE,WAAR;AACA,UAAIA,WAAW,IAAI,MAAKkF,QAAL,GAAgBd,QAAhB,CAAyBpE,WAAzB,CAAf,IAAwD,MAAKqF,eAAL,CAAqBrF,WAArB,CAA5D,EAA+F;AAC7F,eAAOA,WAAP;AACD;;AAED,aAAO,MAAKgB,KAAL,CAAWC,UAAlB;AACD,K;;AAEOoE,IAAAA,e,GAAkB,UAAC/E,IAAD,EAAoB;AAC5C,aAAO,CAAC,MAAKO,cAAL,CAAoBP,IAApB,CAAR;AACD,K;;AAEOO,IAAAA,c,GAAiB,UAACP,IAAD,EAAoB;AAC3C,cAAQA,IAAR;AACE,aAAK,GAAL;AACE,iBAAO,IAAP;AACF,aAAK,SAAL;AACE,iBAAO,CAAC,MAAK2C,YAAL,EAAR;AACF;AACE,iBAAO,KAAP,CANJ;;AAQD,K;;AAEO2B,IAAAA,iB,GAAoB,UAACtE,IAAD,EAA8B;AACxD,UAAIA,IAAI,KAAK,SAAb,EAAwB;AACtB,cAAKgC,SAAL;AACD;AACD,UAAI,OAAOhC,IAAP,KAAgB,QAApB,EAA8B;AAC5B,cAAKsC,QAAL,CAActC,IAAd;AACD;AACF,K;;AAEOoE,IAAAA,a,GAAgB,YAAM;AAC5B,YAAKY,SAAL,CAAe,CAAC,CAAhB;AACD,K;;AAEOX,IAAAA,c,GAAiB,YAAM;AAC7B,YAAKW,SAAL,CAAe,CAAf;AACD,K;;AAEOA,IAAAA,S,GAAY,UAACC,IAAD,EAAkB;AACpC,UAAMvF,WAAW,GAAG,MAAKS,cAAL,EAApB;AACA,UAAM+E,KAAK,GAAG,MAAKN,QAAL,EAAd;AACA,UAAI3E,KAAK,GAAGiF,KAAK,CAACC,SAAN,CAAgB,UAACC,CAAD,UAAOA,CAAC,KAAK1F,WAAb,EAAhB,CAAZ;AACA,SAAG;AACDO,QAAAA,KAAK,GAAG,CAACA,KAAK,GAAGgF,IAAR,GAAeC,KAAK,CAACG,MAAtB,IAAgCH,KAAK,CAACG,MAA9C;AACD,OAFD,QAES,CAAC,MAAKN,eAAL,CAAqBG,KAAK,CAACjF,KAAD,CAA1B,CAFV;AAGA,YAAKiD,QAAL,CAAc,EAAExD,WAAW,EAAEwF,KAAK,CAACjF,KAAD,CAApB,EAAd;AACD,K;;AAEOyC,IAAAA,a,GAAgB,YAAe;AACrC,aAAO,MAAKhC,KAAL,CAAWC,UAAX,GAAwB,CAA/B;AACD,K;;AAEOgC,IAAAA,Y,GAAe,YAAe;AACpC,aAAO,MAAKjC,KAAL,CAAWC,UAAX,GAAwB,MAAKD,KAAL,CAAWmE,UAA1C;AACD,K;;AAEOV,IAAAA,U,GAAa,YAAM;AACzB,YAAK7B,QAAL,CAAc,MAAK5B,KAAL,CAAWC,UAAX,GAAwB,CAAtC;AACD,K;;AAEOqB,IAAAA,S,GAAY,YAAM;AACxB,YAAKM,QAAL,CAAc,MAAK5B,KAAL,CAAWC,UAAX,GAAwB,CAAtC;AACD,K;;AAEO2B,IAAAA,Q,GAAW,UAACJ,UAAD,EAAwB;AACzC,UAAIA,UAAU,IAAI,CAAd,IAAmBA,UAAU,KAAK,MAAKxB,KAAL,CAAWC,UAA7C,IAA2DuB,UAAU,IAAI,MAAKxB,KAAL,CAAWmE,UAAxF,EAAoG;AAClG,cAAKnE,KAAL,CAAW4E,YAAX,CAAwBpD,UAAxB;AACD;AACF,K;;AAEOqD,IAAAA,iB,GAAoB,YAAM;AAChC,UAAI,MAAK1F,mBAAT,EAA8B;AAC5B;AACD;;AAED,0DAAa2F,QAAb,2CAAuBC,gBAAvB,CAAwC,SAAxC,EAAmD,MAAKlC,aAAxD;AACA,YAAK1D,mBAAL,GAA2B,IAA3B;AACD,K;;AAEO6F,IAAAA,oB,GAAuB,YAAM;AACnC,UAAI,MAAK7F,mBAAT,EAA8B;AAC5B,6DAAa2F,QAAb,4CAAuBG,mBAAvB,CAA2C,SAA3C,EAAsD,MAAKpC,aAA3D;;AAEA,cAAK1D,mBAAL,GAA2B,KAA3B;AACD;AACF,K;;AAEO+F,IAAAA,Y,GAAe,UAACC,OAAD,EAAqC;AAC1D,YAAK/F,SAAL,GAAiB+F,OAAjB;AACD,K,sBAtZaC,S,GAAd,mBAAwB5D,UAAxB,EAAiE,aAAc,CAC7E,OAAOA,UAAU,KAAK,SAAtB,CACD,C,sCAcM6D,iB,GAAP,6BAA2B,CACzB,IAAMnG,iBAAiB,GAAG,KAAKN,QAAL,GAAgBM,iBAA1C,CACA,IAAIA,iBAAJ,EAAuB,CACrB,KAAK2F,iBAAL,GACD,CACF,C,QAEMS,kB,GAAP,4BAA0BC,SAA1B,EAAkD,CAChD,IAAMrG,iBAAiB,GAAG,KAAKN,QAAL,GAAgBM,iBAA1C,CACA,IAAI,CAACqG,SAAS,CAACrG,iBAAX,IAAgCA,iBAApC,EAAuD,CACrD,KAAK2F,iBAAL,GACD,CAED,IAAIU,SAAS,CAACrG,iBAAV,IAA+B,CAACA,iBAApC,EAAuD,CACrD,KAAK8F,oBAAL,GACD,CAED,IAAIO,SAAS,CAACrG,iBAAV,KAAgCA,iBAApC,EAAuD,CACrD,KAAKsD,QAAL,CAAc,EACZvD,eAAe,EAAEC,iBADL,EAAd,EAGD,CACF,C,QAEMsG,oB,GAAP,gCAA8B,CAC5B,KAAKR,oBAAL,GACD,C,QAEMS,M,GAAP,kBAAgB,mBACd,IAAI,KAAKzF,KAAL,CAAWmE,UAAX,GAAwB,CAAxB,IAA6B,CAAC,KAAKvF,QAAL,GAAgB8G,mCAAlD,EAAuF,CACrF,OAAO,IAAP,CACD,CAED,oBACE,6BAAC,wBAAD,QACG,UAACtF,OAAD,EAAa,CACZ,MAAI,CAACA,OAAL,GAAeA,OAAf,CACA,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACE,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACqF,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CAXH,CADF,CAeD,C,QAEOA,U,GAAR,sBAAqB,uBACnB,qBAAmD,KAAK/G,QAAL,EAAnD,CAAoBgH,OAApB,kBAAQ,UAAR,EAA6B1G,iBAA7B,kBAA6BA,iBAA7B,CACA,IAAMiB,MAAM,GAAG,uBAAU,KAAKC,OAAf,CAAf,CACA,oBACE,6BAAC,4BAAD,2BACE,WAAW,EAAE,KAAKyF,WADpB,IAEM,KAAK7F,KAFX,EAGM,gEAA6B,EAAEJ,QAAQ,EAAE,KAAKI,KAAL,CAAWJ,QAAvB,EAA7B,CAHN,gBAKE,uCACE,QAAQ,EAAE,KAAKI,KAAL,CAAWJ,QAAX,GAAsB,CAAC,CAAvB,GAA2B,CADvC,EAEE,YAAUgG,OAFZ,EAGE,SAAS,EAAE,KAAKxF,OAAL,CAAaC,EAAb,4CACRF,MAAM,CAAC2F,MAAP,CAAc,KAAKxF,KAAnB,CADQ,IACoB,IADpB,oBAERH,MAAM,CAAC4F,cAAP,EAFQ,IAEkB,KAAK/F,KAAL,CAAWJ,QAF7B,qBAHb,EAOE,SAAS,EAAEV,iBAAiB,GAAG8G,SAAH,GAAe,KAAKnD,aAPlD,EAQE,OAAO,EAAE,KAAKgB,WARhB,EASE,MAAM,EAAE,KAAKI,UATf,EAUE,WAAW,EAAE,KAAK1B,eAVpB,EAWE,GAAG,EAAE,KAAK2C,YAXZ,IAaG,KAAKhB,QAAL,GAAgB+B,GAAhB,CAAoB,KAAK5G,UAAzB,CAbH,CALF,CADF,CAuBD,C,iBA5GyB6G,eAAMC,a,WAClBC,mB,GAAsB,Q,UACtBC,W,GAAc,Q,UAEdxH,Y,GAA6B,EACzCiC,SAAS,EAAEwF,8CAD8B,EAEzCZ,mCAAmC,EAAE,IAFI,EAGzCxG,iBAAiB,EAAE,KAHsB,EAIzC,YAAYf,cAAc,CAACC,IAJc,E,UAS7BmI,S,GAAY,E;;;AA4Z5B9H,MAAM,CAAC8H,SAAP,GAAmB;AACjB;AACF;AACA;AACEtG,EAAAA,UAAU,EAAEuG,kBAAOC,UAJF;;AAMjB;AACF;AACA;AACA;AACA;AACE3F,EAAAA,SAAS,EAAE4F,eAXM;;AAajB;AACF;AACA;AACEvC,EAAAA,UAAU,EAAEqC,kBAAOC,UAhBF;;AAkBjB;AACF;AACA;AACE7B,EAAAA,YAAY,EAAE8B,gBAAKD,UArBF,EAAnB","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\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 { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport { getStyles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon } from './ForwardIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component?: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener?: boolean;\n /**\n * Определяет, нужно ли показывать `Paging` когда страница всего одна.\n *\n * Этот проп будет удалён в 5-ой версии библиотеки,\n * так как поведение со скрытием `Paging`'а станет поведением по умолчанию.\n *\n * @default false\n */\n shouldBeVisibleWithLessThanTwoPages?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<\n Pick<PagingProps, 'component' | 'shouldBeVisibleWithLessThanTwoPages' | 'useGlobalListener' | 'data-tid'>\n>;\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n shouldBeVisibleWithLessThanTwoPages: true,\n useGlobalListener: false,\n 'data-tid': PagingDataTids.root,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\n\n public static propTypes = {};\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean /* %checks */ {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.getProps().useGlobalListener,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2 && !this.getProps().shouldBeVisibleWithLessThanTwoPages) {\n return null;\n }\n\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const { 'data-tid': dataTid, useGlobalListener } = this.getProps();\n const styles = getStyles(this.emotion);\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...this.props}\n {...getVisualStateDataAttributes({ disabled: this.props.disabled })}\n >\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={dataTid}\n className={this.emotion.cx({\n [styles.paging(this.theme)]: true,\n [styles.pagingDisabled()]: this.props.disabled,\n })}\n onKeyDown={useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map(this.renderItem)}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n const styles = getStyles(this.emotion);\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={this.emotion.cx({\n [styles.dots(this.theme)]: true,\n [styles.dotsDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const styles = getStyles(this.emotion);\n const classes = isTheme2022(this.theme)\n ? this.emotion.cx(\n styles.pageLink(this.theme),\n styles.forwardLink(this.theme),\n focused && styles.pageLinkFocused(this.theme),\n (disabled || this.props.disabled) && styles.pageLinkDisabled(this.theme),\n )\n : this.emotion.cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n });\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = isTheme2022(this.theme) ? (\n <ForwardIcon size={parseInt(this.theme.pagingForwardIconSize)} style={{ marginLeft: 4 }} />\n ) : (\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n );\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {this.props.caption || forward}\n {forwardIcon}\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const styles = getStyles(this.emotion);\n const disabled = this.props.disabled;\n const classes = this.emotion.cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.pageLinkDisabled(this.theme)]: disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n {...getVisualStateDataAttributes({ active, disabled })}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classes}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n let hint = null;\n const styles = getStyles(this.emotion);\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={styles.pageLinkHint(this.theme)}>{hint}</div>;\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 globalObject.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 isInstanceOf(target, globalObject.Element) &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.getProps().useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n globalObject.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"]}
|
|
@@ -256,7 +256,7 @@ PasswordInput = (_dec = (0, _decorators.locale)('PasswordInput', _locale.Passwor
|
|
|
256
256
|
};return _this;}var _proto = PasswordInput.prototype;_proto.componentDidMount = function componentDidMount() {if (this.props.detectCapsLock) {this.setState({ capsLockEnabled: null });} // @ts-expect-error: IE-specific API.
|
|
257
257
|
if (_client.isIE11 && (0, _globalObject.isBrowser)(_globalObject.globalObject) && !_globalObject.globalObject.document.msCapsLockWarningOff) {// @ts-expect-error: Read the comment above.
|
|
258
258
|
// turns off default ie capslock warning
|
|
259
|
-
_globalObject.globalObject.document.msCapsLockWarningOff = true;}};PasswordInput.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {if (props.disabled) {return { visible: false };}return state;};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.
|
|
259
|
+
_globalObject.globalObject.document.msCapsLockWarningOff = true;}};PasswordInput.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {if (props.disabled) {return { visible: false };}return state;};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain);});});} /**
|
|
260
260
|
* @public
|
|
261
261
|
*/;_proto.getEyeWrapperClassname = function getEyeWrapperClassname() {var styles = (0, _PasswordInput.getStyles)(this.emotion);switch (this.getProps().size) {case 'large':return styles.eyeWrapperLarge(this.theme);case 'medium':return styles.eyeWrapperMedium(this.theme);case 'small':default:return styles.eyeWrapperSmall(this.theme);}};return PasswordInput;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'PasswordInput', _class2.displayName = 'PasswordInput', _class2.propTypes = { /**
|
|
262
262
|
* Включает CapsLock детектор
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PasswordInput.tsx"],"names":["PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","PasswordInputLocaleHelper","rootNode","getProps","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","Codes","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","styles","emotion","iconWrapper","cx","toggleVisibility","theme","getEyeWrapperClassname","disabled","locale","eyeClosedAriaLabel","eyeOpenedAriaLabel","icon","size","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","componentDidMount","isIE11","globalObject","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","React","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","bool"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { isNonNullable } from '../../lib/utils';\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 { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeConsumer } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { getStyles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\nimport { PasswordInputLocale, PasswordInputLocaleHelper } from './locale';\n\nexport interface PasswordInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\nexport const PasswordInputDataTids = {\n root: 'PasswordInput',\n capsLockDetector: 'PasswordInputCapsLockDetector',\n eyeIcon: 'PasswordInputEyeIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\n@locale('PasswordInput', PasswordInputLocaleHelper)\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n public static displayName = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(PasswordInput.defaultProps);\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n private readonly locale!: PasswordInputLocale;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-expect-error: IE-specific API.\n if (isIE11 && isBrowser(globalObject) && !globalObject.document.msCapsLockWarningOff) {\n // @ts-expect-error: Read the comment above.\n // turns off default ie capslock warning\n globalObject.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 <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\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) && isNonNullable(capsLockEnabled)) {\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() {\n const styles = getStyles(this.emotion);\n switch (this.getProps().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 const styles = getStyles(this.emotion);\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && (\n <span className={styles.capsLockDetector()} data-tid={PasswordInputDataTids.capsLockDetector} />\n )}\n <span className={this.emotion.cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}>\n {!this.props.disabled && (\n <button\n type=\"button\"\n aria-label={this.state.visible ? this.locale.eyeClosedAriaLabel : this.locale.eyeOpenedAriaLabel}\n onClick={this.handleToggleVisibility}\n className={styles.icon()}\n data-tid={PasswordInputDataTids.eyeIcon}\n >\n <PasswordInputIcon\n size={this.props.size}\n visible={this.state.visible}\n isTheme2022={isTheme2022(this.theme)}\n />\n </button>\n )}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\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\n const styles = getStyles(this.emotion);\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div data-tid={PasswordInputDataTids.root} className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["PasswordInput.tsx"],"names":["PasswordInputDataTids","root","capsLockDetector","eyeIcon","PasswordInput","PasswordInputLocaleHelper","rootNode","getProps","defaultProps","state","visible","capsLockEnabled","focus","input","blur","handleBlur","handleKeyPress","e","props","onKeyPress","detectCapsLock","getModifierState","Codes","CapsLock","setState","handleKeydown","onKeyDown","handleToggleVisibility","prevState","handleFocus","renderEye","styles","emotion","iconWrapper","cx","toggleVisibility","theme","getEyeWrapperClassname","disabled","locale","eyeClosedAriaLabel","eyeOpenedAriaLabel","icon","size","refInput","element","hideSymbols","renderMain","rest","inputProps","rightIcon","componentDidMount","isIE11","globalObject","document","msCapsLockWarningOff","getDerivedStateFromProps","render","setRootNode","eyeWrapperLarge","eyeWrapperMedium","eyeWrapperSmall","React","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","bool"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { isNonNullable } from '../../lib/utils';\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 { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { getStyles } from './PasswordInput.styles';\nimport { PasswordInputIcon } from './PasswordInputIcon';\nimport { PasswordInputLocale, PasswordInputLocaleHelper } from './locale';\n\nexport interface PasswordInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, InputProps {\n detectCapsLock?: boolean;\n}\n\nexport interface PasswordInputState {\n visible: boolean;\n capsLockEnabled?: boolean | null;\n}\n\nexport const PasswordInputDataTids = {\n root: 'PasswordInput',\n capsLockDetector: 'PasswordInputCapsLockDetector',\n eyeIcon: 'PasswordInputEyeIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<PasswordInputProps, 'size'>>;\n\n/**\n * Компонент для ввода пароля\n */\n@rootNode\n@locale('PasswordInput', PasswordInputLocaleHelper)\nexport class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {\n public static __KONTUR_REACT_UI__ = 'PasswordInput';\n public static displayName = 'PasswordInput';\n\n public static propTypes = {\n /**\n * Включает CapsLock детектор\n */\n detectCapsLock: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(PasswordInput.defaultProps);\n\n public state: PasswordInputState = {\n visible: false,\n capsLockEnabled: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n\n private input: Nullable<Input>;\n private setRootNode!: TSetRootNode;\n private readonly locale!: PasswordInputLocale;\n\n public componentDidMount() {\n if (this.props.detectCapsLock) {\n this.setState({ capsLockEnabled: null });\n }\n\n // @ts-expect-error: IE-specific API.\n if (isIE11 && isBrowser(globalObject) && !globalObject.document.msCapsLockWarningOff) {\n // @ts-expect-error: Read the comment above.\n // turns off default ie capslock warning\n globalObject.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 <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\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 </EmotionConsumer>\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) && isNonNullable(capsLockEnabled)) {\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() {\n const styles = getStyles(this.emotion);\n switch (this.getProps().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 const styles = getStyles(this.emotion);\n return (\n <span className={styles.iconWrapper()}>\n {capsLockEnabled && (\n <span className={styles.capsLockDetector()} data-tid={PasswordInputDataTids.capsLockDetector} />\n )}\n <span className={this.emotion.cx(styles.toggleVisibility(this.theme), this.getEyeWrapperClassname())}>\n {!this.props.disabled && (\n <button\n type=\"button\"\n aria-label={this.state.visible ? this.locale.eyeClosedAriaLabel : this.locale.eyeOpenedAriaLabel}\n onClick={this.handleToggleVisibility}\n className={styles.icon()}\n data-tid={PasswordInputDataTids.eyeIcon}\n >\n <PasswordInputIcon\n size={this.props.size}\n visible={this.state.visible}\n isTheme2022={isTheme2022(this.theme)}\n />\n </button>\n )}\n </span>\n </span>\n );\n };\n\n private refInput = (element: Input) => {\n this.input = element;\n };\n\n private hideSymbols = () => {\n this.setState({ visible: false });\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\n const styles = getStyles(this.emotion);\n return (\n <RenderLayer onFocusOutside={this.hideSymbols} onClickOutside={this.hideSymbols}>\n <div data-tid={PasswordInputDataTids.root} className={styles.root()}>\n <Input ref={this.refInput} type={this.state.visible ? 'text' : 'password'} {...inputProps} />\n </div>\n </RenderLayer>\n );\n };\n}\n"]}
|
|
@@ -327,7 +327,7 @@ Radio = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
|
|
|
327
327
|
handleBlur = function (e) {
|
|
328
328
|
_this.resetFocus();
|
|
329
329
|
_this.props.onBlur == null ? void 0 : _this.props.onBlur(e);
|
|
330
|
-
};return _this;}var _proto = Radio.prototype;_proto.getRootSizeClassName = function getRootSizeClassName() {var styles = (0, _Radio.getStyles)(this.emotion);switch (this.getProps().size) {case 'large':return styles.rootLarge(this.theme);case 'medium':return styles.rootMedium(this.theme);case 'small':default:return styles.rootSmall(this.theme);}};_proto.getCircleSizeClassName = function getCircleSizeClassName() {var styles = (0, _Radio.getStyles)(this.emotion);switch (this.getProps().size) {case 'large':return styles.circleLarge(this.theme);case 'medium':return styles.circleMedium(this.theme);case 'small':default:return styles.circleSmall(this.theme);}};_proto.getCheckedSizeClassName = function getCheckedSizeClassName() {var styles = (0, _Radio.getStyles)(this.emotion);switch (this.getProps().size) {case 'large':return styles.checkedLarge(this.theme);case 'medium':return styles.checkedMedium(this.theme);case 'small':default:return styles.checkedSmall(this.theme);}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.
|
|
330
|
+
};return _this;}var _proto = Radio.prototype;_proto.getRootSizeClassName = function getRootSizeClassName() {var styles = (0, _Radio.getStyles)(this.emotion);switch (this.getProps().size) {case 'large':return styles.rootLarge(this.theme);case 'medium':return styles.rootMedium(this.theme);case 'small':default:return styles.rootSmall(this.theme);}};_proto.getCircleSizeClassName = function getCircleSizeClassName() {var styles = (0, _Radio.getStyles)(this.emotion);switch (this.getProps().size) {case 'large':return styles.circleLarge(this.theme);case 'medium':return styles.circleMedium(this.theme);case 'small':default:return styles.circleSmall(this.theme);}};_proto.getCheckedSizeClassName = function getCheckedSizeClassName() {var styles = (0, _Radio.getStyles)(this.emotion);switch (this.getProps().size) {case 'large':return styles.checkedLarge(this.theme);case 'medium':return styles.checkedMedium(this.theme);case 'small':default:return styles.checkedSmall(this.theme);}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain);});});} /**
|
|
331
331
|
* @public
|
|
332
332
|
*/;_proto.focus = function focus() {var _this$inputEl$current;_keyListener.keyListener.isTabPressed = true;(_this$inputEl$current = this.inputEl.current) == null ? void 0 : _this$inputEl$current.focus();} /**
|
|
333
333
|
* @public
|