@skbkontur/react-ui 5.4.7-7ccf0.0 → 5.4.7-a27a4.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/cjs/components/Button/Button.d.ts +1 -0
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Calendar/Calendar.d.ts +1 -1
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.d.ts +2 -2
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
- package/cjs/components/DateRangePicker/DateRangePickerContext.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +4 -4
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js +3 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +1 -1
- package/cjs/components/FileUploader/FileUploaderFile.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
- package/cjs/components/GlobalLoader/GlobalLoaderView.js +49 -50
- package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +2 -2
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.d.ts +3 -1
- package/cjs/components/Input/InputLayout/InputLayout.js +2 -1
- package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +6 -4
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +1 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +1 -1
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/cjs/components/MaskedInput/FixedIMaskInput.js +3 -1
- package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.js +2 -2
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +4 -1
- package/cjs/components/Modal/Modal.js +8 -3
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +2 -2
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +2 -2
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ResponsiveLayout/decorator.d.ts +0 -3
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +1 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +5 -2
- package/cjs/components/SidePage/SidePage.js +9 -3
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +1 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +1 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/SingleToast/SingleToast.d.ts +1 -1
- package/cjs/components/Sticky/Sticky.js +6 -2
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +1 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Token/TokenView.d.ts +2 -1
- package/cjs/components/Token/TokenView.js +4 -4
- package/cjs/components/Token/TokenView.js.map +1 -1
- package/cjs/components/TokenInput/TextWidthHelper.js +3 -1
- package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.js +14 -7
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +4 -4
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/hooks/useDrop.js +1 -1
- package/cjs/hooks/useDrop.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +3 -2
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +84 -83
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +11 -12
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
- package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js +28 -23
- package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/Menu/Menu.js +6 -2
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Menu/MenuNavigation.d.ts +1 -1
- package/cjs/internal/Menu/MenuNavigation.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +9 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.js +2 -4
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +9 -3
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -2
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js +3 -1
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
- package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
- package/cjs/lib/dom/getDOMRect.d.ts +1 -1
- package/cjs/lib/dom/getDOMRect.js +3 -1
- package/cjs/lib/dom/getDOMRect.js.map +1 -1
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
- package/cjs/lib/forwardRefAndName.d.ts +3 -2
- package/cjs/lib/forwardRefAndName.js +2 -1
- package/cjs/lib/forwardRefAndName.js.map +1 -1
- package/cjs/lib/getElementRef.d.ts +5 -0
- package/cjs/lib/getElementRef.js +16 -0
- package/cjs/lib/getElementRef.js.map +1 -0
- package/cjs/lib/locale/decorators.d.ts +0 -3
- package/cjs/lib/mergeRefs.d.ts +2 -3
- package/cjs/lib/mergeRefs.js +1 -1
- package/cjs/lib/mergeRefs.js.map +1 -1
- package/cjs/lib/reactGetTextContent.js +6 -1
- package/cjs/lib/reactGetTextContent.js.map +1 -1
- package/cjs/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
- package/cjs/lib/rootNode/getRootNode.js +1 -24
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +0 -3
- package/cjs/lib/size/SizeDecorator.d.ts +0 -3
- package/cjs/lib/types/polymorphic-component.d.ts +2 -1
- package/cjs/lib/types/polymorphic-component.js.map +1 -1
- package/cjs/lib/utils.d.ts +4 -3
- package/cjs/lib/utils.js +4 -3
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/lib/withClassWrapper.d.ts +3 -8
- package/components/Button/Button/Button.js +1 -1
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -0
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +1 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateFragmentsView.d.ts +2 -2
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +1 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/components/DateRangePicker/DateRangePickerContext/DateRangePickerContext.js.map +1 -1
- package/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +4 -4
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +1 -1
- package/components/FileUploader/FileUploaderFile/FileUploaderFile.js +1 -1
- package/components/FileUploader/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +5 -4
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +2 -2
- package/components/Input/InputLayout/InputLayout/InputLayout.js +4 -2
- package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.d.ts +3 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +2 -2
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +1 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +1 -1
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput/MaskedInput.js +2 -2
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -1
- package/components/Modal/Modal/Modal.js +7 -3
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +4 -1
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +2 -2
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +2 -2
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/components/ResponsiveLayout/decorator.d.ts +0 -3
- 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/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +1 -1
- package/components/SidePage/SidePage/SidePage.js +7 -3
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +5 -2
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +1 -1
- package/components/SingleToast/SingleToast.d.ts +1 -1
- package/components/Sticky/Sticky/Sticky.js +2 -2
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +1 -1
- package/components/Token/TokenView/TokenView.js +6 -4
- package/components/Token/TokenView/TokenView.js.map +1 -1
- package/components/Token/TokenView.d.ts +2 -1
- package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +1 -1
- package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +5 -5
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +4 -4
- package/hooks/useDrop/useDrop.js +1 -1
- package/hooks/useDrop/useDrop.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +2 -2
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -3
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
- package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js +7 -4
- package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
- package/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
- package/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +2 -2
- package/internal/Menu/Menu/Menu.js +2 -2
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/MenuNavigation/MenuNavigation.js.map +1 -1
- package/internal/Menu/MenuNavigation.d.ts +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +5 -2
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +1 -0
- package/internal/Popup/Popup/Popup.js +2 -2
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +2 -2
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +1 -1
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
- package/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
- package/lib/dom/getDOMRect/getDOMRect.js.map +1 -1
- package/lib/dom/getDOMRect.d.ts +1 -1
- package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -1
- package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
- package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
- package/lib/forwardRefAndName.d.ts +3 -2
- package/lib/getElementRef/getElementRef.js +11 -0
- package/lib/getElementRef/getElementRef.js.map +1 -0
- package/lib/getElementRef/package.json +6 -0
- package/lib/getElementRef.d.ts +5 -0
- package/lib/locale/decorators.d.ts +0 -3
- package/lib/mergeRefs/mergeRefs.js.map +1 -1
- package/lib/mergeRefs.d.ts +2 -3
- package/lib/reactGetTextContent/reactGetTextContent.js +1 -1
- package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
- package/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
- package/lib/rootNode/getRootNode/getRootNode.js +0 -15
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +0 -3
- package/lib/size/SizeDecorator.d.ts +0 -3
- package/lib/types/polymorphic-component/polymorphic-component.js.map +1 -1
- package/lib/types/polymorphic-component.d.ts +2 -1
- package/lib/utils/utils.js +2 -2
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +4 -3
- package/lib/withClassWrapper.d.ts +3 -8
- package/package.json +10 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_renderEnvironment","_forwardRefAndName","_Input","_identifiers","_ThemeContext","_MaskedInput","_MaskedInput2","_ColorableInputElement","_FixedIMaskInput","_excluded","getSafeMaskInputType","exports","type","MaskedInput","forwardRefAndName","props","ref","mask","maskChar","formatChars","_props$alwaysShowMask","alwaysShowMask","_props$colored","colored","_props$imaskProps","imaskProps","customIMaskProps","_props$unmask","unmask","onValueChange","onUnexpectedInput","onChange","onBeforePasteValue","element","className","maxLength","inputProps","_objectWithoutPropertiesLoose2","default","theme","useContext","ThemeContext","_useEmotion","useEmotion","cx","styles","useStyles","getStyles","inputRef","useRef","_useState","useState","focused","setFocused","prevValue","value","String","defaultValue","prevSelectionStart","useImperativeHandle","current","Object","assign","selectAll","_inputRef$current","_inputRef$current2","focus","delaySelectAll","useEffect","_inputRef$current3","input","selectionStart","getCompatibleIMaskProps","createElement","Input","_extends2","onFocus","handleFocus","onBlur","handleBlur","onInput","handleInput","onKeyDown","handleKeyDown","onPaste","handlePaste","globalClasses","root","ColorableInputElement","showOnFocus","FixedIMaskInput","onAccept","handleAccept","event","_event$clipboardData$","_event$clipboardData","preventDefault","clipboardData","getData","replace","placeholderChar","getMaskChar","definitions","getDefinitions","eager","overwrite","lazy","disabled","_len","arguments","length","args","Array","_key","e","_e$currentTarget","currentTarget","handleUnexpectedInput","_inputRef$current4","selectAllOnFocus","_inputRef$current5","blink","bind","undefined","_e$currentTarget2","selectionEnd","isKeyBackspace","isKeyDelete"],"sources":["MaskedInput.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState, useEffect, useContext } from 'react';\nimport type { IMaskInputProps } from '@skbkontur/react-imask';\nimport type { Ref } from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport type { InputProps, InputType } from '../Input';\nimport { Input } from '../Input';\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { globalClasses, getStyles } from './MaskedInput.styles';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers';\nimport { ColorableInputElement } from './ColorableInputElement';\nimport { FixedIMaskInput } from './FixedIMaskInput';\n\nexport type MaskedInputOnBeforePasteValue = (value: string) => string;\n\nexport interface MaskedProps {\n /** Шаблон ввода, определяющий допустимые символы. */\n mask: string;\n\n /** Плейсхолдер, который отображается на месте ещё не введённых пользователем символов.\n * @default _ */\n maskChar?: string;\n\n /** Словарь правил для настройки маски, где\n * Ключ — символ для использования в маске\n * Значение — регулярка-правило\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Всегда показывать символы маски, независимо от фокуса в поле.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Событие некорректного ввода.\n * Вторым аргументом передаётся метод вспыхивания рамки поля.\n *\n * Если обработчик не задан, то при событии рамка всегда вспыхивает.\n *\n * @param value значение поля\n * @param blink метод вспыхивания рамки поля\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /**\n * Событие перед вставкой текста в поле.\n * Вызывается с аргументом value — текст из буфера.\n *\n * Обработчик должен вернуть текст — он попадёт в поле.\n *\n * @param value значение вставки.\n */\n onBeforePasteValue?: MaskedInputOnBeforePasteValue;\n\n /** Убирает из value символы маски, которые пользователь не вводил.\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропсы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nexport const getSafeMaskInputType = (type?: InputType): MaskInputType | undefined => {\n if (!type) {\n return type;\n }\n\n switch (type) {\n case 'number':\n case 'date':\n case 'time':\n case 'password':\n return 'text';\n default:\n return type;\n }\n};\n\nexport interface MaskedInputProps\n extends MaskedProps,\n Omit<\n InputProps,\n 'showClearIcon' | 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'\n > {\n type?: MaskInputType;\n}\n\n/** Поле ввода, которое ограничивает формат вводимого значения по заданной маске. Такое поле облегчает пользователю ввод и снижает количество ошибок.\n */\nexport const MaskedInput = forwardRefAndName(\n 'MaskedInput',\n function MaskedInput(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n onBeforePasteValue,\n element,\n className,\n // @ts-expect-error: могут передавать игнорируя ошибку\n maxLength,\n ...inputProps\n } = props;\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n className={cx(globalClasses.root, className, styles.root(theme))}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false} alwaysShowMask={alwaysShowMask}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function handlePaste(event: React.ClipboardEvent<HTMLInputElement>) {\n if (onBeforePasteValue && onValueChange) {\n event.preventDefault();\n onValueChange?.(onBeforePasteValue(event.clipboardData?.getData('text') ?? ''));\n }\n\n props.onPaste?.(event);\n }\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропсов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_renderEnvironment","_forwardRefAndName","_Input","_identifiers","_ThemeContext","_MaskedInput","_MaskedInput2","_ColorableInputElement","_FixedIMaskInput","_excluded","getSafeMaskInputType","exports","type","MaskedInput","forwardRefAndName","props","ref","mask","maskChar","formatChars","_props$alwaysShowMask","alwaysShowMask","_props$colored","colored","_props$imaskProps","imaskProps","customIMaskProps","_props$unmask","unmask","onValueChange","onUnexpectedInput","onChange","onBeforePasteValue","element","className","maxLength","inputProps","_objectWithoutPropertiesLoose2","default","theme","useContext","ThemeContext","_useEmotion","useEmotion","cx","styles","useStyles","getStyles","inputRef","useRef","_useState","useState","focused","setFocused","prevValue","value","String","defaultValue","prevSelectionStart","useImperativeHandle","current","Object","assign","selectAll","_inputRef$current","_inputRef$current2","focus","delaySelectAll","useEffect","_inputRef$current3","input","selectionStart","getCompatibleIMaskProps","createElement","Input","_extends2","onFocus","handleFocus","onBlur","handleBlur","onInput","handleInput","onKeyDown","handleKeyDown","onPaste","handlePaste","globalClasses","root","ColorableInputElement","showOnFocus","FixedIMaskInput","onAccept","handleAccept","event","_event$clipboardData$","_event$clipboardData","preventDefault","clipboardData","getData","replace","placeholderChar","getMaskChar","definitions","getDefinitions","eager","overwrite","lazy","disabled","_len","arguments","length","args","Array","_key","e","_e$currentTarget","currentTarget","handleUnexpectedInput","_inputRef$current4","selectAllOnFocus","_inputRef$current5","blink","bind","undefined","_e$currentTarget2","selectionEnd","isKeyBackspace","isKeyDelete"],"sources":["MaskedInput.tsx"],"sourcesContent":["import type { Ref } from 'react';\nimport React, { useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport type { IMaskInputProps } from '@skbkontur/react-imask';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport type { InputProps, InputType } from '../Input';\nimport { Input } from '../Input';\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { getStyles, globalClasses } from './MaskedInput.styles';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers';\nimport { ColorableInputElement } from './ColorableInputElement';\nimport { FixedIMaskInput } from './FixedIMaskInput';\n\nexport type MaskedInputOnBeforePasteValue = (value: string) => string;\n\nexport interface MaskedProps {\n /** Шаблон ввода, определяющий допустимые символы. */\n mask: string;\n\n /** Плейсхолдер, который отображается на месте ещё не введённых пользователем символов.\n * @default _ */\n maskChar?: string;\n\n /** Словарь правил для настройки маски, где\n * Ключ — символ для использования в маске\n * Значение — регулярка-правило\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Всегда показывать символы маски, независимо от фокуса в поле.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Событие некорректного ввода.\n * Вторым аргументом передаётся метод вспыхивания рамки поля.\n *\n * Если обработчик не задан, то при событии рамка всегда вспыхивает.\n *\n * @param value значение поля\n * @param blink метод вспыхивания рамки поля\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /**\n * Событие перед вставкой текста в поле.\n * Вызывается с аргументом value — текст из буфера.\n *\n * Обработчик должен вернуть текст — он попадёт в поле.\n *\n * @param value значение вставки.\n */\n onBeforePasteValue?: MaskedInputOnBeforePasteValue;\n\n /** Убирает из value символы маски, которые пользователь не вводил.\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропсы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nexport const getSafeMaskInputType = (type?: InputType): MaskInputType | undefined => {\n if (!type) {\n return type;\n }\n\n switch (type) {\n case 'number':\n case 'date':\n case 'time':\n case 'password':\n return 'text';\n default:\n return type;\n }\n};\n\nexport interface MaskedInputProps\n extends MaskedProps,\n Omit<\n InputProps,\n 'showClearIcon' | 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'\n > {\n type?: MaskInputType;\n}\n\n/** Поле ввода, которое ограничивает формат вводимого значения по заданной маске. Такое поле облегчает пользователю ввод и снижает количество ошибок.\n */\nexport const MaskedInput = forwardRefAndName(\n 'MaskedInput',\n function MaskedInput(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n onBeforePasteValue,\n element,\n className,\n // @ts-expect-error: могут передавать игнорируя ошибку\n maxLength,\n ...inputProps\n } = props;\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle<typeof inputRef.current, typeof inputRef.current>(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n className={cx(globalClasses.root, className, styles.root(theme))}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false} alwaysShowMask={alwaysShowMask}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function handlePaste(event: React.ClipboardEvent<HTMLInputElement>) {\n if (onBeforePasteValue && onValueChange) {\n event.preventDefault();\n onValueChange?.(onBeforePasteValue(event.clipboardData?.getData('text') ?? ''));\n }\n\n props.onPaste?.(event);\n }\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропсов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@ export interface MenuItemProps extends Pick<AriaAttributes, 'aria-describedby' |
|
|
|
14
14
|
/** Делает компонент недоступным. */
|
|
15
15
|
disabled?: boolean;
|
|
16
16
|
/** Добавляет иконку элементу меню. */
|
|
17
|
-
icon?: React.ReactElement
|
|
17
|
+
icon?: React.ReactElement;
|
|
18
18
|
/** Задает размер контрола. */
|
|
19
19
|
size?: SizeProp;
|
|
20
20
|
/** @ignore */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_scrollYCenterIntoNearestScrollable","_utils","_ThemeContext","_CommonWrapper","_rootNode","_MenuContext","_getVisualStateDataAttributes","_renderEnvironment","_MenuItem2","_excluded","_class","_MenuItem","MenuItemDataTids","exports","root","content","comment","MenuItem","withRenderEnvironment","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","iconOffsetTop","highlighted","mouseEntered","rootRef","contentRef","React","createRef","highlight","setState","unhighlight","select","event","handleClick","isEnabled","props","disabled","navigate","href","target","globalObject","open","location","renderMain","_this$cx2","_this$cx3","_this$cx4","_this$props","icon","loose","size","_enableIconPadding","component","onMouseEnter","onMouseLeave","isMobile","scrollIntoView","_this$props$rel","rel","isExternalLink","isNotSelectable","children","unusedClasses","className","style","dataTid","rest","_objectWithoutPropertiesLoose2","default","iconElement","_this$cx","createElement","top","cx","styles","getIconSizeClassName","theme","getRootSizeClassName","rootMobile","hover","isHover","selected","isSelected","getWithIconSizeClassName","Boolean","context","enableIconPadding","nonSelectable","isFunction","activeState","Component","getComponent","CommonWrapper","_extends2","rootNodeRef","setRootNode","getVisualStateDataAttributes","ref","setRootRef","onMouseOver","handleMouseEnterFix","handleMouseLeave","onClick","undefined","tabIndex","mobileContentWithIcon","isNonNullable","commentHover","e","_this$context$navigat","navigation","_this$context$navigat2","onItemClick","element","_this$props2","hasIconAmongItems","_this$context$navigat3","items","some","item","_inheritsLoose2","_proto","prototype","render","_this2","getStyles","emotion","ThemeContext","Consumer","componentDidMount","scrollYCenterIntoNearestScrollable","isBrowser","getComputedStyle","getPropertyValue","current","_this$context$navigat4","add","_this$context$setEnab","_this$context","setEnableIconPadding","componentWillUnmount","_this$context$navigat5","_this$context$setEnab2","_this$context2","remove","componentDidUpdate","prevProps","_this$context$setEnab3","_this$context3","_this$context$navigat6","_this$context$navigat7","rootLarge","rootMedium","rootSmall","iconLarge","iconMedium","iconSmall","withIconLarge","withIconMedium","withIconSmall","_createClass2","key","get","__KONTUR_REACT_UI__","displayName","__MENU_ITEM__","contextType","MenuContext","isMenuItem","isReactUIComponent"],"sources":["MenuItem.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { isBrowser } from '../../lib/globalObject';\nimport type { Nullable } from '../../typings/utility-types';\nimport { scrollYCenterIntoNearestScrollable } from '../../lib/dom/scrollYCenterIntoNearestScrollable';\nimport { isExternalLink, isFunction, isNonNullable, isReactUIComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { MenuContextType } from '../../internal/Menu/MenuContext';\nimport { MenuContext } from '../../internal/Menu/MenuContext';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Omit<CommonProps, 'children'> {\n /** Добавляет отступ иконке.\n * @ignore */\n _enableIconPadding?: boolean;\n\n /** Добавляет описание для элемента меню. */\n comment?: React.ReactNode;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Добавляет иконку элементу меню. */\n icon?: React.ReactElement<any>;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** @ignore */\n loose?: boolean;\n\n /** @ignore */\n state?: MenuItemState;\n\n /** Задает функцию, которая вызывается при клике. */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). */\n onMouseEnter?: React.MouseEventHandler;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: React.MouseEventHandler;\n\n /** @ignore */\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n\n /** Задает HTML-атрибут `target`. */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n\n /** Задает HTML-атрибут `title`. */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n\n /** Задает HTML-атрибут `href` - адрес, на который следует перейти. */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n\n /** Задает HTML-атрибут `rel`. Для внешних ссылок аттрибут rel по умолчанию равен \"noopener noreferrer\". */\n rel?: React.AnchorHTMLAttributes<HTMLAnchorElement>['rel'];\n\n /** Заменяет корневой элемент, на компонент переданный в проп.\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`. */\n component?: React.ComponentType<any>;\n\n /** Запрещает выделение и выбор данного пункта меню. */\n isNotSelectable?: boolean;\n\n /** Устанавливает стиль для отображения в мобильной версии. */\n isMobile?: boolean;\n /** @ignore */\n scrollIntoView?: boolean;\n}\n\nexport const MenuItemDataTids = {\n root: 'MenuItem__root',\n content: 'MenuItem__content',\n comment: 'MenuItem__comment',\n} as const;\n\n/**\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: DropdownMenu, Kebab, TooltipMenu и Select.\n */\n@withRenderEnvironment\n@rootNode\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static displayName = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public state = {\n iconOffsetTop: 0,\n highlighted: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private mouseEntered = false;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private rootRef: Nullable<HTMLElement> = null;\n private contentRef = React.createRef<HTMLElement>();\n static contextType = MenuContext;\n\n public context!: MenuContextType;\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public componentDidMount() {\n if (this.props.scrollIntoView && this.rootRef) {\n scrollYCenterIntoNearestScrollable(this.rootRef);\n }\n if (this.rootRef && isBrowser(this.globalObject)) {\n this.setState({\n iconOffsetTop: this.globalObject.getComputedStyle(this.rootRef).getPropertyValue('padding-top'),\n });\n }\n if (this.contentRef.current && !this.props.isNotSelectable) {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n if (this.props.icon) {\n this.context.setEnableIconPadding?.(true);\n }\n }\n\n public componentWillUnmount() {\n if (this.contentRef.current) {\n !this.props.isNotSelectable && this.context.navigation?.remove(this.contentRef.current);\n this.context.setEnableIconPadding?.(this.hasIconAmongItems());\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<MenuItemProps>) {\n if (prevProps.icon !== this.props.icon) {\n this.context.setEnableIconPadding?.(!!this.props.icon || this.hasIconAmongItems());\n }\n if (this.contentRef.current && prevProps.isNotSelectable !== this.props.isNotSelectable) {\n if (this.props.isNotSelectable) {\n this.unhighlight();\n this.context.navigation?.remove(this.contentRef.current);\n } else {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n }\n }\n\n public highlight = () => {\n this.setState({ highlighted: true });\n };\n\n public unhighlight = () => {\n this.setState({ highlighted: false });\n };\n\n public select = (event: React.SyntheticEvent<HTMLElement>) => {\n this.handleClick(event as React.MouseEvent<HTMLElement>);\n };\n\n public isEnabled = () => {\n return !this.props.disabled;\n };\n\n public navigate = () => {\n if (!this.props.href) {\n return;\n }\n if (this.props.target) {\n this.globalObject.open?.(this.props.href, this.props.target);\n } else if (this.globalObject.location) {\n this.globalObject.location.href = this.props.href;\n }\n };\n\n private getRootSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return this.styles.rootLarge(this.theme);\n case 'medium':\n return this.styles.rootMedium(this.theme);\n case 'small':\n default:\n return this.styles.rootSmall(this.theme);\n }\n }\n\n private getIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return this.styles.iconLarge(this.theme);\n case 'medium':\n return this.styles.iconMedium(this.theme);\n case 'small':\n default:\n return this.styles.iconSmall(this.theme);\n }\n }\n\n private getWithIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return this.styles.withIconLarge(this.theme);\n case 'medium':\n return this.styles.withIconMedium(this.theme);\n case 'small':\n default:\n return this.styles.withIconSmall(this.theme);\n }\n }\n\n private renderMain = () => {\n const {\n comment,\n icon,\n loose,\n state,\n size,\n _enableIconPadding,\n component,\n onMouseEnter,\n onMouseLeave,\n isMobile,\n href,\n disabled,\n scrollIntoView,\n rel = href && isExternalLink(href, this.globalObject) ? 'noopener noreferrer' : this.props.rel,\n isNotSelectable,\n children,\n className: unusedClasses,\n style,\n 'data-tid': dataTid,\n ...rest\n } = this.props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <div\n style={{ top: this.state.iconOffsetTop }}\n className={this.cx({\n [this.styles.icon()]: true,\n [this.getIconSizeClassName()]: true,\n })}\n >\n {icon}\n </div>\n );\n }\n\n const className = this.cx({\n [this.styles.root(this.theme)]: true,\n [this.getRootSizeClassName()]: true,\n [this.styles.rootMobile(this.theme)]: isMobile,\n [this.styles.loose()]: !!loose,\n [this.styles.hover(this.theme)]: this.isHover,\n [this.styles.selected(this.theme)]: this.isSelected,\n [this.getWithIconSizeClassName()]: Boolean(iconElement) || !!_enableIconPadding || this.context.enableIconPadding,\n [this.styles.nonSelectable()]: !!isNotSelectable,\n [this.styles.disabled(this.theme)]: !!disabled,\n });\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.activeState);\n }\n\n const Component = this.getComponent();\n\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({\n hover: this.isHover,\n selected: this.isSelected,\n })}\n {...this.props}\n >\n <Component\n ref={this.setRootRef}\n data-tid={MenuItemDataTids.root}\n {...rest}\n disabled={disabled}\n state={this.activeState}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n onClick={this.handleClick}\n className={className}\n href={href}\n rel={href ? rel : undefined}\n tabIndex={-1}\n >\n {iconElement}\n <span\n className={this.cx({\n [this.styles.mobileContentWithIcon()]: isMobile && isNonNullable(icon),\n })}\n ref={this.contentRef}\n data-tid={MenuItemDataTids.content}\n >\n {typeof content === 'function' ? content() : content}\n </span>\n {comment && (\n <div\n data-tid={MenuItemDataTids.comment}\n className={this.cx({\n [this.styles.comment(this.theme)]: true,\n [this.styles.commentHover(this.theme)]: this.isHover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n </CommonWrapper>\n );\n };\n\n private get activeState() {\n return this.state.highlighted ? 'hover' : this.props.state;\n }\n\n private get isHover(): boolean {\n return (this.state.highlighted || this.props.state === 'hover') && !this.props.disabled;\n }\n\n private get isSelected(): boolean {\n return this.props.state === 'selected' && !this.state.highlighted;\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) {\n this.mouseEntered = true;\n this.props.onMouseEnter?.(e);\n !this.props.isNotSelectable && this.context.navigation?.highlight(this);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n this.props.onMouseLeave?.(e);\n !this.props.isNotSelectable && this.context.navigation?.unhighlight();\n };\n\n private handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (this.props.isNotSelectable) {\n return;\n }\n this.props.onClick?.(e);\n this.context.onItemClick?.(e);\n };\n\n private setRootRef = (element: HTMLElement) => {\n this.rootRef = element;\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (component) {\n return component;\n }\n\n if (disabled) {\n return 'button';\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n\n private hasIconAmongItems = () => {\n return Boolean(this.context.navigation?.items.some((item) => item.props.icon));\n };\n}\n\nexport const isMenuItem = isReactUIComponent('MenuItem');\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_scrollYCenterIntoNearestScrollable","_utils","_ThemeContext","_CommonWrapper","_rootNode","_MenuContext","_getVisualStateDataAttributes","_renderEnvironment","_MenuItem2","_excluded","_class","_MenuItem","MenuItemDataTids","exports","root","content","comment","MenuItem","withRenderEnvironment","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","iconOffsetTop","highlighted","mouseEntered","rootRef","contentRef","React","createRef","highlight","setState","unhighlight","select","event","handleClick","isEnabled","props","disabled","navigate","href","target","globalObject","open","location","renderMain","_this$cx2","_this$cx3","_this$cx4","_this$props","icon","loose","size","_enableIconPadding","component","onMouseEnter","onMouseLeave","isMobile","scrollIntoView","_this$props$rel","rel","isExternalLink","isNotSelectable","children","unusedClasses","className","style","dataTid","rest","_objectWithoutPropertiesLoose2","default","iconElement","_this$cx","createElement","top","cx","styles","getIconSizeClassName","theme","getRootSizeClassName","rootMobile","hover","isHover","selected","isSelected","getWithIconSizeClassName","Boolean","context","enableIconPadding","nonSelectable","isFunction","activeState","Component","getComponent","CommonWrapper","_extends2","rootNodeRef","setRootNode","getVisualStateDataAttributes","ref","setRootRef","onMouseOver","handleMouseEnterFix","handleMouseLeave","onClick","undefined","tabIndex","mobileContentWithIcon","isNonNullable","commentHover","e","_this$context$navigat","navigation","_this$context$navigat2","onItemClick","element","_this$props2","hasIconAmongItems","_this$context$navigat3","items","some","item","_inheritsLoose2","_proto","prototype","render","_this2","getStyles","emotion","ThemeContext","Consumer","componentDidMount","scrollYCenterIntoNearestScrollable","isBrowser","getComputedStyle","getPropertyValue","current","_this$context$navigat4","add","_this$context$setEnab","_this$context","setEnableIconPadding","componentWillUnmount","_this$context$navigat5","_this$context$setEnab2","_this$context2","remove","componentDidUpdate","prevProps","_this$context$setEnab3","_this$context3","_this$context$navigat6","_this$context$navigat7","rootLarge","rootMedium","rootSmall","iconLarge","iconMedium","iconSmall","withIconLarge","withIconMedium","withIconSmall","_createClass2","key","get","__KONTUR_REACT_UI__","displayName","__MENU_ITEM__","contextType","MenuContext","isMenuItem","isReactUIComponent"],"sources":["MenuItem.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\nimport { isBrowser } from '../../lib/globalObject';\nimport type { Nullable } from '../../typings/utility-types';\nimport { scrollYCenterIntoNearestScrollable } from '../../lib/dom/scrollYCenterIntoNearestScrollable';\nimport { isExternalLink, isFunction, isNonNullable, isReactUIComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { MenuContextType } from '../../internal/Menu/MenuContext';\nimport { MenuContext } from '../../internal/Menu/MenuContext';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { getStyles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Omit<CommonProps, 'children'> {\n /** Добавляет отступ иконке.\n * @ignore */\n _enableIconPadding?: boolean;\n\n /** Добавляет описание для элемента меню. */\n comment?: React.ReactNode;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Добавляет иконку элементу меню. */\n icon?: React.ReactElement;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** @ignore */\n loose?: boolean;\n\n /** @ignore */\n state?: MenuItemState;\n\n /** Задает функцию, которая вызывается при клике. */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). */\n onMouseEnter?: React.MouseEventHandler;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: React.MouseEventHandler;\n\n /** @ignore */\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n\n /** Задает HTML-атрибут `target`. */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n\n /** Задает HTML-атрибут `title`. */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n\n /** Задает HTML-атрибут `href` - адрес, на который следует перейти. */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n\n /** Задает HTML-атрибут `rel`. Для внешних ссылок аттрибут rel по умолчанию равен \"noopener noreferrer\". */\n rel?: React.AnchorHTMLAttributes<HTMLAnchorElement>['rel'];\n\n /** Заменяет корневой элемент, на компонент переданный в проп.\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`. */\n component?: React.ComponentType<any>;\n\n /** Запрещает выделение и выбор данного пункта меню. */\n isNotSelectable?: boolean;\n\n /** Устанавливает стиль для отображения в мобильной версии. */\n isMobile?: boolean;\n /** @ignore */\n scrollIntoView?: boolean;\n}\n\nexport const MenuItemDataTids = {\n root: 'MenuItem__root',\n content: 'MenuItem__content',\n comment: 'MenuItem__comment',\n} as const;\n\n/**\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: DropdownMenu, Kebab, TooltipMenu и Select.\n */\n@withRenderEnvironment\n@rootNode\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static displayName = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public state = {\n iconOffsetTop: 0,\n highlighted: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private mouseEntered = false;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private rootRef: Nullable<HTMLElement> = null;\n private contentRef = React.createRef<HTMLElement>();\n static contextType = MenuContext;\n\n public context!: MenuContextType;\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public componentDidMount() {\n if (this.props.scrollIntoView && this.rootRef) {\n scrollYCenterIntoNearestScrollable(this.rootRef);\n }\n if (this.rootRef && isBrowser(this.globalObject)) {\n this.setState({\n iconOffsetTop: this.globalObject.getComputedStyle(this.rootRef).getPropertyValue('padding-top'),\n });\n }\n if (this.contentRef.current && !this.props.isNotSelectable) {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n if (this.props.icon) {\n this.context.setEnableIconPadding?.(true);\n }\n }\n\n public componentWillUnmount() {\n if (this.contentRef.current) {\n !this.props.isNotSelectable && this.context.navigation?.remove(this.contentRef.current);\n this.context.setEnableIconPadding?.(this.hasIconAmongItems());\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<MenuItemProps>) {\n if (prevProps.icon !== this.props.icon) {\n this.context.setEnableIconPadding?.(!!this.props.icon || this.hasIconAmongItems());\n }\n if (this.contentRef.current && prevProps.isNotSelectable !== this.props.isNotSelectable) {\n if (this.props.isNotSelectable) {\n this.unhighlight();\n this.context.navigation?.remove(this.contentRef.current);\n } else {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n }\n }\n\n public highlight = () => {\n this.setState({ highlighted: true });\n };\n\n public unhighlight = () => {\n this.setState({ highlighted: false });\n };\n\n public select = (event: React.SyntheticEvent<HTMLElement>) => {\n this.handleClick(event as React.MouseEvent<HTMLElement>);\n };\n\n public isEnabled = () => {\n return !this.props.disabled;\n };\n\n public navigate = () => {\n if (!this.props.href) {\n return;\n }\n if (this.props.target) {\n this.globalObject.open?.(this.props.href, this.props.target);\n } else if (this.globalObject.location) {\n this.globalObject.location.href = this.props.href;\n }\n };\n\n private getRootSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return this.styles.rootLarge(this.theme);\n case 'medium':\n return this.styles.rootMedium(this.theme);\n case 'small':\n default:\n return this.styles.rootSmall(this.theme);\n }\n }\n\n private getIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return this.styles.iconLarge(this.theme);\n case 'medium':\n return this.styles.iconMedium(this.theme);\n case 'small':\n default:\n return this.styles.iconSmall(this.theme);\n }\n }\n\n private getWithIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return this.styles.withIconLarge(this.theme);\n case 'medium':\n return this.styles.withIconMedium(this.theme);\n case 'small':\n default:\n return this.styles.withIconSmall(this.theme);\n }\n }\n\n private renderMain = () => {\n const {\n comment,\n icon,\n loose,\n state,\n size,\n _enableIconPadding,\n component,\n onMouseEnter,\n onMouseLeave,\n isMobile,\n href,\n disabled,\n scrollIntoView,\n rel = href && isExternalLink(href, this.globalObject) ? 'noopener noreferrer' : this.props.rel,\n isNotSelectable,\n children,\n className: unusedClasses,\n style,\n 'data-tid': dataTid,\n ...rest\n } = this.props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <div\n style={{ top: this.state.iconOffsetTop }}\n className={this.cx({\n [this.styles.icon()]: true,\n [this.getIconSizeClassName()]: true,\n })}\n >\n {icon}\n </div>\n );\n }\n\n const className = this.cx({\n [this.styles.root(this.theme)]: true,\n [this.getRootSizeClassName()]: true,\n [this.styles.rootMobile(this.theme)]: isMobile,\n [this.styles.loose()]: !!loose,\n [this.styles.hover(this.theme)]: this.isHover,\n [this.styles.selected(this.theme)]: this.isSelected,\n [this.getWithIconSizeClassName()]: Boolean(iconElement) || !!_enableIconPadding || this.context.enableIconPadding,\n [this.styles.nonSelectable()]: !!isNotSelectable,\n [this.styles.disabled(this.theme)]: !!disabled,\n });\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.activeState);\n }\n\n const Component = this.getComponent();\n\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({\n hover: this.isHover,\n selected: this.isSelected,\n })}\n {...this.props}\n >\n <Component\n ref={this.setRootRef}\n data-tid={MenuItemDataTids.root}\n {...rest}\n disabled={disabled}\n state={this.activeState}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n onClick={this.handleClick}\n className={className}\n href={href}\n rel={href ? rel : undefined}\n tabIndex={-1}\n >\n {iconElement}\n <span\n className={this.cx({\n [this.styles.mobileContentWithIcon()]: isMobile && isNonNullable(icon),\n })}\n ref={this.contentRef}\n data-tid={MenuItemDataTids.content}\n >\n {typeof content === 'function' ? content() : content}\n </span>\n {comment && (\n <div\n data-tid={MenuItemDataTids.comment}\n className={this.cx({\n [this.styles.comment(this.theme)]: true,\n [this.styles.commentHover(this.theme)]: this.isHover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n </CommonWrapper>\n );\n };\n\n private get activeState() {\n return this.state.highlighted ? 'hover' : this.props.state;\n }\n\n private get isHover(): boolean {\n return (this.state.highlighted || this.props.state === 'hover') && !this.props.disabled;\n }\n\n private get isSelected(): boolean {\n return this.props.state === 'selected' && !this.state.highlighted;\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) {\n this.mouseEntered = true;\n this.props.onMouseEnter?.(e);\n !this.props.isNotSelectable && this.context.navigation?.highlight(this);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n this.props.onMouseLeave?.(e);\n !this.props.isNotSelectable && this.context.navigation?.unhighlight();\n };\n\n private handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (this.props.isNotSelectable) {\n return;\n }\n this.props.onClick?.(e);\n this.context.onItemClick?.(e);\n };\n\n private setRootRef = (element: HTMLElement) => {\n this.rootRef = element;\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (component) {\n return component;\n }\n\n if (disabled) {\n return 'button';\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n\n private hasIconAmongItems = () => {\n return Boolean(this.context.navigation?.items.some((item) => item.props.icon));\n };\n}\n\nexport const isMenuItem = isReactUIComponent('MenuItem');\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { AriaAttributes, HTMLAttributes } from 'react';
|
|
1
|
+
import type { AriaAttributes, HTMLAttributes, JSX } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { ThemeIn } from '../../lib/theming/Theme';
|
|
4
4
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
5
|
+
import { type TGetRootNode } from '../../lib/rootNode';
|
|
5
6
|
import { ModalFooter } from './ModalFooter';
|
|
6
7
|
import { ModalHeader } from './ModalHeader';
|
|
7
8
|
import { ModalBody } from './ModalBody';
|
|
@@ -67,6 +68,8 @@ export declare class Modal extends React.Component<ModalProps, ModalState> {
|
|
|
67
68
|
static Header: typeof ModalHeader;
|
|
68
69
|
static Body: typeof ModalBody;
|
|
69
70
|
static Footer: typeof ModalFooter;
|
|
71
|
+
getRootNode: TGetRootNode;
|
|
72
|
+
private setRootNode;
|
|
70
73
|
static defaultProps: DefaultProps;
|
|
71
74
|
private getProps;
|
|
72
75
|
state: ModalState;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.ModalZIndexPriority = exports.ModalDataTids = exports.Modal = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.ModalZIndexPriority = exports.ModalDataTids = exports.Modal = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
2
2
|
var _react = _interopRequireDefault(require("react"));
|
|
3
3
|
var _reactFocusLock = _interopRequireDefault(require("react-focus-lock"));
|
|
4
4
|
var _lodash = _interopRequireDefault(require("lodash.throttle"));
|
|
@@ -21,6 +21,7 @@ var _CommonWrapper = require("../../internal/CommonWrapper");
|
|
|
21
21
|
var _createPropsGetter = require("../../lib/createPropsGetter");
|
|
22
22
|
var _ResponsiveLayout = require("../ResponsiveLayout");
|
|
23
23
|
var _typeGuards = require("../../lib/typeGuards");
|
|
24
|
+
var _rootNode = require("../../lib/rootNode");
|
|
24
25
|
var _renderEnvironment = require("../../lib/renderEnvironment");
|
|
25
26
|
|
|
26
27
|
|
|
@@ -108,7 +109,11 @@ var ModalZIndexPriority = exports.ModalZIndexPriority = {
|
|
|
108
109
|
* Для отключения прилипания шапки и футера в соответствующий компонент нужно передать проп `sticky` со значением `false` (по-умолчанию прилипание включено).
|
|
109
110
|
*/var
|
|
110
111
|
|
|
111
|
-
|
|
112
|
+
|
|
113
|
+
Modal = exports.Modal = (0, _renderEnvironment.withRenderEnvironment)(_class = (0, _rootNode.rootNode)(_class = (_Modal = /*#__PURE__*/function (_React$Component) {function Modal() {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.
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
112
117
|
|
|
113
118
|
|
|
114
119
|
|
|
@@ -424,4 +429,4 @@ Modal = exports.Modal = (0, _renderEnvironment.withRenderEnvironment)(_class = (
|
|
|
424
429
|
|
|
425
430
|
setHasPanel = function (hasPanel) {
|
|
426
431
|
_this.setState({ hasPanel: hasPanel });
|
|
427
|
-
};return _this;}(0, _inheritsLoose2.default)(Modal, _React$Component);var _proto = Modal.prototype;_proto.componentDidMount = function componentDidMount() {var _this$globalObject$ad2, _this$globalObject2;this.stackSubscription = _ModalStack.ModalStack.add(this, this.handleStackChange, this.globalObject);if (mountedModalsCount === 0) {var _this$globalObject$ad, _this$globalObject;(_this$globalObject$ad = (_this$globalObject = this.globalObject).addEventListener) == null || _this$globalObject$ad.call(_this$globalObject, 'resize', this.throttledCheckHorizontalScroll);}mountedModalsCount++;(_this$globalObject$ad2 = (_this$globalObject2 = this.globalObject).addEventListener) == null || _this$globalObject$ad2.call(_this$globalObject2, 'keydown', this.handleKeyDown);this.checkHorizontalScrollAppearance();if (this.containerNode) {this.containerNode.addEventListener('scroll', LayoutEvents.emit);}};_proto.componentWillUnmount = function componentWillUnmount() {var _this$globalObject$re2, _this$globalObject4;if (--mountedModalsCount === 0) {var _this$globalObject$re, _this$globalObject3;(_this$globalObject$re = (_this$globalObject3 = this.globalObject).removeEventListener) == null || _this$globalObject$re.call(_this$globalObject3, 'resize', this.throttledCheckHorizontalScroll);LayoutEvents.emit();}(_this$globalObject$re2 = (_this$globalObject4 = this.globalObject).removeEventListener) == null || _this$globalObject$re2.call(_this$globalObject4, 'keydown', this.handleKeyDown);if ((0, _utils.isNonNullable)(this.stackSubscription)) {this.stackSubscription.remove();}_ModalStack.ModalStack.remove(this, this.globalObject);if (this.containerNode) {this.containerNode.removeEventListener('scroll', LayoutEvents.emit);}};_proto.render = function render() {var _this2 = this;this.styles = (0, _Modal2.getStyles)(this.emotion);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = (0, _getModalTheme.getModalTheme)(theme, _this2.props.theme);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _this2.theme }, _this2.renderMain());});};_proto.renderMain = function renderMain() {var _this3 = this;var _this$props = this.props,noClose = _this$props.noClose,disableClose = _this$props.disableClose,width = _this$props.width,mobileAppearance = _this$props.mobileAppearance,alignTop = _this$props.alignTop,children = _this$props.children,ariaLabel = _this$props['aria-label'],ariaLabelledby = _this$props['aria-labelledby'];var _this$state = this.state,hasHeader = _this$state.hasHeader,hasFooter = _this$state.hasFooter,hasPanel = _this$state.hasPanel;var _this$getProps = this.getProps(),role = _this$getProps.role,disableFocusLock = _this$getProps.disableFocusLock;var modalContextProps = { hasHeader: hasHeader, horizontalScroll: this.state.horizontalScroll, setHasHeader: this.setHasHeader, setHasFooter: this.setHasFooter, setHasPanel: this.setHasPanel, mobileOnFullScreen: this.props.mobileAppearance === 'fullscreen' };if (!noClose) {modalContextProps.close = { disableClose: disableClose, requestClose: this.requestClose };}if (!hasFooter || hasPanel) {modalContextProps.additionalPadding = true;}var style = {};var containerStyle = {};if (width) {style.width = width;} else {containerStyle.width = 'auto';}var getMobileCenterContainerClassNames = function getMobileCenterContainerClassNames() {var _this3$cx;return _this3.cx(_this3.styles.mobileCenterContainer(_this3.theme), (_this3$cx = {}, _this3$cx[_this3.styles.mobileCenterContainerBig(_this3.theme)] = mobileAppearance === 'fullscreen-spacing' || mobileAppearance === 'auto' && hasFooter, _this3$cx[_this3.styles.mobileCenterContainerFullscreen()] = mobileAppearance === 'fullscreen', _this3$cx));};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: this.styles.root() }, /*#__PURE__*/_react.default.createElement(_HideBodyVerticalScroll.HideBodyVerticalScroll, null), this.state.hasBackground && /*#__PURE__*/_react.default.createElement("div", { onMouseDown: this.handleContainerMouseDown, onMouseUp: this.handleContainerMouseUp, onClick: this.handleContainerClick, className: this.styles.bg(this.theme) }), /*#__PURE__*/_react.default.createElement(_ResponsiveLayout.ResponsiveLayout, null, function (_ref) {var _this3$cx2, _this3$cx3, _this3$cx4, _this3$cx5, _this3$cx6;var isMobile = _ref.isMobile;return /*#__PURE__*/_react.default.createElement("div", { "aria-labelledby": ariaLabelledby, ref: _this3.refContainer, className: _this3.cx(_this3.styles.container(), !isMobile && _this3.styles.containerDesktop(), isMobile && _this3.getMobileContainerClassName()), onMouseDown: _this3.handleContainerMouseDown, onMouseUp: _this3.handleContainerMouseUp, onClick: _this3.handleContainerClick, "data-tid": ModalDataTids.container }, /*#__PURE__*/_react.default.createElement("div", { "aria-modal": true, "aria-label": ariaLabel, role: role, className: _this3.cx((_this3$cx2 = {}, _this3$cx2[_this3.styles.centerContainer()] = true, _this3$cx2[getMobileCenterContainerClassNames()] = isMobile, _this3$cx2[_this3.styles.alignTop()] = Boolean(alignTop), _this3$cx2)), style: isMobile ? undefined : containerStyle, "data-tid": ModalDataTids.content }, /*#__PURE__*/_react.default.createElement("div", { className: _this3.cx((_this3$cx3 = {}, _this3$cx3[_this3.styles.window(_this3.theme)] = true, _this3$cx3[_this3.styles.mobileWindow()] = isMobile, _this3$cx3[_this3.styles.mobileWindowFullscreen()] = isMobile && mobileAppearance === 'fullscreen', _this3$cx3)), style: isMobile ? undefined : style }, /*#__PURE__*/_react.default.createElement(_ResizeDetector.ResizeDetector, { onResize: _this3.handleResize, fullHeight: isMobile }, /*#__PURE__*/_react.default.createElement(_reactFocusLock.default, { disabled: disableFocusLock, autoFocus: false, className: _this3.cx((_this3$cx4 = {}, _this3$cx4[_this3.styles.columnFlexContainer()] = isMobile, _this3$cx4), 'focus-lock-container') }, !hasHeader && !noClose && /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: ModalZIndexPriority.Cross, className: _this3.cx((_this3$cx5 = {}, _this3$cx5[_this3.styles.closeWrapper(_this3.theme)] = true, _this3$cx5[_this3.styles.mobileCloseWrapper(_this3.theme)] = isMobile, _this3$cx5)) }, /*#__PURE__*/_react.default.createElement(_ModalClose.ModalClose, { className: _this3.cx((_this3$cx6 = {}, _this3$cx6[_this3.styles.mobileCloseWithoutHeader(_this3.theme)] = isMobile && !_this3.state.hasHeader, _this3$cx6)), requestClose: _this3.requestClose, disableClose: disableClose })), /*#__PURE__*/_react.default.createElement(_ModalContext.ModalContext.Provider, { value: modalContextProps }, children))))));}))));};return Modal;}(_react.default.Component), _Modal.__KONTUR_REACT_UI__ = 'Modal', _Modal.displayName = 'Modal', _Modal.Header = _ModalHeader.ModalHeader, _Modal.Body = _ModalBody.ModalBody, _Modal.Footer = _ModalFooter.ModalFooter, _Modal.defaultProps = { disableFocusLock: false, role: 'dialog', mobileAppearance: 'auto' }, _Modal)) || _class;
|
|
432
|
+
};return _this;}(0, _inheritsLoose2.default)(Modal, _React$Component);var _proto = Modal.prototype;_proto.componentDidMount = function componentDidMount() {var _this$globalObject$ad2, _this$globalObject2;this.stackSubscription = _ModalStack.ModalStack.add(this, this.handleStackChange, this.globalObject);if (mountedModalsCount === 0) {var _this$globalObject$ad, _this$globalObject;(_this$globalObject$ad = (_this$globalObject = this.globalObject).addEventListener) == null || _this$globalObject$ad.call(_this$globalObject, 'resize', this.throttledCheckHorizontalScroll);}mountedModalsCount++;(_this$globalObject$ad2 = (_this$globalObject2 = this.globalObject).addEventListener) == null || _this$globalObject$ad2.call(_this$globalObject2, 'keydown', this.handleKeyDown);this.checkHorizontalScrollAppearance();if (this.containerNode) {this.containerNode.addEventListener('scroll', LayoutEvents.emit);}};_proto.componentWillUnmount = function componentWillUnmount() {var _this$globalObject$re2, _this$globalObject4;if (--mountedModalsCount === 0) {var _this$globalObject$re, _this$globalObject3;(_this$globalObject$re = (_this$globalObject3 = this.globalObject).removeEventListener) == null || _this$globalObject$re.call(_this$globalObject3, 'resize', this.throttledCheckHorizontalScroll);LayoutEvents.emit();}(_this$globalObject$re2 = (_this$globalObject4 = this.globalObject).removeEventListener) == null || _this$globalObject$re2.call(_this$globalObject4, 'keydown', this.handleKeyDown);if ((0, _utils.isNonNullable)(this.stackSubscription)) {this.stackSubscription.remove();}_ModalStack.ModalStack.remove(this, this.globalObject);if (this.containerNode) {this.containerNode.removeEventListener('scroll', LayoutEvents.emit);}};_proto.render = function render() {var _this2 = this;this.styles = (0, _Modal2.getStyles)(this.emotion);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = (0, _getModalTheme.getModalTheme)(theme, _this2.props.theme);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _this2.theme }, _this2.renderMain());});};_proto.renderMain = function renderMain() {var _this3 = this;var _this$props = this.props,noClose = _this$props.noClose,disableClose = _this$props.disableClose,width = _this$props.width,mobileAppearance = _this$props.mobileAppearance,alignTop = _this$props.alignTop,children = _this$props.children,ariaLabel = _this$props['aria-label'],ariaLabelledby = _this$props['aria-labelledby'];var _this$state = this.state,hasHeader = _this$state.hasHeader,hasFooter = _this$state.hasFooter,hasPanel = _this$state.hasPanel;var _this$getProps = this.getProps(),role = _this$getProps.role,disableFocusLock = _this$getProps.disableFocusLock;var modalContextProps = { hasHeader: hasHeader, horizontalScroll: this.state.horizontalScroll, setHasHeader: this.setHasHeader, setHasFooter: this.setHasFooter, setHasPanel: this.setHasPanel, mobileOnFullScreen: this.props.mobileAppearance === 'fullscreen' };if (!noClose) {modalContextProps.close = { disableClose: disableClose, requestClose: this.requestClose };}if (!hasFooter || hasPanel) {modalContextProps.additionalPadding = true;}var style = {};var containerStyle = {};if (width) {style.width = width;} else {containerStyle.width = 'auto';}var getMobileCenterContainerClassNames = function getMobileCenterContainerClassNames() {var _this3$cx;return _this3.cx(_this3.styles.mobileCenterContainer(_this3.theme), (_this3$cx = {}, _this3$cx[_this3.styles.mobileCenterContainerBig(_this3.theme)] = mobileAppearance === 'fullscreen-spacing' || mobileAppearance === 'auto' && hasFooter, _this3$cx[_this3.styles.mobileCenterContainerFullscreen()] = mobileAppearance === 'fullscreen', _this3$cx));};return /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, null, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'Modal', className: this.styles.root() }, /*#__PURE__*/_react.default.createElement(_HideBodyVerticalScroll.HideBodyVerticalScroll, null), this.state.hasBackground && /*#__PURE__*/_react.default.createElement("div", { onMouseDown: this.handleContainerMouseDown, onMouseUp: this.handleContainerMouseUp, onClick: this.handleContainerClick, className: this.styles.bg(this.theme) }), /*#__PURE__*/_react.default.createElement(_ResponsiveLayout.ResponsiveLayout, null, function (_ref) {var _this3$cx2, _this3$cx3, _this3$cx4, _this3$cx5, _this3$cx6;var isMobile = _ref.isMobile;return /*#__PURE__*/_react.default.createElement("div", { "aria-labelledby": ariaLabelledby, ref: _this3.refContainer, className: _this3.cx(_this3.styles.container(), !isMobile && _this3.styles.containerDesktop(), isMobile && _this3.getMobileContainerClassName()), onMouseDown: _this3.handleContainerMouseDown, onMouseUp: _this3.handleContainerMouseUp, onClick: _this3.handleContainerClick, "data-tid": ModalDataTids.container }, /*#__PURE__*/_react.default.createElement("div", { "aria-modal": true, "aria-label": ariaLabel, role: role, className: _this3.cx((_this3$cx2 = {}, _this3$cx2[_this3.styles.centerContainer()] = true, _this3$cx2[getMobileCenterContainerClassNames()] = isMobile, _this3$cx2[_this3.styles.alignTop()] = Boolean(alignTop), _this3$cx2)), style: isMobile ? undefined : containerStyle, "data-tid": ModalDataTids.content }, /*#__PURE__*/_react.default.createElement("div", { className: _this3.cx((_this3$cx3 = {}, _this3$cx3[_this3.styles.window(_this3.theme)] = true, _this3$cx3[_this3.styles.mobileWindow()] = isMobile, _this3$cx3[_this3.styles.mobileWindowFullscreen()] = isMobile && mobileAppearance === 'fullscreen', _this3$cx3)), style: isMobile ? undefined : style }, /*#__PURE__*/_react.default.createElement(_ResizeDetector.ResizeDetector, { onResize: _this3.handleResize, fullHeight: isMobile }, /*#__PURE__*/_react.default.createElement(_reactFocusLock.default, { disabled: disableFocusLock, autoFocus: false, className: _this3.cx((_this3$cx4 = {}, _this3$cx4[_this3.styles.columnFlexContainer()] = isMobile, _this3$cx4), 'focus-lock-container') }, !hasHeader && !noClose && /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: ModalZIndexPriority.Cross, className: _this3.cx((_this3$cx5 = {}, _this3$cx5[_this3.styles.closeWrapper(_this3.theme)] = true, _this3$cx5[_this3.styles.mobileCloseWrapper(_this3.theme)] = isMobile, _this3$cx5)) }, /*#__PURE__*/_react.default.createElement(_ModalClose.ModalClose, { className: _this3.cx((_this3$cx6 = {}, _this3$cx6[_this3.styles.mobileCloseWithoutHeader(_this3.theme)] = isMobile && !_this3.state.hasHeader, _this3$cx6)), requestClose: _this3.requestClose, disableClose: disableClose })), /*#__PURE__*/_react.default.createElement(_ModalContext.ModalContext.Provider, { value: modalContextProps }, children))))));}))));};return Modal;}(_react.default.Component), _Modal.__KONTUR_REACT_UI__ = 'Modal', _Modal.displayName = 'Modal', _Modal.Header = _ModalHeader.ModalHeader, _Modal.Body = _ModalBody.ModalBody, _Modal.Footer = _ModalFooter.ModalFooter, _Modal.defaultProps = { disableFocusLock: false, role: 'dialog', mobileAppearance: 'auto' }, _Modal)) || _class) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactFocusLock","_lodash","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_RenderContainer","_ZIndex","_HideBodyVerticalScroll","_ModalStack","_ResizeDetector","_ThemeContext","_CommonWrapper","_createPropsGetter","_ResponsiveLayout","_typeGuards","_renderEnvironment","_ModalContext","_ModalFooter","_ModalHeader","_ModalBody","_ModalClose","_Modal2","_getModalTheme","_class","_Modal","mountedModalsCount","ModalDataTids","exports","container","content","close","ModalZIndexPriority","Cross","Content","Modal","withRenderEnvironment","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","getMobileContainerClassName","mobileAppearance","styles","mobileContainerSmall5_2","mobileContainerFullscreen5_2","mobileContainerSmallBottom5_2","mobileContainerSmallTop5_2","catchUnreachableWarning","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","globalObject","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","isKeyEscape","stopPropagation","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","throttle","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","_inheritsLoose2","default","_proto","prototype","componentDidMount","_this$globalObject$ad2","_this$globalObject2","add","_this$globalObject$ad","_this$globalObject","addEventListener","componentWillUnmount","_this$globalObject$re2","_this$globalObject4","_this$globalObject$re","_this$globalObject3","removeEventListener","isNonNullable","remove","render","_this2","getStyles","emotion","createElement","ThemeContext","Consumer","theme","getModalTheme","Provider","value","renderMain","_this3","_this$props","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","_this$state","_this$getProps","role","disableFocusLock","modalContextProps","mobileOnFullScreen","additionalPadding","style","containerStyle","getMobileCenterContainerClassNames","_this3$cx","cx","mobileCenterContainer","mobileCenterContainerBig","mobileCenterContainerFullscreen","RenderContainer","CommonWrapper","ZIndex","priority","className","root","HideBodyVerticalScroll","onMouseDown","onMouseUp","onClick","bg","ResponsiveLayout","_ref","_this3$cx2","_this3$cx3","_this3$cx4","_this3$cx5","_this3$cx6","isMobile","ref","containerDesktop","centerContainer","Boolean","undefined","window","mobileWindow","mobileWindowFullscreen","ResizeDetector","onResize","fullHeight","disabled","autoFocus","columnFlexContainer","closeWrapper","mobileCloseWrapper","ModalClose","mobileCloseWithoutHeader","ModalContext","React","Component","__KONTUR_REACT_UI__","displayName","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter"],"sources":["Modal.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\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 { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport type { ModalContextProps } from './ModalContext';\nimport { ModalContext } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { getStyles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport type MobileModalAppearance = 'auto' | 'top' | 'center' | 'bottom' | 'fullscreen-spacing' | 'fullscreen';\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /** Отключает событие `onClose` и дизейблит кнопку закрытия модалки. */\n disableClose?: boolean;\n\n /** Выравнивает окно по верху страницы. */\n alignTop?: boolean;\n\n /** Оставляет окно открытым при клике на фон. */\n ignoreBackgroundClick?: boolean;\n\n /** Убирает крестик для закрытия окна */\n noClose?: boolean;\n\n /** Задает ширину модалки. */\n width?: number | string;\n\n /** Задает функцию, которая вызывается, когда пользователь запросил закрытие окна (нажал на фон, на Escape или на крестик). */\n onClose?: () => void;\n\n /** Отключает фокус-лок внутри модалки. */\n disableFocusLock?: boolean;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n\n /** Задает внешний вид модалки. Работает с версией темы >= 5_2.\n * - `auto` — если футера нет, модалка распологается в центре экрана, если футер есть -- модалка растягивается на весь экран с отступами и закругленными краями\n * - `top` — модалка располагается сверху независимо от наличия футера\n * - `center` — модалка располагается в центре независимо от наличия футера\n * - `bottom` — модалка располагается снизу независимо от наличия футера\n * - `fullscreen-spacing` — модалка растягивается на весь экран с отступами и закругленными краями\n * - `fullscreen` — модалка растягивается на весь экран\n * @default auto\n */\n mobileAppearance?: MobileModalAppearance;\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\nexport const ModalZIndexPriority = {\n Cross: 2,\n Content: 1,\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role' | 'mobileAppearance'>>;\n\n/**\n * Модальное окно `Modal` — это эмуляция диалогового окна браузера, появляющегося поверх страницы в ответ на действия пользователя и блокирующего доступ к основному содержимому страницы.\n *\n * Состоит из 3-х компонентов: `Modal.Header`, `Modal.Body`, `Modal.Footer`.\n *\n * Для отображения серой плашки в футере в компонент `Footer` необходимо передать проп `panel`.\n *\n * Для отключения прилипания шапки и футера в соответствующий компонент нужно передать проп `sticky` со значением `false` (по-умолчанию прилипание включено).\n */\n@withRenderEnvironment\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n disableFocusLock: false,\n role: 'dialog',\n mobileAppearance: 'auto',\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 globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\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, this.globalObject);\n\n if (mountedModalsCount === 0) {\n this.globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n this.globalObject.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 this.globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n this.globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this, this.globalObject);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getMobileContainerClassName = () => {\n const mobileAppearance = this.getProps().mobileAppearance;\n switch (mobileAppearance) {\n case 'fullscreen-spacing':\n return;\n case 'auto':\n if (this.state.hasFooter) {\n return;\n }\n return [this.styles.mobileContainerSmall5_2()];\n case 'fullscreen':\n return [this.styles.mobileContainerFullscreen5_2()];\n case 'center':\n return [this.styles.mobileContainerSmall5_2()];\n case 'bottom':\n return [this.styles.mobileContainerSmall5_2(), this.styles.mobileContainerSmallBottom5_2()];\n case 'top':\n return [this.styles.mobileContainerSmall5_2(), this.styles.mobileContainerSmallTop5_2()];\n default:\n return catchUnreachableWarning(mobileAppearance, false);\n }\n };\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n mobileAppearance,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\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 mobileOnFullScreen: this.props.mobileAppearance === 'fullscreen',\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\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 (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n const getMobileCenterContainerClassNames = () => {\n return this.cx(this.styles.mobileCenterContainer(this.theme), {\n [this.styles.mobileCenterContainerBig(this.theme)]:\n mobileAppearance === 'fullscreen-spacing' || (mobileAppearance === 'auto' && hasFooter),\n [this.styles.mobileCenterContainerFullscreen()]: mobileAppearance === 'fullscreen',\n });\n };\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={this.styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={this.styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={this.cx(\n this.styles.container(),\n !isMobile && this.styles.containerDesktop(),\n isMobile && this.getMobileContainerClassName(),\n )}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={this.cx({\n [this.styles.centerContainer()]: true,\n [getMobileCenterContainerClassNames()]: isMobile,\n [this.styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={this.cx({\n [this.styles.window(this.theme)]: true,\n [this.styles.mobileWindow()]: isMobile,\n [this.styles.mobileWindowFullscreen()]: isMobile && mobileAppearance === 'fullscreen',\n })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={this.cx({ [this.styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n priority={ModalZIndexPriority.Cross}\n className={this.cx({\n [this.styles.closeWrapper(this.theme)]: true,\n [this.styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={this.cx({\n [this.styles.mobileCloseWithoutHeader(this.theme)]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\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({\n stackPosition: stack.indexOf(this),\n hasBackground: ModalStack.isBlocking(this, this.globalObject),\n });\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 e.stopPropagation();\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: boolean) => {\n this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter: boolean) => {\n this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel: boolean) => {\n this.setState({ hasPanel });\n };\n}\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;;;;AAIA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAC,uBAAA,CAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,uBAAA,GAAAT,OAAA;;AAEA,IAAAU,WAAA,GAAAV,OAAA;AACA,IAAAW,eAAA,GAAAX,OAAA;AACA,IAAAY,aAAA,GAAAZ,OAAA;;;AAGA,IAAAa,cAAA,GAAAb,OAAA;AACA,IAAAc,kBAAA,GAAAd,OAAA;AACA,IAAAe,iBAAA,GAAAf,OAAA;AACA,IAAAgB,WAAA,GAAAhB,OAAA;AACA,IAAAiB,kBAAA,GAAAjB,OAAA;;;AAGA,IAAAkB,aAAA,GAAAlB,OAAA;AACA,IAAAmB,YAAA,GAAAnB,OAAA;AACA,IAAAoB,YAAA,GAAApB,OAAA;AACA,IAAAqB,UAAA,GAAArB,OAAA;AACA,IAAAsB,WAAA,GAAAtB,OAAA;AACA,IAAAuB,OAAA,GAAAvB,OAAA;AACA,IAAAwB,cAAA,GAAAxB,OAAA,oBAAgD,IAAAyB,MAAA,EAAAC,MAAA;;AAEhD,IAAIC,kBAAkB,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDnB,IAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC3BE,SAAS,EAAE,iBAAiB;EAC5BC,OAAO,EAAE,eAAe;EACxBC,KAAK,EAAE;AACT,CAAU;;AAEH,IAAMC,mBAAmB,GAAAJ,OAAA,CAAAI,mBAAA,GAAG;EACjCC,KAAK,EAAE,CAAC;EACRC,OAAO,EAAE;AACX,CAAU;;;;AAIV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GARA;;AAUaC,KAAK,GAAAP,OAAA,CAAAO,KAAA,OADjBC,wCAAqB,EAAAZ,MAAA,IAAAC,MAAA,0BAAAY,gBAAA,YAAAF,MAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;IAeZU,QAAQ,GAAG,IAAAC,oCAAiB,EAACd,KAAK,CAACe,YAAY,CAAC,CAAAZ,KAAA;;IAEjDa,KAAK,GAAe;MACzBC,aAAa,EAAE,CAAC;MAChBC,aAAa,EAAE,IAAI;MACnBC,gBAAgB,EAAE,KAAK;MACvBC,SAAS,EAAE,KAAK;MAChBC,SAAS,EAAE,KAAK;MAChBC,QAAQ,EAAE;IACZ,CAAC,CAAAnB,KAAA;;;;;;;IAOOoB,iBAAiB,GAAkC,IAAI,CAAApB,KAAA;IACvDqB,aAAa,GAA0B,IAAI,CAAArB,KAAA;IAC3CsB,eAAe,GAAuB,IAAI,CAAAtB,KAAA;IAC1CuB,aAAa,GAAuB,IAAI,CAAAvB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgDxCwB,2BAA2B,GAAG,YAAM;MAC1C,IAAMC,gBAAgB,GAAGzB,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACe,gBAAgB;MACzD,QAAQA,gBAAgB;QACtB,KAAK,oBAAoB;UACvB;QACF,KAAK,MAAM;UACT,IAAIzB,KAAA,CAAKa,KAAK,CAACK,SAAS,EAAE;YACxB;UACF;UACA,OAAO,CAAClB,KAAA,CAAK0B,MAAM,CAACC,uBAAuB,CAAC,CAAC,CAAC;QAChD,KAAK,YAAY;UACf,OAAO,CAAC3B,KAAA,CAAK0B,MAAM,CAACE,4BAA4B,CAAC,CAAC,CAAC;QACrD,KAAK,QAAQ;UACX,OAAO,CAAC5B,KAAA,CAAK0B,MAAM,CAACC,uBAAuB,CAAC,CAAC,CAAC;QAChD,KAAK,QAAQ;UACX,OAAO,CAAC3B,KAAA,CAAK0B,MAAM,CAACC,uBAAuB,CAAC,CAAC,EAAE3B,KAAA,CAAK0B,MAAM,CAACG,6BAA6B,CAAC,CAAC,CAAC;QAC7F,KAAK,KAAK;UACR,OAAO,CAAC7B,KAAA,CAAK0B,MAAM,CAACC,uBAAuB,CAAC,CAAC,EAAE3B,KAAA,CAAK0B,MAAM,CAACI,0BAA0B,CAAC,CAAC,CAAC;QAC1F;UACE,OAAO,IAAAC,mCAAuB,EAACN,gBAAgB,EAAE,KAAK,CAAC;MAC3D;IACF,CAAC,CAAAzB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwIOgC,YAAY,GAAG,YAAM;MAC3B,IAAIhC,KAAA,CAAKiC,KAAK,CAACC,YAAY,EAAE;QAC3B;MACF;MACA,IAAIlC,KAAA,CAAKiC,KAAK,CAACE,OAAO,EAAE;QACtBnC,KAAA,CAAKiC,KAAK,CAACE,OAAO,CAAC,CAAC;MACtB;IACF,CAAC,CAAAnC,KAAA;;IAEOoC,YAAY,GAAG,UAACC,MAA6B,EAAK;MACxDrC,KAAA,CAAKqB,aAAa,GAAGgB,MAAM;IAC7B,CAAC,CAAArC,KAAA;;IAEOsC,iBAAiB,GAAG,UAACC,KAAiC,EAAK;MACjEvC,KAAA,CAAKwC,QAAQ,CAAC;QACZ1B,aAAa,EAAEyB,KAAK,CAACE,OAAO,CAAAzC,KAAK,CAAC;QAClCe,aAAa,EAAE2B,sBAAU,CAACC,UAAU,CAAA3C,KAAA,EAAOA,KAAA,CAAK4C,YAAY;MAC9D,CAAC,CAAC;IACJ,CAAC,CAAA5C,KAAA;;IAEO6C,wBAAwB,GAAG,UAACC,KAAuB,EAAK;MAC9D9C,KAAA,CAAKsB,eAAe,GAAGwB,KAAK,CAACC,MAAM;IACrC,CAAC,CAAA/C,KAAA;;IAEOgD,sBAAsB,GAAG,UAACF,KAAuB,EAAK;MAC5D9C,KAAA,CAAKuB,aAAa,GAAGuB,KAAK,CAACC,MAAM;IACnC,CAAC,CAAA/C,KAAA;;IAEOiD,oBAAoB,GAAG,UAACH,KAAuC,EAAK;MAC1E,IAAI,CAAC9C,KAAA,CAAKiC,KAAK,CAACiB,qBAAqB,EAAE;QACrC,IAAQH,MAAM,GAAoBD,KAAK,CAA/BC,MAAM,CAAEI,aAAa,GAAKL,KAAK,CAAvBK,aAAa;QAC7B,IAAIJ,MAAM,KAAKI,aAAa,IAAInD,KAAA,CAAKsB,eAAe,KAAK6B,aAAa,IAAInD,KAAA,CAAKuB,aAAa,KAAK4B,aAAa,EAAE;UAC9GnD,KAAA,CAAKgC,YAAY,CAAC,CAAC;QACrB;MACF;IACF,CAAC,CAAAhC,KAAA;;IAEOoD,aAAa,GAAG,UAACC,CAAgB,EAAK;MAC5C,IAAIrD,KAAA,CAAKa,KAAK,CAACC,aAAa,KAAK,CAAC,EAAE;QAClC;MACF;MACA,IAAI,IAAAwC,wBAAW,EAACD,CAAC,CAAC,EAAE;QAClBA,CAAC,CAACE,eAAe,CAAC,CAAC;QACnBvD,KAAA,CAAKgC,YAAY,CAAC,CAAC;MACrB;IACF,CAAC,CAAAhC,KAAA;;IAEOwD,+BAA+B,GAAG,YAAM;MAC9C,IAAIC,SAAS,GAAG,KAAK;;MAErB,IAAIzD,KAAA,CAAKqB,aAAa,EAAE;QACtB,IAAMqC,oBAAoB,GAAG1D,KAAA,CAAKqB,aAAa,CAACsC,WAAW;QAC3D,IAAMC,oBAAoB,GAAG5D,KAAA,CAAKqB,aAAa,CAACwC,WAAW;QAC3DJ,SAAS,GAAGC,oBAAoB,GAAGE,oBAAoB;MACzD;MACA,IAAIH,SAAS,IAAI,CAACzD,KAAA,CAAKa,KAAK,CAACG,gBAAgB,EAAE;QAC7ChB,KAAA,CAAKwC,QAAQ,CAAC,EAAExB,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;MAC3C,CAAC,MAAM,IAAIhB,KAAA,CAAKa,KAAK,CAACG,gBAAgB,EAAE;QACtChB,KAAA,CAAKwC,QAAQ,CAAC,EAAExB,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;MAC5C;IACF,CAAC,CAAAhB,KAAA;;IAEO8D,8BAA8B,GAAG,IAAAC,eAAQ,EAAC/D,KAAA,CAAKwD,+BAA+B,EAAE,GAAG,CAAC,CAAAxD,KAAA;;IAEpFgE,YAAY,GAAG,YAAM;MAC3BlG,YAAY,CAACmG,IAAI,CAAC,CAAC;IACrB,CAAC,CAAAjE,KAAA;;IAEOkE,YAAY,GAAG,UAACjD,SAAkB,EAAK;MAC7CjB,KAAA,CAAKwC,QAAQ,CAAC,EAAEvB,SAAS,EAATA,SAAS,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAAjB,KAAA;;IAEOmE,YAAY,GAAG,UAACjD,SAAkB,EAAK;MAC7ClB,KAAA,CAAKwC,QAAQ,CAAC,EAAEtB,SAAS,EAATA,SAAS,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAAlB,KAAA;;IAEOoE,WAAW,GAAG,UAACjD,QAAiB,EAAK;MAC3CnB,KAAA,CAAKwC,QAAQ,CAAC,EAAErB,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;IAC7B,CAAC,QAAAnB,KAAA,MAAAqE,eAAA,CAAAC,OAAA,EAAAzE,KAAA,EAAAE,gBAAA,MAAAwE,MAAA,GAAA1E,KAAA,CAAA2E,SAAA,CAAAD,MAAA,CAzRME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,KAAAC,sBAAA,EAAAC,mBAAA,CACzB,IAAI,CAACvD,iBAAiB,GAAGsB,sBAAU,CAACkC,GAAG,CAAC,IAAI,EAAE,IAAI,CAACtC,iBAAiB,EAAE,IAAI,CAACM,YAAY,CAAC,CAExF,IAAIxD,kBAAkB,KAAK,CAAC,EAAE,KAAAyF,qBAAA,EAAAC,kBAAA,CAC5B,CAAAD,qBAAA,IAAAC,kBAAA,OAAI,CAAClC,YAAY,EAACmC,gBAAgB,aAAlCF,qBAAA,CAAAtE,IAAA,CAAAuE,kBAAA,EAAqC,QAAQ,EAAE,IAAI,CAAChB,8BAA8B,CAAC,CACrF,CAEA1E,kBAAkB,EAAE,CACpB,CAAAsF,sBAAA,IAAAC,mBAAA,OAAI,CAAC/B,YAAY,EAACmC,gBAAgB,aAAlCL,sBAAA,CAAAnE,IAAA,CAAAoE,mBAAA,EAAqC,SAAS,EAAE,IAAI,CAACvB,aAAa,CAAC,CACnE,IAAI,CAACI,+BAA+B,CAAC,CAAC,CAEtC,IAAI,IAAI,CAACnC,aAAa,EAAE,CACtB,IAAI,CAACA,aAAa,CAAC0D,gBAAgB,CAAC,QAAQ,EAAEjH,YAAY,CAACmG,IAAI,CAAC,CAClE,CACF,CAAC,CAAAM,MAAA,CAEMS,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,KAAAC,sBAAA,EAAAC,mBAAA,CAC5B,IAAI,EAAE9F,kBAAkB,KAAK,CAAC,EAAE,KAAA+F,qBAAA,EAAAC,mBAAA,CAC9B,CAAAD,qBAAA,IAAAC,mBAAA,OAAI,CAACxC,YAAY,EAACyC,mBAAmB,aAArCF,qBAAA,CAAA5E,IAAA,CAAA6E,mBAAA,EAAwC,QAAQ,EAAE,IAAI,CAACtB,8BAA8B,CAAC,CACtFhG,YAAY,CAACmG,IAAI,CAAC,CAAC,CACrB,CAEA,CAAAgB,sBAAA,IAAAC,mBAAA,OAAI,CAACtC,YAAY,EAACyC,mBAAmB,aAArCJ,sBAAA,CAAA1E,IAAA,CAAA2E,mBAAA,EAAwC,SAAS,EAAE,IAAI,CAAC9B,aAAa,CAAC,CACtE,IAAI,IAAAkC,oBAAa,EAAC,IAAI,CAAClE,iBAAiB,CAAC,EAAE,CACzC,IAAI,CAACA,iBAAiB,CAACmE,MAAM,CAAC,CAAC,CACjC,CACA7C,sBAAU,CAAC6C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC3C,YAAY,CAAC,CAE1C,IAAI,IAAI,CAACvB,aAAa,EAAE,CACtB,IAAI,CAACA,aAAa,CAACgE,mBAAmB,CAAC,QAAQ,EAAEvH,YAAY,CAACmG,IAAI,CAAC,CACrE,CACF,CAAC,CAAAM,MAAA,CAEMiB,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,IAAI,CAAC/D,MAAM,GAAG,IAAAgE,iBAAS,EAAC,IAAI,CAACC,OAAO,CAAC,CAErC,oBACEpI,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAACvH,aAAA,CAAAwH,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVN,MAAI,CAACM,KAAK,GAAG,IAAAC,4BAAa,EAACD,KAAK,EAAEN,MAAI,CAACxD,KAAK,CAAC8D,KAAK,CAAC,CACnD,oBAAOxI,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAACvH,aAAA,CAAAwH,YAAY,CAACI,QAAQ,IAACC,KAAK,EAAET,MAAI,CAACM,KAAM,IAAEN,MAAI,CAACU,UAAU,CAAC,CAAyB,CAAC,CAC9F,CACqB,CAAC,CAE5B,CAAC,CAAA5B,MAAA,CAyBO4B,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAC,MAAA,QACnB,IAAAC,WAAA,GASI,IAAI,CAACpE,KAAK,CARZqE,OAAO,GAAAD,WAAA,CAAPC,OAAO,CACPpE,YAAY,GAAAmE,WAAA,CAAZnE,YAAY,CACZqE,KAAK,GAAAF,WAAA,CAALE,KAAK,CACL9E,gBAAgB,GAAA4E,WAAA,CAAhB5E,gBAAgB,CAChB+E,QAAQ,GAAAH,WAAA,CAARG,QAAQ,CACRC,QAAQ,GAAAJ,WAAA,CAARI,QAAQ,CACMC,SAAS,GAAAL,WAAA,CAAvB,YAAY,EACOM,cAAc,GAAAN,WAAA,CAAjC,iBAAiB,EAEnB,IAAAO,WAAA,GAA2C,IAAI,CAAC/F,KAAK,CAA7CI,SAAS,GAAA2F,WAAA,CAAT3F,SAAS,CAAEC,SAAS,GAAA0F,WAAA,CAAT1F,SAAS,CAAEC,QAAQ,GAAAyF,WAAA,CAARzF,QAAQ,CACtC,IAAA0F,cAAA,GAAmC,IAAI,CAACnG,QAAQ,CAAC,CAAC,CAA1CoG,IAAI,GAAAD,cAAA,CAAJC,IAAI,CAAEC,gBAAgB,GAAAF,cAAA,CAAhBE,gBAAgB,CAE9B,IAAMC,iBAAoC,GAAG,EAC3C/F,SAAS,EAATA,SAAS,EACTD,gBAAgB,EAAE,IAAI,CAACH,KAAK,CAACG,gBAAgB,EAC7CkD,YAAY,EAAE,IAAI,CAACA,YAAY,EAC/BC,YAAY,EAAE,IAAI,CAACA,YAAY,EAC/BC,WAAW,EAAE,IAAI,CAACA,WAAW,EAC7B6C,kBAAkB,EAAE,IAAI,CAAChF,KAAK,CAACR,gBAAgB,KAAK,YAAY,CAClE,CAAC,CACD,IAAI,CAAC6E,OAAO,EAAE,CACZU,iBAAiB,CAACvH,KAAK,GAAG,EACxByC,YAAY,EAAZA,YAAY,EACZF,YAAY,EAAE,IAAI,CAACA,YAAY,CACjC,CAAC,CACH,CACA,IAAI,CAACd,SAAS,IAAIC,QAAQ,EAAE,CAC1B6F,iBAAiB,CAACE,iBAAiB,GAAG,IAAI,CAC5C,CAEA,IAAMC,KAAkC,GAAG,CAAC,CAAC,CAC7C,IAAMC,cAA2C,GAAG,CAAC,CAAC,CAEtD,IAAIb,KAAK,EAAE,CACTY,KAAK,CAACZ,KAAK,GAAGA,KAAK,CACrB,CAAC,MAAM,CACLa,cAAc,CAACb,KAAK,GAAG,MAAM,CAC/B,CAEA,IAAMc,kCAAkC,GAAG,SAArCA,kCAAkCA,CAAA,EAAS,KAAAC,SAAA,CAC/C,OAAOlB,MAAI,CAACmB,EAAE,CAACnB,MAAI,CAAC1E,MAAM,CAAC8F,qBAAqB,CAACpB,MAAI,CAACL,KAAK,CAAC,GAAAuB,SAAA,OAAAA,SAAA,CACzDlB,MAAI,CAAC1E,MAAM,CAAC+F,wBAAwB,CAACrB,MAAI,CAACL,KAAK,CAAC,IAC/CtE,gBAAgB,KAAK,oBAAoB,IAAKA,gBAAgB,KAAK,MAAM,IAAIP,SAAU,EAAAoG,SAAA,CACxFlB,MAAI,CAAC1E,MAAM,CAACgG,+BAA+B,CAAC,CAAC,IAAGjG,gBAAgB,KAAK,YAAY,EAAA6F,SAAA,CACnF,CAAC,CACJ,CAAC,CAED,oBACE/J,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAAC5H,gBAAA,CAAA2J,eAAe,qBACdpK,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAACtH,cAAA,CAAAsJ,aAAa,EAAK,IAAI,CAAC3F,KAAK,eAC3B1E,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAAC3H,OAAA,CAAA4J,MAAM,IAACC,QAAQ,EAAE,OAAQ,EAACC,SAAS,EAAE,IAAI,CAACrG,MAAM,CAACsG,IAAI,CAAC,CAAE,iBACvDzK,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAAC1H,uBAAA,CAAA+J,sBAAsB,MAAE,CAAC,EACzB,IAAI,CAACpH,KAAK,CAACE,aAAa,iBACvBxD,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,UACEsC,WAAW,EAAE,IAAI,CAACrF,wBAAyB,EAC3CsF,SAAS,EAAE,IAAI,CAACnF,sBAAuB,EACvCoF,OAAO,EAAE,IAAI,CAACnF,oBAAqB,EACnC8E,SAAS,EAAE,IAAI,CAACrG,MAAM,CAAC2G,EAAE,CAAC,IAAI,CAACtC,KAAK,CAAE,EACvC,CACF,eACDxI,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAACpH,iBAAA,CAAA8J,gBAAgB,QACd,UAAAC,IAAA,OAAAC,UAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAC,UAAA,KAAGC,QAAQ,GAAAN,IAAA,CAARM,QAAQ,qBACVtL,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,UACE,mBAAiBe,cAAe,EAChCmC,GAAG,EAAE1C,MAAI,CAAChE,YAAa,EACvB2F,SAAS,EAAE3B,MAAI,CAACmB,EAAE,CAChBnB,MAAI,CAAC1E,MAAM,CAACnC,SAAS,CAAC,CAAC,EACvB,CAACsJ,QAAQ,IAAIzC,MAAI,CAAC1E,MAAM,CAACqH,gBAAgB,CAAC,CAAC,EAC3CF,QAAQ,IAAIzC,MAAI,CAAC5E,2BAA2B,CAAC,CAC/C,CAAE,EACF0G,WAAW,EAAE9B,MAAI,CAACvD,wBAAyB,EAC3CsF,SAAS,EAAE/B,MAAI,CAACpD,sBAAuB,EACvCoF,OAAO,EAAEhC,MAAI,CAACnD,oBAAqB,EACnC,YAAU5D,aAAa,CAACE,SAAU,iBAElChC,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,UACE,kBAAU,EACV,cAAYc,SAAU,EACtBI,IAAI,EAAEA,IAAK,EACXiB,SAAS,EAAE3B,MAAI,CAACmB,EAAE,EAAAiB,UAAA,OAAAA,UAAA,CACfpC,MAAI,CAAC1E,MAAM,CAACsH,eAAe,CAAC,CAAC,IAAG,IAAI,EAAAR,UAAA,CACpCnB,kCAAkC,CAAC,CAAC,IAAGwB,QAAQ,EAAAL,UAAA,CAC/CpC,MAAI,CAAC1E,MAAM,CAAC8E,QAAQ,CAAC,CAAC,IAAGyC,OAAO,CAACzC,QAAQ,CAAC,EAAAgC,UAAA,CAC5C,CAAE,EACHrB,KAAK,EAAE0B,QAAQ,GAAGK,SAAS,GAAG9B,cAAe,EAC7C,YAAU/H,aAAa,CAACG,OAAQ,iBAEhCjC,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,UACEmC,SAAS,EAAE3B,MAAI,CAACmB,EAAE,EAAAkB,UAAA,OAAAA,UAAA,CACfrC,MAAI,CAAC1E,MAAM,CAACyH,MAAM,CAAC/C,MAAI,CAACL,KAAK,CAAC,IAAG,IAAI,EAAA0C,UAAA,CACrCrC,MAAI,CAAC1E,MAAM,CAAC0H,YAAY,CAAC,CAAC,IAAGP,QAAQ,EAAAJ,UAAA,CACrCrC,MAAI,CAAC1E,MAAM,CAAC2H,sBAAsB,CAAC,CAAC,IAAGR,QAAQ,IAAIpH,gBAAgB,KAAK,YAAY,EAAAgH,UAAA,CACtF,CAAE,EACHtB,KAAK,EAAE0B,QAAQ,GAAGK,SAAS,GAAG/B,KAAM,iBAEpC5J,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAACxH,eAAA,CAAAkL,cAAc,IAACC,QAAQ,EAAEnD,MAAI,CAACpC,YAAa,EAACwF,UAAU,EAAEX,QAAS,iBAChEtL,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAAClI,eAAA,CAAA4G,OAAS,IACRmF,QAAQ,EAAE1C,gBAAiB,EAC3B2C,SAAS,EAAE,KAAM,EACjB3B,SAAS,EAAE3B,MAAI,CAACmB,EAAE,EAAAmB,UAAA,OAAAA,UAAA,CAAItC,MAAI,CAAC1E,MAAM,CAACiI,mBAAmB,CAAC,CAAC,IAAGd,QAAQ,EAAAH,UAAA,GAAI,sBAAsB,CAAE,IAE7F,CAACzH,SAAS,IAAI,CAACqF,OAAO,iBACrB/I,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAAC3H,OAAA,CAAA4J,MAAM,IACLC,QAAQ,EAAEpI,mBAAmB,CAACC,KAAM,EACpCoI,SAAS,EAAE3B,MAAI,CAACmB,EAAE,EAAAoB,UAAA,OAAAA,UAAA,CACfvC,MAAI,CAAC1E,MAAM,CAACkI,YAAY,CAACxD,MAAI,CAACL,KAAK,CAAC,IAAG,IAAI,EAAA4C,UAAA,CAC3CvC,MAAI,CAAC1E,MAAM,CAACmI,kBAAkB,CAACzD,MAAI,CAACL,KAAK,CAAC,IAAG8C,QAAQ,EAAAF,UAAA,CACvD,CAAE,iBAEHpL,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAAC7G,WAAA,CAAA+K,UAAU,IACT/B,SAAS,EAAE3B,MAAI,CAACmB,EAAE,EAAAqB,UAAA,OAAAA,UAAA,CACfxC,MAAI,CAAC1E,MAAM,CAACqI,wBAAwB,CAAC3D,MAAI,CAACL,KAAK,CAAC,IAAG8C,QAAQ,IAAI,CAACzC,MAAI,CAACvF,KAAK,CAACI,SAAS,EAAA2H,UAAA,CACtF,CAAE,EACH5G,YAAY,EAAEoE,MAAI,CAACpE,YAAa,EAChCE,YAAY,EAAEA,YAAa,EAC5B,CACK,CACT,eACD3E,MAAA,CAAA+G,OAAA,CAAAsB,aAAA,CAACjH,aAAA,CAAAqL,YAAY,CAAC/D,QAAQ,IAACC,KAAK,EAAEc,iBAAkB,IAAEP,QAAgC,CACzE,CACG,CACb,CACF,CACF,CAAC,EAEQ,CACZ,CACK,CACA,CAAC,CAEtB,CAAC,QAAA5G,KAAA,GA5OwBoK,cAAK,CAACC,SAAS,GAAA/K,MAAA,CAC1BgL,mBAAmB,GAAG,OAAO,EAAAhL,MAAA,CAC7BiL,WAAW,GAAG,OAAO,EAAAjL,MAAA,CAErBkL,MAAM,GAAGC,wBAAW,EAAAnL,MAAA,CACpBoL,IAAI,GAAGC,oBAAS,EAAArL,MAAA,CAChBsL,MAAM,GAAGC,wBAAW,EAAAvL,MAAA,CAEpByB,YAAY,GAAiB,EACzCmG,gBAAgB,EAAE,KAAK,EACvBD,IAAI,EAAE,QAAQ,EACdrF,gBAAgB,EAAE,MAAM,CAC1B,CAAC,EAAAtC,MAAA,MAAAD,MAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactFocusLock","_lodash","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_RenderContainer","_ZIndex","_HideBodyVerticalScroll","_ModalStack","_ResizeDetector","_ThemeContext","_CommonWrapper","_createPropsGetter","_ResponsiveLayout","_typeGuards","_rootNode","_renderEnvironment","_ModalContext","_ModalFooter","_ModalHeader","_ModalBody","_ModalClose","_Modal2","_getModalTheme","_class","_Modal","mountedModalsCount","ModalDataTids","exports","container","content","close","ModalZIndexPriority","Cross","Content","Modal","withRenderEnvironment","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","getMobileContainerClassName","mobileAppearance","styles","mobileContainerSmall5_2","mobileContainerFullscreen5_2","mobileContainerSmallBottom5_2","mobileContainerSmallTop5_2","catchUnreachableWarning","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","globalObject","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","isKeyEscape","stopPropagation","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","throttle","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","_inheritsLoose2","default","_proto","prototype","componentDidMount","_this$globalObject$ad2","_this$globalObject2","add","_this$globalObject$ad","_this$globalObject","addEventListener","componentWillUnmount","_this$globalObject$re2","_this$globalObject4","_this$globalObject$re","_this$globalObject3","removeEventListener","isNonNullable","remove","render","_this2","getStyles","emotion","createElement","ThemeContext","Consumer","theme","getModalTheme","Provider","value","renderMain","_this3","_this$props","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","_this$state","_this$getProps","role","disableFocusLock","modalContextProps","mobileOnFullScreen","additionalPadding","style","containerStyle","getMobileCenterContainerClassNames","_this3$cx","cx","mobileCenterContainer","mobileCenterContainerBig","mobileCenterContainerFullscreen","RenderContainer","CommonWrapper","_extends2","rootNodeRef","setRootNode","ZIndex","priority","className","root","HideBodyVerticalScroll","onMouseDown","onMouseUp","onClick","bg","ResponsiveLayout","_ref","_this3$cx2","_this3$cx3","_this3$cx4","_this3$cx5","_this3$cx6","isMobile","ref","containerDesktop","centerContainer","Boolean","undefined","window","mobileWindow","mobileWindowFullscreen","ResizeDetector","onResize","fullHeight","disabled","autoFocus","columnFlexContainer","closeWrapper","mobileCloseWrapper","ModalClose","mobileCloseWithoutHeader","ModalContext","React","Component","__KONTUR_REACT_UI__","displayName","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter"],"sources":["Modal.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes, JSX } from 'react';\nimport React from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { GlobalObject } from '../../lib/globalObject';\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 { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\nimport { rootNode, type TGetRootNode, type TSetRootNode } from '../../lib/rootNode';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport type { ModalContextProps } from './ModalContext';\nimport { ModalContext } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { getStyles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport type MobileModalAppearance = 'auto' | 'top' | 'center' | 'bottom' | 'fullscreen-spacing' | 'fullscreen';\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /** Отключает событие `onClose` и дизейблит кнопку закрытия модалки. */\n disableClose?: boolean;\n\n /** Выравнивает окно по верху страницы. */\n alignTop?: boolean;\n\n /** Оставляет окно открытым при клике на фон. */\n ignoreBackgroundClick?: boolean;\n\n /** Убирает крестик для закрытия окна */\n noClose?: boolean;\n\n /** Задает ширину модалки. */\n width?: number | string;\n\n /** Задает функцию, которая вызывается, когда пользователь запросил закрытие окна (нажал на фон, на Escape или на крестик). */\n onClose?: () => void;\n\n /** Отключает фокус-лок внутри модалки. */\n disableFocusLock?: boolean;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n\n /** Задает внешний вид модалки. Работает с версией темы >= 5_2.\n * - `auto` — если футера нет, модалка распологается в центре экрана, если футер есть -- модалка растягивается на весь экран с отступами и закругленными краями\n * - `top` — модалка располагается сверху независимо от наличия футера\n * - `center` — модалка располагается в центре независимо от наличия футера\n * - `bottom` — модалка располагается снизу независимо от наличия футера\n * - `fullscreen-spacing` — модалка растягивается на весь экран с отступами и закругленными краями\n * - `fullscreen` — модалка растягивается на весь экран\n * @default auto\n */\n mobileAppearance?: MobileModalAppearance;\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\nexport const ModalZIndexPriority = {\n Cross: 2,\n Content: 1,\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role' | 'mobileAppearance'>>;\n\n/**\n * Модальное окно `Modal` — это эмуляция диалогового окна браузера, появляющегося поверх страницы в ответ на действия пользователя и блокирующего доступ к основному содержимому страницы.\n *\n * Состоит из 3-х компонентов: `Modal.Header`, `Modal.Body`, `Modal.Footer`.\n *\n * Для отображения серой плашки в футере в компонент `Footer` необходимо передать проп `panel`.\n *\n * Для отключения прилипания шапки и футера в соответствующий компонент нужно передать проп `sticky` со значением `false` (по-умолчанию прилипание включено).\n */\n@withRenderEnvironment\n@rootNode\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public static defaultProps: DefaultProps = {\n disableFocusLock: false,\n role: 'dialog',\n mobileAppearance: 'auto',\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 globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\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, this.globalObject);\n\n if (mountedModalsCount === 0) {\n this.globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n this.globalObject.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 this.globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n this.globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this, this.globalObject);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getMobileContainerClassName = () => {\n const mobileAppearance = this.getProps().mobileAppearance;\n switch (mobileAppearance) {\n case 'fullscreen-spacing':\n return;\n case 'auto':\n if (this.state.hasFooter) {\n return;\n }\n return [this.styles.mobileContainerSmall5_2()];\n case 'fullscreen':\n return [this.styles.mobileContainerFullscreen5_2()];\n case 'center':\n return [this.styles.mobileContainerSmall5_2()];\n case 'bottom':\n return [this.styles.mobileContainerSmall5_2(), this.styles.mobileContainerSmallBottom5_2()];\n case 'top':\n return [this.styles.mobileContainerSmall5_2(), this.styles.mobileContainerSmallTop5_2()];\n default:\n return catchUnreachableWarning(mobileAppearance, false);\n }\n };\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n mobileAppearance,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\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 mobileOnFullScreen: this.props.mobileAppearance === 'fullscreen',\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\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 (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n const getMobileCenterContainerClassNames = () => {\n return this.cx(this.styles.mobileCenterContainer(this.theme), {\n [this.styles.mobileCenterContainerBig(this.theme)]:\n mobileAppearance === 'fullscreen-spacing' || (mobileAppearance === 'auto' && hasFooter),\n [this.styles.mobileCenterContainerFullscreen()]: mobileAppearance === 'fullscreen',\n });\n };\n\n return (\n <RenderContainer>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex priority={'Modal'} className={this.styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={this.styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={this.cx(\n this.styles.container(),\n !isMobile && this.styles.containerDesktop(),\n isMobile && this.getMobileContainerClassName(),\n )}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={this.cx({\n [this.styles.centerContainer()]: true,\n [getMobileCenterContainerClassNames()]: isMobile,\n [this.styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={this.cx({\n [this.styles.window(this.theme)]: true,\n [this.styles.mobileWindow()]: isMobile,\n [this.styles.mobileWindowFullscreen()]: isMobile && mobileAppearance === 'fullscreen',\n })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={this.cx({ [this.styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n priority={ModalZIndexPriority.Cross}\n className={this.cx({\n [this.styles.closeWrapper(this.theme)]: true,\n [this.styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={this.cx({\n [this.styles.mobileCloseWithoutHeader(this.theme)]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\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({\n stackPosition: stack.indexOf(this),\n hasBackground: ModalStack.isBlocking(this, this.globalObject),\n });\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 e.stopPropagation();\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: boolean) => {\n this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter: boolean) => {\n this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel: boolean) => {\n this.setState({ hasPanel });\n };\n}\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;;;;AAIA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAC,uBAAA,CAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,uBAAA,GAAAT,OAAA;;AAEA,IAAAU,WAAA,GAAAV,OAAA;AACA,IAAAW,eAAA,GAAAX,OAAA;AACA,IAAAY,aAAA,GAAAZ,OAAA;;;AAGA,IAAAa,cAAA,GAAAb,OAAA;AACA,IAAAc,kBAAA,GAAAd,OAAA;AACA,IAAAe,iBAAA,GAAAf,OAAA;AACA,IAAAgB,WAAA,GAAAhB,OAAA;AACA,IAAAiB,SAAA,GAAAjB,OAAA;AACA,IAAAkB,kBAAA,GAAAlB,OAAA;;;AAGA,IAAAmB,aAAA,GAAAnB,OAAA;AACA,IAAAoB,YAAA,GAAApB,OAAA;AACA,IAAAqB,YAAA,GAAArB,OAAA;AACA,IAAAsB,UAAA,GAAAtB,OAAA;AACA,IAAAuB,WAAA,GAAAvB,OAAA;AACA,IAAAwB,OAAA,GAAAxB,OAAA;AACA,IAAAyB,cAAA,GAAAzB,OAAA,oBAAgD,IAAA0B,MAAA,EAAAC,MAAA;;AAEhD,IAAIC,kBAAkB,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDnB,IAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC3BE,SAAS,EAAE,iBAAiB;EAC5BC,OAAO,EAAE,eAAe;EACxBC,KAAK,EAAE;AACT,CAAU;;AAEH,IAAMC,mBAAmB,GAAAJ,OAAA,CAAAI,mBAAA,GAAG;EACjCC,KAAK,EAAE,CAAC;EACRC,OAAO,EAAE;AACX,CAAU;;;;AAIV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GARA;;;AAWaC,KAAK,GAAAP,OAAA,CAAAO,KAAA,OAFjBC,wCAAqB,EAAAZ,MAAA,OACrBa,kBAAQ,EAAAb,MAAA,IAAAC,MAAA,0BAAAa,gBAAA,YAAAH,MAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;;;;IAkBCU,QAAQ,GAAG,IAAAC,oCAAiB,EAACf,KAAK,CAACgB,YAAY,CAAC,CAAAZ,KAAA;;IAEjDa,KAAK,GAAe;MACzBC,aAAa,EAAE,CAAC;MAChBC,aAAa,EAAE,IAAI;MACnBC,gBAAgB,EAAE,KAAK;MACvBC,SAAS,EAAE,KAAK;MAChBC,SAAS,EAAE,KAAK;MAChBC,QAAQ,EAAE;IACZ,CAAC,CAAAnB,KAAA;;;;;;;IAOOoB,iBAAiB,GAAkC,IAAI,CAAApB,KAAA;IACvDqB,aAAa,GAA0B,IAAI,CAAArB,KAAA;IAC3CsB,eAAe,GAAuB,IAAI,CAAAtB,KAAA;IAC1CuB,aAAa,GAAuB,IAAI,CAAAvB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgDxCwB,2BAA2B,GAAG,YAAM;MAC1C,IAAMC,gBAAgB,GAAGzB,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACe,gBAAgB;MACzD,QAAQA,gBAAgB;QACtB,KAAK,oBAAoB;UACvB;QACF,KAAK,MAAM;UACT,IAAIzB,KAAA,CAAKa,KAAK,CAACK,SAAS,EAAE;YACxB;UACF;UACA,OAAO,CAAClB,KAAA,CAAK0B,MAAM,CAACC,uBAAuB,CAAC,CAAC,CAAC;QAChD,KAAK,YAAY;UACf,OAAO,CAAC3B,KAAA,CAAK0B,MAAM,CAACE,4BAA4B,CAAC,CAAC,CAAC;QACrD,KAAK,QAAQ;UACX,OAAO,CAAC5B,KAAA,CAAK0B,MAAM,CAACC,uBAAuB,CAAC,CAAC,CAAC;QAChD,KAAK,QAAQ;UACX,OAAO,CAAC3B,KAAA,CAAK0B,MAAM,CAACC,uBAAuB,CAAC,CAAC,EAAE3B,KAAA,CAAK0B,MAAM,CAACG,6BAA6B,CAAC,CAAC,CAAC;QAC7F,KAAK,KAAK;UACR,OAAO,CAAC7B,KAAA,CAAK0B,MAAM,CAACC,uBAAuB,CAAC,CAAC,EAAE3B,KAAA,CAAK0B,MAAM,CAACI,0BAA0B,CAAC,CAAC,CAAC;QAC1F;UACE,OAAO,IAAAC,mCAAuB,EAACN,gBAAgB,EAAE,KAAK,CAAC;MAC3D;IACF,CAAC,CAAAzB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwIOgC,YAAY,GAAG,YAAM;MAC3B,IAAIhC,KAAA,CAAKiC,KAAK,CAACC,YAAY,EAAE;QAC3B;MACF;MACA,IAAIlC,KAAA,CAAKiC,KAAK,CAACE,OAAO,EAAE;QACtBnC,KAAA,CAAKiC,KAAK,CAACE,OAAO,CAAC,CAAC;MACtB;IACF,CAAC,CAAAnC,KAAA;;IAEOoC,YAAY,GAAG,UAACC,MAA6B,EAAK;MACxDrC,KAAA,CAAKqB,aAAa,GAAGgB,MAAM;IAC7B,CAAC,CAAArC,KAAA;;IAEOsC,iBAAiB,GAAG,UAACC,KAAiC,EAAK;MACjEvC,KAAA,CAAKwC,QAAQ,CAAC;QACZ1B,aAAa,EAAEyB,KAAK,CAACE,OAAO,CAAAzC,KAAK,CAAC;QAClCe,aAAa,EAAE2B,sBAAU,CAACC,UAAU,CAAA3C,KAAA,EAAOA,KAAA,CAAK4C,YAAY;MAC9D,CAAC,CAAC;IACJ,CAAC,CAAA5C,KAAA;;IAEO6C,wBAAwB,GAAG,UAACC,KAAuB,EAAK;MAC9D9C,KAAA,CAAKsB,eAAe,GAAGwB,KAAK,CAACC,MAAM;IACrC,CAAC,CAAA/C,KAAA;;IAEOgD,sBAAsB,GAAG,UAACF,KAAuB,EAAK;MAC5D9C,KAAA,CAAKuB,aAAa,GAAGuB,KAAK,CAACC,MAAM;IACnC,CAAC,CAAA/C,KAAA;;IAEOiD,oBAAoB,GAAG,UAACH,KAAuC,EAAK;MAC1E,IAAI,CAAC9C,KAAA,CAAKiC,KAAK,CAACiB,qBAAqB,EAAE;QACrC,IAAQH,MAAM,GAAoBD,KAAK,CAA/BC,MAAM,CAAEI,aAAa,GAAKL,KAAK,CAAvBK,aAAa;QAC7B,IAAIJ,MAAM,KAAKI,aAAa,IAAInD,KAAA,CAAKsB,eAAe,KAAK6B,aAAa,IAAInD,KAAA,CAAKuB,aAAa,KAAK4B,aAAa,EAAE;UAC9GnD,KAAA,CAAKgC,YAAY,CAAC,CAAC;QACrB;MACF;IACF,CAAC,CAAAhC,KAAA;;IAEOoD,aAAa,GAAG,UAACC,CAAgB,EAAK;MAC5C,IAAIrD,KAAA,CAAKa,KAAK,CAACC,aAAa,KAAK,CAAC,EAAE;QAClC;MACF;MACA,IAAI,IAAAwC,wBAAW,EAACD,CAAC,CAAC,EAAE;QAClBA,CAAC,CAACE,eAAe,CAAC,CAAC;QACnBvD,KAAA,CAAKgC,YAAY,CAAC,CAAC;MACrB;IACF,CAAC,CAAAhC,KAAA;;IAEOwD,+BAA+B,GAAG,YAAM;MAC9C,IAAIC,SAAS,GAAG,KAAK;;MAErB,IAAIzD,KAAA,CAAKqB,aAAa,EAAE;QACtB,IAAMqC,oBAAoB,GAAG1D,KAAA,CAAKqB,aAAa,CAACsC,WAAW;QAC3D,IAAMC,oBAAoB,GAAG5D,KAAA,CAAKqB,aAAa,CAACwC,WAAW;QAC3DJ,SAAS,GAAGC,oBAAoB,GAAGE,oBAAoB;MACzD;MACA,IAAIH,SAAS,IAAI,CAACzD,KAAA,CAAKa,KAAK,CAACG,gBAAgB,EAAE;QAC7ChB,KAAA,CAAKwC,QAAQ,CAAC,EAAExB,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;MAC3C,CAAC,MAAM,IAAIhB,KAAA,CAAKa,KAAK,CAACG,gBAAgB,EAAE;QACtChB,KAAA,CAAKwC,QAAQ,CAAC,EAAExB,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;MAC5C;IACF,CAAC,CAAAhB,KAAA;;IAEO8D,8BAA8B,GAAG,IAAAC,eAAQ,EAAC/D,KAAA,CAAKwD,+BAA+B,EAAE,GAAG,CAAC,CAAAxD,KAAA;;IAEpFgE,YAAY,GAAG,YAAM;MAC3BpG,YAAY,CAACqG,IAAI,CAAC,CAAC;IACrB,CAAC,CAAAjE,KAAA;;IAEOkE,YAAY,GAAG,UAACjD,SAAkB,EAAK;MAC7CjB,KAAA,CAAKwC,QAAQ,CAAC,EAAEvB,SAAS,EAATA,SAAS,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAAjB,KAAA;;IAEOmE,YAAY,GAAG,UAACjD,SAAkB,EAAK;MAC7ClB,KAAA,CAAKwC,QAAQ,CAAC,EAAEtB,SAAS,EAATA,SAAS,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAAlB,KAAA;;IAEOoE,WAAW,GAAG,UAACjD,QAAiB,EAAK;MAC3CnB,KAAA,CAAKwC,QAAQ,CAAC,EAAErB,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;IAC7B,CAAC,QAAAnB,KAAA,MAAAqE,eAAA,CAAAC,OAAA,EAAA1E,KAAA,EAAAG,gBAAA,MAAAwE,MAAA,GAAA3E,KAAA,CAAA4E,SAAA,CAAAD,MAAA,CAzRME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,KAAAC,sBAAA,EAAAC,mBAAA,CACzB,IAAI,CAACvD,iBAAiB,GAAGsB,sBAAU,CAACkC,GAAG,CAAC,IAAI,EAAE,IAAI,CAACtC,iBAAiB,EAAE,IAAI,CAACM,YAAY,CAAC,CAExF,IAAIzD,kBAAkB,KAAK,CAAC,EAAE,KAAA0F,qBAAA,EAAAC,kBAAA,CAC5B,CAAAD,qBAAA,IAAAC,kBAAA,OAAI,CAAClC,YAAY,EAACmC,gBAAgB,aAAlCF,qBAAA,CAAAtE,IAAA,CAAAuE,kBAAA,EAAqC,QAAQ,EAAE,IAAI,CAAChB,8BAA8B,CAAC,CACrF,CAEA3E,kBAAkB,EAAE,CACpB,CAAAuF,sBAAA,IAAAC,mBAAA,OAAI,CAAC/B,YAAY,EAACmC,gBAAgB,aAAlCL,sBAAA,CAAAnE,IAAA,CAAAoE,mBAAA,EAAqC,SAAS,EAAE,IAAI,CAACvB,aAAa,CAAC,CACnE,IAAI,CAACI,+BAA+B,CAAC,CAAC,CAEtC,IAAI,IAAI,CAACnC,aAAa,EAAE,CACtB,IAAI,CAACA,aAAa,CAAC0D,gBAAgB,CAAC,QAAQ,EAAEnH,YAAY,CAACqG,IAAI,CAAC,CAClE,CACF,CAAC,CAAAM,MAAA,CAEMS,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,KAAAC,sBAAA,EAAAC,mBAAA,CAC5B,IAAI,EAAE/F,kBAAkB,KAAK,CAAC,EAAE,KAAAgG,qBAAA,EAAAC,mBAAA,CAC9B,CAAAD,qBAAA,IAAAC,mBAAA,OAAI,CAACxC,YAAY,EAACyC,mBAAmB,aAArCF,qBAAA,CAAA5E,IAAA,CAAA6E,mBAAA,EAAwC,QAAQ,EAAE,IAAI,CAACtB,8BAA8B,CAAC,CACtFlG,YAAY,CAACqG,IAAI,CAAC,CAAC,CACrB,CAEA,CAAAgB,sBAAA,IAAAC,mBAAA,OAAI,CAACtC,YAAY,EAACyC,mBAAmB,aAArCJ,sBAAA,CAAA1E,IAAA,CAAA2E,mBAAA,EAAwC,SAAS,EAAE,IAAI,CAAC9B,aAAa,CAAC,CACtE,IAAI,IAAAkC,oBAAa,EAAC,IAAI,CAAClE,iBAAiB,CAAC,EAAE,CACzC,IAAI,CAACA,iBAAiB,CAACmE,MAAM,CAAC,CAAC,CACjC,CACA7C,sBAAU,CAAC6C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC3C,YAAY,CAAC,CAE1C,IAAI,IAAI,CAACvB,aAAa,EAAE,CACtB,IAAI,CAACA,aAAa,CAACgE,mBAAmB,CAAC,QAAQ,EAAEzH,YAAY,CAACqG,IAAI,CAAC,CACrE,CACF,CAAC,CAAAM,MAAA,CAEMiB,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,IAAI,CAAC/D,MAAM,GAAG,IAAAgE,iBAAS,EAAC,IAAI,CAACC,OAAO,CAAC,CAErC,oBACEtI,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAACzH,aAAA,CAAA0H,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVN,MAAI,CAACM,KAAK,GAAG,IAAAC,4BAAa,EAACD,KAAK,EAAEN,MAAI,CAACxD,KAAK,CAAC8D,KAAK,CAAC,CACnD,oBAAO1I,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAACzH,aAAA,CAAA0H,YAAY,CAACI,QAAQ,IAACC,KAAK,EAAET,MAAI,CAACM,KAAM,IAAEN,MAAI,CAACU,UAAU,CAAC,CAAyB,CAAC,CAC9F,CACqB,CAAC,CAE5B,CAAC,CAAA5B,MAAA,CAyBO4B,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAC,MAAA,QACnB,IAAAC,WAAA,GASI,IAAI,CAACpE,KAAK,CARZqE,OAAO,GAAAD,WAAA,CAAPC,OAAO,CACPpE,YAAY,GAAAmE,WAAA,CAAZnE,YAAY,CACZqE,KAAK,GAAAF,WAAA,CAALE,KAAK,CACL9E,gBAAgB,GAAA4E,WAAA,CAAhB5E,gBAAgB,CAChB+E,QAAQ,GAAAH,WAAA,CAARG,QAAQ,CACRC,QAAQ,GAAAJ,WAAA,CAARI,QAAQ,CACMC,SAAS,GAAAL,WAAA,CAAvB,YAAY,EACOM,cAAc,GAAAN,WAAA,CAAjC,iBAAiB,EAEnB,IAAAO,WAAA,GAA2C,IAAI,CAAC/F,KAAK,CAA7CI,SAAS,GAAA2F,WAAA,CAAT3F,SAAS,CAAEC,SAAS,GAAA0F,WAAA,CAAT1F,SAAS,CAAEC,QAAQ,GAAAyF,WAAA,CAARzF,QAAQ,CACtC,IAAA0F,cAAA,GAAmC,IAAI,CAACnG,QAAQ,CAAC,CAAC,CAA1CoG,IAAI,GAAAD,cAAA,CAAJC,IAAI,CAAEC,gBAAgB,GAAAF,cAAA,CAAhBE,gBAAgB,CAE9B,IAAMC,iBAAoC,GAAG,EAC3C/F,SAAS,EAATA,SAAS,EACTD,gBAAgB,EAAE,IAAI,CAACH,KAAK,CAACG,gBAAgB,EAC7CkD,YAAY,EAAE,IAAI,CAACA,YAAY,EAC/BC,YAAY,EAAE,IAAI,CAACA,YAAY,EAC/BC,WAAW,EAAE,IAAI,CAACA,WAAW,EAC7B6C,kBAAkB,EAAE,IAAI,CAAChF,KAAK,CAACR,gBAAgB,KAAK,YAAY,CAClE,CAAC,CACD,IAAI,CAAC6E,OAAO,EAAE,CACZU,iBAAiB,CAACxH,KAAK,GAAG,EACxB0C,YAAY,EAAZA,YAAY,EACZF,YAAY,EAAE,IAAI,CAACA,YAAY,CACjC,CAAC,CACH,CACA,IAAI,CAACd,SAAS,IAAIC,QAAQ,EAAE,CAC1B6F,iBAAiB,CAACE,iBAAiB,GAAG,IAAI,CAC5C,CAEA,IAAMC,KAAkC,GAAG,CAAC,CAAC,CAC7C,IAAMC,cAA2C,GAAG,CAAC,CAAC,CAEtD,IAAIb,KAAK,EAAE,CACTY,KAAK,CAACZ,KAAK,GAAGA,KAAK,CACrB,CAAC,MAAM,CACLa,cAAc,CAACb,KAAK,GAAG,MAAM,CAC/B,CAEA,IAAMc,kCAAkC,GAAG,SAArCA,kCAAkCA,CAAA,EAAS,KAAAC,SAAA,CAC/C,OAAOlB,MAAI,CAACmB,EAAE,CAACnB,MAAI,CAAC1E,MAAM,CAAC8F,qBAAqB,CAACpB,MAAI,CAACL,KAAK,CAAC,GAAAuB,SAAA,OAAAA,SAAA,CACzDlB,MAAI,CAAC1E,MAAM,CAAC+F,wBAAwB,CAACrB,MAAI,CAACL,KAAK,CAAC,IAC/CtE,gBAAgB,KAAK,oBAAoB,IAAKA,gBAAgB,KAAK,MAAM,IAAIP,SAAU,EAAAoG,SAAA,CACxFlB,MAAI,CAAC1E,MAAM,CAACgG,+BAA+B,CAAC,CAAC,IAAGjG,gBAAgB,KAAK,YAAY,EAAA6F,SAAA,CACnF,CAAC,CACJ,CAAC,CAED,oBACEjK,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAAC9H,gBAAA,CAAA6J,eAAe,qBACdtK,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAACxH,cAAA,CAAAwJ,aAAa,MAAAC,SAAA,CAAAvD,OAAA,IAACwD,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAAC9F,KAAK,gBAC1D5E,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAAC7H,OAAA,CAAAiK,MAAM,IAACC,QAAQ,EAAE,OAAQ,EAACC,SAAS,EAAE,IAAI,CAACxG,MAAM,CAACyG,IAAI,CAAC,CAAE,iBACvD9K,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAAC5H,uBAAA,CAAAoK,sBAAsB,MAAE,CAAC,EACzB,IAAI,CAACvH,KAAK,CAACE,aAAa,iBACvB1D,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,UACEyC,WAAW,EAAE,IAAI,CAACxF,wBAAyB,EAC3CyF,SAAS,EAAE,IAAI,CAACtF,sBAAuB,EACvCuF,OAAO,EAAE,IAAI,CAACtF,oBAAqB,EACnCiF,SAAS,EAAE,IAAI,CAACxG,MAAM,CAAC8G,EAAE,CAAC,IAAI,CAACzC,KAAK,CAAE,EACvC,CACF,eACD1I,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAACtH,iBAAA,CAAAmK,gBAAgB,QACd,UAAAC,IAAA,OAAAC,UAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAC,UAAA,KAAGC,QAAQ,GAAAN,IAAA,CAARM,QAAQ,qBACV3L,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,UACE,mBAAiBe,cAAe,EAChCsC,GAAG,EAAE7C,MAAI,CAAChE,YAAa,EACvB8F,SAAS,EAAE9B,MAAI,CAACmB,EAAE,CAChBnB,MAAI,CAAC1E,MAAM,CAACpC,SAAS,CAAC,CAAC,EACvB,CAAC0J,QAAQ,IAAI5C,MAAI,CAAC1E,MAAM,CAACwH,gBAAgB,CAAC,CAAC,EAC3CF,QAAQ,IAAI5C,MAAI,CAAC5E,2BAA2B,CAAC,CAC/C,CAAE,EACF6G,WAAW,EAAEjC,MAAI,CAACvD,wBAAyB,EAC3CyF,SAAS,EAAElC,MAAI,CAACpD,sBAAuB,EACvCuF,OAAO,EAAEnC,MAAI,CAACnD,oBAAqB,EACnC,YAAU7D,aAAa,CAACE,SAAU,iBAElCjC,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,UACE,kBAAU,EACV,cAAYc,SAAU,EACtBI,IAAI,EAAEA,IAAK,EACXoB,SAAS,EAAE9B,MAAI,CAACmB,EAAE,EAAAoB,UAAA,OAAAA,UAAA,CACfvC,MAAI,CAAC1E,MAAM,CAACyH,eAAe,CAAC,CAAC,IAAG,IAAI,EAAAR,UAAA,CACpCtB,kCAAkC,CAAC,CAAC,IAAG2B,QAAQ,EAAAL,UAAA,CAC/CvC,MAAI,CAAC1E,MAAM,CAAC8E,QAAQ,CAAC,CAAC,IAAG4C,OAAO,CAAC5C,QAAQ,CAAC,EAAAmC,UAAA,CAC5C,CAAE,EACHxB,KAAK,EAAE6B,QAAQ,GAAGK,SAAS,GAAGjC,cAAe,EAC7C,YAAUhI,aAAa,CAACG,OAAQ,iBAEhClC,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,UACEsC,SAAS,EAAE9B,MAAI,CAACmB,EAAE,EAAAqB,UAAA,OAAAA,UAAA,CACfxC,MAAI,CAAC1E,MAAM,CAAC4H,MAAM,CAAClD,MAAI,CAACL,KAAK,CAAC,IAAG,IAAI,EAAA6C,UAAA,CACrCxC,MAAI,CAAC1E,MAAM,CAAC6H,YAAY,CAAC,CAAC,IAAGP,QAAQ,EAAAJ,UAAA,CACrCxC,MAAI,CAAC1E,MAAM,CAAC8H,sBAAsB,CAAC,CAAC,IAAGR,QAAQ,IAAIvH,gBAAgB,KAAK,YAAY,EAAAmH,UAAA,CACtF,CAAE,EACHzB,KAAK,EAAE6B,QAAQ,GAAGK,SAAS,GAAGlC,KAAM,iBAEpC9J,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAAC1H,eAAA,CAAAuL,cAAc,IAACC,QAAQ,EAAEtD,MAAI,CAACpC,YAAa,EAAC2F,UAAU,EAAEX,QAAS,iBAChE3L,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAACpI,eAAA,CAAA8G,OAAS,IACRsF,QAAQ,EAAE7C,gBAAiB,EAC3B8C,SAAS,EAAE,KAAM,EACjB3B,SAAS,EAAE9B,MAAI,CAACmB,EAAE,EAAAsB,UAAA,OAAAA,UAAA,CAAIzC,MAAI,CAAC1E,MAAM,CAACoI,mBAAmB,CAAC,CAAC,IAAGd,QAAQ,EAAAH,UAAA,GAAI,sBAAsB,CAAE,IAE7F,CAAC5H,SAAS,IAAI,CAACqF,OAAO,iBACrBjJ,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAAC7H,OAAA,CAAAiK,MAAM,IACLC,QAAQ,EAAExI,mBAAmB,CAACC,KAAM,EACpCwI,SAAS,EAAE9B,MAAI,CAACmB,EAAE,EAAAuB,UAAA,OAAAA,UAAA,CACf1C,MAAI,CAAC1E,MAAM,CAACqI,YAAY,CAAC3D,MAAI,CAACL,KAAK,CAAC,IAAG,IAAI,EAAA+C,UAAA,CAC3C1C,MAAI,CAAC1E,MAAM,CAACsI,kBAAkB,CAAC5D,MAAI,CAACL,KAAK,CAAC,IAAGiD,QAAQ,EAAAF,UAAA,CACvD,CAAE,iBAEHzL,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAAC9G,WAAA,CAAAmL,UAAU,IACT/B,SAAS,EAAE9B,MAAI,CAACmB,EAAE,EAAAwB,UAAA,OAAAA,UAAA,CACf3C,MAAI,CAAC1E,MAAM,CAACwI,wBAAwB,CAAC9D,MAAI,CAACL,KAAK,CAAC,IAAGiD,QAAQ,IAAI,CAAC5C,MAAI,CAACvF,KAAK,CAACI,SAAS,EAAA8H,UAAA,CACtF,CAAE,EACH/G,YAAY,EAAEoE,MAAI,CAACpE,YAAa,EAChCE,YAAY,EAAEA,YAAa,EAC5B,CACK,CACT,eACD7E,MAAA,CAAAiH,OAAA,CAAAsB,aAAA,CAAClH,aAAA,CAAAyL,YAAY,CAAClE,QAAQ,IAACC,KAAK,EAAEc,iBAAkB,IAAEP,QAAgC,CACzE,CACG,CACb,CACF,CACF,CAAC,EAEQ,CACZ,CACK,CACA,CAAC,CAEtB,CAAC,QAAA7G,KAAA,GA/OwBwK,cAAK,CAACC,SAAS,GAAAnL,MAAA,CAC1BoL,mBAAmB,GAAG,OAAO,EAAApL,MAAA,CAC7BqL,WAAW,GAAG,OAAO,EAAArL,MAAA,CAErBsL,MAAM,GAAGC,wBAAW,EAAAvL,MAAA,CACpBwL,IAAI,GAAGC,oBAAS,EAAAzL,MAAA,CAChB0L,MAAM,GAAGC,wBAAW,EAAA3L,MAAA,CAKpB0B,YAAY,GAAiB,EACzCmG,gBAAgB,EAAE,KAAK,EACvBD,IAAI,EAAE,QAAQ,EACdrF,gBAAgB,EAAE,MAAM,CAC1B,CAAC,EAAAvC,MAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { type JSX } from 'react';
|
|
2
2
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
3
3
|
import type { TGetRootNode } from '../../lib/rootNode';
|
|
4
4
|
export interface ModalBodyProps extends CommonProps {
|
|
@@ -21,7 +21,7 @@ export declare class ModalBody extends React.Component<ModalBodyProps> {
|
|
|
21
21
|
private isMobileLayout;
|
|
22
22
|
getRootNode: TGetRootNode;
|
|
23
23
|
private setRootNode;
|
|
24
|
-
render():
|
|
24
|
+
render(): JSX.Element;
|
|
25
25
|
private handleResize;
|
|
26
26
|
renderMain(): JSX.Element;
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_ThemeContext","_ZIndex","_CommonWrapper","_decorator","LayoutEvents","_interopRequireWildcard","_ResizeDetector","_rootNode","_renderEnvironment","_ModalContext","_Modal","_getModalBodyTheme","_Modal2","_class","_ModalBody","ModalBody","exports","withRenderEnvironment","responsiveLayout","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","handleResize","emit","_inheritsLoose2","default","_proto","prototype","render","_this2","styles","getStyles","emotion","createElement","ThemeContext","Consumer","theme","getModalBodyTheme","Provider","value","renderMain","_this3","noPadding","props","ModalContext","_ref","_this3$cx","additionalPadding","hasHeader","CommonWrapper","_extends2","rootNodeRef","setRootNode","ZIndex","priority","ModalZIndexPriority","Content","className","cx","body","mobileBody","isMobileLayout","bodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","mobileBodyWithoutHeader","bodyWithoutPadding","ResizeDetector","onResize","children","React","Component","__KONTUR_REACT_UI__","displayName","__MODAL_BODY__"],"sources":["ModalBody.tsx"],"sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { ModalContext } from './ModalContext';\nimport { getStyles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\nimport { ModalZIndexPriority } from './Modal';\n\nexport interface ModalBodyProps extends CommonProps {\n /** Убирает отступы. */\n noPadding?: boolean;\n}\n\n/**\n * ModalBody - контейнер с отступами от края модалки.\n *\n * @visibleName Modal.Body\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static displayName = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\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={ModalZIndexPriority.Content}\n className={this.cx({\n [this.styles.body(this.theme)]: true,\n [this.styles.mobileBody(this.theme)]: this.isMobileLayout,\n [this.styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [this.styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [this.styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [this.styles.mobileBodyWithoutHeader(this.theme)]: !hasHeader && this.isMobileLayout,\n [this.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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_ThemeContext","_ZIndex","_CommonWrapper","_decorator","LayoutEvents","_interopRequireWildcard","_ResizeDetector","_rootNode","_renderEnvironment","_ModalContext","_Modal","_getModalBodyTheme","_Modal2","_class","_ModalBody","ModalBody","exports","withRenderEnvironment","responsiveLayout","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","handleResize","emit","_inheritsLoose2","default","_proto","prototype","render","_this2","styles","getStyles","emotion","createElement","ThemeContext","Consumer","theme","getModalBodyTheme","Provider","value","renderMain","_this3","noPadding","props","ModalContext","_ref","_this3$cx","additionalPadding","hasHeader","CommonWrapper","_extends2","rootNodeRef","setRootNode","ZIndex","priority","ModalZIndexPriority","Content","className","cx","body","mobileBody","isMobileLayout","bodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","mobileBodyWithoutHeader","bodyWithoutPadding","ResizeDetector","onResize","children","React","Component","__KONTUR_REACT_UI__","displayName","__MODAL_BODY__"],"sources":["ModalBody.tsx"],"sourcesContent":["import React, { type JSX } from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\nimport { ModalContext } from './ModalContext';\nimport { getStyles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\nimport { ModalZIndexPriority } from './Modal';\n\nexport interface ModalBodyProps extends CommonProps {\n /** Убирает отступы. */\n noPadding?: boolean;\n}\n\n/**\n * ModalBody - контейнер с отступами от края модалки.\n *\n * @visibleName Modal.Body\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static displayName = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\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={ModalZIndexPriority.Content}\n className={this.cx({\n [this.styles.body(this.theme)]: true,\n [this.styles.mobileBody(this.theme)]: this.isMobileLayout,\n [this.styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [this.styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [this.styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [this.styles.mobileBodyWithoutHeader(this.theme)]: !hasHeader && this.isMobileLayout,\n [this.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"],"mappings":"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","ignoreList":[]}
|