@zohodesk/components 1.2.4 → 1.2.5

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.
Files changed (200) hide show
  1. package/README.md +4 -0
  2. package/coverage/Button/Button.js.html +1 -1
  3. package/coverage/Button/css/Button.module.css.html +1 -1
  4. package/coverage/Button/css/cssJSLogic.js.html +1 -1
  5. package/coverage/Button/css/index.html +1 -1
  6. package/coverage/Button/index.html +1 -1
  7. package/coverage/Button/props/defaultProps.js.html +1 -1
  8. package/coverage/Button/props/index.html +1 -1
  9. package/coverage/Button/props/propTypes.js.html +1 -1
  10. package/coverage/Buttongroup/Buttongroup.js.html +1 -1
  11. package/coverage/Buttongroup/Buttongroup.module.css.html +1 -1
  12. package/coverage/Buttongroup/index.html +1 -1
  13. package/coverage/Buttongroup/props/defaultProps.js.html +1 -1
  14. package/coverage/Buttongroup/props/index.html +1 -1
  15. package/coverage/Buttongroup/props/propTypes.js.html +1 -1
  16. package/coverage/index.html +1 -1
  17. package/coverage/utils/dummyFunction.js.html +1 -1
  18. package/coverage/utils/index.html +1 -1
  19. package/es/v1/Accordion/Accordion.js +65 -0
  20. package/es/v1/Accordion/AccordionItem.js +57 -0
  21. package/es/v1/Accordion/index.js +2 -0
  22. package/es/v1/Animation/Animation.js +127 -0
  23. package/es/v1/AppContainer/AppContainer.js +134 -0
  24. package/es/v1/Avatar/Avatar.js +189 -0
  25. package/es/v1/AvatarTeam/AvatarTeam.js +70 -0
  26. package/es/v1/Button/Button.js +68 -0
  27. package/es/v1/Buttongroup/Buttongroup.js +31 -0
  28. package/es/v1/Card/Card.js +271 -0
  29. package/es/v1/CheckBox/CheckBox.js +155 -0
  30. package/es/v1/DateTime/CalendarView.js +218 -0
  31. package/es/v1/DateTime/DateTime.js +783 -0
  32. package/es/v1/DateTime/DateTimePopupFooter.js +47 -0
  33. package/es/v1/DateTime/DateTimePopupHeader.js +105 -0
  34. package/es/v1/DateTime/DateWidget.js +1098 -0
  35. package/es/v1/DateTime/DaysRow.js +31 -0
  36. package/es/v1/DateTime/Time.js +166 -0
  37. package/es/v1/DateTime/YearView.js +264 -0
  38. package/es/v1/DateTime/index.js +1 -0
  39. package/es/v1/DropBox/DropBox.js +91 -0
  40. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +132 -0
  41. package/es/v1/DropDown/DropDown.js +73 -0
  42. package/es/v1/DropDown/DropDownHeading.js +44 -0
  43. package/es/v1/DropDown/DropDownItem.js +76 -0
  44. package/es/v1/DropDown/DropDownSearch.js +63 -0
  45. package/es/v1/DropDown/DropDownSeparator.js +15 -0
  46. package/es/v1/Heading/Heading.js +32 -0
  47. package/es/v1/Label/Label.js +40 -0
  48. package/es/v1/Layout/Box.js +115 -0
  49. package/es/v1/Layout/Container.js +132 -0
  50. package/es/v1/Layout/index.js +2 -0
  51. package/es/v1/ListItem/ListContainer.js +102 -0
  52. package/es/v1/ListItem/ListItem.js +124 -0
  53. package/es/v1/ListItem/ListItemWithAvatar.js +145 -0
  54. package/es/v1/ListItem/ListItemWithCheckBox.js +104 -0
  55. package/es/v1/ListItem/ListItemWithIcon.js +127 -0
  56. package/es/v1/ListItem/ListItemWithRadio.js +105 -0
  57. package/es/v1/ListItem/index.js +6 -0
  58. package/es/v1/Modal/Modal.js +154 -0
  59. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +1079 -0
  60. package/es/v1/MultiSelect/AdvancedMultiSelect.js +568 -0
  61. package/es/v1/MultiSelect/EmptyState.js +64 -0
  62. package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +50 -0
  63. package/es/v1/MultiSelect/MultiSelect.js +1120 -0
  64. package/es/v1/MultiSelect/MultiSelectHeader.js +32 -0
  65. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +216 -0
  66. package/es/v1/MultiSelect/SelectedOptions.js +82 -0
  67. package/es/v1/MultiSelect/Suggestions.js +142 -0
  68. package/es/v1/MultiSelect/index.js +4 -0
  69. package/es/v1/PopOver/PopOver.js +211 -0
  70. package/es/v1/Popup/Popup.js +645 -0
  71. package/es/v1/Radio/Radio.js +115 -0
  72. package/es/v1/Responsive/CustomResponsive.js +195 -0
  73. package/es/v1/Responsive/RefWrapper.js +39 -0
  74. package/es/v1/Responsive/ResizeComponent.js +197 -0
  75. package/es/v1/Responsive/ResizeObserver.js +140 -0
  76. package/es/v1/Responsive/Responsive.js +194 -0
  77. package/es/v1/Responsive/index.js +9 -0
  78. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +58 -0
  79. package/es/v1/Ribbon/Ribbon.js +33 -0
  80. package/es/v1/RippleEffect/RippleEffect.js +24 -0
  81. package/es/v1/Select/GroupSelect.js +803 -0
  82. package/es/v1/Select/Select.js +969 -0
  83. package/es/v1/Select/SelectWithAvatar.js +344 -0
  84. package/es/v1/Select/SelectWithIcon.js +535 -0
  85. package/es/v1/Select/index.js +4 -0
  86. package/es/v1/Stencils/Stencils.js +26 -0
  87. package/es/v1/Switch/Switch.js +94 -0
  88. package/es/v1/Tab/Tab.js +108 -0
  89. package/es/v1/Tab/TabContent.js +30 -0
  90. package/es/v1/Tab/TabContentWrapper.js +29 -0
  91. package/es/v1/Tab/TabWrapper.js +57 -0
  92. package/es/v1/Tab/Tabs.js +612 -0
  93. package/es/v1/Tab/index.js +5 -0
  94. package/es/v1/Tag/Tag.js +134 -0
  95. package/es/v1/TextBox/TextBox.js +154 -0
  96. package/es/v1/TextBoxIcon/TextBoxIcon.js +158 -0
  97. package/es/v1/Textarea/Textarea.js +102 -0
  98. package/es/v1/Tooltip/Tooltip.js +518 -0
  99. package/es/v1/Typography/Typography.js +38 -0
  100. package/es/v1/Typography/css/Typography.module.css +376 -0
  101. package/es/v1/Typography/css/cssJSLogic.js +46 -0
  102. package/es/v1/Typography/css/letterSpacingMap.js +12 -0
  103. package/es/v1/Typography/props/defaultProps.js +8 -0
  104. package/es/v1/Typography/props/propTypes.js +24 -0
  105. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +69 -0
  106. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +100 -0
  107. package/es/v1/semantic/Button/Button.js +53 -0
  108. package/es/v1/semantic/index.js +1 -0
  109. package/lib/v1/Accordion/Accordion.js +96 -0
  110. package/lib/v1/Accordion/AccordionItem.js +68 -0
  111. package/lib/v1/Accordion/index.js +23 -0
  112. package/lib/v1/Animation/Animation.js +143 -0
  113. package/lib/v1/AppContainer/AppContainer.js +204 -0
  114. package/lib/v1/Avatar/Avatar.js +246 -0
  115. package/lib/v1/AvatarTeam/AvatarTeam.js +81 -0
  116. package/lib/v1/Button/Button.js +82 -0
  117. package/lib/v1/Buttongroup/Buttongroup.js +44 -0
  118. package/lib/v1/Card/Card.js +365 -0
  119. package/lib/v1/CheckBox/CheckBox.js +166 -0
  120. package/lib/v1/DateTime/CalendarView.js +285 -0
  121. package/lib/v1/DateTime/DateTime.js +872 -0
  122. package/lib/v1/DateTime/DateTimePopupFooter.js +96 -0
  123. package/lib/v1/DateTime/DateTimePopupHeader.js +166 -0
  124. package/lib/v1/DateTime/DateWidget.js +1125 -0
  125. package/lib/v1/DateTime/DaysRow.js +80 -0
  126. package/lib/v1/DateTime/Time.js +254 -0
  127. package/lib/v1/DateTime/YearView.js +325 -0
  128. package/lib/v1/DateTime/index.js +15 -0
  129. package/lib/v1/DropBox/DropBox.js +119 -0
  130. package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +145 -0
  131. package/lib/v1/DropDown/DropDown.js +170 -0
  132. package/lib/v1/DropDown/DropDownHeading.js +93 -0
  133. package/lib/v1/DropDown/DropDownItem.js +127 -0
  134. package/lib/v1/DropDown/DropDownSearch.js +113 -0
  135. package/lib/v1/DropDown/DropDownSeparator.js +64 -0
  136. package/lib/v1/Heading/Heading.js +49 -0
  137. package/lib/v1/Label/Label.js +51 -0
  138. package/lib/v1/Layout/Box.js +128 -0
  139. package/lib/v1/Layout/Container.js +145 -0
  140. package/lib/v1/Layout/index.js +23 -0
  141. package/lib/v1/ListItem/ListContainer.js +120 -0
  142. package/lib/v1/ListItem/ListItem.js +138 -0
  143. package/lib/v1/ListItem/ListItemWithAvatar.js +162 -0
  144. package/lib/v1/ListItem/ListItemWithCheckBox.js +125 -0
  145. package/lib/v1/ListItem/ListItemWithIcon.js +143 -0
  146. package/lib/v1/ListItem/ListItemWithRadio.js +126 -0
  147. package/lib/v1/ListItem/index.js +55 -0
  148. package/lib/v1/Modal/Modal.js +212 -0
  149. package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +1167 -0
  150. package/lib/v1/MultiSelect/AdvancedMultiSelect.js +634 -0
  151. package/lib/v1/MultiSelect/EmptyState.js +112 -0
  152. package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +62 -0
  153. package/lib/v1/MultiSelect/MultiSelect.js +1201 -0
  154. package/lib/v1/MultiSelect/MultiSelectHeader.js +78 -0
  155. package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +270 -0
  156. package/lib/v1/MultiSelect/SelectedOptions.js +126 -0
  157. package/lib/v1/MultiSelect/Suggestions.js +195 -0
  158. package/lib/v1/MultiSelect/index.js +39 -0
  159. package/lib/v1/PopOver/PopOver.js +293 -0
  160. package/lib/v1/Popup/Popup.js +715 -0
  161. package/lib/v1/Radio/Radio.js +126 -0
  162. package/lib/v1/Responsive/CustomResponsive.js +242 -0
  163. package/lib/v1/Responsive/RefWrapper.js +57 -0
  164. package/lib/v1/Responsive/ResizeComponent.js +268 -0
  165. package/lib/v1/Responsive/ResizeObserver.js +168 -0
  166. package/lib/v1/Responsive/Responsive.js +274 -0
  167. package/lib/v1/Responsive/index.js +55 -0
  168. package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +79 -0
  169. package/lib/v1/Ribbon/Ribbon.js +44 -0
  170. package/lib/v1/RippleEffect/RippleEffect.js +39 -0
  171. package/lib/v1/Select/GroupSelect.js +877 -0
  172. package/lib/v1/Select/Select.js +1013 -0
  173. package/lib/v1/Select/SelectWithAvatar.js +394 -0
  174. package/lib/v1/Select/SelectWithIcon.js +597 -0
  175. package/lib/v1/Select/index.js +39 -0
  176. package/lib/v1/Stencils/Stencils.js +43 -0
  177. package/lib/v1/Switch/Switch.js +108 -0
  178. package/lib/v1/Tab/Tab.js +132 -0
  179. package/lib/v1/Tab/TabContent.js +42 -0
  180. package/lib/v1/Tab/TabContentWrapper.js +42 -0
  181. package/lib/v1/Tab/TabWrapper.js +89 -0
  182. package/lib/v1/Tab/Tabs.js +680 -0
  183. package/lib/v1/Tab/index.js +47 -0
  184. package/lib/v1/Tag/Tag.js +154 -0
  185. package/lib/v1/TextBox/TextBox.js +168 -0
  186. package/lib/v1/TextBoxIcon/TextBoxIcon.js +196 -0
  187. package/lib/v1/Textarea/Textarea.js +118 -0
  188. package/lib/v1/Tooltip/Tooltip.js +586 -0
  189. package/lib/v1/Typography/Typography.js +56 -0
  190. package/lib/v1/Typography/css/Typography.module.css +376 -0
  191. package/lib/v1/Typography/css/cssJSLogic.js +41 -0
  192. package/lib/v1/Typography/css/letterSpacingMap.js +20 -0
  193. package/lib/v1/Typography/props/defaultProps.js +15 -0
  194. package/lib/v1/Typography/props/propTypes.js +35 -0
  195. package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +90 -0
  196. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +126 -0
  197. package/lib/v1/semantic/Button/Button.js +63 -0
  198. package/lib/v1/semantic/index.js +15 -0
  199. package/package.json +1 -1
  200. package/result.json +1 -1
