@skbkontur/react-ui 4.2.1 → 4.3.1
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 +46 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +9 -17
- package/cjs/components/Autocomplete/Autocomplete.js +10 -6
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +4 -5
- package/cjs/components/Button/Button.js +8 -3
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.mixins.js +1 -1
- package/cjs/components/Button/Button.mixins.js.map +1 -1
- package/cjs/components/Button/Button.styles.js +18 -18
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +4 -3
- package/cjs/components/Center/Center.js +9 -3
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.md +48 -0
- package/cjs/components/ComboBox/ComboBox.d.ts +8 -13
- package/cjs/components/ComboBox/ComboBox.js +12 -2
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -9
- package/cjs/components/CurrencyInput/CurrencyInput.js +19 -6
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +2 -0
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js +14 -2
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +15 -15
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +8 -11
- package/cjs/components/DateInput/DateInput.js +11 -3
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +7 -9
- package/cjs/components/DatePicker/DatePicker.js +12 -6
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +5 -5
- package/cjs/components/DropdownMenu/DropdownMenu.js +9 -3
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.md +8 -1
- package/cjs/components/FxInput/FxInput.d.ts +6 -6
- package/cjs/components/FxInput/FxInput.js +13 -10
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +7 -8
- package/cjs/components/Gapped/Gapped.js +12 -6
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +7 -14
- package/cjs/components/GlobalLoader/GlobalLoader.js +13 -9
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +8 -12
- package/cjs/components/Hint/Hint.js +15 -5
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Hint/Hint.md +14 -0
- package/cjs/components/Input/Input.d.ts +4 -3
- package/cjs/components/Input/Input.js +7 -4
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +7 -11
- package/cjs/components/Kebab/Kebab.js +14 -5
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +4 -4
- package/cjs/components/Link/Link.js +11 -4
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +7 -4
- package/cjs/components/Loader/Loader.js +14 -4
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +4 -3
- package/cjs/components/Modal/Modal.js +8 -3
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.js +1 -1
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.js +1 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +6 -9
- package/cjs/components/Paging/Paging.js +15 -5
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/PagingDefaultComponent.d.ts +1 -1
- package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +4 -3
- package/cjs/components/PasswordInput/PasswordInput.js +8 -3
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +4 -3
- package/cjs/components/Radio/Radio.js +8 -3
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -4
- package/cjs/components/RadioGroup/RadioGroup.js +4 -2
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +7 -8
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +4 -4
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js +12 -6
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +3 -12
- package/cjs/components/Select/Select.js +6 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/Select.styles.js +4 -4
- package/cjs/components/Select/Select.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +5 -6
- package/cjs/components/SidePage/SidePage.js +8 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +4 -2
- package/cjs/components/Spinner/Spinner.js +9 -3
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +5 -4
- package/cjs/components/Sticky/Sticky.js +9 -2
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +4 -4
- package/cjs/components/Tabs/Tab.js +11 -13
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +4 -4
- package/cjs/components/Tabs/Tabs.js +12 -3
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +8 -10
- package/cjs/components/Textarea/Textarea.js +10 -6
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +5 -6
- package/cjs/components/Toggle/Toggle.js +10 -4
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +19 -16
- package/cjs/components/TokenInput/TokenInput.js +75 -57
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +13 -19
- package/cjs/components/Tooltip/Tooltip.js +27 -24
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +5 -4
- package/cjs/components/TooltipMenu/TooltipMenu.js +11 -5
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/internal/BGRuler.d.ts +13 -15
- package/cjs/internal/BGRuler.js +16 -8
- package/cjs/internal/BGRuler.js.map +1 -1
- package/cjs/internal/Calendar/Calendar.d.ts +4 -13
- package/cjs/internal/Calendar/Calendar.js +10 -5
- package/cjs/internal/Calendar/Calendar.js.map +1 -1
- package/cjs/internal/Calendar/DayCellView.styles.js +1 -1
- package/cjs/internal/Calendar/DayCellView.styles.js.map +1 -1
- package/cjs/internal/Calendar/Month.js +16 -11
- package/cjs/internal/Calendar/Month.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/ComponentCombinator.d.ts +6 -8
- package/cjs/internal/ComponentCombinator.js +6 -2
- package/cjs/internal/ComponentCombinator.js.map +1 -1
- package/cjs/internal/ComponentTable.d.ts +5 -6
- package/cjs/internal/ComponentTable.js +11 -2
- package/cjs/internal/ComponentTable.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +4 -4
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +7 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
- package/cjs/internal/CustomComboBox/ComboBoxView.js +18 -10
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +4 -6
- package/cjs/internal/DateSelect/DateSelect.js +15 -9
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
- package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -5
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -3
- package/cjs/internal/InputLikeText/InputLikeText.js +7 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -9
- package/cjs/internal/InternalMenu/InternalMenu.js +36 -14
- 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 +5 -2
- package/cjs/internal/MaskedInput/MaskedInput.js +17 -6
- package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +4 -7
- package/cjs/internal/Menu/Menu.js +14 -4
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +11 -17
- package/cjs/internal/Popup/Popup.js +38 -19
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.d.ts +1 -1
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.d.ts +1 -1
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -11
- package/cjs/internal/PopupMenu/PopupMenu.js +8 -1
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +6 -4
- package/cjs/internal/RenderLayer/RenderLayer.js +15 -4
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/VariableValue.d.ts +5 -4
- package/cjs/internal/ThemePlayground/VariableValue.js +6 -1
- package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +7 -11
- package/cjs/internal/ZIndex/ZIndex.js +10 -3
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.js +1 -1
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/InstanceWithAnchorElement.d.ts +1 -1
- package/cjs/lib/InstanceWithAnchorElement.js.map +1 -1
- package/cjs/lib/SSRSafe.d.ts +2 -1
- package/cjs/lib/SSRSafe.js +9 -1
- package/cjs/lib/SSRSafe.js.map +1 -1
- package/cjs/lib/createPropsGetter.d.ts +2 -1
- package/cjs/lib/createPropsGetter.js +2 -0
- package/cjs/lib/createPropsGetter.js.map +1 -1
- package/cjs/lib/listenFocusOutside.d.ts +1 -1
- package/cjs/lib/listenFocusOutside.js.map +1 -1
- package/cjs/lib/rootNode/getRootNode.d.ts +3 -3
- package/cjs/lib/rootNode/getRootNode.js +7 -7
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +7 -7
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/typings/event-types.d.ts +2 -2
- package/components/Autocomplete/Autocomplete/Autocomplete.js +22 -12
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +9 -17
- package/components/Button/Button/Button.js +11 -5
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +4 -5
- package/components/Button/Button.mixins/Button.mixins.js +1 -1
- package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
- package/components/Button/Button.styles/Button.styles.js +18 -18
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Center/Center/Center.js +7 -5
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +4 -3
- package/components/Checkbox/Checkbox.md +48 -0
- package/components/ComboBox/ComboBox/ComboBox.js +3 -1
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +8 -13
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +28 -18
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +6 -9
- package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js +4 -2
- package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js.map +1 -1
- package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +2 -0
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +21 -15
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js +1 -0
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +17 -4
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +8 -11
- package/components/DatePicker/DatePicker/DatePicker.js +12 -9
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +7 -9
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +8 -2
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +5 -5
- package/components/FileUploader/FileUploader.md +8 -1
- package/components/FxInput/FxInput/FxInput.js +11 -9
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +6 -6
- package/components/Gapped/Gapped/Gapped.js +17 -8
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +7 -8
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +35 -16
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +7 -14
- package/components/Hint/Hint/Hint.js +30 -18
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +8 -12
- package/components/Hint/Hint.md +14 -0
- package/components/Input/Input/Input.js +9 -7
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +4 -3
- package/components/Kebab/Kebab/Kebab.js +19 -8
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +7 -11
- package/components/Link/Link/Link.js +9 -6
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +4 -4
- package/components/Loader/Loader/Loader.js +22 -17
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +7 -4
- package/components/Modal/Modal/Modal.js +3 -1
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +4 -3
- package/components/Modal/ModalFooter/ModalFooter.js +2 -2
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js +2 -2
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Paging/Paging/Paging.js +24 -14
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +6 -9
- package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
- package/components/Paging/PagingDefaultComponent.d.ts +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +7 -5
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +4 -3
- package/components/Radio/Radio/Radio.js +7 -5
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +4 -3
- package/components/RadioGroup/RadioGroup/RadioGroup.js +10 -10
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -4
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +11 -7
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +7 -8
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +4 -4
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -1
- package/components/Select/Select/Select.js +4 -3
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +3 -12
- package/components/Select/Select.styles/Select.styles.js +4 -4
- package/components/Select/Select.styles/Select.styles.js.map +1 -1
- package/components/SidePage/SidePage/SidePage.js +14 -9
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +5 -6
- package/components/Spinner/Spinner/Spinner.js +7 -5
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +4 -2
- package/components/Sticky/Sticky/Sticky.js +7 -4
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +5 -4
- package/components/Tabs/Tab/Tab.js +15 -7
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +4 -4
- package/components/Tabs/Tabs/Tabs.js +10 -8
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +4 -4
- package/components/Textarea/Textarea/Textarea.js +19 -14
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +8 -10
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toggle/Toggle/Toggle.js +12 -7
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +5 -6
- package/components/TokenInput/TokenInput/TokenInput.js +107 -77
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +19 -16
- package/components/Tooltip/Tooltip/Tooltip.js +60 -47
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +13 -19
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +15 -13
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +5 -4
- package/internal/BGRuler/BGRuler.js +11 -6
- package/internal/BGRuler/BGRuler.js.map +1 -1
- package/internal/BGRuler.d.ts +13 -15
- package/internal/Calendar/Calendar/Calendar.js +11 -5
- package/internal/Calendar/Calendar/Calendar.js.map +1 -1
- package/internal/Calendar/Calendar.d.ts +4 -13
- package/internal/Calendar/DayCellView.styles/DayCellView.styles.js +1 -1
- package/internal/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
- package/internal/Calendar/Month/Month.js +20 -11
- package/internal/Calendar/Month/Month.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
- package/internal/ComponentCombinator/ComponentCombinator.js +8 -5
- package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
- package/internal/ComponentCombinator.d.ts +6 -8
- package/internal/ComponentTable/ComponentTable.js +16 -4
- package/internal/ComponentTable/ComponentTable.js.map +1 -1
- package/internal/ComponentTable.d.ts +5 -6
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +4 -2
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +4 -4
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +21 -10
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
- package/internal/DateSelect/DateSelect/DateSelect.js +14 -11
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +4 -6
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +6 -10
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +4 -2
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +4 -3
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +37 -16
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +3 -9
- 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 +12 -6
- package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/internal/MaskedInput/MaskedInput.d.ts +5 -2
- package/internal/Menu/Menu/Menu.js +16 -4
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +4 -7
- package/internal/Popup/Popup/Popup.js +52 -35
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +11 -17
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/Popup/PopupHelper.d.ts +1 -1
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/Popup/PopupPin.d.ts +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -4
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +8 -11
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +18 -11
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +6 -4
- package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -2
- package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
- package/internal/ThemePlayground/VariableValue.d.ts +5 -4
- package/internal/ZIndex/ZIndex/ZIndex.js +15 -13
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +7 -11
- package/internal/themes/DefaultTheme/DefaultTheme.js +6 -6
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -1
- package/lib/InstanceWithAnchorElement.d.ts +1 -1
- package/lib/SSRSafe/SSRSafe.js +7 -0
- package/lib/SSRSafe/SSRSafe.js.map +1 -1
- package/lib/SSRSafe.d.ts +2 -1
- package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
- package/lib/createPropsGetter.d.ts +2 -1
- package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
- package/lib/listenFocusOutside.d.ts +1 -1
- package/lib/rootNode/getRootNode/getRootNode.js +8 -8
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/getRootNode.d.ts +3 -3
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +7 -7
- package/package.json +2 -2
- package/typings/event-types.d.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DateSelect.tsx"],"names":["itemHeight","visibleYearsCount","itemsToMoveCount","monthsCount","defaultMinYear","defaultMaxYear","calculatePos","pos","minPos","maxPos","DateSelectDataTids","caption","menuItem","DateSelect","DatePickerLocaleHelper","state","botCapped","current","height","opened","top","topCapped","nodeTop","Infinity","root","itemsContainer","longClickTimer","setPositionRepeatTimer","yearStep","touchStartY","open","props","disabled","setPosition","setState","close","refRoot","element","setNodeTop","timeout","clearTimeout","setTimeout","refItemsContainer","addEventListener","handleWheel","passive","removeEventListener","isMobile","handleTouchStart","handleTouchMove","handleLongClickUp","event","preventDefault","window","setInterval","handleLongClickDown","handleLongClickStop","getAnchor","WheelEvent","stopPropagation","deltaY","deltaMode","TouchEvent","targetTouches","clientY","changedTouches","pixelRatio","devicePixelRatio","handleItemClick","shift","e","value","onValueChange","handleKey","handleUp","handleDown","componentDidUpdate","componentDidMount","listener","LayoutEvents","addListener","componentWillUnmount","remove","render","theme","renderMain","width","rootProps","className","styles","Boolean","style","ref","getItem","arrow","arrowDisabled","renderMenu","disableItems","index","maxValue","minValue","from","to","Math","ceil","items","i","menuItemSelected","menuItemActive","menuItemDisabled","clickHandler","onMouseDown","onClick","push","left","right","shiftStyle","position","holderClass","menuHolder","isTopCapped","isBotCapped","dropdownOffset","overflowOffsetDelta","menu","menuUp","itemsHolder","menuDown","type","locale","months","getMinPos","getMaxPos","calculatedPos","React","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","number","isRequired","oneOfType","func","defaultProps","minMonth","maxMonth"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../../components/DatePicker/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../RenderLayer';\nimport { DropdownContainer } from '../DropdownContainer';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ArrowTriangleUpDownIcon, ArrowChevronDownIcon, ArrowChevronUpIcon } from '../icons/16px';\nimport { isMobile } from '../../lib/client';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './DateSelect.styles';\n\nconst itemHeight = 24;\nconst visibleYearsCount = 11;\nconst itemsToMoveCount = -5;\nconst monthsCount = 12;\nconst defaultMinYear = 1900;\nconst defaultMaxYear = 2100;\n\nexport interface DateSelectProps {\n disabled?: boolean | null;\n onValueChange: (value: number) => void;\n type?: 'month' | 'year';\n value: number;\n width?: number | string;\n minValue?: number;\n maxValue?: number;\n}\n\nexport interface DateSelectState {\n botCapped: boolean;\n current: Nullable<number>;\n height: number;\n opened: boolean;\n pos: number;\n top: number;\n topCapped: boolean;\n nodeTop: number;\n}\n\nconst calculatePos = (pos: number, minPos: number, maxPos: number) => {\n if (maxPos <= pos) {\n return maxPos;\n }\n\n if (minPos >= pos) {\n return minPos;\n }\n\n return pos;\n};\n\nexport const DateSelectDataTids = {\n caption: 'DateSelect__caption',\n menuItem: 'DateSelect__menuItem',\n} as const;\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateSelect extends React.PureComponent<DateSelectProps, DateSelectState> {\n public static __KONTUR_REACT_UI__ = 'DateSelect';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n type: PropTypes.string,\n\n value: PropTypes.number.isRequired,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onValueChange: PropTypes.func,\n\n minValue: PropTypes.number,\n\n maxValue: PropTypes.number,\n };\n\n public static defaultProps = {\n type: 'year',\n minMonth: 0,\n maxMonth: 11,\n width: 'auto',\n };\n\n public state = {\n botCapped: false,\n current: 0,\n height: 0,\n opened: false,\n pos: 0,\n top: 0,\n topCapped: false,\n nodeTop: Infinity,\n };\n\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private root: HTMLElement | null = null;\n private itemsContainer: HTMLElement | null = null;\n private listener: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private timeout: NodeJS.Timeout | undefined;\n private longClickTimer = 0;\n private setPositionRepeatTimer = 0;\n private yearStep = 3;\n private touchStartY: Nullable<number> = null;\n\n public componentDidUpdate() {\n this.setNodeTop();\n }\n\n public componentDidMount() {\n this.listener = LayoutEvents.addListener(this.setNodeTop);\n this.setNodeTop();\n window.addEventListener('keydown', this.handleKey);\n }\n\n public componentWillUnmount() {\n if (this.listener) {\n this.listener.remove();\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n if (this.longClickTimer) {\n clearTimeout(this.longClickTimer);\n }\n if (this.setPositionRepeatTimer) {\n clearTimeout(this.setPositionRepeatTimer);\n }\n window.removeEventListener('keydown', this.handleKey);\n }\n\n /**\n * @public\n */\n public open = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.state.opened) {\n return;\n }\n\n this.setPosition(0);\n this.setState({\n opened: true,\n current: 0,\n });\n };\n\n /**\n * @public\n */\n public close = () => {\n if (!this.state.opened) {\n return;\n }\n\n this.setState({ opened: false });\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { width, disabled } = this.props;\n const rootProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.disabled()]: Boolean(disabled),\n }),\n style: { width },\n ref: this.refRoot,\n };\n return (\n <span {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()} onClick={this.open}>\n {this.getItem(0)}\n <div\n className={cx({\n [styles.arrow(this.theme)]: true,\n [styles.arrowDisabled()]: Boolean(disabled),\n })}\n >\n <ArrowTriangleUpDownIcon size={12} />\n </div>\n </div>\n {this.state.opened && this.renderMenu()}\n </span>\n );\n }\n\n private refRoot = (element: HTMLElement | null) => {\n this.root = element;\n };\n\n private setNodeTop = () => {\n const root = this.root;\n if (!root) {\n return;\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n this.timeout = setTimeout(() =>\n this.setState({\n nodeTop: getDOMRect(root).top,\n }),\n );\n };\n\n private disableItems(index: number) {\n const value = this.props.value + index;\n if (isNonNullable(this.props.maxValue) && isNonNullable(this.props.minValue)) {\n return value > this.props.maxValue || value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.minValue)) {\n return value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.maxValue)) {\n return value > this.props.maxValue;\n }\n }\n\n private renderMenu(): React.ReactNode {\n const { top, height, nodeTop } = this.state;\n\n let shift = this.state.pos % itemHeight;\n if (shift < 0) {\n shift += itemHeight;\n }\n\n const from = (this.state.pos - shift + top) / itemHeight;\n const to = from + Math.ceil((height + shift) / itemHeight);\n const items = [];\n\n for (let i = from; i < to; ++i) {\n const disableItems = this.disableItems(i) || false;\n const className = cx({\n [styles.menuItem(this.theme)]: true,\n [styles.menuItemSelected(this.theme)]: i === 0,\n [styles.menuItemActive(this.theme)]: i === this.state.current,\n [styles.menuItemDisabled(this.theme)]: disableItems,\n });\n const clickHandler = {\n onMouseDown: preventDefault,\n onClick: this.handleItemClick(i),\n };\n items.push(\n <div\n data-tid={DateSelectDataTids.menuItem}\n data-prop-disabled={disableItems}\n key={i}\n className={className}\n onMouseEnter={() => this.setState({ current: i })}\n onMouseLeave={() => this.setState({ current: null })}\n {...clickHandler}\n >\n {this.getItem(i)}\n </div>,\n );\n }\n const style: {\n left?: number | string;\n right?: number | string;\n top: number;\n width?: number | string;\n } = {\n top: top - 5,\n left: 0,\n right: 0,\n };\n\n const shiftStyle: React.CSSProperties = {\n position: 'relative',\n top: -shift,\n };\n\n const holderClass = cx({\n [styles.menuHolder(this.theme)]: true,\n [styles.isTopCapped()]: this.state.topCapped,\n [styles.isBotCapped()]: this.state.botCapped,\n });\n\n let dropdownOffset = -itemHeight;\n if (nodeTop < -top) {\n const overflowOffsetDelta = this.state.topCapped ? 6 : 17;\n dropdownOffset -= nodeTop + top - overflowOffsetDelta;\n }\n\n return (\n <RenderLayer onClickOutside={this.close} onFocusOutside={this.close} active>\n <div>\n <DropdownContainer getParent={this.getAnchor} offsetY={dropdownOffset} offsetX={-10}>\n <div className={holderClass} style={style}>\n {!this.state.topCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuUp())}\n onClick={this.handleUp}\n onMouseDown={this.handleLongClickUp}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickUp}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronUpIcon />\n </span>\n </div>\n )}\n <div className={styles.itemsHolder()} style={{ height }}>\n <div ref={this.refItemsContainer} style={shiftStyle}>\n {items}\n </div>\n </div>\n {!this.state.botCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuDown())}\n onClick={this.handleDown}\n onMouseDown={this.handleLongClickDown}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickDown}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronDownIcon />\n </span>\n </div>\n )}\n </div>\n </DropdownContainer>\n </div>\n </RenderLayer>\n );\n }\n\n private refItemsContainer = (element: HTMLElement | null) => {\n if (!this.itemsContainer && element) {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('wheel', this.handleWheel);\n }\n\n if (isMobile) {\n if (!this.itemsContainer && element) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.handleTouchMove);\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('touchstart', this.handleTouchStart);\n this.itemsContainer.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n this.itemsContainer = element;\n };\n\n private handleLongClickUp = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos - itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickDown = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos + itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickStop = () => {\n clearTimeout(this.longClickTimer);\n clearTimeout(this.setPositionRepeatTimer);\n };\n\n private getAnchor = () => this.root;\n\n private handleWheel = (event: Event) => {\n if (!(event instanceof WheelEvent)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n\n let deltaY = event.deltaY;\n if (event.deltaMode === 1) {\n deltaY *= itemHeight;\n } else if (event.deltaMode === 2) {\n deltaY *= itemHeight * 4;\n }\n const pos = this.state.pos + deltaY;\n this.setPosition(pos);\n };\n\n private handleTouchStart = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n this.touchStartY = event.targetTouches[0].clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n const pixelRatio = window.devicePixelRatio;\n\n const deltaY = ((this.touchStartY || 0) - clientY) / pixelRatio;\n const pos = this.state.pos + deltaY + deltaY / itemHeight;\n\n this.touchStartY = clientY;\n\n this.setPosition(pos);\n };\n\n private handleItemClick = (shift: number) => {\n return (e: React.MouseEvent<HTMLElement>) => {\n const value = this.props.value + shift;\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n this.setState({ opened: false });\n };\n };\n\n private handleKey = (e: KeyboardEvent) => {\n if (this.state.opened && isKeyEscape(e)) {\n e.preventDefault();\n this.close();\n e.stopPropagation();\n }\n };\n\n private handleUp = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos - itemHeight * this.yearStep);\n };\n\n private handleDown = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos + itemHeight * this.yearStep);\n };\n\n private getItem(index: number) {\n const value = this.props.value + index;\n if (this.props.type === 'month') {\n return this.locale.months[value];\n }\n return value;\n }\n\n private setPosition(pos: number) {\n let top = itemsToMoveCount * itemHeight;\n let height = visibleYearsCount * itemHeight;\n if (this.props.type === 'month') {\n top = -this.props.value * itemHeight;\n height = monthsCount * itemHeight;\n }\n\n const minPos = this.getMinPos() - top;\n const maxPos = this.getMaxPos() - top - height + itemHeight;\n\n const calculatedPos = calculatePos(pos, minPos, maxPos);\n const topCapped = calculatedPos <= minPos;\n const botCapped = calculatedPos >= maxPos;\n\n this.setState({ pos: calculatedPos, top, height, topCapped, botCapped });\n }\n\n private getMinPos() {\n if (this.props.type === 'month') {\n return -this.props.value * itemHeight;\n } else if (this.props.type === 'year') {\n return ((this.props.minValue || defaultMinYear) - this.props.value) * itemHeight;\n }\n return -Infinity; // Be defensive.\n }\n\n private getMaxPos() {\n if (this.props.type === 'month') {\n return (visibleYearsCount - this.props.value) * itemHeight;\n } else if (this.props.type === 'year') {\n return ((this.props.maxValue || defaultMaxYear) - this.props.value) * itemHeight;\n }\n return Infinity; // Be defensive.\n }\n}\n\nfunction preventDefault(e: React.SyntheticEvent) {\n e.preventDefault();\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["DateSelect.tsx"],"names":["itemHeight","visibleYearsCount","itemsToMoveCount","monthsCount","defaultMinYear","defaultMaxYear","calculatePos","pos","minPos","maxPos","DateSelectDataTids","caption","menuItem","DateSelect","DatePickerLocaleHelper","getProps","defaultProps","state","botCapped","current","height","opened","top","topCapped","nodeTop","Infinity","root","itemsContainer","longClickTimer","setPositionRepeatTimer","yearStep","touchStartY","open","props","disabled","setPosition","setState","close","refRoot","element","setNodeTop","timeout","clearTimeout","setTimeout","refItemsContainer","addEventListener","handleWheel","passive","removeEventListener","isMobile","handleTouchStart","handleTouchMove","handleLongClickUp","event","preventDefault","window","setInterval","handleLongClickDown","handleLongClickStop","getAnchor","WheelEvent","stopPropagation","deltaY","deltaMode","TouchEvent","targetTouches","clientY","changedTouches","pixelRatio","devicePixelRatio","handleItemClick","shift","e","value","onValueChange","handleKey","handleUp","handleDown","componentDidUpdate","componentDidMount","listener","LayoutEvents","addListener","componentWillUnmount","remove","render","theme","renderMain","width","rootProps","className","styles","Boolean","style","ref","getItem","arrow","arrowDisabled","renderMenu","disableItems","index","maxValue","minValue","from","to","Math","ceil","items","i","menuItemSelected","menuItemActive","menuItemDisabled","clickHandler","onMouseDown","onClick","push","left","right","shiftStyle","position","holderClass","menuHolder","isTopCapped","isBotCapped","dropdownOffset","overflowOffsetDelta","menu","menuUp","itemsHolder","menuDown","type","locale","months","getMinPos","getMaxPos","calculatedPos","React","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","number","isRequired","oneOfType","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../../components/DatePicker/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../RenderLayer';\nimport { DropdownContainer } from '../DropdownContainer';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ArrowTriangleUpDownIcon, ArrowChevronDownIcon, ArrowChevronUpIcon } from '../icons/16px';\nimport { isMobile } from '../../lib/client';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './DateSelect.styles';\n\nconst itemHeight = 24;\nconst visibleYearsCount = 11;\nconst itemsToMoveCount = -5;\nconst monthsCount = 12;\nconst defaultMinYear = 1900;\nconst defaultMaxYear = 2100;\n\nexport interface DateSelectProps {\n disabled?: boolean | null;\n onValueChange: (value: number) => void;\n type?: 'month' | 'year';\n value: number;\n width?: number | string;\n minValue?: number;\n maxValue?: number;\n}\n\nexport interface DateSelectState {\n botCapped: boolean;\n current: Nullable<number>;\n height: number;\n opened: boolean;\n pos: number;\n top: number;\n topCapped: boolean;\n nodeTop: number;\n}\n\nconst calculatePos = (pos: number, minPos: number, maxPos: number) => {\n if (maxPos <= pos) {\n return maxPos;\n }\n\n if (minPos >= pos) {\n return minPos;\n }\n\n return pos;\n};\n\nexport const DateSelectDataTids = {\n caption: 'DateSelect__caption',\n menuItem: 'DateSelect__menuItem',\n} as const;\n\ntype DefaultProps = Required<Pick<DateSelectProps, 'type' | 'width'>>;\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateSelect extends React.PureComponent<DateSelectProps, DateSelectState> {\n public static __KONTUR_REACT_UI__ = 'DateSelect';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n type: PropTypes.string,\n\n value: PropTypes.number.isRequired,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onValueChange: PropTypes.func,\n\n minValue: PropTypes.number,\n\n maxValue: PropTypes.number,\n };\n\n public static defaultProps: DefaultProps = {\n type: 'year',\n width: 'auto',\n };\n\n private getProps = createPropsGetter(DateSelect.defaultProps);\n\n public state = {\n botCapped: false,\n current: 0,\n height: 0,\n opened: false,\n pos: 0,\n top: 0,\n topCapped: false,\n nodeTop: Infinity,\n };\n\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private root: HTMLElement | null = null;\n private itemsContainer: HTMLElement | null = null;\n private listener: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private timeout: NodeJS.Timeout | undefined;\n private longClickTimer = 0;\n private setPositionRepeatTimer = 0;\n private yearStep = 3;\n private touchStartY: Nullable<number> = null;\n\n public componentDidUpdate() {\n this.setNodeTop();\n }\n\n public componentDidMount() {\n this.listener = LayoutEvents.addListener(this.setNodeTop);\n this.setNodeTop();\n window.addEventListener('keydown', this.handleKey);\n }\n\n public componentWillUnmount() {\n if (this.listener) {\n this.listener.remove();\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n if (this.longClickTimer) {\n clearTimeout(this.longClickTimer);\n }\n if (this.setPositionRepeatTimer) {\n clearTimeout(this.setPositionRepeatTimer);\n }\n window.removeEventListener('keydown', this.handleKey);\n }\n\n /**\n * @public\n */\n public open = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.state.opened) {\n return;\n }\n\n this.setPosition(0);\n this.setState({\n opened: true,\n current: 0,\n });\n };\n\n /**\n * @public\n */\n public close = () => {\n if (!this.state.opened) {\n return;\n }\n\n this.setState({ opened: false });\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const width = this.getProps().width;\n const rootProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.disabled()]: Boolean(disabled),\n }),\n style: { width },\n ref: this.refRoot,\n };\n return (\n <span {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()} onClick={this.open}>\n {this.getItem(0)}\n <div\n className={cx({\n [styles.arrow(this.theme)]: true,\n [styles.arrowDisabled()]: Boolean(disabled),\n })}\n >\n <ArrowTriangleUpDownIcon size={12} />\n </div>\n </div>\n {this.state.opened && this.renderMenu()}\n </span>\n );\n }\n\n private refRoot = (element: HTMLElement | null) => {\n this.root = element;\n };\n\n private setNodeTop = () => {\n const root = this.root;\n if (!root) {\n return;\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n this.timeout = setTimeout(() =>\n this.setState({\n nodeTop: getDOMRect(root).top,\n }),\n );\n };\n\n private disableItems(index: number) {\n const value = this.props.value + index;\n if (isNonNullable(this.props.maxValue) && isNonNullable(this.props.minValue)) {\n return value > this.props.maxValue || value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.minValue)) {\n return value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.maxValue)) {\n return value > this.props.maxValue;\n }\n }\n\n private renderMenu(): React.ReactNode {\n const { top, height, nodeTop } = this.state;\n\n let shift = this.state.pos % itemHeight;\n if (shift < 0) {\n shift += itemHeight;\n }\n\n const from = (this.state.pos - shift + top) / itemHeight;\n const to = from + Math.ceil((height + shift) / itemHeight);\n const items = [];\n\n for (let i = from; i < to; ++i) {\n const disableItems = this.disableItems(i) || false;\n const className = cx({\n [styles.menuItem(this.theme)]: true,\n [styles.menuItemSelected(this.theme)]: i === 0,\n [styles.menuItemActive(this.theme)]: i === this.state.current,\n [styles.menuItemDisabled(this.theme)]: disableItems,\n });\n const clickHandler = {\n onMouseDown: preventDefault,\n onClick: this.handleItemClick(i),\n };\n items.push(\n <div\n data-tid={DateSelectDataTids.menuItem}\n data-prop-disabled={disableItems}\n key={i}\n className={className}\n onMouseEnter={() => this.setState({ current: i })}\n onMouseLeave={() => this.setState({ current: null })}\n {...clickHandler}\n >\n {this.getItem(i)}\n </div>,\n );\n }\n const style: {\n left?: number | string;\n right?: number | string;\n top: number;\n width?: number | string;\n } = {\n top: top - 5,\n left: 0,\n right: 0,\n };\n\n const shiftStyle: React.CSSProperties = {\n position: 'relative',\n top: -shift,\n };\n\n const holderClass = cx({\n [styles.menuHolder(this.theme)]: true,\n [styles.isTopCapped()]: this.state.topCapped,\n [styles.isBotCapped()]: this.state.botCapped,\n });\n\n let dropdownOffset = -itemHeight;\n if (nodeTop < -top) {\n const overflowOffsetDelta = this.state.topCapped ? 6 : 17;\n dropdownOffset -= nodeTop + top - overflowOffsetDelta;\n }\n\n return (\n <RenderLayer onClickOutside={this.close} onFocusOutside={this.close} active>\n <div>\n <DropdownContainer getParent={this.getAnchor} offsetY={dropdownOffset} offsetX={-10}>\n <div className={holderClass} style={style}>\n {!this.state.topCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuUp())}\n onClick={this.handleUp}\n onMouseDown={this.handleLongClickUp}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickUp}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronUpIcon />\n </span>\n </div>\n )}\n <div className={styles.itemsHolder()} style={{ height }}>\n <div ref={this.refItemsContainer} style={shiftStyle}>\n {items}\n </div>\n </div>\n {!this.state.botCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuDown())}\n onClick={this.handleDown}\n onMouseDown={this.handleLongClickDown}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickDown}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronDownIcon />\n </span>\n </div>\n )}\n </div>\n </DropdownContainer>\n </div>\n </RenderLayer>\n );\n }\n\n private refItemsContainer = (element: HTMLElement | null) => {\n if (!this.itemsContainer && element) {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('wheel', this.handleWheel);\n }\n\n if (isMobile) {\n if (!this.itemsContainer && element) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.handleTouchMove);\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('touchstart', this.handleTouchStart);\n this.itemsContainer.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n this.itemsContainer = element;\n };\n\n private handleLongClickUp = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos - itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickDown = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos + itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickStop = () => {\n clearTimeout(this.longClickTimer);\n clearTimeout(this.setPositionRepeatTimer);\n };\n\n private getAnchor = () => this.root;\n\n private handleWheel = (event: Event) => {\n if (!(event instanceof WheelEvent)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n\n let deltaY = event.deltaY;\n if (event.deltaMode === 1) {\n deltaY *= itemHeight;\n } else if (event.deltaMode === 2) {\n deltaY *= itemHeight * 4;\n }\n const pos = this.state.pos + deltaY;\n this.setPosition(pos);\n };\n\n private handleTouchStart = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n this.touchStartY = event.targetTouches[0].clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n const pixelRatio = window.devicePixelRatio;\n\n const deltaY = ((this.touchStartY || 0) - clientY) / pixelRatio;\n const pos = this.state.pos + deltaY + deltaY / itemHeight;\n\n this.touchStartY = clientY;\n\n this.setPosition(pos);\n };\n\n private handleItemClick = (shift: number) => {\n return (e: React.MouseEvent<HTMLElement>) => {\n const value = this.props.value + shift;\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n this.setState({ opened: false });\n };\n };\n\n private handleKey = (e: KeyboardEvent) => {\n if (this.state.opened && isKeyEscape(e)) {\n e.preventDefault();\n this.close();\n e.stopPropagation();\n }\n };\n\n private handleUp = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos - itemHeight * this.yearStep);\n };\n\n private handleDown = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos + itemHeight * this.yearStep);\n };\n\n private getItem(index: number) {\n const value = this.props.value + index;\n if (this.getProps().type === 'month') {\n return this.locale.months[value];\n }\n return value;\n }\n\n private setPosition(pos: number) {\n let top = itemsToMoveCount * itemHeight;\n let height = visibleYearsCount * itemHeight;\n if (this.getProps().type === 'month') {\n top = -this.props.value * itemHeight;\n height = monthsCount * itemHeight;\n }\n\n const minPos = this.getMinPos() - top;\n const maxPos = this.getMaxPos() - top - height + itemHeight;\n\n const calculatedPos = calculatePos(pos, minPos, maxPos);\n const topCapped = calculatedPos <= minPos;\n const botCapped = calculatedPos >= maxPos;\n\n this.setState({ pos: calculatedPos, top, height, topCapped, botCapped });\n }\n\n private getMinPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return -this.props.value * itemHeight;\n } else if (type === 'year') {\n return ((this.props.minValue || defaultMinYear) - this.props.value) * itemHeight;\n }\n return -Infinity; // Be defensive.\n }\n\n private getMaxPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return (visibleYearsCount - this.props.value) * itemHeight;\n } else if (type === 'year') {\n return ((this.props.maxValue || defaultMaxYear) - this.props.value) * itemHeight;\n }\n return Infinity; // Be defensive.\n }\n}\n\nfunction preventDefault(e: React.SyntheticEvent) {\n e.preventDefault();\n}\n"]}
|
|
@@ -8,7 +8,7 @@ export interface DropdownContainerPosition {
|
|
|
8
8
|
}
|
|
9
9
|
export interface DropdownContainerProps {
|
|
10
10
|
align?: 'left' | 'right';
|
|
11
|
-
getParent: () => Nullable<
|
|
11
|
+
getParent: () => Nullable<Element>;
|
|
12
12
|
children?: React.ReactNode;
|
|
13
13
|
disablePortal?: boolean;
|
|
14
14
|
offsetY?: number;
|
|
@@ -20,14 +20,10 @@ export interface DropdownContainerState {
|
|
|
20
20
|
minWidth: number;
|
|
21
21
|
isDocumentElementRoot?: boolean;
|
|
22
22
|
}
|
|
23
|
+
declare type DefaultProps = Required<Pick<DropdownContainerProps, 'align' | 'disablePortal' | 'offsetY' | 'offsetX'>>;
|
|
23
24
|
export declare class DropdownContainer extends React.PureComponent<DropdownContainerProps, DropdownContainerState> {
|
|
24
25
|
static __KONTUR_REACT_UI__: string;
|
|
25
|
-
static defaultProps:
|
|
26
|
-
align: string;
|
|
27
|
-
disablePortal: boolean;
|
|
28
|
-
offsetX: number;
|
|
29
|
-
offsetY: number;
|
|
30
|
-
};
|
|
26
|
+
static defaultProps: DefaultProps;
|
|
31
27
|
private getProps;
|
|
32
28
|
private dom;
|
|
33
29
|
private layoutSub;
|
|
@@ -42,3 +38,4 @@ export declare class DropdownContainer extends React.PureComponent<DropdownConta
|
|
|
42
38
|
private getMinWidth;
|
|
43
39
|
private convertToRelativePosition;
|
|
44
40
|
}
|
|
41
|
+
export {};
|
|
@@ -31,6 +31,8 @@ var _DropdownContainer = require("./DropdownContainer.styles");function _getRequ
|
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
34
|
+
|
|
35
|
+
|
|
34
36
|
|
|
35
37
|
|
|
36
38
|
|
|
@@ -126,14 +128,14 @@ DropdownContainer = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsL
|
|
|
126
128
|
var left = null;
|
|
127
129
|
var right = null;
|
|
128
130
|
|
|
129
|
-
if (_this.
|
|
131
|
+
if (_this.getProps().align === 'right') {
|
|
130
132
|
var docWidth = docEl.offsetWidth || 0;
|
|
131
133
|
right = docWidth - (targetRect.right + scrollX) + _this.getProps().offsetX;
|
|
132
134
|
} else {
|
|
133
135
|
left = targetRect.left + scrollX + _this.getProps().offsetX;
|
|
134
136
|
}
|
|
135
137
|
|
|
136
|
-
var
|
|
138
|
+
var offsetY = _this.getProps().offsetY || 0;
|
|
137
139
|
var bottom = null;
|
|
138
140
|
var top = targetRect.bottom + scrollY + offsetY;
|
|
139
141
|
|
|
@@ -156,7 +158,7 @@ DropdownContainer = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsL
|
|
|
156
158
|
|
|
157
159
|
_this.setState({
|
|
158
160
|
minWidth: _this.getMinWidth(),
|
|
159
|
-
position: _this.
|
|
161
|
+
position: _this.getProps().disablePortal ? _this.convertToRelativePosition(position) : position });
|
|
160
162
|
|
|
161
163
|
}
|
|
162
164
|
};_this.
|
|
@@ -176,7 +178,8 @@ DropdownContainer = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsL
|
|
|
176
178
|
|
|
177
179
|
convertToRelativePosition = function (position) {
|
|
178
180
|
var target = _this.props.getParent();
|
|
179
|
-
var
|
|
181
|
+
var offsetX = _this.getProps().offsetX || 0;
|
|
182
|
+
var offsetY = _this.getProps().offsetY || 0;
|
|
180
183
|
var top = position.top,bottom = position.bottom,left = position.left,right = position.right;
|
|
181
184
|
if (target && _this.isElement(target)) {
|
|
182
185
|
var targetHeight = (0, _getDOMRect.getDOMRect)(target).height;
|
|
@@ -193,7 +196,7 @@ DropdownContainer = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsL
|
|
|
193
196
|
left: offsetX,
|
|
194
197
|
right: null };
|
|
195
198
|
|
|
196
|
-
};_this.state = { position: null, minWidth: 0, isDocumentElementRoot: getIsDocumentElementRoot() };return _this;}var _proto = DropdownContainer.prototype;_proto.componentDidMount = function componentDidMount() {this.position();this.layoutSub = LayoutEvents.addListener(this.position);};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutSub) {this.layoutSub.remove();}};_proto.render = function render() {var _cx;var style = { position: 'absolute', top: '0' };if (this.state.position) {var _this$state$position = this.state.position,top = _this$state$position.top,bottom = _this$state$position.bottom,left = _this$state$position.left,right = _this$state$position.right;style = (0, _extends2.default)({}, style, { top: top !== null ? top : undefined, bottom: bottom !== null ? bottom : undefined, left: left !== null ? left : undefined, right: right !== null ? right : undefined, minWidth: this.state.minWidth, maxWidth: this.props.hasFixedWidth ? this.state.minWidth : undefined });}var content = /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'DropdownContainer', wrapperRef: this.ZIndexRef, style: style, className: (0, _Emotion.cx)((_cx = {}, _cx[_DropdownContainer.styles.alignRight()] = this.
|
|
199
|
+
};_this.state = { position: null, minWidth: 0, isDocumentElementRoot: getIsDocumentElementRoot() };return _this;}var _proto = DropdownContainer.prototype;_proto.componentDidMount = function componentDidMount() {this.position();this.layoutSub = LayoutEvents.addListener(this.position);};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutSub) {this.layoutSub.remove();}};_proto.render = function render() {var _cx;var style = { position: 'absolute', top: '0' };if (this.state.position) {var _this$state$position = this.state.position,top = _this$state$position.top,bottom = _this$state$position.bottom,left = _this$state$position.left,right = _this$state$position.right;style = (0, _extends2.default)({}, style, { top: top !== null ? top : undefined, bottom: bottom !== null ? bottom : undefined, left: left !== null ? left : undefined, right: right !== null ? right : undefined, minWidth: this.state.minWidth, maxWidth: this.props.hasFixedWidth ? this.state.minWidth : undefined });}var content = /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'DropdownContainer', wrapperRef: this.ZIndexRef, style: style, className: (0, _Emotion.cx)((_cx = {}, _cx[_DropdownContainer.styles.alignRight()] = this.getProps().align === 'right' && !_client.isIE11, _cx)) }, this.props.children);return this.props.disablePortal ? content : /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, null, content);};return DropdownContainer;}(_react.default.PureComponent);exports.DropdownContainer = DropdownContainer;DropdownContainer.__KONTUR_REACT_UI__ = 'DropdownContainer';DropdownContainer.defaultProps = { align: 'left', disablePortal: false, offsetX: 0, offsetY: -1 };
|
|
197
200
|
|
|
198
201
|
|
|
199
202
|
var getIsDocumentElementRoot = function getIsDocumentElementRoot() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DropdownContainer.tsx"],"names":["DropdownContainer","props","getProps","defaultProps","ZIndexRef","element","dom","isElement","node","Element","position","target","getParent","targetRect","document","body","docEl","documentElement","Error","scrollX","window","pageXOffset","scrollLeft","scrollY","pageYOffset","scrollTop","left","right","align","docWidth","offsetWidth","offsetX","offsetY","bottom","top","distanceToBottom","clientHeight","dropdownHeight","getHeight","state","isDocumentElementRoot","scrollHeight","setState","minWidth","getMinWidth","disablePortal","convertToRelativePosition","child","children","item","height","width","targetHeight","getIsDocumentElementRoot","componentDidMount","layoutSub","LayoutEvents","addListener","componentWillUnmount","remove","render","style","undefined","maxWidth","hasFixedWidth","content","styles","alignRight","isIE11","React","PureComponent","__KONTUR_REACT_UI__","htmlPosition","getComputedStyle","bodyPosition","hasLimitedHeightRoot","hasStaticRoot"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../RenderContainer';\nimport { ZIndex } from '../ZIndex';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './DropdownContainer.styles';\n\nexport interface DropdownContainerPosition {\n top: Nullable<number>;\n bottom: Nullable<number>;\n left: Nullable<number>;\n right: Nullable<number>;\n}\n\nexport interface DropdownContainerProps {\n align?: 'left' | 'right';\n getParent: () => Nullable<HTMLElement>;\n children?: React.ReactNode;\n disablePortal?: boolean;\n offsetY?: number;\n offsetX?: number;\n hasFixedWidth?: boolean;\n}\n\nexport interface DropdownContainerState {\n position: Nullable<DropdownContainerPosition>;\n minWidth: number;\n isDocumentElementRoot?: boolean;\n}\n\nexport class DropdownContainer extends React.PureComponent<DropdownContainerProps, DropdownContainerState> {\n public static __KONTUR_REACT_UI__ = 'DropdownContainer';\n\n public static defaultProps = {\n align: 'left',\n disablePortal: false,\n offsetX: 0,\n offsetY: -1,\n };\n\n private getProps = createPropsGetter(DropdownContainer.defaultProps);\n\n private dom: Nullable<HTMLDivElement>;\n private layoutSub: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n\n constructor(props: DropdownContainerProps) {\n super(props);\n\n this.state = { position: null, minWidth: 0, isDocumentElementRoot: getIsDocumentElementRoot() };\n }\n\n public componentDidMount() {\n this.position();\n this.layoutSub = LayoutEvents.addListener(this.position);\n }\n\n public componentWillUnmount() {\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n }\n\n public render() {\n let style: React.CSSProperties = {\n position: 'absolute',\n top: '0',\n };\n if (this.state.position) {\n const { top, bottom, left, right } = this.state.position;\n style = {\n ...style,\n top: top !== null ? top : undefined,\n bottom: bottom !== null ? bottom : undefined,\n left: left !== null ? left : undefined,\n right: right !== null ? right : undefined,\n minWidth: this.state.minWidth,\n maxWidth: this.props.hasFixedWidth ? this.state.minWidth : undefined,\n };\n }\n\n const content = (\n <ZIndex\n priority={'DropdownContainer'}\n wrapperRef={this.ZIndexRef}\n style={style}\n className={cx({\n [styles.alignRight()]: this.props.align === 'right' && !isIE11,\n })}\n >\n {this.props.children}\n </ZIndex>\n );\n\n return this.props.disablePortal ? content : <RenderContainer>{content}</RenderContainer>;\n }\n\n private ZIndexRef = (element: Nullable<HTMLDivElement>) => {\n this.dom = element;\n };\n\n private isElement = (node: Nullable<Element>): node is Element => {\n return node instanceof Element;\n };\n\n public position = () => {\n const target = this.props.getParent();\n const dom = this.dom;\n\n if (target && this.isElement(target) && dom) {\n const targetRect = getDOMRect(target);\n const { body, documentElement: docEl } = document;\n\n if (!docEl) {\n throw Error('There is no \"documentElement\" in \"document\"');\n }\n\n const scrollX = window.pageXOffset || docEl.scrollLeft || 0;\n const scrollY = window.pageYOffset || docEl.scrollTop || 0;\n\n let left = null;\n let right = null;\n\n if (this.props.align === 'right') {\n const docWidth = docEl.offsetWidth || 0;\n right = docWidth - (targetRect.right + scrollX) + this.getProps().offsetX;\n } else {\n left = targetRect.left + scrollX + this.getProps().offsetX;\n }\n\n const { offsetY = 0 } = this.props;\n let bottom = null;\n let top: number | null = targetRect.bottom + scrollY + offsetY;\n\n const distanceToBottom = docEl.clientHeight - targetRect.bottom;\n const dropdownHeight = this.getHeight();\n\n if (distanceToBottom < dropdownHeight && targetRect.top > dropdownHeight) {\n const clientHeight = this.state.isDocumentElementRoot ? docEl.clientHeight : body.scrollHeight;\n\n top = null;\n bottom = clientHeight + offsetY - scrollY - targetRect.top;\n }\n\n const position = {\n top,\n left,\n right,\n bottom,\n };\n\n this.setState({\n minWidth: this.getMinWidth(),\n position: this.props.disablePortal ? this.convertToRelativePosition(position) : position,\n });\n }\n };\n\n private getHeight = () => {\n if (!this.isElement(this.dom)) {\n return 0;\n }\n const child = this.dom.children.item(0);\n return getDOMRect(child).height;\n };\n\n private getMinWidth = () => {\n const target = this.props.getParent();\n return getDOMRect(target).width;\n };\n\n private convertToRelativePosition = (position: DropdownContainerPosition): DropdownContainerPosition => {\n const target = this.props.getParent();\n const { offsetX = 0, offsetY = 0 } = this.props;\n const { top, bottom, left, right } = position;\n if (target && this.isElement(target)) {\n const targetHeight = getDOMRect(target).height;\n return {\n top: top !== null ? targetHeight + offsetY : null,\n bottom: bottom !== null ? targetHeight + offsetY : null,\n left: left !== null ? offsetX : null,\n right: right !== null ? offsetX : null,\n };\n }\n return {\n top: offsetY,\n bottom: null,\n left: offsetX,\n right: null,\n };\n };\n}\n\nconst getIsDocumentElementRoot = () => {\n const { body, documentElement } = document;\n const htmlPosition = getComputedStyle(documentElement).position;\n const bodyPosition = getComputedStyle(body).position;\n\n const hasLimitedHeightRoot = body.scrollHeight > body.clientHeight;\n const hasStaticRoot = htmlPosition === 'static' && bodyPosition === 'static';\n return hasLimitedHeightRoot || hasStaticRoot;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["DropdownContainer.tsx"],"names":["DropdownContainer","props","getProps","defaultProps","ZIndexRef","element","dom","isElement","node","Element","position","target","getParent","targetRect","document","body","docEl","documentElement","Error","scrollX","window","pageXOffset","scrollLeft","scrollY","pageYOffset","scrollTop","left","right","align","docWidth","offsetWidth","offsetX","offsetY","bottom","top","distanceToBottom","clientHeight","dropdownHeight","getHeight","state","isDocumentElementRoot","scrollHeight","setState","minWidth","getMinWidth","disablePortal","convertToRelativePosition","child","children","item","height","width","targetHeight","getIsDocumentElementRoot","componentDidMount","layoutSub","LayoutEvents","addListener","componentWillUnmount","remove","render","style","undefined","maxWidth","hasFixedWidth","content","styles","alignRight","isIE11","React","PureComponent","__KONTUR_REACT_UI__","htmlPosition","getComputedStyle","bodyPosition","hasLimitedHeightRoot","hasStaticRoot"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../RenderContainer';\nimport { ZIndex } from '../ZIndex';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './DropdownContainer.styles';\n\nexport interface DropdownContainerPosition {\n top: Nullable<number>;\n bottom: Nullable<number>;\n left: Nullable<number>;\n right: Nullable<number>;\n}\n\nexport interface DropdownContainerProps {\n align?: 'left' | 'right';\n getParent: () => Nullable<Element>;\n children?: React.ReactNode;\n disablePortal?: boolean;\n offsetY?: number;\n offsetX?: number;\n hasFixedWidth?: boolean;\n}\n\nexport interface DropdownContainerState {\n position: Nullable<DropdownContainerPosition>;\n minWidth: number;\n isDocumentElementRoot?: boolean;\n}\n\ntype DefaultProps = Required<Pick<DropdownContainerProps, 'align' | 'disablePortal' | 'offsetY' | 'offsetX'>>;\n\nexport class DropdownContainer extends React.PureComponent<DropdownContainerProps, DropdownContainerState> {\n public static __KONTUR_REACT_UI__ = 'DropdownContainer';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n disablePortal: false,\n offsetX: 0,\n offsetY: -1,\n };\n\n private getProps = createPropsGetter(DropdownContainer.defaultProps);\n\n private dom: Nullable<HTMLDivElement>;\n private layoutSub: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n\n constructor(props: DropdownContainerProps) {\n super(props);\n\n this.state = { position: null, minWidth: 0, isDocumentElementRoot: getIsDocumentElementRoot() };\n }\n\n public componentDidMount() {\n this.position();\n this.layoutSub = LayoutEvents.addListener(this.position);\n }\n\n public componentWillUnmount() {\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n }\n\n public render() {\n let style: React.CSSProperties = {\n position: 'absolute',\n top: '0',\n };\n if (this.state.position) {\n const { top, bottom, left, right } = this.state.position;\n style = {\n ...style,\n top: top !== null ? top : undefined,\n bottom: bottom !== null ? bottom : undefined,\n left: left !== null ? left : undefined,\n right: right !== null ? right : undefined,\n minWidth: this.state.minWidth,\n maxWidth: this.props.hasFixedWidth ? this.state.minWidth : undefined,\n };\n }\n\n const content = (\n <ZIndex\n priority={'DropdownContainer'}\n wrapperRef={this.ZIndexRef}\n style={style}\n className={cx({\n [styles.alignRight()]: this.getProps().align === 'right' && !isIE11,\n })}\n >\n {this.props.children}\n </ZIndex>\n );\n\n return this.props.disablePortal ? content : <RenderContainer>{content}</RenderContainer>;\n }\n\n private ZIndexRef = (element: Nullable<HTMLDivElement>) => {\n this.dom = element;\n };\n\n private isElement = (node: Nullable<Element>): node is Element => {\n return node instanceof Element;\n };\n\n public position = () => {\n const target = this.props.getParent();\n const dom = this.dom;\n\n if (target && this.isElement(target) && dom) {\n const targetRect = getDOMRect(target);\n const { body, documentElement: docEl } = document;\n\n if (!docEl) {\n throw Error('There is no \"documentElement\" in \"document\"');\n }\n\n const scrollX = window.pageXOffset || docEl.scrollLeft || 0;\n const scrollY = window.pageYOffset || docEl.scrollTop || 0;\n\n let left = null;\n let right = null;\n\n if (this.getProps().align === 'right') {\n const docWidth = docEl.offsetWidth || 0;\n right = docWidth - (targetRect.right + scrollX) + this.getProps().offsetX;\n } else {\n left = targetRect.left + scrollX + this.getProps().offsetX;\n }\n\n const offsetY = this.getProps().offsetY || 0;\n let bottom = null;\n let top: number | null = targetRect.bottom + scrollY + offsetY;\n\n const distanceToBottom = docEl.clientHeight - targetRect.bottom;\n const dropdownHeight = this.getHeight();\n\n if (distanceToBottom < dropdownHeight && targetRect.top > dropdownHeight) {\n const clientHeight = this.state.isDocumentElementRoot ? docEl.clientHeight : body.scrollHeight;\n\n top = null;\n bottom = clientHeight + offsetY - scrollY - targetRect.top;\n }\n\n const position = {\n top,\n left,\n right,\n bottom,\n };\n\n this.setState({\n minWidth: this.getMinWidth(),\n position: this.getProps().disablePortal ? this.convertToRelativePosition(position) : position,\n });\n }\n };\n\n private getHeight = () => {\n if (!this.isElement(this.dom)) {\n return 0;\n }\n const child = this.dom.children.item(0);\n return getDOMRect(child).height;\n };\n\n private getMinWidth = () => {\n const target = this.props.getParent();\n return getDOMRect(target).width;\n };\n\n private convertToRelativePosition = (position: DropdownContainerPosition): DropdownContainerPosition => {\n const target = this.props.getParent();\n const offsetX = this.getProps().offsetX || 0;\n const offsetY = this.getProps().offsetY || 0;\n const { top, bottom, left, right } = position;\n if (target && this.isElement(target)) {\n const targetHeight = getDOMRect(target).height;\n return {\n top: top !== null ? targetHeight + offsetY : null,\n bottom: bottom !== null ? targetHeight + offsetY : null,\n left: left !== null ? offsetX : null,\n right: right !== null ? offsetX : null,\n };\n }\n return {\n top: offsetY,\n bottom: null,\n left: offsetX,\n right: null,\n };\n };\n}\n\nconst getIsDocumentElementRoot = () => {\n const { body, documentElement } = document;\n const htmlPosition = getComputedStyle(documentElement).position;\n const bodyPosition = getComputedStyle(body).position;\n\n const hasLimitedHeightRoot = body.scrollHeight > body.clientHeight;\n const hasStaticRoot = htmlPosition === 'static' && bodyPosition === 'static';\n return hasLimitedHeightRoot || hasStaticRoot;\n};\n"]}
|
|
@@ -53,7 +53,8 @@ HideBodyVerticalScroll = /*#__PURE__*/function (_React$Component) {(0, _inherits
|
|
|
53
53
|
hideScroll = function (document) {
|
|
54
54
|
var clientHeight = document.clientHeight,scrollHeight = document.scrollHeight;
|
|
55
55
|
var documentComputedStyle = getComputedStyle(document);
|
|
56
|
-
var
|
|
56
|
+
var scrollbarConst = getComputedStyle(document).overflowY === 'scroll';
|
|
57
|
+
var scrollWidth = clientHeight < scrollHeight || scrollbarConst ? (0, _getScrollWidth.getScrollWidth)() : 0;
|
|
57
58
|
var documentMargin = parseFloat(documentComputedStyle.marginRight || '');
|
|
58
59
|
var className = generateDocumentStyle(documentMargin + scrollWidth);
|
|
59
60
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HideBodyVerticalScroll.tsx"],"names":["disposeDocumentStyle","HideBodyVerticalScroll","initialScroll","master","updateScrollVisibility","document","documentElement","shouldHide","hideScroll","clientHeight","scrollHeight","documentComputedStyle","getComputedStyle","scrollWidth","documentMargin","parseFloat","marginRight","className","generateDocumentStyle","attachStyle","element","classList","add","remove","restoreStyles","scrollTop","componentDidMount","counter","VerticalScrollCounter","increment","window","addEventListener","componentDidUpdate","componentWillUnmount","decrement","removeEventListener","render","React","Component","__KONTUR_REACT_UI__","RetailUIVerticalScrollCounter","get","css"],"mappings":"0XAAA;;AAEA;AACA,oD;;AAEA,IAAIA,oBAAyC,GAAG,IAAhD,C;;AAEaC,sB;;;AAGHC,IAAAA,a,GAAgB,C;AAChBC,IAAAA,M,GAAS,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BTC,IAAAA,sB,GAAyB,YAAM;AACrC,sBAA4BC,QAA5B,CAAQC,eAAR,aAAQA,eAAR;AACA,UAAI,CAACA,eAAL,EAAsB;AACpB;AACD;AACD,UAAMC,UAAU,GAAG,CAACP,oBAApB;AACA,UAAIO,UAAJ,EAAgB;AACd,cAAKC,UAAL,CAAgBF,eAAhB;AACD;AACF,K;;AAEOE,IAAAA,U,GAAa,UAACH,QAAD,EAA2B;AAC9C,UAAQI,YAAR,GAAuCJ,QAAvC,CAAQI,YAAR,CAAsBC,YAAtB,GAAuCL,QAAvC,CAAsBK,YAAtB;AACA,UAAMC,qBAAqB,GAAGC,gBAAgB,CAACP,QAAD,CAA9C;AACA,UAAMQ,WAAW,
|
|
1
|
+
{"version":3,"sources":["HideBodyVerticalScroll.tsx"],"names":["disposeDocumentStyle","HideBodyVerticalScroll","initialScroll","master","updateScrollVisibility","document","documentElement","shouldHide","hideScroll","clientHeight","scrollHeight","documentComputedStyle","getComputedStyle","scrollbarConst","overflowY","scrollWidth","documentMargin","parseFloat","marginRight","className","generateDocumentStyle","attachStyle","element","classList","add","remove","restoreStyles","scrollTop","componentDidMount","counter","VerticalScrollCounter","increment","window","addEventListener","componentDidUpdate","componentWillUnmount","decrement","removeEventListener","render","React","Component","__KONTUR_REACT_UI__","RetailUIVerticalScrollCounter","get","css"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { css } from '../../lib/theming/Emotion';\n\nlet disposeDocumentStyle: (() => void) | null = null;\n\nexport class HideBodyVerticalScroll extends React.Component {\n public static __KONTUR_REACT_UI__ = 'HideBodyVerticalScroll';\n\n private initialScroll = 0;\n private master = false;\n\n public componentDidMount() {\n const counter = VerticalScrollCounter.increment();\n if (counter === 1) {\n this.master = true;\n this.initialScroll = document.documentElement ? document.documentElement.scrollTop : 0;\n this.updateScrollVisibility();\n window.addEventListener('resize', this.updateScrollVisibility);\n }\n }\n\n public componentDidUpdate() {\n if (this.master) {\n this.updateScrollVisibility();\n }\n }\n\n public componentWillUnmount() {\n const counter = VerticalScrollCounter.decrement();\n if (counter === 0) {\n this.restoreStyles();\n window.removeEventListener('resize', this.updateScrollVisibility);\n }\n }\n\n public render() {\n return null;\n }\n\n private updateScrollVisibility = () => {\n const { documentElement } = document;\n if (!documentElement) {\n return;\n }\n const shouldHide = !disposeDocumentStyle;\n if (shouldHide) {\n this.hideScroll(documentElement);\n }\n };\n\n private hideScroll = (document: HTMLElement) => {\n const { clientHeight, scrollHeight } = document;\n const documentComputedStyle = getComputedStyle(document);\n const scrollbarConst = getComputedStyle(document).overflowY === 'scroll';\n const scrollWidth = clientHeight < scrollHeight || scrollbarConst ? getScrollWidth() : 0;\n const documentMargin = parseFloat(documentComputedStyle.marginRight || '');\n const className = generateDocumentStyle(documentMargin + scrollWidth);\n\n disposeDocumentStyle = this.attachStyle(document, className);\n };\n\n private attachStyle = (element: HTMLElement, className: string) => {\n element.classList.add(className);\n return () => {\n element.classList.remove(className);\n };\n };\n\n private restoreStyles = () => {\n if (disposeDocumentStyle) {\n disposeDocumentStyle();\n disposeDocumentStyle = null;\n\n const { documentElement } = document;\n\n if (documentElement) {\n documentElement.scrollTop = this.initialScroll;\n }\n }\n };\n}\n\nclass VerticalScrollCounter {\n public static increment = (): number => {\n const counter = window.RetailUIVerticalScrollCounter || 0;\n return (window.RetailUIVerticalScrollCounter = counter + 1);\n };\n\n public static decrement = (): number => {\n const counter = window.RetailUIVerticalScrollCounter || 0;\n return (window.RetailUIVerticalScrollCounter = counter - 1);\n };\n\n public static get = (): number => {\n return window.RetailUIVerticalScrollCounter || 0;\n };\n}\n\nfunction generateDocumentStyle(documentMargin: number) {\n return css`\n overflow: hidden !important;\n margin-right: ${documentMargin}px !important;\n height: 100%;\n `;\n}\n"]}
|
|
@@ -16,11 +16,11 @@ export declare const InputLikeTextDataTids: {
|
|
|
16
16
|
readonly root: "InputLikeText__root";
|
|
17
17
|
readonly input: "InputLikeText__input";
|
|
18
18
|
};
|
|
19
|
+
declare type DefaultProps = Required<Pick<InputLikeTextProps, 'size'>>;
|
|
19
20
|
export declare class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {
|
|
20
21
|
static __KONTUR_REACT_UI__: string;
|
|
21
|
-
static defaultProps:
|
|
22
|
-
|
|
23
|
-
};
|
|
22
|
+
static defaultProps: DefaultProps;
|
|
23
|
+
private getProps;
|
|
24
24
|
state: {
|
|
25
25
|
blinking: boolean;
|
|
26
26
|
focused: boolean;
|
|
@@ -75,3 +75,4 @@ export declare class InputLikeText extends React.Component<InputLikeTextProps, I
|
|
|
75
75
|
private defrost;
|
|
76
76
|
private getSizeClassName;
|
|
77
77
|
}
|
|
78
|
+
export {};
|
|
@@ -14,6 +14,7 @@ var _CommonWrapper = require("../CommonWrapper");
|
|
|
14
14
|
var _Emotion = require("../../lib/theming/Emotion");
|
|
15
15
|
var _listenFocusOutside = require("../../lib/listenFocusOutside");
|
|
16
16
|
var _rootNode = require("../../lib/rootNode");
|
|
17
|
+
var _createPropsGetter = require("../../lib/createPropsGetter");
|
|
17
18
|
|
|
18
19
|
var _InputLikeText = require("./InputLikeText.styles");
|
|
19
20
|
var _HiddenInput = require("./HiddenInput");var _excluded = ["innerRef", "tabIndex", "placeholder", "align", "borderless", "width", "size", "error", "warning", "onValueChange", "disabled", "prefix", "suffix", "leftIcon", "rightIcon", "value", "onMouseDragStart", "onMouseDragEnd", "takeContentWidth"];var _class, _class2, _temp;
|
|
@@ -36,11 +37,15 @@ var InputLikeTextDataTids = {
|
|
|
36
37
|
|
|
37
38
|
|
|
38
39
|
|
|
40
|
+
|
|
41
|
+
|
|
39
42
|
InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(InputLikeText, _React$Component);function InputLikeText() {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.
|
|
40
43
|
|
|
41
44
|
|
|
42
45
|
|
|
43
46
|
|
|
47
|
+
getProps = (0, _createPropsGetter.createPropsGetter)(InputLikeText.defaultProps);_this.
|
|
48
|
+
|
|
44
49
|
state = { blinking: false, focused: false };_this.
|
|
45
50
|
|
|
46
51
|
|
|
@@ -470,7 +475,7 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
|
|
|
470
475
|
};_this.
|
|
471
476
|
|
|
472
477
|
getSizeClassName = function () {var _cx8, _cx9, _cx10;
|
|
473
|
-
switch (_this.
|
|
478
|
+
switch (_this.getProps().size) {
|
|
474
479
|
case 'large':
|
|
475
480
|
return (0, _Emotion.cx)((_cx8 = {}, _cx8[
|
|
476
481
|
_Input.styles.sizeLarge(_this.theme)] = true, _cx8[
|
|
@@ -494,4 +499,4 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
|
|
|
494
499
|
* @public
|
|
495
500
|
*/;_proto.blur = function blur() {if (this.node) {this.node.blur();}} /**
|
|
496
501
|
* @public
|
|
497
|
-
*/;_proto.blink = function blink() {var _this3 = this;if (this.props.disabled) {return;}this.setState({ blinking: true }, function () {_this3.blinkTimeout = window.setTimeout(function () {return _this3.setState({ blinking: false });}, 150);});};_proto.getNode = function getNode() {return this.node;};_proto.componentDidMount = function componentDidMount() {if (this.node) {_MouseDrag.MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);}document.addEventListener('mousedown', this.handleDocumentMouseDown);document.addEventListener('keydown', this.handleDocumentKeyDown);};_proto.componentWillUnmount = function componentWillUnmount() {if (this.blinkTimeout) {clearTimeout(this.blinkTimeout);}_MouseDrag.MouseDrag.stop(this.node);document.removeEventListener('mousedown', this.handleDocumentMouseDown);document.removeEventListener('keydown', this.handleDocumentKeyDown);};_proto.render = function render() {var _this4 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this4.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this4.setRootNode }, _this4.props), _this4.renderMain);});};_proto.getIconClassname = function getIconClassname(right) {if (right === void 0) {right = false;}switch (this.
|
|
502
|
+
*/;_proto.blink = function blink() {var _this3 = this;if (this.props.disabled) {return;}this.setState({ blinking: true }, function () {_this3.blinkTimeout = window.setTimeout(function () {return _this3.setState({ blinking: false });}, 150);});};_proto.getNode = function getNode() {return this.node;};_proto.componentDidMount = function componentDidMount() {if (this.node) {_MouseDrag.MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);}document.addEventListener('mousedown', this.handleDocumentMouseDown);document.addEventListener('keydown', this.handleDocumentKeyDown);};_proto.componentWillUnmount = function componentWillUnmount() {if (this.blinkTimeout) {clearTimeout(this.blinkTimeout);}_MouseDrag.MouseDrag.stop(this.node);document.removeEventListener('mousedown', this.handleDocumentMouseDown);document.removeEventListener('keydown', this.handleDocumentKeyDown);};_proto.render = function render() {var _this4 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this4.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this4.setRootNode }, _this4.props), _this4.renderMain);});};_proto.getIconClassname = function getIconClassname(right) {if (right === void 0) {right = false;}switch (this.getProps().size) {case 'large':return right ? _Input.styles.rightIconLarge(this.theme) : _Input.styles.leftIconLarge(this.theme);case 'medium':return right ? _Input.styles.rightIconMedium(this.theme) : _Input.styles.leftIconMedium(this.theme);case 'small':default:return right ? _Input.styles.rightIconSmall(this.theme) : _Input.styles.leftIconSmall(this.theme);}};return InputLikeText;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'InputLikeText', _class2.defaultProps = { size: 'small' }, _temp)) || _class;exports.InputLikeText = InputLikeText;
|
|
@@ -1 +1 @@
|
|
|
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":"ueAAA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4C;;;;;;;;;;;;;;AAcO,IAAMA,qBAAqB,GAAG;AACnCC,EAAAA,IAAI,EAAE,qBAD6B;AAEnCC,EAAAA,KAAK,EAAE,sBAF4B,EAA9B,C;;;;AAMMC,a,OADZC,kB;;;;;AAMQC,IAAAA,K,GAAQ,EAAEC,QAAQ,EAAE,KAAZ,EAAmBC,OAAO,EAAE,KAA5B,E;;;AAGPC,IAAAA,I,GAA2B,I;AAC3BC,IAAAA,W,GAAuC,I;AACvCC,IAAAA,qB,GAA8D,I;AAC9DC,IAAAA,M,GAAS,K;AACTC,IAAAA,U,GAAa,K;AACbC,IAAAA,Q,GAAW,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCZC,IAAAA,e,GAAkB,UAACN,IAAD,EAA2BO,KAA3B,EAAsCC,GAAtC,EAAkD,KAAvBD,KAAuB,cAAvBA,KAAuB,GAAf,CAAe,MAAZC,GAAY,cAAZA,GAAY,GAAN,CAAM;AACzE,UAAI,MAAKH,QAAL,IAAiB,CAACL,IAAtB,EAA4B;AAC1B;AACD;AACD,UAAIS,kBAAU,6CAAoBT,IAApB,EAA0BU,QAAQ,CAACC,IAAnC,CAAd,EAAwD;AACtD;AACA;AACD;AACD,YAAKR,MAAL,GAAc,IAAd;AACA,YAAKC,UAAL,GAAkB,IAAlB;;AAEA,YAAKF,qBAAL,GAA6B,CAACF,IAAD,EAAOO,KAAP,EAAcC,GAAd,CAA7B;AACAI,MAAAA,UAAU,CAAC,oBAAM,0CAAmBZ,IAAnB,EAAyBO,KAAzB,EAAgCC,GAAhC,CAAN,EAAD,EAA6C,CAA7C,CAAV;AACA,UAAI,MAAKK,YAAT,EAAuB;AACrBC,QAAAA,aAAa,CAAC,MAAKD,YAAN,CAAb;AACD;AACD,YAAKA,YAAL,GAAoBE,MAAM,CAACH,UAAP,CAAkB,oBAAM,CAACH,kBAAUO,cAAX,KAAsB,MAAKhB,IAA3B,IAAmC,MAAKA,IAAL,CAAUiB,KAAV,EAAzC,EAAlB,EAA8E,CAA9E,CAApB;AACD,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCOC,IAAAA,U,GAAa,UAACC,KAAD,EAAuD;AAC1E;AACEC,MAAAA,QADF;;;;;;;;;;;;;;;;;;;;AAqBID,MAAAA,KArBJ,CACEC,QADF,CAEEC,QAFF,GAqBIF,KArBJ,CAEEE,QAFF,CAGEC,WAHF,GAqBIH,KArBJ,CAGEG,WAHF,CAIEC,KAJF,GAqBIJ,KArBJ,CAIEI,KAJF,CAKEC,UALF,GAqBIL,KArBJ,CAKEK,UALF,CAMEC,KANF,GAqBIN,KArBJ,CAMEM,KANF,CAOEC,IAPF,GAqBIP,KArBJ,CAOEO,IAPF,CAQEC,KARF,GAqBIR,KArBJ,CAQEQ,KARF,CASEC,OATF,GAqBIT,KArBJ,CASES,OATF,CAUEC,aAVF,GAqBIV,KArBJ,CAUEU,aAVF,CAWEC,QAXF,GAqBIX,KArBJ,CAWEW,QAXF,CAYEC,MAZF,GAqBIZ,KArBJ,CAYEY,MAZF,CAaEC,MAbF,GAqBIb,KArBJ,CAaEa,MAbF,CAcEC,QAdF,GAqBId,KArBJ,CAcEc,QAdF,CAeEC,SAfF,GAqBIf,KArBJ,CAeEe,SAfF,CAgBEC,KAhBF,GAqBIhB,KArBJ,CAgBEgB,KAhBF,CAiBEC,gBAjBF,GAqBIjB,KArBJ,CAiBEiB,gBAjBF,CAkBEC,cAlBF,GAqBIlB,KArBJ,CAkBEkB,cAlBF,CAmBEC,gBAnBF,GAqBInB,KArBJ,CAmBEmB,gBAnBF,CAoBKC,IApBL,+CAqBIpB,KArBJ;;AAuBA,wBAA8B,MAAKtB,KAAnC,CAAQE,OAAR,eAAQA,OAAR,CAAiBD,QAAjB,eAAiBA,QAAjB;;AAEA,UAAM0C,QAAQ,GAAG,MAAKC,cAAL,EAAjB;AACA,UAAMC,SAAS,GAAG,MAAKC,eAAL,EAAlB;;AAEA,UAAMC,SAAS,GAAG,iBAAGC,sBAAOpD,IAAP,EAAH,EAAkBqD,cAAcrD,IAAd,CAAmB,MAAKsD,KAAxB,CAAlB,EAAkD,MAAKC,gBAAL,EAAlD;AACfF,oBAAchB,QAAd,CAAuB,MAAKiB,KAA5B,CADe,IACsB,CAAC,CAACjB,QADxB;AAEfgB,oBAActB,UAAd,EAFe,IAEc,CAAC,CAACA,UAFhB;AAGfsB,oBAAc7B,KAAd,CAAoB,MAAK8B,KAAzB,CAHe,IAGmBhD,OAHnB;AAIf+C,oBAAcG,KAAd,CAAoB,MAAKF,KAAzB,CAJe,IAImBjD,QAJnB;AAKfgD,oBAAclB,OAAd,CAAsB,MAAKmB,KAA3B,CALe,IAKqB,CAAC,CAACnB,OALvB;AAMfkB,oBAAcnB,KAAd,CAAoB,MAAKoB,KAAzB,CANe,IAMmB,CAAC,CAACpB,KANrB;AAOfmB,oBAAcI,aAAd,CAA4B,MAAKH,KAAjC,CAPe,IAO2BhD,OAAO,KAAKU,kBAAUO,cAAf,CAPlC;AAQf8B,oBAAcK,eAAd,CAA8B,MAAKJ,KAAnC,CARe,IAQ6B,CAAC,CAACnB,OAAF,KAAcnB,kBAAUO,cAAxB,CAR7B;AASf8B,oBAAcM,aAAd,CAA4B,MAAKL,KAAjC,CATe,IAS2B,CAAC,CAACpB,KAAF,KAAYlB,kBAAUO,cAAtB,CAT3B;AAUf8B,oBAAcO,kBAAd,EAVe,IAUsBC,gBAVtB,OAAlB;;;AAaA,UAAMC,YAAY,GAAG,iBAAGT,cAAcU,OAAd,EAAH;AAClBX,4BAAOY,iBAAP,EADkB,IACW1D,OADX,QAArB;;;AAIA;AACE;AACE,sBAAUP,qBAAqB,CAACC,IADlC;AAEM8C,QAAAA,IAFN;AAGE,UAAA,SAAS,EAAEK,SAHb;AAIE,UAAA,KAAK,EAAE,EAAEnB,KAAK,EAALA,KAAF,EAASiC,SAAS,EAAEnC,KAApB,EAJT;AAKE,UAAA,QAAQ,EAAEO,QAAQ,GAAG6B,SAAH,GAAe,CALnC;AAME,UAAA,OAAO,EAAE,MAAKC,WANhB;AAOE,UAAA,MAAM,EAAE,MAAKC,UAPf;AAQE,UAAA,GAAG,EAAE,MAAKzC,QARZ;AASE,UAAA,SAAS,EAAE,MAAK0C,aATlB;AAUE,UAAA,WAAW,EAAE,MAAKC,eAVpB;;AAYE,gDAAO,IAAI,EAAC,QAAZ,EAAqB,KAAK,EAAE5B,KAA5B,GAZF;AAaGK,QAAAA,QAbH;AAcE,+CAAM,SAAS,EAAEe,YAAjB;AACE;AACE,sBAAU/D,qBAAqB,CAACE,KADlC;AAEE,UAAA,SAAS,EAAE,iBAAGoD,cAAcpD,KAAd,CAAoB,MAAKqD,KAAzB,CAAH;AACRF,gCAAOmB,QAAP,EADQ,IACY,CAAC1B,gBADb;AAERQ,wBAAcmB,UAAd,CAAyB,MAAKlB,KAA9B,CAFQ,IAE+BhD,OAF/B;AAGR+C,wBAAcoB,aAAd,CAA4B,MAAKnB,KAAjC,CAHQ,IAGkCjB,QAHlC,QAFb;;;AAQG,cAAKX,KAAL,CAAWgD,QARd,CADF;;AAWG,cAAKC,iBAAL,EAXH,CAdF;;AA2BG1B,QAAAA,SA3BH;AA4BGjC,0BAAUV,OAAV,iBAAqB,6BAAC,wBAAD,IAAa,OAAO,EAAE,MAAKsE,cAA3B,GA5BxB,CADF;;;AAgCD,K;;;;;;;;;;;;;;AAcOC,IAAAA,c,GAAiB,YAAM;AAC7B,aAAO,MAAKC,UAAL,CAAgB,MAAKpD,KAAL,CAAWc,QAA3B,EAAqC,MAAKuC,gBAAL,EAArC,CAAP;AACD,K;;AAEOC,IAAAA,e,GAAkB,YAAM;AAC9B,aAAO,MAAKF,UAAL,CAAgB,MAAKpD,KAAL,CAAWe,SAA3B,EAAsC,MAAKsC,gBAAL,CAAsB,IAAtB,CAAtC,CAAP;AACD,K;;AAEOD,IAAAA,U,GAAa,UAACG,IAAD,EAAsB9B,SAAtB,EAAgE;AACnF,UAAI,CAAC8B,IAAL,EAAW;AACT,eAAO,IAAP;AACD;;AAED,UAAQ5C,QAAR,GAAqB,MAAKX,KAA1B,CAAQW,QAAR;AACA,UAAM6C,QAAQ,GAAGD,IAAI,YAAYE,QAAhB,GAA2BF,IAAI,EAA/B,GAAoCA,IAArD;;AAEA;AACE;AACE,UAAA,SAAS,EAAE,iBAAG5B,cAAc4B,IAAd,EAAH,EAAyB9B,SAAzB,EAAoCE,cAAc+B,eAAd,CAA8B,MAAK9B,KAAnC,CAApC;AACRD,wBAAcgC,YAAd,EADQ,IACuBhD,QADvB,QADb;;;AAKG6C,QAAAA,QALH,CADF;;;AASD,K;;AAEOI,IAAAA,Y,GAAe,YAA0B;AAC/C,wBAA6B,MAAK5D,KAAlC,CAAQY,MAAR,eAAQA,MAAR,CAAgBD,QAAhB,eAAgBA,QAAhB;;AAEA,UAAI,CAACC,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED;AACE,+CAAM,SAAS,EAAE,iBAAGe,cAAcf,MAAd,CAAqB,MAAKgB,KAA1B,CAAH,mBAAwCD,cAAckC,cAAd,CAA6B,MAAKjC,KAAlC,CAAxC,IAAmFjB,QAAnF,QAAjB;AACGC,QAAAA,MADH,CADF;;;AAKD,K;;AAEOkD,IAAAA,Y,GAAe,YAA0B;AAC/C,yBAA6B,MAAK9D,KAAlC,CAAQa,MAAR,gBAAQA,MAAR,CAAgBF,QAAhB,gBAAgBA,QAAhB;;AAEA,UAAI,CAACE,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED;AACE,+CAAM,SAAS,EAAE,iBAAGc,cAAcd,MAAd,CAAqB,MAAKe,KAA1B,CAAH,mBAAwCD,cAAcoC,cAAd,CAA6B,MAAKnC,KAAlC,CAAxC,IAAmFjB,QAAnF,QAAjB;AACGE,QAAAA,MADH,CADF;;;AAKD,K;;AAEOS,IAAAA,c,GAAiB,YAA0B;AACjD,UAAMR,QAAQ,GAAG,MAAKqC,cAAL,EAAjB;AACA,UAAMvC,MAAM,GAAG,MAAKgD,YAAL,EAAf;;AAEA,UAAI,CAAC9C,QAAD,IAAa,CAACF,MAAlB,EAA0B;AACxB,eAAO,IAAP;AACD;;AAED;AACE,+CAAM,SAAS,EAAEe,cAAcqC,aAAd,EAAjB;AACGlD,QAAAA,QADH;AAEGF,QAAAA,MAFH,CADF;;;AAMD,K;;AAEOY,IAAAA,e,GAAkB,YAA0B;AAClD,UAAMT,SAAS,GAAG,MAAKuC,eAAL,EAAlB;AACA,UAAMzC,MAAM,GAAG,MAAKiD,YAAL,EAAf;;AAEA,UAAI,CAAC/C,SAAD,IAAc,CAACF,MAAnB,EAA2B;AACzB,eAAO,IAAP;AACD;;AAED;AACE,+CAAM,SAAS,EAAE,iBAAGc,cAAcqC,aAAd,EAAH,EAAkCrC,cAAcsC,cAAd,EAAlC,CAAjB;AACGlD,QAAAA,SADH;AAEGF,QAAAA,MAFH,CADF;;;AAMD,K;;AAEOoC,IAAAA,iB,GAAoB,YAA0B;AACpD,yBAA4C,MAAKjD,KAAjD,CAAQgD,QAAR,gBAAQA,QAAR,CAAkB7C,WAAlB,gBAAkBA,WAAlB,CAA+BQ,QAA/B,gBAA+BA,QAA/B;AACA,UAAQ/B,OAAR,GAAoB,MAAKF,KAAzB,CAAQE,OAAR;AACA,UAAMsF,QAAQ,GAAG,0BAAclB,QAAd,KAA2BA,QAAQ,KAAK,EAAzD;;AAEA,UAAI,CAACkB,QAAD,IAAa/D,WAAjB,EAA8B;AAC5B;AACE;AACE,YAAA,SAAS,EAAE,iBAAGwB,cAAcxB,WAAd,CAA0B,MAAKyB,KAA/B,CAAH;AACRD,0BAAcwC,mBAAd,CAAkC,MAAKvC,KAAvC,CADQ,IACwCjB,QADxC;AAERgB,0BAAcyC,gBAAd,CAA+B,MAAKxC,KAApC,CAFQ,IAEqChD,OAFrC,QADb;;;AAMGuB,UAAAA,WANH,CADF;;;AAUD;AACD,aAAO,IAAP;AACD,K;;AAEOkE,IAAAA,uB,GAA0B,UAACC,CAAD,EAAmB;AACnD,UAAI,MAAK5F,KAAL,CAAWE,OAAX,IAAsB,MAAKC,IAA3B,IAAmCyF,CAAC,CAACC,MAAF,YAAoBC,IAAvD,IAA+D,CAAC,MAAK3F,IAAL,CAAU4F,QAAV,CAAmBH,CAAC,CAACC,MAArB,CAApE,EAAkG;AAChG,cAAKG,OAAL;AACD;AACF,K;;AAEOC,IAAAA,qB,GAAwB,UAACL,CAAD,EAAsB;AACpD,UAAI,MAAK5F,KAAL,CAAWE,OAAX,IAAsB,2BAAS0F,CAAT,CAA1B,EAAuC;AACrC,cAAKI,OAAL;AACD;AACF,K;;AAEO9B,IAAAA,e,GAAkB,UAAC0B,CAAD,EAAsC;AAC9D,YAAKtF,MAAL,GAAc,IAAd;AACD,K;;AAEO2D,IAAAA,a,GAAgB,UAAC2B,CAAD,EAAyC;AAC/D,UAAI,MAAKtE,KAAL,CAAWW,QAAf,EAAyB;AACvB;AACD;;AAED,UAAIrB,kBAAU,kCAAgBgF,CAAhB,CAAV,IAAgC,MAAKxF,WAAzC,EAAsD;AACpD,cAAKE,MAAL,GAAc,IAAd;AACAS,QAAAA,UAAU,CAAC,YAAM;AACf,cAAI,MAAKV,qBAAT,EAAgC;AAC9B,6BAAKI,eAAL,eAAwB,MAAKJ,qBAA7B;AACD;AACD,cAAI,MAAKF,IAAT,EAAe;AACb,kBAAKA,IAAL,CAAUiB,KAAV;AACD;AACF,SAPS,EAOP,CAPO,CAAV;;AASA,cAAKhB,WAAL,CAAiBgB,KAAjB;AACD;;AAED,UAAI,MAAKE,KAAL,CAAW4E,SAAf,EAA0B;AACxB,cAAK5E,KAAL,CAAW4E,SAAX,CAAqBN,CAArB;AACD;AACF,K;;AAEOO,IAAAA,oB,GAA8C,UAACP,CAAD,EAAO;AAC3D,YAAKpF,QAAL,GAAgB,IAAhB;AACAK,MAAAA,QAAQ,CAACuF,eAAT,CAAyBC,SAAzB,CAAmCC,GAAnC,CAAuCtD,sBAAOuD,cAAP,EAAvC;;AAEA,UAAI,MAAKjF,KAAL,CAAWiB,gBAAf,EAAiC;AAC/B,cAAKjB,KAAL,CAAWiB,gBAAX,CAA4BqD,CAA5B;AACD;AACF,K;;AAEOY,IAAAA,kB,GAA4C,UAACZ,CAAD,EAAO;AACzD;AACA7E,MAAAA,UAAU,CAAC,YAAM;AACf,cAAKP,QAAL,GAAgB,KAAhB;;AAEA,YAAI,MAAKc,KAAL,CAAWkB,cAAf,EAA+B;AAC7B,gBAAKlB,KAAL,CAAWkB,cAAX,CAA0BoD,CAA1B;AACD;AACF,OANS,EAMP,CANO,CAAV;;AAQA/E,MAAAA,QAAQ,CAACuF,eAAT,CAAyBC,SAAzB,CAAmCI,MAAnC,CAA0CzD,sBAAOuD,cAAP,EAA1C;AACD,K;;AAEOxC,IAAAA,W,GAAc,UAAC6B,CAAD,EAAsC;AAC1D,UAAInC,gBAAJ,EAAc;AACZmC,QAAAA,CAAC,CAACC,MAAF,CAASa,YAAT,CAAsB,iBAAtB,EAAyC,MAAzC;AACD;;AAED,UAAI,MAAKpF,KAAL,CAAWW,QAAf,EAAyB;AACvB,YAAIrB,cAAJ,EAAY;AACV,oDAAmBC,QAAQ,CAACC,IAA5B,EAAkC,CAAlC,EAAqC,CAArC;AACD;AACD;AACD;;AAED,UAAI,CAACF,kBAAUO,cAAX,KAAsB,MAAKb,MAA/B,EAAuC;AACrC,cAAKA,MAAL,GAAc,KAAd;AACA,YAAI,MAAKN,KAAL,CAAWE,OAAf,EAAwB;AACtB;AACD;AACF;;AAED,YAAKyG,QAAL,CAAc,EAAEzG,OAAO,EAAE,IAAX,EAAd;;AAEA,UAAI,MAAKoB,KAAL,CAAWsF,OAAf,EAAwB;AACtB,cAAKtF,KAAL,CAAWsF,OAAX,CAAmBhB,CAAnB;AACD;AACF,K;;AAEO5B,IAAAA,U,GAAa,UAAC4B,CAAD,EAAsC;AACzD,UAAInC,gBAAJ,EAAc;AACZmC,QAAAA,CAAC,CAACC,MAAF,CAASgB,eAAT,CAAyB,iBAAzB;AACD;;AAED,UAAI,MAAKvF,KAAL,CAAWW,QAAf,EAAyB;AACvB2D,QAAAA,CAAC,CAACkB,eAAF;AACA;AACD;;AAED,UAAI,CAAClG,kBAAUO,cAAX,KAAsB,MAAKZ,UAA/B,EAA2C;AACzC,cAAKA,UAAL,GAAkB,KAAlB;AACA;AACD;AACD,UAAI,CAACK,kBAAUO,cAAX,KAAsB,MAAKb,MAA/B,EAAuC;AACrC;AACD;;AAED;;AAEA,YAAKqG,QAAL,CAAc,EAAEzG,OAAO,EAAE,KAAX,EAAd;;AAEA,UAAI,MAAKoB,KAAL,CAAWyF,MAAf,EAAuB;AACrB,cAAKzF,KAAL,CAAWyF,MAAX,CAAkBnB,CAAlB;AACD;AACF,K;;AAEOpB,IAAAA,c,GAAiB,UAACwC,EAAD,EAAiC;AACxD,YAAK5G,WAAL,GAAmB4G,EAAnB;AACD,K;;AAEOzF,IAAAA,Q,GAAW,UAACyF,EAAD,EAA4B;AAC7C,UAAI,MAAK1F,KAAL,CAAWC,QAAf,EAAyB;AACvB,cAAKD,KAAL,CAAWC,QAAX,CAAoByF,EAApB;AACD;AACD,YAAK7G,IAAL,GAAY6G,EAAZ;AACD,K;;AAEOhB,IAAAA,O,GAAU,YAAY;AAC5B,YAAK1F,MAAL,GAAc,KAAd;AACA,YAAKC,UAAL,GAAkB,KAAlB;AACD,K;;AAEO4C,IAAAA,gB,GAAmB,YAAM;AAC/B,cAAQ,MAAK7B,KAAL,CAAWO,IAAnB;AACE,aAAK,OAAL;AACE,iBAAO;AACJoB,wBAAcgE,SAAd,CAAwB,MAAK/D,KAA7B,CADI,IACkC,IADlC;AAEJD,wBAAciE,iBAAd,CAAgC,MAAKhE,KAArC,CAFI,IAE0CtC,kBAAUO,cAFpD,QAAP;;AAIF,aAAK,QAAL;AACE,iBAAO;AACJ8B,wBAAckE,UAAd,CAAyB,MAAKjE,KAA9B,CADI,IACmC,IADnC;AAEJD,wBAAcmE,kBAAd,CAAiC,MAAKlE,KAAtC,CAFI,IAE2CtC,kBAAUO,cAFrD,QAAP;;AAIF,aAAK,OAAL;AACA;AACE,iBAAO;AACJ8B,wBAAcoE,SAAd,CAAwB,MAAKnE,KAA7B,CADI,IACkC,IADlC;AAEJD,wBAAcqE,iBAAd,CAAgC,MAAKpE,KAArC,CAFI,IAE0CtC,kBAAUO,cAFpD,SAAP,CAbJ;;;AAkBD,K,qDAlbD;AACF;AACA,K,OACSC,K,GAAP,iBAAe,CACb,IAAI,KAAKjB,IAAT,EAAe,CACb,KAAKA,IAAL,CAAUiB,KAAV,GACD,CACF,C,CAED;AACF;AACA,K,QACSmG,I,GAAP,gBAAc,CACZ,IAAI,KAAKpH,IAAT,EAAe,CACb,KAAKA,IAAL,CAAUoH,IAAV,GACD,CACF,C,CAED;AACF;AACA,K,QACSnE,K,GAAP,iBAAe,mBACb,IAAI,KAAK9B,KAAL,CAAWW,QAAf,EAAyB,CACvB,OACD,CACD,KAAK0E,QAAL,CAAc,EAAE1G,QAAQ,EAAE,IAAZ,EAAd,EAAkC,YAAM,CACtC,MAAI,CAACuH,YAAL,GAAoBtG,MAAM,CAACH,UAAP,CAAkB,oBAAM,MAAI,CAAC4F,QAAL,CAAc,EAAE1G,QAAQ,EAAE,KAAZ,EAAd,CAAN,EAAlB,EAA4D,GAA5D,CAApB,CACD,CAFD,EAGD,C,QAEMwH,O,GAAP,mBAAqC,CACnC,OAAO,KAAKtH,IAAZ,CACD,C,QAqBMuH,iB,GAAP,6BAA2B,CACzB,IAAI,KAAKvH,IAAT,EAAe,CACbwH,qBAAUC,MAAV,CAAiB,KAAKzH,IAAtB,EAA4BoC,gBAA5B,CAA6C,KAAK4D,oBAAlD,EAAwE3D,cAAxE,CAAuF,KAAKgE,kBAA5F,EACD,CACD3F,QAAQ,CAACgH,gBAAT,CAA0B,WAA1B,EAAuC,KAAKlC,uBAA5C,EACA9E,QAAQ,CAACgH,gBAAT,CAA0B,SAA1B,EAAqC,KAAK5B,qBAA1C,EACD,C,QAEM6B,oB,GAAP,gCAA8B,CAC5B,IAAI,KAAKN,YAAT,EAAuB,CACrBO,YAAY,CAAC,KAAKP,YAAN,CAAZ,CACD,CACDG,qBAAUK,IAAV,CAAe,KAAK7H,IAApB,EACAU,QAAQ,CAACoH,mBAAT,CAA6B,WAA7B,EAA0C,KAAKtC,uBAA/C,EACA9E,QAAQ,CAACoH,mBAAT,CAA6B,SAA7B,EAAwC,KAAKhC,qBAA7C,EACD,C,QAEMiC,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAAChF,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAACiF,WAAjC,IAAkD,MAAI,CAAC7G,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,C,QAkFOsD,gB,GAAR,0BAAyByD,KAAzB,EAAwC,KAAfA,KAAe,cAAfA,KAAe,GAAP,KAAO,EACtC,QAAQ,KAAK9G,KAAL,CAAWO,IAAnB,GACE,KAAK,OAAL,CACE,OAAOuG,KAAK,GAAGnF,cAAcoF,cAAd,CAA6B,KAAKnF,KAAlC,CAAH,GAA8CD,cAAcqF,aAAd,CAA4B,KAAKpF,KAAjC,CAA1D,CACF,KAAK,QAAL,CACE,OAAOkF,KAAK,GAAGnF,cAAcsF,eAAd,CAA8B,KAAKrF,KAAnC,CAAH,GAA+CD,cAAcuF,cAAd,CAA6B,KAAKtF,KAAlC,CAA3D,CACF,KAAK,OAAL,CACA,QACE,OAAOkF,KAAK,GAAGnF,cAAcwF,cAAd,CAA6B,KAAKvF,KAAlC,CAAH,GAA8CD,cAAcyF,aAAd,CAA4B,KAAKxF,KAAjC,CAA1D,CAPJ,CASD,C,wBAjMgCyF,eAAMC,S,WACzBC,mB,GAAsB,e,UAEtBC,Y,GAAe,EAAEjH,IAAI,EAAE,OAAR,E","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"]}
|
|
1
|
+
{"version":3,"sources":["InputLikeText.tsx"],"names":["InputLikeTextDataTids","root","input","InputLikeText","rootNode","getProps","defaultProps","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__"],"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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\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\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'size'>>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps: DefaultProps = { size: 'small' };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private 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.getProps().size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = 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.getProps().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"]}
|
|
@@ -26,16 +26,11 @@ interface MenuState {
|
|
|
26
26
|
export declare const InternalMenuDataTids: {
|
|
27
27
|
readonly root: "InternalMenu__root";
|
|
28
28
|
};
|
|
29
|
+
declare type DefaultProps = Required<Pick<MenuProps, 'width' | 'maxHeight' | 'hasShadow' | 'preventWindowScroll' | 'cyclicSelection' | 'initialSelectedItemIndex'>>;
|
|
29
30
|
export declare class InternalMenu extends React.PureComponent<MenuProps, MenuState> {
|
|
30
31
|
static __KONTUR_REACT_UI__: string;
|
|
31
|
-
static defaultProps:
|
|
32
|
-
|
|
33
|
-
maxHeight: number;
|
|
34
|
-
hasShadow: boolean;
|
|
35
|
-
preventWindowScroll: boolean;
|
|
36
|
-
cyclicSelection: boolean;
|
|
37
|
-
initialSelectedItemIndex: number;
|
|
38
|
-
};
|
|
32
|
+
static defaultProps: DefaultProps;
|
|
33
|
+
private getProps;
|
|
39
34
|
state: MenuState;
|
|
40
35
|
private theme;
|
|
41
36
|
private scrollContainer;
|
|
@@ -43,7 +38,6 @@ export declare class InternalMenu extends React.PureComponent<MenuProps, MenuSta
|
|
|
43
38
|
private setRootNode;
|
|
44
39
|
private header;
|
|
45
40
|
private footer;
|
|
46
|
-
private getProps;
|
|
47
41
|
componentDidMount(): void;
|
|
48
42
|
componentDidUpdate(prevProps: MenuProps): void;
|
|
49
43
|
focus(): void;
|