@skbkontur/react-ui 4.3.0 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/cjs/components/Autocomplete/Autocomplete.js +3 -1
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +4 -2
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.js +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.js +10 -4
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js +14 -2
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.d.ts +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js +10 -1
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +1 -1
- package/cjs/components/DateInput/DateInput.js +1 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -2
- package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
- package/cjs/components/DateInput/helpers/SelectionHelpers.js +2 -2
- package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +1 -1
- package/cjs/components/DatePicker/DatePicker.js +11 -3
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/Picker.js +5 -1
- package/cjs/components/DatePicker/Picker.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +2 -1
- package/cjs/components/FileUploader/FileUploader.js +16 -3
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.md +8 -1
- package/cjs/components/FxInput/FxInput.js +3 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
- package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +1 -1
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Hint/Hint.md +14 -0
- package/cjs/components/Input/Input.js +5 -2
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.md +5 -1
- package/cjs/components/Input/Input.styles.d.ts +1 -0
- package/cjs/components/Input/Input.styles.js +17 -10
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +1 -4
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +1 -3
- package/cjs/components/Link/Link.js +1 -1
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +2 -1
- package/cjs/components/Loader/Loader.js +1 -0
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/Loader/__stories__/LoaderAndButton.js +6 -0
- package/cjs/components/Loader/__stories__/LoaderAndButton.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.js +3 -1
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Modal/Modal.js +2 -2
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.d.ts +2 -2
- package/cjs/components/Modal/Modal.styles.js +2 -2
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalBody.js +2 -2
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +1 -1
- package/cjs/components/Paging/Paging.js +1 -1
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/PagingDefaultComponent.d.ts +2 -2
- package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js +7 -5
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.js +3 -1
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +5 -9
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +2 -2
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
- package/cjs/components/ResponsiveLayout/decorator.d.ts +1 -1
- package/cjs/components/ResponsiveLayout/types.d.ts +9 -1
- package/cjs/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
- package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +31 -15
- package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +4 -4
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Item.d.ts +4 -2
- package/cjs/components/Select/Item.js +3 -0
- package/cjs/components/Select/Item.js.map +1 -1
- package/cjs/components/Select/Select.js +2 -0
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +6 -4
- package/cjs/components/SidePage/SidePageFooter.js +4 -0
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/Spinner/Spinner.js +1 -1
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Spinner/Spinner.styles.d.ts +1 -1
- package/cjs/components/Spinner/Spinner.styles.js +7 -7
- package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
- package/cjs/components/Tabs/Indicator.d.ts +1 -1
- package/cjs/components/Tabs/Indicator.js +1 -1
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.js +3 -1
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/TextareaCounter.d.ts +2 -2
- package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
- package/cjs/components/Toast/Toast.js +1 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Token/Token.styles.js +2 -1
- package/cjs/components/Token/Token.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +3 -0
- package/cjs/components/TokenInput/TokenInput.js +57 -15
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.md +26 -0
- package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
- package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.d.ts +2 -1
- package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +2 -2
- package/cjs/components/Tooltip/Tooltip.js +2 -2
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -2
- package/cjs/hooks/useEffectWithoutInitCall.js +2 -2
- package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -1
- package/cjs/hooks/useMemoObject.d.ts +2 -1
- package/cjs/hooks/useMemoObject.js +2 -0
- package/cjs/hooks/useMemoObject.js.map +1 -1
- package/cjs/internal/BGRuler.d.ts +1 -1
- package/cjs/internal/BGRuler.js.map +1 -1
- package/cjs/internal/Calendar/MonthViewModel.d.ts +1 -1
- package/cjs/internal/Calendar/config.d.ts +1 -8
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +5 -4
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/ComponentTable.d.ts +2 -2
- package/cjs/internal/ComponentTable.js +3 -1
- package/cjs/internal/ComponentTable.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -2
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +8 -8
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +4 -5
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/DataTids/DataTids.d.ts +5 -5
- package/cjs/internal/DataTids/DataTids.js +4 -0
- package/cjs/internal/DataTids/DataTids.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.js +1 -1
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +4 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.js +21 -9
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/MaskedInput/MaskedInput.d.ts +1 -0
- package/cjs/internal/MaskedInput/MaskedInput.js +13 -5
- package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/internal/Menu/Menu.js +7 -3
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +1 -1
- package/cjs/internal/Popup/Popup.js +20 -15
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.d.ts +1 -1
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.d.ts +1 -1
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
- package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js +7 -0
- package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
- package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js +2 -3
- package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
- package/cjs/internal/ThemePlayground/FxInputPlayground.js +5 -5
- package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/HintPlayground.d.ts +1 -1
- package/cjs/internal/ThemePlayground/HintPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
- package/cjs/internal/ThemePlayground/PagingPlayground.js +5 -2
- package/cjs/internal/ThemePlayground/PagingPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.d.ts +1 -1
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
- package/cjs/internal/ThemePlayground/SelectPlayground.js +6 -0
- package/cjs/internal/ThemePlayground/SelectPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -2
- package/cjs/internal/ThemePlayground/SizesGroup.js +2 -0
- package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
- package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
- package/cjs/internal/ThemePlayground/SwitcherPlayground.js +6 -1
- package/cjs/internal/ThemePlayground/SwitcherPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -4
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
- package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
- package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
- package/cjs/internal/ThemePlayground/TogglePlayground.js +4 -10
- package/cjs/internal/ThemePlayground/TogglePlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
- package/cjs/internal/ThemePlayground/TokenInputPlayground.js +3 -0
- package/cjs/internal/ThemePlayground/TokenInputPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/VariableValue.d.ts +1 -4
- package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
- package/cjs/internal/ThemePlayground/helpers.d.ts +1 -1
- package/cjs/internal/ThemePlayground/helpers.js +4 -2
- package/cjs/internal/ThemePlayground/helpers.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.js +2 -9
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +2 -0
- package/cjs/internal/themes/DefaultTheme.js +8 -2
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/ConditionalHandler.js.map +1 -1
- package/cjs/lib/InstanceWithAnchorElement.d.ts +1 -1
- package/cjs/lib/InstanceWithAnchorElement.js.map +1 -1
- package/cjs/lib/ModalStack.js +2 -2
- package/cjs/lib/ModalStack.js.map +1 -1
- package/cjs/lib/SSRSafe.d.ts +2 -1
- package/cjs/lib/SSRSafe.js +9 -1
- package/cjs/lib/SSRSafe.js.map +1 -1
- package/cjs/lib/animation/index.js +1 -0
- package/cjs/lib/animation/index.js.map +1 -1
- package/cjs/lib/callChildRef/callChildRef.js +1 -1
- package/cjs/lib/callChildRef/callChildRef.js.map +1 -1
- package/cjs/lib/createPropsGetter.d.ts +1 -1
- package/cjs/lib/createPropsGetter.js +1 -0
- package/cjs/lib/createPropsGetter.js.map +1 -1
- package/cjs/lib/date/InternalDateCalculator.d.ts +1 -1
- package/cjs/lib/date/InternalDateCalculator.js +1 -1
- package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
- package/cjs/lib/date/InternalDateValidator.d.ts +1 -1
- package/cjs/lib/date/InternalDateValidator.js +9 -2
- package/cjs/lib/date/InternalDateValidator.js.map +1 -1
- package/cjs/lib/extractKeyboardAction.d.ts +1 -1
- package/cjs/lib/extractKeyboardAction.js.map +1 -1
- package/cjs/lib/filterProps.js +0 -1
- package/cjs/lib/filterProps.js.map +1 -1
- package/cjs/lib/listenFocusOutside.d.ts +1 -1
- package/cjs/lib/listenFocusOutside.js.map +1 -1
- package/cjs/lib/locale/useLocaleForControl.d.ts +1 -1
- package/cjs/lib/locale/useLocaleForControl.js.map +1 -1
- package/cjs/lib/memo.d.ts +3 -1
- package/cjs/lib/memo.js +3 -3
- package/cjs/lib/memo.js.map +1 -1
- package/cjs/lib/net/fetch.js +2 -2
- package/cjs/lib/net/fetch.js.map +1 -1
- package/cjs/lib/reactGetTextContent.js +0 -1
- package/cjs/lib/reactGetTextContent.js.map +1 -1
- package/cjs/lib/rootNode/getRootNode.d.ts +3 -3
- package/cjs/lib/rootNode/getRootNode.js +7 -7
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -9
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/styles/ColorFactory.js +2 -2
- package/cjs/lib/styles/ColorFactory.js.map +1 -1
- package/cjs/lib/styles/ColorFunctions.js.map +1 -1
- package/cjs/lib/theming/AnimationKeyframes.d.ts +3 -5
- package/cjs/lib/theming/AnimationKeyframes.js +8 -22
- package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
- package/cjs/lib/theming/Emotion.js +1 -0
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
- package/cjs/lib/theming/ThemeFactory.js +3 -1
- package/cjs/lib/theming/ThemeFactory.js.map +1 -1
- package/cjs/lib/theming/ThemeHelpers.d.ts +2 -2
- package/cjs/lib/theming/ThemeHelpers.js +1 -1
- package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
- package/cjs/lib/utils.d.ts +3 -1
- package/cjs/lib/utils.js +5 -2
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/lib/withClassWrapper.js +1 -4
- package/cjs/lib/withClassWrapper.js.map +1 -1
- package/cjs/typings/event-types.d.ts +2 -2
- package/components/Autocomplete/Autocomplete/Autocomplete.js +4 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js +5 -2
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/Checkbox/Checkbox.styles.d.ts +1 -1
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +15 -3
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js +4 -2
- package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js.map +1 -1
- package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js +11 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateFragmentsView.d.ts +1 -1
- package/components/DateInput/DateInput/DateInput.js +1 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +1 -1
- package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +0 -1
- package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
- package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +2 -2
- package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js +13 -12
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +1 -1
- package/components/DatePicker/Picker/Picker.js +5 -1
- package/components/DatePicker/Picker/Picker.js.map +1 -1
- package/components/FileUploader/FileUploader/FileUploader.js +9 -4
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +2 -1
- package/components/FileUploader/FileUploader.md +8 -1
- package/components/FxInput/FxInput/FxInput.js +4 -1
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +1 -1
- package/components/Hint/Hint.md +14 -0
- package/components/Input/Input/Input.js +5 -2
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.md +5 -1
- package/components/Input/Input.styles/Input.styles.js +13 -10
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Input/Input.styles.d.ts +1 -0
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +1 -4
- package/components/Link/Link/Link.js +1 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +1 -3
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +2 -1
- package/components/Loader/__stories__/LoaderAndButton/LoaderAndButton.js.map +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js +4 -1
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/Modal/Modal/Modal.js +2 -2
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.styles/Modal.styles.js +2 -2
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +2 -2
- package/components/Modal/ModalBody/ModalBody.js +2 -2
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Paging/Paging/Paging.js +1 -1
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +1 -1
- package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
- package/components/Paging/PagingDefaultComponent.d.ts +2 -2
- package/components/PasswordInput/PasswordInput/PasswordInput.js +7 -8
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/Radio/Radio/Radio.js +4 -1
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -8
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
- package/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -1
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
- package/components/ResponsiveLayout/decorator.d.ts +1 -1
- package/components/ResponsiveLayout/types.d.ts +9 -1
- package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +42 -17
- package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
- package/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -1
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +4 -4
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -1
- package/components/Select/Item/Item.js.map +1 -1
- package/components/Select/Item.d.ts +4 -2
- package/components/Select/Select/Select.js.map +1 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +6 -4
- package/components/Spinner/Spinner/Spinner.js +1 -1
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.styles/Spinner.styles.js +3 -3
- package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
- package/components/Spinner/Spinner.styles.d.ts +1 -1
- package/components/Tabs/Indicator/Indicator.js +1 -1
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Indicator.d.ts +1 -1
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +4 -1
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
- package/components/Textarea/TextareaCounter.d.ts +2 -2
- package/components/Toast/Toast/Toast.js +1 -1
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Token/Token.styles/Token.styles.js +1 -1
- package/components/Token/Token.styles/Token.styles.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +82 -19
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +3 -0
- package/components/TokenInput/TokenInput.md +26 -0
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/TokenInputMenu.d.ts +2 -1
- package/components/Tooltip/Tooltip/Tooltip.js +2 -2
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +2 -2
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
- package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +2 -2
- package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -1
- package/hooks/useEffectWithoutInitCall.d.ts +2 -2
- package/hooks/useMemoObject/useMemoObject.js.map +1 -1
- package/hooks/useMemoObject.d.ts +2 -1
- package/internal/BGRuler/BGRuler.js.map +1 -1
- package/internal/BGRuler.d.ts +1 -1
- package/internal/Calendar/MonthViewModel.d.ts +1 -1
- package/internal/Calendar/config.d.ts +1 -8
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
- package/internal/ComponentTable/ComponentTable.js.map +1 -1
- package/internal/ComponentTable.d.ts +2 -2
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +14 -17
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -2
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +4 -5
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/DataTids/DataTids/DataTids.js.map +1 -1
- package/internal/DataTids/DataTids.d.ts +5 -5
- package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +1 -1
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +5 -2
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +17 -7
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/MaskedInput/MaskedInput/MaskedInput.js +13 -6
- package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/internal/MaskedInput/MaskedInput.d.ts +1 -0
- package/internal/Menu/Menu/Menu.js +6 -1
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/PerformanceMetrics/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +20 -12
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +1 -1
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/Popup/PopupHelper.d.ts +1 -1
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/Popup/PopupPin.d.ts +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +1 -1
- package/internal/ThemePlayground/AnotherInputsPlayground/AnotherInputsPlayground.js.map +1 -1
- package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
- package/internal/ThemePlayground/CurrencyInputPlayground/CurrencyInputPlayground.js.map +1 -1
- package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
- package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js +10 -6
- package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
- package/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
- package/internal/ThemePlayground/HintPlayground/HintPlayground.js.map +1 -1
- package/internal/ThemePlayground/HintPlayground.d.ts +1 -1
- package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js +2 -2
- package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js.map +1 -1
- package/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/Playground.d.ts +1 -1
- package/internal/ThemePlayground/SelectPlayground/SelectPlayground.js.map +1 -1
- package/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
- package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
- package/internal/ThemePlayground/SizesGroup.d.ts +2 -2
- package/internal/ThemePlayground/SwitcherPlayground/SwitcherPlayground.js.map +1 -1
- package/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +13 -3
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
- package/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
- package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js +5 -17
- package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js.map +1 -1
- package/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
- package/internal/ThemePlayground/TokenInputPlayground/TokenInputPlayground.js.map +1 -1
- package/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
- package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
- package/internal/ThemePlayground/VariableValue.d.ts +1 -4
- package/internal/ThemePlayground/helpers/helpers.js +0 -1
- package/internal/ThemePlayground/helpers/helpers.js.map +1 -1
- package/internal/ThemePlayground/helpers.d.ts +1 -1
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +6 -3
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +16 -6
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +2 -0
- package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
- package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -1
- package/lib/InstanceWithAnchorElement.d.ts +1 -1
- package/lib/ModalStack/ModalStack.js +2 -2
- package/lib/ModalStack/ModalStack.js.map +1 -1
- package/lib/SSRSafe/SSRSafe.js +7 -0
- package/lib/SSRSafe/SSRSafe.js.map +1 -1
- package/lib/SSRSafe.d.ts +2 -1
- package/lib/animation/index/index.js +1 -1
- package/lib/animation/index/index.js.map +1 -1
- package/lib/callChildRef/callChildRef/callChildRef.js +1 -1
- package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -1
- package/lib/createPropsGetter/createPropsGetter.js +1 -0
- package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
- package/lib/createPropsGetter.d.ts +1 -1
- package/lib/date/InternalDateCalculator/InternalDateCalculator.js +1 -2
- package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
- package/lib/date/InternalDateCalculator.d.ts +1 -1
- package/lib/date/InternalDateValidator/InternalDateValidator.js +8 -2
- package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
- package/lib/date/InternalDateValidator.d.ts +1 -1
- package/lib/extractKeyboardAction/extractKeyboardAction.js.map +1 -1
- package/lib/extractKeyboardAction.d.ts +1 -1
- package/lib/filterProps/filterProps.js +0 -1
- package/lib/filterProps/filterProps.js.map +1 -1
- package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
- package/lib/listenFocusOutside.d.ts +1 -1
- package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -1
- package/lib/locale/useLocaleForControl.d.ts +1 -1
- package/lib/memo/memo.js +2 -4
- package/lib/memo/memo.js.map +1 -1
- package/lib/memo.d.ts +3 -1
- package/lib/net/fetch/fetch.js +2 -2
- package/lib/net/fetch/fetch.js.map +1 -1
- package/lib/reactGetTextContent/reactGetTextContent.js +0 -1
- package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
- package/lib/rootNode/getRootNode/getRootNode.js +8 -8
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/getRootNode.d.ts +3 -3
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +9 -9
- package/lib/styles/ColorFactory/ColorFactory.js +3 -1
- package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
- package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +8 -14
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
- package/lib/theming/AnimationKeyframes.d.ts +3 -5
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/ThemeFactory/ThemeFactory.js +4 -1
- package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
- package/lib/theming/ThemeFactory.d.ts +1 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js +1 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
- package/lib/theming/ThemeHelpers.d.ts +2 -2
- package/lib/utils/utils.js +2 -2
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +3 -1
- package/lib/withClassWrapper/withClassWrapper.js +1 -4
- package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
- package/package.json +3 -20
- package/typings/event-types.d.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Loader.tsx"],"names":["LoaderDataTids","veil","spinner","Loader","rootNode","props","getProps","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","window","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","makeUnobservable","Array","from","document","querySelectorAll","getAttribute","removeAttribute","target","config","childList","subtree","observer","MutationObserver","observe","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","componentDidMount","active","start","layoutEvents","LayoutEvents","addListener","componentDidUpdate","prevProps","prevState","component","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","theme","renderMain","caption","type","setRootNode","styles","loader","children","renderSpinner","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","undefined","React","Component","__KONTUR_REACT_UI__","Spinner","Types","normal","isTestEnv","propTypes","PropTypes","bool","node","className","string","oneOf","Object","keys","number"],"mappings":"6VAAA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCO,IAAMA,cAAc,GAAG;AAC5BC,EAAAA,IAAI,EAAE,cADsB;AAE5BC,EAAAA,OAAO,EAAE,iBAFmB,EAAvB,C;;;;;;;AASP;AACA;AACA,G;;AAEaC,M,OADZC,kB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DC,kBAAYC,KAAZ,EAAgC;AAC9B,wCAAMA,KAAN,UAD8B,MAnDxBC,QAmDwB,GAnDb,0CAAkBH,MAAM,CAACI,YAAzB,CAmDa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoIxBC,IAAAA,WApIwB,GAoIV,UAACC,OAAD,EAAoC;AACxD,YAAKC,qBAAL,GAA6BD,OAA7B;AACD,KAtI+B;;AAwIxBE,IAAAA,UAxIwB,GAwIX,UAACF,OAAD,EAAoC;AACvD,YAAKG,oBAAL,GAA4BH,OAA5B;AACD,KA1I+B;;;;;;;;;;;;;;;;;;;;;AA+JxBI,IAAAA,oBA/JwB,GA+JD,YAAM;AACnC,UAAI,CAAC,MAAKD,oBAAV,EAAgC;AAC9B;AACD;;AAED;;;;;;;AAOI,mCAAW,MAAKA,oBAAhB,CAPJ,CACOE,YADP,eACEC,GADF,CAESC,cAFT,eAEEC,KAFF,CAGUC,eAHV,eAGEC,MAHF,CAIQC,aAJR,eAIEC,IAJF,CAKUC,eALV,eAKEC,MALF,CAMSC,cANT,eAMEC,KANF;;AASA,UAAMC,YAAY,GAAGC,MAAM,CAACC,WAA5B;AACA,UAAMC,WAAW,GAAGF,MAAM,CAACG,UAA3B;;AAEA;AACA;AACA,UAAIJ,YAAY,IAAIJ,eAAhB,IAAmCO,WAAW,IAAIL,cAAtD,EAAsE;AACpE,cAAKO,QAAL,CAAc;AACZC,UAAAA,eAAe,EAAE,KADL;AAEZC,UAAAA,YAAY,EAAE,EAFF,EAAd;;AAIA;AACD;;AAED,UAAMA,YAKL;;;;;AAAG;AACFlB,QAAAA,GAAG,EAAE,EADH;AAEFE,QAAAA,KAAK,EAAE,CAFL;AAGFE,QAAAA,MAAM,EAAE,EAHN;AAIFE,QAAAA,IAAI,EAAE,CAJJ,EALJ;;;AAYA;AACA;AACA;AACA,UAAIP,YAAY,GAAG,CAAnB,EAAsB;AACpBmB,QAAAA,YAAY,CAAClB,GAAb,GAAmBD,YAAY,GAAG,EAAlC;AACD;;AAED;AACA;AACA,UAAII,eAAe,GAAGQ,YAAtB,EAAoC;AAClCO,QAAAA,YAAY,CAACd,MAAb,GAAsBe,IAAI,CAACC,GAAL,CAAST,YAAY,GAAGR,eAAxB,IAA2C,EAAjE;AACD;;AAED;AACA;;AAEA,UAAMkB,aAAa,GAAG,6BAAW,MAAKC,WAAhB,EAA6Bd,MAAnD;;AAEA,UAAIa,aAAa,IAAIH,YAAY,CAACd,MAAb,IAAuBO,YAAY,GAAGU,aAA3D,EAA0E;AACxE,eAAOH,YAAY,CAAClB,GAApB;AACD;;AAED;AACA;AACA;AACA,UAAIK,aAAa,GAAG,CAApB,EAAuB;AACrBa,QAAAA,YAAY,CAACZ,IAAb,GAAoBD,aAApB;AACD;;AAED;AACA;AACA,UAAIJ,cAAc,GAAGa,WAArB,EAAkC;AAChCI,QAAAA,YAAY,CAAChB,KAAb,GAAqBY,WAAW,GAAGb,cAAnC;AACD;;AAED,YAAKe,QAAL,CAAc;AACZC,QAAAA,eAAe,EAAE,IADL;AAEZC,QAAAA,YAAY,EAAZA,YAFY,EAAd;;AAID,KA7O+B;;AA+OxBK,IAAAA,oBA/OwB,GA+OD,YAAM;AACnC,UAAI,CAAC,MAAKC,gBAAV,EAA4B;AAC1B,cAAKC,cAAL;AACD;AACD,UAAMC,gBAAgB,GAAG,0CAAoB,MAAK/B,qBAAzB,CAAzB;AACA+B,MAAAA,gBAAgB,CAACC,OAAjB,CAAyB,UAACC,EAAD,EAAQ;AAC/B,YAAI,CAACA,EAAE,CAACC,YAAH,CAAgB,iBAAhB,CAAL,EAAyC;AACvCD,UAAAA,EAAE,CAACE,YAAH,CAAgB,iBAAhB,EAAmCF,EAAE,CAACG,QAAH,CAAYC,QAAZ,EAAnC;AACD;AACDJ,QAAAA,EAAE,CAACG,QAAH,GAAc,CAAC,CAAf;AACD,OALD;AAMD,KA1P+B;;AA4PxBE,IAAAA,mBA5PwB,GA4PF,YAAM;AAClC,YAAKC,gBAAL;AACA;AACAC,MAAAA,KAAK,CAACC,IAAN,CAAWC,QAAQ,CAACC,gBAAT,CAA0B,mBAA1B,CAAX,EAA2DX,OAA3D,CAAmE,UAACC,EAAD,EAAQ;AACzEA,QAAAA,EAAE,CAACE,YAAH,CAAgB,UAAhB,sBAA4BF,EAAE,CAACW,YAAH,CAAgB,iBAAhB,CAA5B,+BAAkE,GAAlE;AACAX,QAAAA,EAAE,CAACY,eAAH,CAAmB,iBAAnB;AACD,OAHD;AAID,KAnQ+B;;AAqQxBf,IAAAA,cArQwB,GAqQP,YAAM;AAC7B,UAAMgB,MAAM,GAAG,MAAK9C,qBAApB;AACA,UAAI,CAAC8C,MAAL,EAAa;AACX;AACD;AACD,UAAMC,MAAM,GAAG;AACbC,QAAAA,SAAS,EAAE,IADE;AAEbC,QAAAA,OAAO,EAAE,IAFI,EAAf;;AAIA,UAAMC,QAAQ,GAAG,IAAIC,gBAAJ,CAAqB,MAAKvB,oBAA1B,CAAjB;AACAsB,MAAAA,QAAQ,CAACE,OAAT,CAAiBN,MAAjB,EAAyBC,MAAzB;AACA,YAAKlB,gBAAL,GAAwBqB,QAAxB;AACD,KAjR+B;;AAmRxBX,IAAAA,gBAnRwB,GAmRL,YAAM;AAC/B,qCAAKV,gBAAL,2CAAuBwB,UAAvB;AACA,YAAKxB,gBAAL,GAAwB,IAAxB;AACD,KAtR+B,CAG9B,MAAK3B,oBAAL,GAA4B,IAA5B,CACA,MAAKF,qBAAL,GAA6B,IAA7B,CACA,MAAK6B,gBAAL,GAAwB,IAAxB,CACA,MAAKF,WAAL,GAAmB,IAAnB,CAEA,MAAK2B,KAAL,GAAa,EACXhC,eAAe,EAAE,KADN,EAEXiC,gBAAgB,EAAE,KAFP,EAGXC,cAAc,EAAE,KAHL,EAAb,CAMA,MAAKC,WAAL,GAAmB,IAAIC,gEAAJ,CAAoC,EACrDC,oBAAoB,EAAE,MAAK/D,QAAL,GAAgBgE,sBADe,EAErDC,cAAc,EAAE,MAAKjE,QAAL,GAAgBkE,6BAFqB,EAGrDC,iBAAiB,EAAE,qCAAM,MAAK1C,QAAL,CAAc,EAAEkC,gBAAgB,EAAE,IAApB,EAAd,CAAN,EAHkC,EAIrDS,gBAAgB,EAAE,oCAAM,MAAK3C,QAAL,CAAc,EAAEkC,gBAAgB,EAAE,KAApB,EAAd,CAAN,EAJmC,EAApC,CAAnB,CAd8B,aAoB/B,C,qCAEMU,iB,GAAP,6BAA2B,CACzB,IAAMC,MAAM,GAAG,KAAKtE,QAAL,GAAgBsE,MAA/B,CACA,KAAK/D,oBAAL,GACA+D,MAAM,IAAI,KAAKT,WAAL,CAAiBU,KAAjB,EAAV,CACA,KAAKC,YAAL,GAAoBC,YAAY,CAACC,WAAb,CAAyB,qBAAS,KAAKnE,oBAAd,EAAoC,EAApC,CAAzB,CAApB,CAEA,IAAI+D,MAAJ,EAAY,CACV,KAAKtC,oBAAL,GACD,CACF,C,QAEM2C,kB,GAAP,4BAA0BC,SAA1B,EAA4DC,SAA5D,EAA8F,CAC5F,IAAQC,SAAR,GAAsB,KAAK/E,KAA3B,CAAQ+E,SAAR,CACA,qBAA0E,KAAK9E,QAAL,EAA1E,CAAQsE,MAAR,kBAAQA,MAAR,CAAgBN,sBAAhB,kBAAgBA,sBAAhB,CAAwCE,6BAAxC,kBAAwCA,6BAAxC,CACA,IAAQN,cAAR,GAA2B,KAAKF,KAAhC,CAAQE,cAAR,CAEA,IAAKU,MAAM,IAAI,CAACM,SAAS,CAACN,MAAtB,IAAiCM,SAAS,CAACE,SAAV,KAAwBA,SAA7D,EAAwE,CACtE,KAAKvE,oBAAL,GACD,CAED,IACEyD,sBAAsB,KAAKY,SAAS,CAACZ,sBAArC,IACAE,6BAA6B,KAAKU,SAAS,CAACV,6BAF9C,EAGE,CACA,KAAKL,WAAL,CAAiBkB,MAAjB,CAAwB,EACtBhB,oBAAoB,EAAEC,sBADA,EAEtBC,cAAc,EAAEC,6BAFM,EAAxB,EAID,CAED,IAAII,MAAM,KAAKM,SAAS,CAACN,MAAzB,EAAiC,CAC/BA,MAAM,GAAG,KAAKT,WAAL,CAAiBU,KAAjB,EAAH,GAA8B,KAAKV,WAAL,CAAiBmB,IAAjB,EAApC,CACD,CAED,IAAIpB,cAAc,KAAKiB,SAAS,CAACjB,cAAjC,EAAiD,CAC/C,IAAIA,cAAJ,EAAoB,CAClB,KAAK5B,oBAAL,GACD,CAFD,MAEO,CACL,KAAKU,mBAAL,GACD,CACF,CACF,C,QAEMuC,oB,GAAP,gCAA8B,CAC5B,KAAKtC,gBAAL,GACA,IAAI,KAAK6B,YAAT,EAAuB,CACrB,KAAKA,YAAL,CAAkBU,MAAlB,GACD,CACD,KAAKrB,WAAL,CAAiBsB,SAAjB,GACD,C,QAEaC,wB,GAAd,kCAAuCrF,KAAvC,EAA2D2D,KAA3D,EAAqG,CACnG,IAAI3D,KAAK,CAACuE,MAAN,IAAgB,CAACZ,KAAK,CAACE,cAA3B,EAA2C,CACzC,OAAO,EACLA,cAAc,EAAE,IADX,EAAP,CAGD,CACD,IAAIF,KAAK,CAACE,cAAN,IAAwB,EAAE7D,KAAK,CAACuE,MAAN,IAAgBZ,KAAK,CAACC,gBAAxB,CAA5B,EAAuE,CACrE,OAAO,EACLC,cAAc,EAAE,KADX,EAAP,CAGD,CAED,OAAOF,KAAP,CACD,C,QAEM2B,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEOA,U,GAAR,sBAAqB,SACnB,kBAA+B,KAAKxF,KAApC,CAAQyF,OAAR,eAAQA,OAAR,CAAiBV,SAAjB,eAAiBA,SAAjB,CACA,IAAMW,IAAI,GAAG,KAAKzF,QAAL,GAAgByF,IAA7B,CACA,IAAQ7B,cAAR,GAA2B,KAAKF,KAAhC,CAAQE,cAAR,CAEA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,KAAK8B,WAAjC,IAAkD,KAAK3F,KAAvD,gBACE,sCAAK,SAAS,EAAE4F,eAAOC,MAAP,EAAhB,EAAiC,YAAUhC,cAAc,GAAGlE,cAAc,CAACC,IAAlB,GAAyB,EAAlF,iBACE,6BAAC,cAAD,IACE,QAAQ,EAAE,QADZ,EAEE,WAAW,EAAEiE,cAFf,EAGE,aAAa,EAAEA,cAHjB,EAIE,KAAK,EAAE,EAAE3C,MAAM,EAAE,MAAV,EAJT,EAKE,UAAU,EAAE,KAAKf,WALnB,IAOG,KAAKH,KAAL,CAAW8F,QAPd,CADF,EAUGjC,cAAc,iBACb,6BAAC,cAAD,IACE,UAAU,EAAE,KAAKvD,UADnB,EAEE,QAAQ,EAAE,QAFZ,EAGE,SAAS,EAAE,gCACRsF,eAAOrB,MAAP,CAAc,KAAKgB,KAAnB,CADQ,IACoB1B,cADpB,OAHb,IAOG,KAAKF,KAAL,CAAWC,gBAAX,IAA+B,KAAKmC,aAAL,CAAmBL,IAAnB,EAAyBD,OAAzB,EAAkCV,SAAlC,CAPlC,CAXJ,CADF,CADF,CA0BD,C,QAUOgB,a,GAAR,uBAAsBL,IAAtB,EAAwDD,OAAxD,EAAmFV,SAAnF,EAAgH,wBAC9G,oBACE,uCACE,YAAUpF,cAAc,CAACE,OAD3B,EAEE,SAAS,EAAE,iBAAG+F,eAAOI,gBAAP,EAAH,mBAAiCJ,eAAOK,sBAAP,EAAjC,IAAmE,KAAKtC,KAAL,CAAWhC,eAA9E,QAFb,EAGE,KAAK,EAAE,KAAKgC,KAAL,CAAW/B,YAHpB,iBAKE,sCACE,SAAS,EAAEgE,eAAOM,uBAAP,EADb,EAEE,GAAG,EAAE,aAAC9F,OAAD,EAAa,CAChB,MAAI,CAAC4B,WAAL,GAAmB5B,OAAnB,CACD,CAJH,IAMG2E,SAAS,KAAKoB,SAAd,GAA0BpB,SAA1B,gBAAsC,6BAAC,gBAAD,IAAS,IAAI,EAAEW,IAAf,EAAqB,OAAO,EAAED,OAA9B,GANzC,CALF,CADF,CAgBD,C,iBA1NyBW,eAAMC,S,WAClBC,mB,GAAsB,Q,UAEtBpG,Y,GAA6B,EACzCwF,IAAI,EAAEa,iBAAQC,KAAR,CAAcC,MADqB,EAEzClC,MAAM,EAAE,KAFiC,EAGzCN,sBAAsB,EAAEyC,gCAAY,CAAZ,GAAgB,GAHC,EAIzCvC,6BAA6B,EAAEuC,gCAAY,CAAZ,GAAgB,IAJN,E,UAS7BC,S,GAAY,EACxB;AACJ;AACA,KACIpC,MAAM,EAAEqC,mBAAUC,IAJM,EAMxB;AACJ;AACA;AACA;AACA,KACIpB,OAAO,EAAEc,iBAAQI,SAAR,CAAkBlB,OAXH,EAaxBV,SAAS,EAAE6B,mBAAUE,IAbG,EAexB;AACJ;AACA,KACIC,SAAS,EAAEH,mBAAUI,MAlBG,EAoBxB;AACJ;AACA;AACA;AACA;AACA;AACA,KACItB,IAAI,EAAEkB,mBAAUK,KAAV,CAAgBC,MAAM,CAACC,IAAP,CAAYZ,iBAAQC,KAApB,CAAhB,CA3BkB,EA4BxB;AACJ;AACA;AACA,KACIvC,sBAAsB,EAAE2C,mBAAUQ,MAhCV,EAiCxB;AACJ;AACA;AACA,KACIjD,6BAA6B,EAAEyC,mBAAUQ,MArCjB,E","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nexport interface LoaderProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Флаг переключения состояния лоадера\n * @default false\n */\n active?: boolean;\n caption?: SpinnerProps['caption'];\n /**\n * Компонент заменяющий спиннер.\n */\n component?: React.ReactNode;\n className?: string;\n type?: 'mini' | 'normal' | 'big';\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow?: number;\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: object;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * DRAFT - лоадер-контейнер\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: Spinner.Types.normal,\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n public static propTypes = {\n /**\n * показываем лоадер или нет\n */\n active: PropTypes.bool,\n\n /**\n * Текст рядом с лоадером.\n *\n * @default \"Загрузка\"\n */\n caption: Spinner.propTypes.caption,\n\n component: PropTypes.node,\n\n /**\n * Класс для обертки\n */\n className: PropTypes.string,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * @default normal\n *\n * Spinner.types - все доступные типы\n */\n type: PropTypes.oneOf(Object.keys(Spinner.Types)),\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: PropTypes.number,\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: PropTypes.number,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n priority={'Loader'}\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n priority={'Loader'}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: 'mini' | 'normal' | 'big', caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = window.innerHeight;\n const windowWidth = window.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(document.querySelectorAll('[origin-tabindex]')).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Loader.tsx"],"names":["LoaderDataTids","veil","spinner","Loader","rootNode","props","getProps","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","window","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","makeUnobservable","Array","from","document","querySelectorAll","getAttribute","removeAttribute","target","config","childList","subtree","observer","MutationObserver","observe","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","componentDidMount","active","start","layoutEvents","LayoutEvents","addListener","componentDidUpdate","prevProps","prevState","component","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","theme","renderMain","caption","type","setRootNode","styles","loader","children","renderSpinner","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","undefined","React","Component","__KONTUR_REACT_UI__","Spinner","Types","normal","isTestEnv","propTypes","PropTypes","bool","node","className","string","oneOf","Object","keys","number"],"mappings":"6VAAA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCO,IAAMA,cAAc,GAAG;AAC5BC,EAAAA,IAAI,EAAE,cADsB;AAE5BC,EAAAA,OAAO,EAAE,iBAFmB,EAAvB,C;;;;;;;AASP;AACA;AACA,G;;AAEaC,M,OADZC,kB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DC,kBAAYC,KAAZ,EAAgC;AAC9B,wCAAMA,KAAN,UAD8B,MAnDxBC,QAmDwB,GAnDb,0CAAkBH,MAAM,CAACI,YAAzB,CAmDa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoIxBC,IAAAA,WApIwB,GAoIV,UAACC,OAAD,EAAoC;AACxD,YAAKC,qBAAL,GAA6BD,OAA7B;AACD,KAtI+B;;AAwIxBE,IAAAA,UAxIwB,GAwIX,UAACF,OAAD,EAAoC;AACvD,YAAKG,oBAAL,GAA4BH,OAA5B;AACD,KA1I+B;;;;;;;;;;;;;;;;;;;;;AA+JxBI,IAAAA,oBA/JwB,GA+JD,YAAM;AACnC,UAAI,CAAC,MAAKD,oBAAV,EAAgC;AAC9B;AACD;;AAED;;;;;;;AAOI,mCAAW,MAAKA,oBAAhB,CAPJ,CACOE,YADP,eACEC,GADF,CAESC,cAFT,eAEEC,KAFF,CAGUC,eAHV,eAGEC,MAHF,CAIQC,aAJR,eAIEC,IAJF,CAKUC,eALV,eAKEC,MALF,CAMSC,cANT,eAMEC,KANF;;AASA,UAAMC,YAAY,GAAGC,MAAM,CAACC,WAA5B;AACA,UAAMC,WAAW,GAAGF,MAAM,CAACG,UAA3B;;AAEA;AACA;AACA,UAAIJ,YAAY,IAAIJ,eAAhB,IAAmCO,WAAW,IAAIL,cAAtD,EAAsE;AACpE,cAAKO,QAAL,CAAc;AACZC,UAAAA,eAAe,EAAE,KADL;AAEZC,UAAAA,YAAY,EAAE,EAFF,EAAd;;AAIA;AACD;;AAED,UAAMA,YAKL;;;;;AAAG;AACFlB,QAAAA,GAAG,EAAE,EADH;AAEFE,QAAAA,KAAK,EAAE,CAFL;AAGFE,QAAAA,MAAM,EAAE,EAHN;AAIFE,QAAAA,IAAI,EAAE,CAJJ,EALJ;;;AAYA;AACA;AACA;AACA,UAAIP,YAAY,GAAG,CAAnB,EAAsB;AACpBmB,QAAAA,YAAY,CAAClB,GAAb,GAAmBD,YAAY,GAAG,EAAlC;AACD;;AAED;AACA;AACA,UAAII,eAAe,GAAGQ,YAAtB,EAAoC;AAClCO,QAAAA,YAAY,CAACd,MAAb,GAAsBe,IAAI,CAACC,GAAL,CAAST,YAAY,GAAGR,eAAxB,IAA2C,EAAjE;AACD;;AAED;AACA;;AAEA,UAAMkB,aAAa,GAAG,6BAAW,MAAKC,WAAhB,EAA6Bd,MAAnD;;AAEA,UAAIa,aAAa,IAAIH,YAAY,CAACd,MAAb,IAAuBO,YAAY,GAAGU,aAA3D,EAA0E;AACxE,eAAOH,YAAY,CAAClB,GAApB;AACD;;AAED;AACA;AACA;AACA,UAAIK,aAAa,GAAG,CAApB,EAAuB;AACrBa,QAAAA,YAAY,CAACZ,IAAb,GAAoBD,aAApB;AACD;;AAED;AACA;AACA,UAAIJ,cAAc,GAAGa,WAArB,EAAkC;AAChCI,QAAAA,YAAY,CAAChB,KAAb,GAAqBY,WAAW,GAAGb,cAAnC;AACD;;AAED,YAAKe,QAAL,CAAc;AACZC,QAAAA,eAAe,EAAE,IADL;AAEZC,QAAAA,YAAY,EAAZA,YAFY,EAAd;;AAID,KA7O+B;;AA+OxBK,IAAAA,oBA/OwB,GA+OD,YAAM;AACnC,UAAI,CAAC,MAAKC,gBAAV,EAA4B;AAC1B,cAAKC,cAAL;AACD;AACD,UAAMC,gBAAgB,GAAG,0CAAoB,MAAK/B,qBAAzB,CAAzB;AACA+B,MAAAA,gBAAgB,CAACC,OAAjB,CAAyB,UAACC,EAAD,EAAQ;AAC/B,YAAI,CAACA,EAAE,CAACC,YAAH,CAAgB,iBAAhB,CAAL,EAAyC;AACvCD,UAAAA,EAAE,CAACE,YAAH,CAAgB,iBAAhB,EAAmCF,EAAE,CAACG,QAAH,CAAYC,QAAZ,EAAnC;AACD;AACDJ,QAAAA,EAAE,CAACG,QAAH,GAAc,CAAC,CAAf;AACD,OALD;AAMD,KA1P+B;;AA4PxBE,IAAAA,mBA5PwB,GA4PF,YAAM;AAClC,YAAKC,gBAAL;AACA;AACAC,MAAAA,KAAK,CAACC,IAAN,CAAWC,QAAQ,CAACC,gBAAT,CAA0B,mBAA1B,CAAX,EAA2DX,OAA3D,CAAmE,UAACC,EAAD,EAAQ;AACzEA,QAAAA,EAAE,CAACE,YAAH,CAAgB,UAAhB,sBAA4BF,EAAE,CAACW,YAAH,CAAgB,iBAAhB,CAA5B,+BAAkE,GAAlE;AACAX,QAAAA,EAAE,CAACY,eAAH,CAAmB,iBAAnB;AACD,OAHD;AAID,KAnQ+B;;AAqQxBf,IAAAA,cArQwB,GAqQP,YAAM;AAC7B,UAAMgB,MAAM,GAAG,MAAK9C,qBAApB;AACA,UAAI,CAAC8C,MAAL,EAAa;AACX;AACD;AACD,UAAMC,MAAM,GAAG;AACbC,QAAAA,SAAS,EAAE,IADE;AAEbC,QAAAA,OAAO,EAAE,IAFI,EAAf;;AAIA,UAAMC,QAAQ,GAAG,IAAIC,gBAAJ,CAAqB,MAAKvB,oBAA1B,CAAjB;AACAsB,MAAAA,QAAQ,CAACE,OAAT,CAAiBN,MAAjB,EAAyBC,MAAzB;AACA,YAAKlB,gBAAL,GAAwBqB,QAAxB;AACD,KAjR+B;;AAmRxBX,IAAAA,gBAnRwB,GAmRL,YAAM;AAC/B,qCAAKV,gBAAL,2CAAuBwB,UAAvB;AACA,YAAKxB,gBAAL,GAAwB,IAAxB;AACD,KAtR+B,CAG9B,MAAK3B,oBAAL,GAA4B,IAA5B,CACA,MAAKF,qBAAL,GAA6B,IAA7B,CACA,MAAK6B,gBAAL,GAAwB,IAAxB,CACA,MAAKF,WAAL,GAAmB,IAAnB,CAEA,MAAK2B,KAAL,GAAa,EACXhC,eAAe,EAAE,KADN,EAEXiC,gBAAgB,EAAE,KAFP,EAGXC,cAAc,EAAE,KAHL,EAAb,CAMA,MAAKC,WAAL,GAAmB,IAAIC,gEAAJ,CAAoC,EACrDC,oBAAoB,EAAE,MAAK/D,QAAL,GAAgBgE,sBADe,EAErDC,cAAc,EAAE,MAAKjE,QAAL,GAAgBkE,6BAFqB,EAGrDC,iBAAiB,EAAE,qCAAM,MAAK1C,QAAL,CAAc,EAAEkC,gBAAgB,EAAE,IAApB,EAAd,CAAN,EAHkC,EAIrDS,gBAAgB,EAAE,oCAAM,MAAK3C,QAAL,CAAc,EAAEkC,gBAAgB,EAAE,KAApB,EAAd,CAAN,EAJmC,EAApC,CAAnB,CAd8B,aAoB/B,C,qCAEMU,iB,GAAP,6BAA2B,CACzB,IAAMC,MAAM,GAAG,KAAKtE,QAAL,GAAgBsE,MAA/B,CACA,KAAK/D,oBAAL,GACA+D,MAAM,IAAI,KAAKT,WAAL,CAAiBU,KAAjB,EAAV,CACA,KAAKC,YAAL,GAAoBC,YAAY,CAACC,WAAb,CAAyB,qBAAS,KAAKnE,oBAAd,EAAoC,EAApC,CAAzB,CAApB,CAEA,IAAI+D,MAAJ,EAAY,CACV,KAAKtC,oBAAL,GACD,CACF,C,QAEM2C,kB,GAAP,4BAA0BC,SAA1B,EAA4DC,SAA5D,EAA8F,CAC5F,IAAQC,SAAR,GAAsB,KAAK/E,KAA3B,CAAQ+E,SAAR,CACA,qBAA0E,KAAK9E,QAAL,EAA1E,CAAQsE,MAAR,kBAAQA,MAAR,CAAgBN,sBAAhB,kBAAgBA,sBAAhB,CAAwCE,6BAAxC,kBAAwCA,6BAAxC,CACA,IAAQN,cAAR,GAA2B,KAAKF,KAAhC,CAAQE,cAAR,CAEA,IAAKU,MAAM,IAAI,CAACM,SAAS,CAACN,MAAtB,IAAiCM,SAAS,CAACE,SAAV,KAAwBA,SAA7D,EAAwE,CACtE,KAAKvE,oBAAL,GACD,CAED,IACEyD,sBAAsB,KAAKY,SAAS,CAACZ,sBAArC,IACAE,6BAA6B,KAAKU,SAAS,CAACV,6BAF9C,EAGE,CACA,KAAKL,WAAL,CAAiBkB,MAAjB,CAAwB,EACtBhB,oBAAoB,EAAEC,sBADA,EAEtBC,cAAc,EAAEC,6BAFM,EAAxB,EAID,CAED,IAAII,MAAM,KAAKM,SAAS,CAACN,MAAzB,EAAiC,CAC/BA,MAAM,GAAG,KAAKT,WAAL,CAAiBU,KAAjB,EAAH,GAA8B,KAAKV,WAAL,CAAiBmB,IAAjB,EAApC,CACD,CAED,IAAIpB,cAAc,KAAKiB,SAAS,CAACjB,cAAjC,EAAiD,CAC/C,IAAIA,cAAJ,EAAoB,CAClB,KAAK5B,oBAAL,GACD,CAFD,MAEO,CACL,KAAKU,mBAAL,GACD,CACF,CACF,C,QAEMuC,oB,GAAP,gCAA8B,CAC5B,KAAKtC,gBAAL,GACA,IAAI,KAAK6B,YAAT,EAAuB,CACrB,KAAKA,YAAL,CAAkBU,MAAlB,GACD,CACD,KAAKrB,WAAL,CAAiBsB,SAAjB,GACD,C,QAEaC,wB,GAAd,kCAAuCrF,KAAvC,EAA2D2D,KAA3D,EAAqG,CACnG,IAAI3D,KAAK,CAACuE,MAAN,IAAgB,CAACZ,KAAK,CAACE,cAA3B,EAA2C,CACzC,OAAO,EACLA,cAAc,EAAE,IADX,EAAP,CAGD,CACD,IAAIF,KAAK,CAACE,cAAN,IAAwB,EAAE7D,KAAK,CAACuE,MAAN,IAAgBZ,KAAK,CAACC,gBAAxB,CAA5B,EAAuE,CACrE,OAAO,EACLC,cAAc,EAAE,KADX,EAAP,CAGD,CAED,OAAOF,KAAP,CACD,C,QAEM2B,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEOA,U,GAAR,sBAAqB,SACnB,kBAA+B,KAAKxF,KAApC,CAAQyF,OAAR,eAAQA,OAAR,CAAiBV,SAAjB,eAAiBA,SAAjB,CACA,IAAMW,IAAI,GAAG,KAAKzF,QAAL,GAAgByF,IAA7B,CACA,IAAQ7B,cAAR,GAA2B,KAAKF,KAAhC,CAAQE,cAAR,CAEA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,KAAK8B,WAAjC,IAAkD,KAAK3F,KAAvD,gBACE,sCAAK,SAAS,EAAE4F,eAAOC,MAAP,EAAhB,EAAiC,YAAUhC,cAAc,GAAGlE,cAAc,CAACC,IAAlB,GAAyB,EAAlF,iBACE,6BAAC,cAAD,IACE,QAAQ,EAAE,QADZ,EAEE,WAAW,EAAEiE,cAFf,EAGE,aAAa,EAAEA,cAHjB,EAIE,KAAK,EAAE,EAAE3C,MAAM,EAAE,MAAV,EAJT,EAKE,UAAU,EAAE,KAAKf,WALnB,IAOG,KAAKH,KAAL,CAAW8F,QAPd,CADF,EAUGjC,cAAc,iBACb,6BAAC,cAAD,IACE,UAAU,EAAE,KAAKvD,UADnB,EAEE,QAAQ,EAAE,QAFZ,EAGE,SAAS,EAAE,gCACRsF,eAAOrB,MAAP,CAAc,KAAKgB,KAAnB,CADQ,IACoB1B,cADpB,OAHb,IAOG,KAAKF,KAAL,CAAWC,gBAAX,IAA+B,KAAKmC,aAAL,CAAmBL,IAAnB,EAAyBD,OAAzB,EAAkCV,SAAlC,CAPlC,CAXJ,CADF,CADF,CA0BD,C,QAUOgB,a,GAAR,uBAAsBL,IAAtB,EAAwDD,OAAxD,EAAmFV,SAAnF,EAAgH,wBAC9G,oBACE,uCACE,YAAUpF,cAAc,CAACE,OAD3B,EAEE,SAAS,EAAE,iBAAG+F,eAAOI,gBAAP,EAAH,mBAAiCJ,eAAOK,sBAAP,EAAjC,IAAmE,KAAKtC,KAAL,CAAWhC,eAA9E,QAFb,EAGE,KAAK,EAAE,KAAKgC,KAAL,CAAW/B,YAHpB,iBAKE,sCACE,SAAS,EAAEgE,eAAOM,uBAAP,EADb,EAEE,GAAG,EAAE,aAAC9F,OAAD,EAAa,CAChB,MAAI,CAAC4B,WAAL,GAAmB5B,OAAnB,CACD,CAJH,IAMG2E,SAAS,KAAKoB,SAAd,GAA0BpB,SAA1B,gBAAsC,6BAAC,gBAAD,IAAS,IAAI,EAAEW,IAAf,EAAqB,OAAO,EAAED,OAA9B,GANzC,CALF,CADF,CAgBD,C,iBA1NyBW,eAAMC,S,WAClBC,mB,GAAsB,Q,UAEtBpG,Y,GAA6B,EACzCwF,IAAI,EAAEa,iBAAQC,KAAR,CAAcC,MADqB,EAEzClC,MAAM,EAAE,KAFiC,EAGzCN,sBAAsB,EAAEyC,gCAAY,CAAZ,GAAgB,GAHC,EAIzCvC,6BAA6B,EAAEuC,gCAAY,CAAZ,GAAgB,IAJN,E,UAS7BC,S,GAAY,EACxB;AACJ;AACA,KACIpC,MAAM,EAAEqC,mBAAUC,IAJM,EAMxB;AACJ;AACA;AACA;AACA,KACIpB,OAAO,EAAEc,iBAAQI,SAAR,CAAkBlB,OAXH,EAaxBV,SAAS,EAAE6B,mBAAUE,IAbG,EAexB;AACJ;AACA,KACIC,SAAS,EAAEH,mBAAUI,MAlBG,EAoBxB;AACJ;AACA;AACA;AACA;AACA;AACA,KACItB,IAAI,EAAEkB,mBAAUK,KAAV,CAAgBC,MAAM,CAACC,IAAP,CAAYZ,iBAAQC,KAApB,CAAhB,CA3BkB,EA4BxB;AACJ;AACA;AACA,KACIvC,sBAAsB,EAAE2C,mBAAUQ,MAhCV,EAiCxB;AACJ;AACA;AACA,KACIjD,6BAA6B,EAAEyC,mBAAUQ,MArCjB,E","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\n\nimport { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nexport interface LoaderProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Флаг переключения состояния лоадера\n * @default false\n */\n active?: boolean;\n caption?: SpinnerProps['caption'];\n /**\n * Компонент заменяющий спиннер.\n */\n component?: React.ReactNode;\n className?: string;\n type?: 'mini' | 'normal' | 'big';\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow?: number;\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * DRAFT - лоадер-контейнер\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: Spinner.Types.normal,\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n public static propTypes = {\n /**\n * показываем лоадер или нет\n */\n active: PropTypes.bool,\n\n /**\n * Текст рядом с лоадером.\n *\n * @default \"Загрузка\"\n */\n caption: Spinner.propTypes.caption,\n\n component: PropTypes.node,\n\n /**\n * Класс для обертки\n */\n className: PropTypes.string,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * @default normal\n *\n * Spinner.types - все доступные типы\n */\n type: PropTypes.oneOf(Object.keys(Spinner.Types)),\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: PropTypes.number,\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: PropTypes.number,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n priority={'Loader'}\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n priority={'Loader'}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: 'mini' | 'normal' | 'big', caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = window.innerHeight;\n const windowWidth = window.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(document.querySelectorAll('[origin-tabindex]')).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"]}
|
|
@@ -4,6 +4,12 @@ var _Tooltip = require("../../Tooltip");
|
|
|
4
4
|
var _Button = require("../../Button");
|
|
5
5
|
var _Loader = require("../Loader");var
|
|
6
6
|
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
7
13
|
LoaderAndButton = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(LoaderAndButton, _React$Component);function LoaderAndButton() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
8
14
|
state = {
|
|
9
15
|
isTooltipOpened: false };return _this;}var _proto = LoaderAndButton.prototype;_proto.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["LoaderAndButton.tsx"],"names":["LoaderAndButton","state","isTooltipOpened","render","props","active","setState","isActive","React","Component"],"mappings":"2PAAA;;AAEA;AACA;AACA,mC
|
|
1
|
+
{"version":3,"sources":["LoaderAndButton.tsx"],"names":["LoaderAndButton","state","isTooltipOpened","render","props","active","setState","isActive","React","Component"],"mappings":"2PAAA;;AAEA;AACA;AACA,mC;;;;;;;;AAQaA,e;AACJC,IAAAA,K,GAA8B;AACnCC,MAAAA,eAAe,EAAE,KADkB,E;;;AAI9BC,EAAAA,M,GAAP,kBAAgB;AACd;AACE,mCAAC,cAAD,IAAQ,MAAM,EAAE,KAAKC,KAAL,CAAWC,MAA3B,EAAmC,IAAI,EAAE,KAAzC;AACE,iKADF;;;;AAKE,mCAAC,gBAAD,IAAS,MAAM,EAAE,0BAAM,eAAN,EAAjB,EAAwC,OAAO,EAAE,KAAKJ,KAAL,CAAWC,eAAX,GAA6B,QAA7B,GAAwC,QAAzF;AACE,mCAAC,cAAD;AACE,QAAA,OAAO,EAAE,mBAAM;AACb,UAAA,MAAI,CAACI,QAAL,CAAc,EAAEC,QAAQ,EAAE,IAAZ,EAAkBL,eAAe,EAAE,IAAnC,EAAd;AACD,SAHH,wBADF,CALF;;;;;AAcE,wMAdF;;;;AAkBE;AACqG,SADrG;AAEE,0IAFF;AAGE,oEAHF,yBAlBF;;AAuBE,0FAvBF;AAwBE,gUAxBF;;;;;AA6BE;AACE,2GADF;AAEE,wFAFF;AAGE,wFAHF,CA7BF,CADF;;;;AAqCD,G,0BA3CkCM,eAAMC,S","sourcesContent":["import React from 'react';\n\nimport { Tooltip } from '../../Tooltip';\nimport { Button } from '../../Button';\nimport { Loader } from '../Loader';\nimport { LoaderProps } from '..';\n\ntype LoaderAndButtonProps = Pick<LoaderProps, 'active'>;\ninterface LoaderAndButtonState {\n isTooltipOpened: boolean;\n isActive?: boolean;\n}\nexport class LoaderAndButton extends React.Component<LoaderAndButtonProps, LoaderAndButtonState> {\n public state: LoaderAndButtonState = {\n isTooltipOpened: false,\n };\n\n public render() {\n return (\n <Loader active={this.props.active} type={'big'}>\n <h1>\n Yeah, and if you were the pope they'd be all, "Straighten your pope hat." And "Put on your\n good vestments."\n </h1>\n <Tooltip render={() => 'Yes, you can!'} trigger={this.state.isTooltipOpened ? 'opened' : 'closed'}>\n <Button\n onClick={() => {\n this.setState({ isActive: true, isTooltipOpened: true });\n }}\n >\n Can you click me?\n </Button>\n </Tooltip>\n <p>\n No, I'm Santa Claus! I guess if you want children beaten, you have to do it yourself. We're also\n Santa Claus! Leela, Bender, we're going grave robbing.\n </p>\n <p>\n Are you crazy? I can't swallow that. Large bet on myself in round one. Hey, whatcha watching?{' '}\n <strong> Moving along… I guess if you want children beaten, you have to do it yourself.</strong>\n <em>It's okay, Bender.</em> I like cooking too.\n </p>\n <h2>Oh, I think we should just stay friends.</h2>\n <p>\n No argument here. And when we woke up, we had these bodies. You guys go on without me! I'm going to go…\n look for more stuff to steal! Oh, how awful. Did he at least die painlessly? …To shreds, you say. Well, how is\n his wife holding up? …To shreds, you say.\n </p>\n <ol>\n <li>No! The kind with looting and maybe starting a few fires!</li>\n <li>You are the last hope of the universe.</li>\n <li>Hey, guess what you're accessories to.</li>\n </ol>\n </Loader>\n );\n }\n}\n"]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.isMenuItem = exports.MenuItemDataTids = exports.MenuItem = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.isMenuItem = exports.MenuItemDataTids = exports.MenuItem = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
2
4
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
3
5
|
|
|
4
6
|
var _utils = require("../../lib/utils");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MenuItem.tsx"],"names":["MenuItemDataTids","root","comment","MenuItem","rootNode","mouseEntered","renderMain","props","link","icon","loose","state","_enableIconPadding","component","onMouseEnter","onMouseLeave","isMobile","rest","hover","disabled","iconElement","styles","theme","className","rootMobile","selected","withIcon","Boolean","children","content","Component","getComponent","handleMouseEnterFix","handleMouseLeave","commentHover","e","href","render","setRootNode","React","__KONTUR_REACT_UI__","__MENU_ITEM__","propTypes","PropTypes","node","bool","string","target","onClick","func","isMenuItem"],"mappings":"kfAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEO,IAAMA,gBAAgB,GAAG;AAC9BC,EAAAA,IAAI,EAAE,gBADwB;AAE9BC,EAAAA,OAAO,EAAE,mBAFqB,EAAzB;;;AAKP;AACA;AACA;AACA;AACA;AACA,G;;AAEaC,Q,OADZC,2B;;;;;;;;;;;;;;;;;;;;;;;AAwBSC,IAAAA,Y,GAAe,K;;;;;;;;;;;;;;;;;;AAkBfC,IAAAA,U,GAAa,UAACC,KAAD,EAAkD;AACrE;AACEC,MAAAA,IADF;;;;;;;;;;;AAYID,MAAAA,KAZJ,CACEC,IADF,CAEEN,OAFF,GAYIK,KAZJ,CAEEL,OAFF,CAGEO,IAHF,GAYIF,KAZJ,CAGEE,IAHF,CAIEC,KAJF,GAYIH,KAZJ,CAIEG,KAJF,CAKEC,KALF,GAYIJ,KAZJ,CAKEI,KALF,CAMEC,kBANF,GAYIL,KAZJ,CAMEK,kBANF,CAOEC,SAPF,GAYIN,KAZJ,CAOEM,SAPF,CAQEC,YARF,GAYIP,KAZJ,CAQEO,YARF,CASEC,YATF,GAYIR,KAZJ,CASEQ,YATF,CAUEC,QAVF,GAYIT,KAZJ,CAUES,QAVF,CAWKC,IAXL,+CAYIV,KAZJ;;AAcA,UAAMW,KAAK,GAAGP,KAAK,KAAK,OAAV,IAAqB,CAAC,MAAKJ,KAAL,CAAWY,QAA/C;;AAEA,UAAIC,WAAW,GAAG,IAAlB;AACA,UAAIX,IAAJ,EAAU;AACRW,QAAAA,WAAW,gBAAG,sCAAK,SAAS,EAAEC,iBAAOZ,IAAP,CAAY,MAAKa,KAAjB,CAAhB,IAA0Cb,IAA1C,CAAd;AACD;;AAED,UAAMc,SAAS,GAAG;AACfF,uBAAOpB,IAAP,CAAY,MAAKqB,KAAjB,CADe,IACW,IADX;AAEfD,uBAAOG,UAAP,CAAkB,MAAKF,KAAvB,CAFe,IAEiBN,QAFjB;AAGfK,uBAAOX,KAAP,EAHe,IAGE,CAAC,CAACA,KAHJ;AAIfW,uBAAOH,KAAP,CAAa,MAAKI,KAAlB,CAJe,IAIYJ,KAJZ;AAKfG,uBAAOI,QAAP,CAAgB,MAAKH,KAArB,CALe,IAKeX,KAAK,KAAK,UALzB;AAMfU,uBAAOb,IAAP,CAAY,MAAKc,KAAjB,CANe,IAMW,CAAC,CAACd,IANb;AAOfa,uBAAOK,QAAP,CAAgB,MAAKJ,KAArB,CAPe,IAOeK,OAAO,CAACP,WAAD,CAAP,IAAwB,CAAC,CAACR,kBAPzC;AAQfS,uBAAOF,QAAP,CAAgB,MAAKG,KAArB,CARe,IAQe,CAAC,CAAC,MAAKf,KAAL,CAAWY,QAR5B,OAAlB;;;AAWA,UAAQS,QAAR,GAAqB,MAAKrB,KAA1B,CAAQqB,QAAR;;AAEA,UAAIC,OAAO,GAAGD,QAAd;AACA,UAAI,uBAAWA,QAAX,CAAJ,EAA0B;AACxBC,QAAAA,OAAO,GAAGD,QAAQ,CAAC,MAAKrB,KAAL,CAAWI,KAAZ,CAAlB;AACD;;AAED,UAAMmB,SAAS,GAAG,MAAKC,YAAL,EAAlB;;AAEA;AACE,qCAAC,SAAD;AACE,sBAAU/B,gBAAgB,CAACC,IAD7B;AAEMgB,QAAAA,IAFN;AAGE,UAAA,KAAK,EAAEN,KAHT;AAIE,UAAA,WAAW,EAAE,MAAKqB,mBAJpB;AAKE,UAAA,YAAY,EAAE,MAAKC,gBALrB;AAME,UAAA,SAAS,EAAEV,SANb;AAOE,UAAA,QAAQ,EAAE,CAAC,CAPb;;AASGH,QAAAA,WATH;AAUGS,QAAAA,OAVH;AAWG,cAAKtB,KAAL,CAAWL,OAAX;AACC;AACE,sBAAUF,gBAAgB,CAACE,OAD7B;AAEE,UAAA,SAAS,EAAE;AACRmB,2BAAOnB,OAAP,CAAe,MAAKoB,KAApB,CADQ,IACqB,IADrB;AAERD,2BAAOa,YAAP,CAAoB,MAAKZ,KAAzB,CAFQ,IAE0BJ,KAF1B,QAFb;;;AAOGhB,QAAAA,OAPH,CAZJ,CADF;;;;;AAyBD,K;;;;AAIO8B,IAAAA,mB,GAAsB,UAACG,CAAD,EAAsC;AAClE,UAAI,CAAC,MAAK9B,YAAN,IAAsB,MAAKE,KAAL,CAAWO,YAArC,EAAmD;AACjD,cAAKT,YAAL,GAAoB,IAApB;AACA,cAAKE,KAAL,CAAWO,YAAX,CAAwBqB,CAAxB;AACD;AACF,K;;AAEOF,IAAAA,gB,GAAmB,UAACE,CAAD,EAAsC;AAC/D,YAAK9B,YAAL,GAAoB,KAApB;AACA,UAAI,MAAKE,KAAL,CAAWQ,YAAf,EAA6B;AAC3B,cAAKR,KAAL,CAAWQ,YAAX,CAAwBoB,CAAxB;AACD;AACF,K;;AAEOJ,IAAAA,Y,GAAe,YAAM;AAC3B,wBAAsC,MAAKxB,KAA3C,CAAQY,QAAR,eAAQA,QAAR,CAAkBN,SAAlB,eAAkBA,SAAlB,CAA6BuB,IAA7B,eAA6BA,IAA7B;;AAEA,UAAIjB,QAAJ,EAAc;AACZ,eAAO,QAAP;AACD;;AAED,UAAIN,SAAJ,EAAe;AACb,eAAOA,SAAP;AACD;;AAED,UAAIuB,IAAJ,EAAU;AACR,eAAO,GAAP;AACD;;AAED,aAAO,QAAP;AACD,K,sDApHMC,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACf,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAACgB,WAAjC,IAAkD,MAAI,CAAC/B,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,C,mBAvC2BiC,eAAMT,S,WACpBU,mB,GAAsB,U,UACtBC,a,GAAgB,I,UAEhBC,S,GAAY,EACxBxC,OAAO,EAAEyC,mBAAUC,IADK,EAGxBzB,QAAQ,EAAEwB,mBAAUE,IAHI,EAKxBT,IAAI,EAAEO,mBAAUG,MALQ,EAOxBrC,IAAI,EAAEkC,mBAAUC,IAPQ,EASxBlC,KAAK,EAAEiC,mBAAUE,IATO,EAWxBlC,KAAK,EAAEgC,mBAAUG,MAXO,EAaxBC,MAAM,EAAEJ,mBAAUG,MAbM,EAexBE,OAAO,EAAEL,mBAAUM,IAfK,E;;;AA6IrB,IAAMC,UAAU,GAAG,+BAAmB,UAAnB,CAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isFunction, isReactUIComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode/rootNodeDecorator';\n\nimport { styles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps extends CommonProps {\n /**\n * @ignore\n */\n _enableIconPadding?: boolean;\n /**\n * Добавляет описание для элемента меню.\n */\n comment?: React.ReactNode;\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет элементу меню иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Меняет цвет текста на синий.\n */\n link?: boolean;\n /**\n * @ignore\n */\n loose?: boolean;\n /**\n * @ignore\n */\n state?: MenuItemState;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n /**\n * HTML-атрибут `target`.\n */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * HTML-атрибут `title`.\n */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n /**\n * HTML-атрибут `href`.\n */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n /**\n * Заменяет корневой элемент, на компонент переданный в проп.\n *\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`.\n */\n component?: React.ComponentType<any>;\n\n isMobile?: boolean;\n}\n\nexport const MenuItemDataTids = {\n root: 'MenuItem__root',\n comment: 'MenuItem__comment',\n} as const;\n\n/**\n *\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: [`DropdownMenu`](#/Components/DropdownMenu), [`Kebab`](#/Components/Kebab), [`TooltipMenu`](#/Components/TooltipMenu) и [`Select`](#/Components/Select).\n */\n@rootNode\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const {\n link,\n comment,\n icon,\n loose,\n state,\n _enableIconPadding,\n component,\n onMouseEnter,\n onMouseLeave,\n isMobile,\n ...rest\n } = props;\n\n const hover = state === 'hover' && !this.props.disabled;\n\n let iconElement = null;\n if (icon) {\n iconElement = <div className={styles.icon(this.theme)}>{icon}</div>;\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [styles.rootMobile(this.theme)]: isMobile,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: hover,\n [styles.selected(this.theme)]: state === 'selected',\n [styles.link(this.theme)]: !!link,\n [styles.withIcon(this.theme)]: Boolean(iconElement) || !!_enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n data-tid={MenuItemDataTids.root}\n {...rest}\n state={state}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n className={className}\n tabIndex={-1}\n >\n {iconElement}\n {content}\n {this.props.comment && (\n <div\n data-tid={MenuItemDataTids.comment}\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: hover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered && this.props.onMouseEnter) {\n this.mouseEntered = true;\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (disabled) {\n return 'button';\n }\n\n if (component) {\n return component;\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n}\n\nexport const isMenuItem = isReactUIComponent('MenuItem');\n"]}
|
|
1
|
+
{"version":3,"sources":["MenuItem.tsx"],"names":["MenuItemDataTids","root","comment","MenuItem","rootNode","mouseEntered","renderMain","props","link","icon","loose","state","_enableIconPadding","component","onMouseEnter","onMouseLeave","isMobile","rest","hover","disabled","iconElement","styles","theme","className","rootMobile","selected","withIcon","Boolean","children","content","Component","getComponent","handleMouseEnterFix","handleMouseLeave","commentHover","e","href","render","setRootNode","React","__KONTUR_REACT_UI__","__MENU_ITEM__","propTypes","PropTypes","node","bool","string","target","onClick","func","isMenuItem"],"mappings":";;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEO,IAAMA,gBAAgB,GAAG;AAC9BC,EAAAA,IAAI,EAAE,gBADwB;AAE9BC,EAAAA,OAAO,EAAE,mBAFqB,EAAzB;;;AAKP;AACA;AACA;AACA;AACA;AACA,G;;AAEaC,Q,OADZC,2B;;;;;;;;;;;;;;;;;;;;;;;AAwBSC,IAAAA,Y,GAAe,K;;;;;;;;;;;;;;;;;;AAkBfC,IAAAA,U,GAAa,UAACC,KAAD,EAAkD;AACrE;AACEC,MAAAA,IADF;;;;;;;;;;;AAYID,MAAAA,KAZJ,CACEC,IADF,CAEEN,OAFF,GAYIK,KAZJ,CAEEL,OAFF,CAGEO,IAHF,GAYIF,KAZJ,CAGEE,IAHF,CAIEC,KAJF,GAYIH,KAZJ,CAIEG,KAJF,CAKEC,KALF,GAYIJ,KAZJ,CAKEI,KALF,CAMEC,kBANF,GAYIL,KAZJ,CAMEK,kBANF,CAOEC,SAPF,GAYIN,KAZJ,CAOEM,SAPF,CAQEC,YARF,GAYIP,KAZJ,CAQEO,YARF,CASEC,YATF,GAYIR,KAZJ,CASEQ,YATF,CAUEC,QAVF,GAYIT,KAZJ,CAUES,QAVF,CAWKC,IAXL,+CAYIV,KAZJ;;AAcA,UAAMW,KAAK,GAAGP,KAAK,KAAK,OAAV,IAAqB,CAAC,MAAKJ,KAAL,CAAWY,QAA/C;;AAEA,UAAIC,WAAW,GAAG,IAAlB;AACA,UAAIX,IAAJ,EAAU;AACRW,QAAAA,WAAW,gBAAG,sCAAK,SAAS,EAAEC,iBAAOZ,IAAP,CAAY,MAAKa,KAAjB,CAAhB,IAA0Cb,IAA1C,CAAd;AACD;;AAED,UAAMc,SAAS,GAAG;AACfF,uBAAOpB,IAAP,CAAY,MAAKqB,KAAjB,CADe,IACW,IADX;AAEfD,uBAAOG,UAAP,CAAkB,MAAKF,KAAvB,CAFe,IAEiBN,QAFjB;AAGfK,uBAAOX,KAAP,EAHe,IAGE,CAAC,CAACA,KAHJ;AAIfW,uBAAOH,KAAP,CAAa,MAAKI,KAAlB,CAJe,IAIYJ,KAJZ;AAKfG,uBAAOI,QAAP,CAAgB,MAAKH,KAArB,CALe,IAKeX,KAAK,KAAK,UALzB;AAMfU,uBAAOb,IAAP,CAAY,MAAKc,KAAjB,CANe,IAMW,CAAC,CAACd,IANb;AAOfa,uBAAOK,QAAP,CAAgB,MAAKJ,KAArB,CAPe,IAOeK,OAAO,CAACP,WAAD,CAAP,IAAwB,CAAC,CAACR,kBAPzC;AAQfS,uBAAOF,QAAP,CAAgB,MAAKG,KAArB,CARe,IAQe,CAAC,CAAC,MAAKf,KAAL,CAAWY,QAR5B,OAAlB;;;AAWA,UAAQS,QAAR,GAAqB,MAAKrB,KAA1B,CAAQqB,QAAR;;AAEA,UAAIC,OAAO,GAAGD,QAAd;AACA,UAAI,uBAAWA,QAAX,CAAJ,EAA0B;AACxBC,QAAAA,OAAO,GAAGD,QAAQ,CAAC,MAAKrB,KAAL,CAAWI,KAAZ,CAAlB;AACD;;AAED,UAAMmB,SAAS,GAAG,MAAKC,YAAL,EAAlB;;AAEA;AACE,qCAAC,SAAD;AACE,sBAAU/B,gBAAgB,CAACC,IAD7B;AAEMgB,QAAAA,IAFN;AAGE,UAAA,KAAK,EAAEN,KAHT;AAIE,UAAA,WAAW,EAAE,MAAKqB,mBAJpB;AAKE,UAAA,YAAY,EAAE,MAAKC,gBALrB;AAME,UAAA,SAAS,EAAEV,SANb;AAOE,UAAA,QAAQ,EAAE,CAAC,CAPb;;AASGH,QAAAA,WATH;AAUGS,QAAAA,OAVH;AAWG,cAAKtB,KAAL,CAAWL,OAAX;AACC;AACE,sBAAUF,gBAAgB,CAACE,OAD7B;AAEE,UAAA,SAAS,EAAE;AACRmB,2BAAOnB,OAAP,CAAe,MAAKoB,KAApB,CADQ,IACqB,IADrB;AAERD,2BAAOa,YAAP,CAAoB,MAAKZ,KAAzB,CAFQ,IAE0BJ,KAF1B,QAFb;;;AAOGhB,QAAAA,OAPH,CAZJ,CADF;;;;;AAyBD,K;;;;AAIO8B,IAAAA,mB,GAAsB,UAACG,CAAD,EAAsC;AAClE,UAAI,CAAC,MAAK9B,YAAN,IAAsB,MAAKE,KAAL,CAAWO,YAArC,EAAmD;AACjD,cAAKT,YAAL,GAAoB,IAApB;AACA,cAAKE,KAAL,CAAWO,YAAX,CAAwBqB,CAAxB;AACD;AACF,K;;AAEOF,IAAAA,gB,GAAmB,UAACE,CAAD,EAAsC;AAC/D,YAAK9B,YAAL,GAAoB,KAApB;AACA,UAAI,MAAKE,KAAL,CAAWQ,YAAf,EAA6B;AAC3B,cAAKR,KAAL,CAAWQ,YAAX,CAAwBoB,CAAxB;AACD;AACF,K;;AAEOJ,IAAAA,Y,GAAe,YAAM;AAC3B,wBAAsC,MAAKxB,KAA3C,CAAQY,QAAR,eAAQA,QAAR,CAAkBN,SAAlB,eAAkBA,SAAlB,CAA6BuB,IAA7B,eAA6BA,IAA7B;;AAEA,UAAIjB,QAAJ,EAAc;AACZ,eAAO,QAAP;AACD;;AAED,UAAIN,SAAJ,EAAe;AACb,eAAOA,SAAP;AACD;;AAED,UAAIuB,IAAJ,EAAU;AACR,eAAO,GAAP;AACD;;AAED,aAAO,QAAP;AACD,K,sDApHMC,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACf,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAACgB,WAAjC,IAAkD,MAAI,CAAC/B,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,C,mBAvC2BiC,eAAMT,S,WACpBU,mB,GAAsB,U,UACtBC,a,GAAgB,I,UAEhBC,S,GAAY,EACxBxC,OAAO,EAAEyC,mBAAUC,IADK,EAGxBzB,QAAQ,EAAEwB,mBAAUE,IAHI,EAKxBT,IAAI,EAAEO,mBAAUG,MALQ,EAOxBrC,IAAI,EAAEkC,mBAAUC,IAPQ,EASxBlC,KAAK,EAAEiC,mBAAUE,IATO,EAWxBlC,KAAK,EAAEgC,mBAAUG,MAXO,EAaxBC,MAAM,EAAEJ,mBAAUG,MAbM,EAexBE,OAAO,EAAEL,mBAAUM,IAfK,E;;;AA6IrB,IAAMC,UAAU,GAAG,+BAAmB,UAAnB,CAAnB,C","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isFunction, isReactUIComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode/rootNodeDecorator';\n\nimport { styles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps extends CommonProps {\n /**\n * @ignore\n */\n _enableIconPadding?: boolean;\n /**\n * Добавляет описание для элемента меню.\n */\n comment?: React.ReactNode;\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет элементу меню иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Меняет цвет текста на синий.\n */\n link?: boolean;\n /**\n * @ignore\n */\n loose?: boolean;\n /**\n * @ignore\n */\n state?: MenuItemState;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n /**\n * HTML-атрибут `target`.\n */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * HTML-атрибут `title`.\n */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n /**\n * HTML-атрибут `href`.\n */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n /**\n * Заменяет корневой элемент, на компонент переданный в проп.\n *\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`.\n */\n component?: React.ComponentType<any>;\n\n isMobile?: boolean;\n}\n\nexport const MenuItemDataTids = {\n root: 'MenuItem__root',\n comment: 'MenuItem__comment',\n} as const;\n\n/**\n *\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: [`DropdownMenu`](#/Components/DropdownMenu), [`Kebab`](#/Components/Kebab), [`TooltipMenu`](#/Components/TooltipMenu) и [`Select`](#/Components/Select).\n */\n@rootNode\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const {\n link,\n comment,\n icon,\n loose,\n state,\n _enableIconPadding,\n component,\n onMouseEnter,\n onMouseLeave,\n isMobile,\n ...rest\n } = props;\n\n const hover = state === 'hover' && !this.props.disabled;\n\n let iconElement = null;\n if (icon) {\n iconElement = <div className={styles.icon(this.theme)}>{icon}</div>;\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [styles.rootMobile(this.theme)]: isMobile,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: hover,\n [styles.selected(this.theme)]: state === 'selected',\n [styles.link(this.theme)]: !!link,\n [styles.withIcon(this.theme)]: Boolean(iconElement) || !!_enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n data-tid={MenuItemDataTids.root}\n {...rest}\n state={state}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n className={className}\n tabIndex={-1}\n >\n {iconElement}\n {content}\n {this.props.comment && (\n <div\n data-tid={MenuItemDataTids.comment}\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: hover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered && this.props.onMouseEnter) {\n this.mouseEntered = true;\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (disabled) {\n return 'button';\n }\n\n if (component) {\n return component;\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n}\n\nexport const isMenuItem = isReactUIComponent('MenuItem');\n"]}
|
|
@@ -330,7 +330,7 @@ Modal = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(M
|
|
|
330
330
|
|
|
331
331
|
throttledCheckHorizontalScroll = (0, _lodash.default)(_this.checkHorizontalScrollAppearance, 100);_this.
|
|
332
332
|
|
|
333
|
-
handleResize = function (
|
|
333
|
+
handleResize = function () {
|
|
334
334
|
LayoutEvents.emit();
|
|
335
335
|
};_this.
|
|
336
336
|
|
|
@@ -344,5 +344,5 @@ Modal = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(M
|
|
|
344
344
|
|
|
345
345
|
setHasPanel = function (hasPanel) {if (hasPanel === void 0) {hasPanel = false;}
|
|
346
346
|
_this.state.hasPanel !== hasPanel && _this.setState({ hasPanel: hasPanel });
|
|
347
|
-
};return _this;}var _proto = Modal.prototype;_proto.componentDidMount = function componentDidMount() {this.stackSubscription = _ModalStack.ModalStack.add(this, this.handleStackChange);if (mountedModalsCount === 0) {window.addEventListener('resize', this.throttledCheckHorizontalScroll);}mountedModalsCount++;window.addEventListener('keydown', this.handleKeyDown);this.checkHorizontalScrollAppearance();if (this.containerNode) {this.containerNode.addEventListener('scroll', LayoutEvents.emit);}};_proto.componentWillUnmount = function componentWillUnmount() {if (--mountedModalsCount === 0) {window.removeEventListener('resize', this.throttledCheckHorizontalScroll);LayoutEvents.emit();}window.removeEventListener('keydown', this.handleKeyDown);if ((0, _utils.isNonNullable)(this.stackSubscription)) {this.stackSubscription.remove();}_ModalStack.ModalStack.remove(this);if (this.containerNode) {this.containerNode.removeEventListener('scroll', LayoutEvents.emit);}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this3 = this;var _this$state = this.state,hasHeader = _this$state.hasHeader,hasFooter = _this$state.hasFooter,hasPanel = _this$state.hasPanel;var modalContextProps = { hasHeader: hasHeader, horizontalScroll: this.state.horizontalScroll, setHasHeader: this.setHasHeader, setHasFooter: this.setHasFooter, setHasPanel: this.setHasPanel };if (!this.props.noClose) {modalContextProps.close = { disableClose: this.props.disableClose, requestClose: this.requestClose };}if (!hasFooter) {modalContextProps.additionalPadding = true;}if (hasFooter && hasPanel) {modalContextProps.additionalPadding = true;}var style = {};var containerStyle = {};if (this.props.width) {style.width = this.props.width;} else {containerStyle.width = 'auto';}return /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, null, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'Modal', className: _Modal.styles.root() }, /*#__PURE__*/_react.default.createElement(_HideBodyVerticalScroll.HideBodyVerticalScroll, null), this.state.hasBackground && /*#__PURE__*/_react.default.createElement("div", { className: _Modal.styles.bg(this.theme) }), /*#__PURE__*/_react.default.createElement("div", { ref: this.refContainer, className: _Modal.styles.container(), onMouseDown: this.handleContainerMouseDown, onMouseUp: this.handleContainerMouseUp, onClick: this.handleContainerClick, "data-tid": ModalDataTids.container }, /*#__PURE__*/_react.default.createElement(_ResponsiveLayout.ResponsiveLayout, null, function (_ref) {var _cx, _cx2, _cx3, _cx4, _cx5;var isMobile = _ref.isMobile;return /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx = {}, _cx[_Modal.styles.centerContainer(
|
|
347
|
+
};return _this;}var _proto = Modal.prototype;_proto.componentDidMount = function componentDidMount() {this.stackSubscription = _ModalStack.ModalStack.add(this, this.handleStackChange);if (mountedModalsCount === 0) {window.addEventListener('resize', this.throttledCheckHorizontalScroll);}mountedModalsCount++;window.addEventListener('keydown', this.handleKeyDown);this.checkHorizontalScrollAppearance();if (this.containerNode) {this.containerNode.addEventListener('scroll', LayoutEvents.emit);}};_proto.componentWillUnmount = function componentWillUnmount() {if (--mountedModalsCount === 0) {window.removeEventListener('resize', this.throttledCheckHorizontalScroll);LayoutEvents.emit();}window.removeEventListener('keydown', this.handleKeyDown);if ((0, _utils.isNonNullable)(this.stackSubscription)) {this.stackSubscription.remove();}_ModalStack.ModalStack.remove(this);if (this.containerNode) {this.containerNode.removeEventListener('scroll', LayoutEvents.emit);}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this3 = this;var _this$state = this.state,hasHeader = _this$state.hasHeader,hasFooter = _this$state.hasFooter,hasPanel = _this$state.hasPanel;var modalContextProps = { hasHeader: hasHeader, horizontalScroll: this.state.horizontalScroll, setHasHeader: this.setHasHeader, setHasFooter: this.setHasFooter, setHasPanel: this.setHasPanel };if (!this.props.noClose) {modalContextProps.close = { disableClose: this.props.disableClose, requestClose: this.requestClose };}if (!hasFooter) {modalContextProps.additionalPadding = true;}if (hasFooter && hasPanel) {modalContextProps.additionalPadding = true;}var style = {};var containerStyle = {};if (this.props.width) {style.width = this.props.width;} else {containerStyle.width = 'auto';}return /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, null, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'Modal', className: _Modal.styles.root() }, /*#__PURE__*/_react.default.createElement(_HideBodyVerticalScroll.HideBodyVerticalScroll, null), this.state.hasBackground && /*#__PURE__*/_react.default.createElement("div", { className: _Modal.styles.bg(this.theme) }), /*#__PURE__*/_react.default.createElement("div", { ref: this.refContainer, className: _Modal.styles.container(), onMouseDown: this.handleContainerMouseDown, onMouseUp: this.handleContainerMouseUp, onClick: this.handleContainerClick, "data-tid": ModalDataTids.container }, /*#__PURE__*/_react.default.createElement(_ResponsiveLayout.ResponsiveLayout, null, function (_ref) {var _cx, _cx2, _cx3, _cx4, _cx5;var isMobile = _ref.isMobile;return /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx = {}, _cx[_Modal.styles.centerContainer()] = true, _cx[_Modal.styles.mobileCenterContainer()] = isMobile, _cx[_Modal.styles.alignTop()] = Boolean(_this3.props.alignTop), _cx)), style: isMobile ? undefined : containerStyle, "data-tid": ModalDataTids.content }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx2 = {}, _cx2[_Modal.styles.window(_this3.theme)] = true, _cx2[_Modal.styles.mobileWindow()] = isMobile, _cx2)), style: isMobile ? undefined : style }, /*#__PURE__*/_react.default.createElement(_ResizeDetector.ResizeDetector, { onResize: _this3.handleResize, fullHeight: isMobile }, /*#__PURE__*/_react.default.createElement(_reactFocusLock.default, { disabled: _this3.getProps().disableFocusLock, autoFocus: false, className: (0, _Emotion.cx)((_cx3 = {}, _cx3[_Modal.styles.columnFlexContainer()] = isMobile, _cx3), 'focus-lock-container') }, !hasHeader && !_this3.props.noClose && /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'ModalCross', className: (0, _Emotion.cx)((_cx4 = {}, _cx4[_Modal.styles.closeWrapper(_this3.theme)] = true, _cx4[_Modal.styles.mobileCloseWrapper(_this3.theme)] = isMobile, _cx4)) }, /*#__PURE__*/_react.default.createElement(_ModalClose.ModalClose, { className: (0, _Emotion.cx)((_cx5 = {}, _cx5[_Modal.styles.mobileCloseWithoutHeader()] = isMobile && !_this3.state.hasHeader, _cx5)), requestClose: _this3.requestClose, disableClose: _this3.props.disableClose })), /*#__PURE__*/_react.default.createElement(_ModalContext.ModalContext.Provider, { value: modalContextProps }, _this3.props.children)))));})))));};return Modal;}(_react.default.Component);exports.Modal = Modal;Modal.__KONTUR_REACT_UI__ = 'Modal';Modal.Header = _ModalHeader.ModalHeader;Modal.Body = _ModalBody.ModalBody;Modal.Footer = _ModalFooter.ModalFooter;Modal.defaultProps = { // NOTE: в ie нормально не работает
|
|
348
348
|
disableFocusLock: _client.isIE11 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Modal.tsx"],"names":["mountedModalsCount","ModalDataTids","container","content","close","Modal","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","LayoutEvents","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","window","addEventListener","componentWillUnmount","removeEventListener","remove","render","theme","renderMain","modalContextProps","noClose","additionalPadding","style","containerStyle","width","styles","root","bg","isMobile","centerContainer","mobileCenterContainer","alignTop","Boolean","undefined","mobileWindow","disableFocusLock","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","children","React","Component","__KONTUR_REACT_UI__","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter","isIE11"],"mappings":"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","sourcesContent":["import React from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps extends CommonProps {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n window.addEventListener('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n window.addEventListener('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n window.removeEventListener('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n window.removeEventListener('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\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 private renderMain() {\n const { hasHeader, hasFooter, hasPanel } = this.state;\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!this.props.noClose) {\n modalContextProps.close = {\n disableClose: this.props.disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (this.props.width) {\n style.width = this.props.width;\n } else {\n containerStyle.width = 'auto';\n }\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && <div className={styles.bg(this.theme)} />}\n <div\n ref={this.refContainer}\n className={styles.container()}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <ResponsiveLayout>\n {({ isMobile }) => {\n return (\n <div\n className={cx({\n [styles.centerContainer(this.theme)]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(this.props.alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({ [styles.window(this.theme)]: true, [styles.mobileWindow()]: isMobile })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={this.getProps().disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !this.props.noClose && (\n <ZIndex\n priority={'ModalCross'}\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={this.props.disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>\n {this.props.children}\n </ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n );\n }}\n </ResponsiveLayout>\n </div>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = (event: UIEvent) => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Modal.tsx"],"names":["mountedModalsCount","ModalDataTids","container","content","close","Modal","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","LayoutEvents","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","window","addEventListener","componentWillUnmount","removeEventListener","remove","render","theme","renderMain","modalContextProps","noClose","additionalPadding","style","containerStyle","width","styles","root","bg","isMobile","centerContainer","mobileCenterContainer","alignTop","Boolean","undefined","mobileWindow","disableFocusLock","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","children","React","Component","__KONTUR_REACT_UI__","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter","isIE11"],"mappings":"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","sourcesContent":["import React from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps extends CommonProps {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n window.addEventListener('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n window.addEventListener('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n window.removeEventListener('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n window.removeEventListener('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\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 private renderMain() {\n const { hasHeader, hasFooter, hasPanel } = this.state;\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!this.props.noClose) {\n modalContextProps.close = {\n disableClose: this.props.disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (this.props.width) {\n style.width = this.props.width;\n } else {\n containerStyle.width = 'auto';\n }\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && <div className={styles.bg(this.theme)} />}\n <div\n ref={this.refContainer}\n className={styles.container()}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <ResponsiveLayout>\n {({ isMobile }) => {\n return (\n <div\n className={cx({\n [styles.centerContainer()]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(this.props.alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({ [styles.window(this.theme)]: true, [styles.mobileWindow()]: isMobile })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={this.getProps().disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !this.props.noClose && (\n <ZIndex\n priority={'ModalCross'}\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={this.props.disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>\n {this.props.children}\n </ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n );\n }}\n </ResponsiveLayout>\n </div>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
|
|
@@ -5,7 +5,7 @@ export declare const styles: {
|
|
|
5
5
|
container(): string;
|
|
6
6
|
window(t: Theme): string;
|
|
7
7
|
mobileWindow(): string;
|
|
8
|
-
centerContainer(
|
|
8
|
+
centerContainer(): string;
|
|
9
9
|
mobileCenterContainer(): string;
|
|
10
10
|
alignTop(): string;
|
|
11
11
|
close(t: Theme): string;
|
|
@@ -32,7 +32,7 @@ export declare const styles: {
|
|
|
32
32
|
fixedPanel(t: Theme): string;
|
|
33
33
|
headerAddPadding(): string;
|
|
34
34
|
bodyWithoutHeader(t: Theme): string;
|
|
35
|
-
mobileBodyWithoutHeader(
|
|
35
|
+
mobileBodyWithoutHeader(): string;
|
|
36
36
|
bodyWithoutPadding(): string;
|
|
37
37
|
bodyAddPaddingForPanel(t: Theme): string;
|
|
38
38
|
mobileBodyAddPaddingForPanel(t: Theme): string;
|
|
@@ -62,7 +62,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
62
62
|
|
|
63
63
|
},
|
|
64
64
|
|
|
65
|
-
centerContainer: function centerContainer(
|
|
65
|
+
centerContainer: function centerContainer() {
|
|
66
66
|
return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n "])));
|
|
67
67
|
|
|
68
68
|
|
|
@@ -338,7 +338,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
338
338
|
|
|
339
339
|
},
|
|
340
340
|
|
|
341
|
-
mobileBodyWithoutHeader: function mobileBodyWithoutHeader(
|
|
341
|
+
mobileBodyWithoutHeader: function mobileBodyWithoutHeader() {
|
|
342
342
|
return (0, _Emotion.css)(_templateObject33 || (_templateObject33 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-top: 0px;\n "])));
|
|
343
343
|
|
|
344
344
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Modal.styles.ts"],"names":["styles","root","css","bg","t","modalBackBg","modalBackOpacity","container","window","modalBg","modalBorderRadius","mobileWindow","centerContainer","mobileCenterContainer","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","modalCloseIconSize","mobileClose","mobileModalCloseButtonRightPadding","mobileModalCloseButtonTopPadding","mobileModalHeaderPadding","mobileModalCloseButtonClickArea","mobileModalCloseIconSize","mobileCloseWithoutHeader","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","mobileCloseWrapper","size","bgDefault","disabled","modalCloseButtonDisabledColor","focus","borderColorFocus","headerWrapper","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","mobileHeader","mobileModalHeaderFontSize","mobileModalHeaderLineHeight","body","modalBodyPaddingBottom","modalBodyTextColor","mobileBody","mobileModalBodyPadding","mobileModalBodyFontSize","headerWithClose","rightPadding","modalCloseLegacyGap","mobileHeaderWithClose","footer","modalFooterPaddingTop","modalFooterPaddingBottom","modalFooterTextColor","mobileFooter","mobileModalFooterPadding","footerWrapper","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderBorder","modalFixedHeaderShadow","mobileFixedHeader","fixedFooter","modalFixedFooterBorder","modalFixedFooterShadow","fixedPanel","modalFixedPanelShadow","headerAddPadding","bodyWithoutHeader","modalPaddingTop","mobileBodyWithoutHeader","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom","mobileBodyAddPaddingForPanel","columnFlexContainer"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n background: ${t.modalBg};\n border-radius: ${t.modalBorderRadius};\n `;\n },\n\n mobileWindow() {\n return css`\n width: 100%;\n height: 100%;\n overflow: auto;\n `;\n },\n\n centerContainer(t: Theme) {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n `;\n },\n\n mobileCenterContainer() {\n return css`\n margin: 0;\n width: 100%;\n height: 100%;\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n mobileClose(t: Theme) {\n return css`\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${parseInt(t.mobileModalCloseButtonTopPadding) + parseInt(t.mobileModalHeaderPadding)}px;\n padding: ${t.mobileModalCloseButtonClickArea};\n margin: -${t.mobileModalCloseButtonClickArea};\n\n & > svg {\n width: ${t.mobileModalCloseIconSize};\n height: ${t.mobileModalCloseIconSize};\n }\n `;\n },\n\n mobileCloseWithoutHeader() {\n return css`\n position: static;\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n mobileCloseWrapper(t: Theme) {\n const size = parseInt(t.mobileModalCloseIconSize) + parseInt(t.mobileModalCloseButtonClickArea) * 2;\n\n return css`\n position: absolute;\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${t.mobileModalCloseButtonTopPadding};\n padding: 0px;\n margin: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ${size}px;\n height: ${size}px;\n background: radial-gradient(50% 50% at 50% 50%, ${t.bgDefault} 60%, rgba(255, 255, 255, 0) 100%);\n border-radius: ${size}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n color: ${t.modalCloseButtonHoverColor};\n outline: 2px solid ${t.borderColorFocus};\n `;\n },\n\n headerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n `;\n },\n\n mobileHeader(t: Theme) {\n return css`\n font-size: ${t.mobileModalHeaderFontSize};\n line-height: ${t.mobileModalHeaderLineHeight};\n padding: ${t.mobileModalHeaderPadding};\n `;\n },\n\n body(t: Theme) {\n return css`\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalBodyTextColor};\n `;\n },\n\n mobileBody(t: Theme) {\n return css`\n padding: ${t.mobileModalBodyPadding};\n padding-top: 0px;\n display: flex;\n flex-flow: column;\n flex: 1;\n font-size: ${t.mobileModalBodyFontSize};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n mobileHeaderWithClose(t: Theme) {\n return css`\n padding-right: ${2 * parseInt(t.mobileModalCloseButtonRightPadding) + parseInt(t.mobileModalCloseIconSize)}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalFooterTextColor};\n border-radius: 0 0 ${t.modalBorderRadius} ${t.modalBorderRadius};\n `;\n },\n\n mobileFooter(t: Theme) {\n return css`\n padding: ${t.mobileModalFooterPadding};\n `;\n },\n\n footerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: 10px;\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n border-bottom: ${t.modalFixedHeaderBorder};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n mobileFixedHeader(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalHeaderPadding};\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: 20px;\n margin-top: 10px;\n background: ${t.modalFixedHeaderBg};\n border-top: ${t.modalFixedFooterBorder};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n fixedPanel(t: Theme) {\n return css`\n &:before {\n box-shadow: ${t.modalFixedPanelShadow};\n }\n `;\n },\n\n headerAddPadding() {\n return css`\n padding-bottom: 22px;\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n mobileBodyWithoutHeader(t: Theme) {\n return css`\n padding-top: 0px;\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n\n mobileBodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalBodyPadding};\n `;\n },\n\n columnFlexContainer() {\n return css`\n height: 100%;\n display: flex;\n flex-flow: column;\n overflow-y: scroll;\n `;\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["Modal.styles.ts"],"names":["styles","root","css","bg","t","modalBackBg","modalBackOpacity","container","window","modalBg","modalBorderRadius","mobileWindow","centerContainer","mobileCenterContainer","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","modalCloseIconSize","mobileClose","mobileModalCloseButtonRightPadding","mobileModalCloseButtonTopPadding","mobileModalHeaderPadding","mobileModalCloseButtonClickArea","mobileModalCloseIconSize","mobileCloseWithoutHeader","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","mobileCloseWrapper","size","bgDefault","disabled","modalCloseButtonDisabledColor","focus","borderColorFocus","headerWrapper","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","mobileHeader","mobileModalHeaderFontSize","mobileModalHeaderLineHeight","body","modalBodyPaddingBottom","modalBodyTextColor","mobileBody","mobileModalBodyPadding","mobileModalBodyFontSize","headerWithClose","rightPadding","modalCloseLegacyGap","mobileHeaderWithClose","footer","modalFooterPaddingTop","modalFooterPaddingBottom","modalFooterTextColor","mobileFooter","mobileModalFooterPadding","footerWrapper","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderBorder","modalFixedHeaderShadow","mobileFixedHeader","fixedFooter","modalFixedFooterBorder","modalFixedFooterShadow","fixedPanel","modalFixedPanelShadow","headerAddPadding","bodyWithoutHeader","modalPaddingTop","mobileBodyWithoutHeader","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom","mobileBodyAddPaddingForPanel","columnFlexContainer"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n background: ${t.modalBg};\n border-radius: ${t.modalBorderRadius};\n `;\n },\n\n mobileWindow() {\n return css`\n width: 100%;\n height: 100%;\n overflow: auto;\n `;\n },\n\n centerContainer() {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n `;\n },\n\n mobileCenterContainer() {\n return css`\n margin: 0;\n width: 100%;\n height: 100%;\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n mobileClose(t: Theme) {\n return css`\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${parseInt(t.mobileModalCloseButtonTopPadding) + parseInt(t.mobileModalHeaderPadding)}px;\n padding: ${t.mobileModalCloseButtonClickArea};\n margin: -${t.mobileModalCloseButtonClickArea};\n\n & > svg {\n width: ${t.mobileModalCloseIconSize};\n height: ${t.mobileModalCloseIconSize};\n }\n `;\n },\n\n mobileCloseWithoutHeader() {\n return css`\n position: static;\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n mobileCloseWrapper(t: Theme) {\n const size = parseInt(t.mobileModalCloseIconSize) + parseInt(t.mobileModalCloseButtonClickArea) * 2;\n\n return css`\n position: absolute;\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${t.mobileModalCloseButtonTopPadding};\n padding: 0px;\n margin: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ${size}px;\n height: ${size}px;\n background: radial-gradient(50% 50% at 50% 50%, ${t.bgDefault} 60%, rgba(255, 255, 255, 0) 100%);\n border-radius: ${size}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n color: ${t.modalCloseButtonHoverColor};\n outline: 2px solid ${t.borderColorFocus};\n `;\n },\n\n headerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n `;\n },\n\n mobileHeader(t: Theme) {\n return css`\n font-size: ${t.mobileModalHeaderFontSize};\n line-height: ${t.mobileModalHeaderLineHeight};\n padding: ${t.mobileModalHeaderPadding};\n `;\n },\n\n body(t: Theme) {\n return css`\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalBodyTextColor};\n `;\n },\n\n mobileBody(t: Theme) {\n return css`\n padding: ${t.mobileModalBodyPadding};\n padding-top: 0px;\n display: flex;\n flex-flow: column;\n flex: 1;\n font-size: ${t.mobileModalBodyFontSize};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n mobileHeaderWithClose(t: Theme) {\n return css`\n padding-right: ${2 * parseInt(t.mobileModalCloseButtonRightPadding) + parseInt(t.mobileModalCloseIconSize)}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalFooterTextColor};\n border-radius: 0 0 ${t.modalBorderRadius} ${t.modalBorderRadius};\n `;\n },\n\n mobileFooter(t: Theme) {\n return css`\n padding: ${t.mobileModalFooterPadding};\n `;\n },\n\n footerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: 10px;\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n border-bottom: ${t.modalFixedHeaderBorder};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n mobileFixedHeader(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalHeaderPadding};\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: 20px;\n margin-top: 10px;\n background: ${t.modalFixedHeaderBg};\n border-top: ${t.modalFixedFooterBorder};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n fixedPanel(t: Theme) {\n return css`\n &:before {\n box-shadow: ${t.modalFixedPanelShadow};\n }\n `;\n },\n\n headerAddPadding() {\n return css`\n padding-bottom: 22px;\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n mobileBodyWithoutHeader() {\n return css`\n padding-top: 0px;\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n\n mobileBodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalBodyPadding};\n `;\n },\n\n columnFlexContainer() {\n return css`\n height: 100%;\n display: flex;\n flex-flow: column;\n overflow-y: scroll;\n `;\n },\n});\n"]}
|
|
@@ -46,7 +46,7 @@ ModalBody = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_c
|
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
handleResize = function (
|
|
49
|
+
handleResize = function () {
|
|
50
50
|
LayoutEvents.emit();
|
|
51
51
|
};return _this;}var _proto = ModalBody.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.
|
|
52
52
|
|
|
@@ -63,7 +63,7 @@ ModalBody = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_c
|
|
|
63
63
|
_Modal.styles.body(_this3.theme)] = true, _cx[
|
|
64
64
|
_Modal.styles.mobileBody(_this3.theme)] = _this3.isMobileLayout, _cx[
|
|
65
65
|
_Modal.styles.bodyWithoutHeader(_this3.theme)] = !hasHeader, _cx[
|
|
66
|
-
_Modal.styles.mobileBodyWithoutHeader(
|
|
66
|
+
_Modal.styles.mobileBodyWithoutHeader()] = !hasHeader && _this3.isMobileLayout, _cx[
|
|
67
67
|
_Modal.styles.bodyAddPaddingForPanel(_this3.theme)] = additionalPadding, _cx[
|
|
68
68
|
_Modal.styles.mobileBodyAddPaddingForPanel(_this3.theme)] = additionalPadding && _this3.isMobileLayout, _cx[
|
|
69
69
|
_Modal.styles.bodyWithoutPadding()] = noPadding, _cx)) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ModalBody.tsx"],"names":["ModalBody","responsiveLayout","rootNode","handleResize","
|
|
1
|
+
{"version":3,"sources":["ModalBody.tsx"],"names":["ModalBody","responsiveLayout","rootNode","handleResize","LayoutEvents","emit","render","theme","renderMain","noPadding","props","additionalPadding","hasHeader","setRootNode","styles","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","bodyWithoutPadding","children","React","Component","__KONTUR_REACT_UI__","__MODAL_BODY__"],"mappings":"uUAAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uC;;;;;;;;;AASA;AACA;AACA;AACA;AACA,G;;;AAGaA,S,OAFZC,2B,eACAC,kB;;;;;;;;;;;;;;;;;;;AAoBSC,IAAAA,Y,GAAe,YAAM;AAC3BC,MAAAA,YAAY,CAACC,IAAb;AACD,K,uDAbMC,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C;;AAMMA,EAAAA,U,GAAP,sBAAiC;AAC/B,QAAQC,SAAR,GAAsB,KAAKC,KAA3B,CAAQD,SAAR;AACA;AACE,mCAAC,0BAAD,CAAc,QAAd;AACG,mCAAGE,iBAAH,QAAGA,iBAAH,CAAsBC,SAAtB,QAAsBA,SAAtB;AACC,uCAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAACC,WAAjC,IAAkD,MAAI,CAACH,KAAvD;AACE,uCAAC,cAAD;AACE,YAAA,QAAQ,EAAE,WADZ;AAEE,YAAA,qBAAqB,MAFvB;AAGE,YAAA,SAAS,EAAE;AACRI,0BAAOC,IAAP,CAAY,MAAI,CAACR,KAAjB,CADQ,IACkB,IADlB;AAERO,0BAAOE,UAAP,CAAkB,MAAI,CAACT,KAAvB,CAFQ,IAEwB,MAAI,CAACU,cAF7B;AAGRH,0BAAOI,iBAAP,CAAyB,MAAI,CAACX,KAA9B,CAHQ,IAG+B,CAACK,SAHhC;AAIRE,0BAAOK,uBAAP,EAJQ,IAI2B,CAACP,SAAD,IAAc,MAAI,CAACK,cAJ9C;AAKRH,0BAAOM,sBAAP,CAA8B,MAAI,CAACb,KAAnC,CALQ,IAKoCI,iBALpC;AAMRG,0BAAOO,4BAAP,CAAoC,MAAI,CAACd,KAAzC,CANQ,IAM0CI,iBAAiB,IAAI,MAAI,CAACM,cANpE;AAORH,0BAAOQ,kBAAP,EAPQ,IAOsBb,SAPtB,OAHb;;;AAaG,UAAA,MAAI,CAACQ,cAAL;AACC,uCAAC,8BAAD,IAAgB,QAAQ,EAAE,MAAI,CAACd,YAA/B,IAA8C,MAAI,CAACO,KAAL,CAAWa,QAAzD,CADD;;AAGC,UAAA,MAAI,CAACb,KAAL,CAAWa,QAhBf,CADF,CADD,GADH,CADF;;;;;;;AA2BD,G,oBApD4BC,eAAMC,S,WACrBC,mB,GAAsB,W,UACtBC,c,GAAiB,I","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { ModalContext } from './ModalContext';\nimport { styles } from './Modal.styles';\n\nexport interface ModalBodyProps extends CommonProps {\n /**\n * убирает отступы\n */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами от края модалки\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static __MODAL_BODY__ = true;\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 private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const { noPadding } = this.props;\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n priority={'ModalBody'}\n createStackingContext\n className={cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Nullable } from '../../typings/utility-types';
|
|
3
3
|
import { CommonProps } from '../../internal/CommonWrapper';
|
|
4
|
-
interface ItemComponentProps {
|
|
4
|
+
export interface ItemComponentProps {
|
|
5
5
|
active: boolean;
|
|
6
6
|
children?: React.ReactNode;
|
|
7
7
|
className: string;
|