@zohodesk/components 1.0.0-temp-206.4 → 1.0.0-temp-207
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/.cli/propValidation_report.html +1 -1
- package/README.md +7 -8
- package/es/Accordion/Accordion.js +2 -2
- package/es/Accordion/AccordionItem.js +4 -4
- package/es/Accordion/__tests__/Accordion.spec.js +1 -1
- package/es/Accordion/__tests__/AccordionItem.spec.js +1 -1
- package/es/Accordion/index.js +2 -2
- package/es/Animation/Animation.js +3 -3
- package/es/Animation/__tests__/Animation.spec.js +1 -1
- package/es/Animation/utils.js +1 -1
- package/es/AppContainer/AppContainer.js +9 -9
- package/es/AppContainer/__tests__/AppContainer.spec.js +1 -1
- package/es/Avatar/Avatar.js +5 -5
- package/es/Avatar/__tests__/Avatar.spec.js +1 -1
- package/es/AvatarTeam/AvatarTeam.js +4 -4
- package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -1
- package/es/Button/Button.js +4 -4
- package/es/Button/__tests__/Button.spec.js +1 -1
- package/es/Button/index.js +2 -2
- package/es/Button/props/defaultProps.js +1 -1
- package/es/Buttongroup/Buttongroup.js +3 -3
- package/es/Buttongroup/__tests__/Buttongroup.spec.js +1 -1
- package/es/Card/Card.js +5 -5
- package/es/Card/__tests__/Card.spec.js +1 -1
- package/es/Card/index.js +4 -4
- package/es/CheckBox/CheckBox.js +6 -6
- package/es/CheckBox/__tests__/CheckBox.spec.js +1 -1
- package/es/DateTime/CalendarView.js +6 -6
- package/es/DateTime/DateTime.js +15 -15
- package/es/DateTime/DateTimePopupFooter.js +5 -5
- package/es/DateTime/DateTimePopupHeader.js +4 -4
- package/es/DateTime/DateWidget.js +17 -17
- package/es/DateTime/DaysRow.js +3 -3
- package/es/DateTime/Time.js +5 -5
- package/es/DateTime/YearView.js +6 -6
- package/es/DateTime/__tests__/CalendarView.spec.js +1 -1
- package/es/DateTime/__tests__/DateTime.spec.js +1 -1
- package/es/DateTime/__tests__/DateTimePopupFooter.spec.js +1 -1
- package/es/DateTime/__tests__/DateTimePopupHeader.spec.js +1 -1
- package/es/DateTime/__tests__/DateWidget.spec.js +1 -1
- package/es/DateTime/__tests__/DaysRow.spec.js +1 -1
- package/es/DateTime/__tests__/Time.spec.js +1 -1
- package/es/DateTime/__tests__/YearView.spec.js +1 -1
- package/es/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +1 -1
- package/es/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +1 -1
- package/es/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +1 -1
- package/es/DateTime/dateFormatUtils/dateFormat.js +4 -4
- package/es/DateTime/dateFormatUtils/dayChange.js +2 -2
- package/es/DateTime/dateFormatUtils/index.js +3 -3
- package/es/DateTime/dateFormatUtils/monthChange.js +2 -2
- package/es/DateTime/dateFormatUtils/timeChange.js +2 -2
- package/es/DateTime/dateFormatUtils/yearChange.js +2 -2
- package/es/DateTime/index.js +1 -1
- package/es/DateTime/props/propTypes.js +1 -1
- package/es/DateTime/validator.js +2 -2
- package/es/DropBox/DropBox.js +9 -9
- package/es/DropBox/DropBoxElement/DropBoxElement.js +6 -6
- package/es/DropBox/DropBoxElement/__tests__/DropBoxElement.spec.js +1 -1
- package/es/DropBox/DropBoxElement/css/cssJSLogic.js +1 -1
- package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +1 -1
- package/es/DropBox/__tests__/DropBox.spec.js +1 -1
- package/es/DropBox/css/cssJSLogic.js +1 -1
- package/es/DropBox/props/defaultProps.js +1 -1
- package/es/DropBox/props/propTypes.js +1 -1
- package/es/DropBox/utils/isMobilePopover.js +1 -1
- package/es/DropDown/DropDown.js +4 -4
- package/es/DropDown/DropDownHeading.js +3 -3
- package/es/DropDown/DropDownItem.js +3 -3
- package/es/DropDown/DropDownSearch.js +4 -4
- package/es/DropDown/DropDownSeparator.js +2 -2
- package/es/DropDown/__tests__/DropDown.spec.js +1 -1
- package/es/DropDown/__tests__/DropDownHeading.spec.js +1 -1
- package/es/DropDown/__tests__/DropDownItem.spec.js +1 -1
- package/es/DropDown/__tests__/DropDownSearch.spec.js +1 -1
- package/es/DropDown/__tests__/DropDownSeparator.spec.js +1 -1
- package/es/DropDown/index.js +7 -7
- package/es/DropDown/props/propTypes.js +1 -1
- package/es/Heading/Heading.js +8 -5
- package/es/Heading/__tests__/Heading.spec.js +10 -1
- package/es/Heading/__tests__/__snapshots__/Heading.spec.js.snap +55 -1
- package/es/Heading/props/propTypes.js +2 -1
- package/es/Label/Label.js +4 -4
- package/es/Label/__tests__/Label.spec.js +1 -1
- package/es/Layout/Box.js +4 -4
- package/es/Layout/Container.js +4 -4
- package/es/Layout/__tests__/Box.spec.js +1 -1
- package/es/Layout/__tests__/Container.spec.js +1 -1
- package/es/Layout/index.js +2 -2
- package/es/ListItem/ListContainer.js +6 -6
- package/es/ListItem/ListItem.js +5 -5
- package/es/ListItem/ListItemWithAvatar.js +12 -16
- package/es/ListItem/ListItemWithCheckBox.js +6 -6
- package/es/ListItem/ListItemWithIcon.js +5 -5
- package/es/ListItem/ListItemWithRadio.js +6 -6
- package/es/ListItem/__tests__/ListContainer.spec.js +1 -1
- package/es/ListItem/__tests__/ListItem.spec.js +1 -1
- package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +1 -1
- package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +1 -1
- package/es/ListItem/__tests__/ListItemWithIcon.spec.js +1 -1
- package/es/ListItem/__tests__/ListItemWithRadio.spec.js +1 -1
- package/es/ListItem/index.js +6 -6
- package/es/ListItem/props/defaultProps.js +0 -1
- package/es/ListItem/props/propTypes.js +1 -4
- package/es/Modal/Modal.js +3 -3
- package/es/Modal/__tests__/Modal.spec.js +1 -1
- package/es/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
- package/es/MultiSelect/AdvancedMultiSelect.js +17 -17
- package/es/MultiSelect/EmptyState.js +3 -3
- package/es/MultiSelect/MobileHeader/MobileHeader.js +5 -5
- package/es/MultiSelect/MobileHeader/__tests__/MobileHeader.spec.js +1 -1
- package/es/MultiSelect/MultiSelect.js +20 -20
- package/es/MultiSelect/MultiSelectHeader.js +4 -4
- package/es/MultiSelect/MultiSelectWithAvatar.js +16 -16
- package/es/MultiSelect/SelectedOptions.js +5 -5
- package/es/MultiSelect/Suggestions.js +6 -8
- package/es/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +1 -1
- package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +1 -1
- package/es/MultiSelect/__tests__/EmptyState.spec.js +1 -1
- package/es/MultiSelect/__tests__/MultiSelect.spec.js +1 -1
- package/es/MultiSelect/__tests__/MultiSelectHeader.spec.js +1 -1
- package/es/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +1 -1
- package/es/MultiSelect/__tests__/SelectedOptions.spec.js +1 -1
- package/es/MultiSelect/__tests__/Suggestions.spec.js +1 -1
- package/es/MultiSelect/index.js +4 -4
- package/es/MultiSelect/props/defaultProps.js +1 -1
- package/es/MultiSelect/props/propTypes.js +0 -1
- package/es/PopOver/PopOver.js +6 -6
- package/es/PopOver/__tests__/PopOver.spec.js +1 -1
- package/es/PopOver/index.js +3 -3
- package/es/Popup/Popup.js +3 -3
- package/es/Provider/AvatarSize.js +1 -1
- package/es/Provider/CssProvider.js +1 -1
- package/es/Provider/IdProvider.js +2 -2
- package/es/Provider/LibraryContext.js +2 -2
- package/es/Provider/ZindexProvider.js +2 -2
- package/es/Provider/index.js +4 -4
- package/es/Radio/Radio.js +5 -5
- package/es/Radio/__tests__/Radio.spec.js +1 -1
- package/es/Responsive/CustomResponsive.js +10 -17
- package/es/Responsive/ResizeComponent.js +2 -2
- package/es/Responsive/Responsive.js +6 -6
- package/es/Responsive/index.js +3 -3
- package/es/Responsive/props/propTypes.js +1 -2
- package/es/Responsive/utils/index.js +1 -1
- package/es/Responsive/windowResizeObserver.js +1 -1
- package/es/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
- package/es/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +1 -1
- package/es/ResponsiveDropBox/props/propTypes.js +1 -1
- package/es/Ribbon/Ribbon.js +3 -3
- package/es/Ribbon/__tests__/Ribbon.spec.js +1 -1
- package/es/RippleEffect/RippleEffect.js +4 -4
- package/es/RippleEffect/__tests__/RippleEffect.spec.js +1 -1
- package/es/Select/GroupSelect.js +16 -16
- package/es/Select/Select.js +15 -15
- package/es/Select/SelectWithAvatar.js +17 -17
- package/es/Select/SelectWithIcon.js +13 -13
- package/es/Select/__tests__/GroupSelect.spec.js +1 -1
- package/es/Select/__tests__/Select.spec.js +1 -1
- package/es/Select/__tests__/SelectWithAvatar.spec.js +1 -1
- package/es/Select/__tests__/SelectWithIcon.spec.js +1 -1
- package/es/Select/index.js +4 -4
- package/es/Select/props/defaultProps.js +1 -1
- package/es/Stencils/Stencils.js +3 -3
- package/es/Stencils/__tests__/Stencils.spec.js +1 -1
- package/es/Switch/Switch.js +5 -5
- package/es/Switch/__tests__/Switch.spec.js +1 -1
- package/es/Tab/Tab.js +5 -5
- package/es/Tab/TabContent.js +4 -4
- package/es/Tab/TabContentWrapper.js +3 -3
- package/es/Tab/TabWrapper.js +3 -3
- package/es/Tab/Tabs.js +18 -25
- package/es/Tab/Tabs.module.css +2 -2
- package/es/Tab/__tests__/Tab.spec.js +1 -1
- package/es/Tab/__tests__/TabContent.spec.js +1 -1
- package/es/Tab/__tests__/TabContentWrapper.spec.js +1 -1
- package/es/Tab/__tests__/TabWrapper.spec.js +1 -1
- package/es/Tab/__tests__/Tabs.spec.js +1 -1
- package/es/Tab/index.js +5 -5
- package/es/Tab/props/propTypes.js +2 -2
- package/es/Tag/Tag.js +9 -11
- package/es/Tag/__tests__/Tag.spec.js +1 -1
- package/es/Tag/props/propTypes.js +1 -2
- package/es/TextBox/TextBox.js +3 -3
- package/es/TextBox/__tests__/TextBox.spec.js +1 -1
- package/es/TextBoxIcon/TextBoxIcon.js +6 -6
- package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -1
- package/es/TextBoxIcon/props/propTypes.js +1 -1
- package/es/Textarea/Textarea.js +154 -27
- package/es/Textarea/Textarea.module.css +55 -4
- package/es/Textarea/TextareaOne.js +349 -0
- package/es/Textarea/__tests__/Textarea.spec.js +1 -1
- package/es/Textarea/props/propTypes.js +4 -1
- package/es/Textarea/utils/calculateNodeHeight.js +58 -0
- package/es/Textarea/utils/calculateNodeHeightOne.js +66 -0
- package/es/Textarea/utils/debounce.js +24 -0
- package/es/Textarea/utils/getSizingData.js +27 -0
- package/es/Textarea/utils/ownerDocument.js +5 -0
- package/es/Textarea/utils/ownerWindow.js +8 -0
- package/es/Textarea/utils/updateState.js +30 -0
- package/es/Tooltip/Tooltip.js +17 -7
- package/es/Tooltip/Tooltip.module.css +0 -8
- package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
- package/es/VelocityAnimation/VelocityAnimation/__tests__/VelocityAnimation.spec.js +1 -1
- package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
- package/es/VelocityAnimation/VelocityAnimationGroup/__tests__/VelocityAnimationGroup.spec.js +1 -1
- package/es/VelocityAnimation/index.js +2 -2
- package/es/common/common.module.css +24 -0
- package/es/css.js +37 -37
- package/es/deprecated/PortalLayer/PortalLayer.js +3 -3
- package/es/index.js +39 -39
- package/es/semantic/Button/Button.js +3 -3
- package/es/semantic/Button/__tests__/Button.spec.js +1 -1
- package/es/semantic/index.js +1 -1
- package/es/utils/Common.js +1 -1
- package/es/utils/ContextOptimizer.js +1 -1
- package/es/utils/cssUtils.js +11 -0
- package/es/utils/datetime/common.js +1 -1
- package/es/utils/dropDownUtils.js +1 -1
- package/es/utils/index.js +1 -1
- package/es/v1/Accordion/Accordion.js +2 -2
- package/es/v1/Accordion/AccordionItem.js +4 -4
- package/es/v1/Accordion/index.js +2 -2
- package/es/v1/Animation/Animation.js +3 -3
- package/es/v1/Animation/utils.js +1 -1
- package/es/v1/AppContainer/AppContainer.js +9 -9
- package/es/v1/Avatar/Avatar.js +5 -5
- package/es/v1/AvatarTeam/AvatarTeam.js +4 -4
- package/es/v1/Button/Button.js +4 -4
- package/es/v1/Button/props/defaultProps.js +1 -1
- package/es/v1/Buttongroup/Buttongroup.js +3 -3
- package/es/v1/Card/Card.js +5 -5
- package/es/v1/Card/index.js +4 -4
- package/es/v1/Card/props/propTypes.js +1 -1
- package/es/v1/CheckBox/CheckBox.js +6 -6
- package/es/v1/DateTime/CalendarView.js +7 -7
- package/es/v1/DateTime/DateTime.js +15 -15
- package/es/v1/DateTime/DateTimePopupFooter.js +5 -5
- package/es/v1/DateTime/DateTimePopupHeader.js +4 -4
- package/es/v1/DateTime/DateWidget.js +17 -17
- package/es/v1/DateTime/DaysRow.js +3 -3
- package/es/v1/DateTime/Time.js +5 -5
- package/es/v1/DateTime/YearView.js +6 -6
- package/es/v1/DateTime/index.js +1 -1
- package/es/v1/DateTime/props/propTypes.js +2 -2
- package/es/v1/DropBox/DropBox.js +9 -9
- package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +6 -6
- package/es/v1/DropBox/props/defaultProps.js +1 -1
- package/es/v1/DropBox/props/propTypes.js +1 -1
- package/es/v1/DropBox/utils/isMobilePopover.js +1 -1
- package/es/v1/DropDown/DropDown.js +4 -4
- package/es/v1/DropDown/DropDownHeading.js +3 -3
- package/es/v1/DropDown/DropDownItem.js +3 -3
- package/es/v1/DropDown/DropDownSearch.js +4 -4
- package/es/v1/DropDown/DropDownSeparator.js +2 -2
- package/es/v1/DropDown/props/propTypes.js +1 -1
- package/es/v1/Heading/Heading.js +8 -5
- package/es/v1/Heading/props/propTypes.js +2 -1
- package/es/v1/Label/Label.js +4 -4
- package/es/v1/Layout/Box.js +4 -4
- package/es/v1/Layout/Container.js +4 -4
- package/es/v1/Layout/index.js +2 -2
- package/es/v1/ListItem/ListContainer.js +6 -6
- package/es/v1/ListItem/ListItem.js +5 -5
- package/es/v1/ListItem/ListItemWithAvatar.js +12 -16
- package/es/v1/ListItem/ListItemWithCheckBox.js +6 -6
- package/es/v1/ListItem/ListItemWithIcon.js +5 -5
- package/es/v1/ListItem/ListItemWithRadio.js +6 -6
- package/es/v1/ListItem/index.js +6 -6
- package/es/v1/ListItem/props/defaultProps.js +0 -1
- package/es/v1/ListItem/props/propTypes.js +1 -4
- package/es/v1/Modal/Modal.js +3 -3
- package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
- package/es/v1/MultiSelect/AdvancedMultiSelect.js +17 -17
- package/es/v1/MultiSelect/EmptyState.js +3 -3
- package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +5 -5
- package/es/v1/MultiSelect/MultiSelect.js +19 -19
- package/es/v1/MultiSelect/MultiSelectHeader.js +4 -4
- package/es/v1/MultiSelect/MultiSelectWithAvatar.js +16 -16
- package/es/v1/MultiSelect/SelectedOptions.js +5 -5
- package/es/v1/MultiSelect/Suggestions.js +6 -8
- package/es/v1/MultiSelect/index.js +4 -4
- package/es/v1/MultiSelect/props/defaultProps.js +1 -1
- package/es/v1/MultiSelect/props/propTypes.js +0 -1
- package/es/v1/PopOver/PopOver.js +6 -6
- package/es/v1/Popup/Popup.js +3 -3
- package/es/v1/Radio/Radio.js +5 -5
- package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
- package/es/v1/ResponsiveDropBox/props/propTypes.js +2 -2
- package/es/v1/Ribbon/Ribbon.js +3 -3
- package/es/v1/Ribbon/props/propTypes.js +1 -1
- package/es/v1/RippleEffect/RippleEffect.js +4 -4
- package/es/v1/Select/GroupSelect.js +16 -16
- package/es/v1/Select/Select.js +15 -15
- package/es/v1/Select/SelectWithAvatar.js +17 -17
- package/es/v1/Select/SelectWithIcon.js +13 -13
- package/es/v1/Select/index.js +4 -4
- package/es/v1/Select/props/defaultProps.js +1 -1
- package/es/v1/Stencils/Stencils.js +3 -3
- package/es/v1/Switch/Switch.js +5 -5
- package/es/v1/Tab/Tab.js +5 -5
- package/es/v1/Tab/TabContent.js +4 -4
- package/es/v1/Tab/TabContentWrapper.js +3 -3
- package/es/v1/Tab/TabWrapper.js +3 -3
- package/es/v1/Tab/Tabs.js +18 -25
- package/es/v1/Tab/index.js +5 -5
- package/es/v1/Tab/props/propTypes.js +2 -2
- package/es/v1/Tab/v1Tabs.module.css +2 -2
- package/es/v1/Tag/Tag.js +9 -11
- package/es/v1/Tag/props/propTypes.js +1 -2
- package/es/v1/TextBox/TextBox.js +3 -3
- package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -6
- package/es/v1/TextBoxIcon/props/propTypes.js +1 -1
- package/es/v1/Textarea/Textarea.js +3 -3
- package/es/v1/Tooltip/Tooltip.js +17 -7
- package/es/v1/Typography/Typography.js +4 -4
- package/es/v1/Typography/css/cssJSLogic.js +1 -1
- package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
- package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
- package/es/v1/semantic/Button/Button.js +3 -3
- package/es/v1/semantic/index.js +1 -1
- package/lib/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +1 -1
- package/lib/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +1 -1
- package/lib/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +1 -1
- package/lib/Heading/Heading.js +7 -3
- package/lib/Heading/__tests__/Heading.spec.js +9 -0
- package/lib/Heading/__tests__/__snapshots__/Heading.spec.js.snap +55 -1
- package/lib/Heading/props/propTypes.js +2 -1
- package/lib/ListItem/ListItemWithAvatar.js +5 -9
- package/lib/ListItem/props/defaultProps.js +0 -1
- package/lib/ListItem/props/propTypes.js +2 -4
- package/lib/MultiSelect/Suggestions.js +0 -2
- package/lib/MultiSelect/props/propTypes.js +0 -1
- package/lib/Responsive/CustomResponsive.js +3 -10
- package/lib/Responsive/props/propTypes.js +1 -2
- package/lib/Tab/Tabs.js +57 -63
- package/lib/Tab/Tabs.module.css +2 -2
- package/lib/Tab/props/propTypes.js +2 -2
- package/lib/Tag/Tag.js +2 -4
- package/lib/Tag/props/propTypes.js +1 -2
- package/lib/Textarea/Textarea.js +188 -43
- package/lib/Textarea/Textarea.module.css +55 -4
- package/lib/Textarea/TextareaOne.js +422 -0
- package/lib/Textarea/props/propTypes.js +4 -1
- package/lib/Textarea/utils/calculateNodeHeight.js +69 -0
- package/lib/Textarea/utils/calculateNodeHeightOne.js +74 -0
- package/lib/Textarea/utils/debounce.js +33 -0
- package/lib/Textarea/utils/getSizingData.js +37 -0
- package/lib/Textarea/utils/ownerDocument.js +13 -0
- package/lib/Textarea/utils/ownerWindow.js +18 -0
- package/lib/Textarea/utils/updateState.js +36 -0
- package/lib/Tooltip/Tooltip.js +15 -4
- package/lib/Tooltip/Tooltip.module.css +0 -8
- package/lib/common/common.module.css +24 -0
- package/lib/utils/cssUtils.js +22 -0
- package/lib/v1/Card/props/propTypes.js +1 -1
- package/lib/v1/DateTime/props/propTypes.js +1 -1
- package/lib/v1/Heading/Heading.js +7 -3
- package/lib/v1/Heading/props/propTypes.js +2 -1
- package/lib/v1/ListItem/ListItemWithAvatar.js +5 -9
- package/lib/v1/ListItem/props/defaultProps.js +0 -1
- package/lib/v1/ListItem/props/propTypes.js +2 -4
- package/lib/v1/MultiSelect/Suggestions.js +0 -2
- package/lib/v1/MultiSelect/props/propTypes.js +0 -1
- package/lib/v1/ResponsiveDropBox/props/propTypes.js +1 -1
- package/lib/v1/Ribbon/props/propTypes.js +1 -1
- package/lib/v1/Tab/Tabs.js +6 -13
- package/lib/v1/Tab/props/propTypes.js +2 -2
- package/lib/v1/Tab/v1Tabs.module.css +2 -2
- package/lib/v1/Tag/Tag.js +2 -4
- package/lib/v1/Tag/props/propTypes.js +1 -2
- package/lib/v1/Tooltip/Tooltip.js +15 -4
- package/package.json +8 -8
- package/result.json +1 -1
package/es/Textarea/Textarea.js
CHANGED
|
@@ -1,23 +1,33 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import React from "react";
|
|
2
|
+
import ReactDOM from "react-dom";
|
|
3
|
+
import { defaultProps } from "./props/defaultProps";
|
|
4
|
+
import { propTypes } from "./props/propTypes";
|
|
5
|
+
import debounce from "./utils/debounce";
|
|
6
|
+
import calculateNodeHeight from "./utils/calculateNodeHeight";
|
|
7
|
+
import ownerWindow from "./utils/ownerWindow";
|
|
8
|
+
import updateState from "./utils/updateState";
|
|
4
9
|
/* eslint css-modules/no-unused-class: [2, { markAsUsed: ['resizeX', 'resizeY', 'noresize', 'resizeboth', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'default', 'primary'] }] */
|
|
5
10
|
|
|
6
|
-
import style from
|
|
11
|
+
import style from "./Textarea.module.css";
|
|
7
12
|
export default class Textarea extends React.Component {
|
|
8
13
|
constructor(props) {
|
|
9
14
|
super(props);
|
|
10
|
-
this.
|
|
11
|
-
this.
|
|
15
|
+
this.hiddenTextareaRef = /*#__PURE__*/React.createRef();
|
|
16
|
+
this.rendersRef = /*#__PURE__*/React.createRef();
|
|
17
|
+
this.sizingData = /*#__PURE__*/React.createRef(null);
|
|
18
|
+
this.rAF = null;
|
|
19
|
+
this.resizeObserver = null;
|
|
20
|
+
this.debounceHandleResize = null;
|
|
12
21
|
this.onBlur = this.onBlur.bind(this);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
this.onKeyDown = this.onKeyDown.bind(this);
|
|
23
|
+
this.inputRef = this.inputRef.bind(this);
|
|
24
|
+
this.isEmpty = this.isEmpty.bind(this);
|
|
25
|
+
this.syncHeight = this.syncHeight.bind(this);
|
|
26
|
+
this.onChange = this.onChange.bind(this);
|
|
27
|
+
this.handleResize = this.handleResize.bind(this);
|
|
28
|
+
this.rAFHandleResize = this.rAFHandleResize.bind(this);
|
|
29
|
+
this.mountingPhase = this.mountingPhase.bind(this);
|
|
30
|
+
this.unMountingPhase = this.unMountingPhase.bind(this);
|
|
21
31
|
}
|
|
22
32
|
|
|
23
33
|
onBlur(e) {
|
|
@@ -35,6 +45,115 @@ export default class Textarea extends React.Component {
|
|
|
35
45
|
onKeyDown && onKeyDown(e);
|
|
36
46
|
}
|
|
37
47
|
|
|
48
|
+
inputRef(e) {
|
|
49
|
+
let {
|
|
50
|
+
getRef
|
|
51
|
+
} = this.props;
|
|
52
|
+
this.textareaRef = e;
|
|
53
|
+
getRef && getRef(e);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
isEmpty(obj) {
|
|
57
|
+
return obj === undefined || obj === null || Object.keys(obj).length === 0 || obj.height === 0 && !obj.overflow;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
syncHeight() {
|
|
61
|
+
const {
|
|
62
|
+
minRows,
|
|
63
|
+
maxRows
|
|
64
|
+
} = this.props;
|
|
65
|
+
const {
|
|
66
|
+
height,
|
|
67
|
+
overflow
|
|
68
|
+
} = calculateNodeHeight({
|
|
69
|
+
minRows: minRows,
|
|
70
|
+
maxRows: maxRows,
|
|
71
|
+
textareaEle: this.textareaRef,
|
|
72
|
+
hiddenTextareaEle: this.hiddenTextareaRef.current
|
|
73
|
+
});
|
|
74
|
+
const newState = {
|
|
75
|
+
height: height,
|
|
76
|
+
overflow: overflow
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
if (this.isEmpty(newState)) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
this.sizingData.current = updateState(this.sizingData.current, newState, this.rendersRef); // this.textareaRef.style.setProperty('height',`${this.sizingData.current.height}px`);
|
|
84
|
+
|
|
85
|
+
this.textareaRef.style.height = `${this.sizingData.current.height}px`;
|
|
86
|
+
this.textareaRef.style.overflowY = `${this.sizingData.current.overflow ? 'hidden' : 'auto'}`;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
onChange(e) {
|
|
90
|
+
e && e.preventDefault();
|
|
91
|
+
let {
|
|
92
|
+
onChange
|
|
93
|
+
} = this.props;
|
|
94
|
+
this.rendersRef.current = 0;
|
|
95
|
+
onChange && onChange(e.target.value, e);
|
|
96
|
+
requestAnimationFrame(() => {
|
|
97
|
+
this.syncHeight();
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
handleResize() {
|
|
102
|
+
this.rendersRef.current = 0;
|
|
103
|
+
this.syncHeight();
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
rAFHandleResize() {
|
|
107
|
+
cancelAnimationFrame(this.rAF);
|
|
108
|
+
this.rAF = requestAnimationFrame(() => {
|
|
109
|
+
this.handleResize();
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
mountingPhase() {
|
|
114
|
+
const input = this.textareaRef;
|
|
115
|
+
const containerWindow = ownerWindow(input);
|
|
116
|
+
this.debounceHandleResize = debounce(this.handleResize);
|
|
117
|
+
containerWindow.addEventListener("resize", this.debounceHandleResize);
|
|
118
|
+
|
|
119
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
120
|
+
this.resizeObserver = new ResizeObserver(this.rAFHandleResize);
|
|
121
|
+
this.resizeObserver.observe(input);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
unMountingPhase() {
|
|
126
|
+
const input = this.textareaRef;
|
|
127
|
+
const containerWindow = ownerWindow(input);
|
|
128
|
+
this.debounceHandleResize.clear();
|
|
129
|
+
cancelAnimationFrame(this.rAF);
|
|
130
|
+
containerWindow.removeEventListener("resize", this.debounceHandleResize);
|
|
131
|
+
|
|
132
|
+
if (this.resizeObserver) {
|
|
133
|
+
this.resizeObserver.disconnect();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
componentDidMount() {
|
|
138
|
+
this.sizingData.current = {
|
|
139
|
+
height: 0,
|
|
140
|
+
overflow: false
|
|
141
|
+
};
|
|
142
|
+
this.mountingPhase();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
componentWillUnmount() {
|
|
146
|
+
this.sizingData.current = null;
|
|
147
|
+
this.unMountingPhase();
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
componentDidUpdate(prevProps) {
|
|
151
|
+
if (prevProps.text !== this.props.text) {
|
|
152
|
+
this.rendersRef.current = 0;
|
|
153
|
+
this.syncHeight();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
38
157
|
render() {
|
|
39
158
|
let {
|
|
40
159
|
size,
|
|
@@ -58,37 +177,38 @@ export default class Textarea extends React.Component {
|
|
|
58
177
|
autoFocus,
|
|
59
178
|
htmlId,
|
|
60
179
|
a11y,
|
|
61
|
-
customClass
|
|
180
|
+
customClass,
|
|
181
|
+
minRows = 3
|
|
62
182
|
} = this.props;
|
|
63
183
|
let {
|
|
64
184
|
ariaLabel,
|
|
65
185
|
ariaLabelledby
|
|
66
186
|
} = a11y;
|
|
67
187
|
let resizes = {
|
|
68
|
-
horizontal:
|
|
69
|
-
vertical:
|
|
70
|
-
both:
|
|
71
|
-
none:
|
|
188
|
+
horizontal: "resizeX",
|
|
189
|
+
vertical: "resizeY",
|
|
190
|
+
both: "resizeboth",
|
|
191
|
+
none: "noresize"
|
|
72
192
|
};
|
|
73
193
|
let options = {};
|
|
74
194
|
|
|
75
195
|
if (isReadOnly) {
|
|
76
|
-
options.readOnly =
|
|
196
|
+
options.readOnly = "readOnly";
|
|
77
197
|
}
|
|
78
198
|
|
|
79
199
|
if (isDisabled) {
|
|
80
|
-
options.disabled =
|
|
200
|
+
options.disabled = "disabled";
|
|
81
201
|
}
|
|
82
202
|
|
|
83
203
|
if (autoFocus) {
|
|
84
204
|
options.autoFocus = true;
|
|
85
205
|
}
|
|
86
206
|
|
|
87
|
-
let classList = needAppearance ? `${style.container} ${style[size]} ${style[variant]} ${needBorder ? style.needBorder : style.noBorder} ${resize ? style[resizes[resize]] : style[resizes.none]} ${animated ? `${style[`${size}animated`]}` :
|
|
88
|
-
return /*#__PURE__*/React.createElement("textarea", {
|
|
207
|
+
let classList = needAppearance ? `${style.container} ${style[size]} ${style[variant]} ${needBorder ? style.needBorder : style.noBorder} ${resize ? style[resizes[resize]] : style[resizes.none]} ${animated ? `${style[`${size}animated`]}` : ""} ${isDisabled && !needEffect || isReadOnly && !needEffect ? "" : style.effect}` : `${style.basic}`;
|
|
208
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("textarea", {
|
|
89
209
|
"aria-label": ariaLabel,
|
|
90
210
|
"aria-labelledby": ariaLabelledby,
|
|
91
|
-
className: `${customClass} ${isReadOnly && needReadOnlyStyle ? style.readonly :
|
|
211
|
+
className: `${customClass} ${isReadOnly && needReadOnlyStyle ? style.readonly : ""} ${classList} ${style[`borderColor_${borderColor}`]}`,
|
|
92
212
|
placeholder: placeHolder,
|
|
93
213
|
...options,
|
|
94
214
|
"data-id": dataId,
|
|
@@ -98,11 +218,18 @@ export default class Textarea extends React.Component {
|
|
|
98
218
|
onKeyDown: this.onKeyDown,
|
|
99
219
|
onFocus: onFocus,
|
|
100
220
|
onBlur: this.onBlur,
|
|
101
|
-
ref:
|
|
221
|
+
ref: this.inputRef,
|
|
102
222
|
value: text,
|
|
103
223
|
id: htmlId,
|
|
104
|
-
"data-selector-id": dataSelectorId
|
|
105
|
-
|
|
224
|
+
"data-selector-id": dataSelectorId,
|
|
225
|
+
rows: minRows
|
|
226
|
+
}), /*#__PURE__*/React.createElement("textarea", {
|
|
227
|
+
"aria-hidden": true,
|
|
228
|
+
readOnly: true,
|
|
229
|
+
ref: this.hiddenTextareaRef,
|
|
230
|
+
tabIndex: -1,
|
|
231
|
+
className: `${customClass} ${isReadOnly && needReadOnlyStyle ? style.readonly : ""} ${classList} ${style[`borderColor_${borderColor}`]} ${style.forceHiddenStyle}`
|
|
232
|
+
}));
|
|
106
233
|
}
|
|
107
234
|
|
|
108
235
|
}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
/* textarea placeholder default variable */
|
|
13
13
|
--textarea_placeholder_text_color: var(--zdt_textarea_placeholder_text);
|
|
14
14
|
}
|
|
15
|
+
|
|
15
16
|
.basic {
|
|
16
17
|
composes: varClass;
|
|
17
18
|
-webkit-appearance: none;
|
|
@@ -22,119 +23,169 @@
|
|
|
22
23
|
color: var(--textarea_text_color);
|
|
23
24
|
cursor: var(--textarea_cursor);
|
|
24
25
|
}
|
|
26
|
+
|
|
25
27
|
.basic, .noBorder {
|
|
26
28
|
border-width: var(--textarea_border_width);
|
|
27
29
|
}
|
|
30
|
+
|
|
28
31
|
.basic::placeholder {
|
|
29
32
|
color: var(--textarea_placeholder_text_color);
|
|
30
33
|
}
|
|
34
|
+
|
|
31
35
|
.basic::-webkit-placeholder {
|
|
32
36
|
color: var(--textarea_placeholder_text_color);
|
|
33
37
|
}
|
|
38
|
+
|
|
34
39
|
.basic::-moz-placeholder {
|
|
35
40
|
color: var(--textarea_placeholder_text_color);
|
|
36
41
|
}
|
|
42
|
+
|
|
37
43
|
.basic::-ms-placeholder {
|
|
38
44
|
color: var(--textarea_placeholder_text_color);
|
|
39
45
|
}
|
|
46
|
+
|
|
40
47
|
.basic:disabled {
|
|
41
48
|
--textarea_cursor: not-allowed;
|
|
42
49
|
--textarea_text_color: var(--zdt_textarea_default_text);
|
|
43
50
|
}
|
|
51
|
+
|
|
44
52
|
.readonly {
|
|
45
53
|
--textarea_cursor: not-allowed;
|
|
46
54
|
}
|
|
55
|
+
|
|
47
56
|
.resizeX {
|
|
48
57
|
composes: resizeX from '../common/common.module.css';
|
|
49
58
|
}
|
|
59
|
+
|
|
50
60
|
.resizeY {
|
|
51
61
|
composes: resizeY from '../common/common.module.css';
|
|
52
62
|
}
|
|
63
|
+
|
|
53
64
|
.noresize {
|
|
54
65
|
composes: resizenone from '../common/common.module.css';
|
|
55
66
|
}
|
|
67
|
+
|
|
56
68
|
.resizeboth {
|
|
57
69
|
composes: resizeboth from '../common/common.module.css';
|
|
58
70
|
}
|
|
71
|
+
|
|
59
72
|
/* css:lineheight-validation:ignore */
|
|
60
73
|
.container {
|
|
61
74
|
composes: basic;
|
|
62
|
-
transition:
|
|
75
|
+
transition: .3s;
|
|
76
|
+
/* transition: border var(--zd_transition2) linear 0s,
|
|
63
77
|
height var(--zd_transition2) linear 0s;
|
|
64
|
-
-
|
|
78
|
+
-webkit-transition: border var(--zd_transition2) linear 0s,
|
|
65
79
|
height var(--zd_transition2) linear 0s;
|
|
80
|
+
-moz-transition: border var(--zd_transition2) linear 0s,
|
|
81
|
+
height var(--zd_transition2) linear 0s; */
|
|
66
82
|
width: 100% ;
|
|
67
83
|
max-width: 100% ;
|
|
68
84
|
min-width: var(--zd_size100) ;
|
|
69
85
|
font-size: var(--textarea_font_size);
|
|
70
86
|
line-height: var(--textarea_line_height);
|
|
71
87
|
height: var(--textarea_height);
|
|
72
|
-
-webkit-transition: border var(--zd_transition2) linear 0s,
|
|
73
|
-
height var(--zd_transition2) linear 0s;
|
|
74
88
|
border-style: solid;
|
|
75
89
|
background-color: var(--zdt_textarea_default_bg);
|
|
76
90
|
border-color: var(--textarea_border_color);
|
|
77
91
|
padding: var(--textarea_padding);
|
|
78
92
|
}
|
|
93
|
+
|
|
79
94
|
.needBorder {
|
|
80
95
|
--textarea_border_width: 0 0 1px 0;
|
|
81
96
|
}
|
|
97
|
+
|
|
82
98
|
.borderColor_transparent {
|
|
83
99
|
--textarea_border_color: var(--zdt_textarea_transparent_border);
|
|
84
100
|
}
|
|
101
|
+
|
|
85
102
|
.borderColor_default {
|
|
86
103
|
--textarea_border_color: var(--zdt_textarea_default_border);
|
|
87
104
|
}
|
|
105
|
+
|
|
88
106
|
.effect:hover {
|
|
89
107
|
--textarea_border_color: var(--zdt_textarea_hover_border);
|
|
90
108
|
}
|
|
109
|
+
|
|
91
110
|
.effect:focus {
|
|
92
111
|
--textarea_border_color: var(--zdt_textarea_focus_border);
|
|
93
112
|
}
|
|
113
|
+
|
|
94
114
|
.xsmall,
|
|
95
115
|
.xmedium {
|
|
96
116
|
vertical-align: middle;
|
|
97
117
|
}
|
|
118
|
+
|
|
98
119
|
.xsmall {
|
|
99
120
|
--textarea_font_size: var(--zd_font_size14);
|
|
100
121
|
--textarea_padding: var(--zd_size4) 0 var(--zd_size2);
|
|
101
122
|
--textarea_height: var(--zd_size28);
|
|
102
123
|
--textarea_line_height: 1.3572;
|
|
103
124
|
}
|
|
125
|
+
|
|
104
126
|
.xmedium {
|
|
105
127
|
--textarea_font_size: var(--zd_font_size13);
|
|
106
128
|
--textarea_padding: var(--zd_size4) 0 var(--zd_size2);
|
|
107
129
|
--textarea_height: var(--zd_size25);
|
|
108
130
|
--textarea_line_height: 1.3077;
|
|
109
131
|
}
|
|
132
|
+
|
|
110
133
|
.small {
|
|
111
134
|
--textarea_height: var(--zd_size30);
|
|
112
135
|
--textarea_padding: var(--zd_size2) 0;
|
|
113
136
|
}
|
|
137
|
+
|
|
114
138
|
.smallanimated:focus,
|
|
115
139
|
.xsmallanimated:focus,
|
|
116
140
|
.xmediumanimated:focus {
|
|
117
141
|
--textarea_height: var(--zd_size70);
|
|
118
142
|
}
|
|
143
|
+
|
|
119
144
|
.medium {
|
|
120
145
|
--textarea_height: var(--zd_size88);
|
|
121
146
|
--textarea_padding: var(--zd_size2);
|
|
122
147
|
}
|
|
148
|
+
|
|
123
149
|
.large {
|
|
124
150
|
--textarea_height: var(--zd_size45);
|
|
125
151
|
--textarea_padding: var(--zd_size2);
|
|
126
152
|
}
|
|
153
|
+
|
|
127
154
|
.largeanimated:focus {
|
|
128
155
|
--textarea_height: var(--zd_size220);
|
|
129
156
|
}
|
|
157
|
+
|
|
130
158
|
.xlarge {
|
|
131
159
|
--textarea_height: var(--zd_size184);
|
|
132
160
|
}
|
|
161
|
+
|
|
133
162
|
.default {
|
|
134
163
|
font-family: var(--zd_regular);
|
|
135
164
|
--textarea_text_color: var(--zdt_textarea_black_text);
|
|
136
165
|
}
|
|
166
|
+
|
|
137
167
|
.primary {
|
|
138
168
|
composes: semibold from '../common/common.module.css';
|
|
139
169
|
--textarea_text_color: var(--zdt_textarea_black_text);
|
|
140
170
|
}
|
|
171
|
+
|
|
172
|
+
.forceHiddenStyle {
|
|
173
|
+
/* Visibility needed to hide the extra text area on iPads */
|
|
174
|
+
visibility: hidden;
|
|
175
|
+
/* Remove from the content flow */
|
|
176
|
+
position: absolute;
|
|
177
|
+
/* Ignore the scrollbar width */
|
|
178
|
+
overflow: hidden;
|
|
179
|
+
height: 0 ;
|
|
180
|
+
top: 0 ;
|
|
181
|
+
/* Create a new layer, increase the isolation of the computed values */
|
|
182
|
+
transform: translateZ(0);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
[dir=ltr] .forceHiddenStyle {
|
|
186
|
+
left: 0 ;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
[dir=rtl] .forceHiddenStyle {
|
|
190
|
+
right: 0 ;
|
|
191
|
+
}
|