@skbkontur/react-ui 4.1.2 → 4.2.2
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 +44 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +3 -0
- package/cjs/components/Autocomplete/Autocomplete.js +12 -3
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +3 -0
- package/cjs/components/Button/Button.js +8 -4
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.d.ts +1 -1
- package/cjs/components/Button/Button.styles.js +6 -6
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +3 -0
- package/cjs/components/Center/Center.js +8 -3
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +3 -0
- package/cjs/components/Checkbox/Checkbox.js +8 -2
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.md +48 -0
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +4 -1
- package/cjs/components/CurrencyInput/CurrencyInput.js +23 -5
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +6 -2
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +5 -0
- package/cjs/components/DatePicker/DatePicker.js +14 -3
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/Picker.js +7 -2
- package/cjs/components/DatePicker/Picker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +3 -0
- package/cjs/components/Dropdown/Dropdown.js +7 -2
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +5 -0
- package/cjs/components/FileUploader/FileUploader.js +10 -4
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +3 -0
- package/cjs/components/FxInput/FxInput.js +7 -3
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +4 -0
- package/cjs/components/Gapped/Gapped.js +9 -4
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +3 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +6 -2
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Group/Group.d.ts +3 -0
- package/cjs/components/Group/Group.js +7 -3
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +3 -0
- package/cjs/components/Input/Input.js +7 -3
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +4 -1
- package/cjs/components/Link/Link.js +8 -4
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +4 -0
- package/cjs/components/Loader/Loader.js +8 -3
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuHeader/MenuHeader.d.ts +3 -0
- package/cjs/components/MenuHeader/MenuHeader.js +7 -2
- package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +5 -1
- package/cjs/components/MenuItem/MenuItem.js +11 -5
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -0
- package/cjs/components/MenuSeparator/MenuSeparator.js +7 -3
- package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +5 -0
- package/cjs/components/Modal/Modal.js +9 -3
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalClose.js +3 -2
- package/cjs/components/Modal/ModalClose.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.d.ts +3 -0
- package/cjs/components/Modal/ModalFooter.js +8 -3
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +3 -0
- package/cjs/components/Modal/ModalHeader.js +9 -3
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +8 -1
- package/cjs/components/Paging/Paging.js +15 -7
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +5 -0
- package/cjs/components/PasswordInput/PasswordInput.js +13 -5
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +3 -0
- package/cjs/components/Radio/Radio.js +7 -3
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +9 -0
- package/cjs/components/RadioGroup/RadioGroup.js +21 -4
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +1 -1
- package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +4 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +14 -4
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +3 -0
- package/cjs/components/Select/Select.js +11 -3
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +4 -0
- package/cjs/components/SidePage/SidePage.js +7 -2
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.d.ts +3 -0
- package/cjs/components/SidePage/SidePageBody.js +10 -3
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.d.ts +3 -0
- package/cjs/components/SidePage/SidePageContainer.js +7 -2
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +3 -0
- package/cjs/components/SidePage/SidePageFooter.js +11 -3
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +4 -0
- package/cjs/components/SidePage/SidePageHeader.js +9 -4
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +3 -0
- package/cjs/components/Spinner/Spinner.js +7 -3
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +3 -0
- package/cjs/components/Sticky/Sticky.js +7 -3
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +3 -0
- package/cjs/components/Switcher/Switcher.js +7 -3
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Indicator.js +4 -2
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +3 -0
- package/cjs/components/Tabs/Tab.js +7 -2
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +4 -0
- package/cjs/components/Tabs/Tabs.js +12 -3
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +4 -0
- package/cjs/components/Textarea/Textarea.js +8 -3
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/TextareaCounter.js +10 -9
- package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +6 -0
- package/cjs/components/Toast/Toast.js +9 -2
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastStatic.js +1 -1
- package/cjs/components/Toast/ToastStatic.js.map +1 -1
- package/cjs/components/Toast/ToastView.js +5 -4
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +3 -0
- package/cjs/components/Toggle/Toggle.js +7 -3
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +3 -0
- package/cjs/components/Token/Token.js +8 -3
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +4 -0
- package/cjs/components/TokenInput/TokenInput.js +7 -2
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js +4 -3
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +4 -0
- package/cjs/components/Tooltip/Tooltip.js +9 -3
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +3 -0
- package/cjs/components/TooltipMenu/TooltipMenu.js +7 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/internal/Calendar/Calendar.d.ts +6 -0
- package/cjs/internal/Calendar/Calendar.js +9 -2
- package/cjs/internal/Calendar/Calendar.js.map +1 -1
- package/cjs/internal/Calendar/MonthView.js +5 -4
- package/cjs/internal/Calendar/MonthView.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js +4 -2
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +23 -5
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js +4 -2
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +6 -2
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DataTids/DATATIDS.md +12 -0
- package/cjs/internal/DataTids/DataTids.d.ts +12 -0
- package/cjs/internal/DataTids/DataTids.js +46 -0
- package/cjs/internal/DataTids/DataTids.js.map +1 -0
- package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
- package/cjs/internal/DataTids/DataTids.styles.js +41 -0
- package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
- package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
- package/cjs/internal/DataTids/componentsDataTids.js +16 -0
- package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
- package/cjs/internal/DateSelect/DateSelect.d.ts +4 -0
- package/cjs/internal/DateSelect/DateSelect.js +8 -3
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +14 -6
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +6 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +10 -4
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -0
- package/cjs/internal/InternalMenu/InternalMenu.js +8 -3
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -1
- package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
- package/cjs/internal/MaskedInput/MaskedInput.d.ts +3 -0
- package/cjs/internal/MaskedInput/MaskedInput.js +7 -3
- package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +3 -0
- package/cjs/internal/Menu/Menu.js +8 -3
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +10 -3
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +5 -0
- package/cjs/internal/Popup/Popup.js +10 -4
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.js +2 -1
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -0
- package/cjs/internal/PopupMenu/PopupMenu.js +9 -4
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -0
- package/cjs/internal/RenderLayer/RenderLayer.js +8 -3
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/icons/16px/index.js +1 -1
- package/cjs/internal/icons/16px/index.js.map +1 -1
- package/cjs/lib/listenFocusOutside.js +1 -1
- package/cjs/lib/listenFocusOutside.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +10 -6
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +3 -0
- package/components/Button/Button/Button.js +5 -1
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +3 -0
- package/components/Button/Button.styles/Button.styles.js +6 -6
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +1 -1
- package/components/Center/Center/Center.js +10 -5
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +3 -0
- package/components/Checkbox/Checkbox/Checkbox.js +4 -0
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +3 -0
- package/components/Checkbox/Checkbox.md +48 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +27 -12
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +4 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +6 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
- package/components/DatePicker/DatePicker/DatePicker.js +6 -0
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +5 -0
- package/components/DatePicker/Picker/Picker.js +3 -1
- package/components/DatePicker/Picker/Picker.js.map +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js +9 -5
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +3 -0
- package/components/FileUploader/FileUploader/FileUploader.js +9 -2
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +5 -0
- package/components/FxInput/FxInput/FxInput.js +6 -2
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +3 -0
- package/components/Gapped/Gapped/Gapped.js +12 -5
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +4 -0
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +4 -1
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +3 -0
- package/components/Group/Group/Group.js +4 -0
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +3 -0
- package/components/Input/Input/Input.js +11 -6
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +3 -0
- package/components/Link/Link/Link.js +11 -6
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +4 -1
- package/components/Loader/Loader/Loader.js +10 -6
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +4 -0
- package/components/MenuHeader/MenuHeader/MenuHeader.js +4 -0
- package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuHeader/MenuHeader.d.ts +3 -0
- package/components/MenuItem/MenuItem/MenuItem.js +16 -10
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +5 -1
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +4 -0
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
- package/components/MenuSeparator/MenuSeparator.d.ts +3 -0
- package/components/Modal/Modal/Modal.js +7 -2
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +5 -0
- package/components/Modal/ModalClose/ModalClose.js +2 -1
- package/components/Modal/ModalClose/ModalClose.js.map +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js +6 -2
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalFooter.d.ts +3 -0
- package/components/Modal/ModalHeader/ModalHeader.js +6 -2
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +3 -0
- package/components/Paging/Paging/Paging.js +12 -5
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +8 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +12 -6
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +5 -0
- package/components/Radio/Radio/Radio.js +10 -5
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +3 -0
- package/components/RadioGroup/RadioGroup/RadioGroup.js +23 -11
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +9 -0
- package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +1 -1
- package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +6 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +4 -0
- package/components/Select/Select/Select.js +4 -0
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +3 -0
- package/components/SidePage/SidePage/SidePage.js +6 -2
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +4 -0
- package/components/SidePage/SidePageBody/SidePageBody.js +10 -6
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +3 -0
- package/components/SidePage/SidePageContainer/SidePageContainer.js +10 -6
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageContainer.d.ts +3 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js +10 -6
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +3 -0
- package/components/SidePage/SidePageHeader/SidePageHeader.js +12 -7
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +4 -0
- package/components/Spinner/Spinner/Spinner.js +8 -4
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +3 -0
- package/components/Sticky/Sticky/Sticky.js +4 -0
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +3 -0
- package/components/Switcher/Switcher/Switcher.js +4 -0
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +3 -0
- package/components/Tabs/Indicator/Indicator.js +2 -0
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Tab/Tab.js +4 -0
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +3 -0
- package/components/Tabs/Tabs/Tabs.js +11 -6
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +4 -0
- package/components/Textarea/Textarea/Textarea.js +15 -9
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +4 -0
- package/components/Textarea/TextareaCounter/TextareaCounter.js +8 -3
- package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
- package/components/Toast/Toast/Toast.js +16 -10
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +6 -0
- package/components/Toast/ToastStatic/ToastStatic.js +2 -2
- package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
- package/components/Toast/ToastView/ToastView.js +4 -3
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toggle/Toggle/Toggle.js +8 -4
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +3 -0
- package/components/Token/Token/Token.js +4 -0
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +3 -0
- package/components/TokenInput/TokenInput/TokenInput.js +5 -0
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +4 -0
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -0
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js +7 -1
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +4 -0
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +16 -12
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +3 -0
- package/internal/Calendar/Calendar/Calendar.js +7 -1
- package/internal/Calendar/Calendar/Calendar.js.map +1 -1
- package/internal/Calendar/Calendar.d.ts +6 -0
- package/internal/Calendar/MonthView/MonthView.js +4 -3
- package/internal/Calendar/MonthView/MonthView.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +4 -5
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +12 -5
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +3 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
- package/internal/DataTids/DATATIDS.md +12 -0
- package/internal/DataTids/DataTids/DataTids.js +69 -0
- package/internal/DataTids/DataTids/DataTids.js.map +1 -0
- package/internal/DataTids/DataTids/package.json +6 -0
- package/internal/DataTids/DataTids.d.ts +12 -0
- package/internal/DataTids/DataTids.styles/DataTids.styles.js +22 -0
- package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
- package/internal/DataTids/DataTids.styles/package.json +6 -0
- package/internal/DataTids/DataTids.styles.d.ts +7 -0
- package/internal/DataTids/componentsDataTids/componentsDataTids.js +14 -0
- package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
- package/internal/DataTids/componentsDataTids/package.json +6 -0
- package/internal/DataTids/componentsDataTids.d.ts +5 -0
- package/internal/DateSelect/DateSelect/DateSelect.js +6 -2
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +4 -0
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +12 -5
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +8 -2
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +4 -0
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +4 -0
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +3 -0
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
- package/internal/MaskedInput/MaskedInput/MaskedInput.js +4 -0
- package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/internal/MaskedInput/MaskedInput.d.ts +3 -0
- package/internal/Menu/Menu/Menu.js +4 -0
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +3 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +6 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/internal/Popup/Popup/Popup.js +7 -2
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +5 -0
- package/internal/Popup/PopupPin/PopupPin.js +2 -0
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +7 -2
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +4 -0
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +10 -7
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +1 -0
- package/internal/icons/16px/index/index.js +1 -1
- package/internal/icons/16px/index/index.js.map +1 -1
- package/lib/listenFocusOutside/listenFocusOutside.js +1 -1
- package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["InputLikeText.tsx"],"names":["InputLikeText","rootNode","state","blinking","focused","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectInnerNode","start","end","isIE11","document","body","setTimeout","focusTimeout","clearInterval","window","isEdge","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","rest","leftSide","renderLeftSide","rightSide","renderRightSide","className","styles","root","jsInputStyles","theme","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","isMobile","wrapperClass","wrapper","userSelectContain","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","input","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","blinkTimeout","getNode","componentDidMount","MouseDrag","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","setRootNode","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","React","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\n\nimport { styles } from './InputLikeText.styles';\nimport { HiddenInput } from './HiddenInput';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder'>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps = { size: 'small' };\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = this.renderLeftSide();\n const rightSide = this.renderRightSide();\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n return (\n <span\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <input type=\"hidden\" value={value} />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid=\"InputLikeText__input\"\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = (e: React.MouseEvent<HTMLElement>) => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.props.size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["InputLikeText.tsx"],"names":["InputLikeTextDataTids","root","input","InputLikeText","rootNode","state","blinking","focused","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectInnerNode","start","end","isIE11","document","body","setTimeout","focusTimeout","clearInterval","window","isEdge","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","rest","leftSide","renderLeftSide","rightSide","renderRightSide","className","styles","jsInputStyles","theme","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","isMobile","wrapperClass","wrapper","userSelectContain","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","blinkTimeout","getNode","componentDidMount","MouseDrag","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","setRootNode","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","React","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\n\nimport { styles } from './InputLikeText.styles';\nimport { HiddenInput } from './HiddenInput';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n} as const;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps = { size: 'small' };\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = this.renderLeftSide();\n const rightSide = this.renderRightSide();\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n return (\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <input type=\"hidden\" value={value} />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = (e: React.MouseEvent<HTMLElement>) => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.props.size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
|
|
@@ -23,6 +23,9 @@ interface MenuState {
|
|
|
23
23
|
maxHeight: number | string;
|
|
24
24
|
scrollState: ScrollContainerScrollState;
|
|
25
25
|
}
|
|
26
|
+
export declare const InternalMenuDataTids: {
|
|
27
|
+
readonly root: "InternalMenu__root";
|
|
28
|
+
};
|
|
26
29
|
export declare class InternalMenu extends React.PureComponent<MenuProps, MenuState> {
|
|
27
30
|
static __KONTUR_REACT_UI__: string;
|
|
28
31
|
static defaultProps: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.InternalMenu = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.InternalMenuDataTids = exports.InternalMenu = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
2
|
|
|
3
3
|
var _utils = require("../../lib/utils");
|
|
4
4
|
var _identifiers = require("../../lib/events/keyboard/identifiers");
|
|
@@ -14,7 +14,7 @@ var _getDOMRect = require("../../lib/dom/getDOMRect");
|
|
|
14
14
|
|
|
15
15
|
var _InternalMenu = require("./InternalMenu.styles");
|
|
16
16
|
var _isActiveElement = require("./isActiveElement");
|
|
17
|
-
var _addIconPaddingIfPartOfMenu = require("./addIconPaddingIfPartOfMenu");var _class, _class2, _temp;
|
|
17
|
+
var _addIconPaddingIfPartOfMenu = require("./addIconPaddingIfPartOfMenu");var _class, _class2, _temp;
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
@@ -42,6 +42,10 @@ var _addIconPaddingIfPartOfMenu = require("./addIconPaddingIfPartOfMenu");var _c
|
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
var InternalMenuDataTids = {
|
|
48
|
+
root: 'InternalMenu__root' };exports.InternalMenuDataTids = InternalMenuDataTids;var
|
|
45
49
|
|
|
46
50
|
|
|
47
51
|
|
|
@@ -177,6 +181,7 @@ InternalMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/
|
|
|
177
181
|
|
|
178
182
|
|
|
179
183
|
|
|
184
|
+
|
|
180
185
|
|
|
181
186
|
|
|
182
187
|
renderHeader = function () {var _cx;
|
|
@@ -383,7 +388,7 @@ InternalMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/
|
|
|
383
388
|
if (_this.state.scrollState !== scrollState) {
|
|
384
389
|
_this.setState({ scrollState: scrollState });
|
|
385
390
|
}
|
|
386
|
-
};return _this;}var _proto = InternalMenu.prototype;_proto.componentDidMount = function componentDidMount() {this.setInitialSelection();this.calculateMaxHeight();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.shouldRecalculateMaxHeight(prevProps)) {this.calculateMaxHeight();}if (prevProps.maxHeight !== this.props.maxHeight) {this.setState({ maxHeight: this.props.maxHeight || 'none' });}};_proto.focus = function focus() {this.focusOnRootElement();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx3,_this3 = this;var enableIconPadding = _react.default.Children.toArray(this.props.children).some(function (x) {return /*#__PURE__*/_react.default.isValidElement(x) && x.props.icon;});if (this.isEmpty()) {return null;}return /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx3 = {}, _cx3[_InternalMenu.styles.root(this.theme)] = true, _cx3[_InternalMenu.styles.shadow(this.theme)] = this.props.hasShadow, _cx3)), style: { width: this.props.width, maxHeight: this.state.maxHeight }, onKeyDown: this.handleKeyDown, ref: this.setRootNode, tabIndex: 0 }, this.props.header ? this.renderHeader() : null, /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: this.props.maxHeight, preventWindowScroll: this.props.preventWindowScroll, onScrollStateChange: this.handleScrollStateChange }, _react.default.Children.map(this.props.children, function (child, index) {if (typeof child === 'string' || typeof child === 'number' || (0, _utils.isNullable)(child)) {return child;}if ( /*#__PURE__*/_react.default.isValidElement(child) && typeof child.type === 'string') {return child;}var modifiedChild = (0, _addIconPaddingIfPartOfMenu.addIconPaddingIfPartOfMenu)(child, enableIconPadding);if ((0, _isActiveElement.isActiveElement)(modifiedChild)) {var highlight = _this3.state.highlightedIndex === index;var ref = modifiedChild.ref;var originalRef = ref;if (highlight) {ref = function ref(menuItem) {return _this3.refHighlighted(originalRef, menuItem);};}return /*#__PURE__*/_react.default.cloneElement(modifiedChild, { ref: ref, state: highlight ? 'hover' : modifiedChild.props.state, onClick: _this3.select.bind(_this3, index, false), onMouseEnter: function onMouseEnter(event) {_this3.highlightItem(index);if ((0, _MenuItem.isMenuItem)(modifiedChild) && modifiedChild.props.onMouseEnter) {modifiedChild.props.onMouseEnter(event);}}, onMouseLeave: function onMouseLeave(event) {_this3.unhighlight();if ((0, _MenuItem.isMenuItem)(modifiedChild) && modifiedChild.props.onMouseLeave) {modifiedChild.props.onMouseLeave(event);}} });}return modifiedChild;})), this.props.footer ? this.renderFooter() : null);};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (!originalRef || typeof originalRef === 'string') {return;}if (typeof originalRef === 'function') {originalRef(menuItem);} else if (typeof originalRef === 'object') {// @ts-ignore see issue https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065
|
|
391
|
+
};return _this;}var _proto = InternalMenu.prototype;_proto.componentDidMount = function componentDidMount() {this.setInitialSelection();this.calculateMaxHeight();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.shouldRecalculateMaxHeight(prevProps)) {this.calculateMaxHeight();}if (prevProps.maxHeight !== this.props.maxHeight) {this.setState({ maxHeight: this.props.maxHeight || 'none' });}};_proto.focus = function focus() {this.focusOnRootElement();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx3,_this3 = this;var enableIconPadding = _react.default.Children.toArray(this.props.children).some(function (x) {return /*#__PURE__*/_react.default.isValidElement(x) && x.props.icon;});if (this.isEmpty()) {return null;}return /*#__PURE__*/_react.default.createElement("div", { "data-tid": InternalMenuDataTids.root, className: (0, _Emotion.cx)((_cx3 = {}, _cx3[_InternalMenu.styles.root(this.theme)] = true, _cx3[_InternalMenu.styles.shadow(this.theme)] = this.props.hasShadow, _cx3)), style: { width: this.props.width, maxHeight: this.state.maxHeight }, onKeyDown: this.handleKeyDown, ref: this.setRootNode, tabIndex: 0 }, this.props.header ? this.renderHeader() : null, /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: this.props.maxHeight, preventWindowScroll: this.props.preventWindowScroll, onScrollStateChange: this.handleScrollStateChange }, _react.default.Children.map(this.props.children, function (child, index) {if (typeof child === 'string' || typeof child === 'number' || (0, _utils.isNullable)(child)) {return child;}if ( /*#__PURE__*/_react.default.isValidElement(child) && typeof child.type === 'string') {return child;}var modifiedChild = (0, _addIconPaddingIfPartOfMenu.addIconPaddingIfPartOfMenu)(child, enableIconPadding);if ((0, _isActiveElement.isActiveElement)(modifiedChild)) {var highlight = _this3.state.highlightedIndex === index;var ref = modifiedChild.ref;var originalRef = ref;if (highlight) {ref = function ref(menuItem) {return _this3.refHighlighted(originalRef, menuItem);};}return /*#__PURE__*/_react.default.cloneElement(modifiedChild, { ref: ref, state: highlight ? 'hover' : modifiedChild.props.state, onClick: _this3.select.bind(_this3, index, false), onMouseEnter: function onMouseEnter(event) {_this3.highlightItem(index);if ((0, _MenuItem.isMenuItem)(modifiedChild) && modifiedChild.props.onMouseEnter) {modifiedChild.props.onMouseEnter(event);}}, onMouseLeave: function onMouseLeave(event) {_this3.unhighlight();if ((0, _MenuItem.isMenuItem)(modifiedChild) && modifiedChild.props.onMouseLeave) {modifiedChild.props.onMouseLeave(event);}} });}return modifiedChild;})), this.props.footer ? this.renderFooter() : null);};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (!originalRef || typeof originalRef === 'string') {return;}if (typeof originalRef === 'function') {originalRef(menuItem);} else if (typeof originalRef === 'object') {// @ts-ignore see issue https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065
|
|
387
392
|
originalRef.current = menuItem;}};_proto.select = function select(index, shouldHandleHref, event) {var item = childrenToArray(this.props.children)[index];if ((0, _isActiveElement.isActiveElement)(item)) {if (shouldHandleHref && item.props.href) {if (item.props.target) {window.open(item.props.href, item.props.target);} else {location.href = item.props.href;}}if (item.props.onClick) {item.props.onClick(event);}if (this.props.onItemClick) {this.props.onItemClick(event);}return true;}return false;};_proto.move = function move(step) {this.setState(function (state, props) {var children = childrenToArray(props.children);if (!children.some(_isActiveElement.isActiveElement)) {return null;}var index = state.highlightedIndex;do {index += step;if (!props.cyclicSelection && (index < 0 || index > children.length)) {return null;}if (index < 0) {index = children.length - 1;} else if (index > children.length) {index = 0;}var child = children[index];if ((0, _isActiveElement.isActiveElement)(child)) {return { highlightedIndex: index };}} while (index !== state.highlightedIndex);return null;}, this.scrollToSelected);};_proto.isEmpty = function isEmpty() {var children = this.props.children;return !children || !childrenToArray(children).filter(_utils.isNonNullable).length;};return InternalMenu;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'InternalMenu', _class2.defaultProps = { width: 'auto', maxHeight: 300, hasShadow: true, preventWindowScroll: true, cyclicSelection: true, initialSelectedItemIndex: -1 }, _temp)) || _class;exports.InternalMenu = InternalMenu;
|
|
388
393
|
|
|
389
394
|
function childrenToArray(children) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["InternalMenu.tsx"],"names":["InternalMenu","rootNode","state","highlightedIndex","maxHeight","props","scrollState","getProps","defaultProps","renderHeader","el","header","styles","fixedHeader","renderFooter","footer","fixedFooter","focusOnRootElement","focus","shouldRecalculateMaxHeight","prevProps","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","React","Children","count","calculateMaxHeight","parsedMaxHeight","window","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","setInitialSelection","i","initialSelectedItemIndex","moveDown","refScrollContainer","scrollContainer","scrollToSelected","highlighted","scrollTo","highlightItem","index","unhighlight","moveUp","move","handleKeyDown","e","onKeyDown","defaultPrevented","preventDefault","onClick","handleScrollStateChange","componentDidMount","componentDidUpdate","render","theme","renderMain","enableIconPadding","toArray","some","x","isValidElement","icon","isEmpty","root","shadow","hasShadow","width","setRootNode","preventWindowScroll","map","child","type","modifiedChild","highlight","ref","originalRef","menuItem","refHighlighted","cloneElement","select","bind","onMouseEnter","event","onMouseLeave","current","shouldHandleHref","item","childrenToArray","href","target","open","location","onItemClick","step","isActiveElement","cyclicSelection","length","filter","isNonNullable","PureComponent","__KONTUR_REACT_UI__","ret","forEach","push"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { isMenuItem, MenuItem, MenuItemProps } from '../../components/MenuItem';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './InternalMenu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { addIconPaddingIfPartOfMenu } from './addIconPaddingIfPartOfMenu';\n\ninterface MenuProps {\n children?: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Циклический перебор айтемов меню (по-дефолтну включен)\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\ninterface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n}\n\n@rootNode\nexport class InternalMenu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'InternalMenu';\n\n public static defaultProps = {\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.props.maxHeight || 'none',\n scrollState: 'top',\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private getProps = createPropsGetter(InternalMenu.defaultProps);\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.props.maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const enableIconPadding = React.Children.toArray(this.props.children).some(\n (x) => React.isValidElement(x) && x.props.icon,\n );\n\n if (this.isEmpty()) {\n return null;\n }\n\n return (\n <div\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.shadow(this.theme)]: this.props.hasShadow,\n })}\n style={{\n width: this.props.width,\n maxHeight: this.state.maxHeight,\n }}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header ? this.renderHeader() : null}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={this.props.maxHeight}\n preventWindowScroll={this.props.preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n >\n {React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n if (React.isValidElement(child) && typeof child.type === 'string') {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n const originalRef = ref;\n if (highlight) {\n ref = (menuItem) => this.refHighlighted(originalRef, menuItem);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: (event) => {\n this.highlightItem(index);\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseEnter) {\n modifiedChild.props.onMouseEnter(event);\n }\n },\n onMouseLeave: (event) => {\n this.unhighlight();\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseLeave) {\n modifiedChild.props.onMouseLeave(event);\n }\n },\n });\n }\n\n return modifiedChild;\n })}\n </ScrollContainer>\n {this.props.footer ? this.renderFooter() : null}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n ref={(el) => (this.header = el)}\n className={cx({\n [styles.header()]: true,\n [styles.fixedHeader()]: this.state.scrollState !== 'top',\n })}\n >\n {this.props.header}\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n ref={(el) => (this.footer = el)}\n className={cx({\n [styles.footer()]: true,\n [styles.fixedFooter()]: this.state.scrollState !== 'bottom',\n })}\n >\n {this.props.footer}\n </div>\n );\n };\n\n private focusOnRootElement = (): void => {\n getRootNode(this)?.focus();\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { maxHeight, header, footer, children } = this.props;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const { maxHeight } = this.props;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && typeof window !== 'undefined' && rootNode) {\n const rootElementMaxHeight = window.getComputedStyle(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.moveDown();\n }\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: string | ((instance: MenuItem | null) => void) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (!originalRef || typeof originalRef === 'string') {\n return;\n }\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n } else if (typeof originalRef === 'object') {\n // @ts-ignore see issue https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065\n originalRef.current = menuItem;\n }\n }\n\n private scrollToSelected = () => {\n if (this.scrollContainer && this.highlighted) {\n this.scrollContainer.scrollTo(getRootNode(this.highlighted));\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n\n if (isActiveElement(item)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n window.open(item.props.href, item.props.target);\n } else {\n location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event as React.MouseEvent<HTMLElement>);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlightItem = (index: number): void => {\n this.setState({ highlightedIndex: index });\n getRootNode(this)?.focus();\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n this.setState((state, props) => {\n const children = childrenToArray(props.children);\n if (!children.some(isActiveElement)) {\n return null;\n }\n let index = state.highlightedIndex;\n do {\n index += step;\n if (!props.cyclicSelection && (index < 0 || index > children.length)) {\n return null;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n return { highlightedIndex: index };\n }\n } while (index !== state.highlightedIndex);\n return null;\n }, this.scrollToSelected);\n }\n\n private moveUp = () => {\n this.move(-1);\n };\n\n private moveDown = () => {\n this.move(1);\n };\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(e);\n }\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(e)) {\n e.preventDefault();\n this.moveUp();\n } else if (isKeyArrowDown(e)) {\n e.preventDefault();\n this.moveDown();\n } else if (isKeyEnter(e)) {\n if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(e);\n }\n }\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["InternalMenu.tsx"],"names":["InternalMenuDataTids","root","InternalMenu","rootNode","state","highlightedIndex","maxHeight","props","scrollState","getProps","defaultProps","renderHeader","el","header","styles","fixedHeader","renderFooter","footer","fixedFooter","focusOnRootElement","focus","shouldRecalculateMaxHeight","prevProps","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","React","Children","count","calculateMaxHeight","parsedMaxHeight","window","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","setInitialSelection","i","initialSelectedItemIndex","moveDown","refScrollContainer","scrollContainer","scrollToSelected","highlighted","scrollTo","highlightItem","index","unhighlight","moveUp","move","handleKeyDown","e","onKeyDown","defaultPrevented","preventDefault","onClick","handleScrollStateChange","componentDidMount","componentDidUpdate","render","theme","renderMain","enableIconPadding","toArray","some","x","isValidElement","icon","isEmpty","shadow","hasShadow","width","setRootNode","preventWindowScroll","map","child","type","modifiedChild","highlight","ref","originalRef","menuItem","refHighlighted","cloneElement","select","bind","onMouseEnter","event","onMouseLeave","current","shouldHandleHref","item","childrenToArray","href","target","open","location","onItemClick","step","isActiveElement","cyclicSelection","length","filter","isNonNullable","PureComponent","__KONTUR_REACT_UI__","ret","forEach","push"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { isMenuItem, MenuItem, MenuItemProps } from '../../components/MenuItem';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './InternalMenu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { addIconPaddingIfPartOfMenu } from './addIconPaddingIfPartOfMenu';\n\ninterface MenuProps {\n children?: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Циклический перебор айтемов меню (по-дефолтну включен)\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\ninterface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n}\n\nexport const InternalMenuDataTids = {\n root: 'InternalMenu__root',\n} as const;\n\n@rootNode\nexport class InternalMenu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'InternalMenu';\n\n public static defaultProps = {\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.props.maxHeight || 'none',\n scrollState: 'top',\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private getProps = createPropsGetter(InternalMenu.defaultProps);\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.props.maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const enableIconPadding = React.Children.toArray(this.props.children).some(\n (x) => React.isValidElement(x) && x.props.icon,\n );\n\n if (this.isEmpty()) {\n return null;\n }\n\n return (\n <div\n data-tid={InternalMenuDataTids.root}\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.shadow(this.theme)]: this.props.hasShadow,\n })}\n style={{\n width: this.props.width,\n maxHeight: this.state.maxHeight,\n }}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header ? this.renderHeader() : null}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={this.props.maxHeight}\n preventWindowScroll={this.props.preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n >\n {React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n if (React.isValidElement(child) && typeof child.type === 'string') {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n const originalRef = ref;\n if (highlight) {\n ref = (menuItem) => this.refHighlighted(originalRef, menuItem);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: (event) => {\n this.highlightItem(index);\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseEnter) {\n modifiedChild.props.onMouseEnter(event);\n }\n },\n onMouseLeave: (event) => {\n this.unhighlight();\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseLeave) {\n modifiedChild.props.onMouseLeave(event);\n }\n },\n });\n }\n\n return modifiedChild;\n })}\n </ScrollContainer>\n {this.props.footer ? this.renderFooter() : null}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n ref={(el) => (this.header = el)}\n className={cx({\n [styles.header()]: true,\n [styles.fixedHeader()]: this.state.scrollState !== 'top',\n })}\n >\n {this.props.header}\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n ref={(el) => (this.footer = el)}\n className={cx({\n [styles.footer()]: true,\n [styles.fixedFooter()]: this.state.scrollState !== 'bottom',\n })}\n >\n {this.props.footer}\n </div>\n );\n };\n\n private focusOnRootElement = (): void => {\n getRootNode(this)?.focus();\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { maxHeight, header, footer, children } = this.props;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const { maxHeight } = this.props;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && typeof window !== 'undefined' && rootNode) {\n const rootElementMaxHeight = window.getComputedStyle(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.moveDown();\n }\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: string | ((instance: MenuItem | null) => void) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (!originalRef || typeof originalRef === 'string') {\n return;\n }\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n } else if (typeof originalRef === 'object') {\n // @ts-ignore see issue https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065\n originalRef.current = menuItem;\n }\n }\n\n private scrollToSelected = () => {\n if (this.scrollContainer && this.highlighted) {\n this.scrollContainer.scrollTo(getRootNode(this.highlighted));\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n\n if (isActiveElement(item)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n window.open(item.props.href, item.props.target);\n } else {\n location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event as React.MouseEvent<HTMLElement>);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlightItem = (index: number): void => {\n this.setState({ highlightedIndex: index });\n getRootNode(this)?.focus();\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n this.setState((state, props) => {\n const children = childrenToArray(props.children);\n if (!children.some(isActiveElement)) {\n return null;\n }\n let index = state.highlightedIndex;\n do {\n index += step;\n if (!props.cyclicSelection && (index < 0 || index > children.length)) {\n return null;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n return { highlightedIndex: index };\n }\n } while (index !== state.highlightedIndex);\n return null;\n }, this.scrollToSelected);\n }\n\n private moveUp = () => {\n this.move(-1);\n };\n\n private moveDown = () => {\n this.move(1);\n };\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(e);\n }\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(e)) {\n e.preventDefault();\n this.moveUp();\n } else if (isKeyArrowDown(e)) {\n e.preventDefault();\n this.moveDown();\n } else if (isKeyEnter(e)) {\n if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(e);\n }\n }\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n"]}
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
|
|
4
4
|
var styles = (0, _Emotion.memoizeStyle)({
|
|
5
5
|
root: function root(t) {
|
|
6
|
-
return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n overflow: auto;\n padding: 5px ", ";\n outline: none;\n background: ", ";\n "])),
|
|
6
|
+
return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n overflow: auto;\n padding: 5px ", ";\n outline: none;\n box-sizing: content-box;\n background: ", ";\n "])),
|
|
7
7
|
|
|
8
8
|
t.menuPaddingX,
|
|
9
9
|
|
|
10
|
+
|
|
10
11
|
t.bgSecondary);
|
|
11
12
|
|
|
12
13
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["InternalMenu.styles.ts"],"names":["styles","root","t","css","menuPaddingX","bgSecondary","shadow","menuBorder","menuShadow","header","footer","fixedHeader","fixedFooter"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,eAAOC,YAAP;;AAEiBD,IAAAA,CAAC,CAACE,YAFnB
|
|
1
|
+
{"version":3,"sources":["InternalMenu.styles.ts"],"names":["styles","root","t","css","menuPaddingX","bgSecondary","shadow","menuBorder","menuShadow","header","footer","fixedHeader","fixedFooter"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,eAAOC,YAAP;;AAEiBD,IAAAA,CAAC,CAACE,YAFnB;;;AAKgBF,IAAAA,CAAC,CAACG,WALlB;;AAOD,GATgC;;AAWjCC,EAAAA,MAXiC,kBAW1BJ,CAX0B,EAWhB;AACf,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACK,UADd;AAEgBL,IAAAA,CAAC,CAACM,UAFlB;;AAID,GAhBgC;;AAkBjCC,EAAAA,MAlBiC,oBAkBxB;AACP,eAAON,YAAP;;;;;;;;;;AAUD,GA7BgC;;AA+BjCO,EAAAA,MA/BiC,oBA+BxB;AACP,eAAOP,YAAP;;;;;;;;;;AAUD,GA1CgC;;AA4CjCQ,EAAAA,WA5CiC,yBA4CnB;AACZ,eAAOR,YAAP;;;AAGD,GAhDgC;;AAkDjCS,EAAAA,WAlDiC,yBAkDnB;AACZ,eAAOT,YAAP;;;AAGD,GAtDgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n overflow: auto;\n padding: 5px ${t.menuPaddingX};\n outline: none;\n box-sizing: content-box;\n background: ${t.bgSecondary};\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n\n header() {\n return css`\n top: -5px;\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n padding: 6px 18px 7px 8px;\n `;\n },\n\n footer() {\n return css`\n bottom: -5px;\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n padding: 6px 18px 7px 8px;\n `;\n },\n\n fixedHeader() {\n return css`\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);\n `;\n },\n\n fixedFooter() {\n return css`\n box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1);\n `;\n },\n});\n"]}
|
|
@@ -16,6 +16,9 @@ interface MaskedInputState {
|
|
|
16
16
|
emptyValue: string;
|
|
17
17
|
focused: boolean;
|
|
18
18
|
}
|
|
19
|
+
export declare const MaskedInputDataTids: {
|
|
20
|
+
readonly root: "MaskedInput__root";
|
|
21
|
+
};
|
|
19
22
|
export declare class MaskedInput extends React.PureComponent<MaskedInputProps, MaskedInputState> {
|
|
20
23
|
static __KONTUR_REACT_UI__: string;
|
|
21
24
|
static defaultProps: Partial<MaskedInputProps>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MaskedInput = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MaskedInputDataTids = exports.MaskedInput = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
2
|
var _reactInputMask = _interopRequireDefault(require("react-input-mask"));
|
|
3
3
|
|
|
4
4
|
var _utils = require("../../lib/utils");
|
|
@@ -7,7 +7,7 @@ var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
|
7
7
|
var _MaskCharLowLine = require("../MaskCharLowLine");
|
|
8
8
|
var _Emotion = require("../../lib/theming/Emotion");
|
|
9
9
|
|
|
10
|
-
var _MaskedInput = require("./MaskedInput.styles");var _excluded = ["maskChar", "alwaysShowMask", "hasLeftIcon", "hasRightIcon", "maxLength", "onValueChange", "onUnexpectedInput", "defaultValue", "style"];
|
|
10
|
+
var _MaskedInput = require("./MaskedInput.styles");var _excluded = ["maskChar", "alwaysShowMask", "hasLeftIcon", "hasRightIcon", "maxLength", "onValueChange", "onUnexpectedInput", "defaultValue", "style"];
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
@@ -26,6 +26,10 @@ var _MaskedInput = require("./MaskedInput.styles");var _excluded = ["maskChar",
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
+
var MaskedInputDataTids = {
|
|
30
|
+
root: 'MaskedInput__root' };exports.MaskedInputDataTids = MaskedInputDataTids;var
|
|
31
|
+
|
|
32
|
+
|
|
29
33
|
MaskedInput = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(MaskedInput, _React$PureComponent);
|
|
30
34
|
|
|
31
35
|
|
|
@@ -215,4 +219,4 @@ MaskedInput = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.
|
|
|
215
219
|
_this.props.onUnexpectedInput(_this.state.value);
|
|
216
220
|
}
|
|
217
221
|
};_this.state = { value: _this.getValue(_props), emptyValue: '', focused: false };return _this;}var _proto = MaskedInput.prototype;_proto.componentDidMount = function componentDidMount() {if (this.reactInputMask) {// FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue
|
|
218
|
-
this.reactInputMask.forceUpdate();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.props.value !== prevProps.value) {this.setState({ value: this.props.value ? this.props.value.toString() : '' });}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this$props = this.props,maskChar = _this$props.maskChar,alwaysShowMask = _this$props.alwaysShowMask,hasLeftIcon = _this$props.hasLeftIcon,hasRightIcon = _this$props.hasRightIcon,maxLength = _this$props.maxLength,onValueChange = _this$props.onValueChange,onUnexpectedInput = _this$props.onUnexpectedInput,defaultValue = _this$props.defaultValue,style = _this$props.style,inputProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);var _this$state = this.state,emptyValue = _this$state.emptyValue,value = _this$state.value;var leftHelper = (style == null ? void 0 : style.textAlign) !== 'right' && /*#__PURE__*/_react.default.createElement("span", { style: { color: 'transparent' } }, emptyValue.slice(0, value.length));var leftClass = (style == null ? void 0 : style.textAlign) !== 'right' && _MaskedInput.styles.inputMaskLeft();var rightHelper = emptyValue.slice(value.length).split('').map(function (_char, i) {return _char === '_' ? /*#__PURE__*/_react.default.createElement(_MaskCharLowLine.MaskCharLowLine, { key: i }) : _char;});return /*#__PURE__*/_react.default.createElement("span", { className: _MaskedInput.styles.container(), "x-ms-format-detection": "none" }, /*#__PURE__*/_react.default.createElement(_reactInputMask.default, (0, _extends2.default)({}, inputProps, { maskChar: null, beforeMaskedValueChange: this.preprocess, alwaysShowMask: false, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur, value: value, inputRef: this.refInput, ref: this.refMaskedInput, style: (0, _extends2.default)({}, style) })), this.isMaskVisible() && /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_MaskedInput.styles.inputMask(this.theme), leftClass) }, leftHelper, rightHelper));};return MaskedInput;}(_react.default.PureComponent);exports.MaskedInput = MaskedInput;MaskedInput.__KONTUR_REACT_UI__ = 'MaskedInput';MaskedInput.defaultProps = { maskChar: '_' };
|
|
222
|
+
this.reactInputMask.forceUpdate();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.props.value !== prevProps.value) {this.setState({ value: this.props.value ? this.props.value.toString() : '' });}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this$props = this.props,maskChar = _this$props.maskChar,alwaysShowMask = _this$props.alwaysShowMask,hasLeftIcon = _this$props.hasLeftIcon,hasRightIcon = _this$props.hasRightIcon,maxLength = _this$props.maxLength,onValueChange = _this$props.onValueChange,onUnexpectedInput = _this$props.onUnexpectedInput,defaultValue = _this$props.defaultValue,style = _this$props.style,inputProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);var _this$state = this.state,emptyValue = _this$state.emptyValue,value = _this$state.value;var leftHelper = (style == null ? void 0 : style.textAlign) !== 'right' && /*#__PURE__*/_react.default.createElement("span", { style: { color: 'transparent' } }, emptyValue.slice(0, value.length));var leftClass = (style == null ? void 0 : style.textAlign) !== 'right' && _MaskedInput.styles.inputMaskLeft();var rightHelper = emptyValue.slice(value.length).split('').map(function (_char, i) {return _char === '_' ? /*#__PURE__*/_react.default.createElement(_MaskCharLowLine.MaskCharLowLine, { key: i }) : _char;});return /*#__PURE__*/_react.default.createElement("span", { "data-tid": MaskedInputDataTids.root, className: _MaskedInput.styles.container(), "x-ms-format-detection": "none" }, /*#__PURE__*/_react.default.createElement(_reactInputMask.default, (0, _extends2.default)({}, inputProps, { maskChar: null, beforeMaskedValueChange: this.preprocess, alwaysShowMask: false, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur, value: value, inputRef: this.refInput, ref: this.refMaskedInput, style: (0, _extends2.default)({}, style) })), this.isMaskVisible() && /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_MaskedInput.styles.inputMask(this.theme), leftClass) }, leftHelper, rightHelper));};return MaskedInput;}(_react.default.PureComponent);exports.MaskedInput = MaskedInput;MaskedInput.__KONTUR_REACT_UI__ = 'MaskedInput';MaskedInput.defaultProps = { maskChar: '_' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MaskedInput.tsx"],"names":["MaskedInput","props","input","reactInputMask","getValue","value","toString","defaultValue","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","theme","renderMain","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","leftHelper","textAlign","color","slice","leftClass","styles","inputMaskLeft","rightHelper","map","_char","i","container","inputMask","React","PureComponent","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactInputMask, { InputState, MaskOptions } from 'react-input-mask';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MaskedInput.styles';\n\nexport interface MaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n emptyValue: string;\n focused: boolean;\n}\n\nexport class MaskedInput extends React.PureComponent<MaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'MaskedInput';\n\n public static defaultProps: Partial<MaskedInputProps> = {\n maskChar: '_',\n };\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: MaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: MaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, value.length)}</span>\n );\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(value.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={cx(styles.inputMask(this.theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: MaskedInputProps): string => {\n if (isNonNullable(props.value)) {\n return props.value.toString();\n }\n\n if (isNonNullable(props.defaultValue)) {\n return props.defaultValue.toString();\n }\n\n return '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: MaskOptions & Pick<MaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.props.maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["MaskedInput.tsx"],"names":["MaskedInputDataTids","root","MaskedInput","props","input","reactInputMask","getValue","value","toString","defaultValue","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","theme","renderMain","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","leftHelper","textAlign","color","slice","leftClass","styles","inputMaskLeft","rightHelper","map","_char","i","container","inputMask","React","PureComponent","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactInputMask, { InputState, MaskOptions } from 'react-input-mask';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MaskedInput.styles';\n\nexport interface MaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n emptyValue: string;\n focused: boolean;\n}\n\nexport const MaskedInputDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\nexport class MaskedInput extends React.PureComponent<MaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'MaskedInput';\n\n public static defaultProps: Partial<MaskedInputProps> = {\n maskChar: '_',\n };\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: MaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: MaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, value.length)}</span>\n );\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(value.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span data-tid={MaskedInputDataTids.root} className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={cx(styles.inputMask(this.theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: MaskedInputProps): string => {\n if (isNonNullable(props.value)) {\n return props.value.toString();\n }\n\n if (isNonNullable(props.defaultValue)) {\n return props.defaultValue.toString();\n }\n\n return '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: MaskOptions & Pick<MaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.props.maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"]}
|
|
@@ -15,6 +15,9 @@ export interface MenuProps {
|
|
|
15
15
|
export interface MenuState {
|
|
16
16
|
highlightedIndex: number;
|
|
17
17
|
}
|
|
18
|
+
export declare const MenuDataTids: {
|
|
19
|
+
readonly root: "Menu__root";
|
|
20
|
+
};
|
|
18
21
|
export declare class Menu extends React.Component<MenuProps, MenuState> {
|
|
19
22
|
static __KONTUR_REACT_UI__: string;
|
|
20
23
|
static defaultProps: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.Menu = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MenuDataTids = exports.Menu = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
2
|
|
|
3
3
|
var _utils = require("../../lib/utils");
|
|
4
4
|
var _ScrollContainer = require("../../components/ScrollContainer");
|
|
@@ -12,7 +12,7 @@ var _addIconPaddingIfPartOfMenu = require("../InternalMenu/addIconPaddingIfPartO
|
|
|
12
12
|
var _client = require("../../lib/client");
|
|
13
13
|
|
|
14
14
|
var _Menu = require("./Menu.styles");
|
|
15
|
-
var _isActiveElement = require("./isActiveElement");var _class, _class2, _temp;
|
|
15
|
+
var _isActiveElement = require("./isActiveElement");var _class, _class2, _temp;
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
@@ -32,6 +32,10 @@ var _isActiveElement = require("./isActiveElement");var _class, _class2, _temp;v
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
|
|
35
|
+
var MenuDataTids = {
|
|
36
|
+
root: 'Menu__root' };exports.MenuDataTids = MenuDataTids;var
|
|
37
|
+
|
|
38
|
+
|
|
35
39
|
|
|
36
40
|
Menu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Menu, _React$Component);function Menu() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
37
41
|
|
|
@@ -132,6 +136,7 @@ Menu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function
|
|
|
132
136
|
|
|
133
137
|
|
|
134
138
|
|
|
139
|
+
|
|
135
140
|
|
|
136
141
|
|
|
137
142
|
getChildList = function () {
|
|
@@ -241,7 +246,7 @@ Menu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function
|
|
|
241
246
|
* @public
|
|
242
247
|
*/;_proto.reset = function reset() {this.setState({ highlightedIndex: -1 });} /**
|
|
243
248
|
* @public
|
|
244
|
-
*/;_proto.hasHighlightedItem = function hasHighlightedItem() {return this.state.highlightedIndex !== -1;};_proto.highlightItem = function highlightItem(index) {this.highlight(index);};_proto.renderMain = function renderMain() {var _cx;if (this.isEmpty()) {return null;}return /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(getAlignRightClass(this.props), (_cx = {}, _cx[_Menu.styles.root(this.theme)] = true, _cx[_Menu.styles.shadow(this.theme)] = this.props.hasShadow, _cx)), style: getStyle(this.props), ref: this.setRootNode }, /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: this.props.maxHeight, preventWindowScroll: this.props.preventWindowScroll, disabled: this.props.disableScrollContainer }, /*#__PURE__*/_react.default.createElement("div", { className: _Menu.styles.scrollContainer(this.theme) }, this.getChildList())));};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (typeof originalRef === 'function') {originalRef(menuItem);}};_proto.select = function select(index, shouldHandleHref, event) {var item = childrenToArray(this.props.children)[index];if ((0, _isActiveElement.isActiveElement)(item)) {if (shouldHandleHref && item.props.href) {if (item.props.target) {window.open(item.props.href, item.props.target);} else {location.href = item.props.href;}}if (item.props.onClick) {item.props.onClick(event);}if (this.props.onItemClick) {this.props.onItemClick();}return true;}return false;};_proto.move = function move(step) {var _this3 = this;if (this.unmounted) {// NOTE workaround, because `ComboBox` call `process.nextTick` in reducer
|
|
249
|
+
*/;_proto.hasHighlightedItem = function hasHighlightedItem() {return this.state.highlightedIndex !== -1;};_proto.highlightItem = function highlightItem(index) {this.highlight(index);};_proto.renderMain = function renderMain() {var _cx;if (this.isEmpty()) {return null;}return /*#__PURE__*/_react.default.createElement("div", { "data-tid": MenuDataTids.root, className: (0, _Emotion.cx)(getAlignRightClass(this.props), (_cx = {}, _cx[_Menu.styles.root(this.theme)] = true, _cx[_Menu.styles.shadow(this.theme)] = this.props.hasShadow, _cx)), style: getStyle(this.props), ref: this.setRootNode }, /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: this.props.maxHeight, preventWindowScroll: this.props.preventWindowScroll, disabled: this.props.disableScrollContainer }, /*#__PURE__*/_react.default.createElement("div", { className: _Menu.styles.scrollContainer(this.theme) }, this.getChildList())));};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (typeof originalRef === 'function') {originalRef(menuItem);}};_proto.select = function select(index, shouldHandleHref, event) {var item = childrenToArray(this.props.children)[index];if ((0, _isActiveElement.isActiveElement)(item)) {if (shouldHandleHref && item.props.href) {if (item.props.target) {window.open(item.props.href, item.props.target);} else {location.href = item.props.href;}}if (item.props.onClick) {item.props.onClick(event);}if (this.props.onItemClick) {this.props.onItemClick();}return true;}return false;};_proto.move = function move(step) {var _this3 = this;if (this.unmounted) {// NOTE workaround, because `ComboBox` call `process.nextTick` in reducer
|
|
245
250
|
return;}var children = childrenToArray(this.props.children);var activeElements = children.filter(_isActiveElement.isActiveElement);if (!activeElements.length) {return;
|
|
246
251
|
}
|
|
247
252
|
var index = this.state.highlightedIndex;var _loop = function _loop() {
|