@skbkontur/react-ui 6.4.3-6344a.0 → 6.4.4-3a8c8.0
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 +12 -0
- package/components/Autocomplete/Autocomplete.js +1 -1
- package/components/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/{Autocomplete.css.d.ts → Autocomplete.styles.d.ts} +1 -1
- package/components/Autocomplete/Autocomplete.styles.js +18 -0
- package/components/Autocomplete/Autocomplete.styles.js.map +1 -0
- package/components/Button/Button.js +2 -3
- package/components/Button/Button.js.map +1 -1
- package/components/Button/Button.mixins.js +6 -11
- package/components/Button/Button.mixins.js.map +1 -1
- package/components/Button/{Button.css.d.ts → Button.styles.d.ts} +2 -2
- package/components/Button/Button.styles.js +260 -0
- package/components/Button/Button.styles.js.map +1 -0
- package/components/Button/ButtonArrow.d.ts +1 -1
- package/components/Button/ButtonArrow.js +1 -1
- package/components/Button/ButtonArrow.js.map +1 -1
- package/components/Button/ButtonIcon.js +1 -1
- package/components/Button/ButtonIcon.js.map +1 -1
- package/components/Button/{ButtonIcon.css.d.ts → ButtonIcon.styles.d.ts} +1 -1
- package/components/Button/ButtonIcon.styles.js +53 -0
- package/components/Button/ButtonIcon.styles.js.map +1 -0
- package/components/Button/LoadingButtonIcon.js +1 -1
- package/components/Button/LoadingButtonIcon.js.map +1 -1
- package/components/Calendar/Calendar.js +1 -1
- package/components/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/{Calendar.css.d.ts → Calendar.styles.d.ts} +1 -1
- package/components/Calendar/Calendar.styles.js +22 -0
- package/components/Calendar/Calendar.styles.js.map +1 -0
- package/components/Calendar/CalendarDay.js +1 -1
- package/components/Calendar/CalendarDay.js.map +1 -1
- package/components/Calendar/DayCellView.js +1 -1
- package/components/Calendar/DayCellView.js.map +1 -1
- package/components/Calendar/{DayCellView.css.d.ts → DayCellView.styles.d.ts} +1 -1
- package/components/Calendar/DayCellView.styles.js +31 -0
- package/components/Calendar/DayCellView.styles.js.map +1 -0
- package/components/Calendar/Month.js +2 -2
- package/components/Calendar/Month.js.map +1 -1
- package/components/Calendar/MonthView.js +1 -1
- package/components/Calendar/MonthView.js.map +1 -1
- package/components/Calendar/{MonthView.css.d.ts → MonthView.styles.d.ts} +1 -1
- package/components/Calendar/MonthView.styles.js +47 -0
- package/components/Calendar/MonthView.styles.js.map +1 -0
- package/components/Center/Center.js +1 -1
- package/components/Center/Center.js.map +1 -1
- package/components/Center/{Center.css.d.ts → Center.styles.d.ts} +1 -1
- package/components/Center/Center.styles.js +27 -0
- package/components/Center/Center.styles.js.map +1 -0
- package/components/Checkbox/Checkbox.js +1 -1
- package/components/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.mixins.js +6 -3
- package/components/Checkbox/Checkbox.mixins.js.map +1 -1
- package/components/Checkbox/{Checkbox.css.d.ts → Checkbox.styles.d.ts} +1 -2
- package/components/Checkbox/Checkbox.styles.js +100 -0
- package/components/Checkbox/Checkbox.styles.js.map +1 -0
- package/components/DateInput/DateFragmentsView.js +1 -1
- package/components/DateInput/DateFragmentsView.js.map +1 -1
- package/components/DateInput/{DateFragmentsView.css.d.ts → DateFragmentsView.styles.d.ts} +1 -1
- package/components/DateInput/DateFragmentsView.styles.js +28 -0
- package/components/DateInput/DateFragmentsView.styles.js.map +1 -0
- package/components/DateInput/DateInput.js +1 -1
- package/components/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/{DateInput.css.d.ts → DateInput.styles.d.ts} +3 -2
- package/components/DateInput/DateInput.styles.js +29 -0
- package/components/DateInput/DateInput.styles.js.map +1 -0
- package/components/DatePicker/DatePicker.js +1 -1
- package/components/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/{DatePicker.css.d.ts → DatePicker.styles.d.ts} +1 -1
- package/components/DatePicker/DatePicker.styles.js +18 -0
- package/components/DatePicker/DatePicker.styles.js.map +1 -0
- package/components/DatePicker/MobilePicker.js +1 -1
- package/components/DatePicker/MobilePicker.js.map +1 -1
- package/components/DatePicker/MobilePicker.styles.d.ts +3 -0
- package/components/DatePicker/MobilePicker.styles.js +15 -0
- package/components/DatePicker/MobilePicker.styles.js.map +1 -0
- package/components/DateRangePicker/DateRangePicker.d.ts +4 -4
- package/components/DateRangePicker/DateRangePicker.js +27 -32
- package/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/{DateRangePicker.css.d.ts → DateRangePicker.styles.d.ts} +3 -7
- package/components/DateRangePicker/DateRangePicker.styles.js +57 -0
- package/components/DateRangePicker/DateRangePicker.styles.js.map +1 -0
- package/components/FileUploader/FileUploader.js +1 -1
- package/components/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/{FileUploader.css.d.ts → FileUploader.styles.d.ts} +3 -3
- package/components/FileUploader/FileUploader.styles.js +221 -0
- package/components/FileUploader/FileUploader.styles.js.map +1 -0
- package/components/FileUploader/FileUploaderFile.js +1 -1
- package/components/FileUploader/FileUploaderFile.js.map +1 -1
- package/components/FileUploader/{FileUploaderFile.css.d.ts → FileUploaderFile.styles.d.ts} +3 -3
- package/components/FileUploader/FileUploaderFile.styles.js +184 -0
- package/components/FileUploader/FileUploaderFile.styles.js.map +1 -0
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js +1 -1
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/components/FileUploader/FileUploaderFileList/{FileUploaderFileList.css.d.ts → FileUploaderFileList.styles.d.ts} +3 -3
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js +103 -0
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -0
- package/components/FileUploader/FileUploaderFileStatusIcon.js +1 -1
- package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.js +7 -13
- package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +17 -0
- package/components/GlobalLoader/GlobalLoaderView.styles.js +70 -0
- package/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -0
- package/components/Group/Group.js +1 -1
- package/components/Group/Group.js.map +1 -1
- package/components/Group/{Group.css.d.ts → Group.styles.d.ts} +1 -1
- package/components/Group/Group.styles.js +30 -0
- package/components/Group/Group.styles.js.map +1 -0
- package/components/Hint/Hint.js +1 -1
- package/components/Hint/Hint.js.map +1 -1
- package/components/Hint/{Hint.css.d.ts → Hint.styles.d.ts} +1 -1
- package/components/Hint/Hint.styles.js +18 -0
- package/components/Hint/Hint.styles.js.map +1 -0
- package/components/Input/Input.js +1 -1
- package/components/Input/Input.js.map +1 -1
- package/components/Input/{Input.css.d.ts → Input.styles.d.ts} +1 -1
- package/components/Input/Input.styles.js +68 -0
- package/components/Input/Input.styles.js.map +1 -0
- package/components/Input/InputLayout/InputLayout.js +1 -1
- package/components/Input/InputLayout/InputLayout.js.map +1 -1
- package/components/Input/InputLayout/{InputLayout.css.d.ts → InputLayout.styles.d.ts} +1 -1
- package/components/Input/InputLayout/InputLayout.styles.js +59 -0
- package/components/Input/InputLayout/InputLayout.styles.js.map +1 -0
- package/components/Input/InputLayout/InputLayoutAside.js +1 -1
- package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAsideCounter.js +1 -1
- package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAsideText.js +1 -1
- package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
- package/components/Kebab/Kebab.js +1 -1
- package/components/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/{Kebab.css.d.ts → Kebab.styles.d.ts} +1 -1
- package/components/Kebab/Kebab.styles.js +36 -0
- package/components/Kebab/Kebab.styles.js.map +1 -0
- package/components/Link/Link.js +2 -3
- package/components/Link/Link.js.map +1 -1
- package/components/Link/{Link.css.d.ts → Link.styles.d.ts} +1 -1
- package/components/Link/Link.styles.js +82 -0
- package/components/Link/Link.styles.js.map +1 -0
- package/components/Link/LinkIcon.js +1 -1
- package/components/Link/LinkIcon.js.map +1 -1
- package/components/Loader/Loader.js +1 -1
- package/components/Loader/Loader.js.map +1 -1
- package/components/Loader/{Loader.css.d.ts → Loader.styles.d.ts} +1 -1
- package/components/Loader/Loader.styles.js +27 -0
- package/components/Loader/Loader.styles.js.map +1 -0
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.d.ts +6 -0
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js +18 -0
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +1 -0
- package/components/MaskedInput/{MaskedInput.css.d.ts → MaskedInput.styles.d.ts} +1 -1
- package/components/MaskedInput/MaskedInput.styles.js +19 -0
- package/components/MaskedInput/MaskedInput.styles.js.map +1 -0
- package/components/MaskedInput/MaskedInputLegacy.js +1 -1
- package/components/MaskedInput/MaskedInputLegacy.js.map +1 -1
- package/components/MaskedInputV2/MaskedInputV2.js +1 -1
- package/components/MaskedInputV2/MaskedInputV2.js.map +1 -1
- package/components/MaskedInputV2/{MaskedInputV2.css.d.ts → MaskedInputV2.styles.d.ts} +1 -1
- package/components/MaskedInputV2/MaskedInputV2.styles.js +19 -0
- package/components/MaskedInputV2/MaskedInputV2.styles.js.map +1 -0
- package/components/MaskedInputV2/internal/MaskOverlay.js +1 -1
- package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -1
- package/components/MaskedInputV2/internal/MaskedCore.js +1 -1
- package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -1
- package/components/MaskedInputV2/internal/{MaskedInternal.css.d.ts → MaskedInternal.styles.d.ts} +1 -1
- package/components/MaskedInputV2/internal/MaskedInternal.styles.js +34 -0
- package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +1 -0
- package/components/MenuFooter/MenuFooter.js +1 -1
- package/components/MenuFooter/MenuFooter.js.map +1 -1
- package/components/MenuFooter/{MenuFooter.css.d.ts → MenuFooter.styles.d.ts} +1 -1
- package/components/MenuFooter/MenuFooter.styles.js +34 -0
- package/components/MenuFooter/MenuFooter.styles.js.map +1 -0
- package/components/MenuHeader/MenuHeader.js +1 -1
- package/components/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuHeader/{MenuHeader.css.d.ts → MenuHeader.styles.d.ts} +1 -1
- package/components/MenuHeader/MenuHeader.styles.js +34 -0
- package/components/MenuHeader/MenuHeader.styles.js.map +1 -0
- package/components/MenuItem/MenuItem.js +1 -1
- package/components/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.mixins.js +1 -1
- package/components/MenuItem/MenuItem.mixins.js.map +1 -1
- package/components/MenuItem/{MenuItem.css.d.ts → MenuItem.styles.d.ts} +3 -1
- package/components/MenuItem/MenuItem.styles.js +88 -0
- package/components/MenuItem/MenuItem.styles.js.map +1 -0
- package/components/MenuSeparator/MenuSeparator.js +1 -1
- package/components/MenuSeparator/MenuSeparator.js.map +1 -1
- package/components/MenuSeparator/{MenuSeparator.css.d.ts → MenuSeparator.styles.d.ts} +1 -1
- package/components/MenuSeparator/MenuSeparator.styles.js +18 -0
- package/components/MenuSeparator/MenuSeparator.styles.js.map +1 -0
- package/components/MiniModal/{MiniModal.css.d.ts → MiniModal.styles.d.ts} +1 -1
- package/components/MiniModal/MiniModal.styles.js +37 -0
- package/components/MiniModal/MiniModal.styles.js.map +1 -0
- package/components/MiniModal/MiniModalBody.js +1 -1
- package/components/MiniModal/MiniModalBody.js.map +1 -1
- package/components/MiniModal/MiniModalFooter.js +1 -1
- package/components/MiniModal/MiniModalFooter.js.map +1 -1
- package/components/MiniModal/MiniModalHeader.js +1 -1
- package/components/MiniModal/MiniModalHeader.js.map +1 -1
- package/components/MiniModal/MiniModalIndent.js +1 -1
- package/components/MiniModal/MiniModalIndent.js.map +1 -1
- package/components/Modal/Modal.js +1 -1
- package/components/Modal/Modal.js.map +1 -1
- package/components/Modal/{Modal.css.d.ts → Modal.styles.d.ts} +1 -1
- package/components/Modal/Modal.styles.js +167 -0
- package/components/Modal/Modal.styles.js.map +1 -0
- package/components/Modal/ModalBody.js +1 -1
- package/components/Modal/ModalBody.js.map +1 -1
- package/components/Modal/ModalClose.js +1 -1
- package/components/Modal/ModalClose.js.map +1 -1
- package/components/Modal/ModalFooter.js +1 -1
- package/components/Modal/ModalFooter.js.map +1 -1
- package/components/Modal/ModalHeader.js +1 -1
- package/components/Modal/ModalHeader.js.map +1 -1
- package/components/Modal/ModalSeparator.js +1 -1
- package/components/Modal/ModalSeparator.js.map +1 -1
- package/components/Paging/Paging.js +1 -1
- package/components/Paging/Paging.js.map +1 -1
- package/components/Paging/{Paging.css.d.ts → Paging.styles.d.ts} +1 -1
- package/components/Paging/Paging.styles.js +99 -0
- package/components/Paging/Paging.styles.js.map +1 -0
- package/components/PasswordInput/PasswordInput.js +1 -1
- package/components/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/{PasswordInput.css.d.ts → PasswordInput.styles.d.ts} +1 -1
- package/components/PasswordInput/PasswordInput.styles.js +36 -0
- package/components/PasswordInput/PasswordInput.styles.js.map +1 -0
- package/components/Radio/Radio.js +1 -1
- package/components/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.mixins.js +7 -4
- package/components/Radio/Radio.mixins.js.map +1 -1
- package/components/Radio/{Radio.css.d.ts → Radio.styles.d.ts} +1 -2
- package/components/Radio/Radio.styles.js +100 -0
- package/components/Radio/Radio.styles.js.map +1 -0
- package/components/RadioGroup/RadioGroup.js +1 -1
- package/components/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/{RadioGroup.css.d.ts → RadioGroup.styles.d.ts} +1 -1
- package/components/RadioGroup/RadioGroup.styles.js +24 -0
- package/components/RadioGroup/RadioGroup.styles.js.map +1 -0
- package/components/ScrollContainer/ScrollBar.js +1 -1
- package/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.js +1 -1
- package/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/{ScrollContainer.css.d.ts → ScrollContainer.styles.d.ts} +1 -1
- package/components/ScrollContainer/ScrollContainer.styles.js +52 -0
- package/components/ScrollContainer/ScrollContainer.styles.js.map +1 -0
- package/components/Select/Select.js +2 -2
- package/components/Select/Select.js.map +1 -1
- package/components/Select/{Select.css.d.ts → Select.styles.d.ts} +1 -1
- package/components/Select/Select.styles.js +57 -0
- package/components/Select/Select.styles.js.map +1 -0
- package/components/SidePage/SidePage.js +1 -1
- package/components/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/{SidePage.css.d.ts → SidePage.styles.d.ts} +1 -1
- package/components/SidePage/SidePage.styles.js +158 -0
- package/components/SidePage/SidePage.styles.js.map +1 -0
- package/components/SidePage/SidePageBody.js +1 -1
- package/components/SidePage/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageCloseButton.js +1 -1
- package/components/SidePage/SidePageCloseButton.js.map +1 -1
- package/components/SidePage/SidePageContainer.js +1 -1
- package/components/SidePage/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageFooter.js +1 -1
- package/components/SidePage/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageHeader.js +1 -1
- package/components/SidePage/SidePageHeader.js.map +1 -1
- package/components/Spinner/Spinner.js +1 -1
- package/components/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/{Spinner.css.d.ts → Spinner.styles.d.ts} +1 -1
- package/components/Spinner/Spinner.styles.js +43 -0
- package/components/Spinner/Spinner.styles.js.map +1 -0
- package/components/Sticky/Sticky.js +1 -1
- package/components/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/{Sticky.css.d.ts → Sticky.styles.d.ts} +1 -1
- package/components/Sticky/Sticky.styles.js +27 -0
- package/components/Sticky/Sticky.styles.js.map +1 -0
- package/components/Switcher/Switcher.js +1 -1
- package/components/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/{Switcher.css.d.ts → Switcher.styles.d.ts} +1 -1
- package/components/Switcher/Switcher.styles.js +39 -0
- package/components/Switcher/Switcher.styles.js.map +1 -0
- package/components/Tabs/Indicator.js +1 -1
- package/components/Tabs/Indicator.js.map +1 -1
- package/components/Tabs/{Indicator.css.d.ts → Indicator.styles.d.ts} +1 -1
- package/components/Tabs/Indicator.styles.js +27 -0
- package/components/Tabs/Indicator.styles.js.map +1 -0
- package/components/Tabs/Tab.js +1 -1
- package/components/Tabs/Tab.js.map +1 -1
- package/components/Tabs/{Tab.css.d.ts → Tab.styles.d.ts} +3 -3
- package/components/Tabs/Tab.styles.js +105 -0
- package/components/Tabs/Tab.styles.js.map +1 -0
- package/components/Tabs/Tabs.js +1 -1
- package/components/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/{Tabs.css.d.ts → Tabs.styles.d.ts} +1 -1
- package/components/Tabs/Tabs.styles.js +26 -0
- package/components/Tabs/Tabs.styles.js.map +1 -0
- package/components/Textarea/Textarea.js +1 -1
- package/components/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/{Textarea.css.d.ts → Textarea.styles.d.ts} +1 -1
- package/components/Textarea/Textarea.styles.js +73 -0
- package/components/Textarea/Textarea.styles.js.map +1 -0
- package/components/Textarea/TextareaCounter.js +1 -1
- package/components/Textarea/TextareaCounter.js.map +1 -1
- package/components/TimePicker/TimePicker.js +1 -1
- package/components/TimePicker/TimePicker.js.map +1 -1
- package/components/TimePicker/{TimePicker.css.d.ts → TimePicker.styles.d.ts} +1 -1
- package/components/TimePicker/TimePicker.styles.js +39 -0
- package/components/TimePicker/TimePicker.styles.js.map +1 -0
- package/components/TimePicker/TimePickerItems.js +1 -1
- package/components/TimePicker/TimePickerItems.js.map +1 -1
- package/components/TimePicker/TimePickerPopup.js +1 -1
- package/components/TimePicker/TimePickerPopup.js.map +1 -1
- package/components/Toast/Toast.js +1 -1
- package/components/Toast/Toast.js.map +1 -1
- package/components/Toast/{Toast.css.d.ts → Toast.styles.d.ts} +1 -1
- package/components/Toast/Toast.styles.js +24 -0
- package/components/Toast/Toast.styles.js.map +1 -0
- package/components/Toast/ToastView.js +1 -1
- package/components/Toast/ToastView.js.map +1 -1
- package/components/Toast/{ToastView.css.d.ts → ToastView.styles.d.ts} +1 -1
- package/components/Toast/ToastView.styles.js +67 -0
- package/components/Toast/ToastView.styles.js.map +1 -0
- package/components/Toggle/Toggle.js +1 -1
- package/components/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.mixins.js +7 -4
- package/components/Toggle/Toggle.mixins.js.map +1 -1
- package/components/Toggle/{Toggle.css.d.ts → Toggle.styles.d.ts} +1 -2
- package/components/Toggle/Toggle.styles.js +147 -0
- package/components/Toggle/Toggle.styles.js.map +1 -0
- package/components/Token/Token.js +1 -1
- package/components/Token/Token.js.map +1 -1
- package/components/Token/{Token.css.d.ts → Token.styles.d.ts} +1 -1
- package/components/Token/Token.styles.js +67 -0
- package/components/Token/Token.styles.js.map +1 -0
- package/components/Token/TokenView.js +1 -1
- package/components/Token/TokenView.js.map +1 -1
- package/components/TokenInput/TextWidthHelper.js +1 -1
- package/components/TokenInput/TextWidthHelper.js.map +1 -1
- package/components/TokenInput/TokenInput.js +1 -1
- package/components/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/{TokenInput.css.d.ts → TokenInput.styles.d.ts} +1 -1
- package/components/TokenInput/TokenInput.styles.js +68 -0
- package/components/TokenInput/TokenInput.styles.js.map +1 -0
- package/components/Tooltip/Tooltip.js +1 -1
- package/components/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/{Tooltip.css.d.ts → Tooltip.styles.d.ts} +1 -1
- package/components/Tooltip/Tooltip.styles.js +36 -0
- package/components/Tooltip/Tooltip.styles.js.map +1 -0
- package/internal/ClearCrossIcon/ClearCrossIcon.js +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
- package/internal/ClearCrossIcon/{ClearCrossIcon.css.d.ts → ClearCrossIcon.styles.d.ts} +3 -2
- package/internal/ClearCrossIcon/ClearCrossIcon.styles.js +36 -0
- package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -0
- package/internal/CloseButtonIcon/CloseButtonIcon.js +8 -13
- package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/internal/CloseButtonIcon/{CloseButtonIcon.css.d.ts → CloseButtonIcon.styles.d.ts} +3 -4
- package/internal/CloseButtonIcon/CloseButtonIcon.styles.js +24 -0
- package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -0
- package/internal/CommonWrapper/CommonWrapper.d.ts +1 -6
- package/internal/CommonWrapper/CommonWrapper.js +4 -18
- package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.js +2 -2
- package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.styles.d.ts +4 -0
- package/internal/CustomComboBox/CustomComboBox.styles.js +18 -0
- package/internal/CustomComboBox/CustomComboBox.styles.js.map +1 -0
- package/internal/DateSelect/DateSelect.js +1 -1
- package/internal/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/{DateSelect.css.d.ts → DateSelect.styles.d.ts} +1 -1
- package/internal/DateSelect/DateSelect.styles.js +24 -0
- package/internal/DateSelect/DateSelect.styles.js.map +1 -0
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +11 -7
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.js +2 -2
- package/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/{InputLikeText.css.d.ts → InputLikeText.styles.d.ts} +1 -1
- package/internal/InputLikeText/InputLikeText.styles.js +30 -0
- package/internal/InputLikeText/InputLikeText.styles.js.map +1 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -4
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +15 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -0
- package/internal/MaskCharLowLine/MaskCharLowLine.js +1 -1
- package/internal/MaskCharLowLine/MaskCharLowLine.js.map +1 -1
- package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +3 -0
- package/internal/MaskCharLowLine/MaskCharLowLine.styles.js +15 -0
- package/internal/MaskCharLowLine/MaskCharLowLine.styles.js.map +1 -0
- package/internal/Menu/Menu.js +1 -1
- package/internal/Menu/Menu.js.map +1 -1
- package/internal/Menu/{Menu.css.d.ts → Menu.styles.d.ts} +1 -1
- package/internal/Menu/Menu.styles.js +51 -0
- package/internal/Menu/Menu.styles.js.map +1 -0
- package/internal/MenuMessage/MenuMessage.js +1 -1
- package/internal/MenuMessage/MenuMessage.js.map +1 -1
- package/internal/MenuMessage/{MenuMessage.css.d.ts → MenuMessage.styles.d.ts} +1 -1
- package/internal/MenuMessage/MenuMessage.styles.js +41 -0
- package/internal/MenuMessage/MenuMessage.styles.js.map +1 -0
- package/internal/MobilePopup/MobilePopup.js +1 -1
- package/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/{MobilePopup.css.d.ts → MobilePopup.styles.d.ts} +1 -1
- package/internal/MobilePopup/MobilePopup.styles.js +57 -0
- package/internal/MobilePopup/MobilePopup.styles.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
- package/internal/MobilePopup/MobilePopupFooter/{MobilePopupFooter.css.d.ts → MobilePopupFooter.styles.d.ts} +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +25 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/{MobilePopupHeader.css.d.ts → MobilePopupHeader.styles.d.ts} +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +47 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -0
- package/internal/NativeDateInput/NativeDateInput.js +1 -1
- package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
- package/internal/NativeDateInput/NativeDateInput.styles.d.ts +3 -0
- package/internal/NativeDateInput/NativeDateInput.styles.js +15 -0
- package/internal/NativeDateInput/NativeDateInput.styles.js.map +1 -0
- package/internal/NativeTimeInput/NativeTimeInput.js +1 -1
- package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -1
- package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +3 -0
- package/internal/NativeTimeInput/NativeTimeInput.styles.js +15 -0
- package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +1 -0
- package/internal/Popup/Popup.js +1 -1
- package/internal/Popup/Popup.js.map +1 -1
- package/internal/Popup/{Popup.css.d.ts → Popup.styles.d.ts} +1 -1
- package/internal/Popup/Popup.styles.js +69 -0
- package/internal/Popup/Popup.styles.js.map +1 -0
- package/internal/Popup/PopupPin.js +1 -1
- package/internal/Popup/PopupPin.js.map +1 -1
- package/internal/Popup/{PopupPin.css.d.ts → PopupPin.styles.d.ts} +1 -1
- package/internal/Popup/PopupPin.styles.js +33 -0
- package/internal/Popup/PopupPin.styles.js.map +1 -0
- package/internal/PopupMenu/PopupMenu.js +1 -1
- package/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.styles.d.ts +4 -0
- package/internal/PopupMenu/PopupMenu.styles.js +18 -0
- package/internal/PopupMenu/PopupMenu.styles.js.map +1 -0
- package/internal/RenderContainer/RenderContainer.d.ts +0 -1
- package/internal/RenderContainer/RenderContainer.js +1 -26
- package/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/ResizeDetector/ResizeDetector.js +1 -1
- package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
- package/internal/ResizeDetector/{ResizeDetector.css.d.ts → ResizeDetector.styles.d.ts} +1 -1
- package/internal/ResizeDetector/ResizeDetector.styles.js +27 -0
- package/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -0
- package/internal/SpinnerIcon/SpinnerIcon.js +1 -1
- package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
- package/internal/SpinnerIcon/{SpinnerIcon.css.d.ts → SpinnerIcon.styles.d.ts} +1 -1
- package/internal/SpinnerIcon/SpinnerIcon.styles.js +24 -0
- package/internal/SpinnerIcon/SpinnerIcon.styles.js.map +1 -0
- package/internal/TextWidthHelper/TextWidthHelper.js +1 -1
- package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +4 -0
- package/internal/TextWidthHelper/TextWidthHelper.styles.js +18 -0
- package/internal/TextWidthHelper/TextWidthHelper.styles.js.map +1 -0
- package/internal/TimeInput/TimeFragments.js +1 -1
- package/internal/TimeInput/TimeFragments.js.map +1 -1
- package/internal/TimeInput/{TimeFragments.css.d.ts → TimeFragments.styles.d.ts} +1 -1
- package/internal/TimeInput/TimeFragments.styles.js +78 -0
- package/internal/TimeInput/TimeFragments.styles.js.map +1 -0
- package/internal/TimeInput/TimeInput.js +1 -1
- package/internal/TimeInput/TimeInput.js.map +1 -1
- package/internal/TimeInput/{TimeInput.css.d.ts → TimeInput.styles.d.ts} +1 -1
- package/internal/TimeInput/TimeInput.styles.js +24 -0
- package/internal/TimeInput/TimeInput.styles.js.map +1 -0
- package/internal/icons2022/BaseIcon.js +1 -1
- package/internal/icons2022/BaseIcon.js.map +1 -1
- package/internal/icons2022/BaseIcon.styles.d.ts +3 -0
- package/internal/icons2022/BaseIcon.styles.js +16 -0
- package/internal/icons2022/BaseIcon.styles.js.map +1 -0
- package/internal/icons2022/LoadingIcon.js +1 -1
- package/internal/icons2022/LoadingIcon.js.map +1 -1
- package/lib/dom/tabbableHelpers.js +22 -1
- package/lib/dom/tabbableHelpers.js.map +1 -1
- package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +0 -6
- package/lib/styles/getLabGrotesqueBaselineCompensation.js +0 -26
- package/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -1
- package/lib/theming/AnimationKeyframes.d.ts +1 -1
- package/lib/theming/AnimationKeyframes.js +1 -1
- package/lib/theming/AnimationKeyframes.js.map +1 -1
- package/lib/theming/Emotion.d.ts +2 -6
- package/lib/theming/Emotion.js +11 -34
- package/lib/theming/Emotion.js.map +1 -1
- package/package.json +5 -15
- package/components/Autocomplete/Autocomplete.css.js +0 -3
- package/components/Autocomplete/Autocomplete.css.js.map +0 -1
- package/components/Button/Button.css.js +0 -5
- package/components/Button/Button.css.js.map +0 -1
- package/components/Button/ButtonIcon.css.js +0 -3
- package/components/Button/ButtonIcon.css.js.map +0 -1
- package/components/Calendar/Calendar.css.js +0 -3
- package/components/Calendar/Calendar.css.js.map +0 -1
- package/components/Calendar/DayCellView.css.js +0 -3
- package/components/Calendar/DayCellView.css.js.map +0 -1
- package/components/Calendar/MonthView.css.js +0 -3
- package/components/Calendar/MonthView.css.js.map +0 -1
- package/components/Center/Center.css.js +0 -3
- package/components/Center/Center.css.js.map +0 -1
- package/components/Checkbox/Checkbox.css.js +0 -5
- package/components/Checkbox/Checkbox.css.js.map +0 -1
- package/components/DateInput/DateFragmentsView.css.js +0 -3
- package/components/DateInput/DateFragmentsView.css.js.map +0 -1
- package/components/DateInput/DateInput.css.js +0 -3
- package/components/DateInput/DateInput.css.js.map +0 -1
- package/components/DatePicker/DatePicker.css.js +0 -3
- package/components/DatePicker/DatePicker.css.js.map +0 -1
- package/components/DatePicker/MobilePicker.css.d.ts +0 -3
- package/components/DatePicker/MobilePicker.css.js +0 -3
- package/components/DatePicker/MobilePicker.css.js.map +0 -1
- package/components/DateRangePicker/DateRangePicker.css.js +0 -3
- package/components/DateRangePicker/DateRangePicker.css.js.map +0 -1
- package/components/FileUploader/FileUploader.css.js +0 -6
- package/components/FileUploader/FileUploader.css.js.map +0 -1
- package/components/FileUploader/FileUploaderFile.css.js +0 -5
- package/components/FileUploader/FileUploaderFile.css.js.map +0 -1
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js +0 -5
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js.map +0 -1
- package/components/GlobalLoader/GlobalLoaderView.css.d.ts +0 -21
- package/components/GlobalLoader/GlobalLoaderView.css.js +0 -4
- package/components/GlobalLoader/GlobalLoaderView.css.js.map +0 -1
- package/components/Group/Group.css.js +0 -3
- package/components/Group/Group.css.js.map +0 -1
- package/components/Hint/Hint.css.js +0 -3
- package/components/Hint/Hint.css.js.map +0 -1
- package/components/Input/Input.css.js +0 -3
- package/components/Input/Input.css.js.map +0 -1
- package/components/Input/InputLayout/InputLayout.css.js +0 -4
- package/components/Input/InputLayout/InputLayout.css.js.map +0 -1
- package/components/Kebab/Kebab.css.js +0 -3
- package/components/Kebab/Kebab.css.js.map +0 -1
- package/components/Link/Link.css.js +0 -3
- package/components/Link/Link.css.js.map +0 -1
- package/components/Loader/Loader.css.js +0 -3
- package/components/Loader/Loader.css.js.map +0 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.d.ts +0 -6
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js +0 -4
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js.map +0 -1
- package/components/MaskedInput/MaskedInput.css.js +0 -4
- package/components/MaskedInput/MaskedInput.css.js.map +0 -1
- package/components/MaskedInputV2/MaskedInputV2.css.js +0 -4
- package/components/MaskedInputV2/MaskedInputV2.css.js.map +0 -1
- package/components/MaskedInputV2/internal/MaskedInternal.css.js +0 -4
- package/components/MaskedInputV2/internal/MaskedInternal.css.js.map +0 -1
- package/components/MenuFooter/MenuFooter.css.js +0 -3
- package/components/MenuFooter/MenuFooter.css.js.map +0 -1
- package/components/MenuHeader/MenuHeader.css.js +0 -3
- package/components/MenuHeader/MenuHeader.css.js.map +0 -1
- package/components/MenuItem/MenuItem.css.js +0 -3
- package/components/MenuItem/MenuItem.css.js.map +0 -1
- package/components/MenuSeparator/MenuSeparator.css.js +0 -3
- package/components/MenuSeparator/MenuSeparator.css.js.map +0 -1
- package/components/MiniModal/MiniModal.css.js +0 -4
- package/components/MiniModal/MiniModal.css.js.map +0 -1
- package/components/Modal/Modal.css.js +0 -4
- package/components/Modal/Modal.css.js.map +0 -1
- package/components/Paging/Paging.css.js +0 -3
- package/components/Paging/Paging.css.js.map +0 -1
- package/components/PasswordInput/PasswordInput.css.js +0 -3
- package/components/PasswordInput/PasswordInput.css.js.map +0 -1
- package/components/Radio/Radio.css.js +0 -5
- package/components/Radio/Radio.css.js.map +0 -1
- package/components/RadioGroup/RadioGroup.css.js +0 -3
- package/components/RadioGroup/RadioGroup.css.js.map +0 -1
- package/components/ScrollContainer/ScrollContainer.css.js +0 -4
- package/components/ScrollContainer/ScrollContainer.css.js.map +0 -1
- package/components/Select/Select.css.js +0 -3
- package/components/Select/Select.css.js.map +0 -1
- package/components/SidePage/SidePage.css.js +0 -3
- package/components/SidePage/SidePage.css.js.map +0 -1
- package/components/Spinner/Spinner.css.js +0 -3
- package/components/Spinner/Spinner.css.js.map +0 -1
- package/components/Sticky/Sticky.css.js +0 -3
- package/components/Sticky/Sticky.css.js.map +0 -1
- package/components/Switcher/Switcher.css.js +0 -3
- package/components/Switcher/Switcher.css.js.map +0 -1
- package/components/Tabs/Indicator.css.js +0 -3
- package/components/Tabs/Indicator.css.js.map +0 -1
- package/components/Tabs/Tab.css.js +0 -6
- package/components/Tabs/Tab.css.js.map +0 -1
- package/components/Tabs/Tabs.css.js +0 -3
- package/components/Tabs/Tabs.css.js.map +0 -1
- package/components/Textarea/Textarea.css.js +0 -3
- package/components/Textarea/Textarea.css.js.map +0 -1
- package/components/TimePicker/TimePicker.css.js +0 -3
- package/components/TimePicker/TimePicker.css.js.map +0 -1
- package/components/Toast/Toast.css.js +0 -3
- package/components/Toast/Toast.css.js.map +0 -1
- package/components/Toast/ToastView.css.js +0 -3
- package/components/Toast/ToastView.css.js.map +0 -1
- package/components/Toggle/Toggle.css.js +0 -5
- package/components/Toggle/Toggle.css.js.map +0 -1
- package/components/Token/Token.css.js +0 -4
- package/components/Token/Token.css.js.map +0 -1
- package/components/TokenInput/TokenInput.css.js +0 -4
- package/components/TokenInput/TokenInput.css.js.map +0 -1
- package/components/Tooltip/Tooltip.css.js +0 -3
- package/components/Tooltip/Tooltip.css.js.map +0 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.css.js +0 -3
- package/internal/ClearCrossIcon/ClearCrossIcon.css.js.map +0 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.css.js +0 -3
- package/internal/CloseButtonIcon/CloseButtonIcon.css.js.map +0 -1
- package/internal/CustomComboBox/CustomComboBox.css.d.ts +0 -4
- package/internal/CustomComboBox/CustomComboBox.css.js +0 -3
- package/internal/CustomComboBox/CustomComboBox.css.js.map +0 -1
- package/internal/DateSelect/DateSelect.css.js +0 -4
- package/internal/DateSelect/DateSelect.css.js.map +0 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.d.ts +0 -3
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js +0 -3
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js.map +0 -1
- package/internal/InputLikeText/InputLikeText.css.js +0 -3
- package/internal/InputLikeText/InputLikeText.css.js.map +0 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.d.ts +0 -5
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js +0 -4
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js.map +0 -1
- package/internal/MaskCharLowLine/MaskCharLowLine.css.d.ts +0 -3
- package/internal/MaskCharLowLine/MaskCharLowLine.css.js +0 -3
- package/internal/MaskCharLowLine/MaskCharLowLine.css.js.map +0 -1
- package/internal/Menu/Menu.css.js +0 -3
- package/internal/Menu/Menu.css.js.map +0 -1
- package/internal/MenuMessage/MenuMessage.css.js +0 -3
- package/internal/MenuMessage/MenuMessage.css.js.map +0 -1
- package/internal/MobilePopup/MobilePopup.css.js +0 -3
- package/internal/MobilePopup/MobilePopup.css.js.map +0 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js +0 -3
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js.map +0 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js +0 -3
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js.map +0 -1
- package/internal/NativeDateInput/NativeDateInput.css.d.ts +0 -3
- package/internal/NativeDateInput/NativeDateInput.css.js +0 -3
- package/internal/NativeDateInput/NativeDateInput.css.js.map +0 -1
- package/internal/NativeTimeInput/NativeTimeInput.css.d.ts +0 -3
- package/internal/NativeTimeInput/NativeTimeInput.css.js +0 -3
- package/internal/NativeTimeInput/NativeTimeInput.css.js.map +0 -1
- package/internal/Popup/Popup.css.js +0 -3
- package/internal/Popup/Popup.css.js.map +0 -1
- package/internal/Popup/PopupPin.css.js +0 -3
- package/internal/Popup/PopupPin.css.js.map +0 -1
- package/internal/PopupMenu/PopupMenu.css.d.ts +0 -4
- package/internal/PopupMenu/PopupMenu.css.js +0 -3
- package/internal/PopupMenu/PopupMenu.css.js.map +0 -1
- package/internal/ResizeDetector/ResizeDetector.css.js +0 -3
- package/internal/ResizeDetector/ResizeDetector.css.js.map +0 -1
- package/internal/SpinnerIcon/SpinnerIcon.css.js +0 -3
- package/internal/SpinnerIcon/SpinnerIcon.css.js.map +0 -1
- package/internal/TextWidthHelper/TextWidthHelper.css.d.ts +0 -4
- package/internal/TextWidthHelper/TextWidthHelper.css.js +0 -3
- package/internal/TextWidthHelper/TextWidthHelper.css.js.map +0 -1
- package/internal/TimeInput/TimeFragments.css.js +0 -3
- package/internal/TimeInput/TimeFragments.css.js.map +0 -1
- package/internal/TimeInput/TimeInput.css.js +0 -3
- package/internal/TimeInput/TimeInput.css.js.map +0 -1
- package/internal/icons2022/BaseIcon.css.d.ts +0 -3
- package/internal/icons2022/BaseIcon.css.js +0 -3
- package/internal/icons2022/BaseIcon.css.js.map +0 -1
- package/lib/styles/LabGrotesqueBaseline.css.d.ts +0 -1
- package/lib/styles/LabGrotesqueBaseline.css.js +0 -0
- package/lib/styles/LabGrotesqueBaseline.css.js.map +0 -1
- package/lib/theming/StaticStyles.d.ts +0 -30
- package/lib/theming/StaticStyles.js +0 -410
- package/lib/theming/StaticStyles.js.map +0 -1
- package/lib/theming/bindStaticStyles.d.ts +0 -4
- package/lib/theming/bindStaticStyles.js +0 -18
- package/lib/theming/bindStaticStyles.js.map +0 -1
- package/lib/theming/themeVars.d.ts +0 -26
- package/lib/theming/themeVars.js +0 -72
- package/lib/theming/themeVars.js.map +0 -1
- package/react-ui.css +0 -6926
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenInput.js","sourceRoot":"","sources":["TokenInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport lodashIsEqual from 'lodash.isequal';\nimport type {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEventHandler,\n ReactElement,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ComboBoxRequestStatus } from '../../internal/CustomComboBox/CustomComboBoxTypes.js';\nimport type { Menu } from '../../internal/Menu/index.js';\nimport { PopupIds } from '../../internal/Popup/index.js';\nimport { blink } from '../../lib/blink.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport {\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowRight,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyBackspace,\n isKeyComma,\n isCodeComma,\n isKeyDelete,\n isKeyEnter,\n isKeyEscape,\n isShortcutSelectAll,\n} from '../../lib/events/keyboard/identifiers.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport * as LayoutEvents from '../../lib/LayoutEvents.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { getUid } from '../../lib/uidUtils.js';\nimport { emptyHandler, getRandomID, isFunction } from '../../lib/utils.js';\nimport type { AnyObject } from '../../lib/utils.js';\nimport { MenuItem } from '../MenuItem/index.js';\nimport type { MenuItemState } from '../MenuItem/index.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport { ScrollContainer } from '../ScrollContainer/index.js';\nimport type { TokenProps, TokenSize } from '../Token/index.js';\nimport { Token } from '../Token/index.js';\nimport { TokenView } from '../Token/TokenView.js';\nimport type { TokenInputLocale } from './locale/index.js';\nimport { TokenInputLocaleHelper } from './locale/index.js';\nimport { TextWidthHelper } from './TextWidthHelper.js';\nimport { getStyles } from './TokenInput.css.js';\nimport { TokenInputMenu } from './TokenInputMenu.js';\nimport { TokenInputMobileMenu } from './TokenInputMobileMenu.js';\nimport type { TokenInputAction, TokenInputInternalState } from './TokenInputReducer.js';\nimport { tokenInputReducer } from './TokenInputReducer.js';\n\nconst TEMP_FAKE_FLAG = 'TEMP_FAKE_FLAG';\n\nexport enum TokenInputType {\n WithReference,\n WithoutReference,\n Combined,\n}\n\nexport type TokenInputMenuAlign = 'left' | 'cursor';\n\nexport interface TokenInputProps<T>\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Токены, которые будут отображаться в поле ввода. */\n selectedItems?: T[];\n\n /** Событие добавления нового токена. */\n onValueChange?: (items: T[]) => void;\n\n /** HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: MouseEventHandler<HTMLDivElement>;\n\n /** HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: MouseEventHandler<HTMLDivElement>;\n\n /** HTML-событие `onfocus`.\n * @ignore */\n onFocus?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** HTML-событие `onblur`.\n * @ignore */\n onBlur?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** HTML-событие `onkeydown`. */\n onKeyDown?: KeyboardEventHandler<HTMLTextAreaElement>;\n\n /** Устанавливает фокус на поле с токенами после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Размер поля с токенами. */\n size?: TokenSize;\n\n /** Тип инпута.\n * Возможные значения:\n * - `TokenInputType.Combined` — в поле можно выбирать значения из справочника и добавлять свои значения.\n * - `TokenInputType.WithReference` — можно только выбрать значения из справочника, но нельзя добавлять свои.\n * - `TokenInputType.WithoutReference` — можно добавлять любые значения, но подсказок из справочника нет. */\n type?: TokenInputType;\n\n /** Ширина выпадающего списка. */\n menuWidth?: React.CSSProperties['width'];\n\n /** Выравнивание выпадающего списка. */\n menuAlign?: TokenInputMenuAlign;\n\n /** Задаёт функцию поиска значений, которая должна возвращать Promise с массивом значений. По умолчанию ожидаются строки.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `renderItem`, `renderToken`, `valueToString` и `valueToItem`. */\n getItems?: (query: string) => Promise<Array<TokenInputExtendedItem<T>>>;\n\n /** Ограничивает отображение выпадающего списка при фокусе на пустом поле: выпадающий список появится, только когда будет введён хотя бы один символ токена. */\n hideMenuIfEmptyInputValue?: boolean;\n\n /** Отрисовывает элемент списка. */\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode | null;\n\n /** Отрисовывает выбранное значение.\n * @deprecated Используйте `renderToken` для отрисовки выбранного значения и `valueToString` для преобразования значения в строку.\n */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Возвращает строковое представление `value`. Необходимо при фокусировке.\n * @default item => item */\n valueToString?: (item: T) => string;\n\n /** Отрисовывает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им оборачиваются элементы, возвращаемые `getItems()`.\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы `renderTotalCount`. */\n totalCount?: number;\n\n /** Отрисовывает сообщение о пустом результате поиска. При `renderAddButton` не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Преобразовывает значение в элемент списка.\n * @default value => value\n */\n valueToItem?: (value: string) => T;\n\n /** Сравнивает полученные результаты с `value`. */\n itemToId?: (item: T) => string | number | undefined;\n\n /** Текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Символы, которые разделяют введённый текст на токены. По умолчанию — запятая. */\n delimiters?: string[];\n\n /** Меняет визуальное отображение токена на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n error?: boolean;\n\n /** Меняет визуальное отображение токена на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n warning?: boolean;\n\n /** Блокирует поле с токенами. */\n disabled?: boolean;\n\n /** Ширина поля с токенами. */\n width?: string | number;\n\n /** Максимальная высота выпадающего списка. */\n maxMenuHeight?: number | string;\n\n /** Отрисовывает токен и даёт возможность кастомизировать внешний вид и поведение токена. */\n renderToken?: (item: T, props: Partial<TokenProps>, index: number) => ReactNode;\n\n /** Событие изменения текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода. */\n onInputValueChange?: (value: string) => void;\n\n /** Отрисовывает кнопку добавления нового токена в выпадающем списке. */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n\n /** Событие обработки ввода строки в поле ввода и последующая потеря фокуса компонентом.\n * Функция срабатывает с аргументом поля строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет совпадать со значением в текстовом поле, то сработает `onValueChange` со значением данного элемента.\n * Сама функция также может вернуть значение, не равное undefined, с которым будет вызван `onValueChange`. Если возвращаемое значение будет равно null, то сработает очистка текущего значения поля, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n\n /** Задаёт функцию, которая проверяет, можно ли создать токен из свободного ввода.\n * Если вернуть `false`, токен не создаётся и поле мигает. Не применяется при выборе из справочника. */\n isTokenValid?: (value: string) => boolean;\n\n /** Задаёт типы вводимых данных. Передаёт браузеру информацию о том, какой набор символов показать при вводе данных в конкретное поле на устройствах с экранной клавиатурой. */\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n\n /**\n * Максимальная высота компонента. При её достижении появится скроллбар\n */\n maxHeight?: number;\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: Array<TokenInputExtendedItem<T>>;\n activeTokens: T[];\n editingTokenIndex: number;\n clickedToken?: T;\n clickedTokenTimeout?: number;\n inFocus?: boolean;\n inputValue: string;\n reservedInputValue: string | undefined;\n inputValueWidth: number;\n inputValueHeight: number;\n preventBlur?: boolean;\n loading?: boolean;\n showMobilePopup?: boolean;\n}\n\nexport type TokenInputExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\nexport const DefaultState: TokenInputInternalState<any> = {\n inputValue: '',\n reservedInputValue: undefined,\n autocompleteItems: undefined,\n activeTokens: [],\n editingTokenIndex: -1,\n inFocus: false,\n loading: false,\n preventBlur: false,\n inputValueWidth: 2,\n inputValueHeight: 22,\n showMobilePopup: false,\n requestStatus: ComboBoxRequestStatus.Unknown,\n};\n\nexport const TokenInputDataTids = {\n root: 'TokenInput__root',\n tokenInputMenu: 'TokenInputMenu__root',\n label: 'TokenInput__label',\n} as const;\n\ntype DefaultProps<T> = Required<\n Pick<\n TokenInputProps<T>,\n | 'selectedItems'\n | 'delimiters'\n | 'renderItem'\n | 'renderValue'\n | 'valueToString'\n | 'valueToItem'\n | 'itemToId'\n | 'onValueChange'\n | 'width'\n | 'onBlur'\n | 'onFocus'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'menuWidth'\n | 'menuAlign'\n >\n>;\n\nconst identity = <T extends unknown>(item: T): T => item;\nconst defaultRenderToken = <T extends AnyObject>(\n item: T,\n { isActive, onClick, onDoubleClick, onRemove, disabled, size }: Partial<TokenProps>,\n) => (\n <Token\n key={item.toString()}\n isActive={isActive}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onRemove={onRemove}\n disabled={disabled}\n size={size}\n >\n {item.toString()}\n </Token>\n);\n\n/** Поле с токенами — это поле ввода со списком подсказок. Значения в поле отображаются в виде отдельных токенов.\n */\n@responsiveLayout\n@withRenderEnvironment\n@rootNode\n@locale('TokenInput', TokenInputLocaleHelper)\n@withSize\nexport class TokenInput<T = string> extends React.PureComponent<TokenInputProps<T>, TokenInputInternalState<T>> {\n public static __KONTUR_REACT_UI__ = 'TokenInput';\n public static displayName = 'TokenInput';\n\n public static defaultProps: DefaultProps<any> = {\n selectedItems: [],\n // TEMP_FAKE_FLAG помогает узнать, остались ли разделители дефолтными или пользователь передал их равными дефолтным.\n delimiters: [',', TEMP_FAKE_FLAG],\n renderItem: identity,\n renderValue: identity,\n valueToString: identity,\n valueToItem: (item: string) => item,\n itemToId: identity,\n onValueChange: () => void 0,\n width: 250 as string | number,\n onBlur: emptyHandler,\n onFocus: emptyHandler,\n onMouseEnter: emptyHandler,\n onMouseLeave: emptyHandler,\n menuWidth: 'auto',\n menuAlign: 'cursor',\n };\n\n private getDelimiters(): string[] {\n const delimiters = this.props.delimiters ?? [];\n if (delimiters.every((delimiter) => delimiter !== TEMP_FAKE_FLAG)) {\n return delimiters;\n }\n return delimiters.filter((delimiter) => delimiter !== TEMP_FAKE_FLAG);\n }\n\n private getProps() {\n const propsGetter = createPropsGetter(TokenInput.defaultProps);\n const propsWithOldDelimiters = propsGetter.apply(this);\n return { ...propsWithOldDelimiters, delimiters: this.getDelimiters() };\n }\n\n private get textareaId() {\n return this.props.id ?? this._textareaId;\n }\n\n public state: TokenInputInternalState<T> = DefaultState;\n\n private readonly _textareaId: string = getUid();\n private rootId = PopupIds.root + getRandomID();\n private readonly locale!: TokenInputLocale;\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private isMobileLayout!: boolean;\n private input: HTMLTextAreaElement | null = null;\n private tokensInputMenu: TokenInputMenu<T> | TokenInputMobileMenu<T> | null = null;\n private textHelper: TextWidthHelper | null = null;\n private wrapper: HTMLLabelElement | null = null;\n private scrollContainerRef = React.createRef<HTMLDivElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n private menuNavigatedByUser = false;\n private requestId = 0;\n\n public componentDidMount() {\n this.updateInputTextWidth();\n this.globalObject.document?.addEventListener('copy', this.handleCopy);\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n\n public componentDidUpdate(prevProps: TokenInputProps<T> & DefaultProps<T>, prevState: TokenInputInternalState<T>) {\n if (prevState.inputValue !== this.state.inputValue) {\n this.updateInputTextWidth();\n }\n if (prevState.activeTokens.length === 0 && this.state.activeTokens.length > 0) {\n this.dispatch({\n type: 'SET_AUTOCOMPLETE_ITEMS',\n payload: undefined,\n });\n }\n if (prevProps.selectedItems.length !== this.getProps().selectedItems.length) {\n LayoutEvents.emit();\n this.memoizedTokens.clear();\n }\n if (!this.isCursorVisibleForState(prevState) && this.isCursorVisible) {\n this.tryGetItems(this.isEditingMode ? '' : this.state.inputValue);\n }\n if (!prevState.showMobilePopup && this.state.showMobilePopup && this.usesMobilePopup) {\n this.globalObject.requestAnimationFrame?.(() => {\n this.input?.focus({ preventScroll: true });\n this.tryGetItems(this.state.inputValue);\n });\n }\n }\n\n private get usesMobilePopup(): boolean {\n return this.isMobileLayout && this.type !== TokenInputType.WithoutReference;\n }\n\n private isInlineInteractive(): boolean {\n return !(this.usesMobilePopup && !!this.state.showMobilePopup);\n }\n\n public componentWillUnmount() {\n this.cancelRequest();\n this.globalObject.document?.removeEventListener('copy', this.handleCopy);\n }\n\n /** Программно устанавливает фокус на поле.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus(): void {\n this.input?.focus();\n }\n\n /** Программно снимает фокус с поля.\n * @public\n */\n public blur(): void {\n this.input?.blur();\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink(): void {\n blink({ el: this.wrapper, blinkColor: this.theme.inputBlinkColor });\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getLabelSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.labelLarge(this.theme);\n case 'medium':\n return this.styles.labelMedium(this.theme);\n case 'small':\n default:\n return this.styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.inputLarge(this.theme);\n case 'medium':\n return this.styles.inputMedium(this.theme);\n case 'small':\n default:\n return this.styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n warning(false, `getItems is required for \"Combined\" and \"WithReference\" modes.`);\n }\n const { onMouseEnter, onMouseLeave } = this.getProps();\n const { showMobilePopup } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n {this.renderInlineField()}\n {this.usesMobilePopup && showMobilePopup && this.renderMobileMenu()}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderInlineField = (): ReactElement => {\n return this.renderTokenInputField({\n variant: 'inline',\n interactive: this.isInlineInteractive(),\n fieldWidth: this.getProps().width,\n showMenu: Boolean(\n !this.isMobileLayout &&\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n this.state.activeTokens.length === 0 &&\n (this.isInputValueChanged || !this.props.hideMenuIfEmptyInputValue),\n ),\n });\n };\n\n private renderMobilePopupFooter = (): ReactElement => {\n return this.renderTokenInputField({\n variant: 'mobileFooter',\n interactive: true,\n fieldWidth: '100%',\n showMenu: false,\n });\n };\n\n private renderTokenInputField = ({\n variant,\n interactive,\n fieldWidth,\n showMenu,\n }: {\n variant: 'inline' | 'mobileFooter';\n interactive: boolean;\n fieldWidth: React.CSSProperties['width'];\n showMenu: boolean;\n }): ReactElement => {\n const {\n maxMenuHeight,\n error,\n warning,\n disabled,\n renderNotFound,\n inputMode,\n renderTotalCount,\n totalCount,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n maxHeight,\n } = this.props;\n\n const { selectedItems, menuWidth, menuAlign, renderItem } = this.getProps();\n const isMobileFooter = variant === 'mobileFooter';\n const { inFocus, inputValueWidth, inputValueHeight, inputValue, reservedInputValue, loading } = this.state;\n\n const theme = this.theme;\n\n const inputInlineStyles: React.CSSProperties = {\n // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости\n width: inputValueWidth,\n height: inputValueHeight,\n // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее\n caretColor: this.isCursorVisible && interactive ? undefined : 'transparent',\n };\n\n const labelClassName = this.cx(this.styles.label(theme), this.getLabelSizeClassName(), {\n [this.styles.labelNonInteractive()]: !interactive,\n [this.styles.hovering(this.theme)]: interactive && !inFocus && !disabled && !warning && !error,\n [this.styles.labelDisabled(theme)]: !!disabled,\n [this.styles.labelFocused(theme)]: interactive && !!inFocus,\n [this.styles.error(theme)]: !!error,\n [this.styles.warning(theme)]: !!warning,\n });\n const inputClassName = this.cx(this.styles.input(theme), this.getInputSizeClassName(), {\n [this.styles.inputDisabled(theme)]: !!disabled,\n });\n\n const placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';\n\n const inputNode = (\n <TokenView\n size={this.size}\n className={this.cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [this.styles.inputPlaceholderWrapper()]: Boolean(placeholder),\n })}\n hideCloseButton={Boolean(placeholder)}\n >\n <textarea\n id={isMobileFooter || interactive ? this.textareaId : undefined}\n ref={isMobileFooter ? this.mobileInputRef : this.inlineInputRef}\n value={inputValue}\n style={inputInlineStyles}\n spellCheck={false}\n disabled={disabled}\n readOnly={!interactive}\n tabIndex={!interactive ? -1 : undefined}\n className={inputClassName}\n placeholder={placeholder}\n onFocus={interactive ? this.handleInputFocus : undefined}\n onBlur={interactive ? this.handleInputBlur : undefined}\n onChange={interactive ? this.handleChangeInputValue : undefined}\n onKeyDown={interactive ? this.handleKeyDown : undefined}\n onPaste={interactive ? this.handleInputPaste : undefined}\n inputMode={inputMode}\n aria-label={isMobileFooter || interactive ? ariaLabel : undefined}\n aria-describedby={isMobileFooter || interactive ? ariaDescribedby : undefined}\n aria-hidden={!interactive ? true : undefined}\n aria-busy={interactive && loading ? true : undefined}\n autoFocus={isMobileFooter}\n />\n </TokenView>\n );\n\n const inner = (\n <>\n {isMobileFooter ? null : (\n <TextWidthHelper ref={this.textHelperRef} text={inputValue} theme={this.theme} size={this.size} />\n )}\n {this.renderTokensStart(interactive)}\n {inputNode}\n {showMenu && (\n <TokenInputMenu\n popupMenuId={this.rootId}\n ref={this.tokensInputMenuRef}\n items={this.getMenuItems()}\n loading={loading}\n opened={showMenu}\n maxMenuHeight={maxMenuHeight}\n anchorElementForCursor={this.input}\n anchorElementRoot={this.wrapper}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n menuWidth={menuWidth}\n menuAlign={menuAlign}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.size}\n requestStatus={this.state.requestStatus}\n repeatRequest={this.repeatRequest}\n />\n )}\n {this.renderTokensEnd(interactive)}\n {this.isEditingMode ? (\n <TokenView size={this.size}>\n <span className={this.styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </>\n );\n\n const container =\n maxHeight && !isMobileFooter ? (\n <ScrollContainer\n className={this.styles.inputPlaceholderScrollWrapper()}\n scrollRef={this.scrollContainerRef}\n maxHeight={maxHeight}\n showScrollBar=\"always\"\n style={{ width: '100%' }}\n >\n {inner}\n </ScrollContainer>\n ) : (\n inner\n );\n\n const labelStyle: React.CSSProperties = {\n width: fieldWidth,\n };\n\n return (\n <label\n ref={isMobileFooter ? this.mobileWrapperRef : this.inlineWrapperRef}\n style={labelStyle}\n className={labelClassName}\n onMouseDown={interactive ? this.handleWrapperMouseDown : undefined}\n onMouseUp={interactive ? this.handleWrapperMouseUp : undefined}\n // Для корректной работы скролла приходится ломать связь label с полем ввода\n // Иначе любой клик внутри label вызывает фокус и автоскроллинг к полю ввода\n htmlFor={!interactive || maxHeight ? 'fake-id' : this.textareaId}\n aria-controls={interactive ? this.rootId : undefined}\n aria-hidden={!interactive ? true : undefined}\n data-tid={isMobileFooter || interactive ? TokenInputDataTids.label : undefined}\n >\n {container}\n </label>\n );\n };\n\n private renderMobileMenu = (): ReactElement => {\n const { maxMenuHeight, renderNotFound, renderTotalCount, totalCount } = this.props;\n\n const { renderItem } = this.getProps();\n const { loading } = this.state;\n\n return (\n <TokenInputMobileMenu\n popupMenuId={this.rootId}\n ref={(node) => {\n this.tokensInputMenuRef(node);\n }}\n items={this.getMenuItems()}\n loading={loading}\n opened\n maxMenuHeight={maxMenuHeight}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.size}\n requestStatus={this.state.requestStatus}\n repeatRequest={this.repeatRequest}\n mobileFooterComponent={this.renderMobilePopupFooter()}\n onCloseRequest={() => {\n this.cancelRequest();\n this.dispatch({\n type: 'SET_CLOSE_MOBILE_POPUP',\n });\n }}\n />\n );\n };\n\n /**\n * Сбрасывает введённое пользователем значение.\n * @public\n */\n public reset(): void {\n this.dispatch({ type: 'RESET' });\n }\n\n private isEqual = (itemA: T, itemB: T) => {\n const { itemToId } = this.getProps();\n return lodashIsEqual(itemToId(itemA), itemToId(itemB));\n };\n\n private hasValueInItems = (items: T[], value: string | T) => {\n const { valueToString } = this.getProps();\n if (typeof value === 'string') {\n return items.map((item) => valueToString(item)).includes(value);\n }\n\n return items.some((item) => this.isEqual(item, value));\n };\n\n private get showAddItemHint() {\n const items = this.state.autocompleteItems?.filter(isSimpleItem);\n const value = this.getProps().valueToItem(this.state.inputValue);\n if (items && this.hasValueInItems(items, value)) {\n return false;\n }\n\n const selectedItems = this.getProps().selectedItems;\n if (selectedItems && this.hasValueInItems(selectedItems, value)) {\n return false;\n }\n\n if (this.type === TokenInputType.Combined && this.isInputValueChanged) {\n return true;\n }\n }\n\n private get type() {\n return this.props.type ? this.props.type : TokenInputType.WithReference;\n }\n\n private get menuRef(): Menu | null {\n return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();\n }\n\n private get isCursorVisible() {\n return this.isCursorVisibleForState(this.state);\n }\n\n private get isEditingMode() {\n return this.state.editingTokenIndex > -1;\n }\n\n private isCursorVisibleForState(state: TokenInputState<T>) {\n return state.inFocus && (this.isInputValueChanged || state.activeTokens.length === 0);\n }\n\n private inlineInputRef = (node: HTMLTextAreaElement | null) => {\n if (!this.usesMobilePopup || !this.state.showMobilePopup) {\n this.input = node;\n }\n };\n\n private mobileInputRef = (node: HTMLTextAreaElement | null) => {\n if (this.usesMobilePopup && !!this.state.showMobilePopup) {\n this.input = node;\n }\n };\n\n private tokensInputMenuRef = (node: TokenInputMenu<T> | TokenInputMobileMenu<T> | null) => {\n this.tokensInputMenu = node;\n };\n\n private textHelperRef = (node: TextWidthHelper) => {\n this.textHelper = node;\n };\n\n private inlineWrapperRef = (node: HTMLLabelElement | null) => {\n if (!this.usesMobilePopup || !this.state.showMobilePopup) {\n this.wrapper = node;\n }\n };\n\n private mobileWrapperRef = (node: HTMLLabelElement | null) => {\n if (this.usesMobilePopup && !!this.state.showMobilePopup) {\n this.wrapper = node;\n }\n };\n\n private getMenuItems() {\n if (this.state.requestStatus === ComboBoxRequestStatus.Failed) {\n return null;\n }\n return this.state.autocompleteItems;\n }\n\n private dispatch = (action: TokenInputAction, cb?: () => void) => {\n this.setState((prevState) => tokenInputReducer(prevState, action), cb);\n };\n\n private updateInputTextWidth() {\n if (this.textHelper) {\n // в IE текст иногда не помещается в input\n // из-за округления, поэтому округляем явно\n const inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));\n const inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));\n\n this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);\n this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);\n }\n }\n\n private handleInputFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n if (this.usesMobilePopup) {\n if (!this.state.showMobilePopup) {\n this.dispatch({ type: 'SET_SHOW_MOBILE_POPUP' });\n return;\n }\n }\n\n if (!this.state.inFocus) {\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.getProps().onFocus(event);\n }\n };\n\n private handleInputBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n const isBlurToMenu = this.isBlurToMenu(event);\n\n if (this.usesMobilePopup) {\n return;\n }\n\n if (!isBlurToMenu) {\n this.handleOutsideBlur();\n }\n\n if (isBlurToMenu || this.state.preventBlur) {\n event.preventDefault();\n // первый focus нужен для предотвращения/уменьшения моргания в других браузерах\n this.input?.focus({ preventScroll: true });\n // в firefox не работает без второго focus\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus({ preventScroll: true }));\n\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.cancelRequest();\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems: allItems } = this.state;\n const autocompleteItems = allItems?.filter(isSimpleItem);\n\n if (inputValue === '') {\n // если стерли содержимое токена в режиме редактирования, то удаляем токен\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n return;\n }\n\n // если не изменилось значение токена при редактировании\n if (this.isEditingMode && !this.isTokenValueChanged) {\n this.finishTokenEdit();\n return;\n }\n\n if (this.state.loading || this.state.requestStatus === ComboBoxRequestStatus.Failed) {\n return;\n }\n\n // чекаем автокомплит на совпадение с введенным значением в инпут\n if (autocompleteItems && autocompleteItems.length === 1) {\n const item = autocompleteItems[0];\n\n if (this.getProps().valueToString(item) === inputValue) {\n this.isEditingMode ? this.finishTokenEdit() : this.selectItem(item);\n\n return;\n }\n }\n\n if (this.isInputChanged) {\n this.checkForUnexpectedInput();\n }\n };\n\n private get isInputChanged() {\n if (this.isEditingMode) {\n return this.isTokenValueChanged;\n }\n\n return this.isInputValueChanged;\n }\n\n private get isInputValueChanged() {\n const { inputValue } = this.state;\n\n return inputValue !== '';\n }\n\n private get isTokenValueChanged() {\n const { inputValue, editingTokenIndex } = this.state;\n const { valueToString, selectedItems } = this.getProps();\n\n if (this.isEditingMode) {\n return valueToString(selectedItems[editingTokenIndex]) !== inputValue;\n }\n\n return false;\n }\n\n private isBlurToMenu = (event: FocusEvent<HTMLElement>) => {\n if (this.menuRef && this.globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || this.globalObject.document.activeElement;\n\n if (menu && menu.contains(relatedTarget)) {\n return true;\n }\n }\n return false;\n };\n\n private handleWrapperMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: true });\n const target = event.target as HTMLElement;\n const isClickOnToken = target && this.wrapper?.contains(target) && target !== this.wrapper && target !== this.input;\n if (!isClickOnToken) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n }\n };\n\n private handleWrapperMouseUp = (e: React.MouseEvent<HTMLElement>) => {\n // Имитируем поведение label, когда задан maxHeight.\n if (\n this.props.maxHeight &&\n e.target === this.scrollContainerRef.current &&\n (this.state.activeTokens.length !== 0 || !this.state.inFocus)\n ) {\n this.dispatch({ type: 'BLUR' });\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.focusInput();\n this.input?.scrollIntoView({ behavior: 'auto', block: 'center' });\n }\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private get isDelimiterInputEnabled(): boolean {\n return this.type !== TokenInputType.WithReference;\n }\n\n private inputValueEndsWithDelimiter(value: string): boolean {\n return this.getProps().delimiters.some((delimiter) => value.endsWith(delimiter));\n }\n\n private splitValueByDelimiters(value: string): string[] {\n const pattern = this.getProps()\n .delimiters.map((delimiter) => delimiter.replace(/[\\\\^\\-[\\]]/g, '\\\\$&'))\n .join('');\n return value.split(new RegExp(`[${pattern}]+`));\n }\n\n private isDelimiterKeyEvent(e: KeyboardEvent<HTMLTextAreaElement>, delimiter: string): boolean {\n if (delimiter === ',') {\n return e.key === delimiter || isKeyComma(e) || isCodeComma(e);\n }\n return e.key === delimiter;\n }\n\n private canAcceptInputAsToken(value: string): boolean {\n if (!value) {\n return false;\n }\n\n const { isTokenValid } = this.props;\n if (!isTokenValid) {\n return true;\n }\n\n return isTokenValid(value);\n }\n\n private rejectIfInvalidToken(value: string): boolean {\n if (!value || !this.props.isTokenValid) {\n return false;\n }\n if (this.props.isTokenValid(value)) {\n return false;\n }\n this.blink();\n return true;\n }\n\n private hasExactAutocompleteMatch(value: string): boolean {\n const { valueToString } = this.getProps();\n return this.state.autocompleteItems?.filter(isSimpleItem).some((item) => valueToString(item) === value) ?? false;\n }\n\n private createItemsFromTokens(tokens: string[], selectedItems: T[]): { items: T[]; remainder: string } {\n const { valueToItem, delimiters } = this.getProps();\n const items: T[] = [];\n let remainder = '';\n const joinDelimiter = delimiters[0] ?? ',';\n\n for (let index = 0; index < tokens.length; index++) {\n const token = tokens[index];\n if (!token) {\n continue;\n }\n\n if (!this.canAcceptInputAsToken(token)) {\n remainder = tokens.slice(index).filter(Boolean).join(joinDelimiter);\n break;\n }\n\n const item = valueToItem(token);\n if (item && !this.hasValueInItems(selectedItems.concat(items), item)) {\n items.push(item);\n }\n }\n\n return { items, remainder };\n }\n\n private tryApplyDelimiterFromInputValue(rawValue: string): false | { nextInputValue: string } {\n const { delimiters, selectedItems, onValueChange } = this.getProps();\n const trailingDelimiter = delimiters.find((delimiter) => rawValue.endsWith(delimiter));\n if (!trailingDelimiter) {\n return false;\n }\n\n const valueWithoutTrailingDelimiter = rawValue.slice(0, rawValue.length - trailingDelimiter.length);\n\n if (this.isEditingMode) {\n if (valueWithoutTrailingDelimiter !== '') {\n if (this.rejectIfInvalidToken(valueWithoutTrailingDelimiter)) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueWithoutTrailingDelimiter });\n return { nextInputValue: valueWithoutTrailingDelimiter };\n }\n\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueWithoutTrailingDelimiter }, () => {\n this.finishTokenEdit();\n });\n return { nextInputValue: valueWithoutTrailingDelimiter };\n }\n return { nextInputValue: this.state.inputValue };\n }\n\n if (valueWithoutTrailingDelimiter === '') {\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n return { nextInputValue: '' };\n }\n\n const tokens = this.splitValueByDelimiters(valueWithoutTrailingDelimiter);\n const { items, remainder } = this.createItemsFromTokens(tokens, selectedItems);\n\n if (items.length > 0) {\n onValueChange(selectedItems.concat(items));\n }\n\n if (remainder) {\n this.blink();\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.dispatch({ type: 'UPDATE_QUERY', payload: remainder }, () => this.tryGetItems(remainder));\n return { nextInputValue: remainder };\n }\n\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n return { nextInputValue: '' };\n }\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = this.splitValueByDelimiters(paste.trim());\n const { items, remainder } = this.createItemsFromTokens(tokens, selectedItems);\n\n if (items.length > 0) {\n onValueChange(selectedItems.concat(items));\n }\n\n this.menuNavigatedByUser = false;\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n if (remainder) {\n this.blink();\n this.dispatch({ type: 'UPDATE_QUERY', payload: remainder }, () => this.tryGetItems(remainder));\n this.props.onInputValueChange?.(remainder);\n } else {\n this.tryGetItems();\n }\n }\n };\n\n private repeatRequest = () => {\n this.tryGetItems(this.state.inputValue);\n this.input?.focus();\n };\n\n private cancelRequest = () => {\n this.requestId += 1;\n };\n\n private tryGetItems = async (query = '') => {\n if (!this.props.getItems || (!this.isInputValueChanged && this.props.hideMenuIfEmptyInputValue)) {\n this.cancelRequest();\n return;\n }\n this.requestId += 1;\n const expectingId = this.requestId;\n this.dispatch({ type: 'SET_LOADING', payload: true });\n let autocompleteItems: Array<TokenInputExtendedItem<T>>;\n try {\n autocompleteItems = await this.props.getItems(query);\n } catch {\n if (expectingId !== this.requestId) {\n return;\n }\n this.dispatch({ type: 'SET_REQUEST_FAILURE' });\n this.globalObject.requestAnimationFrame?.(() => this.menuRef?.highlightItem(0));\n return;\n }\n if (expectingId !== this.requestId) {\n return;\n }\n\n const { selectedItems, valueToItem, valueToString } = this.getProps();\n const isSelectedItem = (item: T) => this.hasValueInItems(selectedItems, item);\n const isEditingItem = (item: T) => {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n return !!editingItem && this.isEqual(item, editingItem);\n };\n\n const autocompleteItemsUnique = autocompleteItems.filter((item) =>\n isSimpleItem(item) ? !isSelectedItem(item) || isEditingItem(item) : true,\n );\n const autocompleteItemsUniqueSimple = autocompleteItemsUnique.filter(isSimpleItem);\n\n if (this.isEditingMode) {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n if (\n this.isEqual(editingItem, valueToItem(this.state.inputValue)) &&\n !this.hasValueInItems(autocompleteItemsUniqueSimple, editingItem)\n ) {\n autocompleteItemsUnique.unshift(editingItem);\n }\n }\n\n if (query === '' || this.isInputValueChanged) {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: autocompleteItemsUnique }, () => {\n LayoutEvents.emit();\n this.highlightMenuItem();\n });\n } else {\n this.dispatch({ type: 'SET_LOADING', payload: false });\n }\n const selectItemIndex = autocompleteItemsUniqueSimple.findIndex(\n (item) => valueToString(item).toLowerCase() === this.state.inputValue.toLowerCase(),\n );\n let highlightIndex: number | null = null;\n if (selectItemIndex >= 0) {\n highlightIndex = selectItemIndex;\n } else {\n highlightIndex = 0;\n }\n if (highlightIndex !== null) {\n const applyMenuHighlight = () => this.menuRef?.highlightItem(highlightIndex);\n this.globalObject.requestAnimationFrame?.(applyMenuHighlight);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n this.props.onKeyDown?.(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.isCursorVisible) {\n this.handleInputKeyDown(event);\n } else {\n this.handleWrapperKeyDown(event);\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n\n if (\n (this.isDelimiterInputEnabled && this.getProps().delimiters.some((key) => this.isDelimiterKeyEvent(e, key))) ||\n (isKeyEnter(e) && this.type === TokenInputType.WithoutReference)\n ) {\n e.preventDefault();\n const newValue = this.state.inputValue;\n if (newValue !== '') {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n } else {\n this.handleAddItem();\n }\n }\n }\n const isRightmostTokenNotDisabled = !this.isTokenDisabled(this.getProps().selectedItems.length - 1);\n const canSetValueToInput =\n this.showAddItemHint ||\n (this.state.autocompleteItems?.length ?? 0) > 0 ||\n this.state.requestStatus === ComboBoxRequestStatus.Failed;\n\n switch (true) {\n case isKeyEnter(e):\n if (this.type !== TokenInputType.WithoutReference) {\n if (\n !this.menuNavigatedByUser &&\n !this.hasExactAutocompleteMatch(this.state.inputValue) &&\n this.rejectIfInvalidToken(this.state.inputValue)\n ) {\n // free-text rejected: blink already done, do not select menu item\n } else if (canSetValueToInput && this.menuRef) {\n this.menuRef.enter(e);\n }\n }\n // don't allow textarea\n // became multiline\n e.preventDefault();\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n if (this.menuRef) {\n this.menuNavigatedByUser = true;\n if (isKeyArrowUp(e)) {\n this.menuRef.up();\n } else {\n this.menuRef.down();\n }\n }\n break;\n case isKeyEscape(e):\n this.input?.blur();\n break;\n case isKeyBackspace(e):\n if (!this.isEditingMode && isRightmostTokenNotDisabled) {\n this.moveFocusToLastToken();\n }\n break;\n case isKeyArrowLeft(e):\n if (this.input?.selectionStart === 0) {\n const index = this.getAvailableTokenIndex(this.getProps().selectedItems.length);\n const itemNew = this.getProps().selectedItems[index];\n if (itemNew) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n }\n break;\n }\n };\n\n private moveFocusToLastToken() {\n const items = this.getProps().selectedItems;\n if (this.state.inputValue === '' && items && items.length > 0) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });\n }\n }\n\n private focusInput = (options?: FocusOptions) => {\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus(options));\n if (this.usesMobilePopup && !this.state.showMobilePopup) {\n this.dispatch({ type: 'SET_SHOW_MOBILE_POPUP' });\n }\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !this.isEqual(item, itemNew))];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: itemsNew });\n }\n };\n\n private handleValueChange = (items: T[]) => {\n this.getProps().onValueChange(items);\n };\n\n private handleAddItem = () => {\n const { inputValue } = this.state;\n if (!inputValue) {\n return;\n }\n if (this.rejectIfInvalidToken(inputValue)) {\n return;\n }\n\n const item = this.getProps().valueToItem(inputValue);\n if (item) {\n this.selectItem(item);\n }\n };\n\n private selectItem = (item: T) => {\n const { selectedItems: allItems, valueToString } = this.getProps();\n const selectedItems = allItems.filter(isSimpleItem);\n if (this.isEditingMode) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(item) }, this.finishTokenEdit);\n } else if (!this.hasValueInItems(selectedItems, item)) {\n this.handleValueChange(selectedItems.concat([item]));\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n }\n };\n\n private handleRemoveToken = (item: T) => {\n this.props.onValueChange?.(this.getProps().selectedItems.filter((_) => !this.isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !this.isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0 && !(this.usesMobilePopup && this.state.showMobilePopup)) {\n this.focusInput({ preventScroll: true });\n }\n\n this.tryGetItems();\n };\n\n private handleTokenClick = (event: React.MouseEvent<HTMLElement>, itemNew: T) => {\n const items = this.state.activeTokens;\n if (event.ctrlKey) {\n const newItems = this.hasValueInItems(this.state.activeTokens, itemNew)\n ? items.filter((item) => !this.isEqual(item, itemNew))\n : [...items, itemNew];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: newItems });\n } else {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n this.focusInput({ preventScroll: true });\n };\n\n private handleTokenEdit = (itemNew: T) => {\n const { selectedItems, valueToString } = this.getProps();\n const editingTokenIndex = selectedItems.findIndex((item) => this.isEqual(item, itemNew));\n this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });\n\n if (this.isInputValueChanged) {\n if (this.state.reservedInputValue === undefined) {\n this.dispatch({ type: 'SET_TEMPORARY_QUERY', payload: this.state.inputValue });\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(itemNew) }, this.selectInputText);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n\n this.tryGetItems();\n };\n\n private finishTokenEdit = () => {\n const { selectedItems, valueToString } = this.getProps();\n const { editingTokenIndex, inputValue, reservedInputValue, autocompleteItems } = this.state;\n\n const autocompleteMatch = autocompleteItems\n ?.filter(isSimpleItem)\n .find((item) => valueToString(item) === inputValue);\n const editedItem = autocompleteMatch ?? this.getProps().valueToItem(inputValue);\n\n if (this.isInputValueChanged && !autocompleteMatch) {\n if (!inputValue || this.rejectIfInvalidToken(inputValue)) {\n return;\n }\n }\n\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(this.isInputValueChanged ? [editedItem] : []));\n this.handleValueChange(newItems);\n }\n\n this.dispatch({ type: 'REMOVE_EDITING_TOKEN_INDEX' });\n\n if (reservedInputValue) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: reservedInputValue });\n this.dispatch({ type: 'REMOVE_TEMPORARY_QUERY' });\n } else {\n this.dispatch({ type: 'CLEAR_INPUT' });\n }\n\n if (newItems.length === selectedItems.length) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [newItems[editingTokenIndex]] });\n }\n };\n\n private checkForUnexpectedInput = () => {\n const { inputValue } = this.state;\n const { onUnexpectedInput } = this.props;\n\n // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput?.(inputValue);\n\n if (returnedValue === undefined) {\n if (this.type === TokenInputType.WithoutReference) {\n this.handleAddItem();\n }\n\n return;\n }\n\n if (returnedValue === null) {\n this.dispatch({ type: 'CLEAR_INPUT' }, () => {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n });\n\n return;\n }\n\n if (returnedValue) {\n const returnedInputValue = this.getProps().valueToString(returnedValue);\n if (this.rejectIfInvalidToken(returnedInputValue)) {\n return;\n }\n this.selectItem(returnedValue);\n }\n };\n\n private handleChangeInputValue = (event: ChangeEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n this.menuNavigatedByUser = false;\n let query = event.target.value.trimLeft();\n\n if (query.endsWith(' ')) {\n query = query.trimRight() + ' ';\n }\n if (this.isInputValueChanged && query === '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n }\n if (this.isDelimiterInputEnabled && this.inputValueEndsWithDelimiter(query)) {\n const delimiterResult = this.tryApplyDelimiterFromInputValue(query);\n if (delimiterResult) {\n this.props.onInputValueChange?.(delimiterResult.nextInputValue);\n return;\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: query }, () => {\n this.tryGetItems(query);\n });\n if (this.props.onInputValueChange) {\n this.props.onInputValueChange(query);\n }\n };\n\n private highlightMenuItem = () => {\n if (this.menuRef && this.state.autocompleteItems && this.state.autocompleteItems.length > 0) {\n this.menuRef.highlightItem(0);\n }\n };\n\n private renderTokensStart = (interactive = true) => {\n const { editingTokenIndex } = this.state;\n const selectedItems = this.getProps().selectedItems;\n const delimiter = editingTokenIndex >= 0 ? editingTokenIndex : selectedItems.length;\n return selectedItems.slice(0, delimiter).map((x, index) => this.renderToken(x, index, interactive));\n };\n\n private renderTokensEnd = (interactive = true) => {\n if (this.state.editingTokenIndex >= 0) {\n const startIndex = this.state.editingTokenIndex + 1;\n return this.getProps()\n .selectedItems.slice(startIndex)\n .map((x, index) => this.renderToken(x, startIndex + index, interactive));\n }\n };\n\n private renderToken = (item: T, index: number, interactive = true) => {\n const { renderToken = defaultRenderToken, disabled } = this.props;\n\n const isActive = this.state.activeTokens.includes(item);\n\n // TODO useCallback\n const handleIconClick: React.MouseEventHandler<HTMLElement> = (event) => {\n event.stopPropagation();\n\n if (!this.isEditingMode) {\n this.handleRemoveToken(item);\n }\n };\n\n // TODO useCallback\n const handleTokenClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n\n if (!this.isEditingMode) {\n this.handleTokenClick(event, item);\n }\n };\n\n const handleTokenDoubleClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n\n if (!this.isEditingMode && !disabled && interactive) {\n this.handleTokenEdit(item);\n }\n };\n\n const renderedToken = renderToken(\n item as T & AnyObject,\n {\n size: this.size,\n isActive,\n onClick: interactive ? handleTokenClick : undefined,\n onDoubleClick: interactive ? handleTokenDoubleClick : undefined,\n onRemove: interactive ? handleIconClick : undefined,\n disabled,\n },\n index,\n );\n\n if (interactive) {\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n }\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonInvalidComment, addButtonTitle } = this.locale;\n const isInvalid = !this.canAcceptInputAsToken(value);\n\n return (\n <MenuItem\n onClick={this.handleAddItem}\n comment={isInvalid ? addButtonInvalidComment : addButtonComment}\n disabled={isInvalid}\n key=\"renderAddButton\"\n >\n {`${addButtonTitle} \\u00AB${value}\\u00BB`}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex], itemIndex) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n\nfunction isSimpleItem<T>(item: TokenInputExtendedItem<T>): item is T {\n return !isFunction(item) && !React.isValidElement(item);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TokenInput.js","sourceRoot":"","sources":["TokenInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport lodashIsEqual from 'lodash.isequal';\nimport type {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEventHandler,\n ReactElement,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ComboBoxRequestStatus } from '../../internal/CustomComboBox/CustomComboBoxTypes.js';\nimport type { Menu } from '../../internal/Menu/index.js';\nimport { PopupIds } from '../../internal/Popup/index.js';\nimport { blink } from '../../lib/blink.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport {\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowRight,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyBackspace,\n isKeyComma,\n isCodeComma,\n isKeyDelete,\n isKeyEnter,\n isKeyEscape,\n isShortcutSelectAll,\n} from '../../lib/events/keyboard/identifiers.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport * as LayoutEvents from '../../lib/LayoutEvents.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { getUid } from '../../lib/uidUtils.js';\nimport { emptyHandler, getRandomID, isFunction } from '../../lib/utils.js';\nimport type { AnyObject } from '../../lib/utils.js';\nimport { MenuItem } from '../MenuItem/index.js';\nimport type { MenuItemState } from '../MenuItem/index.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport { ScrollContainer } from '../ScrollContainer/index.js';\nimport type { TokenProps, TokenSize } from '../Token/index.js';\nimport { Token } from '../Token/index.js';\nimport { TokenView } from '../Token/TokenView.js';\nimport type { TokenInputLocale } from './locale/index.js';\nimport { TokenInputLocaleHelper } from './locale/index.js';\nimport { TextWidthHelper } from './TextWidthHelper.js';\nimport { getStyles } from './TokenInput.styles.js';\nimport { TokenInputMenu } from './TokenInputMenu.js';\nimport { TokenInputMobileMenu } from './TokenInputMobileMenu.js';\nimport type { TokenInputAction, TokenInputInternalState } from './TokenInputReducer.js';\nimport { tokenInputReducer } from './TokenInputReducer.js';\n\nconst TEMP_FAKE_FLAG = 'TEMP_FAKE_FLAG';\n\nexport enum TokenInputType {\n WithReference,\n WithoutReference,\n Combined,\n}\n\nexport type TokenInputMenuAlign = 'left' | 'cursor';\n\nexport interface TokenInputProps<T>\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Токены, которые будут отображаться в поле ввода. */\n selectedItems?: T[];\n\n /** Событие добавления нового токена. */\n onValueChange?: (items: T[]) => void;\n\n /** HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: MouseEventHandler<HTMLDivElement>;\n\n /** HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: MouseEventHandler<HTMLDivElement>;\n\n /** HTML-событие `onfocus`.\n * @ignore */\n onFocus?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** HTML-событие `onblur`.\n * @ignore */\n onBlur?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** HTML-событие `onkeydown`. */\n onKeyDown?: KeyboardEventHandler<HTMLTextAreaElement>;\n\n /** Устанавливает фокус на поле с токенами после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Размер поля с токенами. */\n size?: TokenSize;\n\n /** Тип инпута.\n * Возможные значения:\n * - `TokenInputType.Combined` — в поле можно выбирать значения из справочника и добавлять свои значения.\n * - `TokenInputType.WithReference` — можно только выбрать значения из справочника, но нельзя добавлять свои.\n * - `TokenInputType.WithoutReference` — можно добавлять любые значения, но подсказок из справочника нет. */\n type?: TokenInputType;\n\n /** Ширина выпадающего списка. */\n menuWidth?: React.CSSProperties['width'];\n\n /** Выравнивание выпадающего списка. */\n menuAlign?: TokenInputMenuAlign;\n\n /** Задаёт функцию поиска значений, которая должна возвращать Promise с массивом значений. По умолчанию ожидаются строки.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `renderItem`, `renderToken`, `valueToString` и `valueToItem`. */\n getItems?: (query: string) => Promise<Array<TokenInputExtendedItem<T>>>;\n\n /** Ограничивает отображение выпадающего списка при фокусе на пустом поле: выпадающий список появится, только когда будет введён хотя бы один символ токена. */\n hideMenuIfEmptyInputValue?: boolean;\n\n /** Отрисовывает элемент списка. */\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode | null;\n\n /** Отрисовывает выбранное значение.\n * @deprecated Используйте `renderToken` для отрисовки выбранного значения и `valueToString` для преобразования значения в строку.\n */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Возвращает строковое представление `value`. Необходимо при фокусировке.\n * @default item => item */\n valueToString?: (item: T) => string;\n\n /** Отрисовывает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им оборачиваются элементы, возвращаемые `getItems()`.\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы `renderTotalCount`. */\n totalCount?: number;\n\n /** Отрисовывает сообщение о пустом результате поиска. При `renderAddButton` не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Преобразовывает значение в элемент списка.\n * @default value => value\n */\n valueToItem?: (value: string) => T;\n\n /** Сравнивает полученные результаты с `value`. */\n itemToId?: (item: T) => string | number | undefined;\n\n /** Текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Символы, которые разделяют введённый текст на токены. По умолчанию — запятая. */\n delimiters?: string[];\n\n /** Меняет визуальное отображение токена на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n error?: boolean;\n\n /** Меняет визуальное отображение токена на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n warning?: boolean;\n\n /** Блокирует поле с токенами. */\n disabled?: boolean;\n\n /** Ширина поля с токенами. */\n width?: string | number;\n\n /** Максимальная высота выпадающего списка. */\n maxMenuHeight?: number | string;\n\n /** Отрисовывает токен и даёт возможность кастомизировать внешний вид и поведение токена. */\n renderToken?: (item: T, props: Partial<TokenProps>, index: number) => ReactNode;\n\n /** Событие изменения текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода. */\n onInputValueChange?: (value: string) => void;\n\n /** Отрисовывает кнопку добавления нового токена в выпадающем списке. */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n\n /** Событие обработки ввода строки в поле ввода и последующая потеря фокуса компонентом.\n * Функция срабатывает с аргументом поля строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет совпадать со значением в текстовом поле, то сработает `onValueChange` со значением данного элемента.\n * Сама функция также может вернуть значение, не равное undefined, с которым будет вызван `onValueChange`. Если возвращаемое значение будет равно null, то сработает очистка текущего значения поля, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n\n /** Задаёт функцию, которая проверяет, можно ли создать токен из свободного ввода.\n * Если вернуть `false`, токен не создаётся и поле мигает. Не применяется при выборе из справочника. */\n isTokenValid?: (value: string) => boolean;\n\n /** Задаёт типы вводимых данных. Передаёт браузеру информацию о том, какой набор символов показать при вводе данных в конкретное поле на устройствах с экранной клавиатурой. */\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n\n /**\n * Максимальная высота компонента. При её достижении появится скроллбар\n */\n maxHeight?: number;\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: Array<TokenInputExtendedItem<T>>;\n activeTokens: T[];\n editingTokenIndex: number;\n clickedToken?: T;\n clickedTokenTimeout?: number;\n inFocus?: boolean;\n inputValue: string;\n reservedInputValue: string | undefined;\n inputValueWidth: number;\n inputValueHeight: number;\n preventBlur?: boolean;\n loading?: boolean;\n showMobilePopup?: boolean;\n}\n\nexport type TokenInputExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\nexport const DefaultState: TokenInputInternalState<any> = {\n inputValue: '',\n reservedInputValue: undefined,\n autocompleteItems: undefined,\n activeTokens: [],\n editingTokenIndex: -1,\n inFocus: false,\n loading: false,\n preventBlur: false,\n inputValueWidth: 2,\n inputValueHeight: 22,\n showMobilePopup: false,\n requestStatus: ComboBoxRequestStatus.Unknown,\n};\n\nexport const TokenInputDataTids = {\n root: 'TokenInput__root',\n tokenInputMenu: 'TokenInputMenu__root',\n label: 'TokenInput__label',\n} as const;\n\ntype DefaultProps<T> = Required<\n Pick<\n TokenInputProps<T>,\n | 'selectedItems'\n | 'delimiters'\n | 'renderItem'\n | 'renderValue'\n | 'valueToString'\n | 'valueToItem'\n | 'itemToId'\n | 'onValueChange'\n | 'width'\n | 'onBlur'\n | 'onFocus'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'menuWidth'\n | 'menuAlign'\n >\n>;\n\nconst identity = <T extends unknown>(item: T): T => item;\nconst defaultRenderToken = <T extends AnyObject>(\n item: T,\n { isActive, onClick, onDoubleClick, onRemove, disabled, size }: Partial<TokenProps>,\n) => (\n <Token\n key={item.toString()}\n isActive={isActive}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onRemove={onRemove}\n disabled={disabled}\n size={size}\n >\n {item.toString()}\n </Token>\n);\n\n/** Поле с токенами — это поле ввода со списком подсказок. Значения в поле отображаются в виде отдельных токенов.\n */\n@responsiveLayout\n@withRenderEnvironment\n@rootNode\n@locale('TokenInput', TokenInputLocaleHelper)\n@withSize\nexport class TokenInput<T = string> extends React.PureComponent<TokenInputProps<T>, TokenInputInternalState<T>> {\n public static __KONTUR_REACT_UI__ = 'TokenInput';\n public static displayName = 'TokenInput';\n\n public static defaultProps: DefaultProps<any> = {\n selectedItems: [],\n // TEMP_FAKE_FLAG помогает узнать, остались ли разделители дефолтными или пользователь передал их равными дефолтным.\n delimiters: [',', TEMP_FAKE_FLAG],\n renderItem: identity,\n renderValue: identity,\n valueToString: identity,\n valueToItem: (item: string) => item,\n itemToId: identity,\n onValueChange: () => void 0,\n width: 250 as string | number,\n onBlur: emptyHandler,\n onFocus: emptyHandler,\n onMouseEnter: emptyHandler,\n onMouseLeave: emptyHandler,\n menuWidth: 'auto',\n menuAlign: 'cursor',\n };\n\n private getDelimiters(): string[] {\n const delimiters = this.props.delimiters ?? [];\n if (delimiters.every((delimiter) => delimiter !== TEMP_FAKE_FLAG)) {\n return delimiters;\n }\n return delimiters.filter((delimiter) => delimiter !== TEMP_FAKE_FLAG);\n }\n\n private getProps() {\n const propsGetter = createPropsGetter(TokenInput.defaultProps);\n const propsWithOldDelimiters = propsGetter.apply(this);\n return { ...propsWithOldDelimiters, delimiters: this.getDelimiters() };\n }\n\n private get textareaId() {\n return this.props.id ?? this._textareaId;\n }\n\n public state: TokenInputInternalState<T> = DefaultState;\n\n private readonly _textareaId: string = getUid();\n private rootId = PopupIds.root + getRandomID();\n private readonly locale!: TokenInputLocale;\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private isMobileLayout!: boolean;\n private input: HTMLTextAreaElement | null = null;\n private tokensInputMenu: TokenInputMenu<T> | TokenInputMobileMenu<T> | null = null;\n private textHelper: TextWidthHelper | null = null;\n private wrapper: HTMLLabelElement | null = null;\n private scrollContainerRef = React.createRef<HTMLDivElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n private menuNavigatedByUser = false;\n private requestId = 0;\n\n public componentDidMount() {\n this.updateInputTextWidth();\n this.globalObject.document?.addEventListener('copy', this.handleCopy);\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n\n public componentDidUpdate(prevProps: TokenInputProps<T> & DefaultProps<T>, prevState: TokenInputInternalState<T>) {\n if (prevState.inputValue !== this.state.inputValue) {\n this.updateInputTextWidth();\n }\n if (prevState.activeTokens.length === 0 && this.state.activeTokens.length > 0) {\n this.dispatch({\n type: 'SET_AUTOCOMPLETE_ITEMS',\n payload: undefined,\n });\n }\n if (prevProps.selectedItems.length !== this.getProps().selectedItems.length) {\n LayoutEvents.emit();\n this.memoizedTokens.clear();\n }\n if (!this.isCursorVisibleForState(prevState) && this.isCursorVisible) {\n this.tryGetItems(this.isEditingMode ? '' : this.state.inputValue);\n }\n if (!prevState.showMobilePopup && this.state.showMobilePopup && this.usesMobilePopup) {\n this.globalObject.requestAnimationFrame?.(() => {\n this.input?.focus({ preventScroll: true });\n this.tryGetItems(this.state.inputValue);\n });\n }\n }\n\n private get usesMobilePopup(): boolean {\n return this.isMobileLayout && this.type !== TokenInputType.WithoutReference;\n }\n\n private isInlineInteractive(): boolean {\n return !(this.usesMobilePopup && !!this.state.showMobilePopup);\n }\n\n public componentWillUnmount() {\n this.cancelRequest();\n this.globalObject.document?.removeEventListener('copy', this.handleCopy);\n }\n\n /** Программно устанавливает фокус на поле.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus(): void {\n this.input?.focus();\n }\n\n /** Программно снимает фокус с поля.\n * @public\n */\n public blur(): void {\n this.input?.blur();\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink(): void {\n blink({ el: this.wrapper, blinkColor: this.theme.inputBlinkColor });\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getLabelSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.labelLarge(this.theme);\n case 'medium':\n return this.styles.labelMedium(this.theme);\n case 'small':\n default:\n return this.styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.inputLarge(this.theme);\n case 'medium':\n return this.styles.inputMedium(this.theme);\n case 'small':\n default:\n return this.styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n warning(false, `getItems is required for \"Combined\" and \"WithReference\" modes.`);\n }\n const { onMouseEnter, onMouseLeave } = this.getProps();\n const { showMobilePopup } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n {this.renderInlineField()}\n {this.usesMobilePopup && showMobilePopup && this.renderMobileMenu()}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderInlineField = (): ReactElement => {\n return this.renderTokenInputField({\n variant: 'inline',\n interactive: this.isInlineInteractive(),\n fieldWidth: this.getProps().width,\n showMenu: Boolean(\n !this.isMobileLayout &&\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n this.state.activeTokens.length === 0 &&\n (this.isInputValueChanged || !this.props.hideMenuIfEmptyInputValue),\n ),\n });\n };\n\n private renderMobilePopupFooter = (): ReactElement => {\n return this.renderTokenInputField({\n variant: 'mobileFooter',\n interactive: true,\n fieldWidth: '100%',\n showMenu: false,\n });\n };\n\n private renderTokenInputField = ({\n variant,\n interactive,\n fieldWidth,\n showMenu,\n }: {\n variant: 'inline' | 'mobileFooter';\n interactive: boolean;\n fieldWidth: React.CSSProperties['width'];\n showMenu: boolean;\n }): ReactElement => {\n const {\n maxMenuHeight,\n error,\n warning,\n disabled,\n renderNotFound,\n inputMode,\n renderTotalCount,\n totalCount,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n maxHeight,\n } = this.props;\n\n const { selectedItems, menuWidth, menuAlign, renderItem } = this.getProps();\n const isMobileFooter = variant === 'mobileFooter';\n const { inFocus, inputValueWidth, inputValueHeight, inputValue, reservedInputValue, loading } = this.state;\n\n const theme = this.theme;\n\n const inputInlineStyles: React.CSSProperties = {\n // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости\n width: inputValueWidth,\n height: inputValueHeight,\n // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее\n caretColor: this.isCursorVisible && interactive ? undefined : 'transparent',\n };\n\n const labelClassName = this.cx(this.styles.label(theme), this.getLabelSizeClassName(), {\n [this.styles.labelNonInteractive()]: !interactive,\n [this.styles.hovering(this.theme)]: interactive && !inFocus && !disabled && !warning && !error,\n [this.styles.labelDisabled(theme)]: !!disabled,\n [this.styles.labelFocused(theme)]: interactive && !!inFocus,\n [this.styles.error(theme)]: !!error,\n [this.styles.warning(theme)]: !!warning,\n });\n const inputClassName = this.cx(this.styles.input(theme), this.getInputSizeClassName(), {\n [this.styles.inputDisabled(theme)]: !!disabled,\n });\n\n const placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';\n\n const inputNode = (\n <TokenView\n size={this.size}\n className={this.cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [this.styles.inputPlaceholderWrapper()]: Boolean(placeholder),\n })}\n hideCloseButton={Boolean(placeholder)}\n >\n <textarea\n id={isMobileFooter || interactive ? this.textareaId : undefined}\n ref={isMobileFooter ? this.mobileInputRef : this.inlineInputRef}\n value={inputValue}\n style={inputInlineStyles}\n spellCheck={false}\n disabled={disabled}\n readOnly={!interactive}\n tabIndex={!interactive ? -1 : undefined}\n className={inputClassName}\n placeholder={placeholder}\n onFocus={interactive ? this.handleInputFocus : undefined}\n onBlur={interactive ? this.handleInputBlur : undefined}\n onChange={interactive ? this.handleChangeInputValue : undefined}\n onKeyDown={interactive ? this.handleKeyDown : undefined}\n onPaste={interactive ? this.handleInputPaste : undefined}\n inputMode={inputMode}\n aria-label={isMobileFooter || interactive ? ariaLabel : undefined}\n aria-describedby={isMobileFooter || interactive ? ariaDescribedby : undefined}\n aria-hidden={!interactive ? true : undefined}\n aria-busy={interactive && loading ? true : undefined}\n autoFocus={isMobileFooter}\n />\n </TokenView>\n );\n\n const inner = (\n <>\n {isMobileFooter ? null : (\n <TextWidthHelper ref={this.textHelperRef} text={inputValue} theme={this.theme} size={this.size} />\n )}\n {this.renderTokensStart(interactive)}\n {inputNode}\n {showMenu && (\n <TokenInputMenu\n popupMenuId={this.rootId}\n ref={this.tokensInputMenuRef}\n items={this.getMenuItems()}\n loading={loading}\n opened={showMenu}\n maxMenuHeight={maxMenuHeight}\n anchorElementForCursor={this.input}\n anchorElementRoot={this.wrapper}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n menuWidth={menuWidth}\n menuAlign={menuAlign}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.size}\n requestStatus={this.state.requestStatus}\n repeatRequest={this.repeatRequest}\n />\n )}\n {this.renderTokensEnd(interactive)}\n {this.isEditingMode ? (\n <TokenView size={this.size}>\n <span className={this.styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </>\n );\n\n const container =\n maxHeight && !isMobileFooter ? (\n <ScrollContainer\n className={this.styles.inputPlaceholderScrollWrapper()}\n scrollRef={this.scrollContainerRef}\n maxHeight={maxHeight}\n showScrollBar=\"always\"\n style={{ width: '100%' }}\n >\n {inner}\n </ScrollContainer>\n ) : (\n inner\n );\n\n const labelStyle: React.CSSProperties = {\n width: fieldWidth,\n };\n\n return (\n <label\n ref={isMobileFooter ? this.mobileWrapperRef : this.inlineWrapperRef}\n style={labelStyle}\n className={labelClassName}\n onMouseDown={interactive ? this.handleWrapperMouseDown : undefined}\n onMouseUp={interactive ? this.handleWrapperMouseUp : undefined}\n // Для корректной работы скролла приходится ломать связь label с полем ввода\n // Иначе любой клик внутри label вызывает фокус и автоскроллинг к полю ввода\n htmlFor={!interactive || maxHeight ? 'fake-id' : this.textareaId}\n aria-controls={interactive ? this.rootId : undefined}\n aria-hidden={!interactive ? true : undefined}\n data-tid={isMobileFooter || interactive ? TokenInputDataTids.label : undefined}\n >\n {container}\n </label>\n );\n };\n\n private renderMobileMenu = (): ReactElement => {\n const { maxMenuHeight, renderNotFound, renderTotalCount, totalCount } = this.props;\n\n const { renderItem } = this.getProps();\n const { loading } = this.state;\n\n return (\n <TokenInputMobileMenu\n popupMenuId={this.rootId}\n ref={(node) => {\n this.tokensInputMenuRef(node);\n }}\n items={this.getMenuItems()}\n loading={loading}\n opened\n maxMenuHeight={maxMenuHeight}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.size}\n requestStatus={this.state.requestStatus}\n repeatRequest={this.repeatRequest}\n mobileFooterComponent={this.renderMobilePopupFooter()}\n onCloseRequest={() => {\n this.cancelRequest();\n this.dispatch({\n type: 'SET_CLOSE_MOBILE_POPUP',\n });\n }}\n />\n );\n };\n\n /**\n * Сбрасывает введённое пользователем значение.\n * @public\n */\n public reset(): void {\n this.dispatch({ type: 'RESET' });\n }\n\n private isEqual = (itemA: T, itemB: T) => {\n const { itemToId } = this.getProps();\n return lodashIsEqual(itemToId(itemA), itemToId(itemB));\n };\n\n private hasValueInItems = (items: T[], value: string | T) => {\n const { valueToString } = this.getProps();\n if (typeof value === 'string') {\n return items.map((item) => valueToString(item)).includes(value);\n }\n\n return items.some((item) => this.isEqual(item, value));\n };\n\n private get showAddItemHint() {\n const items = this.state.autocompleteItems?.filter(isSimpleItem);\n const value = this.getProps().valueToItem(this.state.inputValue);\n if (items && this.hasValueInItems(items, value)) {\n return false;\n }\n\n const selectedItems = this.getProps().selectedItems;\n if (selectedItems && this.hasValueInItems(selectedItems, value)) {\n return false;\n }\n\n if (this.type === TokenInputType.Combined && this.isInputValueChanged) {\n return true;\n }\n }\n\n private get type() {\n return this.props.type ? this.props.type : TokenInputType.WithReference;\n }\n\n private get menuRef(): Menu | null {\n return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();\n }\n\n private get isCursorVisible() {\n return this.isCursorVisibleForState(this.state);\n }\n\n private get isEditingMode() {\n return this.state.editingTokenIndex > -1;\n }\n\n private isCursorVisibleForState(state: TokenInputState<T>) {\n return state.inFocus && (this.isInputValueChanged || state.activeTokens.length === 0);\n }\n\n private inlineInputRef = (node: HTMLTextAreaElement | null) => {\n if (!this.usesMobilePopup || !this.state.showMobilePopup) {\n this.input = node;\n }\n };\n\n private mobileInputRef = (node: HTMLTextAreaElement | null) => {\n if (this.usesMobilePopup && !!this.state.showMobilePopup) {\n this.input = node;\n }\n };\n\n private tokensInputMenuRef = (node: TokenInputMenu<T> | TokenInputMobileMenu<T> | null) => {\n this.tokensInputMenu = node;\n };\n\n private textHelperRef = (node: TextWidthHelper) => {\n this.textHelper = node;\n };\n\n private inlineWrapperRef = (node: HTMLLabelElement | null) => {\n if (!this.usesMobilePopup || !this.state.showMobilePopup) {\n this.wrapper = node;\n }\n };\n\n private mobileWrapperRef = (node: HTMLLabelElement | null) => {\n if (this.usesMobilePopup && !!this.state.showMobilePopup) {\n this.wrapper = node;\n }\n };\n\n private getMenuItems() {\n if (this.state.requestStatus === ComboBoxRequestStatus.Failed) {\n return null;\n }\n return this.state.autocompleteItems;\n }\n\n private dispatch = (action: TokenInputAction, cb?: () => void) => {\n this.setState((prevState) => tokenInputReducer(prevState, action), cb);\n };\n\n private updateInputTextWidth() {\n if (this.textHelper) {\n // в IE текст иногда не помещается в input\n // из-за округления, поэтому округляем явно\n const inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));\n const inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));\n\n this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);\n this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);\n }\n }\n\n private handleInputFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n if (this.usesMobilePopup) {\n if (!this.state.showMobilePopup) {\n this.dispatch({ type: 'SET_SHOW_MOBILE_POPUP' });\n return;\n }\n }\n\n if (!this.state.inFocus) {\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.getProps().onFocus(event);\n }\n };\n\n private handleInputBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n const isBlurToMenu = this.isBlurToMenu(event);\n\n if (this.usesMobilePopup) {\n return;\n }\n\n if (!isBlurToMenu) {\n this.handleOutsideBlur();\n }\n\n if (isBlurToMenu || this.state.preventBlur) {\n event.preventDefault();\n // первый focus нужен для предотвращения/уменьшения моргания в других браузерах\n this.input?.focus({ preventScroll: true });\n // в firefox не работает без второго focus\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus({ preventScroll: true }));\n\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.cancelRequest();\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems: allItems } = this.state;\n const autocompleteItems = allItems?.filter(isSimpleItem);\n\n if (inputValue === '') {\n // если стерли содержимое токена в режиме редактирования, то удаляем токен\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n return;\n }\n\n // если не изменилось значение токена при редактировании\n if (this.isEditingMode && !this.isTokenValueChanged) {\n this.finishTokenEdit();\n return;\n }\n\n if (this.state.loading || this.state.requestStatus === ComboBoxRequestStatus.Failed) {\n return;\n }\n\n // чекаем автокомплит на совпадение с введенным значением в инпут\n if (autocompleteItems && autocompleteItems.length === 1) {\n const item = autocompleteItems[0];\n\n if (this.getProps().valueToString(item) === inputValue) {\n this.isEditingMode ? this.finishTokenEdit() : this.selectItem(item);\n\n return;\n }\n }\n\n if (this.isInputChanged) {\n this.checkForUnexpectedInput();\n }\n };\n\n private get isInputChanged() {\n if (this.isEditingMode) {\n return this.isTokenValueChanged;\n }\n\n return this.isInputValueChanged;\n }\n\n private get isInputValueChanged() {\n const { inputValue } = this.state;\n\n return inputValue !== '';\n }\n\n private get isTokenValueChanged() {\n const { inputValue, editingTokenIndex } = this.state;\n const { valueToString, selectedItems } = this.getProps();\n\n if (this.isEditingMode) {\n return valueToString(selectedItems[editingTokenIndex]) !== inputValue;\n }\n\n return false;\n }\n\n private isBlurToMenu = (event: FocusEvent<HTMLElement>) => {\n if (this.menuRef && this.globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || this.globalObject.document.activeElement;\n\n if (menu && menu.contains(relatedTarget)) {\n return true;\n }\n }\n return false;\n };\n\n private handleWrapperMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: true });\n const target = event.target as HTMLElement;\n const isClickOnToken = target && this.wrapper?.contains(target) && target !== this.wrapper && target !== this.input;\n if (!isClickOnToken) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n }\n };\n\n private handleWrapperMouseUp = (e: React.MouseEvent<HTMLElement>) => {\n // Имитируем поведение label, когда задан maxHeight.\n if (\n this.props.maxHeight &&\n e.target === this.scrollContainerRef.current &&\n (this.state.activeTokens.length !== 0 || !this.state.inFocus)\n ) {\n this.dispatch({ type: 'BLUR' });\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.focusInput();\n this.input?.scrollIntoView({ behavior: 'auto', block: 'center' });\n }\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private get isDelimiterInputEnabled(): boolean {\n return this.type !== TokenInputType.WithReference;\n }\n\n private inputValueEndsWithDelimiter(value: string): boolean {\n return this.getProps().delimiters.some((delimiter) => value.endsWith(delimiter));\n }\n\n private splitValueByDelimiters(value: string): string[] {\n const pattern = this.getProps()\n .delimiters.map((delimiter) => delimiter.replace(/[\\\\^\\-[\\]]/g, '\\\\$&'))\n .join('');\n return value.split(new RegExp(`[${pattern}]+`));\n }\n\n private isDelimiterKeyEvent(e: KeyboardEvent<HTMLTextAreaElement>, delimiter: string): boolean {\n if (delimiter === ',') {\n return e.key === delimiter || isKeyComma(e) || isCodeComma(e);\n }\n return e.key === delimiter;\n }\n\n private canAcceptInputAsToken(value: string): boolean {\n if (!value) {\n return false;\n }\n\n const { isTokenValid } = this.props;\n if (!isTokenValid) {\n return true;\n }\n\n return isTokenValid(value);\n }\n\n private rejectIfInvalidToken(value: string): boolean {\n if (!value || !this.props.isTokenValid) {\n return false;\n }\n if (this.props.isTokenValid(value)) {\n return false;\n }\n this.blink();\n return true;\n }\n\n private hasExactAutocompleteMatch(value: string): boolean {\n const { valueToString } = this.getProps();\n return this.state.autocompleteItems?.filter(isSimpleItem).some((item) => valueToString(item) === value) ?? false;\n }\n\n private createItemsFromTokens(tokens: string[], selectedItems: T[]): { items: T[]; remainder: string } {\n const { valueToItem, delimiters } = this.getProps();\n const items: T[] = [];\n let remainder = '';\n const joinDelimiter = delimiters[0] ?? ',';\n\n for (let index = 0; index < tokens.length; index++) {\n const token = tokens[index];\n if (!token) {\n continue;\n }\n\n if (!this.canAcceptInputAsToken(token)) {\n remainder = tokens.slice(index).filter(Boolean).join(joinDelimiter);\n break;\n }\n\n const item = valueToItem(token);\n if (item && !this.hasValueInItems(selectedItems.concat(items), item)) {\n items.push(item);\n }\n }\n\n return { items, remainder };\n }\n\n private tryApplyDelimiterFromInputValue(rawValue: string): false | { nextInputValue: string } {\n const { delimiters, selectedItems, onValueChange } = this.getProps();\n const trailingDelimiter = delimiters.find((delimiter) => rawValue.endsWith(delimiter));\n if (!trailingDelimiter) {\n return false;\n }\n\n const valueWithoutTrailingDelimiter = rawValue.slice(0, rawValue.length - trailingDelimiter.length);\n\n if (this.isEditingMode) {\n if (valueWithoutTrailingDelimiter !== '') {\n if (this.rejectIfInvalidToken(valueWithoutTrailingDelimiter)) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueWithoutTrailingDelimiter });\n return { nextInputValue: valueWithoutTrailingDelimiter };\n }\n\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueWithoutTrailingDelimiter }, () => {\n this.finishTokenEdit();\n });\n return { nextInputValue: valueWithoutTrailingDelimiter };\n }\n return { nextInputValue: this.state.inputValue };\n }\n\n if (valueWithoutTrailingDelimiter === '') {\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n return { nextInputValue: '' };\n }\n\n const tokens = this.splitValueByDelimiters(valueWithoutTrailingDelimiter);\n const { items, remainder } = this.createItemsFromTokens(tokens, selectedItems);\n\n if (items.length > 0) {\n onValueChange(selectedItems.concat(items));\n }\n\n if (remainder) {\n this.blink();\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.dispatch({ type: 'UPDATE_QUERY', payload: remainder }, () => this.tryGetItems(remainder));\n return { nextInputValue: remainder };\n }\n\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n return { nextInputValue: '' };\n }\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = this.splitValueByDelimiters(paste.trim());\n const { items, remainder } = this.createItemsFromTokens(tokens, selectedItems);\n\n if (items.length > 0) {\n onValueChange(selectedItems.concat(items));\n }\n\n this.menuNavigatedByUser = false;\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n if (remainder) {\n this.blink();\n this.dispatch({ type: 'UPDATE_QUERY', payload: remainder }, () => this.tryGetItems(remainder));\n this.props.onInputValueChange?.(remainder);\n } else {\n this.tryGetItems();\n }\n }\n };\n\n private repeatRequest = () => {\n this.tryGetItems(this.state.inputValue);\n this.input?.focus();\n };\n\n private cancelRequest = () => {\n this.requestId += 1;\n };\n\n private tryGetItems = async (query = '') => {\n if (!this.props.getItems || (!this.isInputValueChanged && this.props.hideMenuIfEmptyInputValue)) {\n this.cancelRequest();\n return;\n }\n this.requestId += 1;\n const expectingId = this.requestId;\n this.dispatch({ type: 'SET_LOADING', payload: true });\n let autocompleteItems: Array<TokenInputExtendedItem<T>>;\n try {\n autocompleteItems = await this.props.getItems(query);\n } catch {\n if (expectingId !== this.requestId) {\n return;\n }\n this.dispatch({ type: 'SET_REQUEST_FAILURE' });\n this.globalObject.requestAnimationFrame?.(() => this.menuRef?.highlightItem(0));\n return;\n }\n if (expectingId !== this.requestId) {\n return;\n }\n\n const { selectedItems, valueToItem, valueToString } = this.getProps();\n const isSelectedItem = (item: T) => this.hasValueInItems(selectedItems, item);\n const isEditingItem = (item: T) => {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n return !!editingItem && this.isEqual(item, editingItem);\n };\n\n const autocompleteItemsUnique = autocompleteItems.filter((item) =>\n isSimpleItem(item) ? !isSelectedItem(item) || isEditingItem(item) : true,\n );\n const autocompleteItemsUniqueSimple = autocompleteItemsUnique.filter(isSimpleItem);\n\n if (this.isEditingMode) {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n if (\n this.isEqual(editingItem, valueToItem(this.state.inputValue)) &&\n !this.hasValueInItems(autocompleteItemsUniqueSimple, editingItem)\n ) {\n autocompleteItemsUnique.unshift(editingItem);\n }\n }\n\n if (query === '' || this.isInputValueChanged) {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: autocompleteItemsUnique }, () => {\n LayoutEvents.emit();\n this.highlightMenuItem();\n });\n } else {\n this.dispatch({ type: 'SET_LOADING', payload: false });\n }\n const selectItemIndex = autocompleteItemsUniqueSimple.findIndex(\n (item) => valueToString(item).toLowerCase() === this.state.inputValue.toLowerCase(),\n );\n let highlightIndex: number | null = null;\n if (selectItemIndex >= 0) {\n highlightIndex = selectItemIndex;\n } else {\n highlightIndex = 0;\n }\n if (highlightIndex !== null) {\n const applyMenuHighlight = () => this.menuRef?.highlightItem(highlightIndex);\n this.globalObject.requestAnimationFrame?.(applyMenuHighlight);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n this.props.onKeyDown?.(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.isCursorVisible) {\n this.handleInputKeyDown(event);\n } else {\n this.handleWrapperKeyDown(event);\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n\n if (\n (this.isDelimiterInputEnabled && this.getProps().delimiters.some((key) => this.isDelimiterKeyEvent(e, key))) ||\n (isKeyEnter(e) && this.type === TokenInputType.WithoutReference)\n ) {\n e.preventDefault();\n const newValue = this.state.inputValue;\n if (newValue !== '') {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n } else {\n this.handleAddItem();\n }\n }\n }\n const isRightmostTokenNotDisabled = !this.isTokenDisabled(this.getProps().selectedItems.length - 1);\n const canSetValueToInput =\n this.showAddItemHint ||\n (this.state.autocompleteItems?.length ?? 0) > 0 ||\n this.state.requestStatus === ComboBoxRequestStatus.Failed;\n\n switch (true) {\n case isKeyEnter(e):\n if (this.type !== TokenInputType.WithoutReference) {\n if (\n !this.menuNavigatedByUser &&\n !this.hasExactAutocompleteMatch(this.state.inputValue) &&\n this.rejectIfInvalidToken(this.state.inputValue)\n ) {\n // free-text rejected: blink already done, do not select menu item\n } else if (canSetValueToInput && this.menuRef) {\n this.menuRef.enter(e);\n }\n }\n // don't allow textarea\n // became multiline\n e.preventDefault();\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n if (this.menuRef) {\n this.menuNavigatedByUser = true;\n if (isKeyArrowUp(e)) {\n this.menuRef.up();\n } else {\n this.menuRef.down();\n }\n }\n break;\n case isKeyEscape(e):\n this.input?.blur();\n break;\n case isKeyBackspace(e):\n if (!this.isEditingMode && isRightmostTokenNotDisabled) {\n this.moveFocusToLastToken();\n }\n break;\n case isKeyArrowLeft(e):\n if (this.input?.selectionStart === 0) {\n const index = this.getAvailableTokenIndex(this.getProps().selectedItems.length);\n const itemNew = this.getProps().selectedItems[index];\n if (itemNew) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n }\n break;\n }\n };\n\n private moveFocusToLastToken() {\n const items = this.getProps().selectedItems;\n if (this.state.inputValue === '' && items && items.length > 0) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });\n }\n }\n\n private focusInput = (options?: FocusOptions) => {\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus(options));\n if (this.usesMobilePopup && !this.state.showMobilePopup) {\n this.dispatch({ type: 'SET_SHOW_MOBILE_POPUP' });\n }\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !this.isEqual(item, itemNew))];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: itemsNew });\n }\n };\n\n private handleValueChange = (items: T[]) => {\n this.getProps().onValueChange(items);\n };\n\n private handleAddItem = () => {\n const { inputValue } = this.state;\n if (!inputValue) {\n return;\n }\n if (this.rejectIfInvalidToken(inputValue)) {\n return;\n }\n\n const item = this.getProps().valueToItem(inputValue);\n if (item) {\n this.selectItem(item);\n }\n };\n\n private selectItem = (item: T) => {\n const { selectedItems: allItems, valueToString } = this.getProps();\n const selectedItems = allItems.filter(isSimpleItem);\n if (this.isEditingMode) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(item) }, this.finishTokenEdit);\n } else if (!this.hasValueInItems(selectedItems, item)) {\n this.handleValueChange(selectedItems.concat([item]));\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n }\n };\n\n private handleRemoveToken = (item: T) => {\n this.props.onValueChange?.(this.getProps().selectedItems.filter((_) => !this.isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !this.isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0 && !(this.usesMobilePopup && this.state.showMobilePopup)) {\n this.focusInput({ preventScroll: true });\n }\n\n this.tryGetItems();\n };\n\n private handleTokenClick = (event: React.MouseEvent<HTMLElement>, itemNew: T) => {\n const items = this.state.activeTokens;\n if (event.ctrlKey) {\n const newItems = this.hasValueInItems(this.state.activeTokens, itemNew)\n ? items.filter((item) => !this.isEqual(item, itemNew))\n : [...items, itemNew];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: newItems });\n } else {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n this.focusInput({ preventScroll: true });\n };\n\n private handleTokenEdit = (itemNew: T) => {\n const { selectedItems, valueToString } = this.getProps();\n const editingTokenIndex = selectedItems.findIndex((item) => this.isEqual(item, itemNew));\n this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });\n\n if (this.isInputValueChanged) {\n if (this.state.reservedInputValue === undefined) {\n this.dispatch({ type: 'SET_TEMPORARY_QUERY', payload: this.state.inputValue });\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(itemNew) }, this.selectInputText);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n\n this.tryGetItems();\n };\n\n private finishTokenEdit = () => {\n const { selectedItems, valueToString } = this.getProps();\n const { editingTokenIndex, inputValue, reservedInputValue, autocompleteItems } = this.state;\n\n const autocompleteMatch = autocompleteItems\n ?.filter(isSimpleItem)\n .find((item) => valueToString(item) === inputValue);\n const editedItem = autocompleteMatch ?? this.getProps().valueToItem(inputValue);\n\n if (this.isInputValueChanged && !autocompleteMatch) {\n if (!inputValue || this.rejectIfInvalidToken(inputValue)) {\n return;\n }\n }\n\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(this.isInputValueChanged ? [editedItem] : []));\n this.handleValueChange(newItems);\n }\n\n this.dispatch({ type: 'REMOVE_EDITING_TOKEN_INDEX' });\n\n if (reservedInputValue) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: reservedInputValue });\n this.dispatch({ type: 'REMOVE_TEMPORARY_QUERY' });\n } else {\n this.dispatch({ type: 'CLEAR_INPUT' });\n }\n\n if (newItems.length === selectedItems.length) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [newItems[editingTokenIndex]] });\n }\n };\n\n private checkForUnexpectedInput = () => {\n const { inputValue } = this.state;\n const { onUnexpectedInput } = this.props;\n\n // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput?.(inputValue);\n\n if (returnedValue === undefined) {\n if (this.type === TokenInputType.WithoutReference) {\n this.handleAddItem();\n }\n\n return;\n }\n\n if (returnedValue === null) {\n this.dispatch({ type: 'CLEAR_INPUT' }, () => {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n });\n\n return;\n }\n\n if (returnedValue) {\n const returnedInputValue = this.getProps().valueToString(returnedValue);\n if (this.rejectIfInvalidToken(returnedInputValue)) {\n return;\n }\n this.selectItem(returnedValue);\n }\n };\n\n private handleChangeInputValue = (event: ChangeEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n this.menuNavigatedByUser = false;\n let query = event.target.value.trimLeft();\n\n if (query.endsWith(' ')) {\n query = query.trimRight() + ' ';\n }\n if (this.isInputValueChanged && query === '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n }\n if (this.isDelimiterInputEnabled && this.inputValueEndsWithDelimiter(query)) {\n const delimiterResult = this.tryApplyDelimiterFromInputValue(query);\n if (delimiterResult) {\n this.props.onInputValueChange?.(delimiterResult.nextInputValue);\n return;\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: query }, () => {\n this.tryGetItems(query);\n });\n if (this.props.onInputValueChange) {\n this.props.onInputValueChange(query);\n }\n };\n\n private highlightMenuItem = () => {\n if (this.menuRef && this.state.autocompleteItems && this.state.autocompleteItems.length > 0) {\n this.menuRef.highlightItem(0);\n }\n };\n\n private renderTokensStart = (interactive = true) => {\n const { editingTokenIndex } = this.state;\n const selectedItems = this.getProps().selectedItems;\n const delimiter = editingTokenIndex >= 0 ? editingTokenIndex : selectedItems.length;\n return selectedItems.slice(0, delimiter).map((x, index) => this.renderToken(x, index, interactive));\n };\n\n private renderTokensEnd = (interactive = true) => {\n if (this.state.editingTokenIndex >= 0) {\n const startIndex = this.state.editingTokenIndex + 1;\n return this.getProps()\n .selectedItems.slice(startIndex)\n .map((x, index) => this.renderToken(x, startIndex + index, interactive));\n }\n };\n\n private renderToken = (item: T, index: number, interactive = true) => {\n const { renderToken = defaultRenderToken, disabled } = this.props;\n\n const isActive = this.state.activeTokens.includes(item);\n\n // TODO useCallback\n const handleIconClick: React.MouseEventHandler<HTMLElement> = (event) => {\n event.stopPropagation();\n\n if (!this.isEditingMode) {\n this.handleRemoveToken(item);\n }\n };\n\n // TODO useCallback\n const handleTokenClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n\n if (!this.isEditingMode) {\n this.handleTokenClick(event, item);\n }\n };\n\n const handleTokenDoubleClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n\n if (!this.isEditingMode && !disabled && interactive) {\n this.handleTokenEdit(item);\n }\n };\n\n const renderedToken = renderToken(\n item as T & AnyObject,\n {\n size: this.size,\n isActive,\n onClick: interactive ? handleTokenClick : undefined,\n onDoubleClick: interactive ? handleTokenDoubleClick : undefined,\n onRemove: interactive ? handleIconClick : undefined,\n disabled,\n },\n index,\n );\n\n if (interactive) {\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n }\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonInvalidComment, addButtonTitle } = this.locale;\n const isInvalid = !this.canAcceptInputAsToken(value);\n\n return (\n <MenuItem\n onClick={this.handleAddItem}\n comment={isInvalid ? addButtonInvalidComment : addButtonComment}\n disabled={isInvalid}\n key=\"renderAddButton\"\n >\n {`${addButtonTitle} \\u00AB${value}\\u00BB`}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex], itemIndex) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n\nfunction isSimpleItem<T>(item: TokenInputExtendedItem<T>): item is T {\n return !isFunction(item) && !React.isValidElement(item);\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Theme } from '../../lib/theming/Theme.js';
|
|
2
|
-
export declare const getStyles: import("../../lib/theming/
|
|
2
|
+
export declare const getStyles: import("../../lib/theming/Emotion.js").StylesGetter<{
|
|
3
3
|
label(t: Theme): string;
|
|
4
4
|
labelSmall(t: Theme): string;
|
|
5
5
|
labelMedium(t: Theme): string;
|