@skbkontur/react-ui 4.21.2 → 4.21.4
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 +23 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
- package/cjs/components/Autocomplete/Autocomplete.js +2 -1
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +1 -0
- package/cjs/components/Button/Button.js +2 -1
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Calendar/Calendar.d.ts +1 -0
- package/cjs/components/Calendar/Calendar.js +2 -1
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.js +8 -5
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +1 -0
- package/cjs/components/Center/Center.js +2 -1
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +1 -0
- package/cjs/components/Checkbox/Checkbox.js +2 -1
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +1 -0
- package/cjs/components/ComboBox/ComboBox.js +2 -1
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -0
- package/cjs/components/CurrencyInput/CurrencyInput.js +2 -1
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +1 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +1 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +1 -0
- package/cjs/components/DateInput/DateInput.js +2 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +1 -0
- package/cjs/components/DatePicker/DatePicker.js +2 -1
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/Picker.d.ts +1 -0
- package/cjs/components/DatePicker/Picker.js +2 -1
- package/cjs/components/DatePicker/Picker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
- package/cjs/components/Dropdown/Dropdown.js +2 -1
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -0
- package/cjs/components/DropdownMenu/DropdownMenu.js +2 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.js +2 -1
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +1 -0
- package/cjs/components/FxInput/FxInput.js +2 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +1 -0
- package/cjs/components/Gapped/Gapped.js +2 -1
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +4 -1
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Group/Group.d.ts +1 -0
- package/cjs/components/Group/Group.js +3 -1
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +1 -0
- package/cjs/components/Hint/Hint.js +2 -1
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +1 -0
- package/cjs/components/Input/Input.js +2 -1
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +1 -0
- package/cjs/components/Kebab/Kebab.js +2 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +1 -0
- package/cjs/components/Link/Link.js +2 -1
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +1 -0
- package/cjs/components/Loader/Loader.js +2 -1
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuFooter/MenuFooter.d.ts +1 -0
- package/cjs/components/MenuFooter/MenuFooter.js +1 -0
- package/cjs/components/MenuFooter/MenuFooter.js.map +1 -1
- package/cjs/components/MenuHeader/MenuHeader.d.ts +1 -0
- package/cjs/components/MenuHeader/MenuHeader.js +1 -0
- package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +4 -0
- package/cjs/components/MenuItem/MenuItem.js +29 -10
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MenuSeparator/MenuSeparator.d.ts +1 -0
- package/cjs/components/MenuSeparator/MenuSeparator.js +2 -1
- package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
- package/cjs/components/MiniModal/MiniModal.js +0 -2
- package/cjs/components/MiniModal/MiniModal.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +1 -0
- package/cjs/components/Modal/Modal.js +2 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +1 -0
- package/cjs/components/Modal/ModalBody.js +2 -1
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Modal/ModalClose.d.ts +4 -0
- package/cjs/components/Modal/ModalClose.js +4 -1
- package/cjs/components/Modal/ModalClose.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.d.ts +1 -0
- package/cjs/components/Modal/ModalFooter.js +1 -0
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +1 -0
- package/cjs/components/Modal/ModalHeader.js +1 -0
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Modal/ModalSeparator.d.ts +4 -0
- package/cjs/components/Modal/ModalSeparator.js +4 -1
- package/cjs/components/Modal/ModalSeparator.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +1 -0
- package/cjs/components/Paging/Paging.js +10 -6
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -0
- package/cjs/components/PasswordInput/PasswordInput.js +2 -1
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +1 -0
- package/cjs/components/Radio/Radio.js +2 -1
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +1 -0
- package/cjs/components/RadioGroup/RadioGroup.js +2 -1
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -0
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +4 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Item.d.ts +1 -0
- package/cjs/components/Select/Item.js +2 -1
- package/cjs/components/Select/Item.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +2 -0
- package/cjs/components/Select/Select.js +5 -2
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +1 -0
- package/cjs/components/SidePage/SidePage.js +2 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
- package/cjs/components/SidePage/SidePageBody.js +2 -1
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageCloseButton.d.ts +5 -1
- package/cjs/components/SidePage/SidePageCloseButton.js +4 -1
- package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
- package/cjs/components/SidePage/SidePageContainer.js +2 -1
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +1 -0
- package/cjs/components/SidePage/SidePageFooter.js +2 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
- package/cjs/components/SidePage/SidePageHeader.js +2 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/SingleToast/SingleToast.d.ts +2 -0
- package/cjs/components/SingleToast/SingleToast.js +4 -1
- package/cjs/components/SingleToast/SingleToast.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +1 -0
- package/cjs/components/Spinner/Spinner.js +2 -1
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +1 -0
- package/cjs/components/Sticky/Sticky.js +2 -1
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +1 -0
- package/cjs/components/Switcher/Switcher.js +2 -1
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +1 -0
- package/cjs/components/Tabs/Tab.js +7 -1
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +1 -0
- package/cjs/components/Tabs/Tabs.js +2 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +1 -0
- package/cjs/components/Textarea/Textarea.js +2 -1
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +1 -0
- package/cjs/components/Toast/Toast.js +3 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +1 -0
- package/cjs/components/Toggle/Toggle.js +2 -1
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +1 -0
- package/cjs/components/Token/Token.js +9 -1
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
- package/cjs/components/TokenInput/TokenInput.js +2 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.d.ts +1 -0
- package/cjs/components/TokenInput/TokenInputMenu.js +2 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +1 -0
- package/cjs/components/Tooltip/Tooltip.js +2 -1
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -0
- package/cjs/components/TooltipMenu/TooltipMenu.js +3 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js +4 -1
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
- package/cjs/internal/CommonWrapper/CommonWrapper.js +7 -56
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
- package/cjs/internal/CommonWrapper/extractCommonProps.js +34 -0
- package/cjs/internal/CommonWrapper/extractCommonProps.js.map +1 -0
- package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
- package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js +12 -0
- package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
- package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js +23 -0
- package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/index.d.ts +2 -0
- package/cjs/internal/CommonWrapper/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/types.d.ts +25 -0
- package/cjs/internal/CommonWrapper/types.js +1 -0
- package/cjs/internal/CommonWrapper/types.js.map +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +2 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +1 -0
- package/cjs/internal/DateSelect/DateSelect.js +2 -1
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
- package/cjs/internal/DropdownContainer/DropdownContainer.js +2 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
- package/cjs/internal/FocusTrap/FocusTrap.js +3 -1
- package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +2 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +2 -1
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +2 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +1 -0
- package/cjs/internal/InternalMenu/InternalMenu.js +2 -1
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +1 -0
- package/cjs/internal/Menu/Menu.js +2 -1
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +2 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +2 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/cjs/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
- package/cjs/internal/NativeDateInput/NativeDateInput.js +3 -1
- package/cjs/internal/NativeDateInput/NativeDateInput.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +1 -0
- package/cjs/internal/Popup/Popup.js +2 -1
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.d.ts +1 -0
- package/cjs/internal/Popup/PopupPin.js +2 -1
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.js +2 -1
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -0
- package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +3 -0
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +7 -2
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -0
- package/cjs/internal/RenderLayer/RenderLayer.js +2 -1
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
- package/cjs/internal/ResizeDetector/ResizeDetector.js +2 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +1 -0
- package/cjs/internal/ZIndex/ZIndex.js +2 -1
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/icons/20px/Icon.d.ts +1 -0
- package/cjs/internal/icons/20px/Icon.js +2 -1
- package/cjs/internal/icons/20px/Icon.js.map +1 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/locale/LocaleContext.js +2 -1
- package/cjs/lib/locale/LocaleContext.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js +4 -1
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.js +2 -1
- package/cjs/lib/theming/ThemeContext.js.map +1 -1
- package/cjs/lib/toKebabCase.d.ts +1 -0
- package/cjs/lib/toKebabCase.js +10 -0
- package/cjs/lib/toKebabCase.js.map +1 -0
- package/cjs/lib/utils.d.ts +0 -7
- package/cjs/lib/utils.js +2 -25
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/typings/global-react.d.ts +12 -0
- package/components/Autocomplete/Autocomplete/Autocomplete.js +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +1 -0
- package/components/Button/Button/Button.js +1 -1
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -0
- package/components/Calendar/Calendar/Calendar.js +1 -1
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +1 -0
- package/components/Calendar/DayCellView/DayCellView.js +9 -3
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Center/Center/Center.js +1 -1
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +1 -0
- package/components/Checkbox/Checkbox/Checkbox.js +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +1 -0
- package/components/ComboBox/ComboBox/ComboBox.js +1 -1
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +1 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +1 -1
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +1 -0
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -0
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.d.ts +1 -0
- package/components/DateInput/DateInput/DateInput.js +1 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +1 -0
- package/components/DatePicker/DatePicker/DatePicker.js +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +1 -0
- package/components/DatePicker/Picker/Picker.js +1 -1
- package/components/DatePicker/Picker/Picker.js.map +1 -1
- package/components/DatePicker/Picker.d.ts +1 -0
- package/components/Dropdown/Dropdown/Dropdown.js +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +1 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +1 -0
- package/components/FileUploader/FileUploader/FileUploader.js +2 -1
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FxInput/FxInput/FxInput.js +1 -1
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +1 -0
- package/components/Gapped/Gapped/Gapped.js +1 -1
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +1 -0
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +1 -1
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/components/Group/Group/Group.js +1 -1
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +1 -0
- package/components/Hint/Hint/Hint.js +1 -1
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +1 -0
- package/components/Input/Input/Input.js +1 -1
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +1 -0
- package/components/Kebab/Kebab/Kebab.js +1 -1
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +1 -0
- package/components/Link/Link/Link.js +1 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +1 -0
- package/components/Loader/Loader/Loader.js +1 -1
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +1 -0
- package/components/MenuFooter/MenuFooter/MenuFooter.js +1 -0
- package/components/MenuFooter/MenuFooter/MenuFooter.js.map +1 -1
- package/components/MenuFooter/MenuFooter.d.ts +1 -0
- package/components/MenuHeader/MenuHeader/MenuHeader.js +1 -0
- package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuHeader/MenuHeader.d.ts +1 -0
- package/components/MenuItem/MenuItem/MenuItem.js +29 -6
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +4 -0
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +1 -0
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
- package/components/MenuSeparator/MenuSeparator.d.ts +1 -0
- package/components/MiniModal/MiniModal/MiniModal.js +0 -1
- package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
- package/components/Modal/Modal/Modal.js +1 -0
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +1 -0
- package/components/Modal/ModalBody/ModalBody.js +1 -1
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +1 -0
- package/components/Modal/ModalClose/ModalClose.js +3 -1
- package/components/Modal/ModalClose/ModalClose.js.map +1 -1
- package/components/Modal/ModalClose.d.ts +4 -0
- package/components/Modal/ModalFooter/ModalFooter.js +1 -0
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalFooter.d.ts +1 -0
- package/components/Modal/ModalHeader/ModalHeader.js +1 -0
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +1 -0
- package/components/Modal/ModalSeparator/ModalSeparator.js +3 -1
- package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
- package/components/Modal/ModalSeparator.d.ts +4 -0
- package/components/Paging/Paging/Paging.js +11 -5
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +1 -0
- package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +1 -0
- package/components/Radio/Radio/Radio.js +1 -1
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +1 -0
- package/components/RadioGroup/RadioGroup/RadioGroup.js +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +1 -0
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +3 -1
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/components/Select/Item/Item.js +2 -1
- package/components/Select/Item/Item.js.map +1 -1
- package/components/Select/Item.d.ts +1 -0
- package/components/Select/Select/Select.js +4 -2
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +2 -0
- package/components/SidePage/SidePage/SidePage.js +1 -0
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +1 -0
- package/components/SidePage/SidePageBody/SidePageBody.js +1 -1
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +1 -0
- package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +3 -1
- package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
- package/components/SidePage/SidePageCloseButton.d.ts +5 -1
- package/components/SidePage/SidePageContainer/SidePageContainer.js +1 -1
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageContainer.d.ts +1 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js +1 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +1 -0
- package/components/SidePage/SidePageHeader/SidePageHeader.js +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +1 -0
- package/components/SingleToast/SingleToast/SingleToast.js +2 -0
- package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
- package/components/SingleToast/SingleToast.d.ts +2 -0
- package/components/Spinner/Spinner/Spinner.js +1 -1
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +1 -0
- package/components/Sticky/Sticky/Sticky.js +1 -1
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +1 -0
- package/components/Switcher/Switcher/Switcher.js +1 -1
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +1 -0
- package/components/Tabs/Tab/Tab.js +6 -2
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +1 -0
- package/components/Tabs/Tabs/Tabs.js +1 -1
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +1 -0
- package/components/Textarea/Textarea/Textarea.js +1 -1
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +1 -0
- package/components/Toast/Toast/Toast.js +1 -1
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +1 -0
- package/components/Toggle/Toggle/Toggle.js +1 -1
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +1 -0
- package/components/Token/Token/Token.js +5 -4
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +1 -0
- package/components/TokenInput/TokenInput/TokenInput.js +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +1 -0
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/TokenInputMenu.d.ts +1 -0
- package/components/Tooltip/Tooltip/Tooltip.js +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +1 -0
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +1 -1
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +1 -0
- package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js +3 -1
- package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +8 -38
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
- package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js +31 -0
- package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +1 -0
- package/internal/CommonWrapper/extractCommonProps/package.json +6 -0
- package/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js +12 -0
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes/package.json +6 -0
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
- package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js +16 -0
- package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/getVisualStateDataAttributes/package.json +6 -0
- package/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
- package/internal/CommonWrapper/index/index.js +2 -1
- package/internal/CommonWrapper/index/index.js.map +1 -1
- package/internal/CommonWrapper/index.d.ts +2 -0
- package/internal/CommonWrapper/types/package.json +6 -0
- package/internal/CommonWrapper/types/types.js +1 -0
- package/internal/CommonWrapper/types/types.js.map +1 -0
- package/internal/CommonWrapper/types.d.ts +25 -0
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +1 -1
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +1 -1
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
- package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +1 -0
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +1 -0
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +1 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
- package/internal/FocusTrap/FocusTrap/FocusTrap.js +1 -1
- package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/FocusTrap/FocusTrap.d.ts +1 -0
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +1 -0
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +1 -1
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -1
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +1 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +1 -0
- package/internal/Menu/Menu/Menu.js +1 -1
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +1 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +2 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +1 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
- package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js +2 -1
- package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js.map +1 -1
- package/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
- package/internal/Popup/Popup/Popup.js +1 -1
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +1 -0
- package/internal/Popup/PopupPin/PopupPin.js +1 -0
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/Popup/PopupPin.d.ts +1 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +1 -0
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +1 -0
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderContainer.d.ts +1 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +4 -1
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderContainer/RenderInnerContainer.d.ts +3 -0
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +1 -0
- package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +2 -1
- package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
- package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
- package/internal/ZIndex/ZIndex/ZIndex.js +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +1 -0
- package/internal/icons/20px/Icon/Icon.js +1 -0
- package/internal/icons/20px/Icon/Icon.js.map +1 -1
- package/internal/icons/20px/Icon.d.ts +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/locale/LocaleContext/LocaleContext.js +2 -1
- package/lib/locale/LocaleContext/LocaleContext.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +1 -1
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +2 -0
- package/lib/theming/ThemeContext/ThemeContext.js +2 -1
- package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
- package/lib/toKebabCase/package.json +6 -0
- package/lib/toKebabCase/toKebabCase.js +7 -0
- package/lib/toKebabCase/toKebabCase.js.map +1 -0
- package/lib/toKebabCase.d.ts +1 -0
- package/lib/utils/utils.js +1 -27
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +0 -7
- package/package.json +9 -9
- package/typings/global-react.d.ts +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DateSelect.tsx"],"names":["React","PropTypes","globalObject","isBrowser","getRandomID","isNonNullable","isKeyEscape","DatePickerLocaleHelper","locale","RenderLayer","DropdownContainer","LayoutEvents","ThemeContext","ArrowTriangleUpDownIcon","ArrowChevronDownIcon","ArrowChevronUpIcon","isMobile","cx","getDOMRect","createPropsGetter","isTheme2022","ArrowCollapseCVOpenIcon16Regular","ArrowCUpIcon16Regular","ArrowCDownIcon16Regular","isInstanceOf","globalClasses","styles","itemHeight","visibleYearsCount","itemsToMoveCount","monthsCount","defaultMinYear","defaultMaxYear","calculatePos","pos","minPos","maxPos","DateSelectDataTids","caption","menuItem","menu","DateSelect","getProps","defaultProps","state","botCapped","current","height","opened","top","topCapped","nodeTop","Infinity","root","itemsContainer","yearStep","touchStartY","open","props","disabled","setPosition","setState","close","menuId","refRoot","element","setNodeTop","timeout","clearTimeout","setTimeout","refItemsContainer","addEventListener","handleWheel","passive","removeEventListener","handleTouchStart","handleTouchMove","handleLongClickUp","event","preventDefault","longClickTimer","setPositionRepeatTimer","setInterval","handleLongClickDown","handleLongClickStop","getAnchor","WheelEvent","stopPropagation","deltaY","deltaMode","TouchEvent","targetTouches","clientY","changedTouches","pixelRatio","devicePixelRatio","handleItemClick","shift","value","onValueChange","handleKey","e","handleUp","handleDown","componentDidUpdate","componentDidMount","listener","addListener","componentWillUnmount","remove","render","theme","renderMain","renderMain2022","width","isInteractiveElement","Tag","rootProps","className","Boolean","style","ref","onClick","undefined","selectChosenAriaLabel","type","selectYearAriaLabel","selectMonthAriaLabel","getItem","arrow","arrowDisabled","renderMenu","root2022","disableItems","index","maxValue","minValue","id","from","to","Math","ceil","items","i","menuItemSelected","menuItemActive","menuItemDisabled","clickHandler","onMouseDown","push","left","right","shiftStyle","position","holderClass","menuHolder","isTopCapped","isBotCapped","dropdownOffset","overflowOffsetDelta","iconUp","iconDown","menuUp","itemsHolder","menuDown","months","getMinPos","getMaxPos","calculatedPos","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","string","number","isRequired","oneOfType","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser, SafeTimer } from '@skbkontur/global-object';\n\nimport { getRandomID, isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../../components/DatePicker/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../RenderLayer';\nimport { DropdownContainer } from '../DropdownContainer';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ArrowTriangleUpDownIcon, ArrowChevronDownIcon, ArrowChevronUpIcon } from '../icons/16px';\nimport { isMobile } from '../../lib/client';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ArrowCollapseCVOpenIcon16Regular } from '../icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular';\nimport { ArrowCUpIcon16Regular } from '../icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular';\nimport { ArrowCDownIcon16Regular } from '../icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { globalClasses, styles } from './DateSelect.styles';\n\nconst itemHeight = 24;\nconst visibleYearsCount = 11;\nconst itemsToMoveCount = -5;\nconst monthsCount = 12;\nconst defaultMinYear = 1900;\nconst defaultMaxYear = 2100;\n\nexport interface DateSelectProps {\n disabled?: boolean | null;\n onValueChange: (value: number) => void;\n type?: 'month' | 'year';\n value: number;\n width?: number | string;\n minValue?: number;\n maxValue?: number;\n}\n\nexport interface DateSelectState {\n botCapped: boolean;\n current: Nullable<number>;\n height: number;\n opened: boolean;\n pos: number;\n top: number;\n topCapped: boolean;\n nodeTop: number;\n}\n\nconst calculatePos = (pos: number, minPos: number, maxPos: number) => {\n if (maxPos <= pos) {\n return maxPos;\n }\n\n if (minPos >= pos) {\n return minPos;\n }\n\n return pos;\n};\n\nexport const DateSelectDataTids = {\n caption: 'DateSelect__caption',\n menuItem: 'DateSelect__menuItem',\n menu: 'DateSelect__menu',\n} as const;\n\ntype DefaultProps = Required<Pick<DateSelectProps, 'type' | 'width'>>;\n\n@locale('Calendar', DatePickerLocaleHelper)\nexport class DateSelect extends React.PureComponent<DateSelectProps, DateSelectState> {\n public static __KONTUR_REACT_UI__ = 'DateSelect';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n type: PropTypes.string,\n\n value: PropTypes.number.isRequired,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onValueChange: PropTypes.func,\n\n minValue: PropTypes.number,\n\n maxValue: PropTypes.number,\n };\n\n public static defaultProps: DefaultProps = {\n type: 'year',\n width: 'auto',\n };\n\n private getProps = createPropsGetter(DateSelect.defaultProps);\n\n public state = {\n botCapped: false,\n current: 0,\n height: 0,\n opened: false,\n pos: 0,\n top: 0,\n topCapped: false,\n nodeTop: Infinity,\n };\n\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private root: HTMLElement | null = null;\n private itemsContainer: HTMLElement | null = null;\n private listener: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private timeout: SafeTimer;\n private longClickTimer: SafeTimer;\n private setPositionRepeatTimer: SafeTimer;\n private yearStep = 3;\n private touchStartY: Nullable<number> = null;\n\n public componentDidUpdate() {\n this.setNodeTop();\n }\n\n public componentDidMount() {\n this.listener = LayoutEvents.addListener(this.setNodeTop);\n this.setNodeTop();\n globalObject.addEventListener?.('keydown', this.handleKey);\n }\n\n public componentWillUnmount() {\n if (this.listener) {\n this.listener.remove();\n }\n if (this.timeout) {\n globalObject.clearTimeout(this.timeout);\n }\n if (this.longClickTimer) {\n globalObject.clearTimeout(this.longClickTimer);\n }\n if (this.setPositionRepeatTimer) {\n globalObject.clearTimeout(this.setPositionRepeatTimer);\n }\n globalObject.removeEventListener?.('keydown', this.handleKey);\n }\n\n /**\n * @public\n */\n public open = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.state.opened) {\n return;\n }\n\n this.setPosition(0);\n this.setState({\n opened: true,\n current: 0,\n });\n };\n\n /**\n * @public\n */\n public close = () => {\n if (!this.state.opened) {\n return;\n }\n\n this.setState({ opened: false });\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private menuId = DateSelectDataTids.menu + getRandomID();\n\n private renderMain() {\n if (isTheme2022(this.theme)) {\n return this.renderMain2022();\n }\n\n const { disabled } = this.props;\n const width = this.getProps().width;\n const isInteractiveElement = !disabled;\n const Tag = isInteractiveElement ? 'button' : 'span';\n const rootProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.disabled()]: Boolean(disabled),\n }),\n style: { width },\n ref: this.refRoot,\n onClick: this.open,\n 'aria-expanded': isInteractiveElement ? this.state.opened : undefined,\n 'aria-controls': !disabled ? this.menuId : undefined,\n 'aria-label': isInteractiveElement\n ? `${this.locale.selectChosenAriaLabel} ${\n this.getProps().type === 'year' ? this.locale.selectYearAriaLabel : this.locale.selectMonthAriaLabel\n } ${this.getItem(0)}`\n : undefined,\n };\n\n return (\n <Tag {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()}>\n {this.getItem(0)}\n <div\n className={cx({\n [styles.arrow(this.theme)]: true,\n [styles.arrowDisabled()]: Boolean(disabled),\n })}\n >\n <ArrowTriangleUpDownIcon size={12} />\n </div>\n </div>\n {this.state.opened && this.renderMenu(this.menuId)}\n </Tag>\n );\n }\n\n private renderMain2022() {\n const { disabled } = this.props;\n const width = this.getProps().width;\n const isInteractiveElement = !disabled;\n const Tag = isInteractiveElement ? 'button' : 'span';\n const rootProps = {\n className: cx(styles.root(this.theme), styles.root2022(), disabled && styles.disabled()),\n style: { width },\n ref: this.refRoot,\n onClick: this.open,\n 'aria-expanded': isInteractiveElement ? this.state.opened : undefined,\n 'aria-label': isInteractiveElement\n ? `${this.locale.selectChosenAriaLabel} ${\n this.getProps().type === 'year' ? this.locale.selectYearAriaLabel : this.locale.selectMonthAriaLabel\n } ${this.getItem(0)}`\n : undefined,\n };\n\n return (\n <Tag {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()}>\n {this.getItem(0)}\n </div>\n {isInteractiveElement && (\n <ArrowCollapseCVOpenIcon16Regular className={cx(globalClasses.arrow)} color=\"#ADADAD\" />\n )}\n {this.state.opened && this.renderMenu(this.menuId)}\n </Tag>\n );\n }\n\n private refRoot = (element: HTMLElement | null) => {\n this.root = element;\n };\n\n private setNodeTop = () => {\n const root = this.root;\n if (!root) {\n return;\n }\n if (this.timeout) {\n globalObject.clearTimeout(this.timeout);\n }\n this.timeout = globalObject.setTimeout(\n () =>\n this.setState({\n nodeTop: getDOMRect(root).top,\n }),\n 0,\n );\n };\n\n private disableItems(index: number) {\n const value = this.props.value + index;\n if (isNonNullable(this.props.maxValue) && isNonNullable(this.props.minValue)) {\n return value > this.props.maxValue || value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.minValue)) {\n return value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.maxValue)) {\n return value > this.props.maxValue;\n }\n }\n\n private renderMenu(id?: string): React.ReactNode {\n const { top, height, nodeTop } = this.state;\n\n let shift = this.state.pos % itemHeight;\n if (shift < 0) {\n shift += itemHeight;\n }\n\n const from = (this.state.pos - shift + top) / itemHeight;\n const to = from + Math.ceil((height + shift) / itemHeight);\n const items = [];\n\n for (let i = from; i < to; ++i) {\n const disableItems = this.disableItems(i) || false;\n const className = cx({\n [styles.menuItem(this.theme)]: true,\n [styles.menuItemSelected(this.theme)]: i === 0,\n [styles.menuItemActive(this.theme)]: i === this.state.current,\n [styles.menuItemDisabled(this.theme)]: disableItems,\n });\n const clickHandler = {\n onMouseDown: preventDefault,\n onClick: this.handleItemClick(i),\n };\n items.push(\n <button\n aria-label={`Выбрать ${this.getProps().type === 'year' ? 'год' : 'месяц'} ${this.getItem(i)}`}\n data-tid={DateSelectDataTids.menuItem}\n data-prop-disabled={disableItems}\n key={i}\n className={className}\n onMouseEnter={() => this.setState({ current: i })}\n onMouseLeave={() => this.setState({ current: null })}\n {...clickHandler}\n >\n {this.getItem(i)}\n </button>,\n );\n }\n const style: {\n left?: number | string;\n right?: number | string;\n top: number;\n width?: number | string;\n } = {\n top: top - 5,\n left: 0,\n right: 0,\n };\n\n const shiftStyle: React.CSSProperties = {\n position: 'relative',\n top: -shift,\n };\n\n const holderClass = cx({\n [styles.menuHolder(this.theme)]: true,\n [styles.isTopCapped()]: this.state.topCapped,\n [styles.isBotCapped()]: this.state.botCapped,\n });\n\n let dropdownOffset = -itemHeight;\n if (nodeTop < -top) {\n const overflowOffsetDelta = this.state.topCapped ? 6 : 17;\n dropdownOffset -= nodeTop + top - overflowOffsetDelta;\n }\n\n const iconUp = isTheme2022(this.theme) ? <ArrowCUpIcon16Regular color=\"#ADADAD\" /> : <ArrowChevronUpIcon />;\n const iconDown = isTheme2022(this.theme) ? <ArrowCDownIcon16Regular color=\"#ADADAD\" /> : <ArrowChevronDownIcon />;\n\n return (\n <RenderLayer onClickOutside={this.close} onFocusOutside={this.close} active>\n <DropdownContainer\n data-tid={DateSelectDataTids.menu}\n id={id}\n getParent={this.getAnchor}\n offsetY={dropdownOffset}\n offsetX={-10}\n >\n <div className={holderClass} style={style}>\n {!this.state.topCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuUp())}\n onClick={this.handleUp}\n onMouseDown={this.handleLongClickUp}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickUp}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>{iconUp}</span>\n </div>\n )}\n <div className={styles.itemsHolder()} style={{ height }}>\n <div ref={this.refItemsContainer} style={shiftStyle}>\n {items}\n </div>\n </div>\n {!this.state.botCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuDown())}\n onClick={this.handleDown}\n onMouseDown={this.handleLongClickDown}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickDown}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>{iconDown}</span>\n </div>\n )}\n </div>\n </DropdownContainer>\n </RenderLayer>\n );\n }\n\n private refItemsContainer = (element: HTMLElement | null) => {\n if (!this.itemsContainer && element) {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('wheel', this.handleWheel);\n }\n\n if (isMobile) {\n if (!this.itemsContainer && element) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.handleTouchMove);\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('touchstart', this.handleTouchStart);\n this.itemsContainer.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n this.itemsContainer = element;\n };\n\n private handleLongClickUp = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = globalObject.setTimeout(() => {\n this.setPositionRepeatTimer = globalObject.setInterval(() => this.setPosition(this.state.pos - itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickDown = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = globalObject.setTimeout(() => {\n this.setPositionRepeatTimer = globalObject.setInterval(() => this.setPosition(this.state.pos + itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickStop = () => {\n globalObject.clearTimeout(this.longClickTimer);\n globalObject.clearTimeout(this.setPositionRepeatTimer);\n };\n\n private getAnchor = () => this.root;\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n\n let deltaY = event.deltaY;\n if (event.deltaMode === 1) {\n deltaY *= itemHeight;\n } else if (event.deltaMode === 2) {\n deltaY *= itemHeight * 4;\n }\n const pos = this.state.pos + deltaY;\n this.setPosition(pos);\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n this.touchStartY = event.targetTouches[0].clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent) || !isBrowser(globalObject)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n const pixelRatio = globalObject.devicePixelRatio;\n\n const deltaY = ((this.touchStartY || 0) - clientY) / pixelRatio;\n const pos = this.state.pos + deltaY + deltaY / itemHeight;\n\n this.touchStartY = clientY;\n\n this.setPosition(pos);\n };\n\n private handleItemClick = (shift: number) => {\n return () => {\n const value = this.props.value + shift;\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n this.setState({ opened: false });\n };\n };\n\n private handleKey = (e: KeyboardEvent) => {\n if (this.state.opened && isKeyEscape(e)) {\n e.preventDefault();\n this.close();\n e.stopPropagation();\n }\n };\n\n private handleUp = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos - itemHeight * this.yearStep);\n };\n\n private handleDown = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos + itemHeight * this.yearStep);\n };\n\n private getItem(index: number) {\n const value = this.props.value + index;\n if (this.getProps().type === 'month') {\n return this.locale.months?.[value];\n }\n return value;\n }\n\n private setPosition(pos: number) {\n let top = itemsToMoveCount * itemHeight;\n let height = visibleYearsCount * itemHeight;\n if (this.getProps().type === 'month') {\n top = -this.props.value * itemHeight;\n height = monthsCount * itemHeight;\n }\n\n const minPos = this.getMinPos() - top;\n const maxPos = this.getMaxPos() - top - height + itemHeight;\n\n const calculatedPos = calculatePos(pos, minPos, maxPos);\n const topCapped = calculatedPos <= minPos;\n const botCapped = calculatedPos >= maxPos;\n\n this.setState({ pos: calculatedPos, top, height, topCapped, botCapped });\n }\n\n private getMinPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return -this.props.value * itemHeight;\n } else if (type === 'year') {\n return ((this.props.minValue || defaultMinYear) - this.props.value) * itemHeight;\n }\n return -Infinity; // Be defensive.\n }\n\n private getMaxPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return (visibleYearsCount - this.props.value) * itemHeight;\n } else if (type === 'year') {\n return ((this.props.maxValue || defaultMaxYear) - this.props.value) * itemHeight;\n }\n return Infinity; // Be defensive.\n }\n}\n\nfunction preventDefault(e: React.SyntheticEvent) {\n e.preventDefault();\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["DateSelect.tsx"],"names":["React","PropTypes","globalObject","isBrowser","getRandomID","isNonNullable","isKeyEscape","DatePickerLocaleHelper","locale","RenderLayer","DropdownContainer","LayoutEvents","ThemeContext","ArrowTriangleUpDownIcon","ArrowChevronDownIcon","ArrowChevronUpIcon","isMobile","cx","getDOMRect","createPropsGetter","isTheme2022","ArrowCollapseCVOpenIcon16Regular","ArrowCUpIcon16Regular","ArrowCDownIcon16Regular","isInstanceOf","globalClasses","styles","itemHeight","visibleYearsCount","itemsToMoveCount","monthsCount","defaultMinYear","defaultMaxYear","calculatePos","pos","minPos","maxPos","DateSelectDataTids","caption","menuItem","menu","DateSelect","getProps","defaultProps","state","botCapped","current","height","opened","top","topCapped","nodeTop","Infinity","root","itemsContainer","yearStep","touchStartY","open","props","disabled","setPosition","setState","close","menuId","refRoot","element","setNodeTop","timeout","clearTimeout","setTimeout","refItemsContainer","addEventListener","handleWheel","passive","removeEventListener","handleTouchStart","handleTouchMove","handleLongClickUp","event","preventDefault","longClickTimer","setPositionRepeatTimer","setInterval","handleLongClickDown","handleLongClickStop","getAnchor","WheelEvent","stopPropagation","deltaY","deltaMode","TouchEvent","targetTouches","clientY","changedTouches","pixelRatio","devicePixelRatio","handleItemClick","shift","value","onValueChange","handleKey","e","handleUp","handleDown","componentDidUpdate","componentDidMount","listener","addListener","componentWillUnmount","remove","render","theme","renderMain","renderMain2022","width","isInteractiveElement","Tag","rootProps","className","Boolean","style","ref","onClick","undefined","selectChosenAriaLabel","type","selectYearAriaLabel","selectMonthAriaLabel","getItem","arrow","arrowDisabled","renderMenu","root2022","disableItems","index","maxValue","minValue","id","from","to","Math","ceil","items","i","menuItemSelected","menuItemActive","menuItemDisabled","clickHandler","onMouseDown","push","left","right","shiftStyle","position","holderClass","menuHolder","isTopCapped","isBotCapped","dropdownOffset","overflowOffsetDelta","iconUp","iconDown","menuUp","itemsHolder","menuDown","months","getMinPos","getMaxPos","calculatedPos","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","bool","string","number","isRequired","oneOfType","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser, SafeTimer } from '@skbkontur/global-object';\n\nimport { getRandomID, isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../../components/DatePicker/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../RenderLayer';\nimport { DropdownContainer } from '../DropdownContainer';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ArrowTriangleUpDownIcon, ArrowChevronDownIcon, ArrowChevronUpIcon } from '../icons/16px';\nimport { isMobile } from '../../lib/client';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ArrowCollapseCVOpenIcon16Regular } from '../icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular';\nimport { ArrowCUpIcon16Regular } from '../icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular';\nimport { ArrowCDownIcon16Regular } from '../icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { globalClasses, styles } from './DateSelect.styles';\n\nconst itemHeight = 24;\nconst visibleYearsCount = 11;\nconst itemsToMoveCount = -5;\nconst monthsCount = 12;\nconst defaultMinYear = 1900;\nconst defaultMaxYear = 2100;\n\nexport interface DateSelectProps {\n disabled?: boolean | null;\n onValueChange: (value: number) => void;\n type?: 'month' | 'year';\n value: number;\n width?: number | string;\n minValue?: number;\n maxValue?: number;\n}\n\nexport interface DateSelectState {\n botCapped: boolean;\n current: Nullable<number>;\n height: number;\n opened: boolean;\n pos: number;\n top: number;\n topCapped: boolean;\n nodeTop: number;\n}\n\nconst calculatePos = (pos: number, minPos: number, maxPos: number) => {\n if (maxPos <= pos) {\n return maxPos;\n }\n\n if (minPos >= pos) {\n return minPos;\n }\n\n return pos;\n};\n\nexport const DateSelectDataTids = {\n caption: 'DateSelect__caption',\n menuItem: 'DateSelect__menuItem',\n menu: 'DateSelect__menu',\n} as const;\n\ntype DefaultProps = Required<Pick<DateSelectProps, 'type' | 'width'>>;\n\n@locale('Calendar', DatePickerLocaleHelper)\nexport class DateSelect extends React.PureComponent<DateSelectProps, DateSelectState> {\n public static __KONTUR_REACT_UI__ = 'DateSelect';\n public static displayName = 'DateSelect';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n type: PropTypes.string,\n\n value: PropTypes.number.isRequired,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onValueChange: PropTypes.func,\n\n minValue: PropTypes.number,\n\n maxValue: PropTypes.number,\n };\n\n public static defaultProps: DefaultProps = {\n type: 'year',\n width: 'auto',\n };\n\n private getProps = createPropsGetter(DateSelect.defaultProps);\n\n public state = {\n botCapped: false,\n current: 0,\n height: 0,\n opened: false,\n pos: 0,\n top: 0,\n topCapped: false,\n nodeTop: Infinity,\n };\n\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private root: HTMLElement | null = null;\n private itemsContainer: HTMLElement | null = null;\n private listener: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private timeout: SafeTimer;\n private longClickTimer: SafeTimer;\n private setPositionRepeatTimer: SafeTimer;\n private yearStep = 3;\n private touchStartY: Nullable<number> = null;\n\n public componentDidUpdate() {\n this.setNodeTop();\n }\n\n public componentDidMount() {\n this.listener = LayoutEvents.addListener(this.setNodeTop);\n this.setNodeTop();\n globalObject.addEventListener?.('keydown', this.handleKey);\n }\n\n public componentWillUnmount() {\n if (this.listener) {\n this.listener.remove();\n }\n if (this.timeout) {\n globalObject.clearTimeout(this.timeout);\n }\n if (this.longClickTimer) {\n globalObject.clearTimeout(this.longClickTimer);\n }\n if (this.setPositionRepeatTimer) {\n globalObject.clearTimeout(this.setPositionRepeatTimer);\n }\n globalObject.removeEventListener?.('keydown', this.handleKey);\n }\n\n /**\n * @public\n */\n public open = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.state.opened) {\n return;\n }\n\n this.setPosition(0);\n this.setState({\n opened: true,\n current: 0,\n });\n };\n\n /**\n * @public\n */\n public close = () => {\n if (!this.state.opened) {\n return;\n }\n\n this.setState({ opened: false });\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private menuId = DateSelectDataTids.menu + getRandomID();\n\n private renderMain() {\n if (isTheme2022(this.theme)) {\n return this.renderMain2022();\n }\n\n const { disabled } = this.props;\n const width = this.getProps().width;\n const isInteractiveElement = !disabled;\n const Tag = isInteractiveElement ? 'button' : 'span';\n const rootProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.disabled()]: Boolean(disabled),\n }),\n style: { width },\n ref: this.refRoot,\n onClick: this.open,\n 'aria-expanded': isInteractiveElement ? this.state.opened : undefined,\n 'aria-controls': !disabled ? this.menuId : undefined,\n 'aria-label': isInteractiveElement\n ? `${this.locale.selectChosenAriaLabel} ${\n this.getProps().type === 'year' ? this.locale.selectYearAriaLabel : this.locale.selectMonthAriaLabel\n } ${this.getItem(0)}`\n : undefined,\n };\n\n return (\n <Tag {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()}>\n {this.getItem(0)}\n <div\n className={cx({\n [styles.arrow(this.theme)]: true,\n [styles.arrowDisabled()]: Boolean(disabled),\n })}\n >\n <ArrowTriangleUpDownIcon size={12} />\n </div>\n </div>\n {this.state.opened && this.renderMenu(this.menuId)}\n </Tag>\n );\n }\n\n private renderMain2022() {\n const { disabled } = this.props;\n const width = this.getProps().width;\n const isInteractiveElement = !disabled;\n const Tag = isInteractiveElement ? 'button' : 'span';\n const rootProps = {\n className: cx(styles.root(this.theme), styles.root2022(), disabled && styles.disabled()),\n style: { width },\n ref: this.refRoot,\n onClick: this.open,\n 'aria-expanded': isInteractiveElement ? this.state.opened : undefined,\n 'aria-label': isInteractiveElement\n ? `${this.locale.selectChosenAriaLabel} ${\n this.getProps().type === 'year' ? this.locale.selectYearAriaLabel : this.locale.selectMonthAriaLabel\n } ${this.getItem(0)}`\n : undefined,\n };\n\n return (\n <Tag {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()}>\n {this.getItem(0)}\n </div>\n {isInteractiveElement && (\n <ArrowCollapseCVOpenIcon16Regular className={cx(globalClasses.arrow)} color=\"#ADADAD\" />\n )}\n {this.state.opened && this.renderMenu(this.menuId)}\n </Tag>\n );\n }\n\n private refRoot = (element: HTMLElement | null) => {\n this.root = element;\n };\n\n private setNodeTop = () => {\n const root = this.root;\n if (!root) {\n return;\n }\n if (this.timeout) {\n globalObject.clearTimeout(this.timeout);\n }\n this.timeout = globalObject.setTimeout(\n () =>\n this.setState({\n nodeTop: getDOMRect(root).top,\n }),\n 0,\n );\n };\n\n private disableItems(index: number) {\n const value = this.props.value + index;\n if (isNonNullable(this.props.maxValue) && isNonNullable(this.props.minValue)) {\n return value > this.props.maxValue || value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.minValue)) {\n return value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.maxValue)) {\n return value > this.props.maxValue;\n }\n }\n\n private renderMenu(id?: string): React.ReactNode {\n const { top, height, nodeTop } = this.state;\n\n let shift = this.state.pos % itemHeight;\n if (shift < 0) {\n shift += itemHeight;\n }\n\n const from = (this.state.pos - shift + top) / itemHeight;\n const to = from + Math.ceil((height + shift) / itemHeight);\n const items = [];\n\n for (let i = from; i < to; ++i) {\n const disableItems = this.disableItems(i) || false;\n const className = cx({\n [styles.menuItem(this.theme)]: true,\n [styles.menuItemSelected(this.theme)]: i === 0,\n [styles.menuItemActive(this.theme)]: i === this.state.current,\n [styles.menuItemDisabled(this.theme)]: disableItems,\n });\n const clickHandler = {\n onMouseDown: preventDefault,\n onClick: this.handleItemClick(i),\n };\n items.push(\n <button\n aria-label={`Выбрать ${this.getProps().type === 'year' ? 'год' : 'месяц'} ${this.getItem(i)}`}\n data-tid={DateSelectDataTids.menuItem}\n data-prop-disabled={disableItems}\n key={i}\n className={className}\n onMouseEnter={() => this.setState({ current: i })}\n onMouseLeave={() => this.setState({ current: null })}\n {...clickHandler}\n >\n {this.getItem(i)}\n </button>,\n );\n }\n const style: {\n left?: number | string;\n right?: number | string;\n top: number;\n width?: number | string;\n } = {\n top: top - 5,\n left: 0,\n right: 0,\n };\n\n const shiftStyle: React.CSSProperties = {\n position: 'relative',\n top: -shift,\n };\n\n const holderClass = cx({\n [styles.menuHolder(this.theme)]: true,\n [styles.isTopCapped()]: this.state.topCapped,\n [styles.isBotCapped()]: this.state.botCapped,\n });\n\n let dropdownOffset = -itemHeight;\n if (nodeTop < -top) {\n const overflowOffsetDelta = this.state.topCapped ? 6 : 17;\n dropdownOffset -= nodeTop + top - overflowOffsetDelta;\n }\n\n const iconUp = isTheme2022(this.theme) ? <ArrowCUpIcon16Regular color=\"#ADADAD\" /> : <ArrowChevronUpIcon />;\n const iconDown = isTheme2022(this.theme) ? <ArrowCDownIcon16Regular color=\"#ADADAD\" /> : <ArrowChevronDownIcon />;\n\n return (\n <RenderLayer onClickOutside={this.close} onFocusOutside={this.close} active>\n <DropdownContainer\n data-tid={DateSelectDataTids.menu}\n id={id}\n getParent={this.getAnchor}\n offsetY={dropdownOffset}\n offsetX={-10}\n >\n <div className={holderClass} style={style}>\n {!this.state.topCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuUp())}\n onClick={this.handleUp}\n onMouseDown={this.handleLongClickUp}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickUp}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>{iconUp}</span>\n </div>\n )}\n <div className={styles.itemsHolder()} style={{ height }}>\n <div ref={this.refItemsContainer} style={shiftStyle}>\n {items}\n </div>\n </div>\n {!this.state.botCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuDown())}\n onClick={this.handleDown}\n onMouseDown={this.handleLongClickDown}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickDown}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>{iconDown}</span>\n </div>\n )}\n </div>\n </DropdownContainer>\n </RenderLayer>\n );\n }\n\n private refItemsContainer = (element: HTMLElement | null) => {\n if (!this.itemsContainer && element) {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('wheel', this.handleWheel);\n }\n\n if (isMobile) {\n if (!this.itemsContainer && element) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.handleTouchMove);\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('touchstart', this.handleTouchStart);\n this.itemsContainer.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n this.itemsContainer = element;\n };\n\n private handleLongClickUp = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = globalObject.setTimeout(() => {\n this.setPositionRepeatTimer = globalObject.setInterval(() => this.setPosition(this.state.pos - itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickDown = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = globalObject.setTimeout(() => {\n this.setPositionRepeatTimer = globalObject.setInterval(() => this.setPosition(this.state.pos + itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickStop = () => {\n globalObject.clearTimeout(this.longClickTimer);\n globalObject.clearTimeout(this.setPositionRepeatTimer);\n };\n\n private getAnchor = () => this.root;\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n\n let deltaY = event.deltaY;\n if (event.deltaMode === 1) {\n deltaY *= itemHeight;\n } else if (event.deltaMode === 2) {\n deltaY *= itemHeight * 4;\n }\n const pos = this.state.pos + deltaY;\n this.setPosition(pos);\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n this.touchStartY = event.targetTouches[0].clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent) || !isBrowser(globalObject)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n const pixelRatio = globalObject.devicePixelRatio;\n\n const deltaY = ((this.touchStartY || 0) - clientY) / pixelRatio;\n const pos = this.state.pos + deltaY + deltaY / itemHeight;\n\n this.touchStartY = clientY;\n\n this.setPosition(pos);\n };\n\n private handleItemClick = (shift: number) => {\n return () => {\n const value = this.props.value + shift;\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n this.setState({ opened: false });\n };\n };\n\n private handleKey = (e: KeyboardEvent) => {\n if (this.state.opened && isKeyEscape(e)) {\n e.preventDefault();\n this.close();\n e.stopPropagation();\n }\n };\n\n private handleUp = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos - itemHeight * this.yearStep);\n };\n\n private handleDown = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos + itemHeight * this.yearStep);\n };\n\n private getItem(index: number) {\n const value = this.props.value + index;\n if (this.getProps().type === 'month') {\n return this.locale.months?.[value];\n }\n return value;\n }\n\n private setPosition(pos: number) {\n let top = itemsToMoveCount * itemHeight;\n let height = visibleYearsCount * itemHeight;\n if (this.getProps().type === 'month') {\n top = -this.props.value * itemHeight;\n height = monthsCount * itemHeight;\n }\n\n const minPos = this.getMinPos() - top;\n const maxPos = this.getMaxPos() - top - height + itemHeight;\n\n const calculatedPos = calculatePos(pos, minPos, maxPos);\n const topCapped = calculatedPos <= minPos;\n const botCapped = calculatedPos >= maxPos;\n\n this.setState({ pos: calculatedPos, top, height, topCapped, botCapped });\n }\n\n private getMinPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return -this.props.value * itemHeight;\n } else if (type === 'year') {\n return ((this.props.minValue || defaultMinYear) - this.props.value) * itemHeight;\n }\n return -Infinity; // Be defensive.\n }\n\n private getMaxPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return (visibleYearsCount - this.props.value) * itemHeight;\n } else if (type === 'year') {\n return ((this.props.maxValue || defaultMaxYear) - this.props.value) * itemHeight;\n }\n return Infinity; // Be defensive.\n }\n}\n\nfunction preventDefault(e: React.SyntheticEvent) {\n e.preventDefault();\n}\n"]}
|
|
@@ -28,6 +28,7 @@ export declare const DateSelectDataTids: {
|
|
|
28
28
|
declare type DefaultProps = Required<Pick<DateSelectProps, 'type' | 'width'>>;
|
|
29
29
|
export declare class DateSelect extends React.PureComponent<DateSelectProps, DateSelectState> {
|
|
30
30
|
static __KONTUR_REACT_UI__: string;
|
|
31
|
+
static displayName: string;
|
|
31
32
|
static propTypes: {
|
|
32
33
|
disabled: PropTypes.Requireable<boolean>;
|
|
33
34
|
type: PropTypes.Requireable<string>;
|
|
@@ -194,6 +194,7 @@ export var DropdownContainer = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
194
194
|
return DropdownContainer;
|
|
195
195
|
}(React.PureComponent);
|
|
196
196
|
DropdownContainer.__KONTUR_REACT_UI__ = 'DropdownContainer';
|
|
197
|
+
DropdownContainer.displayName = 'DropdownContainer';
|
|
197
198
|
DropdownContainer.defaultProps = {
|
|
198
199
|
align: 'left',
|
|
199
200
|
disablePortal: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DropdownContainer.tsx"],"names":["React","globalObject","isBrowser","isInstanceOf","LayoutEvents","RenderContainer","ZIndex","createPropsGetter","cx","isIE11","getDOMRect","styles","getManualPosition","getTopAlignment","DropdownContainer","props","getProps","defaultProps","ZIndexRef","element","dom","position","target","getParent","Element","targetRect","document","body","docEl","documentElement","Error","scrollX","pageXOffset","scrollLeft","scrollY","pageYOffset","scrollTop","left","right","align","docWidth","offsetWidth","offsetX","offsetY","bottom","top","distanceToBottom","clientHeight","dropdownHeight","getHeight","state","isDocumentElementRoot","scrollHeight","menuPos","setState","minWidth","getMinWidth","disablePortal","convertToRelativePosition","child","children","item","height","width","targetHeight","getIsDocumentElementRoot","componentDidMount","layoutSub","addListener","componentWillUnmount","remove","render","style","undefined","maxWidth","hasFixedWidth","content","id","alignRight","PureComponent","__KONTUR_REACT_UI__","htmlPosition","getComputedStyle","bodyPosition","hasLimitedHeightRoot","hasStaticRoot"],"mappings":"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","sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../RenderContainer';\nimport { ZIndex } from '../ZIndex';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { CommonProps } from '../CommonWrapper';\n\nimport { styles } from './DropdownContainer.styles';\nimport { getManualPosition, getTopAlignment } from './getManualPosition';\n\nexport interface DropdownContainerPosition {\n top: Nullable<number>;\n bottom: Nullable<number>;\n left: Nullable<number>;\n right: Nullable<number>;\n}\n\nexport interface DropdownContainerProps\n extends Pick<CommonProps, 'data-tid'>,\n Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n align?: 'left' | 'right';\n getParent: () => Nullable<Element>;\n children?: React.ReactNode;\n disablePortal?: boolean;\n offsetY?: number;\n offsetX?: number;\n hasFixedWidth?: boolean;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n}\n\nexport interface DropdownContainerState {\n position: Nullable<DropdownContainerPosition>;\n minWidth: number;\n isDocumentElementRoot?: boolean;\n}\n\ntype DefaultProps = Required<Pick<DropdownContainerProps, 'align' | 'disablePortal' | 'offsetY' | 'offsetX'>>;\n\nexport class DropdownContainer extends React.PureComponent<DropdownContainerProps, DropdownContainerState> {\n public static __KONTUR_REACT_UI__ = 'DropdownContainer';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n disablePortal: false,\n offsetX: 0,\n offsetY: -1,\n };\n\n private getProps = createPropsGetter(DropdownContainer.defaultProps);\n\n private dom: Nullable<HTMLDivElement>;\n private layoutSub: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n\n constructor(props: DropdownContainerProps) {\n super(props);\n\n this.state = { position: null, minWidth: 0, isDocumentElementRoot: getIsDocumentElementRoot() };\n }\n\n public componentDidMount() {\n this.position();\n this.layoutSub = LayoutEvents.addListener(this.position);\n }\n\n public componentWillUnmount() {\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n }\n\n public render() {\n let style: React.CSSProperties = {\n position: 'absolute',\n top: '0',\n };\n if (this.state.position) {\n const { top, bottom, left, right } = this.state.position;\n style = {\n ...style,\n top: top !== null ? top : undefined,\n bottom: bottom !== null ? bottom : undefined,\n left: left !== null ? left : undefined,\n right: right !== null ? right : undefined,\n minWidth: this.state.minWidth,\n maxWidth: this.props.hasFixedWidth ? this.state.minWidth : undefined,\n };\n }\n\n const content = (\n <ZIndex\n data-tid={this.props['data-tid']}\n id={this.props.id}\n priority={'DropdownContainer'}\n wrapperRef={this.ZIndexRef}\n style={style}\n className={cx({\n [styles.alignRight()]: this.getProps().align === 'right' && !isIE11,\n })}\n >\n {this.props.children}\n </ZIndex>\n );\n\n return this.props.disablePortal ? content : <RenderContainer>{content}</RenderContainer>;\n }\n\n private ZIndexRef = (element: Nullable<HTMLDivElement>) => {\n this.dom = element;\n };\n\n public position = () => {\n const target = this.props.getParent();\n const dom = this.dom;\n\n if (target && isInstanceOf(target, globalObject.Element) && dom && isBrowser(globalObject)) {\n const targetRect = getDOMRect(target);\n const { body, documentElement: docEl } = globalObject.document;\n\n if (!docEl) {\n throw Error('There is no \"documentElement\" in \"document\"');\n }\n\n const scrollX = globalObject.pageXOffset || docEl.scrollLeft || 0;\n const scrollY = globalObject.pageYOffset || docEl.scrollTop || 0;\n\n let left = null;\n let right = null;\n\n if (this.getProps().align === 'right') {\n const docWidth = docEl.offsetWidth || 0;\n right = docWidth - (targetRect.right + scrollX) + this.getProps().offsetX;\n } else {\n left = targetRect.left + scrollX + this.getProps().offsetX;\n }\n\n const offsetY = this.getProps().offsetY || 0;\n let bottom = null;\n let top: number | null = targetRect.bottom + scrollY + offsetY;\n\n const distanceToBottom = docEl.clientHeight - targetRect.bottom;\n const dropdownHeight = this.getHeight();\n\n const clientHeight = this.state.isDocumentElementRoot ? docEl.clientHeight : body.scrollHeight;\n if (distanceToBottom < dropdownHeight && targetRect.top > dropdownHeight) {\n top = null;\n bottom = getTopAlignment({ clientHeight, offsetY, scrollY, target });\n }\n\n const position = {\n top,\n left,\n right,\n bottom,\n ...getManualPosition({ menuPos: this.props.menuPos, target, offsetY, clientHeight, scrollY }),\n };\n\n this.setState({\n minWidth: this.getMinWidth(),\n position: this.getProps().disablePortal ? this.convertToRelativePosition(position) : position,\n });\n }\n };\n\n private getHeight = () => {\n if (!isInstanceOf(this.dom, globalObject.Element)) {\n return 0;\n }\n const child = this.dom.children.item(0);\n return getDOMRect(child).height;\n };\n\n private getMinWidth = () => {\n const target = this.props.getParent();\n return getDOMRect(target).width;\n };\n\n private convertToRelativePosition = (position: DropdownContainerPosition): DropdownContainerPosition => {\n const target = this.props.getParent();\n const offsetX = this.getProps().offsetX || 0;\n const offsetY = this.getProps().offsetY || 0;\n const { top, bottom, left, right } = position;\n if (isInstanceOf(target, globalObject.Element)) {\n const targetHeight = getDOMRect(target).height;\n return {\n top: top !== null ? targetHeight + offsetY : null,\n bottom: bottom !== null ? targetHeight + offsetY : null,\n left: left !== null ? offsetX : null,\n right: right !== null ? offsetX : null,\n };\n }\n return {\n top: offsetY,\n bottom: null,\n left: offsetX,\n right: null,\n };\n };\n}\n\nconst getIsDocumentElementRoot = () => {\n if (!isBrowser(globalObject)) {\n return false;\n }\n const { body, documentElement } = globalObject.document;\n const htmlPosition = globalObject.getComputedStyle(documentElement).position;\n const bodyPosition = globalObject.getComputedStyle(body).position;\n\n const hasLimitedHeightRoot = body.scrollHeight > body.clientHeight;\n const hasStaticRoot = htmlPosition === 'static' && bodyPosition === 'static';\n return hasLimitedHeightRoot || hasStaticRoot;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["DropdownContainer.tsx"],"names":["React","globalObject","isBrowser","isInstanceOf","LayoutEvents","RenderContainer","ZIndex","createPropsGetter","cx","isIE11","getDOMRect","styles","getManualPosition","getTopAlignment","DropdownContainer","props","getProps","defaultProps","ZIndexRef","element","dom","position","target","getParent","Element","targetRect","document","body","docEl","documentElement","Error","scrollX","pageXOffset","scrollLeft","scrollY","pageYOffset","scrollTop","left","right","align","docWidth","offsetWidth","offsetX","offsetY","bottom","top","distanceToBottom","clientHeight","dropdownHeight","getHeight","state","isDocumentElementRoot","scrollHeight","menuPos","setState","minWidth","getMinWidth","disablePortal","convertToRelativePosition","child","children","item","height","width","targetHeight","getIsDocumentElementRoot","componentDidMount","layoutSub","addListener","componentWillUnmount","remove","render","style","undefined","maxWidth","hasFixedWidth","content","id","alignRight","PureComponent","__KONTUR_REACT_UI__","displayName","htmlPosition","getComputedStyle","bodyPosition","hasLimitedHeightRoot","hasStaticRoot"],"mappings":"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","sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../RenderContainer';\nimport { ZIndex } from '../ZIndex';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { CommonProps } from '../CommonWrapper';\n\nimport { styles } from './DropdownContainer.styles';\nimport { getManualPosition, getTopAlignment } from './getManualPosition';\n\nexport interface DropdownContainerPosition {\n top: Nullable<number>;\n bottom: Nullable<number>;\n left: Nullable<number>;\n right: Nullable<number>;\n}\n\nexport interface DropdownContainerProps\n extends Pick<CommonProps, 'data-tid'>,\n Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n align?: 'left' | 'right';\n getParent: () => Nullable<Element>;\n children?: React.ReactNode;\n disablePortal?: boolean;\n offsetY?: number;\n offsetX?: number;\n hasFixedWidth?: boolean;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n}\n\nexport interface DropdownContainerState {\n position: Nullable<DropdownContainerPosition>;\n minWidth: number;\n isDocumentElementRoot?: boolean;\n}\n\ntype DefaultProps = Required<Pick<DropdownContainerProps, 'align' | 'disablePortal' | 'offsetY' | 'offsetX'>>;\n\nexport class DropdownContainer extends React.PureComponent<DropdownContainerProps, DropdownContainerState> {\n public static __KONTUR_REACT_UI__ = 'DropdownContainer';\n public static displayName = 'DropdownContainer';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n disablePortal: false,\n offsetX: 0,\n offsetY: -1,\n };\n\n private getProps = createPropsGetter(DropdownContainer.defaultProps);\n\n private dom: Nullable<HTMLDivElement>;\n private layoutSub: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n\n constructor(props: DropdownContainerProps) {\n super(props);\n\n this.state = { position: null, minWidth: 0, isDocumentElementRoot: getIsDocumentElementRoot() };\n }\n\n public componentDidMount() {\n this.position();\n this.layoutSub = LayoutEvents.addListener(this.position);\n }\n\n public componentWillUnmount() {\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n }\n\n public render() {\n let style: React.CSSProperties = {\n position: 'absolute',\n top: '0',\n };\n if (this.state.position) {\n const { top, bottom, left, right } = this.state.position;\n style = {\n ...style,\n top: top !== null ? top : undefined,\n bottom: bottom !== null ? bottom : undefined,\n left: left !== null ? left : undefined,\n right: right !== null ? right : undefined,\n minWidth: this.state.minWidth,\n maxWidth: this.props.hasFixedWidth ? this.state.minWidth : undefined,\n };\n }\n\n const content = (\n <ZIndex\n data-tid={this.props['data-tid']}\n id={this.props.id}\n priority={'DropdownContainer'}\n wrapperRef={this.ZIndexRef}\n style={style}\n className={cx({\n [styles.alignRight()]: this.getProps().align === 'right' && !isIE11,\n })}\n >\n {this.props.children}\n </ZIndex>\n );\n\n return this.props.disablePortal ? content : <RenderContainer>{content}</RenderContainer>;\n }\n\n private ZIndexRef = (element: Nullable<HTMLDivElement>) => {\n this.dom = element;\n };\n\n public position = () => {\n const target = this.props.getParent();\n const dom = this.dom;\n\n if (target && isInstanceOf(target, globalObject.Element) && dom && isBrowser(globalObject)) {\n const targetRect = getDOMRect(target);\n const { body, documentElement: docEl } = globalObject.document;\n\n if (!docEl) {\n throw Error('There is no \"documentElement\" in \"document\"');\n }\n\n const scrollX = globalObject.pageXOffset || docEl.scrollLeft || 0;\n const scrollY = globalObject.pageYOffset || docEl.scrollTop || 0;\n\n let left = null;\n let right = null;\n\n if (this.getProps().align === 'right') {\n const docWidth = docEl.offsetWidth || 0;\n right = docWidth - (targetRect.right + scrollX) + this.getProps().offsetX;\n } else {\n left = targetRect.left + scrollX + this.getProps().offsetX;\n }\n\n const offsetY = this.getProps().offsetY || 0;\n let bottom = null;\n let top: number | null = targetRect.bottom + scrollY + offsetY;\n\n const distanceToBottom = docEl.clientHeight - targetRect.bottom;\n const dropdownHeight = this.getHeight();\n\n const clientHeight = this.state.isDocumentElementRoot ? docEl.clientHeight : body.scrollHeight;\n if (distanceToBottom < dropdownHeight && targetRect.top > dropdownHeight) {\n top = null;\n bottom = getTopAlignment({ clientHeight, offsetY, scrollY, target });\n }\n\n const position = {\n top,\n left,\n right,\n bottom,\n ...getManualPosition({ menuPos: this.props.menuPos, target, offsetY, clientHeight, scrollY }),\n };\n\n this.setState({\n minWidth: this.getMinWidth(),\n position: this.getProps().disablePortal ? this.convertToRelativePosition(position) : position,\n });\n }\n };\n\n private getHeight = () => {\n if (!isInstanceOf(this.dom, globalObject.Element)) {\n return 0;\n }\n const child = this.dom.children.item(0);\n return getDOMRect(child).height;\n };\n\n private getMinWidth = () => {\n const target = this.props.getParent();\n return getDOMRect(target).width;\n };\n\n private convertToRelativePosition = (position: DropdownContainerPosition): DropdownContainerPosition => {\n const target = this.props.getParent();\n const offsetX = this.getProps().offsetX || 0;\n const offsetY = this.getProps().offsetY || 0;\n const { top, bottom, left, right } = position;\n if (isInstanceOf(target, globalObject.Element)) {\n const targetHeight = getDOMRect(target).height;\n return {\n top: top !== null ? targetHeight + offsetY : null,\n bottom: bottom !== null ? targetHeight + offsetY : null,\n left: left !== null ? offsetX : null,\n right: right !== null ? offsetX : null,\n };\n }\n return {\n top: offsetY,\n bottom: null,\n left: offsetX,\n right: null,\n };\n };\n}\n\nconst getIsDocumentElementRoot = () => {\n if (!isBrowser(globalObject)) {\n return false;\n }\n const { body, documentElement } = globalObject.document;\n const htmlPosition = globalObject.getComputedStyle(documentElement).position;\n const bodyPosition = globalObject.getComputedStyle(body).position;\n\n const hasLimitedHeightRoot = body.scrollHeight > body.clientHeight;\n const hasStaticRoot = htmlPosition === 'static' && bodyPosition === 'static';\n return hasLimitedHeightRoot || hasStaticRoot;\n};\n"]}
|
|
@@ -28,6 +28,7 @@ export interface DropdownContainerState {
|
|
|
28
28
|
declare type DefaultProps = Required<Pick<DropdownContainerProps, 'align' | 'disablePortal' | 'offsetY' | 'offsetX'>>;
|
|
29
29
|
export declare class DropdownContainer extends React.PureComponent<DropdownContainerProps, DropdownContainerState> {
|
|
30
30
|
static __KONTUR_REACT_UI__: string;
|
|
31
|
+
static displayName: string;
|
|
31
32
|
static defaultProps: DefaultProps;
|
|
32
33
|
private getProps;
|
|
33
34
|
private dom;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FileUploaderFileList.tsx"],"names":["React","useContext","FileUploaderControlContext","ThemeContext","FileUploaderFile","cx","useFileUploaderSize","jsStyles","FileUploaderFileDataTids","fileList","FileUploaderFileList","props","renderFile","size","files","theme","fileWrapperClass","small","fileWrapperSmall","medium","fileWrapperMedium","large","fileWrapperLarge","map","file","id","fileWrapper","displayName"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,0BAAT,QAA2C,+BAA3C;AACA,SAASC,YAAT,QAA6B,mCAA7B;AACA,SAASC,gBAAT,QAAiC,sCAAjC;;AAEA,SAASC,EAAT,QAAmB,8BAAnB;AACA,SAASC,mBAAT,QAAoC,8BAApC;;;AAGA,SAASC,QAAT,QAAyB,+BAAzB;;;;;;;AAOA,OAAO,IAAMC,wBAAwB,GAAG;AACtCC,EAAAA,QAAQ,EAAE,wBAD4B,EAAjC;;;AAIP,OAAO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,KAAD,EAAsC;AACxE,MAAQC,UAAR,GAA6BD,KAA7B,CAAQC,UAAR,CAAoBC,IAApB,GAA6BF,KAA7B,CAAoBE,IAApB;AACA,oBAAkBZ,UAAU,CAACC,0BAAD,CAA5B,CAAQY,KAAR,eAAQA,KAAR;AACA,MAAMC,KAAK,GAAGd,UAAU,CAACE,YAAD,CAAxB;;AAEA,MAAMa,gBAAgB,GAAGV,mBAAmB,CAACO,IAAD,EAAO;AACjDI,IAAAA,KAAK,EAAEV,QAAQ,CAACW,gBAAT,CAA0BH,KAA1B,CAD0C;AAEjDI,IAAAA,MAAM,EAAEZ,QAAQ,CAACa,iBAAT,CAA2BL,KAA3B,CAFyC;AAGjDM,IAAAA,KAAK,EAAEd,QAAQ,CAACe,gBAAT,CAA0BP,KAA1B,CAH0C,EAAP,CAA5C;;;AAMA;AACE,iCAAK,YAAUP,wBAAwB,CAACC,QAAxC;AACGK,IAAAA,KAAK,CAACS,GAAN,CAAU,UAACC,IAAD;AACT,qCAAK,GAAG,EAAEA,IAAI,CAACC,EAAf,EAAmB,SAAS,EAAEpB,EAAE,CAACE,QAAQ,CAACmB,WAAT,CAAqBX,KAArB,CAAD,EAA8BC,gBAA9B,CAAhC;AACE,qCAAK,SAAS,EAAET,QAAQ,CAACiB,IAAT,EAAhB;AACGZ,QAAAA,UAAU,CAACY,IAAD,eAAO,oBAAC,gBAAD,IAAkB,IAAI,EAAEA,IAAxB,EAA8B,QAAQ,MAAtC,EAAuC,QAAQ,MAA/C,EAAgD,IAAI,EAAEX,IAAtD,GAAP,CADb,CADF,CADS,GAAV,CADH,CADF;;;;;;AAWD,CAtBM;;AAwBPH,oBAAoB,CAACiB,WAArB,GAAmC,sBAAnC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { FileUploaderControlContext } from '../FileUploaderControlContext';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\nimport { FileUploaderFile } from '../FileUploaderFile/FileUploaderFile';\nimport { FileUploaderAttachedFile } from '../fileUtils';\nimport { cx } from '../../../lib/theming/Emotion';\nimport { useFileUploaderSize } from '../hooks/useFileUploaderSize';\nimport { SizeProp } from '../../../lib/types/props';\n\nimport { jsStyles } from './FileUploaderFileList.styles';\n\ninterface FileUploaderFileListProps {\n renderFile: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n size: SizeProp;\n}\n\nexport const FileUploaderFileDataTids = {\n fileList: 'FileUploader__fileList',\n} as const;\n\nexport const FileUploaderFileList = (props: FileUploaderFileListProps) => {\n const { renderFile, size } = props;\n const { files } = useContext(FileUploaderControlContext);\n const theme = useContext(ThemeContext);\n\n const fileWrapperClass = useFileUploaderSize(size, {\n small: jsStyles.fileWrapperSmall(theme),\n medium: jsStyles.fileWrapperMedium(theme),\n large: jsStyles.fileWrapperLarge(theme),\n });\n\n return (\n <div data-tid={FileUploaderFileDataTids.fileList}>\n {files.map((file) => (\n <div key={file.id} className={cx(jsStyles.fileWrapper(theme), fileWrapperClass)}>\n <div className={jsStyles.file()}>\n {renderFile(file, <FileUploaderFile file={file} showSize multiple size={size} />)}\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nFileUploaderFileList.displayName = 'FileUploaderFileList';\n"]}
|
|
1
|
+
{"version":3,"sources":["FileUploaderFileList.tsx"],"names":["React","useContext","FileUploaderControlContext","ThemeContext","FileUploaderFile","cx","useFileUploaderSize","jsStyles","FileUploaderFileDataTids","fileList","FileUploaderFileList","props","renderFile","size","files","theme","fileWrapperClass","small","fileWrapperSmall","medium","fileWrapperMedium","large","fileWrapperLarge","map","file","id","fileWrapper","__KONTUR_REACT_UI__","displayName"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,0BAAT,QAA2C,+BAA3C;AACA,SAASC,YAAT,QAA6B,mCAA7B;AACA,SAASC,gBAAT,QAAiC,sCAAjC;;AAEA,SAASC,EAAT,QAAmB,8BAAnB;AACA,SAASC,mBAAT,QAAoC,8BAApC;;;AAGA,SAASC,QAAT,QAAyB,+BAAzB;;;;;;;AAOA,OAAO,IAAMC,wBAAwB,GAAG;AACtCC,EAAAA,QAAQ,EAAE,wBAD4B,EAAjC;;;AAIP,OAAO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,KAAD,EAAsC;AACxE,MAAQC,UAAR,GAA6BD,KAA7B,CAAQC,UAAR,CAAoBC,IAApB,GAA6BF,KAA7B,CAAoBE,IAApB;AACA,oBAAkBZ,UAAU,CAACC,0BAAD,CAA5B,CAAQY,KAAR,eAAQA,KAAR;AACA,MAAMC,KAAK,GAAGd,UAAU,CAACE,YAAD,CAAxB;;AAEA,MAAMa,gBAAgB,GAAGV,mBAAmB,CAACO,IAAD,EAAO;AACjDI,IAAAA,KAAK,EAAEV,QAAQ,CAACW,gBAAT,CAA0BH,KAA1B,CAD0C;AAEjDI,IAAAA,MAAM,EAAEZ,QAAQ,CAACa,iBAAT,CAA2BL,KAA3B,CAFyC;AAGjDM,IAAAA,KAAK,EAAEd,QAAQ,CAACe,gBAAT,CAA0BP,KAA1B,CAH0C,EAAP,CAA5C;;;AAMA;AACE,iCAAK,YAAUP,wBAAwB,CAACC,QAAxC;AACGK,IAAAA,KAAK,CAACS,GAAN,CAAU,UAACC,IAAD;AACT,qCAAK,GAAG,EAAEA,IAAI,CAACC,EAAf,EAAmB,SAAS,EAAEpB,EAAE,CAACE,QAAQ,CAACmB,WAAT,CAAqBX,KAArB,CAAD,EAA8BC,gBAA9B,CAAhC;AACE,qCAAK,SAAS,EAAET,QAAQ,CAACiB,IAAT,EAAhB;AACGZ,QAAAA,UAAU,CAACY,IAAD,eAAO,oBAAC,gBAAD,IAAkB,IAAI,EAAEA,IAAxB,EAA8B,QAAQ,MAAtC,EAAuC,QAAQ,MAA/C,EAAgD,IAAI,EAAEX,IAAtD,GAAP,CADb,CADF,CADS,GAAV,CADH,CADF;;;;;;AAWD,CAtBM;;AAwBPH,oBAAoB,CAACiB,mBAArB,GAA2C,sBAA3C;AACAjB,oBAAoB,CAACkB,WAArB,GAAmC,sBAAnC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { FileUploaderControlContext } from '../FileUploaderControlContext';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\nimport { FileUploaderFile } from '../FileUploaderFile/FileUploaderFile';\nimport { FileUploaderAttachedFile } from '../fileUtils';\nimport { cx } from '../../../lib/theming/Emotion';\nimport { useFileUploaderSize } from '../hooks/useFileUploaderSize';\nimport { SizeProp } from '../../../lib/types/props';\n\nimport { jsStyles } from './FileUploaderFileList.styles';\n\ninterface FileUploaderFileListProps {\n renderFile: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n size: SizeProp;\n}\n\nexport const FileUploaderFileDataTids = {\n fileList: 'FileUploader__fileList',\n} as const;\n\nexport const FileUploaderFileList = (props: FileUploaderFileListProps) => {\n const { renderFile, size } = props;\n const { files } = useContext(FileUploaderControlContext);\n const theme = useContext(ThemeContext);\n\n const fileWrapperClass = useFileUploaderSize(size, {\n small: jsStyles.fileWrapperSmall(theme),\n medium: jsStyles.fileWrapperMedium(theme),\n large: jsStyles.fileWrapperLarge(theme),\n });\n\n return (\n <div data-tid={FileUploaderFileDataTids.fileList}>\n {files.map((file) => (\n <div key={file.id} className={cx(jsStyles.fileWrapper(theme), fileWrapperClass)}>\n <div className={jsStyles.file()}>\n {renderFile(file, <FileUploaderFile file={file} showSize multiple size={size} />)}\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nFileUploaderFileList.__KONTUR_REACT_UI__ = 'FileUploaderFileList';\nFileUploaderFileList.displayName = 'FileUploaderFileList';\n"]}
|
|
@@ -98,4 +98,4 @@ export var FocusTrap = rootNode(_class = (_temp = _class2 = /*#__PURE__*/functio
|
|
|
98
98
|
};
|
|
99
99
|
|
|
100
100
|
return FocusTrap;
|
|
101
|
-
}(React.PureComponent), _class2.__KONTUR_REACT_UI__ = 'FocusTrap', _temp)) || _class;
|
|
101
|
+
}(React.PureComponent), _class2.__KONTUR_REACT_UI__ = 'FocusTrap', _class2.displayName = 'FocusTrap', _temp)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FocusTrap.tsx"],"names":["React","globalObject","CommonWrapper","listen","listenFocusOutside","containsTargetOrRenderContainer","getRootNode","rootNode","isInstanceOf","FocusTrap","focusOutsideListenerToken","onClickOutside","e","props","onBlur","detachListeners","attachListeners","document","addEventListener","documentElement","handleNativeDocClick","event","target","srcElement","node","Element","componentWillUnmount","render","children","setRootNode","cloneElement","Children","only","onFocus","remove","removeEventListener","PureComponent","__KONTUR_REACT_UI__"],"mappings":"iPAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,YAAT,QAA6B,0BAA7B;;AAEA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,MAAM,IAAIC,kBAAnB,EAAuCC,+BAAvC,QAA8E,8BAA9E;AACA,SAASC,WAAT,EAAsBC,QAAtB,QAAoD,oBAApD;AACA,SAASC,YAAT,QAA6B,wBAA7B;;;;;;;;AAQA,WAAaC,SAAb,GADCF,QACD
|
|
1
|
+
{"version":3,"sources":["FocusTrap.tsx"],"names":["React","globalObject","CommonWrapper","listen","listenFocusOutside","containsTargetOrRenderContainer","getRootNode","rootNode","isInstanceOf","FocusTrap","focusOutsideListenerToken","onClickOutside","e","props","onBlur","detachListeners","attachListeners","document","addEventListener","documentElement","handleNativeDocClick","event","target","srcElement","node","Element","componentWillUnmount","render","children","setRootNode","cloneElement","Children","only","onFocus","remove","removeEventListener","PureComponent","__KONTUR_REACT_UI__","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { listen as listenFocusOutside, containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nexport interface FocusTrapProps extends CommonProps {\n children: React.ReactElement<any>;\n onBlur?: (event: FocusEvent) => void;\n}\n\n@rootNode\nexport class FocusTrap extends React.PureComponent<FocusTrapProps> {\n public static __KONTUR_REACT_UI__ = 'FocusTrap';\n public static displayName = 'FocusTrap';\n\n private setRootNode!: TSetRootNode;\n\n private focusOutsideListenerToken: {\n remove: () => void;\n } | null = null;\n\n public componentWillUnmount() {\n if (this.focusOutsideListenerToken) {\n this.detachListeners();\n }\n }\n\n public render() {\n const { children, onBlur } = this.props;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.cloneElement(React.Children.only(children), {\n onFocus: (...args: any[]) => {\n if (onBlur) {\n this.attachListeners();\n }\n if (children.props && children.props.onFocus) {\n children.props.onFocus(...args);\n }\n },\n })}\n </CommonWrapper>\n );\n }\n\n private onClickOutside = (e: Event) => {\n if (this.props.onBlur) {\n this.props.onBlur(e as FocusEvent);\n }\n this.detachListeners();\n };\n\n private attachListeners = () => {\n const rootNode = getRootNode(this);\n if (!this.focusOutsideListenerToken && rootNode) {\n this.focusOutsideListenerToken = listenFocusOutside([rootNode], this.onClickOutside);\n\n globalObject.document?.addEventListener(\n 'ontouchstart' in globalObject.document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n };\n\n private detachListeners() {\n if (this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken.remove();\n this.focusOutsideListenerToken = null;\n\n globalObject.document?.removeEventListener(\n 'ontouchstart' in globalObject.document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n }\n\n private handleNativeDocClick = (event: Event) => {\n const target = event.target || event.srcElement;\n const node = getRootNode(this);\n\n if (node && isInstanceOf(target, globalObject.Element) && containsTargetOrRenderContainer(target)(node)) {\n return;\n }\n\n this.onClickOutside(event);\n };\n}\n"]}
|
|
@@ -6,6 +6,7 @@ export interface FocusTrapProps extends CommonProps {
|
|
|
6
6
|
}
|
|
7
7
|
export declare class FocusTrap extends React.PureComponent<FocusTrapProps> {
|
|
8
8
|
static __KONTUR_REACT_UI__: string;
|
|
9
|
+
static displayName: string;
|
|
9
10
|
private setRootNode;
|
|
10
11
|
private focusOutsideListenerToken;
|
|
11
12
|
componentWillUnmount(): void;
|
|
@@ -104,6 +104,7 @@ export var HideBodyVerticalScroll = /*#__PURE__*/function (_React$Component) {
|
|
|
104
104
|
return HideBodyVerticalScroll;
|
|
105
105
|
}(React.Component);
|
|
106
106
|
HideBodyVerticalScroll.__KONTUR_REACT_UI__ = 'HideBodyVerticalScroll';
|
|
107
|
+
HideBodyVerticalScroll.displayName = 'HideBodyVerticalScroll';
|
|
107
108
|
|
|
108
109
|
var VerticalScrollCounter = function VerticalScrollCounter() {};
|
|
109
110
|
|
package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HideBodyVerticalScroll.tsx"],"names":["React","globalObject","isBrowser","getScrollWidth","css","disposeDocumentStyle","HideBodyVerticalScroll","initialScroll","master","updateScrollVisibility","shouldHide","hideScroll","documentElement","document","clientHeight","scrollHeight","documentComputedStyle","getComputedStyle","scrollbarConst","overflowY","scrollWidth","documentMargin","parseFloat","marginRight","className","generateDocumentStyle","attachStyle","element","classList","add","remove","restoreStyles","scrollTop","componentDidMount","counter","VerticalScrollCounter","increment","addEventListener","componentDidUpdate","componentWillUnmount","decrement","removeEventListener","render","Component","__KONTUR_REACT_UI__","RetailUIVerticalScrollCounter","get"],"mappings":"0LAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,YAAT,EAAuBC,SAAvB,QAAwC,0BAAxC;;AAEA,SAASC,cAAT,QAA+B,8BAA/B;AACA,SAASC,GAAT,QAAoB,2BAApB;;AAEA,IAAIC,oBAAyC,GAAG,IAAhD;;AAEA,WAAaC,sBAAb
|
|
1
|
+
{"version":3,"sources":["HideBodyVerticalScroll.tsx"],"names":["React","globalObject","isBrowser","getScrollWidth","css","disposeDocumentStyle","HideBodyVerticalScroll","initialScroll","master","updateScrollVisibility","shouldHide","hideScroll","documentElement","document","clientHeight","scrollHeight","documentComputedStyle","getComputedStyle","scrollbarConst","overflowY","scrollWidth","documentMargin","parseFloat","marginRight","className","generateDocumentStyle","attachStyle","element","classList","add","remove","restoreStyles","scrollTop","componentDidMount","counter","VerticalScrollCounter","increment","addEventListener","componentDidUpdate","componentWillUnmount","decrement","removeEventListener","render","Component","__KONTUR_REACT_UI__","displayName","RetailUIVerticalScrollCounter","get"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { css } from '../../lib/theming/Emotion';\n\nlet disposeDocumentStyle: (() => void) | null = null;\n\nexport class HideBodyVerticalScroll extends React.Component {\n public static __KONTUR_REACT_UI__ = 'HideBodyVerticalScroll';\n public static displayName = 'HideBodyVerticalScroll';\n\n private initialScroll = 0;\n private master = false;\n\n public componentDidMount() {\n const counter = VerticalScrollCounter.increment();\n if (counter === 1) {\n this.master = true;\n this.initialScroll = globalObject.document?.documentElement ? globalObject.document.documentElement.scrollTop : 0;\n this.updateScrollVisibility();\n globalObject.addEventListener?.('resize', this.updateScrollVisibility);\n }\n }\n\n public componentDidUpdate() {\n if (this.master) {\n this.updateScrollVisibility();\n }\n }\n\n public componentWillUnmount() {\n const counter = VerticalScrollCounter.decrement();\n if (counter === 0) {\n this.restoreStyles();\n globalObject.removeEventListener?.('resize', this.updateScrollVisibility);\n }\n }\n\n public render() {\n return null;\n }\n\n private updateScrollVisibility = () => {\n const shouldHide = !disposeDocumentStyle;\n if (shouldHide) {\n this.hideScroll();\n }\n };\n\n private hideScroll = () => {\n if (!isBrowser(globalObject)) {\n return;\n }\n const { documentElement } = globalObject.document;\n const { clientHeight, scrollHeight } = documentElement;\n const documentComputedStyle = globalObject.getComputedStyle(documentElement);\n const scrollbarConst = globalObject.getComputedStyle(documentElement).overflowY === 'scroll';\n const scrollWidth = clientHeight < scrollHeight || scrollbarConst ? getScrollWidth() : 0;\n const documentMargin = parseFloat(documentComputedStyle.marginRight || '');\n const className = generateDocumentStyle(documentMargin + scrollWidth);\n\n disposeDocumentStyle = this.attachStyle(documentElement, className);\n };\n\n private attachStyle = (element: HTMLElement, className: string) => {\n element.classList.add(className);\n return () => {\n element.classList.remove(className);\n };\n };\n\n private restoreStyles = () => {\n if (disposeDocumentStyle) {\n disposeDocumentStyle();\n disposeDocumentStyle = null;\n\n if (globalObject.document) {\n globalObject.document.documentElement.scrollTop = this.initialScroll;\n }\n }\n };\n}\n\nclass VerticalScrollCounter {\n public static increment = (): number => {\n const counter = globalObject.RetailUIVerticalScrollCounter || 0;\n return (globalObject.RetailUIVerticalScrollCounter = counter + 1);\n };\n\n public static decrement = (): number => {\n const counter = globalObject.RetailUIVerticalScrollCounter || 0;\n return (globalObject.RetailUIVerticalScrollCounter = counter - 1);\n };\n\n public static get = (): number => {\n return globalObject.RetailUIVerticalScrollCounter || 0;\n };\n}\n\nfunction generateDocumentStyle(documentMargin: number) {\n return css`\n overflow: hidden !important;\n margin-right: ${documentMargin}px !important;\n height: 100%;\n `;\n}\n"]}
|
|
@@ -70,4 +70,4 @@ var IgnoreLayerClickWrapper = rootNode(_class = (_temp = _class2 = /*#__PURE__*/
|
|
|
70
70
|
};
|
|
71
71
|
|
|
72
72
|
return IgnoreLayerClickWrapper;
|
|
73
|
-
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'IgnoreLayerClick', _temp)) || _class;
|
|
73
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'IgnoreLayerClick', _class2.displayName = 'IgnoreLayerClick', _temp)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["IgnoreLayerClick.tsx"],"names":["React","globalObject","getRootNode","rootNode","isInstanceOf","CommonWrapper","IgnoreLayerClick","render","child","Children","only","props","children","active","Component","IgnoreLayerClickWrapper","element","handleMouseDown","event","stopPropagation","componentDidMount","Element","addEventListener","componentWillUnmount","removeEventListener","setRootNode","__KONTUR_REACT_UI__"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,YAAT,QAA6B,0BAA7B;;AAEA,SAASC,WAAT,EAAsBC,QAAtB,QAAoD,oBAApD;AACA,SAASC,YAAT,QAA6B,wBAA7B;AACA,SAASC,aAAT,QAA8B,kBAA9B;;;;;;;AAOA,WAAaC,gBAAb;AACSC,EAAAA,MADT,GACE,kBAAgB;AACd,QAAMC,KAAK,GAAGR,KAAK,CAACS,QAAN,CAAeC,IAAf,CAAoB,KAAKC,KAAL,CAAWC,QAA/B,CAAd;AACA,WAAO,KAAKD,KAAL,CAAWE,MAAX,gBAAoB,oBAAC,uBAAD,QAA0BL,KAA1B,CAApB,GAAiFA,KAAxF;AACD,GAJH,2BAAsCR,KAAK,CAACc,SAA5C;;;;;;;AAWA;;AAEMC,uB,GADLZ,Q
|
|
1
|
+
{"version":3,"sources":["IgnoreLayerClick.tsx"],"names":["React","globalObject","getRootNode","rootNode","isInstanceOf","CommonWrapper","IgnoreLayerClick","render","child","Children","only","props","children","active","Component","IgnoreLayerClickWrapper","element","handleMouseDown","event","stopPropagation","componentDidMount","Element","addEventListener","componentWillUnmount","removeEventListener","setRootNode","__KONTUR_REACT_UI__","displayName"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,YAAT,QAA6B,0BAA7B;;AAEA,SAASC,WAAT,EAAsBC,QAAtB,QAAoD,oBAApD;AACA,SAASC,YAAT,QAA6B,wBAA7B;AACA,SAASC,aAAT,QAA8B,kBAA9B;;;;;;;AAOA,WAAaC,gBAAb;AACSC,EAAAA,MADT,GACE,kBAAgB;AACd,QAAMC,KAAK,GAAGR,KAAK,CAACS,QAAN,CAAeC,IAAf,CAAoB,KAAKC,KAAL,CAAWC,QAA/B,CAAd;AACA,WAAO,KAAKD,KAAL,CAAWE,MAAX,gBAAoB,oBAAC,uBAAD,QAA0BL,KAA1B,CAApB,GAAiFA,KAAxF;AACD,GAJH,2BAAsCR,KAAK,CAACc,SAA5C;;;;;;;AAWA;;AAEMC,uB,GADLZ,Q;;;;AAKSa,IAAAA,O,GAA0B,I;;;;;;;;;;;;;;;;;;;;;;;;;;AA0B1BC,IAAAA,e,GAAkB,UAACC,KAAD,EAAkB;AAC1CA,MAAAA,KAAK,CAACC,eAAN;AACD,K,uEAzBMC,iB,GAAP,6BAA2B,CACzB,IAAMJ,OAAO,GAAGd,WAAW,CAAC,IAAD,CAA3B,CACA,IAAIE,YAAY,CAACY,OAAD,EAAUf,YAAY,CAACoB,OAAvB,CAAhB,EAAiD,CAC/CL,OAAO,CAACM,gBAAR,CAAyB,WAAzB,EAAsC,KAAKL,eAA3C,EACA,KAAKD,OAAL,GAAeA,OAAf,CACD,CACF,C,SAEMO,oB,GAAP,gCAA8B,CAC5B,IAAI,KAAKP,OAAT,EAAkB,CAChB,KAAKA,OAAL,CAAaQ,mBAAb,CAAiC,WAAjC,EAA8C,KAAKP,eAAnD,EACA,KAAKD,OAAL,GAAe,IAAf,CACD,CACF,C,SAEMT,M,GAAP,kBAAgB,CACd,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,KAAKkB,WAAjC,IAAkD,KAAKd,KAAvD,GACGX,KAAK,CAACS,QAAN,CAAeC,IAAf,CAAoB,KAAKC,KAAL,CAAWC,QAA/B,CADH,CADF,CAKD,C,kCA5BmCZ,KAAK,CAACc,S,WAC5BY,mB,GAAsB,kB,UACtBC,W,GAAc,kB","sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { CommonWrapper } from '../CommonWrapper';\n\nexport interface IgnoreLayerClickProps {\n children: React.ReactNode;\n active: boolean;\n}\n\nexport class IgnoreLayerClick extends React.Component<IgnoreLayerClickProps> {\n public render() {\n const child = React.Children.only(this.props.children);\n return this.props.active ? <IgnoreLayerClickWrapper>{child}</IgnoreLayerClickWrapper> : child;\n }\n}\n\ninterface WrapperProps {\n children: React.ReactNode;\n}\n\n// NOTE Используется только в команде Контур.Бухгалтерия\n@rootNode\nclass IgnoreLayerClickWrapper extends React.Component<WrapperProps> {\n public static __KONTUR_REACT_UI__ = 'IgnoreLayerClick';\n public static displayName = 'IgnoreLayerClick';\n\n private element: Element | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n const element = getRootNode(this);\n if (isInstanceOf(element, globalObject.Element)) {\n element.addEventListener('mousedown', this.handleMouseDown);\n this.element = element;\n }\n }\n\n public componentWillUnmount() {\n if (this.element) {\n this.element.removeEventListener('mousedown', this.handleMouseDown);\n this.element = null;\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.Children.only(this.props.children)}\n </CommonWrapper>\n );\n }\n\n private handleMouseDown = (event: Event) => {\n event.stopPropagation();\n };\n}\n"]}
|
|
@@ -548,6 +548,6 @@ export var InputLikeText = rootNode(_class = (_temp = _class2 = /*#__PURE__*/fun
|
|
|
548
548
|
};
|
|
549
549
|
|
|
550
550
|
return InputLikeText;
|
|
551
|
-
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'InputLikeText', _class2.defaultProps = {
|
|
551
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'InputLikeText', _class2.displayName = 'InputLikeText', _class2.defaultProps = {
|
|
552
552
|
size: 'small'
|
|
553
553
|
}, _temp)) || _class;
|