@zohodesk/components 1.6.13 → 1.6.15
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 +14 -0
- package/es/Avatar/Avatar.js +1 -2
- package/es/Button/css/cssJSLogic.js +4 -5
- package/es/DateTime/DateTime.js +3 -6
- package/es/DateTime/DateWidget.js +2 -5
- package/es/DateTime/YearView.js +5 -6
- package/es/DateTime/common.js +2 -9
- package/es/DateTime/dateFormatUtils/dateFormat.js +55 -76
- package/es/DateTime/dateFormatUtils/index.js +7 -12
- package/es/DateTime/dateFormatUtils/timeChange.js +3 -4
- package/es/DateTime/dateFormatUtils/yearChange.js +3 -4
- package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -6
- package/es/Layout/utils.js +1 -2
- package/es/ListItem/ListContainer.js +4 -5
- package/es/Modal/Portal/Portal.js +4 -5
- package/es/MultiSelect/AdvancedGroupMultiSelect.js +91 -103
- package/es/MultiSelect/AdvancedMultiSelect.js +74 -80
- package/es/MultiSelect/MultiSelect.js +4 -13
- package/es/MultiSelect/Suggestions.js +14 -17
- package/es/Popup/Popup.js +1 -4
- package/es/Provider/IdProvider.js +4 -5
- package/es/Provider/LibraryContext.js +11 -12
- package/es/Provider/NumberGenerator/NumberGenerator.js +15 -17
- package/es/Provider/ZindexProvider.js +4 -5
- package/es/Responsive/CustomResponsive.js +8 -11
- package/es/Responsive/ResizeComponent.js +1 -3
- package/es/Responsive/Responsive.js +9 -12
- package/es/Responsive/sizeObservers.js +1 -5
- package/es/ResponsiveDropBox/ResponsiveDropBox.js +10 -14
- package/es/Select/GroupSelect.js +98 -103
- package/es/Select/Select.js +110 -114
- package/es/Select/SelectWithAvatar.js +91 -95
- package/es/Select/SelectWithIcon.js +104 -109
- package/es/Select/__tests__/Select.spec.js +6 -9
- package/es/Tab/Tab.js +29 -30
- package/es/Tab/TabContent.js +16 -19
- package/es/Tab/TabContentWrapper.js +19 -22
- package/es/Tab/TabWrapper.js +15 -16
- package/es/Tab/Tabs.js +80 -87
- package/es/Typography/css/cssJSLogic.js +4 -5
- package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +1 -2
- package/es/utils/Common.js +10 -31
- package/es/utils/datetime/common.js +2 -6
- package/es/utils/dropDownUtils.js +7 -11
- package/es/utils/getInitial.js +1 -3
- package/es/v1/Button/Button.js +5 -3
- package/es/v1/Button/__tests__/Button.spec.js +5 -2
- package/es/v1/Button/__tests__/__snapshots__/Button.spec.js.snap +8 -1
- package/es/v1/Button/css/cssJSLogic.js +11 -10
- package/es/v1/Label/css/cssJSLogic.js +4 -5
- package/es/v1/Switch/css/cssJSLogic.js +4 -5
- package/es/v1/helpers/colorHelpers/colorHelper.js +36 -44
- package/es/v1/helpers/colorHelpers/paletteUtilities.README.md +30 -30
- package/es/v1/{Button/_shared → shared}/Loader/Loader.js +3 -3
- package/es/v1/{Button/_shared → shared}/Loader/__tests__/Loader.spec.js +1 -1
- package/es/v1/shared/Loader/props/defaultProps.js +5 -0
- package/es/v1/{Button/_shared → shared}/Loader/props/propTypes.js +1 -1
- package/es/v1/{Button/_shared → shared}/SuccessTick/SuccessTick.js +3 -3
- package/es/v1/{Button/_shared → shared}/SuccessTick/__tests__/SuccessTick.spec.js +1 -1
- package/es/v1/shared/SuccessTick/props/defaultProps.js +5 -0
- package/es/v1/{Button/_shared → shared}/SuccessTick/props/propTypes.js +1 -1
- package/lib/Select/Select.js +3 -1
- package/lib/v1/Button/Button.js +5 -3
- package/lib/v1/Button/__tests__/Button.spec.js +5 -2
- package/lib/v1/Button/__tests__/__snapshots__/Button.spec.js.snap +8 -1
- package/lib/v1/Button/css/cssJSLogic.js +9 -5
- package/lib/v1/helpers/colorHelpers/colorHelper.js +8 -5
- package/lib/v1/helpers/colorHelpers/paletteUtilities.README.md +30 -30
- package/lib/v1/{Button/_shared → shared}/Loader/Loader.js +5 -5
- package/lib/v1/{Button/_shared → shared}/Loader/__tests__/Loader.spec.js +1 -1
- package/lib/v1/{Button/_shared/SuccessTick → shared/Loader}/props/defaultProps.js +4 -1
- package/lib/v1/{Button/_shared → shared}/Loader/props/propTypes.js +1 -1
- package/lib/v1/{Button/_shared → shared}/SuccessTick/SuccessTick.js +5 -5
- package/lib/v1/{Button/_shared → shared}/SuccessTick/__tests__/SuccessTick.spec.js +1 -1
- package/lib/v1/{Button/_shared/Loader → shared/SuccessTick}/props/defaultProps.js +4 -1
- package/lib/v1/{Button/_shared → shared}/SuccessTick/props/propTypes.js +1 -1
- package/package.json +11 -10
- package/es/v1/Button/_shared/Loader/props/defaultProps.js +0 -4
- package/es/v1/Button/_shared/SuccessTick/props/defaultProps.js +0 -4
- /package/es/v1/{Button/_shared → shared}/Loader/Loader_v1.module.css +0 -0
- /package/es/v1/{Button/_shared → shared}/Loader/__tests__/__snapshots__/Loader.spec.js.snap +0 -0
- /package/es/v1/{Button/_shared → shared}/SuccessTick/SuccessTick_v1.module.css +0 -0
- /package/es/v1/{Button/_shared → shared}/SuccessTick/__tests__/__snapshots__/SuccessTick.spec.js.snap +0 -0
- /package/lib/v1/{Button/_shared → shared}/Loader/Loader_v1.module.css +0 -0
- /package/lib/v1/{Button/_shared → shared}/Loader/__tests__/__snapshots__/Loader.spec.js.snap +0 -0
- /package/lib/v1/{Button/_shared → shared}/SuccessTick/SuccessTick_v1.module.css +0 -0
- /package/lib/v1/{Button/_shared → shared}/SuccessTick/__tests__/__snapshots__/SuccessTick.spec.js.snap +0 -0
package/es/Tab/Tabs.js
CHANGED
|
@@ -107,8 +107,7 @@ class Tabs extends React.Component {
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
setMaxDim() {
|
|
111
|
-
let totalDimension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
110
|
+
setMaxDim(totalDimension = 0) {
|
|
112
111
|
let {
|
|
113
112
|
selectedTab
|
|
114
113
|
} = this.props; // let actual = Object.keys(tabDimensions).reduce(
|
|
@@ -409,10 +408,9 @@ class Tabs extends React.Component {
|
|
|
409
408
|
togglePopup(e, boxPosition);
|
|
410
409
|
}
|
|
411
410
|
|
|
412
|
-
responsiveFunc(
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
} = _ref;
|
|
411
|
+
responsiveFunc({
|
|
412
|
+
mediaQueryOR
|
|
413
|
+
}) {
|
|
416
414
|
return {
|
|
417
415
|
tabletMode: mediaQueryOR([{
|
|
418
416
|
maxWidth: 700
|
|
@@ -432,10 +430,9 @@ class Tabs extends React.Component {
|
|
|
432
430
|
});
|
|
433
431
|
}
|
|
434
432
|
|
|
435
|
-
getMoreList(
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
} = _ref2;
|
|
433
|
+
getMoreList({
|
|
434
|
+
moreTabs
|
|
435
|
+
}) {
|
|
439
436
|
const validElements = [];
|
|
440
437
|
React.Children.map(moreTabs, child => {
|
|
441
438
|
const isValidElement = /*#__PURE__*/React.isValidElement(child);
|
|
@@ -447,10 +444,9 @@ class Tabs extends React.Component {
|
|
|
447
444
|
return validElements;
|
|
448
445
|
}
|
|
449
446
|
|
|
450
|
-
handleFilterSuggestions(
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
} = _ref3;
|
|
447
|
+
handleFilterSuggestions({
|
|
448
|
+
moreTabs
|
|
449
|
+
}) {
|
|
454
450
|
const {
|
|
455
451
|
showTitleInMoreOptions
|
|
456
452
|
} = this.props;
|
|
@@ -582,82 +578,79 @@ class Tabs extends React.Component {
|
|
|
582
578
|
})), isPopupOpen && /*#__PURE__*/React.createElement(ResponsiveReceiver, {
|
|
583
579
|
query: this.responsiveFunc,
|
|
584
580
|
responsiveId: "Helmet"
|
|
585
|
-
},
|
|
581
|
+
}, ({
|
|
582
|
+
tabletMode
|
|
583
|
+
}) => /*#__PURE__*/React.createElement(ResponsiveDropBox, _extends({
|
|
584
|
+
isActive: isPopupReady,
|
|
585
|
+
isAnimate: true,
|
|
586
|
+
size: "medium",
|
|
587
|
+
customClass: {
|
|
588
|
+
customDropBoxWrap: `${moreContainerClass} ${popupClass}`
|
|
589
|
+
},
|
|
590
|
+
boxPosition: position,
|
|
591
|
+
getRef: getContainerRef,
|
|
592
|
+
isBoxPaddingNeed: false,
|
|
593
|
+
isArrow: false,
|
|
594
|
+
isAbsolutePositioningNeeded: isAbsolutePositioningNeeded,
|
|
595
|
+
isRestrictScroll: isRestrictScroll,
|
|
596
|
+
positionsOffset: positionsOffset,
|
|
597
|
+
targetOffset: targetOffset
|
|
598
|
+
}, DropBoxProps, {
|
|
599
|
+
isResponsivePadding: true,
|
|
600
|
+
needFocusScope: true,
|
|
601
|
+
dataId: `${dataId}_dropbox`,
|
|
602
|
+
onClick: removeClose,
|
|
603
|
+
onClose: this.togglePopup
|
|
604
|
+
}), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(this.props), hasSearch ? /*#__PURE__*/React.createElement(Box, {
|
|
605
|
+
className: tabsStyle.search
|
|
606
|
+
}, /*#__PURE__*/React.createElement(TextBoxIcon, _extends({
|
|
607
|
+
placeHolder: placeHolderText,
|
|
608
|
+
onChange: this.handleChange,
|
|
609
|
+
value: searchValue,
|
|
610
|
+
onClear: this.handleSearchValueClear,
|
|
611
|
+
size: searchBoxSize,
|
|
612
|
+
customProps: {
|
|
613
|
+
TextBoxProps: {
|
|
614
|
+
'data-a11y-autofocus': true
|
|
615
|
+
}
|
|
616
|
+
},
|
|
617
|
+
dataId: `${dataId}_search`,
|
|
618
|
+
autoComplete: false,
|
|
619
|
+
name: "search"
|
|
620
|
+
}, TextBoxIconProps))) : null, /*#__PURE__*/React.createElement(Box, {
|
|
621
|
+
flexible: true,
|
|
622
|
+
shrink: true,
|
|
623
|
+
scroll: "vertical",
|
|
624
|
+
className: `${tabsStyle.listWrapper} ${tabletMode ? '' : tabsStyle.menuBox} ${moreBoxClass}`,
|
|
625
|
+
onScroll: this.onScroll,
|
|
626
|
+
dataId: `${dataId}_Tabs`
|
|
627
|
+
}, moreTabsListItems.length ? moreTabsListItems.map(data => {
|
|
586
628
|
let {
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
629
|
+
text,
|
|
630
|
+
id,
|
|
631
|
+
title,
|
|
632
|
+
isLink,
|
|
633
|
+
href,
|
|
634
|
+
children,
|
|
635
|
+
dataId
|
|
636
|
+
} = data;
|
|
637
|
+
const value = text ? text : showTitleInMoreOptions ? title : null;
|
|
638
|
+
return /*#__PURE__*/React.createElement(ListItem, _extends({
|
|
639
|
+
key: id,
|
|
640
|
+
value: value,
|
|
641
|
+
onClick: this.moreTabSelect,
|
|
642
|
+
id: id,
|
|
643
|
+
title: title || text,
|
|
644
|
+
isLink: isLink,
|
|
645
|
+
href: href,
|
|
646
|
+
autoHover: true,
|
|
593
647
|
customClass: {
|
|
594
|
-
|
|
595
|
-
},
|
|
596
|
-
boxPosition: position,
|
|
597
|
-
getRef: getContainerRef,
|
|
598
|
-
isBoxPaddingNeed: false,
|
|
599
|
-
isArrow: false,
|
|
600
|
-
isAbsolutePositioningNeeded: isAbsolutePositioningNeeded,
|
|
601
|
-
isRestrictScroll: isRestrictScroll,
|
|
602
|
-
positionsOffset: positionsOffset,
|
|
603
|
-
targetOffset: targetOffset
|
|
604
|
-
}, DropBoxProps, {
|
|
605
|
-
isResponsivePadding: true,
|
|
606
|
-
needFocusScope: true,
|
|
607
|
-
dataId: `${dataId}_dropbox`,
|
|
608
|
-
onClick: removeClose,
|
|
609
|
-
onClose: this.togglePopup
|
|
610
|
-
}), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(this.props), hasSearch ? /*#__PURE__*/React.createElement(Box, {
|
|
611
|
-
className: tabsStyle.search
|
|
612
|
-
}, /*#__PURE__*/React.createElement(TextBoxIcon, _extends({
|
|
613
|
-
placeHolder: placeHolderText,
|
|
614
|
-
onChange: this.handleChange,
|
|
615
|
-
value: searchValue,
|
|
616
|
-
onClear: this.handleSearchValueClear,
|
|
617
|
-
size: searchBoxSize,
|
|
618
|
-
customProps: {
|
|
619
|
-
TextBoxProps: {
|
|
620
|
-
'data-a11y-autofocus': true
|
|
621
|
-
}
|
|
648
|
+
customListItem: menuItemClass
|
|
622
649
|
},
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
flexible: true,
|
|
628
|
-
shrink: true,
|
|
629
|
-
scroll: "vertical",
|
|
630
|
-
className: `${tabsStyle.listWrapper} ${tabletMode ? '' : tabsStyle.menuBox} ${moreBoxClass}`,
|
|
631
|
-
onScroll: this.onScroll,
|
|
632
|
-
dataId: `${dataId}_Tabs`
|
|
633
|
-
}, moreTabsListItems.length ? moreTabsListItems.map(data => {
|
|
634
|
-
let {
|
|
635
|
-
text,
|
|
636
|
-
id,
|
|
637
|
-
title,
|
|
638
|
-
isLink,
|
|
639
|
-
href,
|
|
640
|
-
children,
|
|
641
|
-
dataId
|
|
642
|
-
} = data;
|
|
643
|
-
const value = text ? text : showTitleInMoreOptions ? title : null;
|
|
644
|
-
return /*#__PURE__*/React.createElement(ListItem, _extends({
|
|
645
|
-
key: id,
|
|
646
|
-
value: value,
|
|
647
|
-
onClick: this.moreTabSelect,
|
|
648
|
-
id: id,
|
|
649
|
-
title: title || text,
|
|
650
|
-
isLink: isLink,
|
|
651
|
-
href: href,
|
|
652
|
-
autoHover: true,
|
|
653
|
-
customClass: {
|
|
654
|
-
customListItem: menuItemClass
|
|
655
|
-
},
|
|
656
|
-
target: "self",
|
|
657
|
-
dataId: `${dataId}_Tab`
|
|
658
|
-
}, ListItemProps), !showTitleInMoreOptions ? children : null);
|
|
659
|
-
}) : this.renderEmptyState()));
|
|
660
|
-
})) : null);
|
|
650
|
+
target: "self",
|
|
651
|
+
dataId: `${dataId}_Tab`
|
|
652
|
+
}, ListItemProps), !showTitleInMoreOptions ? children : null);
|
|
653
|
+
}) : this.renderEmptyState())))) : null);
|
|
661
654
|
}
|
|
662
655
|
|
|
663
656
|
render() {
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { compileClassNames } from '@zohodesk/utils';
|
|
2
2
|
import { letterspacingMapping, lineheightMapping } from "../utils";
|
|
3
|
-
export default function cssJSLogic(
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} = _ref;
|
|
3
|
+
export default function cssJSLogic({
|
|
4
|
+
props,
|
|
5
|
+
style
|
|
6
|
+
}) {
|
|
8
7
|
let {
|
|
9
8
|
$flag_reset,
|
|
10
9
|
shouldReset,
|
|
@@ -34,8 +34,7 @@ export default class VelocityAnimationGroup extends React.Component {
|
|
|
34
34
|
|
|
35
35
|
if (postEnterStyles && typeof postEnterStyles === 'object') {
|
|
36
36
|
elements.forEach(rootElement => {
|
|
37
|
-
Object.entries(postEnterStyles).forEach(
|
|
38
|
-
let [cssProperty, cssValue] = _ref;
|
|
37
|
+
Object.entries(postEnterStyles).forEach(([cssProperty, cssValue]) => {
|
|
39
38
|
rootElement.style[cssProperty] = cssValue;
|
|
40
39
|
});
|
|
41
40
|
});
|
package/es/utils/Common.js
CHANGED
|
@@ -49,14 +49,11 @@ export function encodeForHtml(str) {
|
|
|
49
49
|
|
|
50
50
|
return str;
|
|
51
51
|
}
|
|
52
|
-
export function getListOfDetails() {
|
|
53
|
-
let Obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
54
|
-
let fn = arguments.length > 1 ? arguments[1] : undefined;
|
|
52
|
+
export function getListOfDetails(Obj = {}, fn) {
|
|
55
53
|
const ids = Object.keys(Obj) || [];
|
|
56
54
|
return ids.map(id => fn(Obj[id]));
|
|
57
55
|
}
|
|
58
|
-
export function capitalize() {
|
|
59
|
-
let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
56
|
+
export function capitalize(value = '') {
|
|
60
57
|
let newValue = '';
|
|
61
58
|
|
|
62
59
|
for (let i = 0; i < value.length; i++) {
|
|
@@ -69,18 +66,12 @@ export function capitalize() {
|
|
|
69
66
|
|
|
70
67
|
return newValue;
|
|
71
68
|
}
|
|
72
|
-
export function bind() {
|
|
73
|
-
for (var _len = arguments.length, handlers = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
74
|
-
handlers[_key] = arguments[_key];
|
|
75
|
-
}
|
|
76
|
-
|
|
69
|
+
export function bind(...handlers) {
|
|
77
70
|
handlers.forEach(handler => {
|
|
78
71
|
this[handler] = this[handler].bind(this);
|
|
79
72
|
});
|
|
80
73
|
}
|
|
81
|
-
export function getFullName() {
|
|
82
|
-
let firstName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
83
|
-
let lastName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
74
|
+
export function getFullName(firstName = '', lastName = '') {
|
|
84
75
|
let fullName = '';
|
|
85
76
|
|
|
86
77
|
if (firstName !== null && firstName !== '') {
|
|
@@ -93,8 +84,7 @@ export function getFullName() {
|
|
|
93
84
|
|
|
94
85
|
return fullName;
|
|
95
86
|
}
|
|
96
|
-
export function getStringifiedOutputForJson() {
|
|
97
|
-
let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
87
|
+
export function getStringifiedOutputForJson(input = {}) {
|
|
98
88
|
const keys = Object.keys(input);
|
|
99
89
|
const modifiedInput = keys.reduce((curr, next) => {
|
|
100
90
|
const values = input[next] || [];
|
|
@@ -130,19 +120,14 @@ export function filterValue(obj, val) {
|
|
|
130
120
|
});
|
|
131
121
|
return result;
|
|
132
122
|
}
|
|
133
|
-
export function merge() {
|
|
134
|
-
let oldObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
135
|
-
let newObj = arguments.length > 1 ? arguments[1] : undefined;
|
|
123
|
+
export function merge(oldObj = {}, newObj) {
|
|
136
124
|
const copyOfOld = Object.assign({}, oldObj);
|
|
137
125
|
return Object.keys(newObj).reduce((res, key) => {
|
|
138
126
|
res[key] = Object.assign({}, res[key] || {}, newObj[key]);
|
|
139
127
|
return res;
|
|
140
128
|
}, copyOfOld);
|
|
141
129
|
}
|
|
142
|
-
export function formatValue() {
|
|
143
|
-
let values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
144
|
-
let valueField = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id';
|
|
145
|
-
let textField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'name';
|
|
130
|
+
export function formatValue(values = [], valueField = 'id', textField = 'name') {
|
|
146
131
|
return values && values.map(value => {
|
|
147
132
|
let formattedValue = value;
|
|
148
133
|
|
|
@@ -166,8 +151,7 @@ export function bytesToSize(bytes) {
|
|
|
166
151
|
const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10);
|
|
167
152
|
return `${Math.round(bytes / Math.pow(1024, i), 2)} ${sizes[i]}`;
|
|
168
153
|
}
|
|
169
|
-
export function getMemSize(bytes) {
|
|
170
|
-
let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !0;
|
|
154
|
+
export function getMemSize(bytes, size = !0) {
|
|
171
155
|
const thresh = size ? 1000 : 1024;
|
|
172
156
|
|
|
173
157
|
if (Math.abs(bytes) < thresh) {
|
|
@@ -300,11 +284,7 @@ export const debounce = function (func, wait) {
|
|
|
300
284
|
};
|
|
301
285
|
};
|
|
302
286
|
let timerId;
|
|
303
|
-
export const throttle =
|
|
304
|
-
for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
|
|
305
|
-
args[_key2 - 2] = arguments[_key2];
|
|
306
|
-
}
|
|
307
|
-
|
|
287
|
+
export const throttle = (func, wait, ...args) => {
|
|
308
288
|
if (timerId) {
|
|
309
289
|
return;
|
|
310
290
|
}
|
|
@@ -374,8 +354,7 @@ export function getElementSpace(elementRef) {
|
|
|
374
354
|
availableInsideSpace: availableInsideSpace
|
|
375
355
|
};
|
|
376
356
|
}
|
|
377
|
-
export function getSearchString() {
|
|
378
|
-
let charachers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
357
|
+
export function getSearchString(charachers = '') {
|
|
379
358
|
return (charachers || '').toString().toLowerCase().trim(); //.replace(/\s+/g, '');
|
|
380
359
|
}
|
|
381
360
|
export function findScrollEnd(element) {
|
|
@@ -4,9 +4,7 @@ let dateFormat = {
|
|
|
4
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'],
|
|
5
5
|
timeNames: ['a', 'p', 'am', 'pm', 'A', 'P', 'AM', 'PM']
|
|
6
6
|
};
|
|
7
|
-
export function pad(n) {
|
|
8
|
-
let width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
9
|
-
let z = arguments.length > 2 ? arguments[2] : undefined;
|
|
7
|
+
export function pad(n, width = 1, z) {
|
|
10
8
|
z = z || '0';
|
|
11
9
|
n = `${n}`;
|
|
12
10
|
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
|
|
@@ -90,9 +88,7 @@ export function replaceI18NValuesWithRegex(i18nStr, values) {
|
|
|
90
88
|
export function unescapeUnicode(str) {
|
|
91
89
|
return str.replace(/\\u([a-fA-F0-9]{4})/g, (g, m1) => String.fromCharCode(parseInt(m1, 16)));
|
|
92
90
|
}
|
|
93
|
-
export function getValues() {
|
|
94
|
-
let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
95
|
-
let diff = arguments.length > 1 ? arguments[1] : undefined;
|
|
91
|
+
export function getValues(params = [], diff) {
|
|
96
92
|
return params.map(param => diff[param]);
|
|
97
93
|
}
|
|
98
94
|
export function getI18NValue(i18n) {
|
|
@@ -58,10 +58,7 @@ const getSearchFields = props => {
|
|
|
58
58
|
// }
|
|
59
59
|
|
|
60
60
|
|
|
61
|
-
export const isObjectContainsSearchString =
|
|
62
|
-
let searchFields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
63
|
-
let searchStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
64
|
-
let obj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
61
|
+
export const isObjectContainsSearchString = (searchFields = [], searchStr = '', obj = {}) => {
|
|
65
62
|
return searchFields.some(field => {
|
|
66
63
|
const val = obj[field];
|
|
67
64
|
if (val === null || val === undefined) return false;
|
|
@@ -444,13 +441,12 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
|
|
|
444
441
|
return changedOptions;
|
|
445
442
|
}, newOptions);
|
|
446
443
|
});
|
|
447
|
-
export const filterSelectedOptions =
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
444
|
+
export const filterSelectedOptions = ({
|
|
445
|
+
selectedOptions = dummyArray,
|
|
446
|
+
propSelectedOptions = dummyArray,
|
|
447
|
+
disabledOptions = dummyArray,
|
|
448
|
+
limit
|
|
449
|
+
} = {}) => {
|
|
454
450
|
// eslint-disable-next-line no-param-reassign
|
|
455
451
|
selectedOptions = selectedOptions || dummyArray; // eslint-disable-next-line no-param-reassign
|
|
456
452
|
|
package/es/utils/getInitial.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
export function getInitial() {
|
|
2
|
-
let firstName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
3
|
-
let lastName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
1
|
+
export function getInitial(firstName = '', lastName = '') {
|
|
4
2
|
let initial = '';
|
|
5
3
|
|
|
6
4
|
if (firstName) {
|
package/es/v1/Button/Button.js
CHANGED
|
@@ -11,8 +11,8 @@ import propTypes from "./props/propTypes";
|
|
|
11
11
|
import defaultProps from "./props/defaultProps";
|
|
12
12
|
import { DUMMY_OBJECT } from '@zohodesk/dotkit/es/utils/constants';
|
|
13
13
|
import { ICON_PLACEMENT, LOADER_PLACEMENT, STATUS, TYPOGRAPHY_SIZE_MAP, VARIANT } from "./constants";
|
|
14
|
-
import Loader from "
|
|
15
|
-
import SuccessTick from "
|
|
14
|
+
import Loader from "../shared/Loader/Loader";
|
|
15
|
+
import SuccessTick from "../shared/SuccessTick/SuccessTick";
|
|
16
16
|
import cssJSLogic from "./css/cssJSLogic";
|
|
17
17
|
|
|
18
18
|
const getTypographySize = size => TYPOGRAPHY_SIZE_MAP[size] || '13';
|
|
@@ -70,7 +70,8 @@ const Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
|
|
|
70
70
|
successOverlayClass,
|
|
71
71
|
contentWrapperClass,
|
|
72
72
|
textClassName,
|
|
73
|
-
buttonClassName
|
|
73
|
+
buttonClassName,
|
|
74
|
+
iconClassName
|
|
74
75
|
} = classes;
|
|
75
76
|
const showIcon = variant !== VARIANT.TEXT && (renderIcon || iconName);
|
|
76
77
|
|
|
@@ -134,6 +135,7 @@ const Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
|
|
|
134
135
|
}
|
|
135
136
|
|
|
136
137
|
return /*#__PURE__*/React.createElement(Icon, _extends({}, iconProps, {
|
|
138
|
+
iconClass: iconClassName,
|
|
137
139
|
name: iconName,
|
|
138
140
|
size: iconSize,
|
|
139
141
|
tagAttributes: iconTagAttributes,
|
|
@@ -218,13 +218,16 @@ describe('Button - Component', () => {
|
|
|
218
218
|
}));
|
|
219
219
|
expect(asFragment()).toMatchSnapshot();
|
|
220
220
|
});
|
|
221
|
-
test('Should apply customClass to wrapper and
|
|
221
|
+
test('Should apply customClass to wrapper, text and icon', () => {
|
|
222
222
|
const {
|
|
223
223
|
asFragment
|
|
224
224
|
} = render( /*#__PURE__*/React.createElement(Button, {
|
|
225
|
+
variant: "iconWithText",
|
|
226
|
+
iconName: "ZD-plus",
|
|
225
227
|
customClass: {
|
|
226
228
|
wrapper: 'customButtonClass',
|
|
227
|
-
text: 'customTextClass'
|
|
229
|
+
text: 'customTextClass',
|
|
230
|
+
icon: 'customIconClass'
|
|
228
231
|
}
|
|
229
232
|
}, "Button"));
|
|
230
233
|
expect(asFragment()).toMatchSnapshot();
|
|
@@ -27,7 +27,7 @@ exports[`Button - Component Should apply a11yAttributes to the button 1`] = `
|
|
|
27
27
|
</DocumentFragment>
|
|
28
28
|
`;
|
|
29
29
|
|
|
30
|
-
exports[`Button - Component Should apply customClass to wrapper and
|
|
30
|
+
exports[`Button - Component Should apply customClass to wrapper, text and icon 1`] = `
|
|
31
31
|
<DocumentFragment>
|
|
32
32
|
<button
|
|
33
33
|
aria-busy="false"
|
|
@@ -42,6 +42,13 @@ exports[`Button - Component Should apply customClass to wrapper and text 1`] = `
|
|
|
42
42
|
data-id="flex"
|
|
43
43
|
data-test-id="flex"
|
|
44
44
|
>
|
|
45
|
+
<i
|
|
46
|
+
aria-hidden="true"
|
|
47
|
+
class="zd_font_icons basic icon-plus customIconClass "
|
|
48
|
+
data-id="fontIcon"
|
|
49
|
+
data-selector-id="fontIcon"
|
|
50
|
+
style="--zd-iconfont-size: var(--zd_font_size16);"
|
|
51
|
+
/>
|
|
45
52
|
<div
|
|
46
53
|
class="dotted size13 customTextClass"
|
|
47
54
|
>
|
|
@@ -5,15 +5,11 @@ import getPaletteClasses from "../../helpers/colorHelpers/colorHelper";
|
|
|
5
5
|
import { DUMMY_OBJECT } from '@zohodesk/dotkit/es/utils/constants';
|
|
6
6
|
import { DISABLED_APPEARANCE, LOADER_PLACEMENT, SHAPE, SIZE, STATUS } from "../constants";
|
|
7
7
|
|
|
8
|
-
const capitalize =
|
|
9
|
-
let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
10
|
-
return value.charAt(0).toUpperCase() + value.slice(1);
|
|
11
|
-
};
|
|
8
|
+
const capitalize = (value = '') => value.charAt(0).toUpperCase() + value.slice(1);
|
|
12
9
|
|
|
13
|
-
export default function cssJSLogic(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} = _ref;
|
|
10
|
+
export default function cssJSLogic({
|
|
11
|
+
props
|
|
12
|
+
}) {
|
|
17
13
|
const {
|
|
18
14
|
palette,
|
|
19
15
|
bgAppearance,
|
|
@@ -31,7 +27,8 @@ export default function cssJSLogic(_ref) {
|
|
|
31
27
|
} = props;
|
|
32
28
|
const {
|
|
33
29
|
wrapper: wrapperClass = '',
|
|
34
|
-
text: textClassCustom = ''
|
|
30
|
+
text: textClassCustom = '',
|
|
31
|
+
icon: iconClassCustom = ''
|
|
35
32
|
} = customClass;
|
|
36
33
|
const isLoading = status === STATUS.LOADING;
|
|
37
34
|
const isSuccess = status === STATUS.SUCCESS;
|
|
@@ -86,11 +83,15 @@ export default function cssJSLogic(_ref) {
|
|
|
86
83
|
const textClassName = compileClassNames({
|
|
87
84
|
[textClassCustom]: !!textClassCustom
|
|
88
85
|
});
|
|
86
|
+
const iconClassName = compileClassNames({
|
|
87
|
+
[iconClassCustom]: !!iconClassCustom
|
|
88
|
+
});
|
|
89
89
|
return {
|
|
90
90
|
buttonClassName,
|
|
91
91
|
textClassName,
|
|
92
92
|
contentWrapperClass: overlayActive ? style.overlayHidden : style.contentWrapper,
|
|
93
93
|
loaderOverlayClass: style.loaderOverlay,
|
|
94
|
-
successOverlayClass: style.successOverlay
|
|
94
|
+
successOverlayClass: style.successOverlay,
|
|
95
|
+
iconClassName
|
|
95
96
|
};
|
|
96
97
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import compileClassNames from '@zohodesk/utils/es/compileClassNames';
|
|
2
2
|
import commonStyle from "../../../common/common.module.css";
|
|
3
|
-
export default function cssJSLogic(
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} = _ref;
|
|
3
|
+
export default function cssJSLogic({
|
|
4
|
+
style,
|
|
5
|
+
props
|
|
6
|
+
}) {
|
|
8
7
|
const {
|
|
9
8
|
shouldHighlightRequired,
|
|
10
9
|
isRequired,
|
|
@@ -48,37 +48,27 @@ const toBorderIntensity = (tone, hasState, isLighter) => {
|
|
|
48
48
|
return `${tone}-${isLighter ? intensity.borderLight : intensity.base}`;
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
export const getBgClass =
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
return paletteBorderStyle[withState(state, `border-${toBorderIntensity(tone, !!state, isLighter)}`)];
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
const buildPaletteClasses = (config, _ref4) => {
|
|
76
|
-
let {
|
|
77
|
-
bgAppearance,
|
|
78
|
-
borderAppearance,
|
|
79
|
-
paletteShade,
|
|
80
|
-
isSelected
|
|
81
|
-
} = _ref4;
|
|
51
|
+
export const getBgClass = ({
|
|
52
|
+
state,
|
|
53
|
+
tone,
|
|
54
|
+
isLighter
|
|
55
|
+
}) => paletteBgStyle[withState(state, `bg-${toBgIntensity(tone, !!state, isLighter)}`)];
|
|
56
|
+
export const getTextClass = ({
|
|
57
|
+
state,
|
|
58
|
+
textTone
|
|
59
|
+
}) => paletteTextStyle[withState(state, `text-${toTextIntensity(textTone, !!state)}`)];
|
|
60
|
+
export const getBorderClass = ({
|
|
61
|
+
state,
|
|
62
|
+
tone,
|
|
63
|
+
isLighter
|
|
64
|
+
}) => paletteBorderStyle[withState(state, `border-${toBorderIntensity(tone, !!state, isLighter)}`)];
|
|
65
|
+
|
|
66
|
+
const buildPaletteClasses = (config, {
|
|
67
|
+
bgAppearance,
|
|
68
|
+
borderAppearance,
|
|
69
|
+
paletteShade,
|
|
70
|
+
isSelected
|
|
71
|
+
}) => {
|
|
82
72
|
const {
|
|
83
73
|
tone,
|
|
84
74
|
textTone,
|
|
@@ -117,7 +107,7 @@ const buildPaletteClasses = (config, _ref4) => {
|
|
|
117
107
|
}) : '',
|
|
118
108
|
text: isSelected ? getTextClass({
|
|
119
109
|
state: 'selected',
|
|
120
|
-
textTone: baseTextTone
|
|
110
|
+
textTone: hasBgState ? stateTextTone : baseTextTone
|
|
121
111
|
}) : getTextClass({
|
|
122
112
|
textTone: baseTextTone
|
|
123
113
|
}),
|
|
@@ -133,11 +123,14 @@ const buildPaletteClasses = (config, _ref4) => {
|
|
|
133
123
|
state: 'active',
|
|
134
124
|
textTone: stateTextTone
|
|
135
125
|
}),
|
|
136
|
-
border: isSelected ? getBorderClass({
|
|
126
|
+
border: isSelected ? !hasBorderState ? getBorderClass({
|
|
127
|
+
tone: 'transparent'
|
|
128
|
+
}) : getBorderClass({
|
|
137
129
|
state: 'selected',
|
|
138
|
-
tone
|
|
139
|
-
|
|
140
|
-
|
|
130
|
+
tone
|
|
131
|
+
}) : hasTransparentBorder ? getBorderClass({
|
|
132
|
+
tone: 'transparent'
|
|
133
|
+
}) : getBorderClass({
|
|
141
134
|
tone,
|
|
142
135
|
isLighter
|
|
143
136
|
}),
|
|
@@ -156,14 +149,13 @@ const buildPaletteClasses = (config, _ref4) => {
|
|
|
156
149
|
};
|
|
157
150
|
};
|
|
158
151
|
|
|
159
|
-
const getPaletteClasses =
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
} = _ref5;
|
|
152
|
+
const getPaletteClasses = ({
|
|
153
|
+
palette,
|
|
154
|
+
bgAppearance,
|
|
155
|
+
borderAppearance,
|
|
156
|
+
paletteShade,
|
|
157
|
+
isSelected
|
|
158
|
+
}) => {
|
|
167
159
|
const config = PALETTE_CONFIG[palette];
|
|
168
160
|
return config ? buildPaletteClasses(config, {
|
|
169
161
|
bgAppearance,
|