@skbkontur/react-ui 5.2.1 → 5.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/README.md +7 -7
- package/cjs/components/Autocomplete/Autocomplete.d.ts +6 -23
- package/cjs/components/Autocomplete/Autocomplete.js +49 -46
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +2 -0
- package/cjs/components/Button/Button.js +29 -1
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.d.ts +6 -0
- package/cjs/components/Button/Button.styles.js +107 -75
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Calendar/Calendar.d.ts +2 -0
- package/cjs/components/Calendar/Calendar.js +1 -0
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +2 -0
- package/cjs/components/Center/Center.js +1 -0
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +2 -12
- package/cjs/components/Checkbox/Checkbox.js +2 -14
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
- package/cjs/components/ComboBox/ComboBox.js +1 -0
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -24
- package/cjs/components/CurrencyInput/CurrencyInput.js +5 -28
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/constants.js +1 -2
- package/cjs/components/CurrencyInput/constants.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -28
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +2 -0
- package/cjs/components/DateInput/DateInput.js +1 -0
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +6 -33
- package/cjs/components/DatePicker/DatePicker.js +6 -60
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +2 -47
- package/cjs/components/Dropdown/Dropdown.js +2 -82
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +4 -2
- package/cjs/components/DropdownMenu/DropdownMenu.js +1 -0
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +2 -5
- package/cjs/components/FxInput/FxInput.js +2 -7
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +2 -15
- package/cjs/components/Gapped/Gapped.js +1 -24
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +1 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Group/Group.d.ts +5 -4
- package/cjs/components/Group/Group.js +91 -40
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Group/Group.styles.d.ts +1 -0
- package/cjs/components/Group/Group.styles.js +12 -6
- package/cjs/components/Group/Group.styles.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +2 -0
- package/cjs/components/Hint/Hint.js +1 -0
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +2 -0
- package/cjs/components/Input/Input.js +1 -0
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +2 -1
- package/cjs/components/Kebab/Kebab.js +2 -26
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +2 -0
- package/cjs/components/Link/Link.js +1 -0
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +6 -36
- package/cjs/components/Loader/Loader.js +3 -57
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -0
- package/cjs/components/MaskedInput/MaskedInput.js +17 -1
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +2 -12
- package/cjs/components/MenuItem/MenuItem.js +2 -22
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
- package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
- package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
- package/cjs/components/MiniModal/MiniModalBody.js +17 -2
- package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.d.ts +1 -0
- package/cjs/components/Modal/Modal.styles.js +36 -28
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +2 -0
- package/cjs/components/Modal/ModalBody.js +1 -0
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +5 -0
- package/cjs/components/Modal/ModalHeader.js +8 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Paging/DotsIcon.d.ts +3 -0
- package/cjs/components/Paging/DotsIcon.js +13 -0
- package/cjs/components/Paging/DotsIcon.js.map +1 -0
- package/cjs/components/Paging/ForwardIcon.d.ts +3 -0
- package/cjs/components/Paging/ForwardIcon.js +13 -1
- package/cjs/components/Paging/ForwardIcon.js.map +1 -1
- package/cjs/components/Paging/NavigationHelper.d.ts +3 -2
- package/cjs/components/Paging/NavigationHelper.js +8 -6
- package/cjs/components/Paging/NavigationHelper.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +13 -2
- package/cjs/components/Paging/Paging.js +120 -50
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.styles.d.ts +24 -1
- package/cjs/components/Paging/Paging.styles.js +151 -22
- package/cjs/components/Paging/Paging.styles.js.map +1 -1
- package/cjs/components/Paging/PagingHelper.d.ts +1 -1
- package/cjs/components/Paging/PagingHelper.js +18 -11
- package/cjs/components/Paging/PagingHelper.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -7
- package/cjs/components/PasswordInput/PasswordInput.js +2 -11
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +2 -0
- package/cjs/components/Radio/Radio.js +1 -0
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/cjs/components/RadioGroup/RadioGroup.js +1 -0
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +2 -9
- package/cjs/components/ScrollContainer/ScrollContainer.js +2 -11
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +2 -0
- package/cjs/components/Select/Select.js +2 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.styles.d.ts +3 -1
- package/cjs/components/SidePage/SidePage.styles.js +52 -38
- package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.d.ts +2 -0
- package/cjs/components/SidePage/SidePageBody.js +1 -0
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.d.ts +2 -0
- package/cjs/components/SidePage/SidePageContainer.js +1 -0
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +2 -0
- package/cjs/components/SidePage/SidePageFooter.js +1 -0
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +12 -2
- package/cjs/components/SidePage/SidePageHeader.js +60 -19
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +2 -18
- package/cjs/components/Spinner/Spinner.js +2 -32
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +2 -13
- package/cjs/components/Sticky/Sticky.js +2 -22
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +6 -21
- package/cjs/components/Switcher/Switcher.js +11 -20
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
- package/cjs/components/Switcher/Switcher.styles.js +17 -9
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Tabs/Indicator.d.ts +2 -0
- package/cjs/components/Tabs/Indicator.js +1 -0
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +2 -0
- package/cjs/components/Tabs/Tab.js +1 -0
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +2 -0
- package/cjs/components/Tabs/Tabs.js +1 -0
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +2 -44
- package/cjs/components/Textarea/Textarea.js +2 -56
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/TextareaCounter.js +2 -13
- package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +2 -0
- package/cjs/components/Toast/Toast.js +1 -0
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.d.ts +2 -14
- package/cjs/components/Toast/ToastView.js +3 -22
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +2 -10
- package/cjs/components/Toggle/Toggle.js +1 -11
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +2 -0
- package/cjs/components/Token/Token.js +1 -0
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
- package/cjs/components/TokenInput/TokenInput.js +1 -0
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +14 -9
- package/cjs/components/Tooltip/Tooltip.js +95 -13
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.styles.d.ts +7 -1
- package/cjs/components/Tooltip/Tooltip.styles.js +50 -12
- package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js +1 -0
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js +1 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/ComponentTable.js +2 -3
- package/cjs/internal/ComponentTable.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
- package/cjs/internal/DateSelect/DateSelect.js +1 -18
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.d.ts +2 -0
- package/cjs/internal/FocusTrap/FocusTrap.js +1 -0
- package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +1 -0
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +2 -0
- package/cjs/internal/Menu/Menu.js +1 -0
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +1 -0
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +41 -59
- package/cjs/internal/Popup/Popup.js +36 -79
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.d.ts +23 -33
- package/cjs/internal/Popup/PopupPin.js +2 -35
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/Popup/PopupPinNew.d.ts +31 -0
- package/cjs/internal/Popup/PopupPinNew.js +180 -0
- package/cjs/internal/Popup/PopupPinNew.js.map +1 -0
- package/cjs/internal/Popup/PopupPinNew.styles.d.ts +7 -0
- package/cjs/internal/Popup/PopupPinNew.styles.js +33 -0
- package/cjs/internal/Popup/PopupPinNew.styles.js.map +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +2 -0
- package/cjs/internal/PopupMenu/PopupMenu.js +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -3
- package/cjs/internal/RenderLayer/RenderLayer.js +3 -12
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +1 -1
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.styles.js +5 -8
- package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
- package/cjs/internal/ThemePlayground/ShowcaseGroup.js +12 -1
- package/cjs/internal/ThemePlayground/ShowcaseGroup.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +3 -3
- package/cjs/internal/ZIndex/ZIndex.js +5 -1
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js +16 -0
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -0
- package/cjs/internal/themes/BasicTheme.d.ts +112 -20
- package/cjs/internal/themes/BasicTheme.js +149 -18
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_2.js +1 -1
- package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
- package/cjs/internal/themes/DarkTheme5_3.js +13 -0
- package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
- package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
- package/cjs/internal/themes/LightTheme5_3.js +13 -0
- package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
- package/cjs/lib/delay.mts +3 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +11 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/forwardRefAndName.d.ts +1 -1
- package/cjs/lib/forwardRefAndName.js +0 -1
- package/cjs/lib/forwardRefAndName.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -1
- package/cjs/lib/rootNode/rootNodeDecorator.js +1 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
- package/cjs/lib/theming/ThemeVersions.js.map +1 -1
- package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
- package/cjs/lib/theming/themes/DarkTheme.js +4 -2
- package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
- package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
- package/cjs/lib/theming/themes/LightTheme.js +4 -2
- package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
- package/cjs/lib/utils.d.ts +4 -0
- package/cjs/lib/utils.js +5 -1
- package/cjs/lib/utils.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +49 -45
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +6 -23
- package/components/Button/Button/Button.js +26 -5
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +2 -0
- package/components/Button/Button.styles/Button.styles.js +78 -60
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +6 -0
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +2 -0
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +2 -0
- package/components/Checkbox/Checkbox/Checkbox.js +0 -11
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +2 -12
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +2 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +12 -36
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +6 -24
- package/components/CurrencyInput/constants/constants.js +0 -1
- package/components/CurrencyInput/constants/constants.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +2 -0
- package/components/DatePicker/DatePicker/DatePicker.js +1 -32
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +6 -33
- package/components/Dropdown/Dropdown/Dropdown.js +1 -47
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +2 -47
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +4 -2
- package/components/FxInput/FxInput/FxInput.js +1 -5
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +2 -5
- package/components/Gapped/Gapped/Gapped.js +1 -15
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +2 -15
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/components/Group/Group/Group.js +64 -28
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +5 -4
- package/components/Group/Group.styles/Group.styles.js +9 -6
- package/components/Group/Group.styles/Group.styles.js.map +1 -1
- package/components/Group/Group.styles.d.ts +1 -0
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +2 -0
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +2 -0
- package/components/Kebab/Kebab/Kebab.js +2 -20
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +2 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +2 -0
- package/components/Loader/Loader/Loader.js +0 -33
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +6 -36
- package/components/MaskedInput/MaskedInput/MaskedInput.js +14 -0
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +1 -0
- package/components/MenuItem/MenuItem/MenuItem.js +1 -12
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +2 -12
- package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
- package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
- package/components/MiniModal/MiniModal.styles.d.ts +1 -0
- package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
- package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
- package/components/Modal/Modal.styles/Modal.styles.js +31 -28
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +1 -0
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +2 -0
- package/components/Modal/ModalHeader/ModalHeader.js +3 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +5 -0
- package/components/Paging/DotsIcon/DotsIcon.js +14 -0
- package/components/Paging/DotsIcon/DotsIcon.js.map +1 -0
- package/components/Paging/DotsIcon/package.json +6 -0
- package/components/Paging/DotsIcon.d.ts +3 -0
- package/components/Paging/ForwardIcon/ForwardIcon.js +15 -1
- package/components/Paging/ForwardIcon/ForwardIcon.js.map +1 -1
- package/components/Paging/ForwardIcon.d.ts +3 -0
- package/components/Paging/NavigationHelper/NavigationHelper.js +9 -8
- package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
- package/components/Paging/NavigationHelper.d.ts +3 -2
- package/components/Paging/Paging/Paging.js +96 -47
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +13 -2
- package/components/Paging/Paging.styles/Paging.styles.js +77 -16
- package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
- package/components/Paging/Paging.styles.d.ts +24 -1
- package/components/Paging/PagingHelper/PagingHelper.js +16 -8
- package/components/Paging/PagingHelper/PagingHelper.js.map +1 -1
- package/components/Paging/PagingHelper.d.ts +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +2 -7
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +2 -0
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +2 -9
- package/components/Select/Select/Select.js +2 -2
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +2 -0
- package/components/SidePage/SidePage.styles/SidePage.styles.js +41 -35
- package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
- package/components/SidePage/SidePage.styles.d.ts +3 -1
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +2 -0
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageContainer.d.ts +2 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +2 -0
- package/components/SidePage/SidePageHeader/SidePageHeader.js +61 -39
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +12 -2
- package/components/Spinner/Spinner/Spinner.js +1 -18
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +2 -18
- package/components/Sticky/Sticky/Sticky.js +1 -13
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +2 -13
- package/components/Switcher/Switcher/Switcher.js +19 -16
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +6 -21
- package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Switcher/Switcher.styles.d.ts +1 -0
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Indicator.d.ts +2 -0
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +2 -0
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +2 -0
- package/components/Textarea/Textarea/Textarea.js +1 -44
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +2 -44
- package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
- package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +2 -0
- package/components/Toast/ToastView/ToastView.js +3 -17
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.d.ts +2 -14
- package/components/Toggle/Toggle/Toggle.js +1 -10
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +2 -10
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +2 -0
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +2 -0
- package/components/Tooltip/Tooltip/Tooltip.js +67 -20
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +14 -9
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +22 -4
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
- package/components/Tooltip/Tooltip.styles.d.ts +7 -1
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +4 -2
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
- package/internal/ComponentTable/ComponentTable.js +0 -2
- package/internal/ComponentTable/ComponentTable.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
- package/internal/DateSelect/DateSelect/DateSelect.js +1 -10
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +0 -10
- package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/FocusTrap/FocusTrap.d.ts +2 -0
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +2 -0
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +2 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +2 -0
- package/internal/Popup/Popup/Popup.js +14 -64
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +41 -59
- package/internal/Popup/PopupPin/PopupPin.js +1 -34
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/Popup/PopupPin.d.ts +23 -33
- package/internal/Popup/PopupPinNew/PopupPinNew.js +146 -0
- package/internal/Popup/PopupPinNew/PopupPinNew.js.map +1 -0
- package/internal/Popup/PopupPinNew/package.json +6 -0
- package/internal/Popup/PopupPinNew.d.ts +31 -0
- package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js +20 -0
- package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js.map +1 -0
- package/internal/Popup/PopupPinNew.styles/package.json +6 -0
- package/internal/Popup/PopupPinNew.styles.d.ts +7 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +2 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +2 -3
- package/internal/ThemePlayground/Playground/Playground.js +4 -3
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/Playground.styles/Playground.styles.js +4 -4
- package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
- package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js +6 -1
- package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +3 -3
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js +21 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js.map +1 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/package.json +6 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
- package/internal/themes/BasicTheme/BasicTheme.js +170 -26
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +112 -20
- package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
- package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
- package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
- package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
- package/internal/themes/DarkTheme5_3/package.json +6 -0
- package/internal/themes/DarkTheme5_3.d.ts +1 -0
- package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
- package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
- package/internal/themes/LightTheme5_3/package.json +6 -0
- package/internal/themes/LightTheme5_3.d.ts +1 -0
- package/lib/delay.d.mts +1 -0
- package/lib/delay.mts +3 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
- package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
- package/lib/forwardRefAndName.d.ts +1 -1
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
- package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
- package/lib/theming/ThemeVersions.d.ts +1 -1
- package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
- package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/lib/theming/themes/DarkTheme.d.ts +1 -0
- package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
- package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
- package/lib/theming/themes/LightTheme.d.ts +1 -0
- package/lib/utils/utils.js +2 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +4 -0
- package/package.json +10 -13
- package/cjs/lib/SSRSafe.d.ts +0 -2
- package/cjs/lib/SSRSafe.js +0 -5
- package/cjs/lib/SSRSafe.js.map +0 -1
- package/lib/SSRSafe/SSRSafe.js +0 -4
- package/lib/SSRSafe/SSRSafe.js.map +0 -1
- package/lib/SSRSafe/package.json +0 -6
- package/lib/SSRSafe.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","CommonWrapper","ThemeContext","responsiveLayout","cx","rootNode","styles","SidePageContext","SidePageBodyDataTids","root","SidePageBody","_class","_SidePageBody","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","_inheritsLoose","_proto","prototype","componentDidUpdate","updateLayout","render","_this2","createElement","Consumer","theme","_cx","_extends","rootNodeRef","setRootNode","props","className","body","mobileBody","isMobileLayout","children","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["SidePageBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\n\nexport interface SidePageBodyProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nexport const SidePageBodyDataTids = {\n root: 'SidePageBody__root',\n} as const;\n/**\n * Тело для сайдпейджа\n *\n * @visibleName SidePage.Body\n */\n@responsiveLayout\n@rootNode\nexport class SidePageBody extends React.Component<SidePageBodyProps> {\n public static __KONTUR_REACT_UI__ = 'SidePageBody';\n public static displayName = 'SidePageBody';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate() {\n this.context.updateLayout();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageBodyDataTids.root}\n className={cx(styles.body(theme), { [styles.mobileBody()]: this.isMobileLayout })}\n >\n {this.props.children}\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n}\n"],"mappings":"0JAAA,OAAOA,KAAK,MAAM,OAAO;;;AAGzB,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C,SAASC,MAAM,QAAQ,mBAAmB;;AAE1C,SAASC,eAAe,QAAQ,mBAAmB;;;;;;AAMnD,OAAO,IAAMC,oBAAoB,GAAG;EAClCC,IAAI,EAAE;AACR,CAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEaC,YAAY,GAFxBP,gBAAgB,CAAAQ,MAAA,GAChBN,QAAQ,CAAAM,MAAA,IAAAC,aAAA,0BAAAC,gBAAA,YAAAH,aAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;IAMAU,OAAO,GAAwBV,KAAA,CAAKU,OAAO,QAAAV,KAAA,EAAAW,cAAA,CAAAf,YAAA,EAAAG,gBAAA,MAAAa,MAAA,GAAAhB,YAAA,CAAAiB,SAAA,CAAAD,MAAA
|
|
1
|
+
{"version":3,"names":["React","CommonWrapper","ThemeContext","responsiveLayout","cx","rootNode","styles","SidePageContext","SidePageBodyDataTids","root","SidePageBody","_class","_SidePageBody","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","_inheritsLoose","_proto","prototype","componentDidUpdate","updateLayout","render","_this2","createElement","Consumer","theme","_cx","_extends","rootNodeRef","setRootNode","props","className","body","mobileBody","isMobileLayout","children","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["SidePageBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\n\nexport interface SidePageBodyProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nexport const SidePageBodyDataTids = {\n root: 'SidePageBody__root',\n} as const;\n/**\n * Тело для сайдпейджа\n *\n * @visibleName SidePage.Body\n */\n@responsiveLayout\n@rootNode\nexport class SidePageBody extends React.Component<SidePageBodyProps> {\n public static __KONTUR_REACT_UI__ = 'SidePageBody';\n public static displayName = 'SidePageBody';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate() {\n this.context.updateLayout();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageBodyDataTids.root}\n className={cx(styles.body(theme), { [styles.mobileBody()]: this.isMobileLayout })}\n >\n {this.props.children}\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n}\n"],"mappings":"0JAAA,OAAOA,KAAK,MAAM,OAAO;;;AAGzB,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C,SAASC,MAAM,QAAQ,mBAAmB;;AAE1C,SAASC,eAAe,QAAQ,mBAAmB;;;;;;AAMnD,OAAO,IAAMC,oBAAoB,GAAG;EAClCC,IAAI,EAAE;AACR,CAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEaC,YAAY,GAFxBP,gBAAgB,CAAAQ,MAAA,GAChBN,QAAQ,CAAAM,MAAA,IAAAC,aAAA,0BAAAC,gBAAA,YAAAH,aAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;IAMAU,OAAO,GAAwBV,KAAA,CAAKU,OAAO,QAAAV,KAAA,EAAAW,cAAA,CAAAf,YAAA,EAAAG,gBAAA,MAAAa,MAAA,GAAAhB,YAAA,CAAAiB,SAAA,CAAAD,MAAA;;;;;EAK3CE,kBAAkB,GAAzB,SAAAA,mBAAA,EAA4B;IAC1B,IAAI,CAACJ,OAAO,CAACK,YAAY,CAAC,CAAC;EAC7B,CAAC,CAAAH,MAAA;;EAEMI,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA;IACd;MACE/B,KAAA,CAAAgC,aAAA,CAAC9B,YAAY,CAAC+B,QAAQ;MACnB,UAACC,KAAK,EAAK,KAAAC,GAAA;QACV;UACEnC,KAAA,CAAAgC,aAAA,CAAC/B,aAAa,EAAAmC,QAAA,GAACC,WAAW,EAAEN,MAAI,CAACO,WAAY,IAAKP,MAAI,CAACQ,KAAK;UAC1DvC,KAAA,CAAAgC,aAAA;YACE,YAAUxB,oBAAoB,CAACC,IAAK;YACpC+B,SAAS,EAAEpC,EAAE,CAACE,MAAM,CAACmC,IAAI,CAACP,KAAK,CAAC,GAAAC,GAAA,OAAAA,GAAA,CAAK7B,MAAM,CAACoC,UAAU,CAAC,CAAC,IAAGX,MAAI,CAACY,cAAc,EAAAR,GAAA,CAAE,CAAE;;UAEjFJ,MAAI,CAACQ,KAAK,CAACK;UACT;UACQ,CAAC;;MAEpB;MACqB,CAAC;;EAE5B,CAAC,QAAAlC,YAAA,GA/B+BV,KAAK,CAAC6C,SAAS,GAAAjC,aAAA,CACjCkC,mBAAmB,GAAG,cAAc,EAAAlC,aAAA,CACpCmC,WAAW,GAAG,cAAc,EAAAnC,aAAA,CAE5BoC,WAAW,GAAGzC,eAAe,EAAAK,aAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
3
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
3
4
|
import type { SidePageContextType } from './SidePageContext';
|
|
4
5
|
export interface SidePageBodyProps extends CommonProps {
|
|
5
6
|
children?: React.ReactNode;
|
|
@@ -18,6 +19,7 @@ export declare class SidePageBody extends React.Component<SidePageBodyProps> {
|
|
|
18
19
|
static contextType: React.Context<SidePageContextType>;
|
|
19
20
|
context: SidePageContextType;
|
|
20
21
|
private isMobileLayout;
|
|
22
|
+
getRootNode: TGetRootNode;
|
|
21
23
|
private setRootNode;
|
|
22
24
|
componentDidUpdate(): void;
|
|
23
25
|
render(): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ThemeContext","CommonWrapper","cx","responsiveLayout","rootNode","styles","SidePageContext","SidePageContainerDataTids","root","SidePageContainer","_class","_SidePageContainer","_React$Component","apply","arguments","_inheritsLoose","_proto","prototype","render","_this","createElement","Consumer","theme","renderMain","_this2","_ref","_cx","hasHeader","hasFooter","hasPanel","_extends","rootNodeRef","setRootNode","props","className","container","containerWithoutHeader","containerWithoutFooter","containerWithPanel","mobileContainer","isMobileLayout","mobileContainerWithoutHeader","children","Component","__KONTUR_REACT_UI__","displayName"],"sources":["SidePageContainer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { styles } from './SidePage.styles';\nimport { SidePageContext } from './SidePageContext';\n\nexport type SidePageContainerProps = CommonProps;\n\nexport const SidePageContainerDataTids = {\n root: 'SidePageContainer__root',\n} as const;\n\n/**\n * Контейнер с отступами\n *\n * @visibleName SidePage.Container\n */\n@responsiveLayout\n@rootNode\nexport class SidePageContainer extends React.Component<SidePageContainerProps> {\n public static __KONTUR_REACT_UI__ = 'SidePageContainer';\n public static displayName = 'SidePageContainer';\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n return (\n <SidePageContext.Consumer>\n {({ hasHeader, hasFooter, hasPanel }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageContainerDataTids.root}\n className={cx({\n [styles.container(this.theme)]: true,\n [styles.containerWithoutHeader(this.theme)]: !hasHeader,\n [styles.containerWithoutFooter(this.theme)]: !hasFooter,\n [styles.containerWithPanel(this.theme)]: hasPanel,\n [styles.mobileContainer(this.theme)]: this.isMobileLayout,\n [styles.mobileContainerWithoutHeader(this.theme)]: this.isMobileLayout && !hasHeader,\n })}\n >\n {this.props.children}\n </div>\n </CommonWrapper>\n )}\n </SidePageContext.Consumer>\n );\n }\n}\n"],"mappings":"+JAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB,SAASC,YAAY,QAAQ,gCAAgC;;AAE7D,SAASC,aAAa,QAAQ,8BAA8B;;AAE5D,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,SAASC,gBAAgB,QAAQ,+BAA+B;;AAEhE,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,eAAe,QAAQ,mBAAmB;;;;AAInD,OAAO,IAAMC,yBAAyB,GAAG;EACvCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;;AAEaC,iBAAiB,GAF7BN,gBAAgB,CAAAO,MAAA,GAChBN,QAAQ,CAAAM,MAAA,IAAAC,kBAAA,0BAAAC,gBAAA,YAAAH,kBAAA,UAAAG,gBAAA,CAAAC,KAAA,OAAAC,SAAA,WAAAC,cAAA,CAAAN,iBAAA,EAAAG,gBAAA,MAAAI,MAAA,GAAAP,iBAAA,CAAAQ,SAAA,CAAAD,MAAA
|
|
1
|
+
{"version":3,"names":["React","ThemeContext","CommonWrapper","cx","responsiveLayout","rootNode","styles","SidePageContext","SidePageContainerDataTids","root","SidePageContainer","_class","_SidePageContainer","_React$Component","apply","arguments","_inheritsLoose","_proto","prototype","render","_this","createElement","Consumer","theme","renderMain","_this2","_ref","_cx","hasHeader","hasFooter","hasPanel","_extends","rootNodeRef","setRootNode","props","className","container","containerWithoutHeader","containerWithoutFooter","containerWithPanel","mobileContainer","isMobileLayout","mobileContainerWithoutHeader","children","Component","__KONTUR_REACT_UI__","displayName"],"sources":["SidePageContainer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { styles } from './SidePage.styles';\nimport { SidePageContext } from './SidePageContext';\n\nexport type SidePageContainerProps = CommonProps;\n\nexport const SidePageContainerDataTids = {\n root: 'SidePageContainer__root',\n} as const;\n\n/**\n * Контейнер с отступами\n *\n * @visibleName SidePage.Container\n */\n@responsiveLayout\n@rootNode\nexport class SidePageContainer extends React.Component<SidePageContainerProps> {\n public static __KONTUR_REACT_UI__ = 'SidePageContainer';\n public static displayName = 'SidePageContainer';\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n return (\n <SidePageContext.Consumer>\n {({ hasHeader, hasFooter, hasPanel }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageContainerDataTids.root}\n className={cx({\n [styles.container(this.theme)]: true,\n [styles.containerWithoutHeader(this.theme)]: !hasHeader,\n [styles.containerWithoutFooter(this.theme)]: !hasFooter,\n [styles.containerWithPanel(this.theme)]: hasPanel,\n [styles.mobileContainer(this.theme)]: this.isMobileLayout,\n [styles.mobileContainerWithoutHeader(this.theme)]: this.isMobileLayout && !hasHeader,\n })}\n >\n {this.props.children}\n </div>\n </CommonWrapper>\n )}\n </SidePageContext.Consumer>\n );\n }\n}\n"],"mappings":"+JAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB,SAASC,YAAY,QAAQ,gCAAgC;;AAE7D,SAASC,aAAa,QAAQ,8BAA8B;;AAE5D,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,SAASC,gBAAgB,QAAQ,+BAA+B;;AAEhE,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,eAAe,QAAQ,mBAAmB;;;;AAInD,OAAO,IAAMC,yBAAyB,GAAG;EACvCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;;AAEaC,iBAAiB,GAF7BN,gBAAgB,CAAAO,MAAA,GAChBN,QAAQ,CAAAM,MAAA,IAAAC,kBAAA,0BAAAC,gBAAA,YAAAH,kBAAA,UAAAG,gBAAA,CAAAC,KAAA,OAAAC,SAAA,WAAAC,cAAA,CAAAN,iBAAA,EAAAG,gBAAA,MAAAI,MAAA,GAAAP,iBAAA,CAAAQ,SAAA,CAAAD,MAAA;;;;;;;;;EAUAE,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,KAAA;IACd;MACEpB,KAAA,CAAAqB,aAAA,CAACpB,YAAY,CAACqB,QAAQ;MACnB,UAACC,KAAK,EAAK;QACVH,KAAI,CAACG,KAAK,GAAGA,KAAK;QAClB,OAAOH,KAAI,CAACI,UAAU,CAAC,CAAC;MAC1B;MACqB,CAAC;;EAE5B,CAAC,CAAAP,MAAA;;EAEMO,UAAU,GAAjB,SAAAA,WAAA,EAAoB,KAAAC,MAAA;IAClB;MACEzB,KAAA,CAAAqB,aAAA,CAACd,eAAe,CAACe,QAAQ;MACtB,UAAAI,IAAA,OAAAC,GAAA,KAAGC,SAAS,GAAAF,IAAA,CAATE,SAAS,CAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS,CAAEC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;UAChC9B,KAAA,CAAAqB,aAAA,CAACnB,aAAa,EAAA6B,QAAA,GAACC,WAAW,EAAEP,MAAI,CAACQ,WAAY,IAAKR,MAAI,CAACS,KAAK;UAC1DlC,KAAA,CAAAqB,aAAA;YACE,YAAUb,yBAAyB,CAACC,IAAK;YACzC0B,SAAS,EAAEhC,EAAE,EAAAwB,GAAA,OAAAA,GAAA;YACVrB,MAAM,CAAC8B,SAAS,CAACX,MAAI,CAACF,KAAK,CAAC,IAAG,IAAI,EAAAI,GAAA;YACnCrB,MAAM,CAAC+B,sBAAsB,CAACZ,MAAI,CAACF,KAAK,CAAC,IAAG,CAACK,SAAS,EAAAD,GAAA;YACtDrB,MAAM,CAACgC,sBAAsB,CAACb,MAAI,CAACF,KAAK,CAAC,IAAG,CAACM,SAAS,EAAAF,GAAA;YACtDrB,MAAM,CAACiC,kBAAkB,CAACd,MAAI,CAACF,KAAK,CAAC,IAAGO,QAAQ,EAAAH,GAAA;YAChDrB,MAAM,CAACkC,eAAe,CAACf,MAAI,CAACF,KAAK,CAAC,IAAGE,MAAI,CAACgB,cAAc,EAAAd,GAAA;YACxDrB,MAAM,CAACoC,4BAA4B,CAACjB,MAAI,CAACF,KAAK,CAAC,IAAGE,MAAI,CAACgB,cAAc,IAAI,CAACb,SAAS,EAAAD,GAAA;YACrF,CAAE;;UAEFF,MAAI,CAACS,KAAK,CAACS;UACT;UACQ,CAAC;;MAEM,CAAC;;EAE/B,CAAC,QAAAjC,iBAAA,GA1CoCV,KAAK,CAAC4C,SAAS,GAAAhC,kBAAA,CACtCiC,mBAAmB,GAAG,mBAAmB,EAAAjC,kBAAA,CACzCkC,WAAW,GAAG,mBAAmB,EAAAlC,kBAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
3
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
3
4
|
export type SidePageContainerProps = CommonProps;
|
|
4
5
|
export declare const SidePageContainerDataTids: {
|
|
5
6
|
readonly root: "SidePageContainer__root";
|
|
@@ -14,6 +15,7 @@ export declare class SidePageContainer extends React.Component<SidePageContainer
|
|
|
14
15
|
static displayName: string;
|
|
15
16
|
private theme;
|
|
16
17
|
private isMobileLayout;
|
|
18
|
+
getRootNode: TGetRootNode;
|
|
17
19
|
private setRootNode;
|
|
18
20
|
render(): React.JSX.Element;
|
|
19
21
|
renderMain(): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","LayoutEvents","ThemeContext","CommonWrapper","cx","responsiveLayout","getRootNode","rootNode","getDOMRect","Gapped","isNonNullable","ModalSeparator","styles","SidePageContext","SidePageFooterDataTids","root","SidePageFooter","_class","_SidePageFooter","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","fixed","content","layoutSub","update","setProperStyles","refContent","node","wrapper","wrapperRect","contentRect","top","setState","_inheritsLoose","_proto","prototype","componentDidMount","_this$context$setHasF","_this$context","_this$context$setHasP","_this$context2","footerRef","addListener","setHasFooter","setHasPanel","props","panel","componentDidUpdate","prevProps","_this$context$setHasP2","_this$context3","componentWillUnmount","_this$context$setHasF2","_this$context4","_this$context$setHasP3","_this$context5","remove","getSticky","sticky","isMobileLayout","render","_this2","createElement","Consumer","theme","renderMain","_this3","separator","_extends","rootNodeRef","setRootNode","style","height","getContentHeight","className","footerWrapper","_ref","_cx","_cx2","getWidth","footer","positionStatic","width","footerContent","footerFixed","panelFixed","mobileFooterContent","ref","gap","vertical","children","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["SidePageFooter.tsx"],"sourcesContent":["import React from 'react';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { GappedProps } from '../Gapped';\nimport { Gapped } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\n\nexport interface SidePageFooterProps extends Omit<CommonProps, 'children'> {\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n\n /** Включает серый цвет в футере. */\n panel?: boolean;\n\n /** Закрепляет футер снизу сайдпейджа. */\n sticky?: boolean;\n\n /** Задает расстояние между элементами футера в пикселях. */\n gap?: GappedProps['gap'];\n}\n\ninterface SidePageFooterState {\n fixed: boolean;\n}\n\nexport const SidePageFooterDataTids = {\n root: 'SidePageFooter__root',\n} as const;\n\n/**\n * Футер сайдпейджа.\n *\n * @visibleName SidePage.Footer\n */\n@responsiveLayout\n@rootNode\nexport class SidePageFooter extends React.Component<React.PropsWithChildren<SidePageFooterProps>> {\n public static __KONTUR_REACT_UI__ = 'SidePageFooter';\n public static displayName = 'SidePageFooter';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n private isMobileLayout!: boolean;\n\n public state: SidePageFooterState = {\n fixed: false,\n };\n\n private theme!: Theme;\n private content: HTMLElement | null = null;\n private layoutSub: ReturnType<typeof LayoutEvents.addListener> | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.context.footerRef(this);\n this.update();\n this.layoutSub = LayoutEvents.addListener(this.update);\n this.context.setHasFooter?.();\n this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentDidUpdate(prevProps: Readonly<SidePageFooterProps>) {\n this.props.panel !== prevProps.panel && this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentWillUnmount() {\n this.context.footerRef(null);\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n this.context.setHasFooter?.(false);\n this.context.setHasPanel?.(false);\n }\n\n public getSticky() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public update = () => {\n this.setProperStyles();\n };\n\n private renderMain() {\n const separator: React.ReactNode = (this.props.panel || this.state.fixed) && (\n <ModalSeparator fixed={this.state.fixed} />\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageFooterDataTids.root}\n style={{ height: this.getContentHeight() }}\n className={styles.footerWrapper()}\n >\n <SidePageContext.Consumer>\n {({ getWidth }) => (\n <div\n className={cx(styles.footer(this.theme), {\n [styles.positionStatic()]: !this.getSticky(),\n })}\n style={{\n width: getWidth(),\n }}\n >\n {separator}\n <div\n className={cx(styles.footerContent(this.theme), {\n [styles.footerFixed(this.theme)]: this.state.fixed,\n [styles.panel(this.theme)]: !!this.props.panel,\n [styles.panelFixed(this.theme)]: !!this.props.panel && this.state.fixed,\n [styles.mobileFooterContent(this.theme)]: this.isMobileLayout,\n })}\n ref={this.refContent}\n >\n {isNonNullable(this.props.gap) ? (\n <Gapped vertical={this.isMobileLayout} gap={this.props.gap}>\n {this.props.children}\n </Gapped>\n ) : (\n this.props.children\n )}\n </div>\n </div>\n )}\n </SidePageContext.Consumer>\n </div>\n </CommonWrapper>\n );\n }\n\n private refContent = (node: HTMLElement | null) => {\n this.content = node;\n };\n\n private setProperStyles = () => {\n const wrapper = getRootNode(this);\n if (wrapper && this.content) {\n const wrapperRect = getDOMRect(wrapper);\n const contentRect = getDOMRect(this.content);\n const fixed = wrapperRect.top > contentRect.top;\n this.setState({ fixed });\n }\n };\n\n private getContentHeight() {\n if (!this.content) {\n return 'auto';\n }\n return getDOMRect(this.content).height;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","LayoutEvents","ThemeContext","CommonWrapper","cx","responsiveLayout","getRootNode","rootNode","getDOMRect","Gapped","isNonNullable","ModalSeparator","styles","SidePageContext","SidePageFooterDataTids","root","SidePageFooter","_class","_SidePageFooter","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","fixed","content","layoutSub","update","setProperStyles","refContent","node","wrapper","wrapperRect","contentRect","top","setState","_inheritsLoose","_proto","prototype","componentDidMount","_this$context$setHasF","_this$context","_this$context$setHasP","_this$context2","footerRef","addListener","setHasFooter","setHasPanel","props","panel","componentDidUpdate","prevProps","_this$context$setHasP2","_this$context3","componentWillUnmount","_this$context$setHasF2","_this$context4","_this$context$setHasP3","_this$context5","remove","getSticky","sticky","isMobileLayout","render","_this2","createElement","Consumer","theme","renderMain","_this3","separator","_extends","rootNodeRef","setRootNode","style","height","getContentHeight","className","footerWrapper","_ref","_cx","_cx2","getWidth","footer","positionStatic","width","footerContent","footerFixed","panelFixed","mobileFooterContent","ref","gap","vertical","children","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["SidePageFooter.tsx"],"sourcesContent":["import React from 'react';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { GappedProps } from '../Gapped';\nimport { Gapped } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\n\nexport interface SidePageFooterProps extends Omit<CommonProps, 'children'> {\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n\n /** Включает серый цвет в футере. */\n panel?: boolean;\n\n /** Закрепляет футер снизу сайдпейджа. */\n sticky?: boolean;\n\n /** Задает расстояние между элементами футера в пикселях. */\n gap?: GappedProps['gap'];\n}\n\ninterface SidePageFooterState {\n fixed: boolean;\n}\n\nexport const SidePageFooterDataTids = {\n root: 'SidePageFooter__root',\n} as const;\n\n/**\n * Футер сайдпейджа.\n *\n * @visibleName SidePage.Footer\n */\n@responsiveLayout\n@rootNode\nexport class SidePageFooter extends React.Component<React.PropsWithChildren<SidePageFooterProps>> {\n public static __KONTUR_REACT_UI__ = 'SidePageFooter';\n public static displayName = 'SidePageFooter';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n private isMobileLayout!: boolean;\n\n public state: SidePageFooterState = {\n fixed: false,\n };\n\n private theme!: Theme;\n private content: HTMLElement | null = null;\n private layoutSub: ReturnType<typeof LayoutEvents.addListener> | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.context.footerRef(this);\n this.update();\n this.layoutSub = LayoutEvents.addListener(this.update);\n this.context.setHasFooter?.();\n this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentDidUpdate(prevProps: Readonly<SidePageFooterProps>) {\n this.props.panel !== prevProps.panel && this.context.setHasPanel?.(this.props.panel);\n }\n\n public componentWillUnmount() {\n this.context.footerRef(null);\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n this.context.setHasFooter?.(false);\n this.context.setHasPanel?.(false);\n }\n\n public getSticky() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public update = () => {\n this.setProperStyles();\n };\n\n private renderMain() {\n const separator: React.ReactNode = (this.props.panel || this.state.fixed) && (\n <ModalSeparator fixed={this.state.fixed} />\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageFooterDataTids.root}\n style={{ height: this.getContentHeight() }}\n className={styles.footerWrapper()}\n >\n <SidePageContext.Consumer>\n {({ getWidth }) => (\n <div\n className={cx(styles.footer(this.theme), {\n [styles.positionStatic()]: !this.getSticky(),\n })}\n style={{\n width: getWidth(),\n }}\n >\n {separator}\n <div\n className={cx(styles.footerContent(this.theme), {\n [styles.footerFixed(this.theme)]: this.state.fixed,\n [styles.panel(this.theme)]: !!this.props.panel,\n [styles.panelFixed(this.theme)]: !!this.props.panel && this.state.fixed,\n [styles.mobileFooterContent(this.theme)]: this.isMobileLayout,\n })}\n ref={this.refContent}\n >\n {isNonNullable(this.props.gap) ? (\n <Gapped vertical={this.isMobileLayout} gap={this.props.gap}>\n {this.props.children}\n </Gapped>\n ) : (\n this.props.children\n )}\n </div>\n </div>\n )}\n </SidePageContext.Consumer>\n </div>\n </CommonWrapper>\n );\n }\n\n private refContent = (node: HTMLElement | null) => {\n this.content = node;\n };\n\n private setProperStyles = () => {\n const wrapper = getRootNode(this);\n if (wrapper && this.content) {\n const wrapperRect = getDOMRect(wrapper);\n const contentRect = getDOMRect(this.content);\n const fixed = wrapperRect.top > contentRect.top;\n this.setState({ fixed });\n }\n };\n\n private getContentHeight() {\n if (!this.content) {\n return 'auto';\n }\n return getDOMRect(this.content).height;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
3
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
3
4
|
import type { GappedProps } from '../Gapped';
|
|
4
5
|
import type { SidePageContextType } from './SidePageContext';
|
|
5
6
|
export interface SidePageFooterProps extends Omit<CommonProps, 'children'> {
|
|
@@ -33,6 +34,7 @@ export declare class SidePageFooter extends React.Component<React.PropsWithChild
|
|
|
33
34
|
private theme;
|
|
34
35
|
private content;
|
|
35
36
|
private layoutSub;
|
|
37
|
+
getRootNode: TGetRootNode;
|
|
36
38
|
private setRootNode;
|
|
37
39
|
componentDidMount(): void;
|
|
38
40
|
componentDidUpdate(prevProps: Readonly<SidePageFooterProps>): void;
|
|
@@ -3,18 +3,18 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
|
3
3
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
4
4
|
var _class, _SidePageHeader;
|
|
5
5
|
import React from 'react';
|
|
6
|
-
import
|
|
6
|
+
import throttle from 'lodash.throttle';
|
|
7
7
|
import { Sticky } from "../../Sticky";
|
|
8
8
|
import { isFunction } from "../../../lib/utils";
|
|
9
9
|
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
10
10
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
11
11
|
import { cx } from "../../../lib/theming/Emotion";
|
|
12
12
|
import { responsiveLayout } from "../../ResponsiveLayout/decorator";
|
|
13
|
-
import { rootNode } from "../../../lib/rootNode";
|
|
13
|
+
import { getRootNode, rootNode } from "../../../lib/rootNode";
|
|
14
14
|
import { getDOMRect } from "../../../lib/dom/getDOMRect";
|
|
15
15
|
import { ModalSeparator } from "../../Modal/ModalSeparator";
|
|
16
16
|
import { isThemeGTE } from "../../../lib/theming/ThemeHelpers";
|
|
17
|
-
import { ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
|
|
17
|
+
import { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
|
|
18
18
|
import { styles } from "../SidePage.styles";
|
|
19
19
|
import { SidePageContext } from "../SidePageContext";
|
|
20
20
|
import { SidePageCloseButton } from "../SidePageCloseButton";
|
|
@@ -37,28 +37,42 @@ export var SidePageHeader = responsiveLayout(_class = rootNode(_class = (_SidePa
|
|
|
37
37
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
38
38
|
_this.context = _this.context;
|
|
39
39
|
_this.state = {
|
|
40
|
-
|
|
40
|
+
isNativeStuck: true,
|
|
41
|
+
isReadyToStuck: false
|
|
41
42
|
};
|
|
42
43
|
_this.wrapper = null;
|
|
43
44
|
_this.sticky = null;
|
|
44
45
|
_this.lastRegularHeight = 0;
|
|
45
46
|
_this.componentDidMount = function () {
|
|
46
|
-
|
|
47
|
+
var _getRootNode;
|
|
48
|
+
(_getRootNode = getRootNode(_this)) == null || (_getRootNode = _getRootNode.parentNode) == null || _getRootNode.addEventListener == null || _getRootNode.addEventListener('scroll', _this.throttleHandleScroll, true);
|
|
47
49
|
_this.context.setHasHeader == null || _this.context.setHasHeader();
|
|
48
50
|
_this.context.headerRef(_this);
|
|
49
51
|
};
|
|
50
52
|
_this.componentWillUnmount = function () {
|
|
51
|
-
|
|
53
|
+
var _getRootNode2;
|
|
54
|
+
(_getRootNode2 = getRootNode(_this)) == null || (_getRootNode2 = _getRootNode2.parentNode) == null || _getRootNode2.removeEventListener == null || _getRootNode2.removeEventListener('scroll', _this.throttleHandleScroll, true);
|
|
52
55
|
_this.context.setHasHeader == null || _this.context.setHasHeader(false);
|
|
53
56
|
_this.context.headerRef(null);
|
|
54
57
|
};
|
|
58
|
+
_this.throttleHandleScroll = throttle(function (event) {
|
|
59
|
+
var target = event.currentTarget;
|
|
60
|
+
if (target && typeof target.scrollTop === 'number') {
|
|
61
|
+
_this.setState({
|
|
62
|
+
isNativeStuck: target.scrollTop === 0
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
_this.update();
|
|
66
|
+
}, 5);
|
|
55
67
|
_this.update = function () {
|
|
56
68
|
var _this$sticky;
|
|
57
69
|
(_this$sticky = _this.sticky) == null || _this$sticky.reflow();
|
|
58
|
-
_this.
|
|
70
|
+
if (!_this.featureFlags.sidePageDisableHeaderShrink) {
|
|
71
|
+
_this.updateReadyToStuck();
|
|
72
|
+
}
|
|
59
73
|
};
|
|
60
74
|
_this.renderHeader = function (fixed) {
|
|
61
|
-
var _cx, _cx2;
|
|
75
|
+
var _cx, _this$props$cutTitleO, _cx2;
|
|
62
76
|
if (fixed === void 0) {
|
|
63
77
|
fixed = false;
|
|
64
78
|
}
|
|
@@ -66,10 +80,10 @@ export var SidePageHeader = responsiveLayout(_class = rootNode(_class = (_SidePa
|
|
|
66
80
|
return /*#__PURE__*/(
|
|
67
81
|
React.createElement("div", null, /*#__PURE__*/
|
|
68
82
|
React.createElement("div", {
|
|
69
|
-
className: cx(styles.header(_this.theme), (_cx = {}, _cx[styles.headerFixed(_this.theme)] = fixed, _cx[styles.mobileHeader(_this.theme)] = _this.isMobileLayout, _cx))
|
|
83
|
+
className: cx(styles.header(_this.theme), (_cx = {}, _cx[styles.headerFixed(_this.theme)] = fixed, _cx[styles.headerShrink(_this.theme)] = fixed && !_this.featureFlags.sidePageDisableHeaderShrink, _cx[styles.mobileHeader(_this.theme)] = _this.isMobileLayout, _cx))
|
|
70
84
|
}, _this.renderClose(fixed), /*#__PURE__*/
|
|
71
85
|
React.createElement("div", {
|
|
72
|
-
className: cx(styles.title(_this.theme), (_cx2 = {}, _cx2[styles.title5_1(_this.theme)] = isThemeGTE(_this.theme, '5.1'), _cx2[styles.mobileTitle(_this.theme)] = _this.isMobileLayout, _cx2[styles.
|
|
86
|
+
className: cx(styles.title(_this.theme), (_cx2 = {}, _cx2[styles.title5_1(_this.theme)] = isThemeGTE(_this.theme, '5.1'), _cx2[styles.mobileTitle(_this.theme)] = _this.isMobileLayout, _cx2[styles.titleCut()] = fixed && ((_this$props$cutTitleO = _this.props.cutTitleOnStuck) != null ? _this$props$cutTitleO : !_this.featureFlags.sidePageNotCutTitleOnStuckByDefault), _cx2))
|
|
73
87
|
}, isFunction(_this.props.children) ? _this.props.children(fixed) : _this.props.children)), isDisplayed && /*#__PURE__*/React.createElement(ModalSeparator, {
|
|
74
88
|
fixed: fixed
|
|
75
89
|
}))
|
|
@@ -81,29 +95,29 @@ export var SidePageHeader = responsiveLayout(_class = rootNode(_class = (_SidePa
|
|
|
81
95
|
var versionGTE5_1 = isThemeGTE(_this.theme, '5.1');
|
|
82
96
|
return /*#__PURE__*/(
|
|
83
97
|
React.createElement("div", {
|
|
84
|
-
className: cx(styles.wrapperClose(_this.theme), (_cx3 = {}, _cx3[styles.wrapperClose5_1(_this.theme)] = versionGTE5_1, _cx3[styles.wrapperCloseFixed(_this.theme)] = fixed, _cx3[styles.wrapperCloseFixed5_1(_this.theme)] = fixed && versionGTE5_1, _cx3[styles.mobileWrapperClose(_this.theme)] = _this.isMobileLayout, _cx3[styles.mobileWrapperClose5_1(_this.theme)] = _this.isMobileLayout && versionGTE5_1, _cx3))
|
|
85
|
-
}, _this.isMobileLayout ? /*#__PURE__*/
|
|
86
|
-
React.createElement(SidePageCloseButton, {
|
|
87
|
-
isHeaderFixed: fixed,
|
|
88
|
-
isMobile: true
|
|
89
|
-
}) : /*#__PURE__*/
|
|
90
|
-
|
|
98
|
+
className: cx(styles.wrapperClose(_this.theme), (_cx3 = {}, _cx3[styles.wrapperClose5_1(_this.theme)] = versionGTE5_1, _cx3[styles.wrapperCloseFixed(_this.theme)] = fixed && !_this.featureFlags.sidePageDisableHeaderShrink, _cx3[styles.wrapperCloseFixed5_1(_this.theme)] = fixed && versionGTE5_1 && !_this.featureFlags.sidePageDisableHeaderShrink, _cx3[styles.mobileWrapperClose(_this.theme)] = _this.isMobileLayout, _cx3[styles.mobileWrapperClose5_1(_this.theme)] = _this.isMobileLayout && versionGTE5_1, _cx3))
|
|
99
|
+
}, !(_this.isMobileLayout || _this.featureFlags.sidePageDisableHeaderShrink) ? /*#__PURE__*/
|
|
91
100
|
React.createElement(Sticky, {
|
|
92
101
|
side: "top",
|
|
93
102
|
offset: stickyOffset
|
|
94
103
|
}, /*#__PURE__*/
|
|
95
104
|
React.createElement(SidePageCloseButton, {
|
|
96
105
|
isHeaderFixed: fixed
|
|
97
|
-
}))
|
|
106
|
+
})) : /*#__PURE__*/
|
|
107
|
+
|
|
108
|
+
React.createElement(SidePageCloseButton, {
|
|
109
|
+
isHeaderFixed: fixed,
|
|
110
|
+
isMobile: _this.isMobileLayout
|
|
111
|
+
}))
|
|
98
112
|
);
|
|
99
113
|
};
|
|
100
|
-
_this.
|
|
114
|
+
_this.updateReadyToStuck = function () {
|
|
101
115
|
if (_this.wrapper) {
|
|
102
116
|
var wrapperScrolledUp = getDOMRect(_this.wrapper).top;
|
|
103
|
-
var
|
|
117
|
+
var isReadyToStuck = _this.regularHeight + wrapperScrolledUp <= _this.fixedHeaderHeight;
|
|
104
118
|
_this.setState(function (state) {
|
|
105
|
-
return state.
|
|
106
|
-
|
|
119
|
+
return state.isReadyToStuck !== isReadyToStuck ? _extends({}, state, {
|
|
120
|
+
isReadyToStuck: isReadyToStuck
|
|
107
121
|
}) : state;
|
|
108
122
|
});
|
|
109
123
|
}
|
|
@@ -135,33 +149,41 @@ export var SidePageHeader = responsiveLayout(_class = rootNode(_class = (_SidePa
|
|
|
135
149
|
return true;
|
|
136
150
|
};
|
|
137
151
|
_proto.renderMain = function renderMain() {
|
|
138
|
-
var
|
|
139
|
-
var
|
|
152
|
+
var _this3 = this;
|
|
153
|
+
var isReadyToStuck = this.state.isReadyToStuck;
|
|
154
|
+
var isStickyDesktop = !this.isMobileLayout && this.getStickyProp();
|
|
140
155
|
var isStickyMobile = this.isMobileLayout && this.getStickyProp();
|
|
141
156
|
var header = this.renderHeader;
|
|
142
|
-
return /*#__PURE__*/React.createElement(
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
className: styles.headerWrapper()
|
|
148
|
-
}, /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Provider, {
|
|
149
|
-
value: {
|
|
150
|
-
stickyReduceLayoutEvents: true
|
|
157
|
+
return /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Consumer, null, function (flags) {
|
|
158
|
+
var _cx4;
|
|
159
|
+
_this3.featureFlags = getFullReactUIFlagsContext(flags);
|
|
160
|
+
if (!_this3.featureFlags.sidePageDisableHeaderShrink) {
|
|
161
|
+
isStickyDesktop = isStickyDesktop && isReadyToStuck;
|
|
151
162
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
163
|
+
return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
|
|
164
|
+
rootNodeRef: _this3.setRootNode
|
|
165
|
+
}, _this3.props), /*#__PURE__*/React.createElement("div", {
|
|
166
|
+
"data-tid": SidePageHeaderDataTids.root,
|
|
167
|
+
ref: _this3.wrapperRef,
|
|
168
|
+
className: cx(styles.headerWrapper(), (_cx4 = {}, _cx4[styles.headerNativeStuck(_this3.theme)] = _this3.state.isNativeStuck, _cx4))
|
|
169
|
+
}, /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Provider, {
|
|
170
|
+
value: {
|
|
171
|
+
stickyReduceLayoutEvents: true
|
|
172
|
+
}
|
|
173
|
+
}, !_this3.state.isNativeStuck && (isStickyDesktop || isStickyMobile) ? /*#__PURE__*/React.createElement(Sticky, {
|
|
174
|
+
ref: _this3.stickyRef,
|
|
175
|
+
side: "top"
|
|
176
|
+
}, header) : header())));
|
|
177
|
+
});
|
|
156
178
|
};
|
|
157
179
|
return _createClass(SidePageHeader, [{
|
|
158
180
|
key: "regularHeight",
|
|
159
181
|
get: function get() {
|
|
160
|
-
var
|
|
182
|
+
var isReadyToStuck = this.state.isReadyToStuck;
|
|
161
183
|
if (!this.wrapper) {
|
|
162
184
|
return 0;
|
|
163
185
|
}
|
|
164
|
-
if (!
|
|
186
|
+
if (!isReadyToStuck) {
|
|
165
187
|
this.lastRegularHeight = getDOMRect(this.wrapper).height;
|
|
166
188
|
}
|
|
167
189
|
return this.lastRegularHeight;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","globalObject","Sticky","isFunction","ThemeContext","CommonWrapper","cx","responsiveLayout","rootNode","getDOMRect","ModalSeparator","isThemeGTE","ReactUIFeatureFlagsContext","styles","SidePageContext","SidePageCloseButton","SidePageHeaderDataTids","root","close","SidePageHeader","_class","_SidePageHeader","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","isReadyToFix","wrapper","sticky","lastRegularHeight","componentDidMount","addEventListener","update","setHasHeader","headerRef","componentWillUnmount","removeEventListener","_this$sticky","reflow","updateReadyToFix","renderHeader","fixed","_cx","_cx2","isDisplayed","props","hasSeparator","createElement","className","header","theme","headerFixed","mobileHeader","isMobileLayout","renderClose","title","title5_1","mobileTitle","titleFixed","children","_cx3","stickyOffset","parseInt","sidePageHeaderStickyOffset","versionGTE5_1","wrapperClose","wrapperClose5_1","wrapperCloseFixed","wrapperCloseFixed5_1","mobileWrapperClose","mobileWrapperClose5_1","isHeaderFixed","isMobile","side","offset","wrapperScrolledUp","top","regularHeight","fixedHeaderHeight","setState","_extends","wrapperRef","el","stickyRef","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","getStickyProp","isStickyDesktop","isStickyMobile","rootNodeRef","setRootNode","ref","headerWrapper","Provider","value","stickyReduceLayoutEvents","_createClass","key","get","height","sidePageHeaderFixedLineHeight","sidePageHeaderFixedPaddingY","Component","__KONTUR_REACT_UI__","displayName","contextType","defaultProps"],"sources":["SidePageHeader.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Sticky } from '../Sticky';\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageCloseButton } from './SidePageCloseButton';\n\nexport interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n /** Закрепляет хедер сверху сайдпейджа. */\n sticky?: boolean;\n\n /** Определяет, нужно ли показывать ModalSeparator. */\n hasSeparator?: boolean;\n}\n\nexport interface SidePageHeaderState {\n isReadyToFix: boolean;\n}\n\nexport const SidePageHeaderDataTids = {\n root: 'SidePageHeader__root',\n close: 'SidePage__close',\n} as const;\n\n/**\n * Шапка сайдпейджа\n *\n * @visibleName SidePage.Header\n */\n@responsiveLayout\n@rootNode\nexport class SidePageHeader extends React.Component<SidePageHeaderProps, SidePageHeaderState> {\n public static __KONTUR_REACT_UI__ = 'SidePageHeader';\n public static displayName = 'SidePageHeader';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n\n private isMobileLayout!: boolean;\n\n public state: SidePageHeaderState = {\n isReadyToFix: false,\n };\n\n public static defaultProps: Partial<SidePageHeaderProps> = {\n hasSeparator: false,\n };\n\n private theme!: Theme;\n private wrapper: HTMLElement | null = null;\n private sticky: Sticky | null = null;\n private lastRegularHeight = 0;\n private setRootNode!: TSetRootNode;\n public get regularHeight(): number {\n const { isReadyToFix } = this.state;\n if (!this.wrapper) {\n return 0;\n }\n if (!isReadyToFix) {\n this.lastRegularHeight = getDOMRect(this.wrapper).height;\n }\n return this.lastRegularHeight;\n }\n\n public get fixedHeaderHeight(): number {\n const { theme } = this;\n return parseInt(theme.sidePageHeaderFixedLineHeight) + parseInt(theme.sidePageHeaderFixedPaddingY) * 2;\n }\n\n public componentDidMount = () => {\n globalObject.addEventListener?.('scroll', this.update, true);\n this.context.setHasHeader?.();\n this.context.headerRef(this);\n };\n\n public componentWillUnmount = () => {\n globalObject.removeEventListener?.('scroll', this.update, true);\n this.context.setHasHeader?.(false);\n this.context.headerRef(null);\n };\n\n public update = () => {\n this.sticky?.reflow();\n this.updateReadyToFix();\n };\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getStickyProp() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n private renderMain() {\n const { isReadyToFix } = this.state;\n\n const isStickyDesktop = !this.isMobileLayout && this.getStickyProp() && isReadyToFix;\n const isStickyMobile = this.isMobileLayout && this.getStickyProp();\n\n const header = this.renderHeader;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SidePageHeaderDataTids.root} ref={this.wrapperRef} className={styles.headerWrapper()}>\n <ReactUIFeatureFlagsContext.Provider value={{ stickyReduceLayoutEvents: true }}>\n {isStickyDesktop || isStickyMobile ? (\n <Sticky ref={this.stickyRef} side=\"top\">\n {header}\n </Sticky>\n ) : (\n header()\n )}\n </ReactUIFeatureFlagsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = (fixed = false) => {\n const isDisplayed = this.props.hasSeparator || fixed;\n return (\n <div>\n <div\n className={cx(styles.header(this.theme), {\n [styles.headerFixed(this.theme)]: fixed,\n [styles.mobileHeader(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.renderClose(fixed)}\n <div\n className={cx(styles.title(this.theme), {\n [styles.title5_1(this.theme)]: isThemeGTE(this.theme, '5.1'),\n [styles.mobileTitle(this.theme)]: this.isMobileLayout,\n [styles.titleFixed()]: fixed,\n })}\n >\n {isFunction(this.props.children) ? this.props.children(fixed) : this.props.children}\n </div>\n </div>\n {isDisplayed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n private renderClose = (fixed: boolean) => {\n const stickyOffset = parseInt(this.theme.sidePageHeaderStickyOffset);\n const versionGTE5_1 = isThemeGTE(this.theme, '5.1');\n return (\n <div\n className={cx(styles.wrapperClose(this.theme), {\n [styles.wrapperClose5_1(this.theme)]: versionGTE5_1,\n [styles.wrapperCloseFixed(this.theme)]: fixed,\n [styles.wrapperCloseFixed5_1(this.theme)]: fixed && versionGTE5_1,\n [styles.mobileWrapperClose(this.theme)]: this.isMobileLayout,\n [styles.mobileWrapperClose5_1(this.theme)]: this.isMobileLayout && versionGTE5_1,\n })}\n >\n {this.isMobileLayout ? (\n <SidePageCloseButton isHeaderFixed={fixed} isMobile />\n ) : (\n <Sticky side=\"top\" offset={stickyOffset}>\n <SidePageCloseButton isHeaderFixed={fixed} />\n </Sticky>\n )}\n </div>\n );\n };\n\n private updateReadyToFix = () => {\n if (this.wrapper) {\n const wrapperScrolledUp = getDOMRect(this.wrapper).top;\n const isReadyToFix = this.regularHeight + wrapperScrolledUp <= this.fixedHeaderHeight;\n this.setState((state) => (state.isReadyToFix !== isReadyToFix ? { ...state, isReadyToFix } : state));\n }\n };\n\n private wrapperRef = (el: HTMLElement | null) => {\n this.wrapper = el;\n };\n\n private stickyRef = (el: Sticky | null) => {\n this.sticky = el;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","throttle","Sticky","isFunction","ThemeContext","CommonWrapper","cx","responsiveLayout","getRootNode","rootNode","getDOMRect","ModalSeparator","isThemeGTE","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","styles","SidePageContext","SidePageCloseButton","SidePageHeaderDataTids","root","close","SidePageHeader","_class","_SidePageHeader","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","isNativeStuck","isReadyToStuck","wrapper","sticky","lastRegularHeight","componentDidMount","_getRootNode","parentNode","addEventListener","throttleHandleScroll","setHasHeader","headerRef","componentWillUnmount","_getRootNode2","removeEventListener","event","target","currentTarget","scrollTop","setState","update","_this$sticky","reflow","featureFlags","sidePageDisableHeaderShrink","updateReadyToStuck","renderHeader","fixed","_cx","_this$props$cutTitleO","_cx2","isDisplayed","props","hasSeparator","createElement","className","header","theme","headerFixed","headerShrink","mobileHeader","isMobileLayout","renderClose","title","title5_1","mobileTitle","titleCut","cutTitleOnStuck","sidePageNotCutTitleOnStuckByDefault","children","_cx3","stickyOffset","parseInt","sidePageHeaderStickyOffset","versionGTE5_1","wrapperClose","wrapperClose5_1","wrapperCloseFixed","wrapperCloseFixed5_1","mobileWrapperClose","mobileWrapperClose5_1","side","offset","isHeaderFixed","isMobile","wrapperScrolledUp","top","regularHeight","fixedHeaderHeight","_extends","wrapperRef","el","stickyRef","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","getStickyProp","_this3","isStickyDesktop","isStickyMobile","flags","_cx4","rootNodeRef","setRootNode","ref","headerWrapper","headerNativeStuck","Provider","value","stickyReduceLayoutEvents","_createClass","key","get","height","sidePageHeaderFixedLineHeight","sidePageHeaderFixedPaddingY","Component","__KONTUR_REACT_UI__","displayName","contextType","defaultProps"],"sources":["SidePageHeader.tsx"],"sourcesContent":["import React from 'react';\nimport throttle from 'lodash.throttle';\n\nimport { Sticky } from '../Sticky';\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './SidePage.styles';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageCloseButton } from './SidePageCloseButton';\n\nexport interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n /** Закрепляет хедер сверху сайдпейджа. */\n sticky?: boolean;\n\n /** Определяет, нужно ли показывать ModalSeparator. */\n hasSeparator?: boolean;\n\n /**\n * Обрезает длинный заголовок при «залипании» шапки.\n * @default true. Если включить флаг sidePageNotCutTitleOnStuckByDefault, дефолтное значение - false\n */\n cutTitleOnStuck?: boolean;\n}\n\nexport interface SidePageHeaderState {\n isNativeStuck: boolean;\n isReadyToStuck: boolean;\n}\n\nexport const SidePageHeaderDataTids = {\n root: 'SidePageHeader__root',\n close: 'SidePage__close',\n} as const;\n\n/**\n * Шапка сайдпейджа\n *\n * @visibleName SidePage.Header\n */\n@responsiveLayout\n@rootNode\nexport class SidePageHeader extends React.Component<SidePageHeaderProps, SidePageHeaderState> {\n public static __KONTUR_REACT_UI__ = 'SidePageHeader';\n public static displayName = 'SidePageHeader';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n\n private isMobileLayout!: boolean;\n\n public state: SidePageHeaderState = {\n isNativeStuck: true,\n isReadyToStuck: false,\n };\n\n public static defaultProps: Partial<SidePageHeaderProps> = {\n hasSeparator: false,\n };\n\n private theme!: Theme;\n private wrapper: HTMLElement | null = null;\n private sticky: Sticky | null = null;\n private lastRegularHeight = 0;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private featureFlags!: ReactUIFeatureFlags;\n public get regularHeight(): number {\n const { isReadyToStuck } = this.state;\n if (!this.wrapper) {\n return 0;\n }\n if (!isReadyToStuck) {\n this.lastRegularHeight = getDOMRect(this.wrapper).height;\n }\n return this.lastRegularHeight;\n }\n\n public get fixedHeaderHeight(): number {\n const { theme } = this;\n return parseInt(theme.sidePageHeaderFixedLineHeight) + parseInt(theme.sidePageHeaderFixedPaddingY) * 2;\n }\n\n public componentDidMount = () => {\n getRootNode(this)?.parentNode?.addEventListener?.('scroll', this.throttleHandleScroll, true);\n this.context.setHasHeader?.();\n this.context.headerRef(this);\n };\n\n public componentWillUnmount = () => {\n getRootNode(this)?.parentNode?.removeEventListener?.('scroll', this.throttleHandleScroll, true);\n this.context.setHasHeader?.(false);\n this.context.headerRef(null);\n };\n\n private throttleHandleScroll = throttle((event: Event) => {\n const target = event.currentTarget as HTMLElement;\n if (target && typeof target.scrollTop === 'number') {\n this.setState({ isNativeStuck: target.scrollTop === 0 });\n }\n this.update();\n }, 5);\n\n public update = () => {\n this.sticky?.reflow();\n if (!this.featureFlags.sidePageDisableHeaderShrink) {\n this.updateReadyToStuck();\n }\n };\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getStickyProp() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n private renderMain() {\n const { isReadyToStuck } = this.state;\n\n let isStickyDesktop = !this.isMobileLayout && this.getStickyProp();\n const isStickyMobile = this.isMobileLayout && this.getStickyProp();\n\n const header = this.renderHeader;\n\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n if (!this.featureFlags.sidePageDisableHeaderShrink) {\n isStickyDesktop = isStickyDesktop && isReadyToStuck;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={SidePageHeaderDataTids.root}\n ref={this.wrapperRef}\n className={cx(styles.headerWrapper(), {\n [styles.headerNativeStuck(this.theme)]: this.state.isNativeStuck,\n })}\n >\n <ReactUIFeatureFlagsContext.Provider value={{ stickyReduceLayoutEvents: true }}>\n {!this.state.isNativeStuck && (isStickyDesktop || isStickyMobile) ? (\n <Sticky ref={this.stickyRef} side=\"top\">\n {header}\n </Sticky>\n ) : (\n header()\n )}\n </ReactUIFeatureFlagsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n private renderHeader = (fixed = false) => {\n const isDisplayed = this.props.hasSeparator || fixed;\n return (\n <div>\n <div\n className={cx(styles.header(this.theme), {\n [styles.headerFixed(this.theme)]: fixed,\n [styles.headerShrink(this.theme)]: fixed && !this.featureFlags.sidePageDisableHeaderShrink,\n [styles.mobileHeader(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.renderClose(fixed)}\n <div\n className={cx(styles.title(this.theme), {\n [styles.title5_1(this.theme)]: isThemeGTE(this.theme, '5.1'),\n [styles.mobileTitle(this.theme)]: this.isMobileLayout,\n [styles.titleCut()]:\n fixed && (this.props.cutTitleOnStuck ?? !this.featureFlags.sidePageNotCutTitleOnStuckByDefault),\n })}\n >\n {isFunction(this.props.children) ? this.props.children(fixed) : this.props.children}\n </div>\n </div>\n {isDisplayed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n private renderClose = (fixed: boolean) => {\n const stickyOffset = parseInt(this.theme.sidePageHeaderStickyOffset);\n const versionGTE5_1 = isThemeGTE(this.theme, '5.1');\n return (\n <div\n className={cx(styles.wrapperClose(this.theme), {\n [styles.wrapperClose5_1(this.theme)]: versionGTE5_1,\n [styles.wrapperCloseFixed(this.theme)]: fixed && !this.featureFlags.sidePageDisableHeaderShrink,\n [styles.wrapperCloseFixed5_1(this.theme)]:\n fixed && versionGTE5_1 && !this.featureFlags.sidePageDisableHeaderShrink,\n [styles.mobileWrapperClose(this.theme)]: this.isMobileLayout,\n [styles.mobileWrapperClose5_1(this.theme)]: this.isMobileLayout && versionGTE5_1,\n })}\n >\n {!(this.isMobileLayout || this.featureFlags.sidePageDisableHeaderShrink) ? (\n <Sticky side=\"top\" offset={stickyOffset}>\n <SidePageCloseButton isHeaderFixed={fixed} />\n </Sticky>\n ) : (\n <SidePageCloseButton isHeaderFixed={fixed} isMobile={this.isMobileLayout} />\n )}\n </div>\n );\n };\n\n private updateReadyToStuck = () => {\n if (this.wrapper) {\n const wrapperScrolledUp = getDOMRect(this.wrapper).top;\n const isReadyToStuck = this.regularHeight + wrapperScrolledUp <= this.fixedHeaderHeight;\n this.setState((state) => (state.isReadyToStuck !== isReadyToStuck ? { ...state, isReadyToStuck } : state));\n }\n };\n\n private wrapperRef = (el: HTMLElement | null) => {\n this.wrapper = el;\n };\n\n private stickyRef = (el: Sticky | null) => {\n this.sticky = el;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
3
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
3
4
|
import type { SidePageContextType } from './SidePageContext';
|
|
4
5
|
export interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {
|
|
5
6
|
children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);
|
|
@@ -7,9 +8,15 @@ export interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {
|
|
|
7
8
|
sticky?: boolean;
|
|
8
9
|
/** Определяет, нужно ли показывать ModalSeparator. */
|
|
9
10
|
hasSeparator?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Обрезает длинный заголовок при «залипании» шапки.
|
|
13
|
+
* @default true. Если включить флаг sidePageNotCutTitleOnStuckByDefault, дефолтное значение - false
|
|
14
|
+
*/
|
|
15
|
+
cutTitleOnStuck?: boolean;
|
|
10
16
|
}
|
|
11
17
|
export interface SidePageHeaderState {
|
|
12
|
-
|
|
18
|
+
isNativeStuck: boolean;
|
|
19
|
+
isReadyToStuck: boolean;
|
|
13
20
|
}
|
|
14
21
|
export declare const SidePageHeaderDataTids: {
|
|
15
22
|
readonly root: "SidePageHeader__root";
|
|
@@ -32,18 +39,21 @@ export declare class SidePageHeader extends React.Component<SidePageHeaderProps,
|
|
|
32
39
|
private wrapper;
|
|
33
40
|
private sticky;
|
|
34
41
|
private lastRegularHeight;
|
|
42
|
+
getRootNode: TGetRootNode;
|
|
35
43
|
private setRootNode;
|
|
44
|
+
private featureFlags;
|
|
36
45
|
get regularHeight(): number;
|
|
37
46
|
get fixedHeaderHeight(): number;
|
|
38
47
|
componentDidMount: () => void;
|
|
39
48
|
componentWillUnmount: () => void;
|
|
49
|
+
private throttleHandleScroll;
|
|
40
50
|
update: () => void;
|
|
41
51
|
render(): JSX.Element;
|
|
42
52
|
getStickyProp(): boolean;
|
|
43
53
|
private renderMain;
|
|
44
54
|
private renderHeader;
|
|
45
55
|
private renderClose;
|
|
46
|
-
private
|
|
56
|
+
private updateReadyToStuck;
|
|
47
57
|
private wrapperRef;
|
|
48
58
|
private stickyRef;
|
|
49
59
|
}
|
|
@@ -2,7 +2,6 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
3
3
|
var _class, _Spinner;
|
|
4
4
|
import React from 'react';
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
6
5
|
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
7
6
|
import { SpinnerIcon } from "../../../internal/SpinnerIcon/SpinnerIcon";
|
|
8
7
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
@@ -79,23 +78,7 @@ export var Spinner = rootNode(_class = (_Spinner = /*#__PURE__*/function (_React
|
|
|
79
78
|
}, this.renderSpinner(type, dimmed, inline)), caption && this.renderCaption(type, caption)));
|
|
80
79
|
};
|
|
81
80
|
return Spinner;
|
|
82
|
-
}(React.Component), _Spinner.__KONTUR_REACT_UI__ = 'Spinner', _Spinner.displayName = 'Spinner', _Spinner.
|
|
83
|
-
/**
|
|
84
|
-
* Текст рядом с мини-лоадером.
|
|
85
|
-
*
|
|
86
|
-
* 'Загрузка' - значение по-умолчанию
|
|
87
|
-
*/
|
|
88
|
-
caption: PropTypes.node,
|
|
89
|
-
dimmed: PropTypes.bool,
|
|
90
|
-
/**
|
|
91
|
-
* Тип спиннера: mini, normal, big
|
|
92
|
-
*
|
|
93
|
-
* Значение по-умолчанию - normal
|
|
94
|
-
*
|
|
95
|
-
* Spinner.types - все доступные типы
|
|
96
|
-
*/
|
|
97
|
-
type: PropTypes.oneOf(types)
|
|
98
|
-
}, _Spinner.defaultProps = {
|
|
81
|
+
}(React.Component), _Spinner.__KONTUR_REACT_UI__ = 'Spinner', _Spinner.displayName = 'Spinner', _Spinner.defaultProps = {
|
|
99
82
|
type: 'normal'
|
|
100
83
|
}, _Spinner.Types = Object.assign.apply(Object, [{}].concat(types.map(function (type) {
|
|
101
84
|
var _ref;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","ThemeContext","SpinnerIcon","CommonWrapper","cx","rootNode","createPropsGetter","styles","types","SpinnerDataTids","root","Spinner","_class","_Spinner","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","renderSpinner","type","dimmed","inline","_cx","createElement","size","className","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","_this$props","_this$props$caption","_extends","rootNodeRef","setRootNode","spinner","inner","Component","__KONTUR_REACT_UI__","displayName","Types","Object","assign","map","_ref"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Spinner.styles';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /** Задает подпись под спиннером.\n * @default \"Загрузка\" */\n caption?: React.ReactNode;\n\n /** Переводит спиннер в \"затемнённый режим\".\n * Цвет спиннера в \"затемнённом режиме\" определяется переменной `spinnerDimmedColor`. */\n dimmed?: boolean;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: SpinnerType;\n\n /** Уменьшает спиннер для вставки в инлайн элемент. При type = \"big\"|\"normal\" размер спиннера уменьшается. */\n inline?: boolean;\n\n /** Задает толщину спиннера. */\n width?: number;\n\n /** Задает цвет спиннера. Не работает с пропом dimmed. */\n color?: React.CSSProperties['color'];\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n *\n * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.\n * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.\n *\n * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.\n */\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"],"mappings":"qJAAA,OAAOA,KAAK,MAAM,OAAO;;;AAGzB,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAASC,WAAW,QAAQ,wCAAwC;;AAEpE,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,iBAAiB,QAAQ,6BAA6B;;AAE/D,SAASC,MAAM,QAAQ,kBAAkB;;AAEzC,IAAMC,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BhD,OAAO,IAAMC,eAAe,GAAG;EAC7BC,IAAI,EAAE;AACR,CAAU;;;;AAIV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACaC,OAAO,GADnBN,QAAQ,CAAAO,MAAA,IAAAC,QAAA,0BAAAC,gBAAA,YAAAH,QAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;IASCU,QAAQ,GAAGnB,iBAAiB,CAACK,OAAO,CAACe,YAAY,CAAC,CAAAX,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgClDY,aAAa,GAAG,UAACC,IAAiB,EAAEC,MAAgB,EAAEC,MAAgB,EAAK,KAAAC,GAAA;MACjF;QACE/B,KAAA,CAAAgC,aAAA,CAAC9B,WAAW;UACV+B,IAAI,EAAEL,IAAK;UACXM,SAAS,EAAE9B,EAAE,EAAA2B,GAAA,OAAAA,GAAA;UACVxB,MAAM,CAAC4B,MAAM,CAACpB,KAAA,CAAKqB,KAAK,CAAC,IAAG,CAACP,MAAM,IAAI,CAACd,KAAA,CAAKsB,KAAK,CAACC,KAAK,EAAAP,GAAA;UACxDxB,MAAM,CAACgC,iBAAiB,CAACxB,KAAA,CAAKqB,KAAK,CAAC,IAAGP,MAAM,EAAAE,GAAA;UAC7CxB,MAAM,CAACiC,2BAA2B,CAAC,CAAC,IAAGX,MAAM,IAAI,CAAC,CAACd,KAAA,CAAKsB,KAAK,CAACC,KAAK,EAAAP,GAAA;UACrE,CAAE;UACHF,MAAM,EAAEA,MAAO;UACfY,KAAK,EAAE1B,KAAA,CAAKsB,KAAK,CAACI,KAAM;UACxBH,KAAK,EAAEvB,KAAA,CAAKsB,KAAK,CAACC,KAAM;UACxBR,MAAM,EAAEA,MAAO;QAChB,CAAC;;IAEN,CAAC,CAAAf,KAAA;;IAEO2B,aAAa,GAAG,UAACd,IAAiB,EAAEe,OAAwB;QAClE3C,KAAA,CAAAgC,aAAA,WAAME,SAAS,EAAE9B,EAAE,CAACG,MAAM,CAACqB,IAAI,CAAC,CAACb,KAAA,CAAKqB,KAAK,CAAC,EAAE7B,MAAM,CAACqC,YAAY,CAAC7B,KAAA,CAAKqB,KAAK,CAAC,CAAE,IAAEO,OAAc,CAAC,GACjG,QAAA5B,KAAA,EAAA8B,cAAA,CAAAlC,OAAA,EAAAG,gBAAA,MAAAgC,MAAA,GAAAnC,OAAA,CAAAoC,SAAA,CAAAD,MAAA,CA5CME,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACEjD,KAAA,CAAAgC,aAAA,CAAC/B,YAAY,CAACiD,QAAQ,QACnB,UAACd,KAAK,EAAK,CACVa,MAAI,CAACb,KAAK,GAAGA,KAAK,CAClB,OAAOa,MAAI,CAACE,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CAAC,CAAAL,MAAA,CAEOK,UAAU,GAAlB,SAAAA,WAAA,EAAqB,CACnB,IAAAC,WAAA,GAA2C,IAAI,CAACf,KAAK,CAAAgB,mBAAA,GAAAD,WAAA,CAA7CT,OAAO,CAAPA,OAAO,GAAAU,mBAAA,cAAG,IAAI,GAAAA,mBAAA,CAAExB,MAAM,GAAAuB,WAAA,CAANvB,MAAM,CAAEC,MAAM,GAAAsB,WAAA,CAANtB,MAAM,CACtC,IAAMF,IAAI,GAAG,IAAI,CAACH,QAAQ,CAAC,CAAC,CAACG,IAAI,CAEjC,oBACE5B,KAAA,CAAAgC,aAAA,CAAC7B,aAAa,EAAAmD,QAAA,GAACC,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACnB,KAAK,gBAC1DrC,KAAA,CAAAgC,aAAA,UAAK,YAAUvB,eAAe,CAACC,IAAK,EAACwB,SAAS,EAAE3B,MAAM,CAACkD,OAAO,CAAC,CAAE,iBAC/DzD,KAAA,CAAAgC,aAAA,WAAME,SAAS,EAAE3B,MAAM,CAACmD,KAAK,CAAC,CAAE,IAAE,IAAI,CAAC/B,aAAa,CAACC,IAAI,EAAEC,MAAM,EAAEC,MAAM,CAAQ,CAAC,EACjFa,OAAO,IAAI,IAAI,CAACD,aAAa,CAACd,IAAI,EAAEe,OAAO,CACzC,CACQ,CAAC,CAEpB,CAAC,QAAAhC,OAAA,GAtC0BX,KAAK,CAAC2D,SAAS,GAAA9C,QAAA,CAC5B+C,mBAAmB,GAAG,SAAS,EAAA/C,QAAA,CAC/BgD,WAAW,GAAG,SAAS,EAAAhD,QAAA,CAEvBa,YAAY,GAAiB,EACzCE,IAAI,EAAE,QAAQ,CAChB,CAAC,EAAAf,QAAA,CAIaiD,KAAK,GAAqCC,MAAM,CAACC,MAAM,CAAAzC,KAAA,CAAbwC,MAAM,GAAQ,CAAC,CAAC,EAAAvC,MAAA,CAAKhB,KAAK,CAACyD,GAAG,CAAC,UAACrC,IAAI,OAAAsC,IAAA,QAAAA,IAAA,OAAAA,IAAA,CAAStC,IAAI,IAAGA,IAAI,EAAAsC,IAAA,EAAG,CAAC,EAAC,EAAArD,QAAA,MAAAD,MAAA","ignoreList":[]}
|