@@ -0,0 +1,189 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from 'react';
4
+ import { defaultProps } from '../../Avatar/props/defaultProps';
5
+ import { propTypes } from '../../Avatar/props/propTypes';
6
+ import { getInitial } from '../../utils/getInitial';
7
+ import AvatarSize from '../../Provider/AvatarSize';
8
+ import style from '../../Avatar/Avatar.module.css';
9
+ /*
10
+ 1. need to change name into firstName lastName
11
+ 2. pattern support via context as well as props
12
+ 3. prop high priority to arrange firstName lastName
13
+ 4. team pass name as lastName and pass pattern via prop
14
+ */
15
+
16
+ export default class Avatar extends React.Component {
17
+ constructor(props) {
18
+ super(props);
19
+ this.state = {
20
+ isLoaded: false
21
+ };
22
+ this.putInvalidImageURLJSON = this.putInvalidImageURLJSON.bind(this);
23
+ this.putValidImageURLJSON = this.putValidImageURLJSON.bind(this);
24
+ this.getInitialByFullName = this.getInitialByFullName.bind(this);
25
+ }
26
+
27
+ componentDidUpdate(prevProps, prevState) {
28
+ let {
29
+ src
30
+ } = this.props;
31
+ let {
32
+ isLoaded
33
+ } = this.state;
34
+
35
+ if (prevProps.src !== src) {
36
+ this.setState({
37
+ isLoaded: !isLoaded
38
+ });
39
+ }
40
+ }
41
+
42
+ putInvalidImageURLJSON() {
43
+ const {
44
+ src,
45
+ alternateSrc
46
+ } = this.props;
47
+ let {
48
+ isLoaded
49
+ } = this.state;
50
+ let _validImgArr = [...Avatar.validImageURLs];
51
+ let _invalidImgArr = [...Avatar.invalidImageURLs]; // if (alternateSrc) {
52
+ // _validImgArr.push(alternateSrc);
53
+ // }
54
+
55
+ const validIndex = _validImgArr.indexOf(src);
56
+
57
+ if (validIndex !== -1) {
58
+ _validImgArr.splice(validIndex, 1);
59
+ }
60
+
61
+ _invalidImgArr.push(src);
62
+
63
+ Avatar.invalidImageURLs = _invalidImgArr;
64
+ Avatar.validImageURLs = _validImgArr;
65
+ this.setState({
66
+ isLoaded: !isLoaded
67
+ });
68
+ }
69
+
70
+ putValidImageURLJSON() {
71
+ const {
72
+ src
73
+ } = this.props;
74
+ let {
75
+ isLoaded
76
+ } = this.state;
77
+ const validImgArr = Avatar.validImageURLs;
78
+ const invalidImgArr = Avatar.invalidImageURLs;
79
+
80
+ if (src && validImgArr.indexOf(src) === -1 && invalidImgArr.indexOf(src) === -1) {
81
+ let _validImgArr = [...validImgArr];
82
+
83
+ _validImgArr.push(src);
84
+
85
+ Avatar.validImageURLs = _validImgArr;
86
+ this.setState({
87
+ isLoaded: !isLoaded
88
+ });
89
+ }
90
+ }
91
+ /* this will cause error if user name already have some space need to move firstName lastName user preference pattern*/
92
+
93
+
94
+ getInitialByFullName() {
95
+ let fullName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
96
+ fullName = (fullName || '').trim();
97
+ let nameList = fullName.split(' ');
98
+
99
+ if (nameList.length === 1) {
100
+ return getInitial('', nameList[0]);
101
+ }
102
+
103
+ return getInitial(nameList[0], nameList[1]);
104
+ } // componentDidMount() {
105
+ // const { src } = this.props;
106
+ // const validImgArr = Avatar.validImageURLs;
107
+ // if (validImgArr.indexOf(src) === -1) {
108
+ // let _validImgArr = [...validImgArr];
109
+ // _validImgArr.push(src);
110
+ // }
111
+ // }
112
+
113
+
114
+ render() {
115
+ let {
116
+ src,
117
+ name,
118
+ size,
119
+ palette,
120
+ onClick,
121
+ title,
122
+ shape,
123
+ needTitle,
124
+ dataId,
125
+ initial,
126
+ needBorder,
127
+ borderOnActive,
128
+ borderOnHover,
129
+ textPalette,
130
+ customClass,
131
+ alternateSrc,
132
+ isAnimate,
133
+ dataSelectorId,
134
+ customProps,
135
+ needInnerBorder,
136
+ needDefaultBorder
137
+ } = this.props;
138
+ let {
139
+ AvatarProps = {}
140
+ } = customProps;
141
+ let textStyle = textPalette ? style[textPalette] : palette === 'secondary' ? style.white : style.black;
142
+ let shapeStyle = shape === 'circle' ? 'circle' : `square_${size}`;
143
+ initial = initial || this.getInitialByFullName(name);
144
+ let isInvalidImageList = Avatar.invalidImageURLs.indexOf(src) !== -1; //let isValidImageList = Avatar.validImageURLs.indexOf(src) !== -1;
145
+
146
+ let showAvatar = src && !isInvalidImageList;
147
+ let showInitial = !showAvatar || showAvatar && isInvalidImageList;
148
+ const showAlternateAvatar = alternateSrc ? showInitial : false;
149
+ let border = borderOnHover || onClick;
150
+ let showDefaultBorder = src && !isInvalidImageList && needDefaultBorder;
151
+ let borderStyle = (showDefaultBorder || !src || !showAvatar || showInitial) && needBorder ? `${style.border} ${borderOnActive ? style.borderOnActive : border ? style.borderOnHover : ''} ` : '';
152
+ borderStyle = showAlternateAvatar ? '' : borderStyle;
153
+ return /*#__PURE__*/React.createElement("div", _extends({
154
+ className: `${style.avatar} ${style[size]} ${AvatarSize(size)} ${style[shapeStyle]} ${style[palette]} ${textStyle} ${borderStyle} ${customClass ? customClass : ''}`,
155
+ "data-title": needTitle ? title ? title : name : null,
156
+ "data-id": dataId,
157
+ "data-test-id": dataId,
158
+ onClick: onClick,
159
+ "data-selector-id": dataSelectorId
160
+ }, AvatarProps), showInitial && !showAlternateAvatar && /*#__PURE__*/React.createElement("span", {
161
+ className: `${style.initial}`,
162
+ "data-id": `${dataId}_AvatarInitial`,
163
+ "data-test-id": `${dataId}_AvatarInitial`,
164
+ "data-selector-id": `${dataSelectorId}_AvatarInitial`
165
+ }, initial), (showAvatar || showAlternateAvatar) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("img", {
166
+ className: `${style.image} ${isAnimate ? style.animate : ''} ${needInnerBorder ? style.innerBorder : ''}`,
167
+ "data-id": `${dataId}_AvatarImg`,
168
+ "data-test-id": `${dataId}_AvatarImg`,
169
+ "data-selector-id": `${dataSelectorId}_AvatarImg`,
170
+ name: name,
171
+ onError: this.putInvalidImageURLJSON,
172
+ onLoad: this.putValidImageURLJSON,
173
+ src: showAlternateAvatar ? alternateSrc : src,
174
+ alt: name
175
+ }), showDefaultBorder ? null : /*#__PURE__*/React.createElement("span", {
176
+ className: `${style.shadow} ${textStyle} `
177
+ })));
178
+ }
179
+
180
+ }
181
+ Avatar.defaultProps = defaultProps;
182
+ Avatar.propTypes = propTypes;
183
+ Avatar.invalidImageURLs = [];
184
+ Avatar.validImageURLs = []; // if (__DOCS__) {
185
+ // Avatar.docs = {
186
+ // componentGroup: 'Avatar Group',
187
+ // folderName: 'Style Guide'
188
+ // };
189
+ // }
@@ -0,0 +1,70 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from 'react';
4
+ import { defaultProps } from '../../AvatarTeam/props/defaultProps';
5
+ import { propTypes } from '../../AvatarTeam/props/propTypes';
6
+ import Avatar from '../Avatar/Avatar';
7
+ import style from '../../AvatarTeam/AvatarTeam.module.css';
8
+ /* once avatar support firstname lastname and pattern
9
+ pass lastName as team name and pattern ["FIRST_NAME","LAST_NAME"] as props
10
+
11
+ Not going to export to external then can kept inside supportapp
12
+ */
13
+
14
+ export default function AvatarTeam(props) {
15
+ const {
16
+ src,
17
+ name,
18
+ size,
19
+ palette,
20
+ textPalette,
21
+ onClick,
22
+ title,
23
+ isFilled,
24
+ dataId,
25
+ needTitle,
26
+ customClass,
27
+ borderOnActive,
28
+ borderOnHover,
29
+ dataSelectorId,
30
+ customProps,
31
+ needInnerBorder,
32
+ needBorder,
33
+ needDefaultBorder
34
+ } = props;
35
+ const {
36
+ AvatarTeamProps = {},
37
+ AvatarProps = {}
38
+ } = customProps;
39
+ const {
40
+ customAvatar = '',
41
+ customAvatarTeam = ''
42
+ } = customClass;
43
+ const border = borderOnHover || onClick;
44
+ return /*#__PURE__*/React.createElement("span", _extends({
45
+ className: `${style.container} ${borderOnActive ? style.borderOnActive : border ? style.borderOnHover : ''} `,
46
+ "data-id": dataId,
47
+ "data-test-id": dataId,
48
+ "data-selector-id": dataSelectorId
49
+ }, AvatarTeamProps), /*#__PURE__*/React.createElement(Avatar, _extends({
50
+ name: name,
51
+ onClick: onClick,
52
+ palette: palette,
53
+ textPalette: textPalette,
54
+ size: size,
55
+ src: src,
56
+ title: title,
57
+ needTitle: needTitle,
58
+ customClass: customAvatar,
59
+ borderOnActive: borderOnActive,
60
+ borderOnHover: border,
61
+ needInnerBorder: needInnerBorder,
62
+ needBorder: needBorder,
63
+ needDefaultBorder: needDefaultBorder
64
+ }, AvatarProps)), /*#__PURE__*/React.createElement("span", {
65
+ className: `${style.team} ${isFilled ? `${style[`${palette}Filled`]}` : style.nofill}
66
+ ${style[`${size}team`]} ${customAvatarTeam}`
67
+ }));
68
+ }
69
+ AvatarTeam.defaultProps = defaultProps;
70
+ AvatarTeam.propTypes = propTypes;
@@ -0,0 +1,68 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from 'react';
4
+ import { defaultProps } from '../../Button/props/defaultProps';
5
+ import { propTypes } from '../../Button/props/propTypes';
6
+ import cssJSLogic from '../../Button/css/cssJSLogic';
7
+ import { mergeStyle } from '@zohodesk/utils';
8
+ import style from '../../Button/css/Button.module.css';
9
+ /*
10
+ Button text and children props?
11
+ use children for both cases
12
+ toLowerCase check needed?
13
+ */
14
+
15
+ export default function Button(props) {
16
+ let {
17
+ text,
18
+ disabled,
19
+ onClick,
20
+ status,
21
+ children,
22
+ dataId,
23
+ needAppearance,
24
+ getRef,
25
+ title,
26
+ dataSelectorId,
27
+ customProps,
28
+ customStyle,
29
+ a11y,
30
+ id
31
+ } = props;
32
+ const finalStyle = mergeStyle(style, customStyle);
33
+ const {
34
+ buttonClass,
35
+ loaderParentClass,
36
+ loaderChildClass
37
+ } = cssJSLogic({
38
+ props,
39
+ style: finalStyle
40
+ });
41
+ let statusLower = status.toLowerCase();
42
+ return /*#__PURE__*/React.createElement("button", _extends({
43
+ className: buttonClass,
44
+ "data-id": disabled ? `${dataId}_disabled` : dataId,
45
+ "data-test-id": disabled ? `${dataId}_disabled` : dataId,
46
+ disabled: disabled || statusLower === 'loading',
47
+ onClick: onClick,
48
+ "data-title": title,
49
+ type: "button",
50
+ ref: getRef,
51
+ "data-selector-id": dataSelectorId
52
+ }, customProps, a11y, {
53
+ id: id
54
+ }), children ? children : text, statusLower !== 'none' && needAppearance && /*#__PURE__*/React.createElement("div", {
55
+ className: finalStyle.overlay
56
+ }, /*#__PURE__*/React.createElement("div", {
57
+ className: loaderParentClass
58
+ }, /*#__PURE__*/React.createElement("div", {
59
+ className: loaderChildClass
60
+ }))));
61
+ }
62
+ Button.defaultProps = defaultProps;
63
+ Button.propTypes = propTypes; // if (__DOCS__) {
64
+ // Button.docs = {
65
+ // componentGroup: 'Form Elements',
66
+ // folderName: 'Style Guide'
67
+ // };
68
+ // }
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { defaultProps } from '../../Buttongroup/props/defaultProps';
3
+ import { propTypes } from '../../Buttongroup/props/propTypes';
4
+ import style from '../../Buttongroup/Buttongroup.module.css';
5
+ export default function Buttongroup(props) {
6
+ const {
7
+ children,
8
+ type,
9
+ buttonPosition,
10
+ customClass,
11
+ dataId,
12
+ dataSelectorId
13
+ } = props;
14
+ const btnGroup = [];
15
+ children && children.forEach(child => {
16
+ let btnRight = /*#__PURE__*/React.createElement("span", {
17
+ className: style[type]
18
+ }, child);
19
+ btnGroup.push(btnRight);
20
+ });
21
+ return /*#__PURE__*/React.createElement("div", {
22
+ className: `${style.buttonGroup} ${style[type]} ${customClass ? customClass : ''}`,
23
+ "data-id": dataId,
24
+ "data-test-id": dataId,
25
+ "data-selector-id": dataSelectorId
26
+ }, /*#__PURE__*/React.createElement("div", {
27
+ className: style[`align${buttonPosition}`]
28
+ }, children));
29
+ }
30
+ Buttongroup.defaultProps = defaultProps;
31
+ Buttongroup.propTypes = propTypes;
@@ -0,0 +1,271 @@
1
+ import React, { Component } from 'react';
2
+ import { CardHeader_propTypes, CardContent_propTypes, Card_propTypes, CardFooter_propTypes } from '../../Card/props/propTypes';
3
+ import { Card_defaultProps, CardHeader_defaultProps, CardContent_defaultProps, CardFooter_defaultProps } from '../../Card/props/defaultProps';
4
+ import { Container, Box } from '../Layout';
5
+ import { getLibraryConfig } from '../../Provider/Config';
6
+ import style from '../../Card/Card.module.css';
7
+ /* eslint-disable react/forbid-component-props */
8
+
9
+ /*
10
+ isscroll header border change use ref
11
+ scroll logic remove from here
12
+ scroll logic move to virtualizer list
13
+ */
14
+
15
+ /* performance handling pending in card component moving to ref instead of setState */
16
+
17
+ export class CardHeader extends Component {
18
+ constructor(props) {
19
+ super(props);
20
+ this.getCardHeaderDom = this.getCardHeaderDom.bind(this);
21
+ this.cardHeader = null;
22
+ }
23
+
24
+ getCardHeaderDom(ele) {
25
+ this.cardHeader = ele;
26
+ }
27
+
28
+ setScrollClassName() {
29
+ if (!this.cardHeader) {
30
+ return null;
31
+ }
32
+ }
33
+
34
+ render() {
35
+ let {
36
+ isScroll,
37
+ children,
38
+ dataId,
39
+ dataSelectorId,
40
+ customClass
41
+ } = this.props;
42
+ return /*#__PURE__*/React.createElement(Box, {
43
+ className: `${isScroll ? style.scroll : style.notScroll} ${customClass}`,
44
+ eleRef: this.getCardHeaderDom,
45
+ dataId: dataId,
46
+ dataSelectorId: dataSelectorId
47
+ }, children);
48
+ }
49
+
50
+ }
51
+ CardHeader.propTypes = CardHeader_propTypes;
52
+ CardHeader.defaultProps = CardHeader_defaultProps;
53
+ export class CardContent extends Component {
54
+ render() {
55
+ let {
56
+ onScroll,
57
+ eleRef,
58
+ children,
59
+ scroll,
60
+ isScrollAttribute,
61
+ dataId,
62
+ dataSelectorId,
63
+ shrink,
64
+ customClass,
65
+ preventParentScroll
66
+ } = this.props;
67
+ return /*#__PURE__*/React.createElement(Box, {
68
+ flexible: true,
69
+ onScroll: onScroll,
70
+ eleRef: eleRef,
71
+ scroll: scroll,
72
+ preventParentScroll: preventParentScroll,
73
+ isScrollAttribute: isScrollAttribute,
74
+ dataId: dataId,
75
+ shrink: shrink,
76
+ className: customClass,
77
+ dataSelectorId: dataSelectorId
78
+ }, children);
79
+ }
80
+
81
+ }
82
+ CardContent.propTypes = CardContent_propTypes;
83
+ CardContent.defaultProps = CardContent_defaultProps;
84
+ export default class Card extends Component {
85
+ constructor(props) {
86
+ super(props);
87
+ this.state = {
88
+ isScroll: false
89
+ };
90
+ let {
91
+ from,
92
+ limit
93
+ } = props;
94
+ this.from = from;
95
+ this.limit = limit;
96
+ this.to = from + 3 * limit;
97
+ this.isFetching = false;
98
+ this.lastScrollTop = 0;
99
+ this.onScroll = this.onScroll.bind(this); //this.onSetScroll = debounce(this.setScroll.bind(this, true), 10, true);
100
+ //this.onClearScroll = debounce(this.setScroll.bind(this, false), 500);
101
+ }
102
+
103
+ UNSAFE_componentWillReceiveProps(nextProps) {
104
+ if (this.from !== nextProps.from) {
105
+ this.from = nextProps.from;
106
+ }
107
+ }
108
+
109
+ onScroll(e) {
110
+ let scrollContainerObj = e.currentTarget;
111
+ let {
112
+ scrollHeight
113
+ } = scrollContainerObj;
114
+ let {
115
+ scrollTop
116
+ } = scrollContainerObj;
117
+ let {
118
+ offsetHeight
119
+ } = scrollContainerObj;
120
+ let {
121
+ onScroll
122
+ } = this.props;
123
+ onScroll && onScroll(e);
124
+ let {
125
+ fetchData,
126
+ noMoreData,
127
+ scrollAt,
128
+ noNeedUpScroll,
129
+ // isScrollShadow,
130
+ isPercentageScroll
131
+ } = this.props;
132
+
133
+ if (scrollTop > this.lastScrollTop) {
134
+ this.scrollDirection = 'down';
135
+ } else {
136
+ this.scrollDirection = 'up';
137
+ }
138
+
139
+ this.lastScrollTop = scrollTop;
140
+
141
+ if (fetchData && !this.isFetching) {
142
+ if (this.scrollDirection === 'down' && !noMoreData) {
143
+ const scrollingPercentage = (scrollTop + offsetHeight) / (scrollHeight - scrollAt) * 100;
144
+ const prefetch = isPercentageScroll ? scrollingPercentage >= getLibraryConfig('scrollFetchLimit') : scrollHeight - scrollAt <= scrollTop + offsetHeight;
145
+
146
+ if (prefetch) {
147
+ this.isFetching = true;
148
+ fetchData(this.from + this.limit, this.limit + this.to, this.scrollDirection).then(() => {
149
+ this.to = this.limit + this.to;
150
+ this.isFetching = false;
151
+ }, () => {
152
+ this.isFetching = false;
153
+ });
154
+ }
155
+ } else {
156
+ if (0 >= scrollTop - scrollAt && this.from !== 0 && !noNeedUpScroll) {
157
+ this.isFetching = true;
158
+ fetchData(this.from - this.limit, this.to - this.limit, this.scrollDirection).then(() => {
159
+ this.to = this.to - this.limit;
160
+ this.isFetching = false;
161
+ }, () => {
162
+ this.isFetching = false;
163
+ });
164
+ }
165
+ }
166
+ }
167
+
168
+ if (fetchData && !noNeedUpScroll) {
169
+ if (this.from !== 0 && scrollTop === 0 && !noNeedUpScroll) {
170
+ scrollContainerObj.scrollTop = scrollTop + offsetHeight / 3;
171
+ } else if (scrollHeight === scrollTop + offsetHeight && !noMoreData) {
172
+ scrollContainerObj.scrollTop = scrollTop - offsetHeight / 2;
173
+ }
174
+ } // if (isScrollShadow) {
175
+ // this.onSetScroll();
176
+ // }
177
+
178
+ } // setScroll(isScroll) {
179
+ // let { isScroll: stateIsScroll } = this.state;
180
+ // if (isScroll && !stateIsScroll) {
181
+ // this.setState({ isScroll: true }, () => {
182
+ // this.onClearScroll();
183
+ // });
184
+ // } else if (!isScroll && stateIsScroll) {
185
+ // this.setState({ isScroll: false });
186
+ // }
187
+ // }
188
+
189
+
190
+ render() {
191
+ let {
192
+ onClick,
193
+ children,
194
+ isScrollAttribute,
195
+ dataId,
196
+ eleRef,
197
+ customClass = '',
198
+ htmlId,
199
+ a11y
200
+ } = this.props;
201
+ let {
202
+ isScroll
203
+ } = this.state;
204
+ let {
205
+ role
206
+ } = a11y;
207
+ return /*#__PURE__*/React.createElement(Container, {
208
+ className: `${customClass}`,
209
+ isScrollAttribute: isScrollAttribute,
210
+ onClick: onClick,
211
+ dataId: dataId,
212
+ eleRef: eleRef
213
+ }, React.Children.map(children, child => {
214
+ if (!child) {
215
+ return child;
216
+ }
217
+
218
+ if (child.type === CardHeader || this.props.childTypes && child.type === this.props.childTypes.cardHeader) {
219
+ return /*#__PURE__*/React.cloneElement(child, {
220
+ isScroll
221
+ });
222
+ } else if (child.type === CardContent || this.props.childTypes && child.type === this.props.childTypes.cardContent) {
223
+ return /*#__PURE__*/React.createElement(Box, {
224
+ id: htmlId,
225
+ role: role,
226
+ flexible: true,
227
+ scroll: child.props.scroll,
228
+ preventParentScroll: child.props.preventParentScroll,
229
+ onScroll: this.onScroll,
230
+ eleRef: child.props.eleRef,
231
+ isScrollAttribute: child.props.isScrollAttribute,
232
+ dataId: child.props.dataId,
233
+ shrink: child.props.shrink,
234
+ className: child.props.customClass,
235
+ dataSelectorId: child.props.dataSelectorId
236
+ }, child.props.children);
237
+ }
238
+
239
+ return child;
240
+ }));
241
+ }
242
+
243
+ }
244
+ Card.propTypes = Card_propTypes;
245
+ Card.defaultProps = Card_defaultProps; // if (__DOCS__) {
246
+ // Card.docs = {
247
+ // componentGroup: 'Template',
248
+ // folderName: 'Style Guide',
249
+ // external: true,
250
+ // description: ' '
251
+ // };
252
+ // }
253
+
254
+ export class CardFooter extends Component {
255
+ render() {
256
+ let {
257
+ children,
258
+ dataId,
259
+ customClass,
260
+ dataSelectorId
261
+ } = this.props;
262
+ return /*#__PURE__*/React.createElement(Box, {
263
+ className: `${customClass}`,
264
+ dataId: dataId,
265
+ dataSelectorId: dataSelectorId
266
+ }, children);
267
+ }
268
+
269
+ }
270
+ CardFooter.propTypes = CardFooter_propTypes;
271
+ CardFooter.defaultProps = CardFooter_defaultProps;