@zohodesk/components 1.0.0-alpha-271 → 1.0.0-alpha-272
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 +3 -3
- package/es/AppContainer/AppContainer.js +13 -5
- package/es/Avatar/Avatar.js +23 -11
- package/es/AvatarTeam/AvatarTeam.js +3 -3
- package/es/Button/Button.js +4 -3
- package/es/Buttongroup/Buttongroup.js +3 -3
- package/es/Card/Card.js +21 -10
- package/es/CheckBox/CheckBox.js +5 -3
- package/es/DateTime/CalendarView.js +32 -20
- package/es/DateTime/DateTime.js +75 -10
- package/es/DateTime/DateTimePopupFooter.js +4 -2
- package/es/DateTime/DateTimePopupHeader.js +8 -2
- package/es/DateTime/DateWidget.js +98 -35
- package/es/DateTime/DaysRow.js +4 -2
- package/es/DateTime/Time.js +10 -2
- package/es/DateTime/YearView.js +28 -4
- package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
- package/es/DateTime/__tests__/DateTime.spec.js +1 -0
- package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
- package/es/DateTime/common.js +3 -0
- package/es/DateTime/constants.js +1 -0
- package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
- package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
- package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
- package/es/DateTime/dateFormatUtils/index.js +32 -2
- 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/props/defaultProps.js +2 -1
- 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/cssJSLogic.js +5 -3
- package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
- package/es/DropBox/props/defaultProps.js +1 -2
- package/es/DropBox/props/propTypes.js +1 -2
- package/es/DropDown/DropDown.js +8 -4
- package/es/DropDown/DropDownHeading.js +4 -5
- package/es/DropDown/DropDownItem.js +6 -0
- package/es/DropDown/DropDownSearch.js +4 -0
- package/es/DropDown/DropDownSeparator.js +1 -0
- package/es/DropDown/__tests__/DropDown.spec.js +1 -2
- package/es/Heading/Heading.js +2 -3
- package/es/Label/Label.js +2 -3
- package/es/Layout/Box.js +13 -0
- package/es/Layout/Container.js +12 -1
- package/es/Layout/index.js +1 -2
- package/es/ListItem/ListContainer.js +8 -3
- package/es/ListItem/ListItem.js +9 -3
- 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/MultiSelect.js +99 -32
- package/es/MultiSelect/MultiSelectHeader.js +3 -0
- package/es/MultiSelect/MultiSelectWithAvatar.js +12 -6
- package/es/MultiSelect/SelectedOptions.js +6 -3
- package/es/MultiSelect/Suggestions.js +7 -3
- package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
- package/es/MultiSelect/props/propTypes.js +2 -0
- package/es/PopOver/PopOver.js +18 -2
- package/es/PopOver/__tests__/PopOver.spec.js +2 -1
- package/es/Popup/Popup.js +77 -24
- package/es/Popup/__tests__/Popup.spec.js +17 -5
- 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 +4 -2
- 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/Ribbon/Ribbon.js +3 -2
- package/es/RippleEffect/RippleEffect.js +1 -3
- package/es/Select/GroupSelect.js +58 -14
- package/es/Select/Select.js +79 -33
- package/es/Select/SelectWithAvatar.js +17 -4
- package/es/Select/SelectWithIcon.js +46 -5
- package/es/Select/__tests__/Select.spec.js +6 -8
- package/es/Select/props/propTypes.js +1 -0
- package/es/Stencils/Stencils.js +3 -3
- package/es/Switch/Switch.js +5 -3
- package/es/Tab/Tab.js +4 -4
- package/es/Tab/TabContent.js +1 -0
- package/es/Tab/TabContentWrapper.js +2 -0
- package/es/Tab/TabWrapper.js +5 -2
- package/es/Tab/Tabs.js +54 -7
- package/es/Tab/__tests__/Tab.spec.js +1 -3
- package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
- package/es/Tag/Tag.js +6 -3
- package/es/TextBox/TextBox.js +15 -3
- package/es/TextBox/__tests__/TextBox.spec.js +1 -4
- package/es/TextBoxIcon/TextBoxIcon.js +9 -2
- package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
- package/es/Textarea/Textarea.js +12 -3
- package/es/Textarea/__tests__/Textarea.spec.js +2 -2
- package/es/Tooltip/Tooltip.js +58 -14
- package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
- package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
- package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
- package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
- package/es/semantic/Button/Button.js +3 -2
- package/es/utils/Common.js +54 -9
- package/es/utils/ContextOptimizer.js +4 -5
- package/es/utils/__tests__/debounce.spec.js +2 -2
- package/es/utils/constructFullName.js +2 -0
- package/es/utils/css/compileClassNames.js +5 -0
- package/es/utils/css/mergeStyle.js +7 -6
- package/es/utils/css/utils.js +1 -0
- package/es/utils/datetime/GMTZones.js +48 -0
- package/es/utils/datetime/common.js +31 -7
- 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/lib/Accordion/Accordion.js +42 -18
- package/lib/Accordion/AccordionItem.js +40 -18
- package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
- package/lib/Accordion/index.js +3 -0
- package/lib/Accordion/props/propTypes.js +3 -0
- package/lib/Animation/Animation.js +38 -18
- package/lib/Animation/__tests__/Animation.spec.js +11 -7
- package/lib/Animation/props/propTypes.js +3 -0
- package/lib/AppContainer/AppContainer.js +56 -21
- package/lib/AppContainer/props/propTypes.js +3 -0
- package/lib/Avatar/Avatar.js +78 -38
- package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
- package/lib/Avatar/props/propTypes.js +3 -0
- package/lib/AvatarTeam/AvatarTeam.js +52 -30
- package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
- package/lib/AvatarTeam/props/propTypes.js +3 -0
- package/lib/Button/Button.js +31 -20
- 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/__test__/Buttongroup.spec.js +10 -0
- package/lib/Buttongroup/props/propTypes.js +3 -0
- package/lib/Card/Card.js +102 -46
- package/lib/Card/__tests__/Card.spec.js +10 -1
- 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/__tests__/CheckBox.spec.js +3 -0
- package/lib/CheckBox/props/propTypes.js +3 -0
- package/lib/DateTime/CalendarView.js +82 -42
- package/lib/DateTime/DateTime.js +246 -158
- package/lib/DateTime/DateTimePopupFooter.js +31 -8
- package/lib/DateTime/DateTimePopupHeader.js +48 -17
- package/lib/DateTime/DateWidget.js +352 -250
- package/lib/DateTime/DaysRow.js +27 -5
- package/lib/DateTime/Time.js +73 -32
- package/lib/DateTime/YearView.js +77 -28
- package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
- package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
- package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
- package/lib/DateTime/common.js +6 -0
- package/lib/DateTime/constants.js +1 -0
- package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
- package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
- package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
- package/lib/DateTime/dateFormatUtils/index.js +74 -16
- package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
- package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
- package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
- package/lib/DateTime/index.js +2 -0
- package/lib/DateTime/objectUtils.js +24 -20
- package/lib/DateTime/props/defaultProps.js +2 -1
- 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 +34 -10
- package/lib/DropBox/DropBoxElement/DropBoxElement.js +59 -38
- 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/__tests__/DropBox.spec.js +6 -2
- 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 +52 -8
- package/lib/DropDown/DropDownHeading.js +39 -20
- package/lib/DropDown/DropDownItem.js +42 -20
- package/lib/DropDown/DropDownSearch.js +40 -17
- package/lib/DropDown/DropDownSeparator.js +24 -4
- package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
- package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
- package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
- package/lib/DropDown/index.js +9 -0
- package/lib/DropDown/props/propTypes.js +6 -4
- package/lib/Heading/Heading.js +37 -15
- package/lib/Heading/props/propTypes.js +3 -0
- package/lib/Label/Label.js +39 -19
- package/lib/Label/__tests__/Label.spec.js +14 -1
- package/lib/Label/props/propTypes.js +3 -0
- package/lib/Layout/Box.js +31 -11
- package/lib/Layout/Container.js +29 -10
- package/lib/Layout/__tests__/Box.spec.js +65 -49
- package/lib/Layout/__tests__/Container.spec.js +67 -50
- package/lib/Layout/index.js +3 -0
- package/lib/Layout/props/propTypes.js +3 -0
- package/lib/Layout/utils.js +10 -0
- package/lib/ListItem/ListContainer.js +48 -27
- package/lib/ListItem/ListItem.js +69 -45
- package/lib/ListItem/ListItemWithAvatar.js +75 -48
- package/lib/ListItem/ListItemWithCheckBox.js +64 -39
- package/lib/ListItem/ListItemWithIcon.js +68 -44
- package/lib/ListItem/ListItemWithRadio.js +65 -41
- 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 +294 -166
- package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
- package/lib/MultiSelect/EmptyState.js +45 -24
- package/lib/MultiSelect/MultiSelect.js +323 -206
- package/lib/MultiSelect/MultiSelectHeader.js +30 -8
- package/lib/MultiSelect/MultiSelectWithAvatar.js +105 -63
- package/lib/MultiSelect/SelectedOptions.js +43 -17
- package/lib/MultiSelect/Suggestions.js +64 -32
- package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
- package/lib/MultiSelect/index.js +5 -0
- package/lib/MultiSelect/props/defaultProps.js +2 -0
- package/lib/MultiSelect/props/propTypes.js +5 -0
- package/lib/PopOver/PopOver.js +95 -49
- package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
- 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/__tests__/Popup.spec.js +43 -8
- 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 +61 -38
- package/lib/Radio/__tests__/Radiospec.js +9 -5
- 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/props/propTypes.js +3 -0
- package/lib/Ribbon/Ribbon.js +33 -13
- package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
- package/lib/Ribbon/props/propTypes.js +3 -0
- package/lib/RippleEffect/RippleEffect.js +18 -10
- package/lib/RippleEffect/props/propTypes.js +3 -0
- package/lib/Select/GroupSelect.js +229 -130
- package/lib/Select/Select.js +290 -209
- package/lib/Select/SelectWithAvatar.js +102 -56
- package/lib/Select/SelectWithIcon.js +132 -76
- package/lib/Select/__tests__/Select.spec.js +133 -91
- package/lib/Select/index.js +5 -0
- package/lib/Select/props/defaultProps.js +5 -4
- package/lib/Select/props/propTypes.js +4 -0
- package/lib/Stencils/Stencils.js +29 -10
- package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
- package/lib/Stencils/props/propTypes.js +3 -0
- package/lib/Switch/Switch.js +57 -34
- package/lib/Switch/props/propTypes.js +3 -0
- package/lib/Tab/Tab.js +40 -27
- package/lib/Tab/TabContent.js +12 -5
- package/lib/Tab/TabContentWrapper.js +13 -6
- package/lib/Tab/TabWrapper.js +37 -19
- package/lib/Tab/Tabs.js +171 -91
- package/lib/Tab/__tests__/Tab.spec.js +67 -58
- package/lib/Tab/__tests__/TabContent.spec.js +10 -6
- package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
- package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
- package/lib/Tab/__tests__/Tabs.spec.js +53 -39
- 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/__tests__/Tag.spec.js +14 -8
- package/lib/Tag/props/propTypes.js +3 -0
- package/lib/TextBox/TextBox.js +85 -59
- package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
- package/lib/TextBox/props/propTypes.js +6 -4
- package/lib/TextBoxIcon/TextBoxIcon.js +79 -52
- package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
- package/lib/TextBoxIcon/props/propTypes.js +3 -0
- package/lib/Textarea/Textarea.js +54 -29
- package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
- package/lib/Textarea/props/propTypes.js +3 -0
- package/lib/Tooltip/Tooltip.js +94 -31
- package/lib/Tooltip/__tests__/Tooltip.spec.js +24 -3
- 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/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 +57 -0
- package/lib/semantic/Button/Button.js +42 -22
- package/lib/semantic/Button/props/propTypes.js +3 -0
- package/lib/semantic/index.js +2 -0
- package/lib/utils/Common.js +110 -18
- package/lib/utils/ContextOptimizer.js +16 -10
- package/lib/utils/__tests__/constructFullName.spec.js +1 -0
- package/lib/utils/__tests__/debounce.spec.js +3 -2
- package/lib/utils/__tests__/getInitial.spec.js +1 -0
- package/lib/utils/constructFullName.js +13 -4
- package/lib/utils/css/compileClassNames.js +6 -0
- package/lib/utils/css/mergeStyle.js +10 -7
- package/lib/utils/css/utils.js +8 -0
- package/lib/utils/datetime/GMTZones.js +55 -0
- package/lib/utils/datetime/common.js +52 -7
- 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 +4 -0
- package/lib/utils/scrollTo.js +2 -0
- package/lib/utils/shallowEqual.js +8 -0
- package/package.json +1 -1
package/es/utils/Common.js
CHANGED
|
@@ -20,9 +20,7 @@ export const stopAllEventPropagation = e => {
|
|
|
20
20
|
export function cancelBubblingEffect(e) {
|
|
21
21
|
e && e.stopPropagation && e.stopPropagation();
|
|
22
22
|
e && e.nativeEvent && e.nativeEvent.stopImmediatePropagation && e.nativeEvent.stopImmediatePropagation();
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// export function getCommentsDetails(
|
|
23
|
+
} // export function getCommentsDetails(
|
|
26
24
|
// commentIds = [],
|
|
27
25
|
// comments = {},
|
|
28
26
|
// agents = {}
|
|
@@ -45,6 +43,7 @@ export function encodeForHtml(str) {
|
|
|
45
43
|
str = str.replace(/\\/g, '\');
|
|
46
44
|
str = str.replace(/'/g, ''');
|
|
47
45
|
}
|
|
46
|
+
|
|
48
47
|
return str;
|
|
49
48
|
}
|
|
50
49
|
export function getListOfDetails() {
|
|
@@ -56,6 +55,7 @@ export function getListOfDetails() {
|
|
|
56
55
|
export function capitalize() {
|
|
57
56
|
let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
58
57
|
let newValue = '';
|
|
58
|
+
|
|
59
59
|
for (let i = 0; i < value.length; i++) {
|
|
60
60
|
if (i == 0) {
|
|
61
61
|
newValue += value[i].toUpperCase();
|
|
@@ -63,12 +63,14 @@ export function capitalize() {
|
|
|
63
63
|
newValue += value[i].toLowerCase();
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
+
|
|
66
67
|
return newValue;
|
|
67
68
|
}
|
|
68
69
|
export function bind() {
|
|
69
70
|
for (var _len = arguments.length, handlers = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
70
71
|
handlers[_key] = arguments[_key];
|
|
71
72
|
}
|
|
73
|
+
|
|
72
74
|
handlers.forEach(handler => {
|
|
73
75
|
this[handler] = this[handler].bind(this);
|
|
74
76
|
});
|
|
@@ -77,12 +79,15 @@ export function getFullName() {
|
|
|
77
79
|
let firstName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
78
80
|
let lastName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
79
81
|
let fullName = '';
|
|
82
|
+
|
|
80
83
|
if (firstName !== null && firstName !== '') {
|
|
81
84
|
fullName = firstName;
|
|
82
85
|
}
|
|
86
|
+
|
|
83
87
|
if (lastName !== null && lastName !== '') {
|
|
84
88
|
fullName = `${fullName}${lastName}`;
|
|
85
89
|
}
|
|
90
|
+
|
|
86
91
|
return fullName;
|
|
87
92
|
}
|
|
88
93
|
export function getStringifiedOutputForJson() {
|
|
@@ -90,6 +95,7 @@ export function getStringifiedOutputForJson() {
|
|
|
90
95
|
const keys = Object.keys(input);
|
|
91
96
|
const modifiedInput = keys.reduce((curr, next) => {
|
|
92
97
|
const values = input[next] || [];
|
|
98
|
+
|
|
93
99
|
if (values.length) {
|
|
94
100
|
const valueList = values.reduce((curr, next) => {
|
|
95
101
|
curr.push(next.id);
|
|
@@ -98,6 +104,7 @@ export function getStringifiedOutputForJson() {
|
|
|
98
104
|
curr[next] = valueList;
|
|
99
105
|
return curr;
|
|
100
106
|
}
|
|
107
|
+
|
|
101
108
|
return curr;
|
|
102
109
|
}, {});
|
|
103
110
|
return JSON.stringify(modifiedInput);
|
|
@@ -113,6 +120,7 @@ export function filterValue(obj, val) {
|
|
|
113
120
|
const ids = obj ? Object.keys(obj) : [];
|
|
114
121
|
ids.forEach(key => {
|
|
115
122
|
const value = obj[key] || {};
|
|
123
|
+
|
|
116
124
|
if (value.name === val && !value.isCustomField) {
|
|
117
125
|
result = value.id;
|
|
118
126
|
}
|
|
@@ -134,34 +142,42 @@ export function formatValue() {
|
|
|
134
142
|
let textField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'name';
|
|
135
143
|
return values && values.map(value => {
|
|
136
144
|
let formattedValue = value;
|
|
145
|
+
|
|
137
146
|
if (typeof value === 'string' || typeof value === 'number') {
|
|
138
147
|
formattedValue = {};
|
|
139
148
|
formattedValue[valueField] = value;
|
|
140
149
|
formattedValue[textField] = value;
|
|
141
150
|
}
|
|
151
|
+
|
|
142
152
|
return formattedValue;
|
|
143
153
|
}) || [];
|
|
144
154
|
}
|
|
145
155
|
export function bytesToSize(bytes) {
|
|
146
156
|
bytes = parseInt(bytes, 10);
|
|
147
157
|
const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
158
|
+
|
|
148
159
|
if (bytes === 0) {
|
|
149
160
|
return '0 Byte';
|
|
150
161
|
}
|
|
162
|
+
|
|
151
163
|
const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10);
|
|
152
164
|
return `${Math.round(bytes / Math.pow(1024, i), 2)} ${sizes[i]}`;
|
|
153
165
|
}
|
|
154
166
|
export function getMemSize(bytes) {
|
|
155
167
|
let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !0;
|
|
156
168
|
const thresh = size ? 1000 : 1024;
|
|
169
|
+
|
|
157
170
|
if (Math.abs(bytes) < thresh) {
|
|
158
171
|
return `${bytes} B`;
|
|
159
172
|
}
|
|
173
|
+
|
|
160
174
|
let units = size ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'],
|
|
161
|
-
|
|
175
|
+
i = -1;
|
|
176
|
+
|
|
162
177
|
do {
|
|
163
178
|
bytes /= thresh, ++i;
|
|
164
179
|
} while (Math.abs(bytes) >= thresh && i < units.length - 1);
|
|
180
|
+
|
|
165
181
|
{
|
|
166
182
|
return `${bytes.toFixed(1)} ${units[i]}`;
|
|
167
183
|
}
|
|
@@ -170,18 +186,24 @@ export function checkIsImageFile(fileName) {
|
|
|
170
186
|
fileName = fileName || '';
|
|
171
187
|
return /jpeg|jpg|png|gif|bmp|tiff|tif|ico/gi.test(fileName.substr(fileName.lastIndexOf('.') + 1));
|
|
172
188
|
}
|
|
189
|
+
|
|
173
190
|
function getI18NValue(key, values) {
|
|
174
191
|
if (typeof i18n === 'undefined' || key === '' || typeof key === 'undefined') {
|
|
175
192
|
return key;
|
|
176
193
|
}
|
|
194
|
+
|
|
177
195
|
let i18nStr = i18n[key];
|
|
196
|
+
|
|
178
197
|
if (i18nStr === undefined) {
|
|
179
198
|
return key;
|
|
180
199
|
}
|
|
200
|
+
|
|
181
201
|
i18nStr = replaceI18NValuesWithRegex(i18nStr, values);
|
|
182
202
|
return unescapeUnicode(i18nStr);
|
|
183
203
|
}
|
|
204
|
+
|
|
184
205
|
global.getI18NValue = getI18NValue;
|
|
206
|
+
|
|
185
207
|
function replaceI18NValuesWithRegex(i18nStr, values) {
|
|
186
208
|
if (typeof values !== 'undefined') {
|
|
187
209
|
if (Array.isArray(values)) {
|
|
@@ -192,22 +214,27 @@ function replaceI18NValuesWithRegex(i18nStr, values) {
|
|
|
192
214
|
i18nStr = i18nStr.replace(new RegExp('\\{0\\}', 'g'), values);
|
|
193
215
|
}
|
|
194
216
|
}
|
|
217
|
+
|
|
195
218
|
return i18nStr;
|
|
196
219
|
}
|
|
220
|
+
|
|
197
221
|
function unescapeUnicode(str) {
|
|
198
222
|
return str.replace(/\\u([a-fA-F0-9]{4})/g, (g, m1) => String.fromCharCode(parseInt(m1, 16)));
|
|
199
223
|
}
|
|
224
|
+
|
|
200
225
|
export function getPortalName(portalList, portalId) {
|
|
201
226
|
return portalList && portalList.reduce((res, portal) => {
|
|
202
227
|
if (portal.orgId === portalId) {
|
|
203
228
|
return portal.orgName;
|
|
204
229
|
}
|
|
230
|
+
|
|
205
231
|
return res;
|
|
206
232
|
}, null);
|
|
207
233
|
}
|
|
208
234
|
export function getFullDateString(fullDateObj) {
|
|
209
235
|
let dateStr = '';
|
|
210
236
|
const monthArr = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
237
|
+
|
|
211
238
|
if (fullDateObj.toDateString() == new Date().toDateString()) {
|
|
212
239
|
dateStr = format12Hour(fullDateObj);
|
|
213
240
|
} else {
|
|
@@ -217,6 +244,7 @@ export function getFullDateString(fullDateObj) {
|
|
|
217
244
|
const time = format12Hour(fullDateObj);
|
|
218
245
|
dateStr = `${month} ${date} ${year} ${time}`;
|
|
219
246
|
}
|
|
247
|
+
|
|
220
248
|
return dateStr;
|
|
221
249
|
}
|
|
222
250
|
export function format12Hour(date) {
|
|
@@ -225,6 +253,7 @@ export function format12Hour(date) {
|
|
|
225
253
|
const ampm = hours >= 12 ? 'pm' : 'am';
|
|
226
254
|
hours %= 12;
|
|
227
255
|
hours = hours ? hours : 12; // the hour '0' should be '12'
|
|
256
|
+
|
|
228
257
|
minutes = minutes < 10 ? `0${minutes}` : minutes;
|
|
229
258
|
const strTime = `${hours}:${minutes} ${ampm}`;
|
|
230
259
|
return strTime;
|
|
@@ -232,6 +261,7 @@ export function format12Hour(date) {
|
|
|
232
261
|
export function getDateOnly(fullDateObj) {
|
|
233
262
|
let dateStr = '';
|
|
234
263
|
const monthArr = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
264
|
+
|
|
235
265
|
if (fullDateObj.toDateString() == new Date().toDateString()) {
|
|
236
266
|
dateStr = 'Today';
|
|
237
267
|
} else {
|
|
@@ -240,6 +270,7 @@ export function getDateOnly(fullDateObj) {
|
|
|
240
270
|
const date = fullDateObj.getDate();
|
|
241
271
|
dateStr = `${month} ${date} ${year}`;
|
|
242
272
|
}
|
|
273
|
+
|
|
243
274
|
return dateStr;
|
|
244
275
|
}
|
|
245
276
|
export function doAfterScrollEnd(element, callback) {
|
|
@@ -253,6 +284,7 @@ export function doAfterScrollEnd(element, callback) {
|
|
|
253
284
|
scrollHeight
|
|
254
285
|
} = element;
|
|
255
286
|
const scrollPercent = scrollTop / (scrollHeight - clientHeight) * 100;
|
|
287
|
+
|
|
256
288
|
if (scrollPercent > 80) {
|
|
257
289
|
callback && callback();
|
|
258
290
|
}
|
|
@@ -269,9 +301,11 @@ export const throttle = function (func, wait) {
|
|
|
269
301
|
for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
|
|
270
302
|
args[_key2 - 2] = arguments[_key2];
|
|
271
303
|
}
|
|
304
|
+
|
|
272
305
|
if (timerId) {
|
|
273
306
|
return;
|
|
274
307
|
}
|
|
308
|
+
|
|
275
309
|
timerId = setTimeout(() => {
|
|
276
310
|
try {
|
|
277
311
|
func(...args);
|
|
@@ -284,6 +318,7 @@ export const scrollTo = function (suggestionContainer, selSuggestion) {
|
|
|
284
318
|
if (!suggestionContainer || !selSuggestion) {
|
|
285
319
|
return;
|
|
286
320
|
}
|
|
321
|
+
|
|
287
322
|
const {
|
|
288
323
|
rectGap
|
|
289
324
|
} = frameRelativeRects(selSuggestion, suggestionContainer) || {};
|
|
@@ -291,9 +326,11 @@ export const scrollTo = function (suggestionContainer, selSuggestion) {
|
|
|
291
326
|
top = 0,
|
|
292
327
|
bottom = 0
|
|
293
328
|
} = rectGap || {};
|
|
329
|
+
|
|
294
330
|
if (top < 0 && bottom < 0) {
|
|
295
331
|
return;
|
|
296
332
|
}
|
|
333
|
+
|
|
297
334
|
const isElementInViewPort = top < 0 || bottom < 0 ? false : true;
|
|
298
335
|
const suggestionContainerScrollTop = suggestionContainer.scrollTop;
|
|
299
336
|
suggestionContainer.scrollTop = !isElementInViewPort ? bottom < 0 ? suggestionContainer.scrollTop + Math.abs(bottom) : top < 0 ? suggestionContainer.scrollTop - Math.abs(top) : suggestionContainerScrollTop : suggestionContainerScrollTop;
|
|
@@ -305,17 +342,21 @@ export function remConvert(val) {
|
|
|
305
342
|
}
|
|
306
343
|
export function isDescendant(parent, child) {
|
|
307
344
|
let node = child.parentNode;
|
|
345
|
+
|
|
308
346
|
while (node !== null) {
|
|
309
347
|
if (node === parent) {
|
|
310
348
|
return true;
|
|
311
349
|
}
|
|
350
|
+
|
|
312
351
|
node = node.parentNode;
|
|
313
352
|
}
|
|
353
|
+
|
|
314
354
|
return false;
|
|
315
355
|
}
|
|
316
356
|
export function getElementSpace(elementRef) {
|
|
317
357
|
let neededSpace = 0,
|
|
318
|
-
|
|
358
|
+
availableInsideSpace = 0;
|
|
359
|
+
|
|
319
360
|
if (elementRef) {
|
|
320
361
|
let getStyle = window.getComputedStyle(elementRef);
|
|
321
362
|
let margin = parseFloat(getStyle.marginLeft) + parseFloat(getStyle.marginRight);
|
|
@@ -324,6 +365,7 @@ export function getElementSpace(elementRef) {
|
|
|
324
365
|
neededSpace = width + margin;
|
|
325
366
|
availableInsideSpace = width - padding;
|
|
326
367
|
}
|
|
368
|
+
|
|
327
369
|
return {
|
|
328
370
|
neededSpace: neededSpace,
|
|
329
371
|
availableInsideSpace: availableInsideSpace
|
|
@@ -333,7 +375,6 @@ export function getSearchString() {
|
|
|
333
375
|
let charachers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
334
376
|
return (charachers || '').toString().toLowerCase(); //.replace(/\s+/g, '');
|
|
335
377
|
}
|
|
336
|
-
|
|
337
378
|
export function findScrollEnd(element) {
|
|
338
379
|
let {
|
|
339
380
|
scrollHeight,
|
|
@@ -342,26 +383,30 @@ export function findScrollEnd(element) {
|
|
|
342
383
|
clientHeight
|
|
343
384
|
} = element || {};
|
|
344
385
|
let isElementScrollable = scrollHeight > clientHeight;
|
|
386
|
+
|
|
345
387
|
if (isElementScrollable) {
|
|
346
388
|
if (scrollHeight <= Math.ceil(scrollTop + offsetHeight)) {
|
|
347
389
|
return true;
|
|
348
390
|
}
|
|
349
|
-
}
|
|
350
|
-
// else {
|
|
351
|
-
|
|
391
|
+
} // else {
|
|
352
392
|
// throw 'Is scroll not present in this element';
|
|
353
393
|
// }
|
|
394
|
+
|
|
395
|
+
|
|
354
396
|
return false;
|
|
355
397
|
}
|
|
356
398
|
export function isTextSelected() {
|
|
357
399
|
let selectedText = '';
|
|
400
|
+
|
|
358
401
|
if (window.getSelection) {
|
|
359
402
|
selectedText = window.getSelection().toString();
|
|
360
403
|
} else if (document.getSelection) {
|
|
361
404
|
selectedText = document.getSelection().toString();
|
|
362
405
|
}
|
|
406
|
+
|
|
363
407
|
if (selectedText !== '') {
|
|
364
408
|
return true;
|
|
365
409
|
}
|
|
410
|
+
|
|
366
411
|
return false;
|
|
367
412
|
}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
/** ** Libraries *** */
|
|
2
2
|
import { useContext, useRef } from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import shallowEqual from './shallowEqual';
|
|
5
|
-
|
|
6
|
-
// Please use this component with children as inline function for force this components rerender when parent rerender regardless of reason
|
|
4
|
+
import shallowEqual from './shallowEqual'; // Please use this component with children as inline function for force this components rerender when parent rerender regardless of reason
|
|
7
5
|
// Because below componends only rerender when children or calculation are changed, unless no changes will update below
|
|
8
|
-
|
|
9
6
|
// this component logic based on return same children reference to stop rerender.
|
|
10
7
|
// Think before change logic
|
|
11
|
-
|
|
12
8
|
// eslint-disable-next-line import/prefer-default-export
|
|
9
|
+
|
|
13
10
|
export function ContextOptimizer(props) {
|
|
14
11
|
const {
|
|
15
12
|
Context,
|
|
@@ -25,11 +22,13 @@ export function ContextOptimizer(props) {
|
|
|
25
22
|
data: null,
|
|
26
23
|
renderF: null
|
|
27
24
|
});
|
|
25
|
+
|
|
28
26
|
if (!shallowEqual(data, local.data) || local.renderF !== renderF) {
|
|
29
27
|
local.children = renderF(data);
|
|
30
28
|
local.data = data;
|
|
31
29
|
local.renderF = renderF;
|
|
32
30
|
}
|
|
31
|
+
|
|
33
32
|
return local.children;
|
|
34
33
|
}
|
|
35
34
|
ContextOptimizer.propTypes = {
|
|
@@ -6,8 +6,8 @@ describe('debounce specification', () => {
|
|
|
6
6
|
it('should call immediate', () => {
|
|
7
7
|
const mockfn = jest.fn();
|
|
8
8
|
const dMockfn = debounce(mockfn, 1000, true);
|
|
9
|
-
dMockfn();
|
|
10
|
-
|
|
9
|
+
dMockfn(); //expect(setTimeout).toHaveBeenCalledTimes(1);
|
|
10
|
+
|
|
11
11
|
expect(mockfn.mock.calls.length).toBe(1);
|
|
12
12
|
});
|
|
13
13
|
it('should call two times but it invoke multiple times', () => {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
function constructFullName(firstName, lastName) {
|
|
2
2
|
return `${firstName ? `${firstName}${lastName ? ' ' : ''}` : ''}${lastName ? lastName : ''}`;
|
|
3
3
|
}
|
|
4
|
+
|
|
4
5
|
export function constructFullNameByPattern(firstName, lastName, namePattern) {
|
|
5
6
|
let [name0, name1] = namePattern;
|
|
7
|
+
|
|
6
8
|
if (name0 === 'FIRST_NAME' && name1 === 'LAST_NAME') {
|
|
7
9
|
return constructFullName(firstName, lastName);
|
|
8
10
|
} else if (name0 === 'LAST_NAME' && name1 === 'FIRST_NAME') {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { dataTypes, isDataTypeOf } from './utils';
|
|
2
|
+
|
|
2
3
|
const collectClassNames = function (processedClassNameList) {
|
|
3
4
|
for (let index = 0; index < (arguments.length <= 1 ? 0 : arguments.length - 1); index++) {
|
|
4
5
|
let classInfo = index + 1 < 1 || arguments.length <= index + 1 ? undefined : arguments[index + 1];
|
|
6
|
+
|
|
5
7
|
if (!classInfo) {
|
|
6
8
|
continue;
|
|
7
9
|
} else if (isDataTypeOf(classInfo, dataTypes.object)) {
|
|
@@ -13,11 +15,14 @@ const collectClassNames = function (processedClassNameList) {
|
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
17
|
};
|
|
18
|
+
|
|
16
19
|
export default function compileClassNames() {
|
|
17
20
|
let resultClassNameList = [];
|
|
21
|
+
|
|
18
22
|
for (var _len = arguments.length, classinfoList = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
19
23
|
classinfoList[_key] = arguments[_key];
|
|
20
24
|
}
|
|
25
|
+
|
|
21
26
|
collectClassNames(resultClassNameList, ...classinfoList);
|
|
22
27
|
return resultClassNameList.filter(a => a !== '').join(' ');
|
|
23
28
|
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
const REPLACER_SYMBOL = '$';
|
|
2
|
-
|
|
3
|
-
// $ startWith is used for replace the existing style.
|
|
1
|
+
const REPLACER_SYMBOL = '$'; // $ startWith is used for replace the existing style.
|
|
4
2
|
// all other will be append
|
|
5
3
|
|
|
6
4
|
export default function mergeStyle(defaultStyle) {
|
|
@@ -9,15 +7,16 @@ export default function mergeStyle(defaultStyle) {
|
|
|
9
7
|
// if(!Object.keys(defaultStyle).includes('base')) {
|
|
10
8
|
// throw new Error(`STYLE CUSTOMIZATION RULE - Your style sheet should have "base" class name for customization`);
|
|
11
9
|
// }
|
|
12
|
-
|
|
13
10
|
return Object.keys(customStyle).reduce((res, next) => {
|
|
14
11
|
if (next.startsWith(REPLACER_SYMBOL)) {
|
|
15
12
|
let styleValue = customStyle[next];
|
|
16
13
|
let styleName = next.replace(REPLACER_SYMBOL, '');
|
|
14
|
+
|
|
17
15
|
if (!defaultStyle[styleName] && !additionalStyle.includes(styleName)) {
|
|
18
16
|
// return res;
|
|
19
17
|
throw new Error(`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${styleName}" is not available in that component style`);
|
|
20
18
|
}
|
|
19
|
+
|
|
21
20
|
if (additionalStyle.includes(styleName)) {
|
|
22
21
|
res[styleName] = styleValue;
|
|
23
22
|
} else {
|
|
@@ -26,6 +25,7 @@ export default function mergeStyle(defaultStyle) {
|
|
|
26
25
|
let styleKey = res[keyName];
|
|
27
26
|
let styleClasses = styleKey.split(' ');
|
|
28
27
|
let ind = styleClasses.indexOf(val);
|
|
28
|
+
|
|
29
29
|
if (ind !== -1) {
|
|
30
30
|
styleClasses[ind] = styleValue;
|
|
31
31
|
res[keyName] = styleClasses.join(' ');
|
|
@@ -38,6 +38,7 @@ export default function mergeStyle(defaultStyle) {
|
|
|
38
38
|
let styleKey = res[keyName];
|
|
39
39
|
let styleClasses = styleKey.split(' ');
|
|
40
40
|
let ind = styleClasses.indexOf(val);
|
|
41
|
+
|
|
41
42
|
if (ind !== -1) {
|
|
42
43
|
styleClasses[ind] = styleClasses[ind] + ' ' + customStyle[next];
|
|
43
44
|
res[keyName] = styleClasses.join(' ');
|
|
@@ -49,8 +50,8 @@ export default function mergeStyle(defaultStyle) {
|
|
|
49
50
|
// res[next] = customStyle[next];
|
|
50
51
|
throw new Error(`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${next}" is not available in that component style`);
|
|
51
52
|
}
|
|
53
|
+
|
|
52
54
|
return res;
|
|
53
|
-
}, {
|
|
54
|
-
...defaultStyle
|
|
55
|
+
}, { ...defaultStyle
|
|
55
56
|
});
|
|
56
57
|
}
|
package/es/utils/css/utils.js
CHANGED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export const offsetMap = {
|
|
2
|
+
0: 'GMT+00:00 Africa/Abidjan',
|
|
3
|
+
44: 'GMT+00:00 Africa/Monrovia',
|
|
4
|
+
60: 'GMT+01:00 Africa/Bangui',
|
|
5
|
+
120: 'GMT+02:00 Africa/Blantyre',
|
|
6
|
+
180: 'GMT+03:00 Africa/Addis_Ababa',
|
|
7
|
+
210: 'GMT+04:30 Asia/Tehran',
|
|
8
|
+
240: 'GMT+03:00 Asia/Bahrain',
|
|
9
|
+
270: 'GMT+04:30 Asia/Kabul',
|
|
10
|
+
300: 'GMT+05:00 Asia/Aqtau',
|
|
11
|
+
'-330': 'GMT+05:30 Asia/Kolkata',
|
|
12
|
+
360: 'GMT+06:00 Asia/Dacca',
|
|
13
|
+
390: 'GMT+06:30 Indian/Cocos',
|
|
14
|
+
420: 'GMT+07:00 Asia/Bangkok',
|
|
15
|
+
450: 'GMT+08:00 Asia/Singapore',
|
|
16
|
+
480: 'GMT+08:00 Asia/Hong_Kong',
|
|
17
|
+
510: 'GMT+08:00 Asia/Harbin',
|
|
18
|
+
525: 'GMT+08:45 Australia/Eucla',
|
|
19
|
+
540: 'GMT+09:00 Asia/Chita',
|
|
20
|
+
570: 'GMT+09:30 Australia/Adelaide',
|
|
21
|
+
600: 'GMT+10:00 Antarctica/DumontDUrville',
|
|
22
|
+
660: 'GMT+11:00 Asia/Magadan',
|
|
23
|
+
690: 'GMT+11:00 Pacific/Norfolk',
|
|
24
|
+
720: 'GMT+12:00 Asia/Kamchatka',
|
|
25
|
+
765: 'GMT+12:45 Pacific/Chatham',
|
|
26
|
+
780: 'GMT+12:00 Asia/Anadyr',
|
|
27
|
+
840: 'GMT+14:00 Etc/GMT-14',
|
|
28
|
+
'-60': 'GMT-01:00 Etc/GMT+1',
|
|
29
|
+
'-660': 'GMT-11:00 US/Samoa',
|
|
30
|
+
'-600': 'GMT-04:00 America/Anguilla',
|
|
31
|
+
'-240': 'GMT-04:00 America/Antigua',
|
|
32
|
+
'-180': 'GMT-03:00 America/Araguaina',
|
|
33
|
+
'-300': 'GMT-05:00 America/Atikokan',
|
|
34
|
+
'-480': 'GMT-05:00 America/Bahia_Banderas',
|
|
35
|
+
'-360': 'GMT-06:00 America/Belize',
|
|
36
|
+
'-420': 'GMT-06:00 America/Boise',
|
|
37
|
+
'-540': 'GMT-07:00 America/Dawson',
|
|
38
|
+
'-135': 'GMT-04:00 America/Guyana',
|
|
39
|
+
'-120': 'GMT-02:00 Etc/GMT+2',
|
|
40
|
+
'-150': 'GMT-03:00 America/Paramaribo',
|
|
41
|
+
'-210': 'GMT-04:00 America/Santo_Domingo',
|
|
42
|
+
'-720': 'GMT+12:00 Pacific/Kwajalein',
|
|
43
|
+
'-560': 'GMT+14:00 Pacific/Kiritimati',
|
|
44
|
+
'-510': 'GMT-09:30 Pacific/Marquesas',
|
|
45
|
+
'-630': 'GMT-11:00 Pacific/Niue',
|
|
46
|
+
'-450': 'GMT-08:00 Pacific/Pitcairn',
|
|
47
|
+
'-570': 'GMT-10:00 Pacific/Rarotonga'
|
|
48
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { offsetMap } from './GMTZones.js';
|
|
1
2
|
let dateFormat = {
|
|
2
3
|
dayNames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
|
3
4
|
monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
|
@@ -10,8 +11,15 @@ export function pad(n) {
|
|
|
10
11
|
n = `${n}`;
|
|
11
12
|
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
|
|
12
13
|
}
|
|
14
|
+
export function getTimeOffset() {
|
|
15
|
+
const GMT = new Date();
|
|
16
|
+
const matchingOffset = Object.keys(offsetMap).find(offset => GMT.getTimezoneOffset() === Number(offset));
|
|
17
|
+
return matchingOffset ? offsetMap[matchingOffset].toString().split(' ') : ['', ''];
|
|
18
|
+
}
|
|
13
19
|
export function formatDate(dateMill, mask) {
|
|
14
20
|
let date = new Date(dateMill);
|
|
21
|
+
let O = getTimeOffset()[0];
|
|
22
|
+
let Z = getTimeOffset()[1];
|
|
15
23
|
let d = date.getDate();
|
|
16
24
|
let D = date.getDay();
|
|
17
25
|
let m = date.getMonth();
|
|
@@ -22,6 +30,7 @@ export function formatDate(dateMill, mask) {
|
|
|
22
30
|
let L = date.getMilliseconds();
|
|
23
31
|
let flags = {
|
|
24
32
|
d: d,
|
|
33
|
+
O: O,
|
|
25
34
|
dd: pad(d, 2),
|
|
26
35
|
ddd: dateFormat.dayNames[D],
|
|
27
36
|
dddd: dateFormat.dayNames[D + 7],
|
|
@@ -49,13 +58,18 @@ export function formatDate(dateMill, mask) {
|
|
|
49
58
|
L: pad(Math.round(L / 10)),
|
|
50
59
|
t: H < 12 ? dateFormat.timeNames[0] : dateFormat.timeNames[1],
|
|
51
60
|
A: H < 12 ? dateFormat.timeNames[6] : dateFormat.timeNames[7],
|
|
52
|
-
|
|
61
|
+
a: H < 12 ? dateFormat.timeNames[6] : dateFormat.timeNames[7],
|
|
62
|
+
T: H < 12 ? dateFormat.timeNames[4] : dateFormat.timeNames[5],
|
|
63
|
+
Z: Z,
|
|
64
|
+
VV: Z,
|
|
65
|
+
SSS: pad(L, 3)
|
|
53
66
|
};
|
|
54
|
-
let token = /D{1,4}|d{1,4}|M{1,4}|YYYY|yyyy|YY|yy?|([
|
|
67
|
+
let token = /D{1,4}|d{1,4}|M{1,4}|YYYY|yyyy|YY|O|Z|VV|SSS|yy?|([HhmsAa])\1?|[LloSZWN]|\[[^\]]*\]|'[^']*'/g;
|
|
55
68
|
let dat = mask.replace(token, match => {
|
|
56
69
|
if (match in flags) {
|
|
57
70
|
return flags[match];
|
|
58
71
|
}
|
|
72
|
+
|
|
59
73
|
return match.slice(1, match.length - 1);
|
|
60
74
|
});
|
|
61
75
|
return dat;
|
|
@@ -70,6 +84,7 @@ export function replaceI18NValuesWithRegex(i18nStr, values) {
|
|
|
70
84
|
i18nStr = i18nStr.replace(new RegExp('\\{0\\}', 'g'), values);
|
|
71
85
|
}
|
|
72
86
|
}
|
|
87
|
+
|
|
73
88
|
return i18nStr;
|
|
74
89
|
}
|
|
75
90
|
export function unescapeUnicode(str) {
|
|
@@ -84,25 +99,28 @@ export function getI18NValue(i18n) {
|
|
|
84
99
|
if (typeof i18n === 'undefined') {
|
|
85
100
|
return key => key;
|
|
86
101
|
}
|
|
102
|
+
|
|
87
103
|
return (key, values) => {
|
|
88
104
|
let i18nStr = i18n[key];
|
|
105
|
+
|
|
89
106
|
if (i18nStr === undefined) {
|
|
90
107
|
return key;
|
|
91
108
|
}
|
|
109
|
+
|
|
92
110
|
i18nStr = replaceI18NValuesWithRegex(i18nStr, values);
|
|
93
111
|
return unescapeUnicode(i18nStr);
|
|
94
112
|
};
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// function getValues(params = [], diff) {
|
|
113
|
+
} // function getValues(params = [], diff) {
|
|
98
114
|
// return params.map(param => {
|
|
99
115
|
// return diff[param];
|
|
100
116
|
// });
|
|
101
117
|
// }
|
|
118
|
+
|
|
102
119
|
export function getI18NInfo(toDateObj, props, diffObj) {
|
|
103
120
|
let key = null,
|
|
104
|
-
|
|
105
|
-
|
|
121
|
+
values,
|
|
122
|
+
text = null;
|
|
123
|
+
|
|
106
124
|
if (typeof props === 'function') {
|
|
107
125
|
let value = props(diffObj1);
|
|
108
126
|
key = value.key;
|
|
@@ -113,6 +131,7 @@ export function getI18NInfo(toDateObj, props, diffObj) {
|
|
|
113
131
|
} else if (typeof props === 'string') {
|
|
114
132
|
text = toDateObj.format(props);
|
|
115
133
|
}
|
|
134
|
+
|
|
116
135
|
return {
|
|
117
136
|
key,
|
|
118
137
|
values,
|
|
@@ -141,12 +160,15 @@ let oneYearInMillis = 31536000000;
|
|
|
141
160
|
let oneDayInMillis = 86400000;
|
|
142
161
|
let oneHourInMillis = 3600000;
|
|
143
162
|
let oneMinuteInMillis = 60000;
|
|
163
|
+
|
|
144
164
|
function convertAsNonExponential(number) {
|
|
145
165
|
if (number.toString().toLowerCase().indexOf('e') !== -1) {
|
|
146
166
|
return number.toFixed(20);
|
|
147
167
|
}
|
|
168
|
+
|
|
148
169
|
return number;
|
|
149
170
|
}
|
|
171
|
+
|
|
150
172
|
export function getDiffObj(diff) {
|
|
151
173
|
diff = Math.abs(diff);
|
|
152
174
|
let diffYears = diff / oneYearInMillis;
|
|
@@ -173,8 +195,10 @@ export function getDiffObj(diff) {
|
|
|
173
195
|
export function getMonthEnd(month, year) {
|
|
174
196
|
let monthend = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
175
197
|
let isLeapYear = year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
|
|
198
|
+
|
|
176
199
|
if (month === 1 && isLeapYear) {
|
|
177
200
|
return 29;
|
|
178
201
|
}
|
|
202
|
+
|
|
179
203
|
return monthend[month];
|
|
180
204
|
}
|
package/es/utils/debounce.js
CHANGED
|
@@ -2,16 +2,20 @@ export function debounce(func, wait, immediate) {
|
|
|
2
2
|
let timeout;
|
|
3
3
|
return function () {
|
|
4
4
|
let context = this,
|
|
5
|
-
|
|
5
|
+
args = arguments;
|
|
6
|
+
|
|
6
7
|
let later = function () {
|
|
7
8
|
timeout = null;
|
|
9
|
+
|
|
8
10
|
if (!immediate) {
|
|
9
11
|
func.apply(context, args);
|
|
10
12
|
}
|
|
11
13
|
};
|
|
14
|
+
|
|
12
15
|
let callNow = immediate && !timeout;
|
|
13
16
|
clearTimeout(timeout);
|
|
14
17
|
timeout = setTimeout(later, wait);
|
|
18
|
+
|
|
15
19
|
if (callNow) {
|
|
16
20
|
func.apply(context, args);
|
|
17
21
|
}
|