@skbkontur/react-ui 4.0.3 → 4.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +0 -1
- package/cjs/components/Autocomplete/Autocomplete.js +2 -9
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +2 -2
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.js +1 -1
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +2 -2
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +3 -3
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.js +3 -3
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +2 -2
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateInput/DateInput.styles.js +2 -2
- package/cjs/components/DateInput/DateInput.styles.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +3 -3
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +2 -2
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +6 -2
- package/cjs/components/Hint/Hint.js +9 -1
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +3 -3
- package/cjs/components/Input/Input.js +1 -1
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Loader/Loader.js +7 -7
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +1 -1
- package/cjs/components/Modal/Modal.js +1 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.js +0 -1
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.js +0 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +2 -2
- package/cjs/components/Radio/Radio.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/ResponsiveLayoutEvents.d.ts +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js +3 -2
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +10 -8
- package/cjs/components/Select/Select.js +12 -2
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +0 -1
- package/cjs/components/SidePage/SidePage.js +1 -15
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.js +4 -3
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.js +3 -2
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Sticky/Sticky.js +4 -3
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +2 -1
- package/cjs/components/Switcher/Switcher.js +1 -0
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Indicator.js +2 -1
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +2 -2
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +3 -1
- package/cjs/components/Tabs/Tabs.js +8 -4
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +4 -4
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +2 -2
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +2 -2
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TextWidthHelper.js +2 -1
- package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +2 -2
- package/cjs/components/TokenInput/TokenInput.js +1 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +4 -2
- package/cjs/components/Tooltip/Tooltip.js +10 -7
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/internal/BGRuler.js +3 -1
- package/cjs/internal/BGRuler.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js +15 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/ComponentTable.d.ts +4 -2
- package/cjs/internal/ComponentTable.js +1 -0
- package/cjs/internal/ComponentTable.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.js +2 -1
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.js +5 -10
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +3 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.js +3 -2
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +1 -2
- package/cjs/internal/Popup/Popup.js +16 -13
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.js +4 -2
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.js +9 -0
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js +3 -1
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/cjs/internal/ThemePlayground/CheckboxPlayground.js +1 -0
- package/cjs/internal/ThemePlayground/CheckboxPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/RadioPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +3 -12
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeEditor.js +2 -0
- package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +1 -0
- package/cjs/internal/themes/DefaultTheme.js +3 -0
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/ConditionalHandler.d.ts +3 -2
- package/cjs/lib/ConditionalHandler.js +5 -3
- package/cjs/lib/ConditionalHandler.js.map +1 -1
- package/cjs/lib/InstanceWithAnchorElement.d.ts +5 -0
- package/cjs/lib/InstanceWithAnchorElement.js +9 -0
- package/cjs/lib/InstanceWithAnchorElement.js.map +1 -0
- package/cjs/lib/ModalStack.d.ts +1 -1
- package/cjs/lib/ModalStack.js.map +1 -1
- package/cjs/lib/SSRSafe.d.ts +1 -0
- package/cjs/lib/SSRSafe.js +9 -1
- package/cjs/lib/SSRSafe.js.map +1 -1
- package/cjs/lib/dom/getDOMRect.d.ts +5 -2
- package/cjs/lib/dom/getDOMRect.js +30 -18
- package/cjs/lib/dom/getDOMRect.js.map +1 -1
- package/cjs/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
- package/cjs/lib/events/keyboard/KeyboardMapKeys.js +1 -0
- package/cjs/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
- package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
- package/cjs/lib/rootNode/getRootNode.js +12 -9
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +11 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js +32 -4
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
- package/cjs/lib/theming/ThemeFactory.js +4 -3
- package/cjs/lib/theming/ThemeFactory.js.map +1 -1
- package/cjs/lib/theming/ThemeHelpers.d.ts +1 -0
- package/cjs/lib/theming/ThemeHelpers.js +11 -2
- package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +2 -9
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +0 -1
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +2 -2
- package/components/Button/Button.styles/Button.styles.js +1 -1
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +2 -2
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +3 -3
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +3 -3
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +1 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +2 -2
- package/components/DateInput/DateInput.styles/DateInput.styles.js +2 -2
- package/components/DateInput/DateInput.styles/DateInput.styles.js.map +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +3 -3
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +2 -2
- package/components/Hint/Hint/Hint.js +9 -1
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +6 -2
- package/components/Input/Input/Input.js +1 -1
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +3 -3
- package/components/Loader/Loader/Loader.js +11 -12
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Modal/Modal/Modal.js +1 -1
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +2 -2
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayoutEvents.d.ts +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +3 -2
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/Select/Select/Select.js +12 -6
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +10 -8
- package/components/SidePage/SidePage/SidePage.js +0 -19
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +0 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js +4 -4
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js +3 -3
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/Sticky/Sticky/Sticky.js +9 -8
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +2 -1
- package/components/Tabs/Indicator/Indicator.js +2 -1
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +2 -2
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +3 -1
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +4 -4
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +2 -2
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +2 -2
- package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +3 -2
- package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +2 -2
- package/components/Tooltip/Tooltip/Tooltip.js +11 -8
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +4 -2
- package/internal/BGRuler/BGRuler.js +2 -1
- package/internal/BGRuler/BGRuler.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +17 -3
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
- package/internal/ComponentTable/ComponentTable.js.map +1 -1
- package/internal/ComponentTable.d.ts +4 -2
- package/internal/DateSelect/DateSelect/DateSelect.js +2 -1
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +5 -12
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +3 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +2 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +22 -21
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +1 -2
- package/internal/Popup/PopupHelper/PopupHelper.js +3 -1
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +9 -0
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +3 -4
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/internal/ThemePlayground/CheckboxPlayground/CheckboxPlayground.js.map +1 -1
- package/internal/ThemePlayground/RadioPlayground/RadioPlayground.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +2 -11
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +5 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +1 -0
- package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
- package/lib/ConditionalHandler.d.ts +3 -2
- package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js +3 -0
- package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -0
- package/lib/InstanceWithAnchorElement/package.json +6 -0
- package/lib/InstanceWithAnchorElement.d.ts +5 -0
- package/lib/ModalStack/ModalStack.js.map +1 -1
- package/lib/ModalStack.d.ts +1 -1
- package/lib/SSRSafe/SSRSafe.js +7 -0
- package/lib/SSRSafe/SSRSafe.js.map +1 -1
- package/lib/SSRSafe.d.ts +1 -0
- package/lib/dom/getDOMRect/getDOMRect.js +32 -15
- package/lib/dom/getDOMRect/getDOMRect.js.map +1 -1
- package/lib/dom/getDOMRect.d.ts +5 -2
- package/lib/events/keyboard/KeyboardMapKeys/KeyboardMapKeys.js.map +1 -1
- package/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
- package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
- package/lib/rootNode/getRootNode/getRootNode.js +10 -10
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +24 -2
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +11 -0
- package/lib/theming/ThemeFactory/ThemeFactory.js +3 -2
- package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
- package/lib/theming/ThemeFactory.d.ts +1 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js +10 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
- package/lib/theming/ThemeHelpers.d.ts +1 -0
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Autocomplete.tsx"],"names":["React","PropTypes","ThemeContext","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","DropdownContainer","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","MobilePopup","responsiveLayout","getRootNode","rootNode","styles","match","pattern","items","Promise","resolve","toLowerCase","filteredItems","filter","item","includes","renderItem","Autocomplete","state","selected","focused","isMobileOpened","opened","input","requestId","getProps","defaultProps","renderMain","props","isMobile","isMobileLayout","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","width","theme","inputWidth","mobileMenuHeaderText","rest","inputProps","handleValueChange","handleKeyDown","handleFocus","ref","refInput","handleBlur","handleClickOutside","root","refRootSpan","renderMobileMenu","renderMenu","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","handleCloseMobile","refMobilePopup","refMenu","mobilePopup","close","length","getItems","map","i","handleMenuItemClick","getInputWidth","target","Element","getBoundingClientRect","fireChange","setState","e","key","event","blur","preventDefault","menu","up","down","enter","getAnchor","el","span","rootSpan","focus","componentDidUpdate","prevProps","updateItems","render","setRootNode","menuProps","maxHeight","menuWidth","handleItemClick","index","button","choose","trim","promise","expectingId","then","Component","__KONTUR_REACT_UI__","propTypes","func","oneOfType","array","size"],"mappings":"qiBAAA,OAAOA,KAAP,MAAqC,OAArC;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,cAAT,EAAyBC,YAAzB,EAAuCC,UAAvC,EAAmDC,WAAnD,QAAsE,uCAAtE;AACA,SAASC,KAAT,QAAkC,UAAlC;AACA,SAASC,iBAAT,QAAkC,kCAAlC;AACA,SAASC,IAAT,QAAqB,qBAArB;AACA,SAASC,QAAT,QAAyB,aAAzB;AACA,SAASC,WAAT,QAA4B,4BAA5B;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,eAAT,QAAgC,kCAAhC;AACA,SAAsBC,aAAtB,QAAmE,8BAAnE;AACA,SAASC,WAAT,QAA4B,4BAA5B;AACA,SAASC,gBAAT,QAAiC,+BAAjC;AACA,SAASC,WAAT,EAAsBC,QAAtB,QAAoD,oBAApD;;AAEA,SAASC,MAAT,QAAuB,uBAAvB;;AAEA,SAASC,KAAT,CAAeC,OAAf,EAAgCC,KAAhC,EAAiD;AAC/C,MAAI,CAACD,OAAD,IAAY,CAACC,KAAjB,EAAwB;AACtB,WAAOC,OAAO,CAACC,OAAR,CAAgB,EAAhB,CAAP;AACD;;AAEDH,EAAAA,OAAO,GAAGA,OAAO,CAACI,WAAR,EAAV;AACA,MAAMC,aAAa,GAAGJ,KAAK,CAACK,MAAN,CAAa,UAACC,IAAD,UAAUA,IAAI,CAACH,WAAL,GAAmBI,QAAnB,CAA4BR,OAA5B,CAAV,EAAb,CAAtB;AACA,SAAOE,OAAO,CAACC,OAAR,CAAgBE,aAAhB,CAAP;AACD;;AAED,SAASI,UAAT,CAAoBF,IAApB,EAA+B;AAC7B,SAAOA,IAAP;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDD,OAPA;AACA;AACA;AACA;AACA,GAGA,IAAaG,YAAb,GAFCf,gBAED,UADCE,QACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCSc,IAAAA,KApCT,GAoCoC;AAChCV,MAAAA,KAAK,EAAE,IADyB;AAEhCW,MAAAA,QAAQ,EAAE,CAAC,CAFqB;AAGhCC,MAAAA,OAAO,EAAE,KAHuB;AAIhCC,MAAAA,cAAc,EAAE,KAJgB,EApCpC;;;;;AA6CUC,IAAAA,MA7CV,GA6CmB,KA7CnB;AA8CUC,IAAAA,KA9CV,GA8CmC,IA9CnC;;;;;AAmDUC,IAAAA,SAnDV,GAmDsB,CAnDtB;;AAqDUC,IAAAA,QArDV,GAqDqB3B,iBAAiB,CAACmB,YAAY,CAACS,YAAd,CArDtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4FSC,IAAAA,UA5FT,GA4FsB,UAACC,KAAD,EAAsD;AACxE,UAAQR,OAAR,GAAoB,MAAKF,KAAzB,CAAQE,OAAR;;AAEA,UAAMS,QAAQ,GAAG,MAAKC,cAAtB;;AAEA;AACEC,MAAAA,aADF;;;;;;;;;;;;;;AAeIH,MAAAA,KAfJ,CACEG,aADF,CAEEC,SAFF,GAeIJ,KAfJ,CAEEI,SAFF,CAGEC,OAHF,GAeIL,KAfJ,CAGEK,OAHF,CAIEC,MAJF,GAeIN,KAfJ,CAIEM,MAJF,CAKcC,WALd,GAeIP,KAfJ,CAKEZ,UALF,CAMEoB,aANF,GAeIR,KAfJ,CAMEQ,aANF,CAOEC,SAPF,GAeIT,KAfJ,CAOES,SAPF,CAQEC,SARF,GAeIV,KAfJ,CAQEU,SARF,CASEC,aATF,GAeIX,KAfJ,CASEW,aATF,CAUEC,mBAVF,GAeIZ,KAfJ,CAUEY,mBAVF,CAWEC,MAXF,GAeIb,KAfJ,CAWEa,MAXF,gBAeIb,KAfJ,CAYEc,KAZF,CAYEA,KAZF,6BAYU,MAAKC,KAAL,CAAWC,UAZrB,gBAaEC,oBAbF,GAeIjB,KAfJ,CAaEiB,oBAbF,CAcKC,IAdL,iCAeIlB,KAfJ;;AAiBA,UAAMmB,UAAU;AACXD,MAAAA,IADW;AAEdJ,QAAAA,KAAK,EAAE,MAFO;AAGdX,QAAAA,aAAa,EAAE,MAAKiB,iBAHN;AAIdhB,QAAAA,SAAS,EAAE,MAAKiB,aAJF;AAKdhB,QAAAA,OAAO,EAAE,MAAKiB,WALA;AAMdC,QAAAA,GAAG,EAAE,MAAKC,QANI,GAAhB;;;AASA;AACE,4BAAC,WAAD,IAAa,cAAc,EAAE,MAAKC,UAAlC,EAA8C,cAAc,EAAE,MAAKC,kBAAnE,EAAuF,MAAM,EAAElC,OAA/F;AACE,sCAAM,SAAS,EAAEf,MAAM,CAACkD,IAAP,CAAY,MAAKZ,KAAjB,CAAjB,EAA0C,KAAK,EAAE,EAAED,KAAK,EAALA,KAAF,EAAjD,EAA4D,GAAG,EAAE,MAAKc,WAAtE;AACE,4BAAC,KAAD,EAAWT,UAAX,CADF;AAEGlB,QAAAA,QAAQ,GAAG,MAAK4B,gBAAL,EAAH,GAA6B,MAAKC,UAAL,EAFxC,CADF,CADF;;;;AAQD,KAnIH;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JUD,IAAAA,gBA9JV,GA8J6B,YAAM;AAC/B,UAAMV,UAAsB,GAAG;AAC7BY,QAAAA,SAAS,EAAE,IADkB;AAE7BjB,QAAAA,KAAK,EAAE,MAFsB;AAG7BX,QAAAA,aAAa,EAAE,MAAKiB,iBAHS;AAI7BY,QAAAA,UAAU,EAAE,MAAKC,oBAJY;AAK7BC,QAAAA,KAAK,EAAE,MAAKlC,KAAL,CAAWkC,KALW;AAM7BC,QAAAA,WAAW,EAAE,iBANgB,EAA/B;;;AASA,UAAMvD,KAAK,GAAG,MAAKU,KAAL,CAAWV,KAAzB;;AAEA;AACE,4BAAC,WAAD;AACE,UAAA,oBAAoB,eAAE,oBAAC,KAAD,EAAWuC,UAAX,CADxB;AAEE,UAAA,OAAO,EAAE,MAAKnB,KAAL,CAAWiB,oBAFtB;AAGE,UAAA,aAAa,MAHf;AAIE,UAAA,MAAM,EAAE,MAAK3B,KAAL,CAAWG,cAJrB;AAKE,UAAA,cAAc,EAAE,MAAK2C,iBALvB;AAME,UAAA,GAAG,EAAE,MAAKC,cANZ;;AAQE,4BAAC,IAAD,IAAM,GAAG,EAAE,MAAKC,OAAhB,EAAyB,WAAW,uBAAE,MAAKC,WAAP,qBAAE,kBAAkBC,KAAxD,EAA+D,sBAAsB,MAArF,EAAsF,SAAS,EAAE,MAAjG;AACG5D,QAAAA,KAAK,IAAIA,KAAK,CAAC6D,MAAN,GAAe,CAAxB,IAA6B,MAAKC,QAAL,EADhC,CARF,CADF;;;;AAcD,KAxLH;;AA0LUA,IAAAA,QA1LV,GA0LqB,YAAM;AACvB,UAAM9D,KAAK,GAAG,MAAKU,KAAL,CAAWV,KAAzB;AACA,UAAMqB,QAAQ,GAAG,MAAKC,cAAtB;;AAEA,aAAOtB,KAAK;AACRA,MAAAA,KAAK,CAAC+D,GAAN,CAAU,UAACzD,IAAD,EAAO0D,CAAP,EAAa;AACrB;AACE,8BAAC,QAAD,IAAU,OAAO,EAAE,MAAKC,mBAAL,CAAyBD,CAAzB,CAAnB,EAAgD,GAAG,EAAEA,CAArD,EAAwD,QAAQ,EAAE3C,QAAlE;AACG,gBAAKJ,QAAL,GAAgBT,UAAhB,CAA2BF,IAA3B,CADH,CADF;;;AAKD,OAND,CADQ;AAQR,UARJ;AASD,KAvMH;;AAyMU4D,IAAAA,aAzMV,GAyM0B,UAACC,MAAD,EAAuC;AAC7D,UAAIA,MAAM,YAAYC,OAAtB,EAA+B;AAC7B,eAAOD,MAAM,CAACE,qBAAP,GAA+BnC,KAAtC;AACD;;AAED,aAAO,CAAP;AACD,KA/MH;;AAiNUM,IAAAA,iBAjNV,GAiN8B,UAACc,KAAD,EAAmB;AAC7C,YAAKxC,MAAL,GAAc,IAAd;;AAEA,YAAKwD,UAAL,CAAgBhB,KAAhB;AACD,KArNH;;AAuNUE,IAAAA,iBAvNV,GAuN8B,YAAM;AAChC,YAAKe,QAAL,CAAc;AACZ1D,QAAAA,cAAc,EAAE,KADJ,EAAd;;;AAIA,YAAKgC,UAAL;AACD,KA7NH;;AA+NUQ,IAAAA,oBA/NV,GA+NiC,UAACmB,CAAD,EAAsB;AACnD,UAAIA,CAAC,CAACC,GAAF,KAAU,OAAd,EAAuB;AACrB,oCAAKd,WAAL,wCAAkBC,KAAlB;AACD;AACF,KAnOH;;AAqOUlB,IAAAA,WArOV,GAqOwB,UAACgC,KAAD,EAA+C;AACnE,UAAI,MAAKpD,cAAT,EAAyB;AACvB,cAAKiD,QAAL,CAAc,EAAE1D,cAAc,EAAE,IAAlB,EAAd;AACD;;AAED,UAAI,MAAKH,KAAL,CAAWE,OAAf,EAAwB;AACtB;AACD;;AAED,YAAK2D,QAAL,CAAc,EAAE3D,OAAO,EAAE,IAAX,EAAd;;AAEA,UAAI,MAAKQ,KAAL,CAAWK,OAAf,EAAwB;AACtB,cAAKL,KAAL,CAAWK,OAAX,CAAmBiD,KAAnB;AACD;AACF,KAnPH;;AAqPU7B,IAAAA,UArPV,GAqPuB,YAAM;AACzB,UAAI,CAAC,MAAKnC,KAAL,CAAWE,OAAhB,EAAyB;AACvB;AACD;;AAED,YAAKE,MAAL,GAAc,KAAd;AACA,YAAKyD,QAAL,CAAc,EAAEvE,KAAK,EAAE,IAAT,EAAeY,OAAO,EAAE,KAAxB,EAAd;;AAEA,UAAI,MAAKG,KAAT,EAAgB;AACd,cAAKA,KAAL,CAAW4D,IAAX;AACD;;AAED,UAAI,MAAKvD,KAAL,CAAWM,MAAf,EAAuB;AACrB,cAAKN,KAAL,CAAWM,MAAX;AACD;AACF,KApQH;;AAsQUoB,IAAAA,kBAtQV,GAsQ+B,UAAC0B,CAAD,EAAc;AACzCjF,MAAAA,eAAe,CAACiF,CAAD,CAAf;AACA,YAAK3B,UAAL;AACD,KAzQH;;AA2QUJ,IAAAA,aA3QV,GA2Q0B,UAAC+B,CAAD,EAA8C;AACpE,UAAI,MAAKpD,KAAL,CAAWI,SAAf,EAA0B;AACxB,cAAKJ,KAAL,CAAWI,SAAX,CAAqBgD,CAArB;AACD;AACD,cAAQ,IAAR;AACE,aAAKxF,WAAW,CAACwF,CAAD,CAAhB;AACEA,UAAAA,CAAC,CAACI,cAAF;AACA,gBAAKL,QAAL,CAAc,EAAEvE,KAAK,EAAE,IAAT,EAAd;AACA;AACF,aAAKlB,YAAY,CAAC0F,CAAD,CAAjB;AACEA,UAAAA,CAAC,CAACI,cAAF;AACA,cAAI,MAAKC,IAAT,EAAe;AACb,kBAAKA,IAAL,CAAUC,EAAV;AACD;AACD;AACF,aAAKjG,cAAc,CAAC2F,CAAD,CAAnB;AACEA,UAAAA,CAAC,CAACI,cAAF;AACA,cAAI,MAAKC,IAAT,EAAe;AACb,kBAAKA,IAAL,CAAUE,IAAV;AACD;AACD;AACF,aAAKhG,UAAU,CAACyF,CAAD,CAAf;AACEA,UAAAA,CAAC,CAACI,cAAF,GADF,CACsB;AACpB,cAAI,MAAKC,IAAT,EAAe;AACb,kBAAKA,IAAL,CAAUG,KAAV,CAAgBR,CAAhB;AACD;AACD,iBAtBJ;;AAwBD,KAvSH;;;;;;AA6SUS,IAAAA,SA7SV,GA6SsB,YAAM;AACxB,aAAOtF,WAAW,+BAAlB;AACD,KA/SH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4WUiD,IAAAA,QA5WV,GA4WqB,UAACsC,EAAD,EAAsB;AACvC,YAAKnE,KAAL,GAAamE,EAAb;AACD,KA9WH;;AAgXUxB,IAAAA,OAhXV,GAgXoB,UAACmB,IAAD,EAAuB;AACvC,YAAKA,IAAL,GAAYA,IAAZ;AACD,KAlXH;;AAoXU7B,IAAAA,WApXV,GAoXwB,UAACmC,IAAD,EAA2B;AAC/C,YAAKC,QAAL,GAAgBD,IAAhB;AACD,KAtXH;;AAwXU1B,IAAAA,cAxXV,GAwX2B,UAACE,WAAD,EAAqC;AAC5D,YAAKA,WAAL,GAAmBA,WAAnB;AACD,KA1XH,oDAwDE;AACF;AACA,KA1DA,OA2DS0B,KA3DT,GA2DE,iBAAe,CACb,IAAI,KAAKtE,KAAT,EAAgB,CACd,KAAKA,KAAL,CAAWsE,KAAX,GACD,CACF,CA/DH,CAiEE;AACF;AACA,KAnEA,QAoESV,IApET,GAoEE,gBAAc,CACZ,KAAK9B,UAAL,GACD,CAtEH,QAwESyC,kBAxET,GAwEE,4BAA0BC,SAA1B,EAAwD,CACtD,IAAIA,SAAS,CAACjC,KAAV,KAAoB,KAAKlC,KAAL,CAAWkC,KAAnC,EAA0C,CACxC,KAAKkC,WAAL,CAAiB,KAAKpE,KAAL,CAAWkC,KAAX,IAAoB,EAArC,EACD,CACF,CA5EH,QA8ESmC,MA9ET,GA8EE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACtD,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,MAAI,CAACuD,WAAjC,IAAkD,MAAI,CAACtE,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,CA3FH,QAqIU+B,UArIV,GAqIE,sBAAsC,CACpC,IAAMlD,KAAK,GAAG,KAAKU,KAAL,CAAWV,KAAzB,CACA,IAAM2F,SAAS,GAAG,EAChBhD,GAAG,EAAE,KAAKe,OADM,EAEhBkC,SAAS,EAAE,KAAKxE,KAAL,CAAWW,aAFN,EAGhBF,SAAS,EAAE,KAAKT,KAAL,CAAWS,SAHN,EAIhBK,KAAK,EAAE,KAAKd,KAAL,CAAWyE,SAAX,IAAyB,KAAKzE,KAAL,CAAWc,KAAX,IAAoB,KAAKgC,aAAL,CAAmB,KAAKkB,QAAxB,CAJpC,EAKhBpD,mBAAmB,EAAE,KAAKZ,KAAL,CAAWY,mBALhB,EAAlB,CAOA,IAAI,CAAChC,KAAD,IAAUA,KAAK,CAAC6D,MAAN,KAAiB,CAA/B,EAAkC,CAChC,OAAO,IAAP,CACD,CAED,oBACE,oBAAC,iBAAD,IACE,OAAO,EAAE,CADX,EAEE,SAAS,EAAE,KAAKoB,SAFlB,EAGE,KAAK,EAAE,KAAK7D,KAAL,CAAWU,SAHpB,EAIE,aAAa,EAAE,KAAKV,KAAL,CAAWQ,aAJ5B,iBAME,oBAAC,IAAD,EAAU+D,SAAV,EAAsB,KAAK7B,QAAL,EAAtB,CANF,CADF,CAUD,CA5JH,QAySUG,mBAzSV,GAySE,6BAA4BD,CAA5B,EAAuC,mBACrC,OAAO,UAACU,KAAD,UAA8C,MAAI,CAACoB,eAAL,CAAqBpB,KAArB,EAA4BV,CAA5B,CAA9C,EAAP,CACD,CA3SH,QAiTU8B,eAjTV,GAiTE,yBAAwBpB,KAAxB,EAAkGqB,KAAlG,EAAiH,CAC/G,IAAKrB,KAAD,CAAyCsB,MAA7C,EAAqD,CACnD,OACD,CAEDtB,KAAK,CAACE,cAAN,GACA,KAAKqB,MAAL,CAAYF,KAAZ,EACD,CAxTH,QA0TUE,MA1TV,GA0TE,gBAAeF,KAAf,EAA8B,CAC5B,IAAI,CAAC,KAAKrF,KAAL,CAAWV,KAAhB,EAAuB,CACrB,OACD,CAED,IAAMsD,KAAK,GAAG,KAAK5C,KAAL,CAAWV,KAAX,CAAiB+F,KAAjB,CAAd,CACA,KAAKjF,MAAL,GAAc,KAAd,CACA,KAAKyD,QAAL,CAAc,EACZ5D,QAAQ,EAAE,CAAC,CADC,EAEZX,KAAK,EAAE,IAFK,EAAd,EAKA,KAAKsE,UAAL,CAAgBhB,KAAhB,EACA,KAAKqB,IAAL,GACD,CAxUH,QA0UUa,WA1UV,GA0UE,qBAAoBlC,KAApB,EAAmC,mBACjC,IAAI,CAAC,KAAKxC,MAAV,EAAkB,CAChB,OACD,CACD,IAAMf,OAAO,GAAGuD,KAAK,CAAC4C,IAAN,EAAhB,CACA,IAAMjE,MAAM,GAAG,KAAKb,KAAL,CAAWa,MAA1B,CAEA,IAAI,CAACA,MAAL,EAAa,CACX,OACD,CAED,IAAIkE,OAAJ,CACA,IAAMC,WAAW,GAAI,KAAKpF,SAAL,IAAkB,CAAvC,CACA,IAAI,OAAOiB,MAAP,KAAkB,UAAtB,EAAkC,CAChCkE,OAAO,GAAGlE,MAAM,CAAClC,OAAD,CAAhB,CACD,CAFD,MAEO,CACLoG,OAAO,GAAGrG,KAAK,CAACC,OAAD,EAAUkC,MAAV,CAAf,CACD,CACDkE,OAAO,CAACE,IAAR,CAAa,UAACrG,KAAD,EAAW,CACtB,IAAI,MAAI,CAACc,MAAL,IAAesF,WAAW,KAAK,MAAI,CAACpF,SAAxC,EAAmD,CACjD,MAAI,CAACuD,QAAL,CAAc,EACZvE,KAAK,EAALA,KADY,EAEZW,QAAQ,EAAE,CAAC,CAFC,EAAd,EAID,CACF,CAPD,EAQD,CApWH,QAsWU2D,UAtWV,GAsWE,oBAAmBhB,KAAnB,EAAkC,CAChC,IAAI,KAAKlC,KAAL,CAAWG,aAAf,EAA8B,CAC5B,KAAKH,KAAL,CAAWG,aAAX,CAAyB+B,KAAzB,EACD,CACF,CA1WH,uBAAkC5E,KAAK,CAAC4H,SAAxC,WACgBC,mBADhB,GACsC,cADtC,UAGgBC,SAHhB,GAG4B,EACxB;AACJ;AACA;AACA,KACIhG,UAAU,EAAE7B,SAAS,CAAC8H,IALE,EAOxB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KACIxE,MAAM,EAAEtD,SAAS,CAAC+H,SAAV,CAAoB,CAAC/H,SAAS,CAACgI,KAAX,EAAkBhI,SAAS,CAAC8H,IAA5B,CAApB,CApBgB,EAH5B,UA0BgBvF,YA1BhB,GA0B+B,EAC3BV,UAAU,EAAVA,UAD2B,EAE3BoG,IAAI,EAAE,OAFqB,EAG3BhF,aAAa,EAAE,KAHY,EAI3BC,SAAS,EAAE,IAJgB,EAK3BE,aAAa,EAAE,GALY,EAM3BD,SAAS,EAAE,MANgB,EAO3BE,mBAAmB,EAAE,IAPM,EA1B/B","sourcesContent":["import React, { KeyboardEvent } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { Input, InputProps } from '../Input';\nimport { DropdownContainer } from '../../internal/DropdownContainer';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Autocomplete.styles';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n pattern = pattern.toLowerCase();\n const filteredItems = items.filter((item) => item.toLowerCase().includes(pattern));\n return Promise.resolve(filteredItems);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Override<\n InputProps,\n {\n /** Функция отрисовки элемента меню */\n renderItem: (item: string) => React.ReactNode;\n /** Промис, резолвящий элементы меню */\n source?: string[] | ((patter: string) => Promise<string[]>);\n /** Отключает использование портала */\n disablePortal: boolean;\n /** Отрисовка тени у выпадающего меню */\n hasShadow: boolean;\n /** Выравнивание выпадающего меню */\n menuAlign: 'left' | 'right';\n /** Максимальная высота меню */\n menuMaxHeight: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Отключить скролл окна, когда меню открыто */\n preventWindowScroll: boolean;\n /** Вызывается при изменении `value` */\n onValueChange: (value: string) => void;\n /** onBlur */\n onBlur?: () => void;\n /** Размер инпута */\n size: InputProps['size'];\n /** value */\n value: string;\n /**\n * Текст заголовка выпадающего меню в мобильной версии\n */\n mobileMenuHeaderText?: string;\n }\n > {}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\n/**\n * Стандартный инпут с подсказками.\n *\n * Все свойства передаются во внутренний *Input*.\n */\n@responsiveLayout\n@rootNode\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n\n public static propTypes = {\n /**\n * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент\n * — *item*.\n */\n renderItem: PropTypes.func,\n\n /**\n * Если передан массив, то совпадения ищутся по этому массиву.\n *\n * Если передается функция, то она должна возвращать thenable, который\n * резолвится уже отфильтрованным массивом. Возвращенный thenable может\n * иметь метод cancel, который будет вызван при отмене поиска (пользователь\n * изменил строку поиска, автокомплит потерял фокус).\n * ```\n * function(pattern) {\n * return service.findAll(pattern);\n * }\n * ```\n */\n source: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n };\n\n public static defaultProps = {\n renderItem,\n size: 'small',\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n menuAlign: 'left',\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span className={styles.root(this.theme)} style={{ width }} ref={this.refRootSpan}>\n <Input {...inputProps} />\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const menuProps = {\n ref: this.refMenu,\n maxHeight: this.props.menuMaxHeight,\n hasShadow: this.props.hasShadow,\n width: this.props.menuWidth || (this.props.width && this.getInputWidth(this.rootSpan)),\n preventWindowScroll: this.props.preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <DropdownContainer\n offsetY={1}\n getParent={this.getAnchor}\n align={this.props.menuAlign}\n disablePortal={this.props.disablePortal}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </DropdownContainer>\n );\n }\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: 'Начните вводить',\n };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n headerChildComponent={<Input {...inputProps} />}\n caption={this.props.mobileMenuHeaderText}\n useFullHeight\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private getInputWidth = (target: Nullable<HTMLSpanElement>) => {\n if (target instanceof Element) {\n return target.getBoundingClientRect().width;\n }\n\n return 0;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n this.blur();\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n const expectingId = (this.requestId += 1);\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Autocomplete.tsx"],"names":["React","PropTypes","ThemeContext","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","DropdownContainer","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","MobilePopup","responsiveLayout","getRootNode","rootNode","getDOMRect","styles","match","pattern","items","Promise","resolve","toLowerCase","filteredItems","filter","item","includes","renderItem","Autocomplete","state","selected","focused","isMobileOpened","opened","input","requestId","getProps","defaultProps","renderMain","props","isMobile","isMobileLayout","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","width","theme","inputWidth","mobileMenuHeaderText","rest","inputProps","handleValueChange","handleKeyDown","handleFocus","ref","refInput","handleBlur","handleClickOutside","root","refRootSpan","renderMobileMenu","renderMenu","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","handleCloseMobile","refMobilePopup","refMenu","mobilePopup","close","length","getItems","map","i","handleMenuItemClick","fireChange","setState","e","key","event","blur","preventDefault","menu","up","down","enter","getAnchor","el","span","rootSpan","focus","componentDidUpdate","prevProps","updateItems","render","setRootNode","menuProps","maxHeight","menuWidth","handleItemClick","index","button","choose","trim","promise","expectingId","then","Component","__KONTUR_REACT_UI__","propTypes","func","oneOfType","array","size"],"mappings":"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","sourcesContent":["import React, { KeyboardEvent } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { Input, InputProps } from '../Input';\nimport { DropdownContainer } from '../../internal/DropdownContainer';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './Autocomplete.styles';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n pattern = pattern.toLowerCase();\n const filteredItems = items.filter((item) => item.toLowerCase().includes(pattern));\n return Promise.resolve(filteredItems);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Override<\n InputProps,\n {\n /** Функция отрисовки элемента меню */\n renderItem: (item: string) => React.ReactNode;\n /** Промис, резолвящий элементы меню */\n source?: string[] | ((patter: string) => Promise<string[]>);\n /** Отключает использование портала */\n disablePortal: boolean;\n /** Отрисовка тени у выпадающего меню */\n hasShadow: boolean;\n /** Выравнивание выпадающего меню */\n menuAlign: 'left' | 'right';\n /** Максимальная высота меню */\n menuMaxHeight: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Отключить скролл окна, когда меню открыто */\n preventWindowScroll: boolean;\n /** Вызывается при изменении `value` */\n onValueChange: (value: string) => void;\n /** onBlur */\n onBlur?: () => void;\n /** Размер инпута */\n size: InputProps['size'];\n /** value */\n value: string;\n /**\n * Текст заголовка выпадающего меню в мобильной версии\n */\n mobileMenuHeaderText?: string;\n }\n > {}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\n/**\n * Стандартный инпут с подсказками.\n *\n * Все свойства передаются во внутренний *Input*.\n */\n@responsiveLayout\n@rootNode\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n\n public static propTypes = {\n /**\n * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент\n * — *item*.\n */\n renderItem: PropTypes.func,\n\n /**\n * Если передан массив, то совпадения ищутся по этому массиву.\n *\n * Если передается функция, то она должна возвращать thenable, который\n * резолвится уже отфильтрованным массивом. Возвращенный thenable может\n * иметь метод cancel, который будет вызван при отмене поиска (пользователь\n * изменил строку поиска, автокомплит потерял фокус).\n * ```\n * function(pattern) {\n * return service.findAll(pattern);\n * }\n * ```\n */\n source: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n };\n\n public static defaultProps = {\n renderItem,\n size: 'small',\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n menuAlign: 'left',\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span className={styles.root(this.theme)} style={{ width }} ref={this.refRootSpan}>\n <Input {...inputProps} />\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const menuProps = {\n ref: this.refMenu,\n maxHeight: this.props.menuMaxHeight,\n hasShadow: this.props.hasShadow,\n width: this.props.menuWidth || (this.props.width && getDOMRect(this.rootSpan).width),\n preventWindowScroll: this.props.preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <DropdownContainer\n offsetY={1}\n getParent={this.getAnchor}\n align={this.props.menuAlign}\n disablePortal={this.props.disablePortal}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </DropdownContainer>\n );\n }\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: 'Начните вводить',\n };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n headerChildComponent={<Input {...inputProps} />}\n caption={this.props.mobileMenuHeaderText}\n useFullHeight\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n this.blur();\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n const expectingId = (this.requestId += 1);\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"]}
|
|
@@ -103,7 +103,6 @@ export declare class Autocomplete extends React.Component<AutocompleteProps, Aut
|
|
|
103
103
|
private renderMenu;
|
|
104
104
|
private renderMobileMenu;
|
|
105
105
|
private getItems;
|
|
106
|
-
private getInputWidth;
|
|
107
106
|
private handleValueChange;
|
|
108
107
|
private handleCloseMobile;
|
|
109
108
|
private handleKeyPressMobile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Button.tsx"],"names":["React","isReactUIComponent","isIE11","isEdge","keyListener","ThemeContext","Spinner","CommonWrapper","cx","rootNode","styles","activeStyles","globalClasses","Corners","Button","state","focusedByTab","node","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","theme","renderMain","corners","active","borderless","checked","error","warning","arrow","narrow","icon","_noPadding","_noRightPadding","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onClick","width","children","use","defaultProps","sizeClass","getSizeClassName","isFocused","isLink","rootProps","type","className","root","checkedFocused","checkedDisabled","noPadding","noRightPadding","style","borderTopLeftRadius","TOP_LEFT","undefined","borderTopRightRadius","TOP_RIGHT","borderBottomRightRadius","BOTTOM_RIGHT","borderBottomLeftRadius","BOTTOM_LEFT","textAlign","tabIndex","title","wrapProps","wrap","wrapArrow","wrapArrowLeft","getSizeWrapClassName","innerShadowNode","innerShadow","outlineNode","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","loadingNode","getLoadingSpinner","iconNode","getSizeIconClassName","iconNoRightPadding","iconLink","arrowNode","arrowWarning","arrowError","arrowFocus","arrowLeft","arrowHelper","arrowHelperTop","arrowHelperBottom","link","linkFocus","linkDisabled","Object","assign","wrapLink","setRootNode","caption","captionTranslated","captionLink","captionDisabled","visibilityHidden","size","sizeLarge","sizeLargeIE11","sizeMedium","sizeMediumIE11","sizeSmall","sizeSmallIE11","iconLarge","iconMedium","iconSmall","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","__BUTTON__","isButton"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { Corners } from './Corners';\n\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link';\n\nexport interface ButtonProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: number;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement<any>;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: ButtonSize;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\n@rootNode\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static __BUTTON__ = true;\n public static TOP_LEFT = Corners.TOP_LEFT;\n public static TOP_RIGHT = Corners.TOP_RIGHT;\n public static BOTTOM_RIGHT = Corners.BOTTOM_RIGHT;\n public static BOTTOM_LEFT = Corners.BOTTOM_LEFT;\n\n public static defaultProps = {\n use: 'default' as ButtonUse,\n size: 'small' as ButtonSize,\n type: 'button' as ButtonType,\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLButtonElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n corners = 0,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n arrow,\n narrow,\n icon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onClick,\n width,\n children,\n } = this.props;\n const use = this.props.use || Button.defaultProps.use;\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const rootProps = {\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: this.props.type,\n className: cx({\n [styles.root(this.theme)]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused,\n [styles.checked(this.theme)]: checked,\n [styles.checkedFocused(this.theme)]: checked && isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n }),\n style: {\n borderTopLeftRadius: corners & Corners.TOP_LEFT ? 0 : undefined,\n borderTopRightRadius: corners & Corners.TOP_RIGHT ? 0 : undefined,\n borderBottomRightRadius: corners & Corners.BOTTOM_RIGHT ? 0 : undefined,\n borderBottomLeftRadius: corners & Corners.BOTTOM_LEFT ? 0 : undefined,\n textAlign: align,\n },\n disabled: disabled || loading,\n onClick: onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown: onKeyDown,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseOver: onMouseOver,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: cx({\n [styles.wrap(this.theme)]: true,\n [styles.wrapArrow()]: arrow === true,\n [styles.wrapArrowLeft()]: arrow === 'left',\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width: width,\n },\n };\n\n const innerShadowNode = <div className={globalClasses.innerShadow} />;\n\n let outlineNode = null;\n if (!isFocused || isLink) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n let loadingNode = null;\n if (loading && !icon) {\n loadingNode = <div className={styles.loading()}>{this.getLoadingSpinner()}</div>;\n }\n\n let iconNode = null;\n if (icon) {\n iconNode = (\n <span\n className={cx(styles.icon(), this.getSizeIconClassName(), {\n [styles.iconNoRightPadding()]: !children,\n [styles.iconLink(this.theme)]: isLink,\n })}\n >\n {loading ? this.getLoadingSpinner() : icon}\n </span>\n );\n }\n\n let arrowNode = null;\n if (arrow) {\n arrowNode = (\n <div\n className={cx({\n [styles.arrow()]: true,\n [styles.arrowWarning(this.theme)]: !checked && warning,\n [styles.arrowError(this.theme)]: !checked && error,\n [styles.arrowFocus(this.theme)]: !checked && isFocused,\n [styles.arrowLeft()]: arrow === 'left',\n })}\n >\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperTop)} />\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperBottom)} />\n </div>\n );\n }\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n arrowNode = null;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span {...wrapProps}>\n <button ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {loadingNode}\n {arrowNode}\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: active || checked,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {iconNode}\n <span className={cx({ [styles.visibilityHidden()]: !!loadingNode })}>{children}</span>\n </div>\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private getLoadingSpinner() {\n return <Spinner caption={null} dimmed type=\"mini\" />;\n }\n\n private getSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), { [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), { [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), { [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge });\n }\n }\n\n private getSizeIconClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLButtonElement>) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"]}
|
|
1
|
+
{"version":3,"sources":["Button.tsx"],"names":["React","isReactUIComponent","isIE11","isEdge","keyListener","ThemeContext","Spinner","CommonWrapper","cx","rootNode","styles","activeStyles","globalClasses","Corners","Button","state","focusedByTab","node","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","theme","renderMain","corners","active","borderless","checked","error","warning","arrow","narrow","icon","_noPadding","_noRightPadding","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onClick","width","children","use","defaultProps","sizeClass","getSizeClassName","isFocused","isLink","rootProps","type","className","root","checkedFocused","checkedDisabled","noPadding","noRightPadding","style","borderTopLeftRadius","TOP_LEFT","undefined","borderTopRightRadius","TOP_RIGHT","borderBottomRightRadius","BOTTOM_RIGHT","borderBottomLeftRadius","BOTTOM_LEFT","textAlign","tabIndex","title","wrapProps","wrap","wrapArrow","wrapArrowLeft","getSizeWrapClassName","innerShadowNode","innerShadow","outlineNode","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","loadingNode","getLoadingSpinner","iconNode","getSizeIconClassName","iconNoRightPadding","iconLink","arrowNode","arrowWarning","arrowError","arrowFocus","arrowLeft","arrowHelper","arrowHelperTop","arrowHelperBottom","link","linkFocus","linkDisabled","Object","assign","wrapLink","setRootNode","caption","captionTranslated","captionLink","captionDisabled","visibilityHidden","size","sizeLarge","sizeLargeIE11","sizeMedium","sizeMediumIE11","sizeSmall","sizeSmallIE11","iconLarge","iconMedium","iconSmall","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","__BUTTON__","isButton"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { Corners } from './Corners';\n\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link';\n\nexport interface ButtonProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: number;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement<any>;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: ButtonSize;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\n@rootNode\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static __BUTTON__ = true;\n public static TOP_LEFT = Corners.TOP_LEFT;\n public static TOP_RIGHT = Corners.TOP_RIGHT;\n public static BOTTOM_RIGHT = Corners.BOTTOM_RIGHT;\n public static BOTTOM_LEFT = Corners.BOTTOM_LEFT;\n\n public static defaultProps = {\n use: 'default' as ButtonUse,\n size: 'small' as ButtonSize,\n type: 'button' as ButtonType,\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLButtonElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n corners = 0,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n arrow,\n narrow,\n icon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onClick,\n width,\n children,\n } = this.props;\n const use = this.props.use || Button.defaultProps.use;\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const rootProps = {\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: this.props.type,\n className: cx({\n [styles.root(this.theme)]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused,\n [styles.checked(this.theme)]: checked,\n [styles.checkedFocused(this.theme)]: checked && isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n }),\n style: {\n borderTopLeftRadius: corners & Corners.TOP_LEFT ? 0 : undefined,\n borderTopRightRadius: corners & Corners.TOP_RIGHT ? 0 : undefined,\n borderBottomRightRadius: corners & Corners.BOTTOM_RIGHT ? 0 : undefined,\n borderBottomLeftRadius: corners & Corners.BOTTOM_LEFT ? 0 : undefined,\n textAlign: align,\n },\n disabled: disabled || loading,\n onClick: onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown: onKeyDown,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseOver: onMouseOver,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: cx({\n [styles.wrap(this.theme)]: true,\n [styles.wrapArrow()]: arrow === true,\n [styles.wrapArrowLeft()]: arrow === 'left',\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width: width,\n },\n };\n\n const innerShadowNode = <div className={globalClasses.innerShadow} />;\n\n let outlineNode = null;\n if (!isFocused || isLink) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n let loadingNode = null;\n if (loading && !icon) {\n loadingNode = <div className={styles.loading()}>{this.getLoadingSpinner()}</div>;\n }\n\n let iconNode = null;\n if (icon) {\n iconNode = (\n <span\n className={cx(styles.icon(), this.getSizeIconClassName(), {\n [styles.iconNoRightPadding()]: !children,\n [styles.iconLink(this.theme)]: isLink,\n })}\n >\n {loading ? this.getLoadingSpinner() : icon}\n </span>\n );\n }\n\n let arrowNode = null;\n if (arrow) {\n arrowNode = (\n <div\n className={cx({\n [styles.arrow()]: true,\n [styles.arrowWarning(this.theme)]: !checked && warning,\n [styles.arrowError(this.theme)]: !checked && error,\n [styles.arrowFocus(this.theme)]: !checked && isFocused,\n [styles.arrowLeft()]: arrow === 'left',\n })}\n >\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperTop)} />\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperBottom)} />\n </div>\n );\n }\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n arrowNode = null;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span {...wrapProps}>\n <button ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {loadingNode}\n {arrowNode}\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: active || checked,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {iconNode}\n <span className={cx({ [styles.visibilityHidden()]: !!loadingNode })}>{children}</span>\n </div>\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private getLoadingSpinner() {\n return <Spinner caption={null} dimmed type=\"mini\" />;\n }\n\n private getSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), { [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), { [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), { [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge });\n }\n }\n\n private getSizeIconClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLButtonElement>) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"]}
|
|
@@ -42,7 +42,7 @@ export interface ButtonProps extends CommonProps {
|
|
|
42
42
|
/** @ignore */
|
|
43
43
|
disableFocus?: boolean;
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
45
|
+
* Состояние валидации при ошибке.
|
|
46
46
|
*/
|
|
47
47
|
error?: boolean;
|
|
48
48
|
/**
|
|
@@ -108,7 +108,7 @@ export interface ButtonProps extends CommonProps {
|
|
|
108
108
|
/** @ignore */
|
|
109
109
|
visuallyFocused?: boolean;
|
|
110
110
|
/**
|
|
111
|
-
*
|
|
111
|
+
* Состояние валидации при предупреждении.
|
|
112
112
|
*/
|
|
113
113
|
warning?: boolean;
|
|
114
114
|
/**
|
|
@@ -195,6 +195,6 @@ export var activeStyles = memoizeStyle({
|
|
|
195
195
|
return css(_templateObject59 || (_templateObject59 = _taggedTemplateLiteralLoose(["\n &,\n &:hover {\n ", ";\n }\n "])), buttonActiveMixin(t.btnPayActiveBg, t.btnPayActiveShadow, t.btnPayActiveBorderColor, t.btnPayActiveBorderTopColor, t.btnBorderWidth, t.btnArrowBgImageActive));
|
|
196
196
|
},
|
|
197
197
|
link: function link(t) {
|
|
198
|
-
return css(_templateObject60 || (_templateObject60 = _taggedTemplateLiteralLoose(["\n &,\n &:hover {\n color: ", ";\n }\n "])), t.
|
|
198
|
+
return css(_templateObject60 || (_templateObject60 = _taggedTemplateLiteralLoose(["\n &,\n &:hover {\n color: ", ";\n }\n "])), t.btnLinkActiveColor);
|
|
199
199
|
}
|
|
200
200
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Button.styles.ts"],"names":["css","memoizeStyle","prefix","resetButton","resetText","isFirefox","buttonUseMixin","buttonHoverMixin","buttonActiveMixin","buttonSizeMixin","arrowOutlineMixin","buttonSizeMixinIE11","globalClasses","arrowHelper","arrowHelperTop","arrowHelperBottom","caption","innerShadow","styles","root","t","btnBackgroundClip","outline","outlineWarning","btnOutlineWidth","btnBorderColorWarning","btnInsetWidth","btnInsetColor","outlineError","btnBorderColorError","outlineLink","outlineLinkWarning","btnWarningSecondary","outlineLinkError","btnErrorSecondary","sizeSmall","btnBorderRadiusSmall","btnFontSizeSmall","btnLineHeightSmall","btnPaddingXSmall","btnPaddingYSmall","fontFamilyCompensationBaseline","sizeSmallIE11","sizeMedium","btnBorderRadiusMedium","btnFontSizeMedium","btnLineHeightMedium","btnPaddingXMedium","btnPaddingYMedium","sizeMediumIE11","sizeLarge","btnBorderRadiusLarge","btnFontSizeLarge","btnLineHeightLarge","btnPaddingXLarge","btnPaddingYLarge","sizeLargeIE11","link","btnLinkBorderRadius","btnLinkColor","btnLinkHoverColor","btnLinkHoverTextDecoration","activeStyles","linkFocus","linkDisabled","btnLinkDisabledColor","focus","btnOutlineColorFocus","btnFocusShadowWidth","btnBorderColorFocus","disabled","btnBorderWidth","btnDisabledBorderColor","btnDisabledBg","btnDisabledTextColor","arrowWarning","arrowError","arrowFocus","arrow","arrowLeft","btnDefaultBg","btnDefaultBgStart","btnDefaultBgEnd","btnDefaultTextColor","btnDefaultBorderColor","btnDefaultBorderBottomColor","btnDefaultHoverBg","btnDefaultHoverBgStart","btnDefaultHoverBgEnd","btnDefaultHoverBorderColor","btnDefaultHoverBorderBottomColor","primary","btnPrimaryBg","btnPrimaryBgStart","btnPrimaryBgEnd","btnPrimaryTextColor","btnPrimaryBorderColor","btnPrimaryBorderBottomColor","btnPrimaryHoverBg","btnPrimaryHoverBgStart","btnPrimaryHoverBgEnd","btnPrimaryHoverBorderColor","btnPrimaryHoverBorderBottomColor","success","btnSuccessBg","btnSuccessBgStart","btnSuccessBgEnd","btnSuccessTextColor","btnSuccessBorderColor","btnSuccessBorderBottomColor","btnSuccessHoverBg","btnSuccessHoverBgStart","btnSuccessHoverBgEnd","btnSuccessHoverBorderColor","btnSuccessHoverBorderBottomColor","danger","btnDangerBg","btnDangerBgStart","btnDangerBgEnd","btnDangerTextColor","btnDangerBorderColor","btnDangerBorderBottomColor","btnDangerHoverBg","btnDangerHoverBgStart","btnDangerHoverBgEnd","btnDangerHoverBorderColor","btnDangerHoverBorderBottomColor","pay","btnPayBg","btnPayBgStart","btnPayBgEnd","btnPayTextColor","btnPayBorderColor","btnPayBorderBottomColor","btnPayHoverBg","btnPayHoverBgStart","btnPayHoverBgEnd","btnPayHoverBorderColor","btnPayHoverBorderBottomColor","checked","checkedStyles","btnDefaultCheckedBorderColor","btnCheckedBg","btnCheckedTextColor","btnCheckedShadow","btnArrowBgImageChecked","checkedFocused","checkedDisabled","btnCheckedDisabledBorderColor","btnCheckedDisabledBg","btnCheckedDisabledColor","btnCheckedDisabledShadow","captionLink","captionTranslated","captionDisabled","wrap","wrapSmall","btnHeightSmall","wrapMedium","btnHeightMedium","wrapLarge","btnHeightLarge","narrow","noPadding","noRightPadding","iconNoRightPadding","iconLink","btnLinkIconMarginRight","wrapLink","wrapArrow","wrapArrowLeft","icon","iconSmall","btnIconSizeSmall","btnIconGapSmall","iconMedium","btnIconSizeMedium","btnIconGapMedium","iconLarge","btnIconSizeLarge","btnIconGapLarge","borderless","loading","visibilityHidden","btnDefaultActiveBg","btnDefaultActiveShadow","btnDefaultActiveBorderColor","btnDefaultActiveBorderTopColor","btnArrowBgImageActive","btnPrimaryActiveBg","btnPrimaryActiveShadow","btnPrimaryActiveBorderColor","btnPrimaryActiveBorderTopColor","btnSuccessActiveBg","btnSuccessActiveShadow","btnSuccessActiveBorderColor","btnSuccessActiveBorderTopColor","btnDangerActiveBg","btnDangerActiveShadow","btnDangerActiveBorderColor","btnDangerActiveBorderTopColor","btnPayActiveBg","btnPayActiveShadow","btnPayActiveBorderColor","btnPayActiveBorderTopColor","linkActiveColor"],"mappings":"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","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton, resetText } from '../../lib/styles/Mixins';\nimport { isFirefox } from '../../lib/client';\n\nimport {\n buttonUseMixin,\n buttonHoverMixin,\n buttonActiveMixin,\n buttonSizeMixin,\n arrowOutlineMixin,\n buttonSizeMixinIE11,\n} from './Button.mixins';\n\nexport const globalClasses = prefix('button')({\n arrowHelper: 'arrow-helper',\n arrowHelperTop: 'arrow-helper-top',\n arrowHelperBottom: 'arrow-helper-bottom',\n caption: 'caption',\n innerShadow: 'inner-shadow',\n});\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n ${resetButton()};\n ${resetText()};\n\n background-clip: ${t.btnBackgroundClip};\n background-position: center;\n background-repeat: no-repeat;\n background-size: contain;\n cursor: pointer;\n display: inline-block;\n position: relative;\n text-align: center;\n width: 100%;\n height: 100%; // fix height in ie11\n\n .${globalClasses.innerShadow} {\n content: '';\n border-radius: inherit;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n &::after {\n content: '';\n display: inline-block;\n vertical-align: baseline;\n width: 0;\n }\n\n &:active .${globalClasses.caption} {\n transform: translateY(1px);\n }\n `;\n },\n\n outline() {\n return css`\n border-radius: inherit;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n `;\n },\n\n outlineWarning(t: Theme) {\n return css`\n box-shadow: 0 0 0 ${t.btnOutlineWidth} ${t.btnBorderColorWarning},\n inset 0 0 0 ${t.btnInsetWidth} ${t.btnInsetColor};\n `;\n },\n\n outlineError(t: Theme) {\n return css`\n box-shadow: 0 0 0 ${t.btnOutlineWidth} ${t.btnBorderColorError}, inset 0 0 0 ${t.btnInsetWidth} ${t.btnInsetColor};\n `;\n },\n\n outlineLink() {\n return css`\n box-shadow: none;\n left: -2px;\n right: -2px;\n bottom: -2px;\n `;\n },\n\n outlineLinkWarning(t: Theme) {\n return css`\n background-color: ${t.btnWarningSecondary};\n `;\n },\n\n outlineLinkError(t: Theme) {\n return css`\n background-color: ${t.btnErrorSecondary};\n `;\n },\n\n sizeSmall(t: Theme) {\n return css`\n border-radius: ${t.btnBorderRadiusSmall};\n\n ${buttonSizeMixin(\n t.btnFontSizeSmall,\n t.btnLineHeightSmall,\n t.btnPaddingXSmall,\n t.btnPaddingYSmall,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n sizeSmallIE11(t: Theme) {\n return css`\n ${buttonSizeMixinIE11(\n t.btnFontSizeSmall,\n t.btnPaddingXSmall,\n t.btnPaddingYSmall,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n sizeMedium(t: Theme) {\n return css`\n border-radius: ${t.btnBorderRadiusMedium};\n\n ${buttonSizeMixin(\n t.btnFontSizeMedium,\n t.btnLineHeightMedium,\n t.btnPaddingXMedium,\n t.btnPaddingYMedium,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n sizeMediumIE11(t: Theme) {\n return css`\n ${buttonSizeMixinIE11(\n t.btnFontSizeMedium,\n t.btnPaddingXMedium,\n t.btnPaddingYMedium,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n sizeLarge(t: Theme) {\n return css`\n border-radius: ${t.btnBorderRadiusLarge};\n\n ${buttonSizeMixin(\n t.btnFontSizeLarge,\n t.btnLineHeightLarge,\n t.btnPaddingXLarge,\n t.btnPaddingYLarge,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n sizeLargeIE11(t: Theme) {\n return css`\n ${buttonSizeMixinIE11(\n t.btnFontSizeLarge,\n t.btnPaddingXLarge,\n t.btnPaddingYLarge,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n link(t: Theme) {\n return css`\n background: none;\n border-radius: ${t.btnLinkBorderRadius};\n border: none;\n box-shadow: none;\n white-space: nowrap;\n color: ${t.btnLinkColor};\n display: inline;\n line-height: inherit !important; // override size mixin\n margin: 0;\n padding: 0 !important; // override size mixin\n height: auto !important; // override size mixin\n\n &:hover {\n color: ${t.btnLinkHoverColor};\n text-decoration: ${t.btnLinkHoverTextDecoration};\n }\n &:active {\n ${activeStyles.link(t)}\n }\n `;\n },\n\n linkFocus(t: Theme) {\n return css`\n color: ${t.btnLinkColor};\n text-decoration: ${t.btnLinkHoverTextDecoration};\n `;\n },\n\n linkDisabled(t: Theme) {\n return css`\n cursor: default;\n pointer-events: none;\n\n &,\n &:hover,\n &:active {\n color: ${t.btnLinkDisabledColor};\n }\n `;\n },\n\n focus(t: Theme) {\n return css`\n position: relative;\n z-index: 2;\n\n &,\n &:hover,\n &:active,\n &:active:hover {\n box-shadow: inset 0 0 0 ${t.btnInsetWidth} ${t.btnOutlineColorFocus},\n 0 0 0 ${t.btnFocusShadowWidth} ${t.btnBorderColorFocus};\n }\n `;\n },\n\n disabled(t: Theme) {\n return css`\n cursor: default;\n pointer-events: none;\n box-shadow: 0 0 0 ${t.btnBorderWidth} ${t.btnDisabledBorderColor};\n\n background-image: none;\n background-color: ${t.btnDisabledBg};\n color: ${t.btnDisabledTextColor};\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${t.btnBorderWidth} 0 0 0 ${t.btnDisabledBorderColor};\n }\n `;\n },\n\n arrowWarning(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 ${t.btnInsetWidth} ${t.btnInsetColor};\n\n ${arrowOutlineMixin(t.btnInsetWidth, t.btnBorderColorWarning, t.btnOutlineWidth, t.btnInsetColor)}\n `;\n },\n\n arrowError(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 ${t.btnInsetWidth} ${t.btnInsetColor};\n\n ${arrowOutlineMixin(t.btnInsetWidth, t.btnBorderColorError, t.btnOutlineWidth, t.btnInsetColor)}\n `;\n },\n\n arrowFocus(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 ${t.btnInsetWidth} ${t.btnOutlineColorFocus};\n\n ${arrowOutlineMixin(t.btnInsetWidth, t.btnBorderColorFocus, t.btnOutlineWidth, t.btnOutlineColorFocus)}\n `;\n },\n\n arrow() {\n return css`\n background: inherit;\n border-radius: inherit;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n\n .${globalClasses.arrowHelper} {\n width: 100%;\n height: 50%;\n position: absolute;\n left: 0;\n background: inherit;\n background-size: 200% 200%;\n border-radius: inherit;\n background-clip: padding-box;\n\n // fix ugly arrow edge\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: inherit;\n border-radius: inherit;\n transform: translateX(${isFirefox ? `0.2px` : `0.3px`});\n }\n }\n\n .${globalClasses.arrowHelperTop} {\n top: 0;\n transform: skewX(30deg);\n transform-origin: top;\n background-position-y: top;\n border-bottom-right-radius: 1px;\n\n // fix ugly line in the\n // middle of the button\n &:before {\n bottom: -1px;\n }\n }\n\n .${globalClasses.arrowHelperBottom} {\n bottom: 0;\n transform: skewX(-30deg);\n transform-origin: bottom;\n background-position-y: bottom;\n border-top-right-radius: 1px;\n\n // fix ugly line in the\n // middle of the button\n &:before {\n top: -1px;\n }\n }\n `;\n },\n\n arrowLeft() {\n return css`\n transform: scaleX(-1);\n `;\n },\n\n default(t: Theme) {\n return css`\n ${buttonUseMixin(\n t.btnDefaultBg,\n t.btnDefaultBgStart,\n t.btnDefaultBgEnd,\n t.btnDefaultTextColor,\n t.btnDefaultBorderColor,\n t.btnDefaultBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n ${buttonHoverMixin(\n t.btnDefaultHoverBg,\n t.btnDefaultHoverBgStart,\n t.btnDefaultHoverBgEnd,\n t.btnDefaultHoverBorderColor,\n t.btnDefaultHoverBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n &:active {\n ${activeStyles.default(t)}\n }\n `;\n },\n\n primary(t: Theme) {\n return css`\n ${buttonUseMixin(\n t.btnPrimaryBg,\n t.btnPrimaryBgStart,\n t.btnPrimaryBgEnd,\n t.btnPrimaryTextColor,\n t.btnPrimaryBorderColor,\n t.btnPrimaryBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n ${buttonHoverMixin(\n t.btnPrimaryHoverBg,\n t.btnPrimaryHoverBgStart,\n t.btnPrimaryHoverBgEnd,\n t.btnPrimaryHoverBorderColor,\n t.btnPrimaryHoverBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n &:active {\n ${activeStyles.primary(t)}\n }\n `;\n },\n\n success(t: Theme) {\n return css`\n ${buttonUseMixin(\n t.btnSuccessBg,\n t.btnSuccessBgStart,\n t.btnSuccessBgEnd,\n t.btnSuccessTextColor,\n t.btnSuccessBorderColor,\n t.btnSuccessBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n ${buttonHoverMixin(\n t.btnSuccessHoverBg,\n t.btnSuccessHoverBgStart,\n t.btnSuccessHoverBgEnd,\n t.btnSuccessHoverBorderColor,\n t.btnSuccessHoverBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n &:active {\n ${activeStyles.success(t)}\n }\n `;\n },\n\n danger(t: Theme) {\n return css`\n ${buttonUseMixin(\n t.btnDangerBg,\n t.btnDangerBgStart,\n t.btnDangerBgEnd,\n t.btnDangerTextColor,\n t.btnDangerBorderColor,\n t.btnDangerBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n ${buttonHoverMixin(\n t.btnDangerHoverBg,\n t.btnDangerHoverBgStart,\n t.btnDangerHoverBgEnd,\n t.btnDangerHoverBorderColor,\n t.btnDangerHoverBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n &:active {\n ${activeStyles.danger(t)}\n }\n `;\n },\n\n pay(t: Theme) {\n return css`\n ${buttonUseMixin(\n t.btnPayBg,\n t.btnPayBgStart,\n t.btnPayBgEnd,\n t.btnPayTextColor,\n t.btnPayBorderColor,\n t.btnPayBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n ${buttonHoverMixin(\n t.btnPayHoverBg,\n t.btnPayHoverBgStart,\n t.btnPayHoverBgEnd,\n t.btnPayHoverBorderColor,\n t.btnPayHoverBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n &:active {\n ${activeStyles.pay(t)}\n }\n `;\n },\n\n checked(t: Theme) {\n const checkedStyles = `\n background-image: none;\n box-shadow: 0 0 0 ${t.btnBorderWidth} ${t.btnDefaultCheckedBorderColor};\n background-color: ${t.btnCheckedBg};\n color: ${t.btnCheckedTextColor};\n\n .${globalClasses.innerShadow} {\n box-shadow: ${t.btnCheckedShadow};\n }\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${t.btnBorderWidth} 0 0 ${t.btnDefaultCheckedBorderColor};\n\n &.${globalClasses.arrowHelperTop} {\n background-image: ${t.btnArrowBgImageChecked};\n }\n }\n `;\n\n return css`\n ${checkedStyles}\n\n &:hover,\n &:active,\n &:hover:active {\n ${checkedStyles}\n }\n `;\n },\n\n checkedFocused(t: Theme) {\n return css`\n &:hover {\n box-shadow: inset 0 0 0 ${t.btnInsetWidth} ${t.btnOutlineColorFocus},\n 0 0 0 ${t.btnFocusShadowWidth} ${t.btnBorderColorFocus};\n border-color: ${t.btnBorderColorFocus};\n }\n `;\n },\n\n checkedDisabled(t: Theme) {\n return css`\n box-shadow: 0 0 0 ${t.btnBorderWidth} ${t.btnCheckedDisabledBorderColor};\n background-color: ${t.btnCheckedDisabledBg};\n color: ${t.btnCheckedDisabledColor};\n\n .${globalClasses.innerShadow} {\n box-shadow: ${t.btnCheckedDisabledShadow};\n }\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${t.btnBorderWidth} 0 0 ${t.btnCheckedDisabledBorderColor};\n\n &.${globalClasses.arrowHelperTop} {\n background-image: none;\n }\n }\n `;\n },\n\n caption() {\n return css`\n position: relative;\n white-space: nowrap;\n display: inline-block;\n width: 100%;\n vertical-align: top;\n `;\n },\n\n captionLink() {\n return css`\n display: inline;\n transform: none !important; // override root:active style\n `;\n },\n\n captionTranslated() {\n return css`\n transform: translateY(1px);\n `;\n },\n\n captionDisabled() {\n return css`\n transform: none !important; // override root:active style\n `;\n },\n\n wrap(t: Theme) {\n return css`\n box-sizing: border-box;\n display: inline-block;\n line-height: normal;\n padding: ${t.btnBorderWidth};\n `;\n },\n\n wrapSmall(t: Theme) {\n return css`\n height: ${t.btnHeightSmall};\n `;\n },\n\n wrapMedium(t: Theme) {\n return css`\n height: ${t.btnHeightMedium};\n `;\n },\n\n wrapLarge(t: Theme) {\n return css`\n height: ${t.btnHeightLarge};\n `;\n },\n\n narrow() {\n return css`\n padding-left: 5px;\n padding-right: 5px;\n `;\n },\n\n noPadding() {\n return css`\n padding-left: 0;\n padding-right: 0;\n `;\n },\n\n noRightPadding() {\n return css`\n padding-right: 0;\n `;\n },\n\n iconNoRightPadding() {\n return css`\n padding-right: 0;\n `;\n },\n\n iconLink(t: Theme) {\n return css`\n padding-right: ${t.btnLinkIconMarginRight};\n `;\n },\n\n wrapLink() {\n return css`\n padding: 0;\n `;\n },\n\n wrapArrow() {\n return css`\n margin-right: 10px;\n `;\n },\n\n wrapArrowLeft() {\n return css`\n margin-right: 0;\n margin-left: 10px;\n `;\n },\n\n icon() {\n return css`\n display: inline-block;\n `;\n },\n iconSmall(t: Theme) {\n return css`\n width: ${t.btnIconSizeSmall};\n padding-right: ${t.btnIconGapSmall};\n `;\n },\n iconMedium(t: Theme) {\n return css`\n width: ${t.btnIconSizeMedium};\n padding-right: ${t.btnIconGapMedium};\n `;\n },\n iconLarge(t: Theme) {\n return css`\n width: ${t.btnIconSizeLarge};\n padding-right: ${t.btnIconGapLarge};\n `;\n },\n\n borderless() {\n return css`\n &,\n &:hover,\n &:active {\n box-shadow: none;\n .${globalClasses.arrowHelperTop}, .${globalClasses.arrowHelperBottom} {\n box-shadow: none;\n }\n }\n `;\n },\n\n loading() {\n return css`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: inherit;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n `;\n },\n\n visibilityHidden() {\n return css`\n visibility: hidden;\n `;\n },\n});\n\nexport const activeStyles = memoizeStyle({\n default(t: Theme) {\n return css`\n &,\n &:hover {\n ${buttonActiveMixin(\n t.btnDefaultActiveBg,\n t.btnDefaultActiveShadow,\n t.btnDefaultActiveBorderColor,\n t.btnDefaultActiveBorderTopColor,\n t.btnBorderWidth,\n t.btnArrowBgImageActive,\n )};\n }\n `;\n },\n\n primary(t: Theme) {\n return css`\n &,\n &:hover {\n ${buttonActiveMixin(\n t.btnPrimaryActiveBg,\n t.btnPrimaryActiveShadow,\n t.btnPrimaryActiveBorderColor,\n t.btnPrimaryActiveBorderTopColor,\n t.btnBorderWidth,\n t.btnArrowBgImageActive,\n )};\n }\n `;\n },\n\n success(t: Theme) {\n return css`\n &,\n &:hover {\n ${buttonActiveMixin(\n t.btnSuccessActiveBg,\n t.btnSuccessActiveShadow,\n t.btnSuccessActiveBorderColor,\n t.btnSuccessActiveBorderTopColor,\n t.btnBorderWidth,\n t.btnArrowBgImageActive,\n )};\n }\n `;\n },\n\n danger(t: Theme) {\n return css`\n &,\n &:hover {\n ${buttonActiveMixin(\n t.btnDangerActiveBg,\n t.btnDangerActiveShadow,\n t.btnDangerActiveBorderColor,\n t.btnDangerActiveBorderTopColor,\n t.btnBorderWidth,\n t.btnArrowBgImageActive,\n )};\n }\n `;\n },\n\n pay(t: Theme) {\n return css`\n &,\n &:hover {\n ${buttonActiveMixin(\n t.btnPayActiveBg,\n t.btnPayActiveShadow,\n t.btnPayActiveBorderColor,\n t.btnPayActiveBorderTopColor,\n t.btnBorderWidth,\n t.btnArrowBgImageActive,\n )};\n }\n `;\n },\n\n link(t: Theme) {\n return css`\n &,\n &:hover {\n color: ${t.linkActiveColor};\n }\n `;\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["Button.styles.ts"],"names":["css","memoizeStyle","prefix","resetButton","resetText","isFirefox","buttonUseMixin","buttonHoverMixin","buttonActiveMixin","buttonSizeMixin","arrowOutlineMixin","buttonSizeMixinIE11","globalClasses","arrowHelper","arrowHelperTop","arrowHelperBottom","caption","innerShadow","styles","root","t","btnBackgroundClip","outline","outlineWarning","btnOutlineWidth","btnBorderColorWarning","btnInsetWidth","btnInsetColor","outlineError","btnBorderColorError","outlineLink","outlineLinkWarning","btnWarningSecondary","outlineLinkError","btnErrorSecondary","sizeSmall","btnBorderRadiusSmall","btnFontSizeSmall","btnLineHeightSmall","btnPaddingXSmall","btnPaddingYSmall","fontFamilyCompensationBaseline","sizeSmallIE11","sizeMedium","btnBorderRadiusMedium","btnFontSizeMedium","btnLineHeightMedium","btnPaddingXMedium","btnPaddingYMedium","sizeMediumIE11","sizeLarge","btnBorderRadiusLarge","btnFontSizeLarge","btnLineHeightLarge","btnPaddingXLarge","btnPaddingYLarge","sizeLargeIE11","link","btnLinkBorderRadius","btnLinkColor","btnLinkHoverColor","btnLinkHoverTextDecoration","activeStyles","linkFocus","linkDisabled","btnLinkDisabledColor","focus","btnOutlineColorFocus","btnFocusShadowWidth","btnBorderColorFocus","disabled","btnBorderWidth","btnDisabledBorderColor","btnDisabledBg","btnDisabledTextColor","arrowWarning","arrowError","arrowFocus","arrow","arrowLeft","btnDefaultBg","btnDefaultBgStart","btnDefaultBgEnd","btnDefaultTextColor","btnDefaultBorderColor","btnDefaultBorderBottomColor","btnDefaultHoverBg","btnDefaultHoverBgStart","btnDefaultHoverBgEnd","btnDefaultHoverBorderColor","btnDefaultHoverBorderBottomColor","primary","btnPrimaryBg","btnPrimaryBgStart","btnPrimaryBgEnd","btnPrimaryTextColor","btnPrimaryBorderColor","btnPrimaryBorderBottomColor","btnPrimaryHoverBg","btnPrimaryHoverBgStart","btnPrimaryHoverBgEnd","btnPrimaryHoverBorderColor","btnPrimaryHoverBorderBottomColor","success","btnSuccessBg","btnSuccessBgStart","btnSuccessBgEnd","btnSuccessTextColor","btnSuccessBorderColor","btnSuccessBorderBottomColor","btnSuccessHoverBg","btnSuccessHoverBgStart","btnSuccessHoverBgEnd","btnSuccessHoverBorderColor","btnSuccessHoverBorderBottomColor","danger","btnDangerBg","btnDangerBgStart","btnDangerBgEnd","btnDangerTextColor","btnDangerBorderColor","btnDangerBorderBottomColor","btnDangerHoverBg","btnDangerHoverBgStart","btnDangerHoverBgEnd","btnDangerHoverBorderColor","btnDangerHoverBorderBottomColor","pay","btnPayBg","btnPayBgStart","btnPayBgEnd","btnPayTextColor","btnPayBorderColor","btnPayBorderBottomColor","btnPayHoverBg","btnPayHoverBgStart","btnPayHoverBgEnd","btnPayHoverBorderColor","btnPayHoverBorderBottomColor","checked","checkedStyles","btnDefaultCheckedBorderColor","btnCheckedBg","btnCheckedTextColor","btnCheckedShadow","btnArrowBgImageChecked","checkedFocused","checkedDisabled","btnCheckedDisabledBorderColor","btnCheckedDisabledBg","btnCheckedDisabledColor","btnCheckedDisabledShadow","captionLink","captionTranslated","captionDisabled","wrap","wrapSmall","btnHeightSmall","wrapMedium","btnHeightMedium","wrapLarge","btnHeightLarge","narrow","noPadding","noRightPadding","iconNoRightPadding","iconLink","btnLinkIconMarginRight","wrapLink","wrapArrow","wrapArrowLeft","icon","iconSmall","btnIconSizeSmall","btnIconGapSmall","iconMedium","btnIconSizeMedium","btnIconGapMedium","iconLarge","btnIconSizeLarge","btnIconGapLarge","borderless","loading","visibilityHidden","btnDefaultActiveBg","btnDefaultActiveShadow","btnDefaultActiveBorderColor","btnDefaultActiveBorderTopColor","btnArrowBgImageActive","btnPrimaryActiveBg","btnPrimaryActiveShadow","btnPrimaryActiveBorderColor","btnPrimaryActiveBorderTopColor","btnSuccessActiveBg","btnSuccessActiveShadow","btnSuccessActiveBorderColor","btnSuccessActiveBorderTopColor","btnDangerActiveBg","btnDangerActiveShadow","btnDangerActiveBorderColor","btnDangerActiveBorderTopColor","btnPayActiveBg","btnPayActiveShadow","btnPayActiveBorderColor","btnPayActiveBorderTopColor","btnLinkActiveColor"],"mappings":"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","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton, resetText } from '../../lib/styles/Mixins';\nimport { isFirefox } from '../../lib/client';\n\nimport {\n buttonUseMixin,\n buttonHoverMixin,\n buttonActiveMixin,\n buttonSizeMixin,\n arrowOutlineMixin,\n buttonSizeMixinIE11,\n} from './Button.mixins';\n\nexport const globalClasses = prefix('button')({\n arrowHelper: 'arrow-helper',\n arrowHelperTop: 'arrow-helper-top',\n arrowHelperBottom: 'arrow-helper-bottom',\n caption: 'caption',\n innerShadow: 'inner-shadow',\n});\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n ${resetButton()};\n ${resetText()};\n\n background-clip: ${t.btnBackgroundClip};\n background-position: center;\n background-repeat: no-repeat;\n background-size: contain;\n cursor: pointer;\n display: inline-block;\n position: relative;\n text-align: center;\n width: 100%;\n height: 100%; // fix height in ie11\n\n .${globalClasses.innerShadow} {\n content: '';\n border-radius: inherit;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n &::after {\n content: '';\n display: inline-block;\n vertical-align: baseline;\n width: 0;\n }\n\n &:active .${globalClasses.caption} {\n transform: translateY(1px);\n }\n `;\n },\n\n outline() {\n return css`\n border-radius: inherit;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n `;\n },\n\n outlineWarning(t: Theme) {\n return css`\n box-shadow: 0 0 0 ${t.btnOutlineWidth} ${t.btnBorderColorWarning},\n inset 0 0 0 ${t.btnInsetWidth} ${t.btnInsetColor};\n `;\n },\n\n outlineError(t: Theme) {\n return css`\n box-shadow: 0 0 0 ${t.btnOutlineWidth} ${t.btnBorderColorError}, inset 0 0 0 ${t.btnInsetWidth} ${t.btnInsetColor};\n `;\n },\n\n outlineLink() {\n return css`\n box-shadow: none;\n left: -2px;\n right: -2px;\n bottom: -2px;\n `;\n },\n\n outlineLinkWarning(t: Theme) {\n return css`\n background-color: ${t.btnWarningSecondary};\n `;\n },\n\n outlineLinkError(t: Theme) {\n return css`\n background-color: ${t.btnErrorSecondary};\n `;\n },\n\n sizeSmall(t: Theme) {\n return css`\n border-radius: ${t.btnBorderRadiusSmall};\n\n ${buttonSizeMixin(\n t.btnFontSizeSmall,\n t.btnLineHeightSmall,\n t.btnPaddingXSmall,\n t.btnPaddingYSmall,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n sizeSmallIE11(t: Theme) {\n return css`\n ${buttonSizeMixinIE11(\n t.btnFontSizeSmall,\n t.btnPaddingXSmall,\n t.btnPaddingYSmall,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n sizeMedium(t: Theme) {\n return css`\n border-radius: ${t.btnBorderRadiusMedium};\n\n ${buttonSizeMixin(\n t.btnFontSizeMedium,\n t.btnLineHeightMedium,\n t.btnPaddingXMedium,\n t.btnPaddingYMedium,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n sizeMediumIE11(t: Theme) {\n return css`\n ${buttonSizeMixinIE11(\n t.btnFontSizeMedium,\n t.btnPaddingXMedium,\n t.btnPaddingYMedium,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n sizeLarge(t: Theme) {\n return css`\n border-radius: ${t.btnBorderRadiusLarge};\n\n ${buttonSizeMixin(\n t.btnFontSizeLarge,\n t.btnLineHeightLarge,\n t.btnPaddingXLarge,\n t.btnPaddingYLarge,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n sizeLargeIE11(t: Theme) {\n return css`\n ${buttonSizeMixinIE11(\n t.btnFontSizeLarge,\n t.btnPaddingXLarge,\n t.btnPaddingYLarge,\n t.fontFamilyCompensationBaseline,\n )};\n `;\n },\n\n link(t: Theme) {\n return css`\n background: none;\n border-radius: ${t.btnLinkBorderRadius};\n border: none;\n box-shadow: none;\n white-space: nowrap;\n color: ${t.btnLinkColor};\n display: inline;\n line-height: inherit !important; // override size mixin\n margin: 0;\n padding: 0 !important; // override size mixin\n height: auto !important; // override size mixin\n\n &:hover {\n color: ${t.btnLinkHoverColor};\n text-decoration: ${t.btnLinkHoverTextDecoration};\n }\n &:active {\n ${activeStyles.link(t)}\n }\n `;\n },\n\n linkFocus(t: Theme) {\n return css`\n color: ${t.btnLinkColor};\n text-decoration: ${t.btnLinkHoverTextDecoration};\n `;\n },\n\n linkDisabled(t: Theme) {\n return css`\n cursor: default;\n pointer-events: none;\n\n &,\n &:hover,\n &:active {\n color: ${t.btnLinkDisabledColor};\n }\n `;\n },\n\n focus(t: Theme) {\n return css`\n position: relative;\n z-index: 2;\n\n &,\n &:hover,\n &:active,\n &:active:hover {\n box-shadow: inset 0 0 0 ${t.btnInsetWidth} ${t.btnOutlineColorFocus},\n 0 0 0 ${t.btnFocusShadowWidth} ${t.btnBorderColorFocus};\n }\n `;\n },\n\n disabled(t: Theme) {\n return css`\n cursor: default;\n pointer-events: none;\n box-shadow: 0 0 0 ${t.btnBorderWidth} ${t.btnDisabledBorderColor};\n\n background-image: none;\n background-color: ${t.btnDisabledBg};\n color: ${t.btnDisabledTextColor};\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${t.btnBorderWidth} 0 0 0 ${t.btnDisabledBorderColor};\n }\n `;\n },\n\n arrowWarning(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 ${t.btnInsetWidth} ${t.btnInsetColor};\n\n ${arrowOutlineMixin(t.btnInsetWidth, t.btnBorderColorWarning, t.btnOutlineWidth, t.btnInsetColor)}\n `;\n },\n\n arrowError(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 ${t.btnInsetWidth} ${t.btnInsetColor};\n\n ${arrowOutlineMixin(t.btnInsetWidth, t.btnBorderColorError, t.btnOutlineWidth, t.btnInsetColor)}\n `;\n },\n\n arrowFocus(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 ${t.btnInsetWidth} ${t.btnOutlineColorFocus};\n\n ${arrowOutlineMixin(t.btnInsetWidth, t.btnBorderColorFocus, t.btnOutlineWidth, t.btnOutlineColorFocus)}\n `;\n },\n\n arrow() {\n return css`\n background: inherit;\n border-radius: inherit;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n\n .${globalClasses.arrowHelper} {\n width: 100%;\n height: 50%;\n position: absolute;\n left: 0;\n background: inherit;\n background-size: 200% 200%;\n border-radius: inherit;\n background-clip: padding-box;\n\n // fix ugly arrow edge\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: inherit;\n border-radius: inherit;\n transform: translateX(${isFirefox ? `0.2px` : `0.3px`});\n }\n }\n\n .${globalClasses.arrowHelperTop} {\n top: 0;\n transform: skewX(30deg);\n transform-origin: top;\n background-position-y: top;\n border-bottom-right-radius: 1px;\n\n // fix ugly line in the\n // middle of the button\n &:before {\n bottom: -1px;\n }\n }\n\n .${globalClasses.arrowHelperBottom} {\n bottom: 0;\n transform: skewX(-30deg);\n transform-origin: bottom;\n background-position-y: bottom;\n border-top-right-radius: 1px;\n\n // fix ugly line in the\n // middle of the button\n &:before {\n top: -1px;\n }\n }\n `;\n },\n\n arrowLeft() {\n return css`\n transform: scaleX(-1);\n `;\n },\n\n default(t: Theme) {\n return css`\n ${buttonUseMixin(\n t.btnDefaultBg,\n t.btnDefaultBgStart,\n t.btnDefaultBgEnd,\n t.btnDefaultTextColor,\n t.btnDefaultBorderColor,\n t.btnDefaultBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n ${buttonHoverMixin(\n t.btnDefaultHoverBg,\n t.btnDefaultHoverBgStart,\n t.btnDefaultHoverBgEnd,\n t.btnDefaultHoverBorderColor,\n t.btnDefaultHoverBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n &:active {\n ${activeStyles.default(t)}\n }\n `;\n },\n\n primary(t: Theme) {\n return css`\n ${buttonUseMixin(\n t.btnPrimaryBg,\n t.btnPrimaryBgStart,\n t.btnPrimaryBgEnd,\n t.btnPrimaryTextColor,\n t.btnPrimaryBorderColor,\n t.btnPrimaryBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n ${buttonHoverMixin(\n t.btnPrimaryHoverBg,\n t.btnPrimaryHoverBgStart,\n t.btnPrimaryHoverBgEnd,\n t.btnPrimaryHoverBorderColor,\n t.btnPrimaryHoverBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n &:active {\n ${activeStyles.primary(t)}\n }\n `;\n },\n\n success(t: Theme) {\n return css`\n ${buttonUseMixin(\n t.btnSuccessBg,\n t.btnSuccessBgStart,\n t.btnSuccessBgEnd,\n t.btnSuccessTextColor,\n t.btnSuccessBorderColor,\n t.btnSuccessBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n ${buttonHoverMixin(\n t.btnSuccessHoverBg,\n t.btnSuccessHoverBgStart,\n t.btnSuccessHoverBgEnd,\n t.btnSuccessHoverBorderColor,\n t.btnSuccessHoverBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n &:active {\n ${activeStyles.success(t)}\n }\n `;\n },\n\n danger(t: Theme) {\n return css`\n ${buttonUseMixin(\n t.btnDangerBg,\n t.btnDangerBgStart,\n t.btnDangerBgEnd,\n t.btnDangerTextColor,\n t.btnDangerBorderColor,\n t.btnDangerBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n ${buttonHoverMixin(\n t.btnDangerHoverBg,\n t.btnDangerHoverBgStart,\n t.btnDangerHoverBgEnd,\n t.btnDangerHoverBorderColor,\n t.btnDangerHoverBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n &:active {\n ${activeStyles.danger(t)}\n }\n `;\n },\n\n pay(t: Theme) {\n return css`\n ${buttonUseMixin(\n t.btnPayBg,\n t.btnPayBgStart,\n t.btnPayBgEnd,\n t.btnPayTextColor,\n t.btnPayBorderColor,\n t.btnPayBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n ${buttonHoverMixin(\n t.btnPayHoverBg,\n t.btnPayHoverBgStart,\n t.btnPayHoverBgEnd,\n t.btnPayHoverBorderColor,\n t.btnPayHoverBorderBottomColor,\n t.btnBorderWidth,\n )};\n\n &:active {\n ${activeStyles.pay(t)}\n }\n `;\n },\n\n checked(t: Theme) {\n const checkedStyles = `\n background-image: none;\n box-shadow: 0 0 0 ${t.btnBorderWidth} ${t.btnDefaultCheckedBorderColor};\n background-color: ${t.btnCheckedBg};\n color: ${t.btnCheckedTextColor};\n\n .${globalClasses.innerShadow} {\n box-shadow: ${t.btnCheckedShadow};\n }\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${t.btnBorderWidth} 0 0 ${t.btnDefaultCheckedBorderColor};\n\n &.${globalClasses.arrowHelperTop} {\n background-image: ${t.btnArrowBgImageChecked};\n }\n }\n `;\n\n return css`\n ${checkedStyles}\n\n &:hover,\n &:active,\n &:hover:active {\n ${checkedStyles}\n }\n `;\n },\n\n checkedFocused(t: Theme) {\n return css`\n &:hover {\n box-shadow: inset 0 0 0 ${t.btnInsetWidth} ${t.btnOutlineColorFocus},\n 0 0 0 ${t.btnFocusShadowWidth} ${t.btnBorderColorFocus};\n border-color: ${t.btnBorderColorFocus};\n }\n `;\n },\n\n checkedDisabled(t: Theme) {\n return css`\n box-shadow: 0 0 0 ${t.btnBorderWidth} ${t.btnCheckedDisabledBorderColor};\n background-color: ${t.btnCheckedDisabledBg};\n color: ${t.btnCheckedDisabledColor};\n\n .${globalClasses.innerShadow} {\n box-shadow: ${t.btnCheckedDisabledShadow};\n }\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${t.btnBorderWidth} 0 0 ${t.btnCheckedDisabledBorderColor};\n\n &.${globalClasses.arrowHelperTop} {\n background-image: none;\n }\n }\n `;\n },\n\n caption() {\n return css`\n position: relative;\n white-space: nowrap;\n display: inline-block;\n width: 100%;\n vertical-align: top;\n `;\n },\n\n captionLink() {\n return css`\n display: inline;\n transform: none !important; // override root:active style\n `;\n },\n\n captionTranslated() {\n return css`\n transform: translateY(1px);\n `;\n },\n\n captionDisabled() {\n return css`\n transform: none !important; // override root:active style\n `;\n },\n\n wrap(t: Theme) {\n return css`\n box-sizing: border-box;\n display: inline-block;\n line-height: normal;\n padding: ${t.btnBorderWidth};\n `;\n },\n\n wrapSmall(t: Theme) {\n return css`\n height: ${t.btnHeightSmall};\n `;\n },\n\n wrapMedium(t: Theme) {\n return css`\n height: ${t.btnHeightMedium};\n `;\n },\n\n wrapLarge(t: Theme) {\n return css`\n height: ${t.btnHeightLarge};\n `;\n },\n\n narrow() {\n return css`\n padding-left: 5px;\n padding-right: 5px;\n `;\n },\n\n noPadding() {\n return css`\n padding-left: 0;\n padding-right: 0;\n `;\n },\n\n noRightPadding() {\n return css`\n padding-right: 0;\n `;\n },\n\n iconNoRightPadding() {\n return css`\n padding-right: 0;\n `;\n },\n\n iconLink(t: Theme) {\n return css`\n padding-right: ${t.btnLinkIconMarginRight};\n `;\n },\n\n wrapLink() {\n return css`\n padding: 0;\n `;\n },\n\n wrapArrow() {\n return css`\n margin-right: 10px;\n `;\n },\n\n wrapArrowLeft() {\n return css`\n margin-right: 0;\n margin-left: 10px;\n `;\n },\n\n icon() {\n return css`\n display: inline-block;\n `;\n },\n iconSmall(t: Theme) {\n return css`\n width: ${t.btnIconSizeSmall};\n padding-right: ${t.btnIconGapSmall};\n `;\n },\n iconMedium(t: Theme) {\n return css`\n width: ${t.btnIconSizeMedium};\n padding-right: ${t.btnIconGapMedium};\n `;\n },\n iconLarge(t: Theme) {\n return css`\n width: ${t.btnIconSizeLarge};\n padding-right: ${t.btnIconGapLarge};\n `;\n },\n\n borderless() {\n return css`\n &,\n &:hover,\n &:active {\n box-shadow: none;\n .${globalClasses.arrowHelperTop}, .${globalClasses.arrowHelperBottom} {\n box-shadow: none;\n }\n }\n `;\n },\n\n loading() {\n return css`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: inherit;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n `;\n },\n\n visibilityHidden() {\n return css`\n visibility: hidden;\n `;\n },\n});\n\nexport const activeStyles = memoizeStyle({\n default(t: Theme) {\n return css`\n &,\n &:hover {\n ${buttonActiveMixin(\n t.btnDefaultActiveBg,\n t.btnDefaultActiveShadow,\n t.btnDefaultActiveBorderColor,\n t.btnDefaultActiveBorderTopColor,\n t.btnBorderWidth,\n t.btnArrowBgImageActive,\n )};\n }\n `;\n },\n\n primary(t: Theme) {\n return css`\n &,\n &:hover {\n ${buttonActiveMixin(\n t.btnPrimaryActiveBg,\n t.btnPrimaryActiveShadow,\n t.btnPrimaryActiveBorderColor,\n t.btnPrimaryActiveBorderTopColor,\n t.btnBorderWidth,\n t.btnArrowBgImageActive,\n )};\n }\n `;\n },\n\n success(t: Theme) {\n return css`\n &,\n &:hover {\n ${buttonActiveMixin(\n t.btnSuccessActiveBg,\n t.btnSuccessActiveShadow,\n t.btnSuccessActiveBorderColor,\n t.btnSuccessActiveBorderTopColor,\n t.btnBorderWidth,\n t.btnArrowBgImageActive,\n )};\n }\n `;\n },\n\n danger(t: Theme) {\n return css`\n &,\n &:hover {\n ${buttonActiveMixin(\n t.btnDangerActiveBg,\n t.btnDangerActiveShadow,\n t.btnDangerActiveBorderColor,\n t.btnDangerActiveBorderTopColor,\n t.btnBorderWidth,\n t.btnArrowBgImageActive,\n )};\n }\n `;\n },\n\n pay(t: Theme) {\n return css`\n &,\n &:hover {\n ${buttonActiveMixin(\n t.btnPayActiveBg,\n t.btnPayActiveShadow,\n t.btnPayActiveBorderColor,\n t.btnPayActiveBorderTopColor,\n t.btnBorderWidth,\n t.btnArrowBgImageActive,\n )};\n }\n `;\n },\n\n link(t: Theme) {\n return css`\n &,\n &:hover {\n color: ${t.btnLinkActiveColor};\n }\n `;\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isIE11","CommonWrapper","cx","rootNode","fixFirefoxModifiedClickOnLabel","styles","globalClasses","Checkbox","state","focusedByTab","indeterminate","props","initialIndeterminate","input","createRef","componentDidMount","current","setIndeterminate","setState","resetIndeterminate","renderMain","error","warning","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","rest","isIndeterminate","rootClass","root","theme","rootFallback","rootChecked","checked","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","iconClass","icon","iconUnchecked","box","boxWrapper","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","e","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\n\nimport { styles, globalClasses } from './Checkbox.styles';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n}\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const rootClass = cx({\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const iconClass = cx({\n [styles.icon(this.theme)]: true,\n [styles.iconUnchecked()]: !props.checked && !isIndeterminate,\n });\n\n const box = (\n <div className={cx(styles.boxWrapper(this.theme))}>\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: props.disabled,\n })}\n >\n {(isIndeterminate && <SquareIcon className={iconClass} />) || <OkIcon className={iconClass} />}\n </div>\n </div>\n );\n\n return (\n <label\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isIE11","CommonWrapper","cx","rootNode","fixFirefoxModifiedClickOnLabel","styles","globalClasses","Checkbox","state","focusedByTab","indeterminate","props","initialIndeterminate","input","createRef","componentDidMount","current","setIndeterminate","setState","resetIndeterminate","renderMain","error","warning","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","rest","isIndeterminate","rootClass","root","theme","rootFallback","rootChecked","checked","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","iconClass","icon","iconUnchecked","box","boxWrapper","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","e","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\n\nimport { styles, globalClasses } from './Checkbox.styles';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n}\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const rootClass = cx({\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const iconClass = cx({\n [styles.icon(this.theme)]: true,\n [styles.iconUnchecked()]: !props.checked && !isIndeterminate,\n });\n\n const box = (\n <div className={cx(styles.boxWrapper(this.theme))}>\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: props.disabled,\n })}\n >\n {(isIndeterminate && <SquareIcon className={iconClass} />) || <OkIcon className={iconClass} />}\n </div>\n </div>\n );\n\n return (\n <label\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
|
|
@@ -8,11 +8,11 @@ export interface CheckboxProps extends CommonProps, Override<React.InputHTMLAttr
|
|
|
8
8
|
*/
|
|
9
9
|
children?: React.ReactNode;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Состояние валидации при ошибке.
|
|
12
12
|
*/
|
|
13
13
|
error?: boolean;
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Состояние валидации при предупреждении.
|
|
16
16
|
*/
|
|
17
17
|
warning?: boolean;
|
|
18
18
|
/**
|