@skbkontur/react-ui 0.0.0-7feb61cdde → 0.0.0-80c5917afc
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 +94 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +5 -0
- package/cjs/components/Autocomplete/Autocomplete.js +18 -4
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +1 -1
- package/cjs/components/Button/Button.js +7 -2
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.js +6 -4
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Button/getInnerLinkTheme.js +2 -3
- package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
- package/cjs/components/Calendar/Calendar.styles.js +1 -2
- package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.js +1 -1
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.styles.d.ts +1 -1
- package/cjs/components/Calendar/DayCellView.styles.js +4 -4
- package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +10 -0
- package/cjs/components/Checkbox/Checkbox.js +70 -15
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.md +18 -0
- package/cjs/components/Checkbox/Checkbox.mixins.d.ts +2 -0
- package/cjs/components/Checkbox/Checkbox.mixins.js +35 -0
- package/cjs/components/Checkbox/Checkbox.mixins.js.map +1 -0
- package/cjs/components/Checkbox/Checkbox.styles.d.ts +6 -0
- package/cjs/components/Checkbox/Checkbox.styles.js +95 -34
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.md +5 -3
- package/cjs/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
- package/cjs/components/CurrencyInput/CurrencyHelper.js +21 -6
- package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +3 -0
- package/cjs/components/DateInput/DateInput.js +11 -3
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/Dropdown/getDropdownTheme.js +3 -1
- package/cjs/components/Dropdown/getDropdownTheme.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js +4 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.md +28 -0
- package/cjs/components/DropdownMenu/getDropdownMenuTheme.js +5 -1
- package/cjs/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.styles.js +3 -2
- package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.js +6 -2
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.js +6 -4
- package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +1 -5
- package/cjs/components/Input/Input.js +4 -5
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.js +3 -2
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +1 -1
- package/cjs/components/Kebab/Kebab.js +6 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Kebab/Kebab.md +28 -0
- package/cjs/components/Link/Link.js +4 -2
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Link/Link.mixins.d.ts +1 -2
- package/cjs/components/Link/Link.mixins.js +5 -16
- package/cjs/components/Link/Link.mixins.js.map +1 -1
- package/cjs/components/Link/Link.styles.d.ts +2 -0
- package/cjs/components/Link/Link.styles.js +58 -38
- package/cjs/components/Link/Link.styles.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.js +1 -1
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.js +1 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Radio/Radio.styles.js +6 -2
- package/cjs/components/Radio/Radio.styles.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +3 -2
- package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +7 -5
- package/cjs/components/Select/Select.js +15 -6
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/Select.styles.js +3 -2
- package/cjs/components/Select/Select.styles.js.map +1 -1
- package/cjs/components/Select/selectTheme.js +4 -1
- package/cjs/components/Select/selectTheme.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +1 -0
- package/cjs/components/Tabs/Tab.js +15 -1
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tab.styles.d.ts +9 -3
- package/cjs/components/Tabs/Tab.styles.js +106 -68
- package/cjs/components/Tabs/Tab.styles.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +8 -2
- package/cjs/components/Tabs/Tabs.js +15 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Tabs/Tabs.md +32 -0
- package/cjs/components/Tabs/Tabs.styles.d.ts +3 -1
- package/cjs/components/Tabs/Tabs.styles.js +23 -7
- package/cjs/components/Tabs/Tabs.styles.js.map +1 -1
- package/cjs/components/Tabs/TabsContext.d.ts +2 -1
- package/cjs/components/Tabs/TabsContext.js +2 -0
- package/cjs/components/Tabs/TabsContext.js.map +1 -1
- package/cjs/components/Tabs/helpers.d.ts +6 -0
- package/cjs/components/Tabs/helpers.js +30 -0
- package/cjs/components/Tabs/helpers.js.map +1 -0
- package/cjs/components/Textarea/Textarea.styles.js +2 -2
- package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
- package/cjs/components/Toast/ToastView.styles.js +2 -2
- package/cjs/components/Toast/ToastView.styles.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +11 -1
- package/cjs/components/Toggle/Toggle.js +102 -2
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Toggle/Toggle.md +16 -2
- package/cjs/components/Toggle/Toggle.mixins.d.ts +7 -0
- package/cjs/components/Toggle/Toggle.mixins.js +90 -0
- package/cjs/components/Toggle/Toggle.mixins.js.map +1 -0
- package/cjs/components/Toggle/Toggle.styles.d.ts +21 -1
- package/cjs/components/Toggle/Toggle.styles.js +172 -56
- package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
- package/cjs/components/TokenInput/TokenInput.js +8 -2
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.md +26 -35
- package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
- package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.d.ts +7 -0
- package/cjs/components/TokenInput/TokenInputMenu.js +9 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js +8 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.md +28 -0
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js +2 -1
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +10 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js +11 -3
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.js +13 -11
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.js +1 -1
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.styles.d.ts +3 -0
- package/cjs/internal/DateSelect/DateSelect.styles.js +15 -3
- package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +3 -2
- package/cjs/internal/DropdownContainer/DropdownContainer.js +6 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -4
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +7 -5
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +16 -4
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +13 -4
- package/cjs/internal/InternalMenu/InternalMenu.js +15 -5
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.styles.d.ts +1 -0
- package/cjs/internal/InternalMenu/InternalMenu.styles.js +13 -7
- package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
- package/cjs/internal/InternalMenu/isIconPaddingEnabled.d.ts +2 -0
- package/cjs/internal/InternalMenu/isIconPaddingEnabled.js +9 -0
- package/cjs/internal/InternalMenu/isIconPaddingEnabled.js.map +1 -0
- package/cjs/internal/Menu/Menu.d.ts +42 -8
- package/cjs/internal/Menu/Menu.js +272 -78
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Menu/Menu.styles.d.ts +6 -1
- package/cjs/internal/Menu/Menu.styles.js +42 -8
- package/cjs/internal/Menu/Menu.styles.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -2
- package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +7 -2
- package/cjs/internal/Popup/Popup.js +13 -3
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +29 -4
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +114 -17
- package/cjs/internal/themes/DefaultTheme.js +244 -68
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/internal/themes/Theme2022.d.ts +19 -3
- package/cjs/internal/themes/Theme2022.js +33 -13
- package/cjs/internal/themes/Theme2022.js.map +1 -1
- package/cjs/internal/themes/Theme2022Dark.d.ts +0 -4
- package/cjs/internal/themes/Theme2022Dark.js +3 -14
- package/cjs/internal/themes/Theme2022Dark.js.map +1 -1
- package/cjs/typings/html.d.ts +0 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +13 -3
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +5 -0
- package/components/Button/Button/Button.js +2 -0
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -1
- package/components/Button/Button.styles/Button.styles.js +2 -2
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +2 -3
- package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
- package/components/Calendar/DayCellView/DayCellView.js +1 -1
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js +2 -2
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
- package/components/Calendar/DayCellView.styles.d.ts +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js +56 -8
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +10 -0
- package/components/Checkbox/Checkbox.md +18 -0
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js +17 -0
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js.map +1 -0
- package/components/Checkbox/Checkbox.mixins/package.json +6 -0
- package/components/Checkbox/Checkbox.mixins.d.ts +2 -0
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +39 -25
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/Checkbox/Checkbox.styles.d.ts +6 -0
- package/components/ComboBox/ComboBox.md +5 -3
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +32 -4
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
- package/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
- package/components/DateInput/DateInput/DateInput.js +5 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +3 -0
- package/components/Dropdown/getDropdownTheme/getDropdownTheme.js +3 -1
- package/components/Dropdown/getDropdownTheme/getDropdownTheme.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +1 -1
- package/components/DropdownMenu/DropdownMenu.md +28 -0
- package/components/DropdownMenu/getDropdownMenuTheme/getDropdownMenuTheme.js +5 -1
- package/components/DropdownMenu/getDropdownMenuTheme/getDropdownMenuTheme.js.map +1 -1
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +1 -1
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +5 -1
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +6 -2
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -1
- package/components/Input/Input/Input.js +3 -1
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +1 -5
- package/components/Input/Input.styles/Input.styles.js +2 -2
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Kebab/Kebab/Kebab.js +4 -1
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +1 -1
- package/components/Kebab/Kebab.md +28 -0
- package/components/Link/Link/Link.js +4 -4
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.mixins/Link.mixins.js +2 -5
- package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
- package/components/Link/Link.mixins.d.ts +1 -2
- package/components/Link/Link.styles/Link.styles.js +29 -21
- package/components/Link/Link.styles/Link.styles.js.map +1 -1
- package/components/Link/Link.styles.d.ts +2 -0
- package/components/Modal/ModalFooter/ModalFooter.js +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Radio/Radio.styles/Radio.styles.js +2 -2
- package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +3 -2
- package/components/Select/Select/Select.js +15 -7
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +7 -5
- package/components/Select/Select.styles/Select.styles.js +1 -1
- package/components/Select/Select.styles/Select.styles.js.map +1 -1
- package/components/Select/selectTheme/selectTheme.js +3 -1
- package/components/Select/selectTheme/selectTheme.js.map +1 -1
- package/components/Tabs/Tab/Tab.js +3 -3
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +1 -0
- package/components/Tabs/Tab.styles/Tab.styles.js +52 -23
- package/components/Tabs/Tab.styles/Tab.styles.js.map +1 -1
- package/components/Tabs/Tab.styles.d.ts +9 -3
- package/components/Tabs/Tabs/Tabs.js +11 -3
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +8 -2
- package/components/Tabs/Tabs.md +32 -0
- package/components/Tabs/Tabs.styles/Tabs.styles.js +15 -4
- package/components/Tabs/Tabs.styles/Tabs.styles.js.map +1 -1
- package/components/Tabs/Tabs.styles.d.ts +3 -1
- package/components/Tabs/TabsContext/TabsContext.js +1 -0
- package/components/Tabs/TabsContext/TabsContext.js.map +1 -1
- package/components/Tabs/TabsContext.d.ts +2 -1
- package/components/Tabs/helpers/helpers.js +25 -0
- package/components/Tabs/helpers/helpers.js.map +1 -0
- package/components/Tabs/helpers/package.json +6 -0
- package/components/Tabs/helpers.d.ts +6 -0
- package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
- package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
- package/components/Toast/ToastView.styles/ToastView.styles.js +1 -1
- package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
- package/components/Toggle/Toggle/Toggle.js +112 -9
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +11 -1
- package/components/Toggle/Toggle.md +16 -2
- package/components/Toggle/Toggle.mixins/Toggle.mixins.js +35 -0
- package/components/Toggle/Toggle.mixins/Toggle.mixins.js.map +1 -0
- package/components/Toggle/Toggle.mixins/package.json +6 -0
- package/components/Toggle/Toggle.mixins.d.ts +7 -0
- package/components/Toggle/Toggle.styles/Toggle.styles.js +85 -31
- package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
- package/components/Toggle/Toggle.styles.d.ts +21 -1
- package/components/TokenInput/TokenInput/TokenInput.js +9 -3
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +2 -0
- package/components/TokenInput/TokenInput.md +26 -35
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -0
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/TokenInputMenu.d.ts +7 -0
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +7 -2
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
- package/components/TooltipMenu/TooltipMenu.md +28 -0
- package/internal/CloseButtonIcon/CloseButtonIcon.styles/CloseButtonIcon.styles.js +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.styles/CloseButtonIcon.styles.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -0
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +10 -3
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +4 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +23 -20
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js +2 -1
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +5 -2
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
- package/internal/DateSelect/DateSelect.styles.d.ts +3 -0
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +2 -0
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +3 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +5 -4
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -4
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +20 -8
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +11 -6
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +13 -4
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +10 -7
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.styles.d.ts +1 -0
- package/internal/InternalMenu/isIconPaddingEnabled/isIconPaddingEnabled.js +6 -0
- package/internal/InternalMenu/isIconPaddingEnabled/isIconPaddingEnabled.js.map +1 -0
- package/internal/InternalMenu/isIconPaddingEnabled/package.json +6 -0
- package/internal/InternalMenu/isIconPaddingEnabled.d.ts +2 -0
- package/internal/Menu/Menu/Menu.js +197 -42
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +42 -8
- package/internal/Menu/Menu.styles/Menu.styles.js +20 -5
- package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
- package/internal/Menu/Menu.styles.d.ts +6 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +2 -2
- package/internal/Popup/Popup/Popup.js +9 -3
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +7 -2
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +27 -5
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +4 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +320 -88
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +114 -17
- package/internal/themes/Theme2022/Theme2022.js +59 -44
- package/internal/themes/Theme2022/Theme2022.js.map +1 -1
- package/internal/themes/Theme2022.d.ts +19 -3
- package/internal/themes/Theme2022Dark/Theme2022Dark.js +1 -18
- package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
- package/internal/themes/Theme2022Dark.d.ts +0 -4
- package/package.json +3 -3
- package/typings/html.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isIE11","CommonWrapper","cx","rootNode","fixFirefoxModifiedClickOnLabel","isTheme2022","styles","globalClasses","CheckedIcon","IndeterminateIcon","CheckboxDataTids","root","Checkbox","state","focusedByTab","indeterminate","props","initialIndeterminate","isShiftPressed","input","createRef","handleShiftPress","e","key","setState","handleShiftRelease","componentDidMount","current","document","addEventListener","componentWillUnmount","removeEventListener","setIndeterminate","resetIndeterminate","renderMain","error","warning","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","ariaDescribedby","rest","isIndeterminate","_isTheme2022","theme","iconClass","icon","iconFixPosition","checked","iconUnchecked","IconCheck","parseInt","checkboxBoxSize","IconSquare","rootClass","rootFallback","rootChecked","rootDisableTextSelect","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","box","boxWrapper","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","func"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles, globalClasses } from './Checkbox.styles';\nimport { CheckedIcon } from './CheckedIcon';\nimport { IndeterminateIcon } from './IndeterminateIcon';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n document.addEventListener('keydown', this.handleShiftPress);\n document.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n document.removeEventListener('keydown', this.handleShiftPress);\n document.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const _isTheme2022 = isTheme2022(this.theme);\n\n const iconClass = cx(\n styles.icon(),\n !_isTheme2022 && styles.iconFixPosition(),\n !props.checked && !isIndeterminate && styles.iconUnchecked(),\n );\n\n const IconCheck = _isTheme2022 ? (\n <span className={iconClass}>\n <CheckedIcon size={parseInt(this.theme.checkboxBoxSize)} />\n </span>\n ) : (\n <OkIcon className={iconClass} />\n );\n const IconSquare = _isTheme2022 ? (\n <span className={iconClass}>\n <IndeterminateIcon size={parseInt(this.theme.checkboxBoxSize)} />\n </span>\n ) : (\n <SquareIcon className={iconClass} />\n );\n\n const rootClass = cx({\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div className={cx(styles.boxWrapper(this.theme))}>\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} aria-describedby={ariaDescribedby} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isIE11","CommonWrapper","cx","rootNode","fixFirefoxModifiedClickOnLabel","isTheme2022","createPropsGetter","styles","globalClasses","CheckedIcon","IndeterminateIcon","CheckboxDataTids","root","Checkbox","getProps","defaultProps","state","focusedByTab","indeterminate","props","initialIndeterminate","isShiftPressed","input","createRef","handleShiftPress","e","key","setState","handleShiftRelease","componentDidMount","current","document","addEventListener","componentWillUnmount","removeEventListener","setIndeterminate","resetIndeterminate","renderMain","error","warning","size","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","ariaDescribedby","rest","isIndeterminate","_isTheme2022","theme","iconClass","icon","iconFixPosition","checked","iconUnchecked","iconSize","parseInt","getCheckboxBoxSize","IconCheck","IconSquare","rootClass","getRootSizeClassName","rootFallback","rootChecked","rootDisableTextSelect","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","box","getBoxWrapperSizeClassName","boxWrapper","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","rootLarge","rootMedium","rootSmall","boxWrapperLarge","boxWrapperMedium","boxWrapperSmall","checkboxBoxSizeLarge","checkboxBoxSizeMedium","checkboxBoxSizeSmall","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","func"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles, globalClasses } from './Checkbox.styles';\nimport { CheckedIcon } from './CheckedIcon';\nimport { IndeterminateIcon } from './IndeterminateIcon';\n\nexport type CheckboxSize = 'small' | 'medium' | 'large';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Размер */\n size?: CheckboxSize;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\ntype DefaultProps = Required<Pick<CheckboxProps, 'size'>>;\n\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(Checkbox.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getBoxWrapperSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.boxWrapperLarge(this.theme);\n case 'medium':\n return styles.boxWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.boxWrapperSmall(this.theme);\n }\n }\n\n private getCheckboxBoxSize() {\n switch (this.getProps().size) {\n case 'large':\n return this.theme.checkboxBoxSizeLarge;\n case 'medium':\n return this.theme.checkboxBoxSizeMedium;\n case 'small':\n default:\n return this.theme.checkboxBoxSizeSmall;\n }\n }\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n document.addEventListener('keydown', this.handleShiftPress);\n document.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n document.removeEventListener('keydown', this.handleShiftPress);\n document.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n size,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const _isTheme2022 = isTheme2022(this.theme);\n\n const iconClass = cx(\n styles.icon(),\n !_isTheme2022 && styles.iconFixPosition(),\n !props.checked && !isIndeterminate && styles.iconUnchecked(),\n );\n\n const iconSize = parseInt(this.getCheckboxBoxSize());\n const IconCheck = _isTheme2022 ? (\n <span className={iconClass}>\n <CheckedIcon size={iconSize} />\n </span>\n ) : (\n <OkIcon className={iconClass} />\n );\n const IconSquare = _isTheme2022 ? (\n <span className={iconClass}>\n <IndeterminateIcon size={iconSize} />\n </span>\n ) : (\n <SquareIcon className={iconClass} />\n );\n\n const rootClass = cx(this.getRootSizeClassName(), {\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div\n className={cx(this.getBoxWrapperSizeClassName(), {\n [styles.boxWrapper(this.theme)]: true,\n })}\n >\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} aria-describedby={ariaDescribedby} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
|
|
@@ -2,6 +2,7 @@ import React, { AriaAttributes } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { Override } from '../../typings/utility-types';
|
|
4
4
|
import { CommonProps } from '../../internal/CommonWrapper';
|
|
5
|
+
export declare type CheckboxSize = 'small' | 'medium' | 'large';
|
|
5
6
|
export interface CheckboxProps extends CommonProps, Override<React.InputHTMLAttributes<HTMLInputElement>, {
|
|
6
7
|
/**
|
|
7
8
|
* Контент `label`
|
|
@@ -15,6 +16,8 @@ export interface CheckboxProps extends CommonProps, Override<React.InputHTMLAttr
|
|
|
15
16
|
* Состояние валидации при предупреждении.
|
|
16
17
|
*/
|
|
17
18
|
warning?: boolean;
|
|
19
|
+
/** Размер */
|
|
20
|
+
size?: CheckboxSize;
|
|
18
21
|
/**
|
|
19
22
|
* HTML-событие `mouseenter`.
|
|
20
23
|
*/
|
|
@@ -53,8 +56,14 @@ export interface CheckboxState {
|
|
|
53
56
|
export declare const CheckboxDataTids: {
|
|
54
57
|
readonly root: "Checkbox__root";
|
|
55
58
|
};
|
|
59
|
+
declare type DefaultProps = Required<Pick<CheckboxProps, 'size'>>;
|
|
56
60
|
export declare class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {
|
|
57
61
|
static __KONTUR_REACT_UI__: string;
|
|
62
|
+
static defaultProps: DefaultProps;
|
|
63
|
+
private getProps;
|
|
64
|
+
private getRootSizeClassName;
|
|
65
|
+
private getBoxWrapperSizeClassName;
|
|
66
|
+
private getCheckboxBoxSize;
|
|
58
67
|
static propTypes: {
|
|
59
68
|
checked: PropTypes.Requireable<boolean>;
|
|
60
69
|
disabled: PropTypes.Requireable<boolean>;
|
|
@@ -106,3 +115,4 @@ export declare class Checkbox extends React.PureComponent<CheckboxProps, Checkbo
|
|
|
106
115
|
private handleChange;
|
|
107
116
|
private handleClick;
|
|
108
117
|
}
|
|
118
|
+
export {};
|
|
@@ -36,6 +36,24 @@ const CheckboxWithState = ({children, ...props}) => {
|
|
|
36
36
|
</Gapped>
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
У чекбокса есть 3 стандартных размера.
|
|
40
|
+
|
|
41
|
+
```jsx harmony
|
|
42
|
+
import { Gapped } from '@skbkontur/react-ui';
|
|
43
|
+
|
|
44
|
+
<Gapped vertical>
|
|
45
|
+
<Checkbox size="small" checked>
|
|
46
|
+
Маленький
|
|
47
|
+
</Checkbox>
|
|
48
|
+
<Checkbox size="medium" checked>
|
|
49
|
+
Средний
|
|
50
|
+
</Checkbox>
|
|
51
|
+
<Checkbox size="large" checked>
|
|
52
|
+
Большой
|
|
53
|
+
</Checkbox>
|
|
54
|
+
</Gapped>
|
|
55
|
+
```
|
|
56
|
+
|
|
39
57
|
Пример использования методов чекбокса `focus()` и `blur()`.
|
|
40
58
|
|
|
41
59
|
```jsx harmony
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
2
|
+
|
|
3
|
+
var _templateObject, _templateObject2;
|
|
4
|
+
|
|
5
|
+
import { css } from "../../../lib/theming/Emotion";
|
|
6
|
+
import { isChrome, isFirefox } from "../../../lib/client";
|
|
7
|
+
import { getLabGrotesqueBaselineCompensation } from "../../../lib/styles/getLabGrotesqueBaselineCompensation";
|
|
8
|
+
export var checkboxSizeMixin = function checkboxSizeMixin(fontSize, lineHeight, paddingY, checkboxBoxSize) {
|
|
9
|
+
return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n line-height: ", ";\n font-size: ", ";\n padding: ", " 0;\n\n &::before {\n width: ", ";\n }\n "])), lineHeight, fontSize, paddingY, checkboxBoxSize);
|
|
10
|
+
};
|
|
11
|
+
export var boxWrapperSizeMixin = function boxWrapperSizeMixin(labGrotesqueBaselineCompensation, fontSize, checkboxBoxSize, checkboxBoxOffsetY) {
|
|
12
|
+
var labGrotesqueCompenstation = parseInt(labGrotesqueBaselineCompensation);
|
|
13
|
+
var boxFontSize = parseInt(fontSize);
|
|
14
|
+
var baselineCompensation = boxFontSize === 18 && (isFirefox || isChrome) // TODO: вынести условие в getLabGrotesqueBaselineCompensation, когда проп size будет добавлен для radio
|
|
15
|
+
? -labGrotesqueCompenstation : getLabGrotesqueBaselineCompensation(boxFontSize, labGrotesqueCompenstation, isChrome);
|
|
16
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n width: ", ";\n height: ", ";\n margin-top: calc(", " + ", "px);\n "])), checkboxBoxSize, checkboxBoxSize, checkboxBoxOffsetY, baselineCompensation);
|
|
17
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["Checkbox.mixins.ts"],"names":["css","isChrome","isFirefox","getLabGrotesqueBaselineCompensation","checkboxSizeMixin","fontSize","lineHeight","paddingY","checkboxBoxSize","boxWrapperSizeMixin","labGrotesqueBaselineCompensation","checkboxBoxOffsetY","labGrotesqueCompenstation","parseInt","boxFontSize","baselineCompensation"],"mappings":"sIAAA,SAASA,GAAT,QAAoB,2BAApB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,kBAApC;AACA,SAASC,mCAAT,QAAoD,sDAApD;;AAEA,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,QAAD,EAAmBC,UAAnB,EAAuCC,QAAvC,EAAyDC,eAAzD,EAAqF;AACpH,SAAOR,GAAP;AACiBM,EAAAA,UADjB;AAEeD,EAAAA,QAFf;AAGaE,EAAAA,QAHb;;;AAMaC,EAAAA,eANb;;;AASD,CAVM;;AAYP,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB;AACjCC,gCADiC;AAEjCL,QAFiC;AAGjCG,eAHiC;AAIjCG,kBAJiC;AAK9B;AACH,MAAMC,yBAAyB,GAAGC,QAAQ,CAACH,gCAAD,CAA1C;AACA,MAAMI,WAAW,GAAGD,QAAQ,CAACR,QAAD,CAA5B;AACA,MAAMU,oBAAoB;AACxBD,EAAAA,WAAW,KAAK,EAAhB,KAAuBZ,SAAS,IAAID,QAApC,EAA8C;AAA9C,IACI,CAACW,yBADL;AAEIT,EAAAA,mCAAmC,CAACW,WAAD,EAAcF,yBAAd,EAAyCX,QAAzC,CAHzC;;AAKA,SAAOD,GAAP;AACWQ,EAAAA,eADX;AAEYA,EAAAA,eAFZ;AAGqBG,EAAAA,kBAHrB,EAG6CI,oBAH7C;;AAKD,CAlBM","sourcesContent":["import { css } from '../../lib/theming/Emotion';\nimport { isChrome, isFirefox } from '../../lib/client';\nimport { getLabGrotesqueBaselineCompensation } from '../../lib/styles/getLabGrotesqueBaselineCompensation';\n\nexport const checkboxSizeMixin = (fontSize: string, lineHeight: string, paddingY: string, checkboxBoxSize: string) => {\n return css`\n line-height: ${lineHeight};\n font-size: ${fontSize};\n padding: ${paddingY} 0;\n\n &::before {\n width: ${checkboxBoxSize};\n }\n `;\n};\n\nexport const boxWrapperSizeMixin = (\n labGrotesqueBaselineCompensation: string,\n fontSize: string,\n checkboxBoxSize: string,\n checkboxBoxOffsetY: string,\n) => {\n const labGrotesqueCompenstation = parseInt(labGrotesqueBaselineCompensation);\n const boxFontSize = parseInt(fontSize);\n const baselineCompensation =\n boxFontSize === 18 && (isFirefox || isChrome) // TODO: вынести условие в getLabGrotesqueBaselineCompensation, когда проп size будет добавлен для radio\n ? -labGrotesqueCompenstation\n : getLabGrotesqueBaselineCompensation(boxFontSize, labGrotesqueCompenstation, isChrome);\n\n return css`\n width: ${checkboxBoxSize};\n height: ${checkboxBoxSize};\n margin-top: calc(${checkboxBoxOffsetY} + ${baselineCompensation}px);\n `;\n};\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const checkboxSizeMixin: (fontSize: string, lineHeight: string, paddingY: string, checkboxBoxSize: string) => string;
|
|
2
|
+
export declare const boxWrapperSizeMixin: (labGrotesqueBaselineCompensation: string, fontSize: string, checkboxBoxSize: string, checkboxBoxOffsetY: string) => string;
|
|
@@ -1,72 +1,86 @@
|
|
|
1
1
|
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
2
2
|
|
|
3
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19;
|
|
3
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25;
|
|
4
4
|
|
|
5
|
-
import { getLabGrotesqueBaselineCompensation } from "../../../lib/styles/getLabGrotesqueBaselineCompensation";
|
|
6
5
|
import { css, memoizeStyle, prefix } from "../../../lib/theming/Emotion";
|
|
7
|
-
import {
|
|
6
|
+
import { boxWrapperSizeMixin, checkboxSizeMixin } from "../Checkbox.mixins";
|
|
8
7
|
export var globalClasses = prefix('checkbox')({
|
|
9
8
|
box: 'box'
|
|
10
9
|
});
|
|
11
10
|
export var styles = memoizeStyle({
|
|
12
11
|
root: function root(t) {
|
|
13
|
-
return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n
|
|
12
|
+
return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\00A0';\n display: inline-block;\n flex: 0 0 auto;\n }\n\n .", " {\n transition: background ", " ", ",\n box-shadow ", " ", ";\n }\n\n &:hover .", " {\n background: ", ";\n box-shadow: ", ";\n }\n\n &:active .", " {\n box-shadow: ", ";\n background: ", ";\n }\n "], ["\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\\\00A0';\n display: inline-block;\n flex: 0 0 auto;\n }\n\n .", " {\n transition: background ", " ", ",\n box-shadow ", " ", ";\n }\n\n &:hover .", " {\n background: ", ";\n box-shadow: ", ";\n }\n\n &:active .", " {\n box-shadow: ", ";\n background: ", ";\n }\n "])), globalClasses.box, t.transitionDuration, t.transitionTimingFunction, t.transitionDuration, t.transitionTimingFunction, globalClasses.box, t.checkboxHoverBg, t.checkboxShadowHover, globalClasses.box, t.checkboxShadowActive, t.checkboxActiveBg);
|
|
13
|
+
},
|
|
14
|
+
rootSmall: function rootSmall(t) {
|
|
15
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), checkboxSizeMixin(t.checkboxFontSizeSmall, t.checkboxLineHeightSmall, t.checkboxPaddingYSmall, t.checkboxBoxSizeSmall));
|
|
16
|
+
},
|
|
17
|
+
rootMedium: function rootMedium(t) {
|
|
18
|
+
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), checkboxSizeMixin(t.checkboxFontSizeMedium, t.checkboxLineHeightMedium, t.checkboxPaddingYMedium, t.checkboxBoxSizeMedium));
|
|
19
|
+
},
|
|
20
|
+
rootLarge: function rootLarge(t) {
|
|
21
|
+
return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), checkboxSizeMixin(t.checkboxFontSizeLarge, t.checkboxLineHeightLarge, t.checkboxPaddingYLarge, t.checkboxBoxSizeLarge));
|
|
14
22
|
},
|
|
15
23
|
rootDisableTextSelect: function rootDisableTextSelect() {
|
|
16
|
-
return css(
|
|
24
|
+
return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n user-select: none;\n "])));
|
|
17
25
|
},
|
|
18
26
|
rootChecked: function rootChecked(t) {
|
|
19
|
-
return css(
|
|
27
|
+
return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n &:hover .", " {\n box-shadow: ", ";\n background: ", ";\n }\n\n &:active .", " {\n background: ", ";\n box-shadow: ", ";\n }\n "])), globalClasses.box, t.checkboxCheckedHoverShadow, t.checkboxCheckedHoverBg, globalClasses.box, t.checkboxCheckedActiveBg, t.checkboxCheckedActiveShadow);
|
|
20
28
|
},
|
|
21
29
|
rootFallback: function rootFallback() {
|
|
22
|
-
return css(
|
|
30
|
+
return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n display: inline-table;\n\n & > * {\n // fix root's :active state in IE11 that gets blocked by nested elements\n pointer-events: none;\n }\n "])));
|
|
23
31
|
},
|
|
24
32
|
rootWrapperIE11: function rootWrapperIE11() {
|
|
25
|
-
return css(
|
|
33
|
+
return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n display: inline;\n "])));
|
|
26
34
|
},
|
|
27
35
|
boxWrapper: function boxWrapper(t) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return css(
|
|
36
|
+
return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n position: absolute;\n box-sizing: border-box;\n padding: ", ";\n\n // fix position in ie11\n display: inline-block;\n left: 0;\n )};\n "])), t.checkboxBorderWidth);
|
|
37
|
+
},
|
|
38
|
+
boxWrapperSmall: function boxWrapperSmall(t) {
|
|
39
|
+
return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), boxWrapperSizeMixin(t.labGrotesqueBaselineCompensation, t.checkboxFontSizeSmall, t.checkboxBoxSizeSmall, t.checkboxBoxOffsetY));
|
|
40
|
+
},
|
|
41
|
+
boxWrapperMedium: function boxWrapperMedium(t) {
|
|
42
|
+
return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), boxWrapperSizeMixin(t.labGrotesqueBaselineCompensation, t.checkboxFontSizeMedium, t.checkboxBoxSizeMedium, t.checkboxBoxOffsetY));
|
|
43
|
+
},
|
|
44
|
+
boxWrapperLarge: function boxWrapperLarge(t) {
|
|
45
|
+
return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), boxWrapperSizeMixin(t.labGrotesqueBaselineCompensation, t.checkboxFontSizeLarge, t.checkboxBoxSizeLarge, t.checkboxBoxOffsetY));
|
|
32
46
|
},
|
|
33
47
|
box: function box(t) {
|
|
34
|
-
return css(
|
|
48
|
+
return css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n color: ", ";\n box-shadow: ", ";\n background: ", ";\n border-radius: ", ";\n height: 100%;\n "])), t.checkboxTextColorDefault, t.checkboxShadow, t.checkboxBg, t.checkboxBorderRadius);
|
|
35
49
|
},
|
|
36
50
|
input: function input() {
|
|
37
|
-
return css(
|
|
51
|
+
return css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n "])));
|
|
38
52
|
},
|
|
39
53
|
boxWarning: function boxWarning(t) {
|
|
40
|
-
return css(
|
|
54
|
+
return css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteralLoose(["\n box-shadow: inset 0 0 0 1px ", ",\n 0 0 0 ", " ", " !important; // override hover and active\n "])), t.checkboxOutlineColorFocus, t.checkboxOutlineWidth, t.checkboxBorderColorWarning);
|
|
41
55
|
},
|
|
42
56
|
boxError: function boxError(t) {
|
|
43
|
-
return css(
|
|
57
|
+
return css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteralLoose(["\n box-shadow: inset 0 0 0 1px ", ",\n 0 0 0 ", " ", " !important; // override hover and active\n "])), t.checkboxOutlineColorFocus, t.checkboxOutlineWidth, t.checkboxBorderColorError);
|
|
44
58
|
},
|
|
45
59
|
boxChecked: function boxChecked(t) {
|
|
46
|
-
return css(
|
|
60
|
+
return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n box-shadow: ", ";\n "])), t.checkboxCheckedBg, t.checkboxCheckedColor, t.checkboxCheckedShadow);
|
|
47
61
|
},
|
|
48
62
|
boxFocus: function boxFocus(t) {
|
|
49
|
-
return css(
|
|
63
|
+
return css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteralLoose(["\n box-shadow: inset 0 0 0 1px ", ",\n 0 0 0 ", " ", " !important; // override hover and active\n "])), t.checkboxOutlineColorFocus, t.checkboxOutlineWidth, t.checkboxBorderColorFocus);
|
|
50
64
|
},
|
|
51
65
|
boxDisabled: function boxDisabled(t) {
|
|
52
|
-
return css(
|
|
66
|
+
return css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteralLoose(["\n box-shadow: ", " !important; // override hover and active\n background: ", " !important; // override hover and active\n color: ", ";\n "])), t.checkboxShadowDisabled, t.checkboxBgDisabled, t.checkboxTextColorDisabled);
|
|
53
67
|
},
|
|
54
68
|
disabled: function disabled(t) {
|
|
55
|
-
return css(
|
|
69
|
+
return css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteralLoose(["\n color: ", ";\n cursor: default;\n "])), t.checkboxTextColorDisabled);
|
|
56
70
|
},
|
|
57
71
|
icon: function icon() {
|
|
58
|
-
return css(
|
|
72
|
+
return css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n "])));
|
|
59
73
|
},
|
|
60
74
|
iconFixPosition: function iconFixPosition() {
|
|
61
|
-
return css(
|
|
75
|
+
return css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteralLoose(["\n svg {\n margin: -12.5% 0 0 0;\n }\n "])));
|
|
62
76
|
},
|
|
63
77
|
iconUnchecked: function iconUnchecked() {
|
|
64
|
-
return css(
|
|
78
|
+
return css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteralLoose(["\n color: transparent;\n "])));
|
|
65
79
|
},
|
|
66
80
|
caption: function caption(t) {
|
|
67
|
-
return css(
|
|
81
|
+
return css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteralLoose(["\n color: ", ";\n padding-left: ", ";\n "])), t.checkboxTextColorDefault, t.checkboxCaptionGap);
|
|
68
82
|
},
|
|
69
83
|
captionIE11: function captionIE11() {
|
|
70
|
-
return css(
|
|
84
|
+
return css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteralLoose(["\n display: table-cell;\n "])));
|
|
71
85
|
}
|
|
72
86
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Checkbox.styles.ts"],"names":["getLabGrotesqueBaselineCompensation","css","memoizeStyle","prefix","isChrome","globalClasses","box","styles","root","t","checkboxLineHeight","checkboxFontSize","checkboxPaddingY","checkboxHoverBg","checkboxShadowHover","checkboxShadowActive","checkboxActiveBg","checkboxBoxSize","rootDisableTextSelect","rootChecked","checkboxCheckedHoverShadow","checkboxCheckedHoverBg","checkboxCheckedActiveBg","checkboxCheckedActiveShadow","rootFallback","rootWrapperIE11","boxWrapper","labGrotesqueCompenstation","parseInt","labGrotesqueBaselineCompensation","fontSize","baselineCompensation","checkboxBorderWidth","checkboxBoxOffsetY","checkboxTextColorDefault","checkboxShadow","checkboxBg","checkboxBorderRadius","input","boxWarning","checkboxOutlineColorFocus","checkboxOutlineWidth","checkboxBorderColorWarning","boxError","checkboxBorderColorError","boxChecked","checkboxCheckedBg","checkboxCheckedColor","checkboxCheckedShadow","boxFocus","checkboxBorderColorFocus","boxDisabled","checkboxShadowDisabled","checkboxBgDisabled","checkboxTextColorDisabled","disabled","icon","iconFixPosition","iconUnchecked","caption","checkboxCaptionGap","captionIE11"],"mappings":"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","sourcesContent":["import { getLabGrotesqueBaselineCompensation } from '../../lib/styles/getLabGrotesqueBaselineCompensation';\nimport { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isChrome } from '../../lib/client';\n\nexport const globalClasses = prefix('checkbox')({\n box: 'box',\n});\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n line-height: ${t.checkboxLineHeight};\n font-size: ${t.checkboxFontSize};\n padding: ${t.checkboxPaddingY} 0;\n\n &:hover .${globalClasses.box} {\n background: ${t.checkboxHoverBg};\n box-shadow: ${t.checkboxShadowHover};\n }\n\n &:active .${globalClasses.box} {\n box-shadow: ${t.checkboxShadowActive};\n background: ${t.checkboxActiveBg};\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\\\00A0';\n display: inline-block;\n width: ${t.checkboxBoxSize};\n flex: 0 0 auto;\n }\n `;\n },\n\n rootDisableTextSelect() {\n return css`\n user-select: none;\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.box} {\n box-shadow: ${t.checkboxCheckedHoverShadow};\n background: ${t.checkboxCheckedHoverBg};\n }\n\n &:active .${globalClasses.box} {\n background: ${t.checkboxCheckedActiveBg};\n box-shadow: ${t.checkboxCheckedActiveShadow};\n }\n `;\n },\n\n rootFallback() {\n return css`\n display: inline-table;\n\n & > * {\n // fix root's :active state in IE11 that gets blocked by nested elements\n pointer-events: none;\n }\n `;\n },\n\n rootWrapperIE11() {\n return css`\n display: inline;\n `;\n },\n\n boxWrapper(t: Theme) {\n const labGrotesqueCompenstation = parseInt(t.labGrotesqueBaselineCompensation);\n const fontSize = parseInt(t.checkboxFontSize);\n const baselineCompensation = getLabGrotesqueBaselineCompensation(fontSize, labGrotesqueCompenstation, isChrome);\n\n return css`\n position: absolute;\n width: ${t.checkboxBoxSize};\n height: ${t.checkboxBoxSize};\n box-sizing: border-box;\n padding: ${t.checkboxBorderWidth};\n margin-top: calc(${t.checkboxBoxOffsetY} + ${baselineCompensation}px);\n\n // fix position in ie11\n display: inline-block;\n left: 0;\n `;\n },\n\n box(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n box-shadow: ${t.checkboxShadow};\n background: ${t.checkboxBg};\n border-radius: ${t.checkboxBorderRadius};\n height: 100%;\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n boxWarning(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorWarning} !important; // override hover and active\n `;\n },\n\n boxError(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorError} !important; // override hover and active\n `;\n },\n\n boxChecked(t: Theme) {\n return css`\n background: ${t.checkboxCheckedBg};\n color: ${t.checkboxCheckedColor};\n box-shadow: ${t.checkboxCheckedShadow};\n `;\n },\n\n boxFocus(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorFocus} !important; // override hover and active\n `;\n },\n\n boxDisabled(t: Theme) {\n return css`\n box-shadow: ${t.checkboxShadowDisabled} !important; // override hover and active\n background: ${t.checkboxBgDisabled} !important; // override hover and active\n color: ${t.checkboxTextColorDisabled};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDisabled};\n cursor: default;\n `;\n },\n\n icon() {\n return css`\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n `;\n },\n\n iconFixPosition() {\n return css`\n svg {\n margin: -12.5% 0 0 0;\n }\n `;\n },\n\n iconUnchecked() {\n return css`\n color: transparent;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n padding-left: ${t.checkboxCaptionGap};\n `;\n },\n\n captionIE11() {\n return css`\n display: table-cell;\n `;\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["Checkbox.styles.ts"],"names":["css","memoizeStyle","prefix","boxWrapperSizeMixin","checkboxSizeMixin","globalClasses","box","styles","root","t","transitionDuration","transitionTimingFunction","checkboxHoverBg","checkboxShadowHover","checkboxShadowActive","checkboxActiveBg","rootSmall","checkboxFontSizeSmall","checkboxLineHeightSmall","checkboxPaddingYSmall","checkboxBoxSizeSmall","rootMedium","checkboxFontSizeMedium","checkboxLineHeightMedium","checkboxPaddingYMedium","checkboxBoxSizeMedium","rootLarge","checkboxFontSizeLarge","checkboxLineHeightLarge","checkboxPaddingYLarge","checkboxBoxSizeLarge","rootDisableTextSelect","rootChecked","checkboxCheckedHoverShadow","checkboxCheckedHoverBg","checkboxCheckedActiveBg","checkboxCheckedActiveShadow","rootFallback","rootWrapperIE11","boxWrapper","checkboxBorderWidth","boxWrapperSmall","labGrotesqueBaselineCompensation","checkboxBoxOffsetY","boxWrapperMedium","boxWrapperLarge","checkboxTextColorDefault","checkboxShadow","checkboxBg","checkboxBorderRadius","input","boxWarning","checkboxOutlineColorFocus","checkboxOutlineWidth","checkboxBorderColorWarning","boxError","checkboxBorderColorError","boxChecked","checkboxCheckedBg","checkboxCheckedColor","checkboxCheckedShadow","boxFocus","checkboxBorderColorFocus","boxDisabled","checkboxShadowDisabled","checkboxBgDisabled","checkboxTextColorDisabled","disabled","icon","iconFixPosition","iconUnchecked","caption","checkboxCaptionGap","captionIE11"],"mappings":"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","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nimport { boxWrapperSizeMixin, checkboxSizeMixin } from './Checkbox.mixins';\n\nexport const globalClasses = prefix('checkbox')({\n box: 'box',\n});\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned box,\n // and also height and baseline for checkbox without caption.\n content: '\\\\00A0';\n display: inline-block;\n flex: 0 0 auto;\n }\n\n .${globalClasses.box} {\n transition: background ${t.transitionDuration} ${t.transitionTimingFunction},\n box-shadow ${t.transitionDuration} ${t.transitionTimingFunction};\n }\n\n &:hover .${globalClasses.box} {\n background: ${t.checkboxHoverBg};\n box-shadow: ${t.checkboxShadowHover};\n }\n\n &:active .${globalClasses.box} {\n box-shadow: ${t.checkboxShadowActive};\n background: ${t.checkboxActiveBg};\n }\n `;\n },\n\n rootSmall(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeSmall,\n t.checkboxLineHeightSmall,\n t.checkboxPaddingYSmall,\n t.checkboxBoxSizeSmall,\n )};\n `;\n },\n\n rootMedium(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeMedium,\n t.checkboxLineHeightMedium,\n t.checkboxPaddingYMedium,\n t.checkboxBoxSizeMedium,\n )};\n `;\n },\n\n rootLarge(t: Theme) {\n return css`\n ${checkboxSizeMixin(\n t.checkboxFontSizeLarge,\n t.checkboxLineHeightLarge,\n t.checkboxPaddingYLarge,\n t.checkboxBoxSizeLarge,\n )};\n `;\n },\n\n rootDisableTextSelect() {\n return css`\n user-select: none;\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.box} {\n box-shadow: ${t.checkboxCheckedHoverShadow};\n background: ${t.checkboxCheckedHoverBg};\n }\n\n &:active .${globalClasses.box} {\n background: ${t.checkboxCheckedActiveBg};\n box-shadow: ${t.checkboxCheckedActiveShadow};\n }\n `;\n },\n\n rootFallback() {\n return css`\n display: inline-table;\n\n & > * {\n // fix root's :active state in IE11 that gets blocked by nested elements\n pointer-events: none;\n }\n `;\n },\n\n rootWrapperIE11() {\n return css`\n display: inline;\n `;\n },\n\n boxWrapper(t: Theme) {\n return css`\n position: absolute;\n box-sizing: border-box;\n padding: ${t.checkboxBorderWidth};\n\n // fix position in ie11\n display: inline-block;\n left: 0;\n )};\n `;\n },\n\n boxWrapperSmall(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeSmall,\n t.checkboxBoxSizeSmall,\n t.checkboxBoxOffsetY,\n )};\n `;\n },\n\n boxWrapperMedium(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeMedium,\n t.checkboxBoxSizeMedium,\n t.checkboxBoxOffsetY,\n )};\n `;\n },\n\n boxWrapperLarge(t: Theme) {\n return css`\n ${boxWrapperSizeMixin(\n t.labGrotesqueBaselineCompensation,\n t.checkboxFontSizeLarge,\n t.checkboxBoxSizeLarge,\n t.checkboxBoxOffsetY,\n )};\n `;\n },\n\n box(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n box-shadow: ${t.checkboxShadow};\n background: ${t.checkboxBg};\n border-radius: ${t.checkboxBorderRadius};\n height: 100%;\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n boxWarning(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorWarning} !important; // override hover and active\n `;\n },\n\n boxError(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorError} !important; // override hover and active\n `;\n },\n\n boxChecked(t: Theme) {\n return css`\n background: ${t.checkboxCheckedBg};\n color: ${t.checkboxCheckedColor};\n box-shadow: ${t.checkboxCheckedShadow};\n `;\n },\n\n boxFocus(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorFocus} !important; // override hover and active\n `;\n },\n\n boxDisabled(t: Theme) {\n return css`\n box-shadow: ${t.checkboxShadowDisabled} !important; // override hover and active\n background: ${t.checkboxBgDisabled} !important; // override hover and active\n color: ${t.checkboxTextColorDisabled};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDisabled};\n cursor: default;\n `;\n },\n\n icon() {\n return css`\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n `;\n },\n\n iconFixPosition() {\n return css`\n svg {\n margin: -12.5% 0 0 0;\n }\n `;\n },\n\n iconUnchecked() {\n return css`\n color: transparent;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n padding-left: ${t.checkboxCaptionGap};\n `;\n },\n\n captionIE11() {\n return css`\n display: table-cell;\n `;\n },\n});\n"]}
|
|
@@ -4,11 +4,17 @@ export declare const globalClasses: {
|
|
|
4
4
|
};
|
|
5
5
|
export declare const styles: {
|
|
6
6
|
root(t: Theme): string;
|
|
7
|
+
rootSmall(t: Theme): string;
|
|
8
|
+
rootMedium(t: Theme): string;
|
|
9
|
+
rootLarge(t: Theme): string;
|
|
7
10
|
rootDisableTextSelect(): string;
|
|
8
11
|
rootChecked(t: Theme): string;
|
|
9
12
|
rootFallback(): string;
|
|
10
13
|
rootWrapperIE11(): string;
|
|
11
14
|
boxWrapper(t: Theme): string;
|
|
15
|
+
boxWrapperSmall(t: Theme): string;
|
|
16
|
+
boxWrapperMedium(t: Theme): string;
|
|
17
|
+
boxWrapperLarge(t: Theme): string;
|
|
12
18
|
box(t: Theme): string;
|
|
13
19
|
input(): string;
|
|
14
20
|
boxWarning(t: Theme): string;
|
|
@@ -163,7 +163,7 @@ const getItems = q =>
|
|
|
163
163
|
{ approved: false, value: 3, label: 'Розенкранц Харитонов', email: 'third@skbkontur.ru' },
|
|
164
164
|
{ approved: false, value: 4, label: 'Надежда Дубова', email: 'fourth@skbkontur.ru' },
|
|
165
165
|
{ approved: true, value: 5, label: 'Владислав Сташкеевич', email: 'fifth@skbkontur.ru' },
|
|
166
|
-
{ approved: true, value: 6, label: 'Василиса Поволоцкая', email: 'sixth@skbkontur.ru' },
|
|
166
|
+
{ approved: true, value: 6, label: 'Василиса Александровна Поволоцкая', email: 'sixth@skbkontur.ru' },
|
|
167
167
|
].filter(x => x.label.toLowerCase().includes(q.toLowerCase()) || x.value.toString(10) === q),
|
|
168
168
|
).then(delay(500));
|
|
169
169
|
|
|
@@ -195,7 +195,7 @@ const customRenderItem = item => (
|
|
|
195
195
|
>
|
|
196
196
|
<div
|
|
197
197
|
style={{
|
|
198
|
-
|
|
198
|
+
width: '55%',
|
|
199
199
|
display: 'flex',
|
|
200
200
|
}}
|
|
201
201
|
>
|
|
@@ -242,7 +242,9 @@ const customRenderValue = item => (
|
|
|
242
242
|
>
|
|
243
243
|
<div
|
|
244
244
|
style={{
|
|
245
|
-
|
|
245
|
+
width: '55%',
|
|
246
|
+
overflow: 'hidden',
|
|
247
|
+
textOverflow: 'ellipsis'
|
|
246
248
|
}}
|
|
247
249
|
>
|
|
248
250
|
{item.label}
|
|
@@ -50,7 +50,7 @@ export var CurrencyHelper = /*#__PURE__*/function () {
|
|
|
50
50
|
return '';
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
return CurrencyHelper.formatString(
|
|
53
|
+
return CurrencyHelper.formatString(this.toDecimalString(value), options);
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
CurrencyHelper.parse = function parse(value) {
|
|
@@ -183,7 +183,7 @@ export var CurrencyHelper = /*#__PURE__*/function () {
|
|
|
183
183
|
};
|
|
184
184
|
|
|
185
185
|
CurrencyHelper.destructString = function destructString(value) {
|
|
186
|
-
var match = /^(-)?(\d*)?(\.)?(\d*)?$/.exec(value);
|
|
186
|
+
var match = /^(-)?(\d*)?(\.)?(\d*)?(e)?([-+]?\d+)?$/.exec(value);
|
|
187
187
|
|
|
188
188
|
if (!match) {
|
|
189
189
|
return null;
|
|
@@ -196,12 +196,15 @@ export var CurrencyHelper = /*#__PURE__*/function () {
|
|
|
196
196
|
_match$3 = match[3],
|
|
197
197
|
delimiter = _match$3 === void 0 ? '' : _match$3,
|
|
198
198
|
_match$4 = match[4],
|
|
199
|
-
fraction = _match$4 === void 0 ? '' : _match$4
|
|
199
|
+
fraction = _match$4 === void 0 ? '' : _match$4,
|
|
200
|
+
_match$5 = match[6],
|
|
201
|
+
exponent = _match$5 === void 0 ? '' : _match$5;
|
|
200
202
|
return {
|
|
201
203
|
sign: sign,
|
|
202
204
|
integer: integer,
|
|
203
205
|
delimiter: delimiter,
|
|
204
|
-
fraction: fraction
|
|
206
|
+
fraction: fraction,
|
|
207
|
+
exponent: exponent
|
|
205
208
|
};
|
|
206
209
|
};
|
|
207
210
|
|
|
@@ -212,4 +215,29 @@ CurrencyHelper.defaultOptions = {
|
|
|
212
215
|
hideTrailingZeros: false,
|
|
213
216
|
thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,
|
|
214
217
|
minusSign: MINUS_SIGN
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
CurrencyHelper.toDecimalString = function (number) {
|
|
221
|
+
if (!number.toString().includes('e')) {
|
|
222
|
+
return number.toString();
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
var destructed = CurrencyHelper.destructString(number.toExponential());
|
|
226
|
+
|
|
227
|
+
if (destructed === null) {
|
|
228
|
+
return '';
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
var _destructed$sign = destructed.sign,
|
|
232
|
+
sign = _destructed$sign === void 0 ? '' : _destructed$sign,
|
|
233
|
+
integer = destructed.integer,
|
|
234
|
+
fraction = destructed.fraction,
|
|
235
|
+
exponent = destructed.exponent;
|
|
236
|
+
var intExponent = parseInt(exponent || '0');
|
|
237
|
+
|
|
238
|
+
if (intExponent > 0) {
|
|
239
|
+
return [sign, integer, fraction, '0'.repeat(intExponent - fraction.length)].join('');
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
return [sign, '0.', ' 0'.repeat(-intExponent - 1), integer, fraction].join('');
|
|
215
243
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CurrencyHelper.tsx"],"names":["isNonNullable","isNullable","isSafari","MAX_ALLOWED_CHARS","MAX_SAFE_DIGITS","MINUS_SIGN","SPACE","THIN_SPACE","CurrencyHelper","getOptions","options","defaultOptions","getInfo","value","raw","unformatString","formatted","formatString","cursorMap","getCursorMap","formattingOptions","regexp","RegExp","thousandsDelimiter","index","length","cursor","skip","ignoredSymbol","exec","format","toString","parse","cleaned","destructed","destructString","result","sign","integer","delimiter","fraction","parseFloat","replace","formatForClipboard","unformattedValue","fractionDigits","hideTrailingZeros","parts","blockSize","start","i","push","substring","Math","max","join","padEnd","min","minusSign","isValidString","unsigned","integerDigits","extractValid","match","token","substr"],"mappings":"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","sourcesContent":["import { isNonNullable, isNullable } from '../../lib/utils';\nimport { Nullable } from '../../typings/utility-types';\nimport { isSafari } from '../../lib/client';\n\nimport { DecimalOptions } from './CurrencyInputHelper';\nimport { CursorMap } from './CursorHelper';\nimport { MAX_ALLOWED_CHARS, MAX_SAFE_DIGITS, MINUS_SIGN, SPACE, THIN_SPACE } from './constants';\n\nexport interface DecimalFormattingOptions {\n fractionDigits?: Nullable<number>;\n hideTrailingZeros?: boolean;\n thousandsDelimiter?: string;\n minusSign?: string;\n}\n\ntype DecimalFormattingOptionsInternal = Required<DecimalFormattingOptions>;\n\nexport interface FormattingInfo {\n raw: string;\n formatted: string;\n cursorMap: CursorMap;\n}\n\nexport class CurrencyHelper {\n public static defaultOptions: DecimalFormattingOptionsInternal = {\n fractionDigits: null,\n hideTrailingZeros: false,\n thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,\n minusSign: MINUS_SIGN,\n };\n\n public static getOptions(options?: Nullable<DecimalFormattingOptions>): DecimalFormattingOptionsInternal {\n return { ...CurrencyHelper.defaultOptions, ...options };\n }\n\n public static getInfo(value: string, options?: Nullable<DecimalFormattingOptions>): FormattingInfo {\n const raw = CurrencyHelper.unformatString(value);\n const formatted = CurrencyHelper.formatString(value, options);\n const cursorMap = CurrencyHelper.getCursorMap(formatted, options);\n\n return { raw, formatted, cursorMap };\n }\n\n public static getCursorMap(formatted: string, formattingOptions?: Nullable<DecimalFormattingOptions>): CursorMap {\n const options = CurrencyHelper.getOptions(formattingOptions);\n const regexp = new RegExp(options.thousandsDelimiter);\n const cursorMap: CursorMap = [];\n\n let index = formatted.length;\n let cursor = formatted.length;\n let skip = 0;\n\n while (index >= 0) {\n cursorMap[index] = cursor;\n\n const ignoredSymbol = regexp.exec(formatted[index - 1]);\n if (ignoredSymbol) {\n ++skip;\n } else {\n cursor = cursor - skip - 1;\n skip = 0;\n }\n --index;\n }\n return cursorMap;\n }\n\n public static format(value: Nullable<number>, options?: Nullable<DecimalFormattingOptions>): string {\n if (isNullable(value)) {\n return '';\n }\n\n return CurrencyHelper.formatString(value.toString(), options);\n }\n\n public static parse(value: string): Nullable<number> {\n const cleaned = CurrencyHelper.unformatString(value);\n if (!cleaned) {\n return null;\n }\n\n const destructed = CurrencyHelper.destructString(cleaned);\n if (!destructed) {\n return null;\n }\n\n const result =\n destructed.sign + (destructed.integer || '0') + (destructed.delimiter || '.') + (destructed.fraction || '0');\n\n return parseFloat(result);\n }\n\n public static unformatString(value: string): string {\n return value\n .replace(/\\s/g, '')\n .replace(',', '.')\n .replace(/[\\u2212\\u002D\\uFE63\\uFF0D\\u2012\\u2013\\u2014\\u2015]/g, '-');\n }\n\n public static formatForClipboard(value: string): string {\n return CurrencyHelper.unformatString(value).replace('.', ',');\n }\n\n public static formatString(value: string, formattingOptions?: Nullable<DecimalFormattingOptions>): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue) || {\n sign: '',\n integer: '',\n delimiter: '',\n fraction: '',\n };\n\n const { sign, integer, delimiter } = destructed;\n let fraction = destructed.fraction;\n let fractionDigits = fraction.length;\n\n const options = CurrencyHelper.getOptions(formattingOptions);\n if (options.hideTrailingZeros) {\n fraction = fraction.replace(/0+$/, '');\n fractionDigits = fraction.length;\n } else if (options.fractionDigits !== null) {\n fractionDigits = options.fractionDigits;\n }\n\n const parts = [];\n\n const blockSize = 3;\n const start = ((integer.length - 1) % blockSize) - blockSize + 1;\n for (let i = start; i < integer.length; i += blockSize) {\n parts.push(integer.substring(Math.max(i, 0), i + blockSize));\n }\n\n let result = parts.join(options.thousandsDelimiter);\n\n if (delimiter || fractionDigits) {\n result += ',';\n result += fraction.padEnd(Math.min(fractionDigits, MAX_SAFE_DIGITS), '0');\n }\n\n if (sign) {\n result = options.minusSign + result;\n }\n\n return result;\n }\n\n public static isValidString(value: string, options: DecimalOptions) {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue);\n\n if (!destructed) {\n return false;\n }\n\n const { sign, integer, delimiter, fraction } = destructed;\n\n if (options.unsigned && sign) {\n return false;\n }\n\n if (options.fractionDigits === 0 && delimiter) {\n return false;\n }\n\n const integerDigits = integer === '0' ? 0 : integer.length;\n const fractionDigits = fraction.length;\n\n if (isNonNullable(options.integerDigits) && integerDigits > options.integerDigits) {\n return false;\n }\n\n if (isNullable(options.integerDigits) && integerDigits > MAX_SAFE_DIGITS - (options.fractionDigits || 0)) {\n return false;\n }\n\n if (isNonNullable(options.fractionDigits) && fractionDigits > options.fractionDigits) {\n return false;\n }\n\n return integerDigits + fractionDigits <= MAX_SAFE_DIGITS;\n }\n\n public static extractValid(value: string, options: DecimalOptions): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n\n const match = /[-.\\d]+/.exec(unformattedValue);\n\n if (!match) {\n return '';\n }\n\n const token = match[0].substr(0, MAX_ALLOWED_CHARS);\n\n for (let i = token.length; i >= 0; --i) {\n const result = token.substr(0, i);\n if (CurrencyHelper.isValidString(result, options)) {\n return result;\n }\n }\n\n return '';\n }\n\n public static destructString(value: string) {\n const match = /^(-)?(\\d*)?(\\.)?(\\d*)?$/.exec(value);\n if (!match) {\n return null;\n }\n const [, sign = '', integer = '', delimiter = '', fraction = ''] = match;\n return { sign, integer, delimiter, fraction };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["CurrencyHelper.tsx"],"names":["isNonNullable","isNullable","isSafari","MAX_ALLOWED_CHARS","MAX_SAFE_DIGITS","MINUS_SIGN","SPACE","THIN_SPACE","CurrencyHelper","getOptions","options","defaultOptions","getInfo","value","raw","unformatString","formatted","formatString","cursorMap","getCursorMap","formattingOptions","regexp","RegExp","thousandsDelimiter","index","length","cursor","skip","ignoredSymbol","exec","format","toDecimalString","parse","cleaned","destructed","destructString","result","sign","integer","delimiter","fraction","parseFloat","replace","formatForClipboard","unformattedValue","fractionDigits","hideTrailingZeros","parts","blockSize","start","i","push","substring","Math","max","join","padEnd","min","minusSign","isValidString","unsigned","integerDigits","extractValid","match","token","substr","exponent","number","toString","includes","toExponential","intExponent","parseInt","repeat"],"mappings":"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","sourcesContent":["import { isNonNullable, isNullable } from '../../lib/utils';\nimport { Nullable } from '../../typings/utility-types';\nimport { isSafari } from '../../lib/client';\n\nimport { DecimalOptions } from './CurrencyInputHelper';\nimport { CursorMap } from './CursorHelper';\nimport { MAX_ALLOWED_CHARS, MAX_SAFE_DIGITS, MINUS_SIGN, SPACE, THIN_SPACE } from './constants';\n\nexport interface DecimalFormattingOptions {\n fractionDigits?: Nullable<number>;\n hideTrailingZeros?: boolean;\n thousandsDelimiter?: string;\n minusSign?: string;\n}\n\ntype DecimalFormattingOptionsInternal = Required<DecimalFormattingOptions>;\n\nexport interface FormattingInfo {\n raw: string;\n formatted: string;\n cursorMap: CursorMap;\n}\n\nexport class CurrencyHelper {\n public static defaultOptions: DecimalFormattingOptionsInternal = {\n fractionDigits: null,\n hideTrailingZeros: false,\n thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,\n minusSign: MINUS_SIGN,\n };\n\n public static getOptions(options?: Nullable<DecimalFormattingOptions>): DecimalFormattingOptionsInternal {\n return { ...CurrencyHelper.defaultOptions, ...options };\n }\n\n public static getInfo(value: string, options?: Nullable<DecimalFormattingOptions>): FormattingInfo {\n const raw = CurrencyHelper.unformatString(value);\n const formatted = CurrencyHelper.formatString(value, options);\n const cursorMap = CurrencyHelper.getCursorMap(formatted, options);\n\n return { raw, formatted, cursorMap };\n }\n\n public static getCursorMap(formatted: string, formattingOptions?: Nullable<DecimalFormattingOptions>): CursorMap {\n const options = CurrencyHelper.getOptions(formattingOptions);\n const regexp = new RegExp(options.thousandsDelimiter);\n const cursorMap: CursorMap = [];\n\n let index = formatted.length;\n let cursor = formatted.length;\n let skip = 0;\n\n while (index >= 0) {\n cursorMap[index] = cursor;\n\n const ignoredSymbol = regexp.exec(formatted[index - 1]);\n if (ignoredSymbol) {\n ++skip;\n } else {\n cursor = cursor - skip - 1;\n skip = 0;\n }\n --index;\n }\n return cursorMap;\n }\n\n public static format(value: Nullable<number>, options?: Nullable<DecimalFormattingOptions>): string {\n if (isNullable(value)) {\n return '';\n }\n return CurrencyHelper.formatString(this.toDecimalString(value), options);\n }\n\n public static parse(value: string): Nullable<number> {\n const cleaned = CurrencyHelper.unformatString(value);\n if (!cleaned) {\n return null;\n }\n\n const destructed = CurrencyHelper.destructString(cleaned);\n if (!destructed) {\n return null;\n }\n\n const result =\n destructed.sign + (destructed.integer || '0') + (destructed.delimiter || '.') + (destructed.fraction || '0');\n\n return parseFloat(result);\n }\n\n public static unformatString(value: string): string {\n return value\n .replace(/\\s/g, '')\n .replace(',', '.')\n .replace(/[\\u2212\\u002D\\uFE63\\uFF0D\\u2012\\u2013\\u2014\\u2015]/g, '-');\n }\n\n public static formatForClipboard(value: string): string {\n return CurrencyHelper.unformatString(value).replace('.', ',');\n }\n\n public static formatString(value: string, formattingOptions?: Nullable<DecimalFormattingOptions>): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue) || {\n sign: '',\n integer: '',\n delimiter: '',\n fraction: '',\n };\n\n const { sign, integer, delimiter } = destructed;\n let fraction = destructed.fraction;\n let fractionDigits = fraction.length;\n\n const options = CurrencyHelper.getOptions(formattingOptions);\n if (options.hideTrailingZeros) {\n fraction = fraction.replace(/0+$/, '');\n fractionDigits = fraction.length;\n } else if (options.fractionDigits !== null) {\n fractionDigits = options.fractionDigits;\n }\n\n const parts = [];\n\n const blockSize = 3;\n const start = ((integer.length - 1) % blockSize) - blockSize + 1;\n for (let i = start; i < integer.length; i += blockSize) {\n parts.push(integer.substring(Math.max(i, 0), i + blockSize));\n }\n\n let result = parts.join(options.thousandsDelimiter);\n\n if (delimiter || fractionDigits) {\n result += ',';\n result += fraction.padEnd(Math.min(fractionDigits, MAX_SAFE_DIGITS), '0');\n }\n\n if (sign) {\n result = options.minusSign + result;\n }\n\n return result;\n }\n\n public static isValidString(value: string, options: DecimalOptions) {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue);\n\n if (!destructed) {\n return false;\n }\n\n const { sign, integer, delimiter, fraction } = destructed;\n\n if (options.unsigned && sign) {\n return false;\n }\n\n if (options.fractionDigits === 0 && delimiter) {\n return false;\n }\n\n const integerDigits = integer === '0' ? 0 : integer.length;\n const fractionDigits = fraction.length;\n\n if (isNonNullable(options.integerDigits) && integerDigits > options.integerDigits) {\n return false;\n }\n\n if (isNullable(options.integerDigits) && integerDigits > MAX_SAFE_DIGITS - (options.fractionDigits || 0)) {\n return false;\n }\n\n if (isNonNullable(options.fractionDigits) && fractionDigits > options.fractionDigits) {\n return false;\n }\n\n return integerDigits + fractionDigits <= MAX_SAFE_DIGITS;\n }\n\n public static extractValid(value: string, options: DecimalOptions): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n\n const match = /[-.\\d]+/.exec(unformattedValue);\n\n if (!match) {\n return '';\n }\n\n const token = match[0].substr(0, MAX_ALLOWED_CHARS);\n\n for (let i = token.length; i >= 0; --i) {\n const result = token.substr(0, i);\n if (CurrencyHelper.isValidString(result, options)) {\n return result;\n }\n }\n\n return '';\n }\n\n public static destructString(value: string) {\n const match = /^(-)?(\\d*)?(\\.)?(\\d*)?(e)?([-+]?\\d+)?$/.exec(value);\n if (!match) {\n return null;\n }\n const [, sign = '', integer = '', delimiter = '', fraction = '', , exponent = ''] = match;\n return { sign, integer, delimiter, fraction, exponent };\n }\n\n private static toDecimalString = (number: number) => {\n if (!number.toString().includes('e')) {\n return number.toString();\n }\n const destructed = this.destructString(number.toExponential());\n if (destructed === null) {\n return '';\n }\n const { sign = '', integer, fraction, exponent } = destructed;\n const intExponent = parseInt(exponent || '0');\n if (intExponent > 0) {\n return [sign, integer, fraction, '0'.repeat(intExponent - fraction.length)].join('');\n }\n return [sign, '0.', ' 0'.repeat(-intExponent - 1), integer, fraction].join('');\n };\n}\n"]}
|