@zohodesk/components 1.0.0-temp-158 → 1.0.0-temp-160
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/es/Accordion/Accordion.js +3 -7
- package/es/Accordion/AccordionItem.js +2 -4
- package/es/Animation/Animation.js +3 -3
- package/es/AppContainer/AppContainer.js +5 -13
- package/es/Avatar/Avatar.js +11 -23
- package/es/AvatarTeam/AvatarTeam.js +3 -3
- package/es/Button/Button.js +3 -4
- package/es/Buttongroup/Buttongroup.js +3 -3
- package/es/Card/Card.js +10 -21
- package/es/CheckBox/CheckBox.js +3 -5
- package/es/DateTime/CalendarView.js +20 -32
- package/es/DateTime/DateTime.js +6 -67
- package/es/DateTime/DateTimePopupFooter.js +2 -4
- package/es/DateTime/DateTimePopupHeader.js +2 -8
- package/es/DateTime/DateWidget.js +35 -98
- package/es/DateTime/DaysRow.js +2 -4
- package/es/DateTime/Time.js +2 -10
- package/es/DateTime/YearView.js +4 -28
- package/es/DateTime/__tests__/CalendarView.spec.js +0 -1
- package/es/DateTime/__tests__/DateTime.spec.js +0 -1
- package/es/DateTime/__tests__/DateWidget.spec.js +3 -2
- package/es/DateTime/common.js +0 -3
- package/es/DateTime/constants.js +0 -1
- package/es/DateTime/dateFormatUtils/dateFormat.js +30 -63
- package/es/DateTime/dateFormatUtils/dateFormats.js +1 -0
- package/es/DateTime/dateFormatUtils/dayChange.js +4 -13
- package/es/DateTime/dateFormatUtils/index.js +2 -32
- package/es/DateTime/dateFormatUtils/monthChange.js +0 -8
- package/es/DateTime/dateFormatUtils/timeChange.js +6 -22
- package/es/DateTime/dateFormatUtils/yearChange.js +2 -11
- package/es/DateTime/objectUtils.js +20 -14
- package/es/DateTime/typeChecker.js +0 -3
- package/es/DateTime/validator.js +6 -58
- package/es/DropBox/DropBox.js +2 -6
- package/es/DropBox/DropBoxElement/DropBoxElement.js +0 -7
- package/es/DropBox/DropBoxElement/css/cssJSLogic.js +3 -5
- package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +0 -3
- package/es/DropBox/props/defaultProps.js +2 -1
- package/es/DropBox/props/propTypes.js +2 -1
- package/es/DropDown/DropDown.js +4 -8
- package/es/DropDown/DropDownHeading.js +5 -4
- package/es/DropDown/DropDownItem.js +0 -6
- package/es/DropDown/DropDownSearch.js +0 -4
- package/es/DropDown/DropDownSeparator.js +0 -1
- package/es/DropDown/__tests__/DropDown.spec.js +2 -1
- package/es/Heading/Heading.js +3 -2
- package/es/Label/Label.js +3 -2
- package/es/Layout/Box.js +0 -13
- package/es/Layout/Container.js +1 -12
- package/es/Layout/index.js +2 -1
- package/es/ListItem/ListContainer.js +3 -8
- package/es/ListItem/ListItem.js +3 -9
- package/es/ListItem/ListItemWithAvatar.js +3 -9
- package/es/ListItem/ListItemWithCheckBox.js +2 -7
- package/es/ListItem/ListItemWithIcon.js +3 -8
- package/es/ListItem/ListItemWithRadio.js +3 -7
- package/es/Modal/Modal.js +11 -28
- package/es/MultiSelect/AdvancedGroupMultiSelect.js +13 -89
- package/es/MultiSelect/AdvancedMultiSelect.js +9 -32
- package/es/MultiSelect/EmptyState.js +0 -2
- package/es/MultiSelect/MultiSelect.js +32 -99
- package/es/MultiSelect/MultiSelectHeader.js +0 -3
- package/es/MultiSelect/MultiSelectWithAvatar.js +6 -12
- package/es/MultiSelect/SelectedOptions.js +3 -6
- package/es/MultiSelect/Suggestions.js +3 -7
- package/es/MultiSelect/__tests__/MultiSelect.spec.js +6 -4
- package/es/MultiSelect/props/propTypes.js +0 -2
- package/es/PopOver/PopOver.js +2 -18
- package/es/PopOver/__tests__/PopOver.spec.js +1 -2
- package/es/Popup/Popup.js +24 -77
- package/es/Popup/__tests__/Popup.spec.js +5 -17
- package/es/Popup/viewPort.js +4 -16
- package/es/Provider/IdProvider.js +5 -10
- package/es/Provider/LibraryContext.js +4 -6
- package/es/Provider/NumberGenerator/NumberGenerator.js +7 -21
- package/es/Provider/ZindexProvider.js +2 -9
- package/es/Radio/Radio.js +2 -4
- package/es/Responsive/CustomResponsive.js +18 -30
- package/es/Responsive/RefWrapper.js +7 -6
- package/es/Responsive/ResizeComponent.js +25 -35
- package/es/Responsive/ResizeObserver.js +6 -26
- package/es/Responsive/Responsive.js +20 -34
- package/es/Responsive/index.js +3 -1
- package/es/Responsive/sizeObservers.js +7 -28
- package/es/Responsive/utils/index.js +5 -7
- package/es/Responsive/utils/shallowCompare.js +2 -7
- package/es/Responsive/windowResizeObserver.js +0 -7
- package/es/ResponsiveDropBox/ResponsiveDropBox.js +0 -4
- package/es/Ribbon/Ribbon.js +2 -3
- package/es/RippleEffect/RippleEffect.js +3 -1
- package/es/Select/GroupSelect.js +14 -58
- package/es/Select/Select.js +33 -79
- package/es/Select/SelectWithAvatar.js +4 -17
- package/es/Select/SelectWithIcon.js +5 -46
- package/es/Select/__tests__/Select.spec.js +8 -6
- package/es/Select/props/propTypes.js +0 -1
- package/es/Stencils/Stencils.js +3 -3
- package/es/Switch/Switch.js +3 -5
- package/es/Tab/Tab.js +4 -4
- package/es/Tab/TabContent.js +0 -1
- package/es/Tab/TabContentWrapper.js +0 -2
- package/es/Tab/TabWrapper.js +2 -5
- package/es/Tab/Tabs.js +7 -54
- package/es/Tab/__tests__/Tab.spec.js +3 -1
- package/es/Tab/__tests__/TabWrapper.spec.js +0 -1
- package/es/Tag/Tag.js +3 -6
- package/es/TextBox/TextBox.js +3 -15
- package/es/TextBox/__tests__/TextBox.spec.js +4 -1
- package/es/TextBoxIcon/TextBoxIcon.js +2 -9
- package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +7 -2
- package/es/Textarea/Textarea.js +3 -12
- package/es/Textarea/__tests__/Textarea.spec.js +2 -2
- package/es/Tooltip/Tooltip.js +14 -58
- package/es/Tooltip/__tests__/Tooltip.spec.js +0 -5
- package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +2 -3
- package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -7
- package/es/deprecated/PortalLayer/PortalLayer.js +20 -25
- package/es/semantic/Button/Button.js +2 -3
- package/es/utils/Common.js +9 -54
- package/es/utils/ContextOptimizer.js +5 -4
- package/es/utils/__tests__/debounce.spec.js +2 -2
- package/es/utils/constructFullName.js +0 -2
- package/es/utils/css/compileClassNames.js +0 -5
- package/es/utils/css/mergeStyle.js +6 -7
- package/es/utils/css/utils.js +0 -1
- package/es/utils/datetime/common.js +5 -16
- package/es/utils/debounce.js +1 -5
- package/es/utils/dropDownUtils.js +11 -68
- package/es/utils/getInitial.js +0 -4
- package/es/utils/shallowEqual.js +0 -6
- package/lib/Accordion/Accordion.js +18 -42
- package/lib/Accordion/AccordionItem.js +18 -40
- package/lib/Accordion/__tests__/Accordion.spec.js +0 -3
- package/lib/Accordion/index.js +0 -3
- package/lib/Accordion/props/propTypes.js +0 -3
- package/lib/Animation/Animation.js +18 -38
- package/lib/Animation/__tests__/Animation.spec.js +7 -11
- package/lib/Animation/props/propTypes.js +0 -3
- package/lib/AppContainer/AppContainer.js +21 -56
- package/lib/AppContainer/props/propTypes.js +0 -3
- package/lib/Avatar/Avatar.js +38 -78
- package/lib/Avatar/__tests__/Avatar.spec.js +0 -44
- package/lib/Avatar/props/propTypes.js +0 -3
- package/lib/AvatarTeam/AvatarTeam.js +30 -52
- package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +0 -13
- package/lib/AvatarTeam/props/propTypes.js +0 -3
- package/lib/Button/Button.js +20 -31
- package/lib/Button/css/cssJSLogic.js +17 -18
- package/lib/Button/index.js +0 -3
- package/lib/Button/props/defaultProps.js +0 -2
- package/lib/Button/props/propTypes.js +0 -3
- package/lib/Buttongroup/Buttongroup.js +12 -32
- package/lib/Buttongroup/__test__/Buttongroup.spec.js +0 -10
- package/lib/Buttongroup/props/propTypes.js +0 -3
- package/lib/Card/Card.js +46 -102
- package/lib/Card/__tests__/Card.spec.js +1 -10
- package/lib/Card/index.js +0 -4
- package/lib/Card/props/propTypes.js +0 -3
- package/lib/CheckBox/CheckBox.js +47 -71
- package/lib/CheckBox/__tests__/CheckBox.spec.js +0 -3
- package/lib/CheckBox/props/propTypes.js +0 -3
- package/lib/DateTime/CalendarView.js +42 -82
- package/lib/DateTime/DateTime.js +156 -240
- package/lib/DateTime/DateTimePopupFooter.js +8 -31
- package/lib/DateTime/DateTimePopupHeader.js +17 -48
- package/lib/DateTime/DateWidget.js +250 -352
- package/lib/DateTime/DaysRow.js +5 -27
- package/lib/DateTime/Time.js +32 -73
- package/lib/DateTime/YearView.js +28 -77
- package/lib/DateTime/__tests__/CalendarView.spec.js +5 -13
- package/lib/DateTime/__tests__/DateTime.spec.js +37 -51
- package/lib/DateTime/__tests__/DateWidget.spec.js +8 -10
- package/lib/DateTime/common.js +0 -6
- package/lib/DateTime/constants.js +0 -1
- package/lib/DateTime/dateFormatUtils/dateFormat.js +122 -184
- package/lib/DateTime/dateFormatUtils/dateFormats.js +1 -0
- package/lib/DateTime/dateFormatUtils/dayChange.js +7 -14
- package/lib/DateTime/dateFormatUtils/index.js +16 -74
- package/lib/DateTime/dateFormatUtils/monthChange.js +9 -19
- package/lib/DateTime/dateFormatUtils/timeChange.js +22 -54
- package/lib/DateTime/dateFormatUtils/yearChange.js +11 -22
- package/lib/DateTime/index.js +0 -2
- package/lib/DateTime/objectUtils.js +20 -24
- package/lib/DateTime/props/propTypes.js +1 -11
- package/lib/DateTime/typeChecker.js +0 -4
- package/lib/DateTime/validator.js +10 -73
- package/lib/DropBox/DropBox.js +10 -34
- package/lib/DropBox/DropBoxElement/DropBoxElement.js +37 -58
- package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +33 -41
- package/lib/DropBox/DropBoxElement/props/propTypes.js +0 -3
- package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +9 -14
- package/lib/DropBox/__tests__/DropBox.spec.js +2 -6
- package/lib/DropBox/css/cssJSLogic.js +1 -3
- package/lib/DropBox/props/defaultProps.js +4 -8
- package/lib/DropBox/props/propTypes.js +4 -10
- package/lib/DropDown/DropDown.js +8 -52
- package/lib/DropDown/DropDownHeading.js +20 -39
- package/lib/DropDown/DropDownItem.js +20 -42
- package/lib/DropDown/DropDownSearch.js +17 -40
- package/lib/DropDown/DropDownSeparator.js +4 -24
- package/lib/DropDown/__tests__/DropDown.spec.js +9 -15
- package/lib/DropDown/__tests__/DropDownItem.spec.js +4 -9
- package/lib/DropDown/__tests__/DropDownSearch.spec.js +0 -3
- package/lib/DropDown/index.js +0 -9
- package/lib/DropDown/props/propTypes.js +4 -6
- package/lib/Heading/Heading.js +15 -37
- package/lib/Heading/props/propTypes.js +0 -3
- package/lib/Label/Label.js +19 -39
- package/lib/Label/__tests__/Label.spec.js +1 -14
- package/lib/Label/props/propTypes.js +0 -3
- package/lib/Layout/Box.js +11 -31
- package/lib/Layout/Container.js +10 -29
- package/lib/Layout/__tests__/Box.spec.js +49 -65
- package/lib/Layout/__tests__/Container.spec.js +50 -67
- package/lib/Layout/index.js +0 -3
- package/lib/Layout/props/propTypes.js +0 -3
- package/lib/Layout/utils.js +0 -10
- package/lib/ListItem/ListContainer.js +27 -48
- package/lib/ListItem/ListItem.js +45 -69
- package/lib/ListItem/ListItemWithAvatar.js +48 -75
- package/lib/ListItem/ListItemWithCheckBox.js +39 -64
- package/lib/ListItem/ListItemWithIcon.js +44 -68
- package/lib/ListItem/ListItemWithRadio.js +41 -65
- package/lib/ListItem/index.js +0 -7
- package/lib/ListItem/props/propTypes.js +4 -6
- package/lib/Modal/Modal.js +10 -45
- package/lib/Modal/props/propTypes.js +0 -3
- package/lib/MultiSelect/AdvancedGroupMultiSelect.js +166 -294
- package/lib/MultiSelect/AdvancedMultiSelect.js +125 -202
- package/lib/MultiSelect/EmptyState.js +24 -45
- package/lib/MultiSelect/MultiSelect.js +206 -323
- package/lib/MultiSelect/MultiSelectHeader.js +8 -30
- package/lib/MultiSelect/MultiSelectWithAvatar.js +63 -105
- package/lib/MultiSelect/SelectedOptions.js +17 -43
- package/lib/MultiSelect/Suggestions.js +32 -64
- package/lib/MultiSelect/__tests__/MultiSelect.spec.js +75 -86
- package/lib/MultiSelect/index.js +0 -5
- package/lib/MultiSelect/props/defaultProps.js +0 -2
- package/lib/MultiSelect/props/propTypes.js +0 -5
- package/lib/PopOver/PopOver.js +49 -95
- package/lib/PopOver/__tests__/PopOver.spec.js +1 -4
- package/lib/PopOver/index.js +0 -4
- package/lib/PopOver/props/propTypes.js +0 -3
- package/lib/Popup/Popup.js +81 -158
- package/lib/Popup/__tests__/Popup.spec.js +8 -43
- package/lib/Popup/viewPort.js +14 -28
- package/lib/Provider/AvatarSize.js +0 -4
- package/lib/Provider/Config.js +0 -2
- package/lib/Provider/CssProvider.js +0 -4
- package/lib/Provider/IdProvider.js +6 -17
- package/lib/Provider/LibraryContext.js +15 -35
- package/lib/Provider/LibraryContextInit.js +0 -4
- package/lib/Provider/NumberGenerator/NumberGenerator.js +15 -44
- package/lib/Provider/ZindexProvider.js +3 -15
- package/lib/Provider/index.js +0 -5
- package/lib/Radio/Radio.js +38 -61
- package/lib/Radio/__tests__/Radiospec.js +5 -9
- package/lib/Radio/props/propTypes.js +0 -3
- package/lib/Responsive/CustomResponsive.js +29 -73
- package/lib/Responsive/RefWrapper.js +11 -17
- package/lib/Responsive/ResizeComponent.js +36 -62
- package/lib/Responsive/ResizeObserver.js +10 -24
- package/lib/Responsive/Responsive.js +30 -80
- package/lib/Responsive/index.js +0 -4
- package/lib/Responsive/props/propTypes.js +0 -3
- package/lib/Responsive/sizeObservers.js +17 -53
- package/lib/Responsive/utils/index.js +3 -11
- package/lib/Responsive/utils/shallowCompare.js +2 -11
- package/lib/Responsive/windowResizeObserver.js +0 -8
- package/lib/ResponsiveDropBox/ResponsiveDropBox.js +17 -45
- package/lib/ResponsiveDropBox/props/propTypes.js +0 -3
- package/lib/Ribbon/Ribbon.js +13 -33
- package/lib/Ribbon/__tests__/Ribbon.spec.js +0 -22
- package/lib/Ribbon/props/propTypes.js +0 -3
- package/lib/RippleEffect/RippleEffect.js +10 -18
- package/lib/RippleEffect/props/propTypes.js +0 -3
- package/lib/Select/GroupSelect.js +130 -229
- package/lib/Select/Select.js +209 -290
- package/lib/Select/SelectWithAvatar.js +56 -102
- package/lib/Select/SelectWithIcon.js +76 -132
- package/lib/Select/__tests__/Select.spec.js +91 -133
- package/lib/Select/index.js +0 -5
- package/lib/Select/props/defaultProps.js +4 -5
- package/lib/Select/props/propTypes.js +0 -4
- package/lib/Stencils/Stencils.js +10 -29
- package/lib/Stencils/__tests__/Stencils.spec.js +0 -12
- package/lib/Stencils/props/propTypes.js +0 -3
- package/lib/Switch/Switch.js +34 -57
- package/lib/Switch/props/propTypes.js +0 -3
- package/lib/Tab/Tab.js +27 -40
- package/lib/Tab/TabContent.js +5 -12
- package/lib/Tab/TabContentWrapper.js +6 -13
- package/lib/Tab/TabWrapper.js +19 -37
- package/lib/Tab/Tabs.js +91 -171
- package/lib/Tab/__tests__/Tab.spec.js +58 -67
- package/lib/Tab/__tests__/TabContent.spec.js +6 -10
- package/lib/Tab/__tests__/TabContentWrapper.spec.js +20 -28
- package/lib/Tab/__tests__/TabWrapper.spec.js +0 -12
- package/lib/Tab/__tests__/Tabs.spec.js +39 -53
- package/lib/Tab/index.js +0 -6
- package/lib/Tab/props/propTypes.js +0 -3
- package/lib/Tag/Tag.js +43 -72
- package/lib/Tag/__tests__/Tag.spec.js +8 -14
- package/lib/Tag/props/propTypes.js +0 -3
- package/lib/TextBox/TextBox.js +59 -85
- package/lib/TextBox/__tests__/TextBox.spec.js +4 -14
- package/lib/TextBox/props/propTypes.js +4 -6
- package/lib/TextBoxIcon/TextBoxIcon.js +52 -79
- package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +5 -14
- package/lib/TextBoxIcon/props/propTypes.js +0 -3
- package/lib/Textarea/Textarea.js +29 -54
- package/lib/Textarea/__tests__/Textarea.spec.js +2 -14
- package/lib/Textarea/props/propTypes.js +0 -3
- package/lib/Tooltip/Tooltip.js +31 -94
- package/lib/Tooltip/__tests__/Tooltip.spec.js +3 -24
- package/lib/Tooltip/props/propTypes.js +0 -3
- package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +16 -40
- package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +0 -3
- package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +25 -53
- package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +0 -3
- package/lib/VelocityAnimation/index.js +0 -3
- package/lib/css.js +0 -40
- package/lib/deprecated/PortalLayer/PortalLayer.js +23 -46
- package/lib/deprecated/PortalLayer/props/propTypes.js +0 -3
- package/lib/index.js +0 -57
- package/lib/semantic/Button/Button.js +22 -42
- package/lib/semantic/Button/props/propTypes.js +0 -3
- package/lib/semantic/index.js +0 -2
- package/lib/utils/Common.js +18 -108
- package/lib/utils/ContextOptimizer.js +10 -16
- package/lib/utils/__tests__/constructFullName.spec.js +0 -1
- package/lib/utils/__tests__/debounce.spec.js +2 -3
- package/lib/utils/__tests__/getInitial.spec.js +0 -1
- package/lib/utils/constructFullName.js +4 -13
- package/lib/utils/css/compileClassNames.js +0 -6
- package/lib/utils/css/mergeStyle.js +7 -10
- package/lib/utils/css/utils.js +0 -8
- package/lib/utils/datetime/common.js +5 -34
- package/lib/utils/debounce.js +1 -6
- package/lib/utils/dropDownUtils.js +59 -175
- package/lib/utils/dummyFunction.js +0 -2
- package/lib/utils/getHTMLFontSize.js +0 -1
- package/lib/utils/getInitial.js +0 -6
- package/lib/utils/index.js +0 -4
- package/lib/utils/scrollTo.js +0 -2
- package/lib/utils/shallowEqual.js +0 -8
- package/package.json +2 -2
|
@@ -6,12 +6,11 @@ export function getChangedDay(values, event, focusOrders, keyActions) {
|
|
|
6
6
|
which
|
|
7
7
|
} = event;
|
|
8
8
|
const {
|
|
9
|
-
day = ''
|
|
10
|
-
/*month = '', year = ''*/
|
|
11
|
-
|
|
9
|
+
day = '' /*month = '', year = ''*/
|
|
12
10
|
} = values;
|
|
13
11
|
let isChanged = false;
|
|
14
|
-
let newDay = Number.parseInt(day) || 0;
|
|
12
|
+
let newDay = Number.parseInt(day) || 0;
|
|
13
|
+
// const newMonth = Number.parseInt(month) || 0;
|
|
15
14
|
// const newYear = Number.parseInt(year) || 0;
|
|
16
15
|
|
|
17
16
|
const {
|
|
@@ -21,11 +20,8 @@ export function getChangedDay(values, event, focusOrders, keyActions) {
|
|
|
21
20
|
const isNewType = getIsNewValueType(focusOrders, keyActions);
|
|
22
21
|
const {
|
|
23
22
|
startPoint,
|
|
24
|
-
endPoint
|
|
25
|
-
/*getDayEnd(newMonth, newYear);*/
|
|
26
|
-
|
|
23
|
+
endPoint /*getDayEnd(newMonth, newYear);*/
|
|
27
24
|
} = getDayDetails();
|
|
28
|
-
|
|
29
25
|
if (keyCode === 38) {
|
|
30
26
|
//up arrow
|
|
31
27
|
if (newDay === endPoint || !newDay) {
|
|
@@ -48,19 +44,15 @@ export function getChangedDay(values, event, focusOrders, keyActions) {
|
|
|
48
44
|
const keyString = String.fromCharCode(which);
|
|
49
45
|
let newValue = isNewType ? keyString : day.toString() + keyString;
|
|
50
46
|
newValue = Number.parseInt(newValue);
|
|
51
|
-
|
|
52
47
|
if (isNewType) {
|
|
53
48
|
isChanged = true;
|
|
54
|
-
|
|
55
49
|
if (newValue * 10 > endPoint) {
|
|
56
50
|
newFocusOrder += 1;
|
|
57
51
|
}
|
|
58
|
-
|
|
59
52
|
newDay = newValue;
|
|
60
53
|
} else {
|
|
61
54
|
isChanged = true;
|
|
62
55
|
newFocusOrder += 1;
|
|
63
|
-
|
|
64
56
|
if (newValue > endPoint) {
|
|
65
57
|
newDay = endPoint;
|
|
66
58
|
} else if (!newValue) {
|
|
@@ -73,7 +65,6 @@ export function getChangedDay(values, event, focusOrders, keyActions) {
|
|
|
73
65
|
isChanged = true;
|
|
74
66
|
newDay = '';
|
|
75
67
|
}
|
|
76
|
-
|
|
77
68
|
return {
|
|
78
69
|
day: newDay,
|
|
79
70
|
isChanged,
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
/** * Libraries ** */
|
|
4
4
|
import datetime from '@zohodesk/datetimejs';
|
|
5
|
-
/** * Methods ** */
|
|
6
5
|
|
|
6
|
+
/** * Methods ** */
|
|
7
7
|
import { getMonthEnd } from '../../utils/datetime/common';
|
|
8
|
-
/** * Constants ** */
|
|
9
8
|
|
|
9
|
+
/** * Constants ** */
|
|
10
10
|
import { flags, INVALID_DATE } from '../constants';
|
|
11
11
|
export function convertYearToTwoDigit(year) {
|
|
12
12
|
return parseInt(year.toString().slice(-2));
|
|
@@ -15,7 +15,6 @@ export function addZero() {
|
|
|
15
15
|
let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
16
16
|
let length = arguments.length > 1 ? arguments[1] : undefined;
|
|
17
17
|
let newValue = value.toString();
|
|
18
|
-
|
|
19
18
|
for (let i = 0; i < length; i++) {
|
|
20
19
|
if (newValue.length < length) {
|
|
21
20
|
newValue = `0${newValue}`;
|
|
@@ -23,19 +22,16 @@ export function addZero() {
|
|
|
23
22
|
break;
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
|
-
|
|
27
25
|
return newValue;
|
|
28
26
|
}
|
|
29
27
|
export function getDayEnd(month, year) {
|
|
30
28
|
month -= 1;
|
|
31
29
|
const monthend = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
32
|
-
|
|
33
30
|
if (month && year) {
|
|
34
31
|
return getMonthEnd(month, year);
|
|
35
32
|
} else if (month) {
|
|
36
33
|
return monthend[month];
|
|
37
34
|
}
|
|
38
|
-
|
|
39
35
|
return 31;
|
|
40
36
|
}
|
|
41
37
|
export function getIsNumberTyped(event) {
|
|
@@ -45,18 +41,15 @@ export function getIsNumberTyped(event) {
|
|
|
45
41
|
metaKey,
|
|
46
42
|
shiftKey
|
|
47
43
|
} = event;
|
|
48
|
-
|
|
49
44
|
if (keyCode >= 48 && keyCode <= 57 && !ctrlKey && !metaKey && !shiftKey) {
|
|
50
45
|
return true;
|
|
51
46
|
}
|
|
52
|
-
|
|
53
47
|
return false;
|
|
54
48
|
}
|
|
55
49
|
export function getIsDeleteTyped(keyCode) {
|
|
56
50
|
if (keyCode === 8) {
|
|
57
51
|
return true;
|
|
58
52
|
}
|
|
59
|
-
|
|
60
53
|
return false;
|
|
61
54
|
}
|
|
62
55
|
export function getIsNewValueType(focusOrders, keyActions) {
|
|
@@ -85,7 +78,6 @@ export function getMonthDetails() {
|
|
|
85
78
|
export function getYearDetails(yearLength) {
|
|
86
79
|
const dateObj = new Date();
|
|
87
80
|
const year = dateObj.getFullYear();
|
|
88
|
-
|
|
89
81
|
if (yearLength === 2) {
|
|
90
82
|
return {
|
|
91
83
|
startPoint: 0,
|
|
@@ -93,7 +85,6 @@ export function getYearDetails(yearLength) {
|
|
|
93
85
|
currentYear: year
|
|
94
86
|
};
|
|
95
87
|
}
|
|
96
|
-
|
|
97
88
|
return {
|
|
98
89
|
startPoint: 1850,
|
|
99
90
|
endPoint: 9999,
|
|
@@ -107,11 +98,9 @@ export function convertTwoDigitToYear() {
|
|
|
107
98
|
let year = dateObj.getFullYear();
|
|
108
99
|
const digitValueStr = addZero(digitValue.toString(), 2);
|
|
109
100
|
year = selectedYear ? selectedYear : year;
|
|
110
|
-
|
|
111
101
|
if (digitValueStr && digitValueStr.length <= 2) {
|
|
112
102
|
return parseInt(year.toString().slice(0, 2) + digitValueStr);
|
|
113
103
|
}
|
|
114
|
-
|
|
115
104
|
return digitValue;
|
|
116
105
|
}
|
|
117
106
|
export function getHourDetails(is24Hour) {
|
|
@@ -126,12 +115,10 @@ export function getHourSuggestions(is24Hour) {
|
|
|
126
115
|
endPoint
|
|
127
116
|
} = getHourDetails(is24Hour);
|
|
128
117
|
const hourArr = [];
|
|
129
|
-
|
|
130
118
|
for (let hour = startPoint; hour <= endPoint; hour++) {
|
|
131
119
|
const htxt = addZeroIfNeeded(hour);
|
|
132
120
|
hourArr.push(htxt);
|
|
133
121
|
}
|
|
134
|
-
|
|
135
122
|
return hourArr;
|
|
136
123
|
}
|
|
137
124
|
export function getMinuteDetails() {
|
|
@@ -146,12 +133,10 @@ export function getMinuteSuggestions() {
|
|
|
146
133
|
endPoint
|
|
147
134
|
} = getMinuteDetails();
|
|
148
135
|
const minArr = [];
|
|
149
|
-
|
|
150
136
|
for (let minute = startPoint; minute <= endPoint; minute++) {
|
|
151
137
|
const mtxt = addZeroIfNeeded(minute);
|
|
152
138
|
minArr.push(mtxt);
|
|
153
139
|
}
|
|
154
|
-
|
|
155
140
|
return minArr;
|
|
156
141
|
}
|
|
157
142
|
export function addZeroIfNeeded(value) {
|
|
@@ -161,14 +146,12 @@ export function getIsNoonValueTyped(event) {
|
|
|
161
146
|
const {
|
|
162
147
|
keyCode
|
|
163
148
|
} = event;
|
|
164
|
-
|
|
165
149
|
if (keyCode === 65 || keyCode === 77 || keyCode === 80) {
|
|
166
150
|
//A -65
|
|
167
151
|
//M -77
|
|
168
152
|
//P -80
|
|
169
153
|
return true;
|
|
170
154
|
}
|
|
171
|
-
|
|
172
155
|
return false;
|
|
173
156
|
}
|
|
174
157
|
export function getNoonDetails() {
|
|
@@ -176,42 +159,32 @@ export function getNoonDetails() {
|
|
|
176
159
|
allowedValues: ['AM', 'PM']
|
|
177
160
|
};
|
|
178
161
|
}
|
|
179
|
-
|
|
180
162
|
function getIsArrowTyped(keyCode) {
|
|
181
163
|
const arrowKeycodes = [37, 38, 39, 40];
|
|
182
|
-
|
|
183
164
|
if (arrowKeycodes.indexOf(keyCode) >= 0) {
|
|
184
165
|
return true;
|
|
185
166
|
}
|
|
186
|
-
|
|
187
167
|
return false;
|
|
188
168
|
}
|
|
189
|
-
|
|
190
169
|
export function getIsSupportedKey(event) {
|
|
191
170
|
const {
|
|
192
171
|
keyCode
|
|
193
172
|
} = event;
|
|
194
|
-
|
|
195
173
|
if (getIsArrowTyped(keyCode) || getIsDeleteTyped(keyCode) || getIsNumberTyped(event) || getIsNoonValueTyped(event)) {
|
|
196
174
|
return true;
|
|
197
175
|
}
|
|
198
|
-
|
|
199
176
|
return false;
|
|
200
177
|
}
|
|
201
178
|
export function arrayIsNotEqual(a, b) {
|
|
202
179
|
return a.some((val, index) => val !== b[index]);
|
|
203
180
|
}
|
|
204
|
-
|
|
205
181
|
function getIsEmptyValue(value, startPoint, endPoint) {
|
|
206
182
|
const newValue = parseInt(value) || 0;
|
|
207
|
-
|
|
208
183
|
if (newValue >= startPoint && newValue <= endPoint) {
|
|
209
184
|
return false;
|
|
210
185
|
}
|
|
211
|
-
|
|
212
186
|
return true;
|
|
213
187
|
}
|
|
214
|
-
|
|
215
188
|
export function getIsEmptyHour(value, is24Hour) {
|
|
216
189
|
const {
|
|
217
190
|
startPoint,
|
|
@@ -233,7 +206,6 @@ export function getIsCurrentYear(_ref) {
|
|
|
233
206
|
timeZone
|
|
234
207
|
} = _ref;
|
|
235
208
|
let isCurrentYear = false;
|
|
236
|
-
|
|
237
209
|
if (value && value !== INVALID_DATE) {
|
|
238
210
|
const dateObj = isDateTime ? datetime.toDate(datetime.tz.utcToTz(value, timeZone)) : datetime.toDate(value);
|
|
239
211
|
const currentDateObj = new Date();
|
|
@@ -241,7 +213,6 @@ export function getIsCurrentYear(_ref) {
|
|
|
241
213
|
const selectedYear = dateObj.getFullYear();
|
|
242
214
|
isCurrentYear = currentYear === selectedYear;
|
|
243
215
|
}
|
|
244
|
-
|
|
245
216
|
return {
|
|
246
217
|
isCurrentYear
|
|
247
218
|
};
|
|
@@ -254,7 +225,6 @@ export function removeYearPattern(dateFormatArr, patternArr) {
|
|
|
254
225
|
const {
|
|
255
226
|
type
|
|
256
227
|
} = flags[val];
|
|
257
|
-
|
|
258
228
|
if (type === 'year') {
|
|
259
229
|
yearIndex = index;
|
|
260
230
|
} else {
|
|
@@ -23,7 +23,6 @@ export function getChangedMonth(values, event, focusOrders, keyActions) {
|
|
|
23
23
|
startPoint,
|
|
24
24
|
endPoint
|
|
25
25
|
} = getMonthDetails();
|
|
26
|
-
|
|
27
26
|
if (keyCode === 38) {
|
|
28
27
|
//up arrow
|
|
29
28
|
if (newMonth === endPoint || !newMonth) {
|
|
@@ -46,19 +45,15 @@ export function getChangedMonth(values, event, focusOrders, keyActions) {
|
|
|
46
45
|
const keyString = String.fromCharCode(which);
|
|
47
46
|
let newValue = isNewType ? keyString : month.toString() + keyString;
|
|
48
47
|
newValue = Number.parseInt(newValue);
|
|
49
|
-
|
|
50
48
|
if (isNewType) {
|
|
51
49
|
isChanged = true;
|
|
52
|
-
|
|
53
50
|
if (newValue * 10 > endPoint) {
|
|
54
51
|
newFocusOrder += 1;
|
|
55
52
|
}
|
|
56
|
-
|
|
57
53
|
newMonth = newValue;
|
|
58
54
|
} else {
|
|
59
55
|
isChanged = true;
|
|
60
56
|
newFocusOrder += 1;
|
|
61
|
-
|
|
62
57
|
if (newValue > endPoint) {
|
|
63
58
|
newMonth = endPoint;
|
|
64
59
|
} else if (!newValue) {
|
|
@@ -71,15 +66,12 @@ export function getChangedMonth(values, event, focusOrders, keyActions) {
|
|
|
71
66
|
isChanged = true;
|
|
72
67
|
newMonth = '';
|
|
73
68
|
}
|
|
74
|
-
|
|
75
69
|
const dayEnd = getDayEnd(newMonth, newYear);
|
|
76
70
|
let dayChanged = false;
|
|
77
|
-
|
|
78
71
|
if (newDay && newDay > dayEnd) {
|
|
79
72
|
dayChanged = true;
|
|
80
73
|
newDay = dayEnd;
|
|
81
74
|
}
|
|
82
|
-
|
|
83
75
|
return {
|
|
84
76
|
day: dayChanged ? newDay : day,
|
|
85
77
|
month: newMonth,
|
|
@@ -23,7 +23,6 @@ export function getChangedHour(values, event, focusOrders, keyActions) {
|
|
|
23
23
|
startPoint,
|
|
24
24
|
endPoint
|
|
25
25
|
} = getHourDetails(is24Hour);
|
|
26
|
-
|
|
27
26
|
if (keyCode === 38) {
|
|
28
27
|
//up arrow
|
|
29
28
|
if (newHour === endPoint || getIsEmptyHour(newHour, is24Hour)) {
|
|
@@ -46,19 +45,15 @@ export function getChangedHour(values, event, focusOrders, keyActions) {
|
|
|
46
45
|
const keyString = String.fromCharCode(which);
|
|
47
46
|
let newValue = isNewType ? keyString : hour.toString() + keyString;
|
|
48
47
|
newValue = Number.parseInt(newValue);
|
|
49
|
-
|
|
50
48
|
if (isNewType) {
|
|
51
49
|
isChanged = true;
|
|
52
|
-
|
|
53
50
|
if (newValue * 10 > endPoint) {
|
|
54
51
|
newFocusOrder += 1;
|
|
55
52
|
}
|
|
56
|
-
|
|
57
53
|
newHour = newValue;
|
|
58
54
|
} else {
|
|
59
55
|
isChanged = true;
|
|
60
56
|
newFocusOrder += 1;
|
|
61
|
-
|
|
62
57
|
if (newValue > endPoint) {
|
|
63
58
|
newHour = endPoint;
|
|
64
59
|
} else if (!newValue) {
|
|
@@ -71,7 +66,6 @@ export function getChangedHour(values, event, focusOrders, keyActions) {
|
|
|
71
66
|
isChanged = true;
|
|
72
67
|
newHour = '';
|
|
73
68
|
}
|
|
74
|
-
|
|
75
69
|
return {
|
|
76
70
|
hour: newHour,
|
|
77
71
|
isChanged,
|
|
@@ -98,7 +92,6 @@ export function getChangedMinute(values, event, focusOrders, keyActions) {
|
|
|
98
92
|
startPoint,
|
|
99
93
|
endPoint
|
|
100
94
|
} = getMinuteDetails();
|
|
101
|
-
|
|
102
95
|
if (keyCode === 38) {
|
|
103
96
|
//up arrow
|
|
104
97
|
if (newMinute === endPoint || isEmptyMinute) {
|
|
@@ -121,19 +114,15 @@ export function getChangedMinute(values, event, focusOrders, keyActions) {
|
|
|
121
114
|
const keyString = String.fromCharCode(which);
|
|
122
115
|
let newValue = isNewType ? keyString : minute.toString() + keyString;
|
|
123
116
|
newValue = Number.parseInt(newValue);
|
|
124
|
-
|
|
125
117
|
if (isNewType) {
|
|
126
118
|
isChanged = true;
|
|
127
|
-
|
|
128
119
|
if (newValue * 10 > endPoint) {
|
|
129
120
|
newFocusOrder += 1;
|
|
130
121
|
}
|
|
131
|
-
|
|
132
122
|
newMinute = newValue;
|
|
133
123
|
} else {
|
|
134
124
|
isChanged = true;
|
|
135
125
|
newFocusOrder += 1;
|
|
136
|
-
|
|
137
126
|
if (newValue > endPoint) {
|
|
138
127
|
newMinute = endPoint;
|
|
139
128
|
} else {
|
|
@@ -144,16 +133,13 @@ export function getChangedMinute(values, event, focusOrders, keyActions) {
|
|
|
144
133
|
isChanged = true;
|
|
145
134
|
newMinute = '';
|
|
146
135
|
}
|
|
147
|
-
|
|
148
136
|
return {
|
|
149
137
|
minute: newMinute,
|
|
150
138
|
isChanged,
|
|
151
139
|
focusOrder: newFocusOrder
|
|
152
140
|
};
|
|
153
141
|
}
|
|
154
|
-
export function getChangedNoon(values, event, focusOrders
|
|
155
|
-
/*keyActions*/
|
|
156
|
-
) {
|
|
142
|
+
export function getChangedNoon(values, event, focusOrders /*keyActions*/) {
|
|
157
143
|
const {
|
|
158
144
|
keyCode,
|
|
159
145
|
which
|
|
@@ -166,7 +152,9 @@ export function getChangedNoon(values, event, focusOrders
|
|
|
166
152
|
const {
|
|
167
153
|
focusOrder
|
|
168
154
|
} = focusOrders;
|
|
169
|
-
const newFocusOrder = focusOrder;
|
|
155
|
+
const newFocusOrder = focusOrder;
|
|
156
|
+
|
|
157
|
+
// const isNewType = getIsNewValueType(focusOrders, keyActions);
|
|
170
158
|
|
|
171
159
|
const {
|
|
172
160
|
allowedValues
|
|
@@ -174,7 +162,6 @@ export function getChangedNoon(values, event, focusOrders
|
|
|
174
162
|
const [startPoint] = allowedValues;
|
|
175
163
|
const endPoint = allowedValues[allowedValues.length - 1];
|
|
176
164
|
const currentNoonIndex = allowedValues.indexOf(newNoon);
|
|
177
|
-
|
|
178
165
|
if (keyCode === 38) {
|
|
179
166
|
//up arrow
|
|
180
167
|
if (newNoon === endPoint || !newNoon) {
|
|
@@ -194,11 +181,11 @@ export function getChangedNoon(values, event, focusOrders
|
|
|
194
181
|
newNoon = allowedValues[currentNoonIndex - 1];
|
|
195
182
|
}
|
|
196
183
|
} else if (getIsNoonValueTyped(event)) {
|
|
197
|
-
const keyString = String.fromCharCode(which);
|
|
184
|
+
const keyString = String.fromCharCode(which);
|
|
198
185
|
|
|
186
|
+
// let newValue = isNewType ? keyString : noon.toString() + keyString;
|
|
199
187
|
const newValue = keyString;
|
|
200
188
|
const needChangeNoon = newNoon.indexOf(newValue) === -1 ? true : false;
|
|
201
|
-
|
|
202
189
|
if (needChangeNoon) {
|
|
203
190
|
let newValueIndex = currentNoonIndex;
|
|
204
191
|
allowedValues.some((val, index) => {
|
|
@@ -206,10 +193,8 @@ export function getChangedNoon(values, event, focusOrders
|
|
|
206
193
|
newValueIndex = index;
|
|
207
194
|
return true;
|
|
208
195
|
}
|
|
209
|
-
|
|
210
196
|
return false;
|
|
211
197
|
});
|
|
212
|
-
|
|
213
198
|
if (currentNoonIndex !== newValueIndex) {
|
|
214
199
|
isChanged = true;
|
|
215
200
|
newNoon = allowedValues[newValueIndex];
|
|
@@ -219,7 +204,6 @@ export function getChangedNoon(values, event, focusOrders
|
|
|
219
204
|
isChanged = true;
|
|
220
205
|
newNoon = '';
|
|
221
206
|
}
|
|
222
|
-
|
|
223
207
|
return {
|
|
224
208
|
noon: newNoon,
|
|
225
209
|
isChanged,
|
|
@@ -15,17 +15,16 @@ export function getChangedYear(values, event, focusOrders, keyActions, _ref) {
|
|
|
15
15
|
day = '',
|
|
16
16
|
month = ''
|
|
17
17
|
} = values;
|
|
18
|
-
let isChanged = false;
|
|
18
|
+
let isChanged = false;
|
|
19
19
|
|
|
20
|
+
//Year Two Digit case
|
|
20
21
|
const {
|
|
21
22
|
length: yearLength
|
|
22
23
|
} = yearInfo;
|
|
23
24
|
const oldYear = year; // For get Centuries
|
|
24
|
-
|
|
25
25
|
if (yearLength === 2) {
|
|
26
26
|
year = convertYearToTwoDigit(year).toString();
|
|
27
27
|
}
|
|
28
|
-
|
|
29
28
|
let newDay = Number.parseInt(day) || 0;
|
|
30
29
|
const newMonth = Number.parseInt(month) || 0;
|
|
31
30
|
let newYear = Number.parseInt(year) || 0;
|
|
@@ -39,7 +38,6 @@ export function getChangedYear(values, event, focusOrders, keyActions, _ref) {
|
|
|
39
38
|
endPoint,
|
|
40
39
|
currentYear
|
|
41
40
|
} = getYearDetails(yearLength);
|
|
42
|
-
|
|
43
41
|
if (keyCode === 38) {
|
|
44
42
|
//up arrow
|
|
45
43
|
if (newYear === endPoint) {
|
|
@@ -69,17 +67,14 @@ export function getChangedYear(values, event, focusOrders, keyActions, _ref) {
|
|
|
69
67
|
let newValue = isNewType ? keyString : year.toString() + keyString;
|
|
70
68
|
const newValueString = newValue || '';
|
|
71
69
|
newValue = Number.parseInt(newValue);
|
|
72
|
-
|
|
73
70
|
if (isNewType) {
|
|
74
71
|
isChanged = true;
|
|
75
72
|
newYear = newValue;
|
|
76
73
|
} else {
|
|
77
74
|
isChanged = true;
|
|
78
|
-
|
|
79
75
|
if (newValue * 10 > endPoint) {
|
|
80
76
|
newFocusOrder += 1;
|
|
81
77
|
}
|
|
82
|
-
|
|
83
78
|
if (newValue > endPoint) {
|
|
84
79
|
// newYear = endPoint;
|
|
85
80
|
newYear = currentYear;
|
|
@@ -98,19 +93,15 @@ export function getChangedYear(values, event, focusOrders, keyActions, _ref) {
|
|
|
98
93
|
isChanged = true;
|
|
99
94
|
newYear = '';
|
|
100
95
|
}
|
|
101
|
-
|
|
102
96
|
if (yearLength === 2) {
|
|
103
97
|
newYear = convertTwoDigitToYear(newYear, oldYear);
|
|
104
98
|
}
|
|
105
|
-
|
|
106
99
|
const dayEnd = getDayEnd(newMonth, newYear);
|
|
107
100
|
let dayChanged = false;
|
|
108
|
-
|
|
109
101
|
if (newDay && newDay > dayEnd) {
|
|
110
102
|
dayChanged = true;
|
|
111
103
|
newDay = dayEnd;
|
|
112
104
|
}
|
|
113
|
-
|
|
114
105
|
return {
|
|
115
106
|
day: dayChanged ? newDay : day,
|
|
116
107
|
year: newYear,
|
|
@@ -4,50 +4,56 @@ export const clone = (a, b, c, d, e, f) => {
|
|
|
4
4
|
};
|
|
5
5
|
export const extract = (obj, keys, target) => {
|
|
6
6
|
target = target || {};
|
|
7
|
-
|
|
8
7
|
for (var i in obj) {
|
|
9
8
|
if (keys.indexOf(i) < 0) continue;
|
|
10
9
|
if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
|
|
11
10
|
target[i] = obj[i];
|
|
12
11
|
}
|
|
13
|
-
|
|
14
12
|
return target;
|
|
15
13
|
};
|
|
16
14
|
export const omit = (obj, keys, target) => {
|
|
17
15
|
target = target || {};
|
|
18
|
-
|
|
19
16
|
for (var i in obj) {
|
|
20
17
|
if (keys.indexOf(i) >= 0) continue;
|
|
21
18
|
if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
|
|
22
19
|
target[i] = obj[i];
|
|
23
20
|
}
|
|
24
|
-
|
|
25
21
|
return target;
|
|
26
22
|
};
|
|
27
23
|
export const equals = (x, y) => {
|
|
28
|
-
if (x === y) return true;
|
|
24
|
+
if (x === y) return true;
|
|
25
|
+
// if both x and y are null or undefined and exactly the same
|
|
29
26
|
|
|
30
|
-
if (x == null && y != null || x != null && y == null) return false;
|
|
27
|
+
if (x == null && y != null || x != null && y == null) return false;
|
|
28
|
+
//break if not same null or undefined
|
|
31
29
|
|
|
32
|
-
if (!(x instanceof Object) || !(y instanceof Object)) return false;
|
|
30
|
+
if (!(x instanceof Object) || !(y instanceof Object)) return false;
|
|
31
|
+
// if they are not strictly equal, they both need to be Objects
|
|
33
32
|
|
|
34
|
-
if (x.constructor !== y.constructor) return false;
|
|
33
|
+
if (x.constructor !== y.constructor) return false;
|
|
34
|
+
// they must have the exact same prototype chain, the closest we can do is
|
|
35
35
|
// test there constructor.
|
|
36
36
|
|
|
37
37
|
for (var p in x) {
|
|
38
|
-
if (!x.hasOwnProperty(p)) continue;
|
|
38
|
+
if (!x.hasOwnProperty(p)) continue;
|
|
39
|
+
// other properties were tested using x.constructor === y.constructor
|
|
39
40
|
|
|
40
|
-
if (!y.hasOwnProperty(p)) return false;
|
|
41
|
+
if (!y.hasOwnProperty(p)) return false;
|
|
42
|
+
// allows to compare x[ p ] and y[ p ] when set to undefined
|
|
41
43
|
|
|
42
|
-
if (x[p] === y[p]) continue;
|
|
44
|
+
if (x[p] === y[p]) continue;
|
|
45
|
+
// if they have the same strict value or identity then they are equal
|
|
43
46
|
|
|
44
|
-
if (typeof x[p] !== 'object') return false;
|
|
47
|
+
if (typeof x[p] !== 'object') return false;
|
|
48
|
+
// Numbers, Strings, Functions, Booleans must be strictly equal
|
|
45
49
|
|
|
46
|
-
if (!equals(x[p], y[p])) return false;
|
|
50
|
+
if (!equals(x[p], y[p])) return false;
|
|
51
|
+
// Objects and Arrays must be tested recursively
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
for (p in y) {
|
|
50
|
-
if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) return false;
|
|
55
|
+
if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) return false;
|
|
56
|
+
// allows x[ p ] to be set to undefined
|
|
51
57
|
}
|
|
52
58
|
|
|
53
59
|
return true;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
const exports = {};
|
|
2
2
|
let types = 'Array Object String Date RegExp Function Boolean Number Null Undefined'.split(' ');
|
|
3
|
-
|
|
4
3
|
let type = function () {
|
|
5
4
|
return Object.prototype.toString.call(this).slice(8, -1);
|
|
6
5
|
};
|
|
7
|
-
|
|
8
6
|
for (let i = types.length; i--;) {
|
|
9
7
|
/*eslint-disable */
|
|
10
8
|
exports['is' + types[i]] = function (self) {
|
|
@@ -15,5 +13,4 @@ for (let i = types.length; i--;) {
|
|
|
15
13
|
}
|
|
16
14
|
/*eslint-enable */
|
|
17
15
|
|
|
18
|
-
|
|
19
16
|
export default exports;
|