@zohodesk/components 1.2.23 → 1.2.24
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/README.md +4 -0
- package/es/Accordion/Accordion.js +7 -3
- package/es/Accordion/AccordionItem.js +4 -2
- package/es/Animation/Animation.js +7 -89
- package/es/Animation/utils.js +83 -0
- package/es/AppContainer/AppContainer.js +14 -3
- package/es/AppContainer/AppContainer.module.css +2 -2
- package/es/Avatar/Avatar.js +23 -11
- package/es/Avatar/Avatar.module.css +18 -18
- package/es/AvatarTeam/AvatarTeam.js +3 -3
- package/es/AvatarTeam/AvatarTeam.module.css +35 -35
- package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -2
- package/es/Button/Button.js +4 -3
- package/es/Button/css/Button.module.css +70 -70
- package/es/Buttongroup/Buttongroup.js +3 -3
- package/es/Buttongroup/Buttongroup.module.css +13 -15
- package/es/Card/Card.js +21 -10
- package/es/CheckBox/CheckBox.js +5 -3
- package/es/CheckBox/CheckBox.module.css +15 -15
- package/es/DateTime/CalendarView.js +32 -20
- package/es/DateTime/DateTime.js +69 -6
- package/es/DateTime/DateTime.module.css +40 -40
- package/es/DateTime/DateTimePopupFooter.js +4 -1
- package/es/DateTime/DateTimePopupHeader.js +8 -2
- package/es/DateTime/DateWidget.js +98 -35
- package/es/DateTime/DateWidget.module.css +5 -5
- package/es/DateTime/DaysRow.js +4 -1
- package/es/DateTime/Time.js +10 -1
- package/es/DateTime/YearView.js +28 -4
- package/es/DateTime/YearView.module.css +15 -15
- package/es/DateTime/common.js +3 -0
- package/es/DateTime/constants.js +1 -0
- package/es/DateTime/dateFormatUtils/dateFormat.js +65 -30
- package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
- package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
- package/es/DateTime/dateFormatUtils/index.js +31 -1
- package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
- package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
- package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
- package/es/DateTime/objectUtils.js +14 -20
- package/es/DateTime/typeChecker.js +3 -0
- package/es/DateTime/validator.js +58 -6
- package/es/DropBox/DropBox.js +6 -2
- package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
- package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
- package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
- package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
- package/es/DropBox/css/DropBox.module.css +6 -6
- package/es/DropBox/props/defaultProps.js +1 -2
- package/es/DropBox/props/propTypes.js +1 -2
- package/es/DropDown/DropDown.js +7 -1
- package/es/DropDown/DropDown.module.css +2 -2
- package/es/DropDown/DropDownHeading.js +4 -5
- package/es/DropDown/DropDownHeading.module.css +6 -6
- package/es/DropDown/DropDownItem.js +6 -0
- package/es/DropDown/DropDownItem.module.css +12 -12
- package/es/DropDown/DropDownSearch.js +4 -0
- package/es/DropDown/DropDownSearch.module.css +3 -3
- package/es/DropDown/DropDownSeparator.js +1 -0
- package/es/DropDown/DropDownSeparator.module.css +2 -2
- package/es/DropDown/props/propTypes.js +1 -2
- package/es/Heading/Heading.js +2 -3
- package/es/Heading/Heading.module.css +2 -2
- package/es/Label/Label.js +2 -3
- package/es/Label/Label.module.css +5 -5
- package/es/Label/__tests__/Label.spec.js +1 -2
- package/es/Layout/Box.js +15 -2
- package/es/Layout/Container.js +14 -3
- package/es/Layout/Layout.module.css +15 -15
- package/es/Layout/index.js +1 -2
- package/es/Layout/utils.js +1 -0
- package/es/ListItem/ListContainer.js +8 -3
- package/es/ListItem/ListItem.js +9 -3
- package/es/ListItem/ListItem.module.css +27 -38
- package/es/ListItem/ListItemWithAvatar.js +9 -3
- package/es/ListItem/ListItemWithCheckBox.js +7 -2
- package/es/ListItem/ListItemWithIcon.js +8 -3
- package/es/ListItem/ListItemWithRadio.js +7 -3
- package/es/Modal/Modal.js +28 -11
- package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
- package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
- package/es/MultiSelect/EmptyState.js +2 -0
- package/es/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
- package/es/MultiSelect/MultiSelect.js +99 -30
- package/es/MultiSelect/MultiSelect.module.css +31 -31
- package/es/MultiSelect/MultiSelectHeader.js +3 -0
- package/es/MultiSelect/MultiSelectWithAvatar.js +10 -3
- package/es/MultiSelect/SelectedOptions.js +6 -3
- package/es/MultiSelect/SelectedOptions.module.css +5 -5
- package/es/MultiSelect/Suggestions.js +7 -3
- package/es/MultiSelect/props/propTypes.js +2 -2
- package/es/PopOver/PopOver.js +16 -0
- package/es/Popup/Popup.js +77 -24
- package/es/Popup/viewPort.js +16 -4
- package/es/Provider/IdProvider.js +10 -5
- package/es/Provider/LibraryContext.js +6 -4
- package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
- package/es/Provider/ZindexProvider.js +9 -2
- package/es/Radio/Radio.js +3 -0
- package/es/Radio/Radio.module.css +9 -9
- package/es/Responsive/CustomResponsive.js +30 -18
- package/es/Responsive/RefWrapper.js +6 -7
- package/es/Responsive/ResizeComponent.js +35 -25
- package/es/Responsive/ResizeObserver.js +26 -6
- package/es/Responsive/Responsive.js +34 -20
- package/es/Responsive/index.js +1 -3
- package/es/Responsive/sizeObservers.js +28 -7
- package/es/Responsive/utils/index.js +7 -5
- package/es/Responsive/utils/shallowCompare.js +7 -2
- package/es/Responsive/windowResizeObserver.js +7 -0
- package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
- package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
- package/es/ResponsiveDropBox/props/propTypes.js +1 -2
- package/es/Ribbon/Ribbon.js +3 -2
- package/es/Ribbon/Ribbon.module.css +45 -48
- package/es/RippleEffect/RippleEffect.js +1 -3
- package/es/Select/GroupSelect.js +58 -14
- package/es/Select/Select.js +79 -33
- package/es/Select/Select.module.css +23 -23
- package/es/Select/SelectWithAvatar.js +17 -4
- package/es/Select/SelectWithIcon.js +46 -5
- package/es/Select/props/propTypes.js +2 -2
- package/es/Stencils/Stencils.js +3 -3
- package/es/Stencils/Stencils.module.css +11 -11
- package/es/Switch/Switch.js +5 -3
- package/es/Switch/Switch.module.css +23 -23
- package/es/Tab/Tab.js +4 -4
- package/es/Tab/Tab.module.css +14 -14
- package/es/Tab/TabContent.js +1 -0
- package/es/Tab/TabContentWrapper.js +3 -0
- package/es/Tab/TabWrapper.js +5 -2
- package/es/Tab/Tabs.js +54 -7
- package/es/Tab/Tabs.module.css +22 -22
- package/es/Tag/Tag.js +6 -3
- package/es/Tag/Tag.module.css +24 -25
- package/es/TextBox/TextBox.js +16 -3
- package/es/TextBox/TextBox.module.css +9 -9
- package/es/TextBoxIcon/TextBoxIcon.js +9 -2
- package/es/TextBoxIcon/TextBoxIcon.module.css +7 -7
- package/es/TextBoxIcon/props/propTypes.js +1 -2
- package/es/Textarea/Textarea.js +12 -3
- package/es/Textarea/Textarea.module.css +21 -21
- package/es/Tooltip/Tooltip.js +58 -14
- package/es/Tooltip/Tooltip.module.css +5 -5
- package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
- package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
- package/es/common/animation.module.css +8 -8
- package/es/common/avatarsizes.module.css +16 -16
- package/es/common/basicReset.module.css +3 -3
- package/es/common/common.module.css +24 -24
- package/es/common/customscroll.module.css +2 -2
- package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
- package/es/semantic/Button/Button.js +3 -2
- package/es/semantic/Button/semanticButton.module.css +1 -1
- package/es/utils/Common.js +54 -9
- package/es/utils/ContextOptimizer.js +4 -5
- package/es/utils/constructFullName.js +2 -0
- package/es/utils/datetime/common.js +16 -5
- package/es/utils/debounce.js +5 -1
- package/es/utils/dropDownUtils.js +68 -11
- package/es/utils/getInitial.js +4 -0
- package/es/utils/shallowEqual.js +6 -0
- package/es/v1/Accordion/Accordion.js +4 -3
- package/es/v1/Accordion/AccordionItem.js +4 -2
- package/es/v1/Animation/Animation.js +5 -89
- package/es/v1/Animation/utils.js +83 -0
- package/es/v1/AppContainer/AppContainer.js +9 -3
- package/es/v1/Avatar/Avatar.js +18 -6
- package/es/v1/AvatarTeam/AvatarTeam.js +1 -0
- package/es/v1/Button/Button.js +3 -3
- package/es/v1/Card/Card.js +16 -8
- package/es/v1/CheckBox/CheckBox.js +6 -3
- package/es/v1/DateTime/CalendarView.js +32 -20
- package/es/v1/DateTime/DateTime.js +69 -6
- package/es/v1/DateTime/DateTimePopupFooter.js +4 -1
- package/es/v1/DateTime/DateTimePopupHeader.js +8 -2
- package/es/v1/DateTime/DateWidget.js +98 -35
- package/es/v1/DateTime/DaysRow.js +4 -1
- package/es/v1/DateTime/Time.js +10 -1
- package/es/v1/DateTime/YearView.js +28 -4
- package/es/v1/DropBox/DropBox.js +6 -2
- package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +7 -0
- package/es/v1/DropBox/props/defaultProps.js +1 -2
- package/es/v1/DropBox/props/propTypes.js +1 -2
- package/es/v1/DropDown/DropDown.js +3 -0
- package/es/v1/DropDown/DropDownHeading.js +2 -2
- package/es/v1/DropDown/DropDownItem.js +5 -0
- package/es/v1/DropDown/DropDownSearch.js +3 -2
- package/es/v1/DropDown/props/propTypes.js +1 -2
- package/es/v1/Heading/Heading.js +1 -3
- package/es/v1/Layout/Box.js +15 -2
- package/es/v1/Layout/Container.js +14 -3
- package/es/v1/ListItem/ListContainer.js +8 -3
- package/es/v1/ListItem/ListItem.js +10 -3
- package/es/v1/ListItem/ListItemWithAvatar.js +9 -1
- package/es/v1/ListItem/ListItemWithCheckBox.js +8 -2
- package/es/v1/ListItem/ListItemWithIcon.js +9 -3
- package/es/v1/ListItem/ListItemWithRadio.js +8 -3
- package/es/v1/Modal/Modal.js +17 -1
- package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +90 -15
- package/es/v1/MultiSelect/AdvancedMultiSelect.js +32 -9
- package/es/v1/MultiSelect/EmptyState.js +2 -0
- package/es/v1/MultiSelect/MultiSelect.js +100 -31
- package/es/v1/MultiSelect/MultiSelectHeader.js +3 -0
- package/es/v1/MultiSelect/MultiSelectWithAvatar.js +11 -3
- package/es/v1/MultiSelect/SelectedOptions.js +6 -3
- package/es/v1/MultiSelect/Suggestions.js +7 -3
- package/es/v1/MultiSelect/props/propTypes.js +2 -2
- package/es/v1/PopOver/PopOver.js +11 -0
- package/es/v1/Popup/Popup.js +77 -24
- package/es/v1/Provider/IdProvider.js +10 -5
- package/es/v1/Provider/LibraryContext.js +6 -4
- package/es/v1/Provider/NumberGenerator/NumberGenerator.js +21 -7
- package/es/v1/Provider/ZindexProvider.js +9 -2
- package/es/v1/Radio/Radio.js +5 -2
- package/es/v1/Responsive/CustomResponsive.js +30 -18
- package/es/v1/Responsive/RefWrapper.js +6 -7
- package/es/v1/Responsive/ResizeComponent.js +35 -25
- package/es/v1/Responsive/ResizeObserver.js +26 -6
- package/es/v1/Responsive/Responsive.js +34 -20
- package/es/v1/Responsive/index.js +1 -3
- package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +1 -0
- package/es/v1/ResponsiveDropBox/props/propTypes.js +1 -2
- package/es/v1/Select/GroupSelect.js +58 -14
- package/es/v1/Select/Select.js +81 -37
- package/es/v1/Select/SelectWithAvatar.js +17 -4
- package/es/v1/Select/SelectWithIcon.js +46 -5
- package/es/v1/Select/props/propTypes.js +2 -2
- package/es/v1/Stencils/Stencils.js +2 -0
- package/es/v1/Switch/Switch.js +6 -3
- package/es/v1/Tab/Tab.js +3 -3
- package/es/v1/Tab/TabContent.js +1 -0
- package/es/v1/Tab/TabContentWrapper.js +3 -0
- package/es/v1/Tab/TabWrapper.js +5 -2
- package/es/v1/Tab/Tabs.js +54 -9
- package/es/v1/Tab/v1Tab.module.css +14 -14
- package/es/v1/Tab/v1Tabs.module.css +22 -22
- package/es/v1/Tag/Tag.js +5 -1
- package/es/v1/TextBox/TextBox.js +14 -0
- package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -2
- package/es/v1/TextBoxIcon/props/propTypes.js +1 -2
- package/es/v1/Textarea/Textarea.js +10 -3
- package/es/v1/Tooltip/Tooltip.js +58 -14
- package/es/v1/Typography/Typography.js +2 -0
- package/es/v1/Typography/css/Typography.module.css +31 -31
- package/es/v1/Typography/css/cssJSLogic.js +3 -0
- package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +1 -2
- package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -4
- package/es/v1/semantic/Button/Button.js +1 -2
- package/lib/Accordion/Accordion.js +42 -18
- package/lib/Accordion/AccordionItem.js +40 -18
- package/lib/Accordion/index.js +3 -0
- package/lib/Accordion/props/propTypes.js +3 -0
- package/lib/Animation/Animation.js +42 -104
- package/lib/Animation/props/propTypes.js +3 -0
- package/lib/Animation/utils.js +94 -0
- package/lib/AppContainer/AppContainer.js +58 -20
- package/lib/AppContainer/AppContainer.module.css +2 -2
- package/lib/AppContainer/props/propTypes.js +3 -0
- package/lib/Avatar/Avatar.js +78 -38
- package/lib/Avatar/Avatar.module.css +18 -18
- package/lib/Avatar/__tests__/Avatar.spec.js +95 -71
- package/lib/Avatar/props/propTypes.js +3 -0
- package/lib/AvatarTeam/AvatarTeam.js +52 -30
- package/lib/AvatarTeam/AvatarTeam.module.css +35 -35
- package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +77 -61
- package/lib/AvatarTeam/props/propTypes.js +3 -0
- package/lib/Button/Button.js +33 -22
- package/lib/Button/__tests__/Button.spec.js +65 -48
- package/lib/Button/css/Button.module.css +70 -70
- package/lib/Button/css/cssJSLogic.js +18 -17
- package/lib/Button/index.js +3 -0
- package/lib/Button/props/defaultProps.js +2 -0
- package/lib/Button/props/propTypes.js +3 -0
- package/lib/Buttongroup/Buttongroup.js +32 -12
- package/lib/Buttongroup/Buttongroup.module.css +13 -15
- package/lib/Buttongroup/__tests__/Buttongroup.spec.js +18 -10
- package/lib/Buttongroup/props/propTypes.js +3 -0
- package/lib/Card/Card.js +102 -46
- package/lib/Card/index.js +4 -0
- package/lib/Card/props/propTypes.js +3 -0
- package/lib/CheckBox/CheckBox.js +71 -47
- package/lib/CheckBox/CheckBox.module.css +15 -15
- package/lib/CheckBox/props/propTypes.js +3 -0
- package/lib/DateTime/CalendarView.js +82 -42
- package/lib/DateTime/DateTime.js +244 -156
- package/lib/DateTime/DateTime.module.css +40 -40
- package/lib/DateTime/DateTimePopupFooter.js +33 -8
- package/lib/DateTime/DateTimePopupHeader.js +49 -17
- package/lib/DateTime/DateWidget.js +350 -249
- package/lib/DateTime/DateWidget.module.css +5 -5
- package/lib/DateTime/DaysRow.js +28 -5
- package/lib/DateTime/Time.js +75 -32
- package/lib/DateTime/YearView.js +76 -27
- package/lib/DateTime/YearView.module.css +15 -15
- package/lib/DateTime/common.js +6 -0
- package/lib/DateTime/constants.js +1 -0
- package/lib/DateTime/dateFormatUtils/dateFormat.js +187 -122
- package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
- package/lib/DateTime/dateFormatUtils/dayChange.js +15 -7
- package/lib/DateTime/dateFormatUtils/index.js +73 -16
- package/lib/DateTime/dateFormatUtils/monthChange.js +20 -9
- package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
- package/lib/DateTime/dateFormatUtils/yearChange.js +23 -11
- package/lib/DateTime/index.js +2 -0
- package/lib/DateTime/objectUtils.js +24 -20
- package/lib/DateTime/props/propTypes.js +11 -1
- package/lib/DateTime/typeChecker.js +4 -0
- package/lib/DateTime/validator.js +73 -10
- package/lib/DropBox/DropBox.js +45 -21
- package/lib/DropBox/DropBoxElement/DropBoxElement.js +59 -38
- package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
- package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +42 -34
- package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
- package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
- package/lib/DropBox/css/DropBox.module.css +6 -6
- package/lib/DropBox/css/cssJSLogic.js +3 -1
- package/lib/DropBox/props/defaultProps.js +8 -4
- package/lib/DropBox/props/propTypes.js +10 -4
- package/lib/DropDown/DropDown.js +51 -5
- package/lib/DropDown/DropDown.module.css +2 -2
- package/lib/DropDown/DropDownHeading.js +39 -20
- package/lib/DropDown/DropDownHeading.module.css +6 -6
- package/lib/DropDown/DropDownItem.js +42 -20
- package/lib/DropDown/DropDownItem.module.css +12 -12
- package/lib/DropDown/DropDownSearch.js +40 -17
- package/lib/DropDown/DropDownSearch.module.css +3 -3
- package/lib/DropDown/DropDownSeparator.js +24 -4
- package/lib/DropDown/DropDownSeparator.module.css +2 -2
- package/lib/DropDown/index.js +9 -0
- package/lib/DropDown/props/propTypes.js +10 -4
- package/lib/Heading/Heading.js +37 -15
- package/lib/Heading/Heading.module.css +2 -2
- package/lib/Heading/props/propTypes.js +3 -0
- package/lib/Label/Label.js +41 -21
- package/lib/Label/Label.module.css +5 -5
- package/lib/Label/__tests__/Label.spec.js +48 -34
- package/lib/Label/props/propTypes.js +3 -0
- package/lib/Layout/Box.js +35 -15
- package/lib/Layout/Container.js +33 -14
- package/lib/Layout/Layout.module.css +15 -15
- package/lib/Layout/index.js +3 -0
- package/lib/Layout/props/propTypes.js +3 -0
- package/lib/Layout/utils.js +11 -0
- package/lib/ListItem/ListContainer.js +55 -30
- package/lib/ListItem/ListItem.js +74 -45
- package/lib/ListItem/ListItem.module.css +27 -38
- package/lib/ListItem/ListItemWithAvatar.js +80 -48
- package/lib/ListItem/ListItemWithCheckBox.js +70 -40
- package/lib/ListItem/ListItemWithIcon.js +73 -44
- package/lib/ListItem/ListItemWithRadio.js +71 -42
- package/lib/ListItem/index.js +7 -0
- package/lib/ListItem/props/propTypes.js +6 -4
- package/lib/Modal/Modal.js +45 -10
- package/lib/Modal/props/propTypes.js +3 -0
- package/lib/MultiSelect/AdvancedGroupMultiSelect.js +293 -166
- package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
- package/lib/MultiSelect/EmptyState.js +45 -24
- package/lib/MultiSelect/MobileHeader/MobileHeader.js +14 -5
- package/lib/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
- package/lib/MultiSelect/MobileHeader/props/propTypes.js +3 -0
- package/lib/MultiSelect/MultiSelect.js +333 -214
- package/lib/MultiSelect/MultiSelect.module.css +31 -31
- package/lib/MultiSelect/MultiSelectHeader.js +29 -7
- package/lib/MultiSelect/MultiSelectWithAvatar.js +85 -43
- package/lib/MultiSelect/SelectedOptions.js +43 -17
- package/lib/MultiSelect/SelectedOptions.module.css +5 -5
- package/lib/MultiSelect/Suggestions.js +64 -32
- package/lib/MultiSelect/index.js +5 -0
- package/lib/MultiSelect/props/defaultProps.js +2 -0
- package/lib/MultiSelect/props/propTypes.js +14 -4
- package/lib/PopOver/PopOver.js +94 -47
- package/lib/PopOver/index.js +4 -0
- package/lib/PopOver/props/propTypes.js +3 -0
- package/lib/Popup/Popup.js +158 -81
- package/lib/Popup/viewPort.js +28 -14
- package/lib/Provider/AvatarSize.js +4 -0
- package/lib/Provider/Config.js +2 -0
- package/lib/Provider/CssProvider.js +4 -0
- package/lib/Provider/IdProvider.js +17 -6
- package/lib/Provider/LibraryContext.js +35 -15
- package/lib/Provider/LibraryContextInit.js +4 -0
- package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
- package/lib/Provider/ZindexProvider.js +15 -3
- package/lib/Provider/index.js +5 -0
- package/lib/Radio/Radio.js +60 -36
- package/lib/Radio/Radio.module.css +9 -9
- package/lib/Radio/__tests__/Radio.spec.js +134 -103
- package/lib/Radio/props/propTypes.js +3 -0
- package/lib/Responsive/CustomResponsive.js +73 -29
- package/lib/Responsive/RefWrapper.js +17 -11
- package/lib/Responsive/ResizeComponent.js +62 -36
- package/lib/Responsive/ResizeObserver.js +24 -10
- package/lib/Responsive/Responsive.js +80 -30
- package/lib/Responsive/index.js +4 -0
- package/lib/Responsive/props/propTypes.js +3 -0
- package/lib/Responsive/sizeObservers.js +53 -17
- package/lib/Responsive/utils/index.js +11 -3
- package/lib/Responsive/utils/shallowCompare.js +11 -2
- package/lib/Responsive/windowResizeObserver.js +8 -0
- package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
- package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
- package/lib/ResponsiveDropBox/props/propTypes.js +9 -4
- package/lib/Ribbon/Ribbon.js +33 -13
- package/lib/Ribbon/Ribbon.module.css +45 -48
- package/lib/Ribbon/__tests__/Ribbon.spec.js +24 -14
- package/lib/Ribbon/props/propTypes.js +3 -0
- package/lib/RippleEffect/RippleEffect.js +18 -10
- package/lib/RippleEffect/__tests__/RippleEffect.spec.js +34 -22
- package/lib/RippleEffect/props/propTypes.js +3 -0
- package/lib/Select/GroupSelect.js +229 -130
- package/lib/Select/Select.js +295 -211
- package/lib/Select/Select.module.css +23 -23
- package/lib/Select/SelectWithAvatar.js +102 -56
- package/lib/Select/SelectWithIcon.js +131 -76
- package/lib/Select/index.js +5 -0
- package/lib/Select/props/defaultProps.js +5 -4
- package/lib/Select/props/propTypes.js +10 -4
- package/lib/Stencils/Stencils.js +29 -10
- package/lib/Stencils/Stencils.module.css +11 -11
- package/lib/Stencils/__tests__/Stencils.spec.js +22 -13
- package/lib/Stencils/props/propTypes.js +3 -0
- package/lib/Switch/Switch.js +57 -34
- package/lib/Switch/Switch.module.css +23 -23
- package/lib/Switch/__tests__/Switch.spec.js +91 -72
- package/lib/Switch/props/propTypes.js +3 -0
- package/lib/Tab/Tab.js +40 -27
- package/lib/Tab/Tab.module.css +14 -14
- package/lib/Tab/TabContent.js +12 -5
- package/lib/Tab/TabContentWrapper.js +16 -8
- package/lib/Tab/TabWrapper.js +37 -19
- package/lib/Tab/Tabs.js +171 -91
- package/lib/Tab/Tabs.module.css +22 -22
- package/lib/Tab/index.js +6 -0
- package/lib/Tab/props/propTypes.js +3 -0
- package/lib/Tag/Tag.js +72 -43
- package/lib/Tag/Tag.module.css +24 -25
- package/lib/Tag/props/propTypes.js +3 -0
- package/lib/TextBox/TextBox.js +86 -60
- package/lib/TextBox/TextBox.module.css +9 -9
- package/lib/TextBox/props/propTypes.js +6 -4
- package/lib/TextBoxIcon/TextBoxIcon.js +80 -53
- package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -7
- package/lib/TextBoxIcon/props/propTypes.js +9 -4
- package/lib/Textarea/Textarea.js +54 -29
- package/lib/Textarea/Textarea.module.css +21 -21
- package/lib/Textarea/props/propTypes.js +3 -0
- package/lib/Tooltip/Tooltip.js +94 -31
- package/lib/Tooltip/Tooltip.module.css +5 -5
- package/lib/Tooltip/props/propTypes.js +3 -0
- package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
- package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
- package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
- package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
- package/lib/VelocityAnimation/index.js +3 -0
- package/lib/common/animation.module.css +8 -8
- package/lib/common/avatarsizes.module.css +16 -16
- package/lib/common/basicReset.module.css +3 -3
- package/lib/common/common.module.css +24 -24
- package/lib/common/customscroll.module.css +2 -2
- package/lib/css.js +40 -0
- package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
- package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
- package/lib/index.js +58 -0
- package/lib/semantic/Button/Button.js +42 -22
- package/lib/semantic/Button/props/propTypes.js +3 -0
- package/lib/semantic/Button/semanticButton.module.css +1 -1
- package/lib/semantic/index.js +2 -0
- package/lib/utils/Common.js +111 -18
- package/lib/utils/ContextOptimizer.js +16 -10
- package/lib/utils/constructFullName.js +13 -4
- package/lib/utils/datetime/common.js +34 -5
- package/lib/utils/debounce.js +6 -1
- package/lib/utils/dropDownUtils.js +175 -59
- package/lib/utils/dummyFunction.js +2 -0
- package/lib/utils/getHTMLFontSize.js +1 -0
- package/lib/utils/getInitial.js +6 -0
- package/lib/utils/index.js +1 -0
- package/lib/utils/scrollTo.js +2 -0
- package/lib/utils/shallowEqual.js +8 -0
- package/lib/v1/Accordion/Accordion.js +38 -19
- package/lib/v1/Accordion/AccordionItem.js +23 -13
- package/lib/v1/Accordion/index.js +3 -0
- package/lib/v1/Accordion/props/propTypes.js +3 -0
- package/lib/v1/Animation/Animation.js +24 -100
- package/lib/v1/Animation/props/propTypes.js +3 -0
- package/lib/v1/Animation/utils.js +94 -0
- package/lib/v1/AppContainer/AppContainer.js +46 -17
- package/lib/v1/AppContainer/props/propTypes.js +3 -0
- package/lib/v1/Avatar/Avatar.js +68 -32
- package/lib/v1/Avatar/props/propTypes.js +3 -0
- package/lib/v1/AvatarTeam/AvatarTeam.js +32 -24
- package/lib/v1/AvatarTeam/props/propTypes.js +3 -0
- package/lib/v1/Button/Button.js +32 -22
- package/lib/v1/Button/props/defaultProps.js +2 -0
- package/lib/v1/Button/props/propTypes.js +3 -0
- package/lib/v1/Buttongroup/Buttongroup.js +13 -5
- package/lib/v1/Buttongroup/props/propTypes.js +3 -0
- package/lib/v1/Card/Card.js +78 -44
- package/lib/v1/Card/index.js +4 -0
- package/lib/v1/Card/props/propTypes.js +3 -0
- package/lib/v1/CheckBox/CheckBox.js +52 -41
- package/lib/v1/CheckBox/props/propTypes.js +3 -0
- package/lib/v1/DateTime/CalendarView.js +89 -48
- package/lib/v1/DateTime/DateTime.js +246 -158
- package/lib/v1/DateTime/DateTimePopupFooter.js +33 -8
- package/lib/v1/DateTime/DateTimePopupHeader.js +49 -17
- package/lib/v1/DateTime/DateWidget.js +352 -251
- package/lib/v1/DateTime/DaysRow.js +28 -5
- package/lib/v1/DateTime/Time.js +75 -32
- package/lib/v1/DateTime/YearView.js +76 -27
- package/lib/v1/DateTime/index.js +2 -0
- package/lib/v1/DateTime/props/propTypes.js +11 -1
- package/lib/v1/DropBox/DropBox.js +45 -21
- package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +59 -38
- package/lib/v1/DropBox/DropBoxElement/props/propTypes.js +3 -0
- package/lib/v1/DropBox/props/defaultProps.js +8 -4
- package/lib/v1/DropBox/props/propTypes.js +10 -4
- package/lib/v1/DropDown/DropDown.js +23 -3
- package/lib/v1/DropDown/DropDownHeading.js +20 -13
- package/lib/v1/DropDown/DropDownItem.js +26 -11
- package/lib/v1/DropDown/DropDownSearch.js +28 -16
- package/lib/v1/DropDown/DropDownSeparator.js +7 -1
- package/lib/v1/DropDown/props/propTypes.js +10 -4
- package/lib/v1/Heading/Heading.js +19 -14
- package/lib/v1/Heading/props/propTypes.js +3 -0
- package/lib/v1/Label/Label.js +22 -14
- package/lib/v1/Label/props/propTypes.js +3 -0
- package/lib/v1/Layout/Box.js +35 -15
- package/lib/v1/Layout/Container.js +33 -14
- package/lib/v1/Layout/index.js +3 -0
- package/lib/v1/Layout/props/propTypes.js +3 -0
- package/lib/v1/ListItem/ListContainer.js +55 -30
- package/lib/v1/ListItem/ListItem.js +53 -38
- package/lib/v1/ListItem/ListItemWithAvatar.js +62 -39
- package/lib/v1/ListItem/ListItemWithCheckBox.js +49 -34
- package/lib/v1/ListItem/ListItemWithIcon.js +52 -37
- package/lib/v1/ListItem/ListItemWithRadio.js +49 -35
- package/lib/v1/ListItem/index.js +7 -0
- package/lib/v1/ListItem/props/propTypes.js +6 -4
- package/lib/v1/Modal/Modal.js +46 -9
- package/lib/v1/Modal/props/propTypes.js +3 -0
- package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +294 -168
- package/lib/v1/MultiSelect/AdvancedMultiSelect.js +202 -125
- package/lib/v1/MultiSelect/EmptyState.js +45 -24
- package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +14 -5
- package/lib/v1/MultiSelect/MobileHeader/props/propTypes.js +3 -0
- package/lib/v1/MultiSelect/MultiSelect.js +335 -216
- package/lib/v1/MultiSelect/MultiSelectHeader.js +29 -7
- package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +86 -43
- package/lib/v1/MultiSelect/SelectedOptions.js +43 -17
- package/lib/v1/MultiSelect/Suggestions.js +64 -32
- package/lib/v1/MultiSelect/index.js +5 -0
- package/lib/v1/MultiSelect/props/defaultProps.js +2 -0
- package/lib/v1/MultiSelect/props/propTypes.js +14 -4
- package/lib/v1/PopOver/PopOver.js +71 -40
- package/lib/v1/PopOver/props/propTypes.js +3 -0
- package/lib/v1/Popup/Popup.js +158 -81
- package/lib/v1/Provider/AvatarSize.js +4 -0
- package/lib/v1/Provider/Config.js +2 -0
- package/lib/v1/Provider/CssProvider.js +4 -0
- package/lib/v1/Provider/IdProvider.js +17 -6
- package/lib/v1/Provider/LibraryContext.js +35 -15
- package/lib/v1/Provider/LibraryContextInit.js +4 -0
- package/lib/v1/Provider/NumberGenerator/NumberGenerator.js +44 -15
- package/lib/v1/Provider/ZindexProvider.js +15 -3
- package/lib/v1/Provider/index.js +5 -0
- package/lib/v1/Radio/Radio.js +42 -32
- package/lib/v1/Radio/props/propTypes.js +3 -0
- package/lib/v1/Responsive/CustomResponsive.js +73 -29
- package/lib/v1/Responsive/RefWrapper.js +17 -11
- package/lib/v1/Responsive/ResizeComponent.js +62 -36
- package/lib/v1/Responsive/ResizeObserver.js +24 -10
- package/lib/v1/Responsive/Responsive.js +80 -30
- package/lib/v1/Responsive/index.js +4 -0
- package/lib/v1/Responsive/props/propTypes.js +3 -0
- package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +27 -13
- package/lib/v1/ResponsiveDropBox/props/propTypes.js +9 -4
- package/lib/v1/Ribbon/Ribbon.js +14 -7
- package/lib/v1/Ribbon/props/propTypes.js +3 -0
- package/lib/v1/RippleEffect/RippleEffect.js +17 -7
- package/lib/v1/RippleEffect/props/propTypes.js +3 -0
- package/lib/v1/Select/GroupSelect.js +229 -130
- package/lib/v1/Select/Select.js +297 -214
- package/lib/v1/Select/SelectWithAvatar.js +102 -56
- package/lib/v1/Select/SelectWithIcon.js +131 -76
- package/lib/v1/Select/index.js +5 -0
- package/lib/v1/Select/props/defaultProps.js +5 -4
- package/lib/v1/Select/props/propTypes.js +10 -4
- package/lib/v1/Stencils/Stencils.js +13 -3
- package/lib/v1/Stencils/props/propTypes.js +3 -0
- package/lib/v1/Switch/Switch.js +38 -25
- package/lib/v1/Switch/props/propTypes.js +3 -0
- package/lib/v1/Tab/Tab.js +40 -27
- package/lib/v1/Tab/TabContent.js +12 -5
- package/lib/v1/Tab/TabContentWrapper.js +16 -8
- package/lib/v1/Tab/TabWrapper.js +37 -19
- package/lib/v1/Tab/Tabs.js +170 -83
- package/lib/v1/Tab/index.js +6 -0
- package/lib/v1/Tab/props/propTypes.js +3 -0
- package/lib/v1/Tab/v1Tab.module.css +14 -14
- package/lib/v1/Tab/v1Tabs.module.css +22 -22
- package/lib/v1/Tag/Tag.js +50 -32
- package/lib/v1/Tag/props/propTypes.js +3 -0
- package/lib/v1/TextBox/TextBox.js +70 -47
- package/lib/v1/TextBox/props/propTypes.js +6 -4
- package/lib/v1/TextBoxIcon/TextBoxIcon.js +80 -55
- package/lib/v1/TextBoxIcon/props/propTypes.js +9 -4
- package/lib/v1/Textarea/Textarea.js +45 -28
- package/lib/v1/Textarea/props/propTypes.js +3 -0
- package/lib/v1/Tooltip/Tooltip.js +94 -31
- package/lib/v1/Tooltip/props/propTypes.js +3 -0
- package/lib/v1/Typography/Typography.js +26 -15
- package/lib/v1/Typography/css/Typography.module.css +31 -31
- package/lib/v1/Typography/css/cssJSLogic.js +25 -20
- package/lib/v1/Typography/props/propTypes.js +3 -0
- package/lib/v1/Typography/utils/index.js +1 -0
- package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +25 -12
- package/lib/v1/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
- package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +38 -22
- package/lib/v1/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
- package/lib/v1/semantic/Button/Button.js +24 -18
- package/lib/v1/semantic/Button/props/propTypes.js +3 -0
- package/lib/v1/semantic/index.js +2 -0
- package/package.json +2 -2
- package/result.json +1 -1
- package/.DS_Store +0 -0
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { DateWidget_propTypes } from './props/propTypes';
|
|
4
4
|
import { DateWidget_defaultProps } from './props/defaultProps';
|
|
5
|
-
|
|
6
5
|
/**** Components ****/
|
|
6
|
+
|
|
7
7
|
import DateTime from './DateTime';
|
|
8
8
|
import Popup from '../Popup/Popup';
|
|
9
9
|
import { Icon } from '@zohodesk/icons';
|
|
10
10
|
import { Container } from '../Layout';
|
|
11
11
|
import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
|
|
12
|
-
|
|
13
12
|
/**** CSS ****/
|
|
14
|
-
import style from '../../DateTime/DateWidget.module.css';
|
|
15
13
|
|
|
14
|
+
import style from '../../DateTime/DateWidget.module.css';
|
|
16
15
|
/**** Methods ****/
|
|
16
|
+
|
|
17
17
|
import validator from '../../DateTime/validator';
|
|
18
18
|
import { formatDate } from '../../utils/datetime/common';
|
|
19
19
|
import { getIsSupportedKey, arrayIsNotEqual } from '../../DateTime/dateFormatUtils';
|
|
@@ -23,11 +23,11 @@ import { getChangedMonth } from '../../DateTime/dateFormatUtils/monthChange';
|
|
|
23
23
|
import { getChangedYear } from '../../DateTime/dateFormatUtils/yearChange';
|
|
24
24
|
import { getChangedHour, getChangedMinute, getChangedNoon } from '../../DateTime/dateFormatUtils/timeChange';
|
|
25
25
|
import { getIsEmptyValue } from '../../utils/Common';
|
|
26
|
-
|
|
27
26
|
/** * Constants ** */
|
|
28
|
-
import { INVALID_DATE, i18nShortMonths, i18nMonths } from '../../DateTime/constants';
|
|
29
27
|
|
|
28
|
+
import { INVALID_DATE, i18nShortMonths, i18nMonths } from '../../DateTime/constants';
|
|
30
29
|
/* eslint-disable react/no-unused-prop-types */
|
|
30
|
+
|
|
31
31
|
/* eslint css-modules/no-unused-class: [0, { markAsUsed: 'inputLine'] }] */
|
|
32
32
|
|
|
33
33
|
class DateWidgetComponent extends React.Component {
|
|
@@ -71,9 +71,12 @@ class DateWidgetComponent extends React.Component {
|
|
|
71
71
|
this.oldFocusOrder = '';
|
|
72
72
|
this.focusOrder = '';
|
|
73
73
|
this.oldKeyDownAction = ''; //'Arrow' || 'valueTyped'
|
|
74
|
+
|
|
74
75
|
this.keyDownAction = ''; //'Arrow' || 'valueTyped'
|
|
76
|
+
|
|
75
77
|
this.isMouseDown = false;
|
|
76
78
|
}
|
|
79
|
+
|
|
77
80
|
componentDidMount() {
|
|
78
81
|
const {
|
|
79
82
|
validation
|
|
@@ -81,9 +84,11 @@ class DateWidgetComponent extends React.Component {
|
|
|
81
84
|
const {
|
|
82
85
|
selected
|
|
83
86
|
} = this.state;
|
|
87
|
+
|
|
84
88
|
if (validation && validation.validate) {
|
|
85
89
|
this.validateOnSelect(selected, this.props);
|
|
86
90
|
}
|
|
91
|
+
|
|
87
92
|
const {
|
|
88
93
|
displayText,
|
|
89
94
|
selected: newSelected
|
|
@@ -94,6 +99,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
94
99
|
});
|
|
95
100
|
this.handleSelectionRangeDetails(this.props);
|
|
96
101
|
}
|
|
102
|
+
|
|
97
103
|
componentDidUpdate(prevProps, prevState) {
|
|
98
104
|
const {
|
|
99
105
|
selected,
|
|
@@ -115,9 +121,11 @@ class DateWidgetComponent extends React.Component {
|
|
|
115
121
|
is24Hour,
|
|
116
122
|
isHideCurrentYear
|
|
117
123
|
} = this.props;
|
|
124
|
+
|
|
118
125
|
if (validation && validation.validate) {
|
|
119
126
|
this.validateOnSelect(selected, this.props);
|
|
120
127
|
}
|
|
128
|
+
|
|
121
129
|
if (value !== prevProps.value || dateFormat !== prevProps.dateFormat || is24Hour !== prevProps.is24Hour || isHideCurrentYear !== prevProps.isHideCurrentYear) {
|
|
122
130
|
const {
|
|
123
131
|
displayText,
|
|
@@ -127,6 +135,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
127
135
|
selected,
|
|
128
136
|
displayText
|
|
129
137
|
});
|
|
138
|
+
|
|
130
139
|
if (value !== INVALID_DATE) {
|
|
131
140
|
this.setState({
|
|
132
141
|
day: '',
|
|
@@ -140,27 +149,28 @@ class DateWidgetComponent extends React.Component {
|
|
|
140
149
|
});
|
|
141
150
|
}
|
|
142
151
|
}
|
|
152
|
+
|
|
143
153
|
if (prevProps.isPopupReady !== isPopupReady) {
|
|
144
154
|
if (isPopupReady) {
|
|
145
155
|
this.resetLocalDate && this.resetLocalDate();
|
|
146
156
|
}
|
|
147
157
|
}
|
|
158
|
+
|
|
148
159
|
const haveLocalValue = [day, month, year, hour, minute, noon].some(value => !getIsEmptyValue(value));
|
|
160
|
+
|
|
149
161
|
if (isDateEdited !== haveLocalValue) {
|
|
150
162
|
this.setState({
|
|
151
163
|
isDateEdited: haveLocalValue
|
|
152
164
|
});
|
|
153
165
|
}
|
|
166
|
+
|
|
154
167
|
if (value !== prevProps.value || dateFormat !== prevProps.dateFormat || is24Hour !== prevProps.is24Hour || arrayIsNotEqual([day, month, year, hour, minute, noon], [prevState.day, prevState.month, prevState.year, prevState.hour, prevState.minute, prevState.noon])) {
|
|
155
168
|
this.handleSelectionRangeDetails(this.props);
|
|
156
|
-
}
|
|
169
|
+
} // if (stateFocusOrder !== prevState.stateFocusOrder) {
|
|
157
170
|
|
|
158
|
-
// if (stateFocusOrder !== prevState.stateFocusOrder) {
|
|
159
171
|
|
|
160
172
|
isFocused && !getIsEmptyValue(stateFocusOrder) && this.handleSelection(stateFocusOrder);
|
|
161
|
-
this.handleBlurSelectionRange(stateFocusOrder, prevState.stateFocusOrder);
|
|
162
|
-
// }
|
|
163
|
-
|
|
173
|
+
this.handleBlurSelectionRange(stateFocusOrder, prevState.stateFocusOrder); // }
|
|
164
174
|
// if (prevProps.isPopupOpen !== isPopupOpen) {
|
|
165
175
|
// if (!isPopupOpen) {
|
|
166
176
|
// this.valueInput && this.valueInput.focus({preventScroll:true});
|
|
@@ -175,18 +185,21 @@ class DateWidgetComponent extends React.Component {
|
|
|
175
185
|
closePopupOnly,
|
|
176
186
|
validation
|
|
177
187
|
} = this.props;
|
|
188
|
+
|
|
178
189
|
if (validation && validation.validateOn) {
|
|
179
190
|
const {
|
|
180
191
|
selected
|
|
181
192
|
} = this.state;
|
|
182
193
|
this.validateOnSelect(selected, this.props);
|
|
183
194
|
}
|
|
195
|
+
|
|
184
196
|
onSelect && onSelect(userZoneSelectedTime, id);
|
|
185
197
|
this.valueInput && this.valueInput.focus({
|
|
186
198
|
preventScroll: true
|
|
187
199
|
});
|
|
188
200
|
closePopupOnly(e);
|
|
189
201
|
}
|
|
202
|
+
|
|
190
203
|
validateOnSelect(value, props) {
|
|
191
204
|
const defaultCheckPropsRules = ['required'];
|
|
192
205
|
const defaultValidateRules = ['required'];
|
|
@@ -197,6 +210,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
197
210
|
onFailValidation
|
|
198
211
|
} = props;
|
|
199
212
|
const targetTag = this.elementRef;
|
|
213
|
+
|
|
200
214
|
if (validation) {
|
|
201
215
|
//validateOn won't work here ...
|
|
202
216
|
const newValidation = validator.combinePropsValidation(this.props, defaultType, 'onSelect', validation, defaultCheckPropsRules, defaultValidateRules);
|
|
@@ -210,6 +224,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
210
224
|
onPassValidation && onPassValidation(value, targetTag);
|
|
211
225
|
}
|
|
212
226
|
}
|
|
227
|
+
|
|
213
228
|
handleTogglePopup(e, isOpenOnly) {
|
|
214
229
|
const {
|
|
215
230
|
togglePopup,
|
|
@@ -217,6 +232,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
217
232
|
isPopupOpen,
|
|
218
233
|
removeClose
|
|
219
234
|
} = this.props;
|
|
235
|
+
|
|
220
236
|
if (isOpenOnly) {
|
|
221
237
|
if (!isPopupOpen) {
|
|
222
238
|
togglePopup(e, `${defaultPosition}Right`);
|
|
@@ -224,8 +240,10 @@ class DateWidgetComponent extends React.Component {
|
|
|
224
240
|
removeClose(e);
|
|
225
241
|
}
|
|
226
242
|
}
|
|
243
|
+
|
|
227
244
|
!isOpenOnly && togglePopup(e, `${defaultPosition}Right`);
|
|
228
245
|
}
|
|
246
|
+
|
|
229
247
|
handleSelectionRangeDetails(props) {
|
|
230
248
|
const {
|
|
231
249
|
timeZone,
|
|
@@ -242,9 +260,8 @@ class DateWidgetComponent extends React.Component {
|
|
|
242
260
|
minute,
|
|
243
261
|
noon
|
|
244
262
|
} = this.state;
|
|
245
|
-
const selected = value === INVALID_DATE ? '' : value;
|
|
263
|
+
const selected = value === INVALID_DATE ? '' : value; //New UI Changes
|
|
246
264
|
|
|
247
|
-
//New UI Changes
|
|
248
265
|
const dateFormatDetails = getDateFormatDetails(dateFormat, {
|
|
249
266
|
isHideCurrentYear: false,
|
|
250
267
|
value,
|
|
@@ -273,6 +290,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
273
290
|
newDateFormat
|
|
274
291
|
});
|
|
275
292
|
}
|
|
293
|
+
|
|
276
294
|
handleGetDisplayText(props) {
|
|
277
295
|
const {
|
|
278
296
|
timeZone,
|
|
@@ -293,19 +311,24 @@ class DateWidgetComponent extends React.Component {
|
|
|
293
311
|
} = dateFormatDetails;
|
|
294
312
|
let displayText = '';
|
|
295
313
|
const selected = value === INVALID_DATE ? '' : value;
|
|
314
|
+
|
|
296
315
|
if (selected) {
|
|
297
316
|
let format = newDateFormat,
|
|
298
|
-
|
|
317
|
+
convertedValue = getDateText(value, isDateTime, timeZone);
|
|
318
|
+
|
|
299
319
|
if (isDateTime) {
|
|
300
320
|
format = `${newDateFormat} ${is24Hour ? 'HH:mm' : 'hh:mm A'}`;
|
|
301
321
|
}
|
|
322
|
+
|
|
302
323
|
displayText = formatDate(convertedValue, format);
|
|
303
324
|
}
|
|
325
|
+
|
|
304
326
|
return {
|
|
305
327
|
displayText,
|
|
306
328
|
selected
|
|
307
329
|
};
|
|
308
330
|
}
|
|
331
|
+
|
|
309
332
|
handleKeyDown(e) {
|
|
310
333
|
const {
|
|
311
334
|
keyCode
|
|
@@ -318,12 +341,14 @@ class DateWidgetComponent extends React.Component {
|
|
|
318
341
|
cantEditOnPopupOpen
|
|
319
342
|
} = this.props;
|
|
320
343
|
const isAllowedDateType = this.handleGetAllowedType();
|
|
344
|
+
|
|
321
345
|
if (isPopupOpen) {
|
|
322
346
|
if (keyCode === 9 && !isAllowedDateType) {
|
|
323
347
|
//on tab click popup close
|
|
324
348
|
closePopupOnly(e);
|
|
325
|
-
}
|
|
326
|
-
|
|
349
|
+
} // ~~~~~~~ handle date navigation in dateTime popup ~~~~~
|
|
350
|
+
|
|
351
|
+
|
|
327
352
|
if (isAllowedDateType) {
|
|
328
353
|
cantEditOnPopupOpen && this.handleDateType(e);
|
|
329
354
|
}
|
|
@@ -339,6 +364,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
339
364
|
}
|
|
340
365
|
}
|
|
341
366
|
}
|
|
367
|
+
|
|
342
368
|
getValueInputRef(el) {
|
|
343
369
|
const {
|
|
344
370
|
getRef
|
|
@@ -346,11 +372,13 @@ class DateWidgetComponent extends React.Component {
|
|
|
346
372
|
this.valueInput = el;
|
|
347
373
|
getRef && getRef(el);
|
|
348
374
|
}
|
|
375
|
+
|
|
349
376
|
handleFocus() {
|
|
350
377
|
const isAllowedDateType = this.handleGetAllowedType();
|
|
351
378
|
const {
|
|
352
379
|
isMouseDown
|
|
353
380
|
} = this;
|
|
381
|
+
|
|
354
382
|
if (isAllowedDateType && !isMouseDown) {
|
|
355
383
|
const {
|
|
356
384
|
dateFormatSelection
|
|
@@ -377,11 +405,13 @@ class DateWidgetComponent extends React.Component {
|
|
|
377
405
|
isFocused: true
|
|
378
406
|
});
|
|
379
407
|
}
|
|
408
|
+
|
|
380
409
|
const {
|
|
381
410
|
onFocus
|
|
382
411
|
} = this.props;
|
|
383
412
|
onFocus && onFocus();
|
|
384
413
|
}
|
|
414
|
+
|
|
385
415
|
handleBlur() {
|
|
386
416
|
this.focusOrder = '';
|
|
387
417
|
this.oldFocusOrder = '';
|
|
@@ -389,9 +419,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
389
419
|
this.keyDownAction = '';
|
|
390
420
|
this.setState({
|
|
391
421
|
isFocused: false
|
|
392
|
-
});
|
|
393
|
-
|
|
394
|
-
// const { valueInput } = this;
|
|
422
|
+
}); // const { valueInput } = this;
|
|
395
423
|
// document.getSelection().removeAllRanges();
|
|
396
424
|
// valueInput && valueInput.setSelectionRange(0, 0);
|
|
397
425
|
|
|
@@ -400,6 +428,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
400
428
|
} = this.props;
|
|
401
429
|
onBlur && onBlur();
|
|
402
430
|
}
|
|
431
|
+
|
|
403
432
|
handleGetMethods(methods) {
|
|
404
433
|
const {
|
|
405
434
|
getMethods
|
|
@@ -414,15 +443,18 @@ class DateWidgetComponent extends React.Component {
|
|
|
414
443
|
this.DateTimeYearViewToggle = toggleYearView;
|
|
415
444
|
getMethods && getMethods(methods);
|
|
416
445
|
}
|
|
446
|
+
|
|
417
447
|
handleDateType(e) {
|
|
418
448
|
const {
|
|
419
449
|
keyCode,
|
|
420
450
|
shiftKey
|
|
421
451
|
} = e;
|
|
422
452
|
const input = e.target;
|
|
453
|
+
|
|
423
454
|
if (getIsSupportedKey(e)) {
|
|
424
455
|
e.preventDefault();
|
|
425
456
|
}
|
|
457
|
+
|
|
426
458
|
const {
|
|
427
459
|
isDateTime,
|
|
428
460
|
timeZone,
|
|
@@ -482,6 +514,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
482
514
|
} = order[focusedOrder] || {};
|
|
483
515
|
this.oldFocusOrder = this.focusOrder;
|
|
484
516
|
this.focusOrder = focusedOrder;
|
|
517
|
+
|
|
485
518
|
if (keyCode === 38 || keyCode === 40) {
|
|
486
519
|
//up arrow && down arrow
|
|
487
520
|
this.oldKeyDownAction = this.keyDownAction;
|
|
@@ -490,6 +523,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
490
523
|
this.oldKeyDownAction = this.keyDownAction;
|
|
491
524
|
this.keyDownAction = 'valueTyped';
|
|
492
525
|
}
|
|
526
|
+
|
|
493
527
|
const focusedOrders = {
|
|
494
528
|
focusOrder: this.focusOrder,
|
|
495
529
|
oldFocusOrder: this.oldFocusOrder
|
|
@@ -499,13 +533,14 @@ class DateWidgetComponent extends React.Component {
|
|
|
499
533
|
keyAction: this.keyDownAction
|
|
500
534
|
};
|
|
501
535
|
let newDay = selectedDay,
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
536
|
+
newMonth = selectedMonth,
|
|
537
|
+
newYear = selectedYear,
|
|
538
|
+
newHour = selectedHour,
|
|
539
|
+
newMinute = selectedMinute,
|
|
540
|
+
newNoon = selectedNoon,
|
|
541
|
+
isValueChanged = false,
|
|
542
|
+
newFocusOrder = focusedOrder;
|
|
543
|
+
|
|
509
544
|
if (keyCode === 9 && shiftKey && !getIsEmptyValue(focusedOrder) && focusedOrder !== 0) {
|
|
510
545
|
e.preventDefault();
|
|
511
546
|
this.setState({
|
|
@@ -594,6 +629,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
594
629
|
noon: selectedNoon
|
|
595
630
|
}, e, focusedOrders, keyActions));
|
|
596
631
|
}
|
|
632
|
+
|
|
597
633
|
if (isValueChanged) {
|
|
598
634
|
const currentValue = {
|
|
599
635
|
day: newDay,
|
|
@@ -603,6 +639,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
603
639
|
minute: newMinute,
|
|
604
640
|
noon: newNoon
|
|
605
641
|
};
|
|
642
|
+
|
|
606
643
|
const errorCaseHandle = isEmptyValError => {
|
|
607
644
|
this.setState(() => ({
|
|
608
645
|
day: newDay,
|
|
@@ -618,12 +655,14 @@ class DateWidgetComponent extends React.Component {
|
|
|
618
655
|
const newSelected = isEmptyValError ? '' : INVALID_DATE;
|
|
619
656
|
value !== newSelected && onSelect && onSelect(newSelected, id);
|
|
620
657
|
};
|
|
658
|
+
|
|
621
659
|
const {
|
|
622
660
|
isError,
|
|
623
661
|
isEmptyValError
|
|
624
662
|
} = getIsValidDate(currentValue, isDateTime, {
|
|
625
663
|
is24Hour
|
|
626
664
|
});
|
|
665
|
+
|
|
627
666
|
if (isError) {
|
|
628
667
|
errorCaseHandle(isEmptyValError);
|
|
629
668
|
} else {
|
|
@@ -638,12 +677,14 @@ class DateWidgetComponent extends React.Component {
|
|
|
638
677
|
isDateTime,
|
|
639
678
|
is24Hour
|
|
640
679
|
});
|
|
680
|
+
|
|
641
681
|
if (selectedDateError) {
|
|
642
682
|
if (errorType === 'MIN') {
|
|
643
683
|
onError && onError(minErrorText, true);
|
|
644
684
|
} else if (errorType === 'MAX') {
|
|
645
685
|
onError && onError(maxErrorText, true);
|
|
646
686
|
}
|
|
687
|
+
|
|
647
688
|
errorCaseHandle();
|
|
648
689
|
} else {
|
|
649
690
|
this.setState(() => ({
|
|
@@ -662,9 +703,11 @@ class DateWidgetComponent extends React.Component {
|
|
|
662
703
|
}
|
|
663
704
|
}
|
|
664
705
|
}
|
|
706
|
+
|
|
665
707
|
handleSelection() {
|
|
666
708
|
let focusOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
667
709
|
const isAllowedDateType = this.handleGetAllowedType();
|
|
710
|
+
|
|
668
711
|
if (isAllowedDateType) {
|
|
669
712
|
const {
|
|
670
713
|
dateFormatSelection
|
|
@@ -675,18 +718,21 @@ class DateWidgetComponent extends React.Component {
|
|
|
675
718
|
let {
|
|
676
719
|
index
|
|
677
720
|
} = order[focusOrder] || {};
|
|
721
|
+
|
|
678
722
|
if (!index) {
|
|
679
723
|
focusOrder = 0;
|
|
680
724
|
({
|
|
681
725
|
index
|
|
682
726
|
} = order[focusOrder] || {});
|
|
683
727
|
}
|
|
728
|
+
|
|
684
729
|
if (index && this.valueInput) {
|
|
685
730
|
document.getSelection().removeAllRanges();
|
|
686
731
|
this.valueInput.setSelectionRange(index[0], index[1]);
|
|
687
732
|
}
|
|
688
733
|
}
|
|
689
734
|
}
|
|
735
|
+
|
|
690
736
|
handleInputClick(e) {
|
|
691
737
|
this.isMouseDown = false;
|
|
692
738
|
const {
|
|
@@ -702,12 +748,14 @@ class DateWidgetComponent extends React.Component {
|
|
|
702
748
|
} = dateFormatSelection;
|
|
703
749
|
const focusOrder = clickIndex[selectionEnd] || clickIndex[selectionEnd - 1] || 0;
|
|
704
750
|
const isAllowedDateType = this.handleGetAllowedType();
|
|
751
|
+
|
|
705
752
|
if (isAllowedDateType) {
|
|
706
753
|
this.setState({
|
|
707
754
|
stateFocusOrder: focusOrder,
|
|
708
755
|
isFocused: true
|
|
709
756
|
});
|
|
710
757
|
}
|
|
758
|
+
|
|
711
759
|
if (!isAllowedDateType) {
|
|
712
760
|
this.handleTogglePopup(e);
|
|
713
761
|
} else {
|
|
@@ -716,22 +764,27 @@ class DateWidgetComponent extends React.Component {
|
|
|
716
764
|
isReadOnly,
|
|
717
765
|
isDisabled
|
|
718
766
|
} = this.props;
|
|
767
|
+
|
|
719
768
|
if (isPopupOpenOnClick && (!isReadOnly || !isDisabled)) {
|
|
720
769
|
this.handleTogglePopup(e, true);
|
|
721
770
|
}
|
|
771
|
+
|
|
722
772
|
const {
|
|
723
773
|
isPopupCloseOnClick,
|
|
724
774
|
isPopupOpen,
|
|
725
775
|
closePopupOnly
|
|
726
776
|
} = this.props;
|
|
777
|
+
|
|
727
778
|
if (isPopupCloseOnClick && !isPopupOpen) {
|
|
728
779
|
closePopupOnly && closePopupOnly(e);
|
|
729
780
|
}
|
|
730
781
|
}
|
|
731
782
|
}
|
|
783
|
+
|
|
732
784
|
handleMouseDown() {
|
|
733
785
|
this.isMouseDown = true;
|
|
734
786
|
}
|
|
787
|
+
|
|
735
788
|
handleGetShowValue() {
|
|
736
789
|
const {
|
|
737
790
|
day,
|
|
@@ -754,6 +807,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
754
807
|
timeZone,
|
|
755
808
|
isPopupOpen
|
|
756
809
|
} = this.props;
|
|
810
|
+
|
|
757
811
|
if (isDateEdited || isFocused || isPopupReady || isPopupOpen) {
|
|
758
812
|
const {
|
|
759
813
|
day: selectedDay = '',
|
|
@@ -788,24 +842,30 @@ class DateWidgetComponent extends React.Component {
|
|
|
788
842
|
} else if (displayText) {
|
|
789
843
|
return displayText;
|
|
790
844
|
}
|
|
845
|
+
|
|
791
846
|
const timeFormat = is24Hour ? ' HH:mm' : ' hh:mm --';
|
|
792
847
|
const dateTimeFormat = isDateTime ? `${newDateFormat}${timeFormat}` : newDateFormat;
|
|
793
848
|
return dateTimeFormat || '';
|
|
794
849
|
}
|
|
850
|
+
|
|
795
851
|
handleGetAllowedType() {
|
|
796
852
|
const {
|
|
797
853
|
isReadOnly,
|
|
798
854
|
isDisabled,
|
|
799
855
|
isEditable
|
|
800
856
|
} = this.props;
|
|
857
|
+
|
|
801
858
|
if (isEditable) {
|
|
802
859
|
if (isReadOnly || isDisabled) {
|
|
803
860
|
return false;
|
|
804
861
|
}
|
|
862
|
+
|
|
805
863
|
return true;
|
|
806
864
|
}
|
|
865
|
+
|
|
807
866
|
return false;
|
|
808
867
|
}
|
|
868
|
+
|
|
809
869
|
handleDateClear() {
|
|
810
870
|
const {
|
|
811
871
|
id,
|
|
@@ -823,8 +883,7 @@ class DateWidgetComponent extends React.Component {
|
|
|
823
883
|
stateFocusOrder: 0,
|
|
824
884
|
isError: false
|
|
825
885
|
});
|
|
826
|
-
value && onSelect && onSelect('', id);
|
|
827
|
-
// this.valueInput && this.valueInput.focus({ preventScroll: true });
|
|
886
|
+
value && onSelect && onSelect('', id); // this.valueInput && this.valueInput.focus({ preventScroll: true });
|
|
828
887
|
}
|
|
829
888
|
|
|
830
889
|
handleDateTimeClear(e) {
|
|
@@ -834,16 +893,19 @@ class DateWidgetComponent extends React.Component {
|
|
|
834
893
|
} = this.props;
|
|
835
894
|
closePopupOnly(e);
|
|
836
895
|
}
|
|
896
|
+
|
|
837
897
|
handleDateIconClick(e) {
|
|
838
898
|
this.handleTogglePopup(e);
|
|
839
899
|
this.valueInput && this.valueInput.focus({
|
|
840
900
|
preventScroll: true
|
|
841
901
|
});
|
|
842
902
|
}
|
|
903
|
+
|
|
843
904
|
handleBlurSelectionRange() {
|
|
844
905
|
let focusOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
845
906
|
let oldFocusOrder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
846
907
|
const isAllowedDateType = this.handleGetAllowedType();
|
|
908
|
+
|
|
847
909
|
if (isAllowedDateType) {
|
|
848
910
|
// if (focusOrder !== oldFocusOrder) {
|
|
849
911
|
const {
|
|
@@ -854,26 +916,27 @@ class DateWidgetComponent extends React.Component {
|
|
|
854
916
|
} = dateFormatSelection;
|
|
855
917
|
const {
|
|
856
918
|
isPopupOpen
|
|
857
|
-
} = this.props;
|
|
919
|
+
} = this.props; // const { type: oldFocusedType = '' } = order[oldFocusOrder] || {};
|
|
858
920
|
|
|
859
|
-
// const { type: oldFocusedType = '' } = order[oldFocusOrder] || {};
|
|
860
921
|
const {
|
|
861
922
|
type: focusedType = ''
|
|
862
923
|
} = order[focusOrder] || {};
|
|
863
924
|
const {
|
|
864
|
-
/*isActive,*/
|
|
925
|
+
/*isActive,*/
|
|
926
|
+
isYearView,
|
|
865
927
|
isMonthOpen: oldIsMonthOpen
|
|
866
928
|
} = this.getDateTimeStateValues();
|
|
867
929
|
const yearViewTypes = ['month', 'year'];
|
|
868
930
|
const isMonthOpen = focusedType === 'month';
|
|
931
|
+
|
|
869
932
|
if (isPopupOpen) {
|
|
870
933
|
if (yearViewTypes.indexOf(focusedType) >= 0 && (!isYearView || isMonthOpen !== oldIsMonthOpen)) {
|
|
871
934
|
this.DateTimeYearViewToggle(true, isMonthOpen);
|
|
872
935
|
} else if (yearViewTypes.indexOf(focusedType) === -1 && isYearView) {
|
|
873
936
|
this.DateTimeYearViewToggle(false, false);
|
|
874
937
|
}
|
|
875
|
-
}
|
|
876
|
-
|
|
938
|
+
} // }
|
|
939
|
+
|
|
877
940
|
}
|
|
878
941
|
}
|
|
879
942
|
|
|
@@ -1013,14 +1076,14 @@ class DateWidgetComponent extends React.Component {
|
|
|
1013
1076
|
endDate: endDate
|
|
1014
1077
|
}));
|
|
1015
1078
|
}
|
|
1079
|
+
|
|
1016
1080
|
}
|
|
1081
|
+
|
|
1017
1082
|
DateWidgetComponent.defaultProps = DateWidget_defaultProps;
|
|
1018
1083
|
DateWidgetComponent.propTypes = DateWidget_propTypes;
|
|
1019
1084
|
const DateWidget = Popup(DateWidgetComponent);
|
|
1020
1085
|
DateWidget.defaultProps = DateWidgetComponent.defaultProps;
|
|
1021
|
-
DateWidget.propTypes = DateWidgetComponent.propTypes;
|
|
1022
|
-
|
|
1023
|
-
// eslint-disable-next-line no-undef
|
|
1086
|
+
DateWidget.propTypes = DateWidgetComponent.propTypes; // eslint-disable-next-line no-undef
|
|
1024
1087
|
// if (__DOCS__) {
|
|
1025
1088
|
// DateWidgetComponent.docs = {
|
|
1026
1089
|
// componentGroup: 'Form Elements',
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/* eslint-disable react/forbid-component-props */
|
|
2
|
+
|
|
2
3
|
/** ** Libraries *** */
|
|
3
4
|
import React, { PureComponent } from 'react';
|
|
4
5
|
import { DaysRow_propTypes } from './props/propTypes';
|
|
5
6
|
/** ** CSS *** */
|
|
6
|
-
import style from '../../DateTime/DateTime.module.css';
|
|
7
7
|
|
|
8
|
+
import style from '../../DateTime/DateTime.module.css';
|
|
8
9
|
/** ** Components *** */
|
|
10
|
+
|
|
9
11
|
import { Container, Box } from '../Layout';
|
|
10
12
|
export default class DaysRow extends PureComponent {
|
|
11
13
|
render() {
|
|
@@ -24,5 +26,6 @@ export default class DaysRow extends PureComponent {
|
|
|
24
26
|
"aria-label": dayName
|
|
25
27
|
}, dayNamesShort[index])));
|
|
26
28
|
}
|
|
29
|
+
|
|
27
30
|
}
|
|
28
31
|
DaysRow.propTypes = DaysRow_propTypes;
|
package/es/v1/DateTime/Time.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/* eslint-disable react/forbid-component-props */
|
|
2
|
+
|
|
2
3
|
/** ** Libraries *** */
|
|
3
4
|
import React, { PureComponent } from 'react';
|
|
4
5
|
import { Time_propTypes } from './props/propTypes';
|
|
5
6
|
import { Time_defaultProps } from './props/defaultProps';
|
|
6
7
|
/**** Components ****/
|
|
8
|
+
|
|
7
9
|
import { Container, Box } from '../Layout';
|
|
8
10
|
import Select from '../Select/Select';
|
|
9
|
-
|
|
10
11
|
/** ** CSS *** */
|
|
12
|
+
|
|
11
13
|
import style from '../../DateTime/DateTime.module.css';
|
|
12
14
|
export default class Time extends PureComponent {
|
|
13
15
|
render() {
|
|
@@ -64,9 +66,11 @@ export default class Time extends PureComponent {
|
|
|
64
66
|
needResponsive: needResponsive
|
|
65
67
|
})) : null));
|
|
66
68
|
}
|
|
69
|
+
|
|
67
70
|
}
|
|
68
71
|
Time.propTypes = Time_propTypes;
|
|
69
72
|
Time.defaultProps = Time_defaultProps;
|
|
73
|
+
|
|
70
74
|
class Hour extends React.PureComponent {
|
|
71
75
|
render() {
|
|
72
76
|
const {
|
|
@@ -97,7 +101,9 @@ class Hour extends React.PureComponent {
|
|
|
97
101
|
listItemSize: "small"
|
|
98
102
|
});
|
|
99
103
|
}
|
|
104
|
+
|
|
100
105
|
}
|
|
106
|
+
|
|
101
107
|
class Minute extends React.PureComponent {
|
|
102
108
|
render() {
|
|
103
109
|
const {
|
|
@@ -128,7 +134,9 @@ class Minute extends React.PureComponent {
|
|
|
128
134
|
listItemSize: "small"
|
|
129
135
|
});
|
|
130
136
|
}
|
|
137
|
+
|
|
131
138
|
}
|
|
139
|
+
|
|
132
140
|
class AmPm extends React.PureComponent {
|
|
133
141
|
render() {
|
|
134
142
|
const {
|
|
@@ -154,4 +162,5 @@ class AmPm extends React.PureComponent {
|
|
|
154
162
|
listItemSize: "small"
|
|
155
163
|
});
|
|
156
164
|
}
|
|
165
|
+
|
|
157
166
|
}
|