@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
|
@@ -28,7 +28,7 @@ import { InputLayoutAside } from "../../../components/Input/InputLayout/InputLay
|
|
|
28
28
|
import { InputLayoutContext, InputLayoutContextDefault } from "../../../components/Input/InputLayout/InputLayoutContext";
|
|
29
29
|
import { isInstanceOf } from "../../../lib/isInstanceOf";
|
|
30
30
|
import { FocusControlWrapper } from "../../FocusControlWrapper";
|
|
31
|
-
import {
|
|
31
|
+
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
32
32
|
import { HiddenInput } from "../HiddenInput";
|
|
33
33
|
import { getStyles } from "../InputLikeText.styles";
|
|
34
34
|
export var InputLikeTextDataTids = {
|
|
@@ -198,7 +198,7 @@ export var InputLikeText = rootNode(_class = (_temp = _class2 = /*#__PURE__*/fun
|
|
|
198
198
|
var iconNode = isFunction(icon) ? icon() : icon;
|
|
199
199
|
var jsInputStyles = getJsInputStyles(_this.emotion);
|
|
200
200
|
return /*#__PURE__*/React.createElement("span", {
|
|
201
|
-
className: _this.emotion.cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(_this.theme), (_this$emotion$cx4 = {}, _this$emotion$cx4[jsInputStyles.iconDisabled()] = disabled, _this$emotion$cx4))
|
|
201
|
+
className: _this.emotion.cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(_this.theme), (_this$emotion$cx4 = {}, _this$emotion$cx4[jsInputStyles.iconDisabled(_this.theme)] = disabled, _this$emotion$cx4))
|
|
202
202
|
}, iconNode);
|
|
203
203
|
};
|
|
204
204
|
|
|
@@ -564,7 +564,7 @@ export var InputLikeText = rootNode(_class = (_temp = _class2 = /*#__PURE__*/fun
|
|
|
564
564
|
|
|
565
565
|
return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
|
|
566
566
|
_this4.emotion = emotion;
|
|
567
|
-
return /*#__PURE__*/React.createElement(
|
|
567
|
+
return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
|
|
568
568
|
_this4.theme = theme;
|
|
569
569
|
return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
|
|
570
570
|
rootNodeRef: _this4.setRootNode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["InputLikeText.tsx"],"names":["React","ReactDOM","debounce","globalObject","isFunction","isNonNullable","isKeyTab","isShortcutPaste","MouseDrag","isEdge","isIE11","isMobile","removeAllSelections","selectNodeContents","getStyles","getJsInputStyles","CommonWrapper","EmotionConsumer","findRenderContainer","rootNode","createPropsGetter","isTheme2022","InputLayoutAside","InputLayoutContext","InputLayoutContextDefault","isInstanceOf","FocusControlWrapper","ThemeConsumer","HiddenInput","InputLikeTextDataTids","root","input","nativeInput","InputLikeText","getProps","defaultProps","state","blinking","focused","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectNodeContentsDebounced","selectInnerNode","start","end","document","body","focusTimeout","clearInterval","setTimeout","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","ariaDescribedby","rest","leftSide","theme","renderLeftSide","rightSide","renderRightSide","jsInputStyles","emotion","styles","className","cx","getSizeClassName","hovering","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","wrapperClass","wrapper","userSelectContain","context","Object","assign","resetFocus","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","version","search","flushSync","setState","onFocus","cancel","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","blinkTimeout","getNode","componentDidMount","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","setRootNode","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash.debounce';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isFunction, isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { removeAllSelections, selectNodeContents } from '../../lib/dom/selectionHelpers';\nimport { InputIconType, InputProps, InputState } from '../../components/Input';\nimport { getStyles as getJsInputStyles } from '../../components/Input/Input.styles';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault } from '../../components/Input/InputLayout/InputLayoutContext';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { FocusControlWrapper } from '../FocusControlWrapper';\nimport { ThemeConsumer } from '../../lib/theming/ThemeContext';\n\nimport { HiddenInput } from './HiddenInput';\nimport { getStyles } from './InputLikeText.styles';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'size'>>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n public static displayName = 'InputLikeText';\n\n public static defaultProps: DefaultProps = { size: 'small' };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: SafeTimer;\n private blinkTimeout: SafeTimer;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = globalObject.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n // Async call required for Firefox\n private selectNodeContentsDebounced = debounce(selectNodeContents, 0);\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && globalObject.document && findRenderContainer(node, globalObject.document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n this.selectNodeContentsDebounced(node, start, end);\n\n if (this.focusTimeout) {\n globalObject.clearInterval(this.focusTimeout);\n }\n this.focusTimeout = globalObject.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n globalObject.document?.addEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.document?.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n globalObject.document?.removeEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.document?.removeEventListener('keydown', this.handleDocumentKeyDown);\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 private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n ) : (\n this.renderLeftSide()\n );\n const rightSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n ) : (\n this.renderRightSide()\n );\n\n const jsInputStyles = getJsInputStyles(this.emotion);\n const styles = getStyles(this.emotion);\n const className = this.emotion.cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = this.emotion.cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <FocusControlWrapper disabled={disabled} onBlurWhenDisabled={this.resetFocus}>\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <InputLayoutContext.Provider value={context}>\n <input\n data-tid={InputLikeTextDataTids.nativeInput}\n type=\"hidden\"\n value={value}\n disabled={disabled}\n aria-describedby={ariaDescribedby}\n />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={this.emotion.cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </InputLayoutContext.Provider>\n </span>\n </FocusControlWrapper>\n );\n };\n\n private getIconClassname(right = false) {\n const jsInputStyles = getJsInputStyles(this.emotion);\n switch (this.getProps().size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = isFunction(icon) ? icon() : icon;\n const jsInputStyles = getJsInputStyles(this.emotion);\n\n return (\n <span\n className={this.emotion.cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n const jsInputStyles = getJsInputStyles(this.emotion);\n\n return (\n <span\n className={this.emotion.cx(jsInputStyles.prefix(this.theme), {\n [jsInputStyles.prefixDisabled(this.theme)]: disabled,\n })}\n >\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n const jsInputStyles = getJsInputStyles(this.emotion);\n\n return (\n <span\n className={this.emotion.cx(jsInputStyles.suffix(this.theme), {\n [jsInputStyles.suffixDisabled(this.theme)]: disabled,\n })}\n >\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n const jsInputStyles = getJsInputStyles(this.emotion);\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n const jsInputStyles = getJsInputStyles(this.emotion);\n\n return (\n <span className={this.emotion.cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n const jsInputStyles = getJsInputStyles(this.emotion);\n return (\n <span\n className={this.emotion.cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && isInstanceOf(e.target, globalObject.Node) && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = () => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n globalObject.setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n const styles = getStyles(this.emotion);\n globalObject.document?.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n globalObject.setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n const styles = getStyles(this.emotion);\n globalObject.document?.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n this.node?.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11 && globalObject.document) {\n selectNodeContents(globalObject.document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (React.version.search('18') === 0) {\n ReactDOM.flushSync(() => this.setState({ focused: true }));\n } else {\n this.setState({ focused: true });\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n }\n removeAllSelections();\n this.setState({ focused: false });\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n this.setState({ focused: false });\n\n this.props.onBlur?.(e);\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n const jsInputStyles = getJsInputStyles(this.emotion);\n switch (this.getProps().size) {\n case 'large':\n return this.emotion.cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return this.emotion.cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return this.emotion.cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["InputLikeText.tsx"],"names":["React","ReactDOM","debounce","globalObject","isFunction","isNonNullable","isKeyTab","isShortcutPaste","MouseDrag","isEdge","isIE11","isMobile","removeAllSelections","selectNodeContents","getStyles","getJsInputStyles","CommonWrapper","EmotionConsumer","findRenderContainer","rootNode","createPropsGetter","isTheme2022","InputLayoutAside","InputLayoutContext","InputLayoutContextDefault","isInstanceOf","FocusControlWrapper","ThemeContext","HiddenInput","InputLikeTextDataTids","root","input","nativeInput","InputLikeText","getProps","defaultProps","state","blinking","focused","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectNodeContentsDebounced","selectInnerNode","start","end","document","body","focusTimeout","clearInterval","setTimeout","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","ariaDescribedby","rest","leftSide","theme","renderLeftSide","rightSide","renderRightSide","jsInputStyles","emotion","styles","className","cx","getSizeClassName","hovering","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","wrapperClass","wrapper","userSelectContain","context","Object","assign","resetFocus","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","version","search","flushSync","setState","onFocus","cancel","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","blinkTimeout","getNode","componentDidMount","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","setRootNode","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash.debounce';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isFunction, isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { removeAllSelections, selectNodeContents } from '../../lib/dom/selectionHelpers';\nimport { InputIconType, InputProps, InputState } from '../../components/Input';\nimport { getStyles as getJsInputStyles } from '../../components/Input/Input.styles';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault } from '../../components/Input/InputLayout/InputLayoutContext';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { FocusControlWrapper } from '../FocusControlWrapper';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { HiddenInput } from './HiddenInput';\nimport { getStyles } from './InputLikeText.styles';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'size'>>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n public static displayName = 'InputLikeText';\n\n public static defaultProps: DefaultProps = { size: 'small' };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: SafeTimer;\n private blinkTimeout: SafeTimer;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = globalObject.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n // Async call required for Firefox\n private selectNodeContentsDebounced = debounce(selectNodeContents, 0);\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && globalObject.document && findRenderContainer(node, globalObject.document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n this.selectNodeContentsDebounced(node, start, end);\n\n if (this.focusTimeout) {\n globalObject.clearInterval(this.focusTimeout);\n }\n this.focusTimeout = globalObject.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n globalObject.document?.addEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.document?.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n globalObject.document?.removeEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.document?.removeEventListener('keydown', this.handleDocumentKeyDown);\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 private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n ) : (\n this.renderLeftSide()\n );\n const rightSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n ) : (\n this.renderRightSide()\n );\n\n const jsInputStyles = getJsInputStyles(this.emotion);\n const styles = getStyles(this.emotion);\n const className = this.emotion.cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = this.emotion.cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <FocusControlWrapper disabled={disabled} onBlurWhenDisabled={this.resetFocus}>\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <InputLayoutContext.Provider value={context}>\n <input\n data-tid={InputLikeTextDataTids.nativeInput}\n type=\"hidden\"\n value={value}\n disabled={disabled}\n aria-describedby={ariaDescribedby}\n />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={this.emotion.cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </InputLayoutContext.Provider>\n </span>\n </FocusControlWrapper>\n );\n };\n\n private getIconClassname(right = false) {\n const jsInputStyles = getJsInputStyles(this.emotion);\n switch (this.getProps().size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = isFunction(icon) ? icon() : icon;\n const jsInputStyles = getJsInputStyles(this.emotion);\n\n return (\n <span\n className={this.emotion.cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled(this.theme)]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n const jsInputStyles = getJsInputStyles(this.emotion);\n\n return (\n <span\n className={this.emotion.cx(jsInputStyles.prefix(this.theme), {\n [jsInputStyles.prefixDisabled(this.theme)]: disabled,\n })}\n >\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n const jsInputStyles = getJsInputStyles(this.emotion);\n\n return (\n <span\n className={this.emotion.cx(jsInputStyles.suffix(this.theme), {\n [jsInputStyles.suffixDisabled(this.theme)]: disabled,\n })}\n >\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n const jsInputStyles = getJsInputStyles(this.emotion);\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n const jsInputStyles = getJsInputStyles(this.emotion);\n\n return (\n <span className={this.emotion.cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n const jsInputStyles = getJsInputStyles(this.emotion);\n return (\n <span\n className={this.emotion.cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && isInstanceOf(e.target, globalObject.Node) && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = () => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n globalObject.setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n const styles = getStyles(this.emotion);\n globalObject.document?.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n globalObject.setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n const styles = getStyles(this.emotion);\n globalObject.document?.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n this.node?.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11 && globalObject.document) {\n selectNodeContents(globalObject.document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (React.version.search('18') === 0) {\n ReactDOM.flushSync(() => this.setState({ focused: true }));\n } else {\n this.setState({ focused: true });\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n }\n removeAllSelections();\n this.setState({ focused: false });\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n this.setState({ focused: false });\n\n this.props.onBlur?.(e);\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n const jsInputStyles = getJsInputStyles(this.emotion);\n switch (this.getProps().size) {\n case 'large':\n return this.emotion.cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return this.emotion.cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return this.emotion.cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
|
|
@@ -11,7 +11,7 @@ import { isNonNullable } from "../../../lib/utils";
|
|
|
11
11
|
import { MaskCharLowLine } from "../../MaskCharLowLine";
|
|
12
12
|
import { EmotionConsumer } from "../../../lib/theming/Emotion";
|
|
13
13
|
import { createPropsGetter } from "../../../lib/createPropsGetter";
|
|
14
|
-
import {
|
|
14
|
+
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
15
15
|
import { getStyles } from "../InternalMaskedInput.styles";
|
|
16
16
|
export var MaskedInputDataTids = {
|
|
17
17
|
root: 'MaskedInput__root'
|
|
@@ -161,7 +161,7 @@ export var InternalMaskedInput = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
161
161
|
|
|
162
162
|
return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
|
|
163
163
|
_this2.emotion = emotion;
|
|
164
|
-
return /*#__PURE__*/React.createElement(
|
|
164
|
+
return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
|
|
165
165
|
_this2.theme = theme;
|
|
166
166
|
return _this2.renderMain();
|
|
167
167
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["InternalMaskedInput.tsx"],"names":["React","ReactInputMask","isNonNullable","MaskCharLowLine","EmotionConsumer","createPropsGetter","ThemeConsumer","getStyles","MaskedInputDataTids","root","InternalMaskedInput","props","getProps","defaultProps","input","reactInputMask","getValue","value","toString","defaultValue","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","originValue","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","emotion","theme","renderMain","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","leftHelper","textAlign","color","slice","styles","leftClass","inputMaskLeft","rightHelper","map","_char","i","container","cx","inputMask","PureComponent","__KONTUR_REACT_UI__","displayName"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport ReactInputMask, { InputState, MaskOptions } from 'react-input-mask';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeConsumer } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } from './InternalMaskedInput.styles';\n\nexport interface InternalMaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar?: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n\n // Users can unmask value themselves. In these cases we take origin value length\n originValue: string;\n\n emptyValue: string;\n focused: boolean;\n}\n\ntype DefaultProps = Required<Pick<InternalMaskedInputProps, 'maskChar'>>;\n\nexport const MaskedInputDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\n/** @deprecated Со следующей мажорной версии Input перестанет поддерживать маску.\n * todo: выпилить в 5 версии библиотеки.\n * */\nexport class InternalMaskedInput extends React.PureComponent<InternalMaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'InternalMaskedInput';\n public static displayName = 'InternalMaskedInput';\n\n public static defaultProps: DefaultProps = {\n maskChar: '_',\n };\n\n private getProps = createPropsGetter(InternalMaskedInput.defaultProps);\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private emotion!: Emotion;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: InternalMaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n originValue: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: InternalMaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\n }\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 this.renderMain();\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value, originValue } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, originValue.length)}</span>\n );\n const styles = getStyles(this.emotion);\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(originValue.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span data-tid={MaskedInputDataTids.root} className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={this.emotion.cx(styles.inputMask(this.theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: InternalMaskedInputProps): string => {\n if (isNonNullable(props.value)) {\n return props.value.toString();\n }\n\n if (isNonNullable(props.defaultValue)) {\n return props.defaultValue.toString();\n }\n\n return '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value, originValue: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: MaskOptions & Pick<InternalMaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.getProps().maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n originValue: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["InternalMaskedInput.tsx"],"names":["React","ReactInputMask","isNonNullable","MaskCharLowLine","EmotionConsumer","createPropsGetter","ThemeContext","getStyles","MaskedInputDataTids","root","InternalMaskedInput","props","getProps","defaultProps","input","reactInputMask","getValue","value","toString","defaultValue","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","originValue","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","emotion","theme","renderMain","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","leftHelper","textAlign","color","slice","styles","leftClass","inputMaskLeft","rightHelper","map","_char","i","container","cx","inputMask","PureComponent","__KONTUR_REACT_UI__","displayName"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport ReactInputMask, { InputState, MaskOptions } from 'react-input-mask';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } from './InternalMaskedInput.styles';\n\nexport interface InternalMaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar?: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n\n // Users can unmask value themselves. In these cases we take origin value length\n originValue: string;\n\n emptyValue: string;\n focused: boolean;\n}\n\ntype DefaultProps = Required<Pick<InternalMaskedInputProps, 'maskChar'>>;\n\nexport const MaskedInputDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\n/** @deprecated Со следующей мажорной версии Input перестанет поддерживать маску.\n * todo: выпилить в 5 версии библиотеки.\n * */\nexport class InternalMaskedInput extends React.PureComponent<InternalMaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'InternalMaskedInput';\n public static displayName = 'InternalMaskedInput';\n\n public static defaultProps: DefaultProps = {\n maskChar: '_',\n };\n\n private getProps = createPropsGetter(InternalMaskedInput.defaultProps);\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private emotion!: Emotion;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: InternalMaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n originValue: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: InternalMaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\n }\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 this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value, originValue } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, originValue.length)}</span>\n );\n const styles = getStyles(this.emotion);\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(originValue.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span data-tid={MaskedInputDataTids.root} className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={this.emotion.cx(styles.inputMask(this.theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: InternalMaskedInputProps): string => {\n if (isNonNullable(props.value)) {\n return props.value.toString();\n }\n\n if (isNonNullable(props.defaultValue)) {\n return props.defaultValue.toString();\n }\n\n return '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value, originValue: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: MaskOptions & Pick<InternalMaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.getProps().maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n originValue: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"]}
|
|
@@ -17,7 +17,7 @@ import { getDOMRect } from "../../../lib/dom/getDOMRect";
|
|
|
17
17
|
import { MenuSeparator } from "../../../components/MenuSeparator";
|
|
18
18
|
import { ThemeFactory } from "../../../lib/theming/ThemeFactory";
|
|
19
19
|
import { isInstanceOf } from "../../../lib/isInstanceOf";
|
|
20
|
-
import {
|
|
20
|
+
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
21
21
|
import { getStyles } from "../InternalMenu.styles";
|
|
22
22
|
import { isActiveElement } from "../isActiveElement";
|
|
23
23
|
import { addIconPaddingIfPartOfMenu } from "../addIconPaddingIfPartOfMenu";
|
|
@@ -80,7 +80,7 @@ var InternalMenu = responsiveLayout(_class = rootNode(_class = (_temp = _class2
|
|
|
80
80
|
};
|
|
81
81
|
|
|
82
82
|
_this.renderMenuSeparatorWithNoMargin = function () {
|
|
83
|
-
return /*#__PURE__*/React.createElement(
|
|
83
|
+
return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
|
|
84
84
|
value: ThemeFactory.create({
|
|
85
85
|
menuSeparatorMarginY: '0'
|
|
86
86
|
}, _this.theme)
|
|
@@ -241,7 +241,7 @@ var InternalMenu = responsiveLayout(_class = rootNode(_class = (_temp = _class2
|
|
|
241
241
|
|
|
242
242
|
return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
|
|
243
243
|
_this2.emotion = emotion;
|
|
244
|
-
return /*#__PURE__*/React.createElement(
|
|
244
|
+
return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
|
|
245
245
|
_this2.theme = theme;
|
|
246
246
|
return _this2.renderMain();
|
|
247
247
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["InternalMenu.tsx"],"names":["React","globalObject","isBrowser","responsiveLayout","isNonNullable","isNullable","isKeyArrowDown","isKeyArrowUp","isKeyEnter","ScrollContainer","isMenuItem","createPropsGetter","EmotionConsumer","getRootNode","rootNode","getDOMRect","MenuSeparator","ThemeFactory","isInstanceOf","ThemeConsumer","ThemeProvider","getStyles","isActiveElement","addIconPaddingIfPartOfMenu","isIconPaddingEnabled","InternalMenuDataTids","root","InternalMenu","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","renderHeader","styles","emotion","cx","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","create","menuSeparatorMarginY","focusOnRootElement","HTMLElement","focus","shouldRecalculateMaxHeight","prevProps","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","Children","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","setInitialSelection","i","initialSelectedItemIndex","moveDown","refScrollContainer","scrollContainer","scrollToSelected","highlighted","scrollTo","highlightItem","index","unhighlight","moveUp","move","handleKeyDown","e","onKeyDown","defaultPrevented","preventDefault","onClick","handleScrollStateChange","componentDidMount","componentDidUpdate","render","renderMain","enableIconPadding","preventIconsOffset","isEmpty","hasShadow","width","preventWindowScroll","isMobile","isMobileLayout","mobileRoot","shadow","setRootNode","map","child","isValidElement","type","modifiedChild","highlight","ref","originalRef","menuItem","refHighlighted","cloneElement","select","bind","onMouseEnter","event","onMouseLeave","current","shouldHandleHref","item","childrenToArray","href","target","open","location","onItemClick","step","some","cyclicSelection","length","filter","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","push"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { isMenuItem, MenuItem, MenuItemProps } from '../../components/MenuItem';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } from './InternalMenu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { addIconPaddingIfPartOfMenu } from './addIconPaddingIfPartOfMenu';\nimport { isIconPaddingEnabled } from './isIconPaddingEnabled';\n\nexport interface InternalMenuProps {\n children?: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Циклический перебор айтемов меню (по-дефолтну включен)\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\ninterface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n}\n\nexport const InternalMenuDataTids = {\n root: 'InternalMenu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n InternalMenuProps,\n 'width' | 'maxHeight' | 'hasShadow' | 'preventWindowScroll' | 'cyclicSelection' | 'initialSelectedItemIndex'\n >\n>;\n/**\n * @deprecated use Menu component instead\n */\n@responsiveLayout\n@rootNode\nexport class InternalMenu extends React.PureComponent<InternalMenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'InternalMenu';\n public static displayName = 'InternalMenu';\n\n public static defaultProps: DefaultProps = {\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(InternalMenu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private isMobileLayout!: boolean;\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: InternalMenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\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 this.renderMain();\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, width, maxHeight, preventWindowScroll } = this.getProps();\n const isMobile = this.isMobileLayout;\n const styles = getStyles(this.emotion);\n\n return (\n <div\n data-tid={InternalMenuDataTids.root}\n className={this.emotion.cx({\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow,\n })}\n style={{\n width,\n maxHeight: this.state.maxHeight,\n }}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header ? this.renderHeader() : null}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n >\n {React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n if (React.isValidElement(child) && typeof child.type === 'string') {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n const originalRef = ref;\n if (highlight) {\n ref = (menuItem) => this.refHighlighted(originalRef, menuItem);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: (event) => {\n this.highlightItem(index);\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseEnter) {\n modifiedChild.props.onMouseEnter(event);\n }\n },\n onMouseLeave: (event) => {\n this.unhighlight();\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseLeave) {\n modifiedChild.props.onMouseLeave(event);\n }\n },\n });\n }\n\n return modifiedChild;\n })}\n </ScrollContainer>\n {this.props.footer ? this.renderFooter() : null}\n </div>\n );\n }\n\n private renderHeader = () => {\n const styles = getStyles(this.emotion);\n return (\n <div\n className={this.emotion.cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n const styles = getStyles(this.emotion);\n return (\n <div\n className={this.emotion.cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeProvider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeProvider>\n );\n };\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: InternalMenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && typeof globalObject !== 'undefined' && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.moveDown();\n }\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: string | ((instance: MenuItem | null) => void) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (!originalRef || typeof originalRef === 'string') {\n return;\n }\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n } else if (typeof originalRef === 'object') {\n // @ts-expect-error: See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065.\n originalRef.current = menuItem;\n }\n }\n\n private scrollToSelected = () => {\n if (this.scrollContainer && this.highlighted) {\n const rootNode = getRootNode(this.highlighted);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n\n if (isActiveElement(item) && isBrowser(globalObject)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n globalObject.open(item.props.href, item.props.target);\n } else {\n globalObject.location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event as React.MouseEvent<HTMLElement>);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlightItem = (index: number): void => {\n this.setState({ highlightedIndex: index });\n\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n this.setState((state, props) => {\n const children = childrenToArray(props.children);\n if (!children.some(isActiveElement)) {\n return null;\n }\n let index = state.highlightedIndex;\n do {\n index += step;\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return null;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n return { highlightedIndex: index };\n }\n } while (index !== state.highlightedIndex);\n return null;\n }, this.scrollToSelected);\n }\n\n private moveUp = () => {\n this.move(-1);\n };\n\n private moveDown = () => {\n this.move(1);\n };\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(e);\n }\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(e)) {\n e.preventDefault();\n this.moveUp();\n } else if (isKeyArrowDown(e)) {\n e.preventDefault();\n this.moveDown();\n } else if (isKeyEnter(e)) {\n if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(e);\n }\n }\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["InternalMenu.tsx"],"names":["React","globalObject","isBrowser","responsiveLayout","isNonNullable","isNullable","isKeyArrowDown","isKeyArrowUp","isKeyEnter","ScrollContainer","isMenuItem","createPropsGetter","EmotionConsumer","getRootNode","rootNode","getDOMRect","MenuSeparator","ThemeFactory","isInstanceOf","ThemeContext","getStyles","isActiveElement","addIconPaddingIfPartOfMenu","isIconPaddingEnabled","InternalMenuDataTids","root","InternalMenu","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","renderHeader","styles","emotion","cx","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","create","menuSeparatorMarginY","focusOnRootElement","HTMLElement","focus","shouldRecalculateMaxHeight","prevProps","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","Children","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","setInitialSelection","i","initialSelectedItemIndex","moveDown","refScrollContainer","scrollContainer","scrollToSelected","highlighted","scrollTo","highlightItem","index","unhighlight","moveUp","move","handleKeyDown","e","onKeyDown","defaultPrevented","preventDefault","onClick","handleScrollStateChange","componentDidMount","componentDidUpdate","render","renderMain","enableIconPadding","preventIconsOffset","isEmpty","hasShadow","width","preventWindowScroll","isMobile","isMobileLayout","mobileRoot","shadow","setRootNode","map","child","isValidElement","type","modifiedChild","highlight","ref","originalRef","menuItem","refHighlighted","cloneElement","select","bind","onMouseEnter","event","onMouseLeave","current","shouldHandleHref","item","childrenToArray","href","target","open","location","onItemClick","step","some","cyclicSelection","length","filter","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","push"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { isMenuItem, MenuItem, MenuItemProps } from '../../components/MenuItem';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } from './InternalMenu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { addIconPaddingIfPartOfMenu } from './addIconPaddingIfPartOfMenu';\nimport { isIconPaddingEnabled } from './isIconPaddingEnabled';\n\nexport interface InternalMenuProps {\n children?: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Циклический перебор айтемов меню (по-дефолтну включен)\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\ninterface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n}\n\nexport const InternalMenuDataTids = {\n root: 'InternalMenu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n InternalMenuProps,\n 'width' | 'maxHeight' | 'hasShadow' | 'preventWindowScroll' | 'cyclicSelection' | 'initialSelectedItemIndex'\n >\n>;\n/**\n * @deprecated use Menu component instead\n */\n@responsiveLayout\n@rootNode\nexport class InternalMenu extends React.PureComponent<InternalMenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'InternalMenu';\n public static displayName = 'InternalMenu';\n\n public static defaultProps: DefaultProps = {\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(InternalMenu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private isMobileLayout!: boolean;\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: InternalMenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\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 this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, width, maxHeight, preventWindowScroll } = this.getProps();\n const isMobile = this.isMobileLayout;\n const styles = getStyles(this.emotion);\n\n return (\n <div\n data-tid={InternalMenuDataTids.root}\n className={this.emotion.cx({\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow,\n })}\n style={{\n width,\n maxHeight: this.state.maxHeight,\n }}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header ? this.renderHeader() : null}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n >\n {React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n if (React.isValidElement(child) && typeof child.type === 'string') {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n const originalRef = ref;\n if (highlight) {\n ref = (menuItem) => this.refHighlighted(originalRef, menuItem);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: (event) => {\n this.highlightItem(index);\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseEnter) {\n modifiedChild.props.onMouseEnter(event);\n }\n },\n onMouseLeave: (event) => {\n this.unhighlight();\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseLeave) {\n modifiedChild.props.onMouseLeave(event);\n }\n },\n });\n }\n\n return modifiedChild;\n })}\n </ScrollContainer>\n {this.props.footer ? this.renderFooter() : null}\n </div>\n );\n }\n\n private renderHeader = () => {\n const styles = getStyles(this.emotion);\n return (\n <div\n className={this.emotion.cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n const styles = getStyles(this.emotion);\n return (\n <div\n className={this.emotion.cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: InternalMenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && typeof globalObject !== 'undefined' && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.moveDown();\n }\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: string | ((instance: MenuItem | null) => void) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (!originalRef || typeof originalRef === 'string') {\n return;\n }\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n } else if (typeof originalRef === 'object') {\n // @ts-expect-error: See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065.\n originalRef.current = menuItem;\n }\n }\n\n private scrollToSelected = () => {\n if (this.scrollContainer && this.highlighted) {\n const rootNode = getRootNode(this.highlighted);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n\n if (isActiveElement(item) && isBrowser(globalObject)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n globalObject.open(item.props.href, item.props.target);\n } else {\n globalObject.location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event as React.MouseEvent<HTMLElement>);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlightItem = (index: number): void => {\n this.setState({ highlightedIndex: index });\n\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n this.setState((state, props) => {\n const children = childrenToArray(props.children);\n if (!children.some(isActiveElement)) {\n return null;\n }\n let index = state.highlightedIndex;\n do {\n index += step;\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return null;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n return { highlightedIndex: index };\n }\n } while (index !== state.highlightedIndex);\n return null;\n }, this.scrollToSelected);\n }\n\n private moveUp = () => {\n this.move(-1);\n };\n\n private moveDown = () => {\n this.move(1);\n };\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(e);\n }\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(e)) {\n e.preventDefault();\n this.moveUp();\n } else if (isKeyArrowDown(e)) {\n e.preventDefault();\n this.moveDown();\n } else if (isKeyEnter(e)) {\n if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(e);\n }\n }\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n"]}
|
|
@@ -21,7 +21,7 @@ import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
|
|
|
21
21
|
import { isIconPaddingEnabled } from "../../InternalMenu/isIconPaddingEnabled";
|
|
22
22
|
import { isInstanceOf } from "../../../lib/isInstanceOf";
|
|
23
23
|
import { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
|
|
24
|
-
import {
|
|
24
|
+
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
25
25
|
import { EmotionConsumer } from "../../../lib/theming/Emotion";
|
|
26
26
|
import { getStyles } from "../Menu.styles";
|
|
27
27
|
import { isActiveElement } from "../isActiveElement";
|
|
@@ -93,7 +93,7 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
93
93
|
};
|
|
94
94
|
|
|
95
95
|
_this.renderMenuSeparatorWithNoMargin = function () {
|
|
96
|
-
return /*#__PURE__*/React.createElement(
|
|
96
|
+
return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
|
|
97
97
|
value: ThemeFactory.create({
|
|
98
98
|
menuSeparatorMarginY: '0'
|
|
99
99
|
}, _this.theme)
|
|
@@ -324,7 +324,7 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
324
324
|
_this2.menuItemsAtAnyLevel = getFullReactUIFlagsContext(flags).menuItemsAtAnyLevel;
|
|
325
325
|
return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
|
|
326
326
|
_this2.emotion = emotion;
|
|
327
|
-
return /*#__PURE__*/React.createElement(
|
|
327
|
+
return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
|
|
328
328
|
_this2.theme = theme;
|
|
329
329
|
return _this2.renderMain();
|
|
330
330
|
});
|