@zohodesk/components 1.2.3 → 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 (205) hide show
  1. package/.cli/PropLessFiles.html +1 -1
  2. package/.cli/PropValidationExcludeFilesArray.js +10 -2
  3. package/.cli/propValidation_report.html +1 -1
  4. package/README.md +8 -0
  5. package/coverage/Button/Button.js.html +1 -1
  6. package/coverage/Button/css/Button.module.css.html +1 -1
  7. package/coverage/Button/css/cssJSLogic.js.html +1 -1
  8. package/coverage/Button/css/index.html +1 -1
  9. package/coverage/Button/index.html +1 -1
  10. package/coverage/Button/props/defaultProps.js.html +1 -1
  11. package/coverage/Button/props/index.html +1 -1
  12. package/coverage/Button/props/propTypes.js.html +1 -1
  13. package/coverage/Buttongroup/Buttongroup.js.html +1 -1
  14. package/coverage/Buttongroup/Buttongroup.module.css.html +1 -1
  15. package/coverage/Buttongroup/index.html +1 -1
  16. package/coverage/Buttongroup/props/defaultProps.js.html +1 -1
  17. package/coverage/Buttongroup/props/index.html +1 -1
  18. package/coverage/Buttongroup/props/propTypes.js.html +1 -1
  19. package/coverage/index.html +1 -1
  20. package/coverage/utils/dummyFunction.js.html +1 -1
  21. package/coverage/utils/index.html +1 -1
  22. package/es/index.js +2 -1
  23. package/es/v1/Accordion/Accordion.js +65 -0
  24. package/es/v1/Accordion/AccordionItem.js +57 -0
  25. package/es/v1/Accordion/index.js +2 -0
  26. package/es/v1/Animation/Animation.js +127 -0
  27. package/es/v1/AppContainer/AppContainer.js +134 -0
  28. package/es/v1/Avatar/Avatar.js +189 -0
  29. package/es/v1/AvatarTeam/AvatarTeam.js +70 -0
  30. package/es/v1/Button/Button.js +68 -0
  31. package/es/v1/Buttongroup/Buttongroup.js +31 -0
  32. package/es/v1/Card/Card.js +271 -0
  33. package/es/v1/CheckBox/CheckBox.js +155 -0
  34. package/es/v1/DateTime/CalendarView.js +218 -0
  35. package/es/v1/DateTime/DateTime.js +783 -0
  36. package/es/v1/DateTime/DateTimePopupFooter.js +47 -0
  37. package/es/v1/DateTime/DateTimePopupHeader.js +105 -0
  38. package/es/v1/DateTime/DateWidget.js +1098 -0
  39. package/es/v1/DateTime/DaysRow.js +31 -0
  40. package/es/v1/DateTime/Time.js +166 -0
  41. package/es/v1/DateTime/YearView.js +264 -0
  42. package/es/v1/DateTime/index.js +1 -0
  43. package/es/v1/DropBox/DropBox.js +91 -0
  44. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +132 -0
  45. package/es/v1/DropDown/DropDown.js +73 -0
  46. package/es/v1/DropDown/DropDownHeading.js +44 -0
  47. package/es/v1/DropDown/DropDownItem.js +76 -0
  48. package/es/v1/DropDown/DropDownSearch.js +63 -0
  49. package/es/v1/DropDown/DropDownSeparator.js +15 -0
  50. package/es/v1/Heading/Heading.js +32 -0
  51. package/es/v1/Label/Label.js +40 -0
  52. package/es/v1/Layout/Box.js +115 -0
  53. package/es/v1/Layout/Container.js +132 -0
  54. package/es/v1/Layout/index.js +2 -0
  55. package/es/v1/ListItem/ListContainer.js +102 -0
  56. package/es/v1/ListItem/ListItem.js +124 -0
  57. package/es/v1/ListItem/ListItemWithAvatar.js +145 -0
  58. package/es/v1/ListItem/ListItemWithCheckBox.js +104 -0
  59. package/es/v1/ListItem/ListItemWithIcon.js +127 -0
  60. package/es/v1/ListItem/ListItemWithRadio.js +105 -0
  61. package/es/v1/ListItem/index.js +6 -0
  62. package/es/v1/Modal/Modal.js +154 -0
  63. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +1079 -0
  64. package/es/v1/MultiSelect/AdvancedMultiSelect.js +568 -0
  65. package/es/v1/MultiSelect/EmptyState.js +64 -0
  66. package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +50 -0
  67. package/es/v1/MultiSelect/MultiSelect.js +1120 -0
  68. package/es/v1/MultiSelect/MultiSelectHeader.js +32 -0
  69. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +216 -0
  70. package/es/v1/MultiSelect/SelectedOptions.js +82 -0
  71. package/es/v1/MultiSelect/Suggestions.js +142 -0
  72. package/es/v1/MultiSelect/index.js +4 -0
  73. package/es/v1/PopOver/PopOver.js +211 -0
  74. package/es/v1/Popup/Popup.js +645 -0
  75. package/es/v1/Radio/Radio.js +115 -0
  76. package/es/v1/Responsive/CustomResponsive.js +195 -0
  77. package/es/v1/Responsive/RefWrapper.js +39 -0
  78. package/es/v1/Responsive/ResizeComponent.js +197 -0
  79. package/es/v1/Responsive/ResizeObserver.js +140 -0
  80. package/es/v1/Responsive/Responsive.js +194 -0
  81. package/es/v1/Responsive/index.js +9 -0
  82. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +58 -0
  83. package/es/v1/Ribbon/Ribbon.js +33 -0
  84. package/es/v1/RippleEffect/RippleEffect.js +24 -0
  85. package/es/v1/Select/GroupSelect.js +803 -0
  86. package/es/v1/Select/Select.js +969 -0
  87. package/es/v1/Select/SelectWithAvatar.js +344 -0
  88. package/es/v1/Select/SelectWithIcon.js +535 -0
  89. package/es/v1/Select/index.js +4 -0
  90. package/es/v1/Stencils/Stencils.js +26 -0
  91. package/es/v1/Switch/Switch.js +94 -0
  92. package/es/v1/Tab/Tab.js +108 -0
  93. package/es/v1/Tab/TabContent.js +30 -0
  94. package/es/v1/Tab/TabContentWrapper.js +29 -0
  95. package/es/v1/Tab/TabWrapper.js +57 -0
  96. package/es/v1/Tab/Tabs.js +612 -0
  97. package/es/v1/Tab/index.js +5 -0
  98. package/es/v1/Tag/Tag.js +134 -0
  99. package/es/v1/TextBox/TextBox.js +154 -0
  100. package/es/v1/TextBoxIcon/TextBoxIcon.js +158 -0
  101. package/es/v1/Textarea/Textarea.js +102 -0
  102. package/es/v1/Tooltip/Tooltip.js +518 -0
  103. package/es/v1/Typography/Typography.js +38 -0
  104. package/es/v1/Typography/css/Typography.module.css +376 -0
  105. package/es/v1/Typography/css/cssJSLogic.js +46 -0
  106. package/es/v1/Typography/css/letterSpacingMap.js +12 -0
  107. package/es/v1/Typography/props/defaultProps.js +8 -0
  108. package/es/v1/Typography/props/propTypes.js +24 -0
  109. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +69 -0
  110. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +100 -0
  111. package/es/v1/semantic/Button/Button.js +53 -0
  112. package/es/v1/semantic/index.js +1 -0
  113. package/lib/index.js +10 -1
  114. package/lib/v1/Accordion/Accordion.js +96 -0
  115. package/lib/v1/Accordion/AccordionItem.js +68 -0
  116. package/lib/v1/Accordion/index.js +23 -0
  117. package/lib/v1/Animation/Animation.js +143 -0
  118. package/lib/v1/AppContainer/AppContainer.js +204 -0
  119. package/lib/v1/Avatar/Avatar.js +246 -0
  120. package/lib/v1/AvatarTeam/AvatarTeam.js +81 -0
  121. package/lib/v1/Button/Button.js +82 -0
  122. package/lib/v1/Buttongroup/Buttongroup.js +44 -0
  123. package/lib/v1/Card/Card.js +365 -0
  124. package/lib/v1/CheckBox/CheckBox.js +166 -0
  125. package/lib/v1/DateTime/CalendarView.js +285 -0
  126. package/lib/v1/DateTime/DateTime.js +872 -0
  127. package/lib/v1/DateTime/DateTimePopupFooter.js +96 -0
  128. package/lib/v1/DateTime/DateTimePopupHeader.js +166 -0
  129. package/lib/v1/DateTime/DateWidget.js +1125 -0
  130. package/lib/v1/DateTime/DaysRow.js +80 -0
  131. package/lib/v1/DateTime/Time.js +254 -0
  132. package/lib/v1/DateTime/YearView.js +325 -0
  133. package/lib/v1/DateTime/index.js +15 -0
  134. package/lib/v1/DropBox/DropBox.js +119 -0
  135. package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +145 -0
  136. package/lib/v1/DropDown/DropDown.js +170 -0
  137. package/lib/v1/DropDown/DropDownHeading.js +93 -0
  138. package/lib/v1/DropDown/DropDownItem.js +127 -0
  139. package/lib/v1/DropDown/DropDownSearch.js +113 -0
  140. package/lib/v1/DropDown/DropDownSeparator.js +64 -0
  141. package/lib/v1/Heading/Heading.js +49 -0
  142. package/lib/v1/Label/Label.js +51 -0
  143. package/lib/v1/Layout/Box.js +128 -0
  144. package/lib/v1/Layout/Container.js +145 -0
  145. package/lib/v1/Layout/index.js +23 -0
  146. package/lib/v1/ListItem/ListContainer.js +120 -0
  147. package/lib/v1/ListItem/ListItem.js +138 -0
  148. package/lib/v1/ListItem/ListItemWithAvatar.js +162 -0
  149. package/lib/v1/ListItem/ListItemWithCheckBox.js +125 -0
  150. package/lib/v1/ListItem/ListItemWithIcon.js +143 -0
  151. package/lib/v1/ListItem/ListItemWithRadio.js +126 -0
  152. package/lib/v1/ListItem/index.js +55 -0
  153. package/lib/v1/Modal/Modal.js +212 -0
  154. package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +1167 -0
  155. package/lib/v1/MultiSelect/AdvancedMultiSelect.js +634 -0
  156. package/lib/v1/MultiSelect/EmptyState.js +112 -0
  157. package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +62 -0
  158. package/lib/v1/MultiSelect/MultiSelect.js +1201 -0
  159. package/lib/v1/MultiSelect/MultiSelectHeader.js +78 -0
  160. package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +270 -0
  161. package/lib/v1/MultiSelect/SelectedOptions.js +126 -0
  162. package/lib/v1/MultiSelect/Suggestions.js +195 -0
  163. package/lib/v1/MultiSelect/index.js +39 -0
  164. package/lib/v1/PopOver/PopOver.js +293 -0
  165. package/lib/v1/Popup/Popup.js +715 -0
  166. package/lib/v1/Radio/Radio.js +126 -0
  167. package/lib/v1/Responsive/CustomResponsive.js +242 -0
  168. package/lib/v1/Responsive/RefWrapper.js +57 -0
  169. package/lib/v1/Responsive/ResizeComponent.js +268 -0
  170. package/lib/v1/Responsive/ResizeObserver.js +168 -0
  171. package/lib/v1/Responsive/Responsive.js +274 -0
  172. package/lib/v1/Responsive/index.js +55 -0
  173. package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +79 -0
  174. package/lib/v1/Ribbon/Ribbon.js +44 -0
  175. package/lib/v1/RippleEffect/RippleEffect.js +39 -0
  176. package/lib/v1/Select/GroupSelect.js +877 -0
  177. package/lib/v1/Select/Select.js +1013 -0
  178. package/lib/v1/Select/SelectWithAvatar.js +394 -0
  179. package/lib/v1/Select/SelectWithIcon.js +597 -0
  180. package/lib/v1/Select/index.js +39 -0
  181. package/lib/v1/Stencils/Stencils.js +43 -0
  182. package/lib/v1/Switch/Switch.js +108 -0
  183. package/lib/v1/Tab/Tab.js +132 -0
  184. package/lib/v1/Tab/TabContent.js +42 -0
  185. package/lib/v1/Tab/TabContentWrapper.js +42 -0
  186. package/lib/v1/Tab/TabWrapper.js +89 -0
  187. package/lib/v1/Tab/Tabs.js +680 -0
  188. package/lib/v1/Tab/index.js +47 -0
  189. package/lib/v1/Tag/Tag.js +154 -0
  190. package/lib/v1/TextBox/TextBox.js +168 -0
  191. package/lib/v1/TextBoxIcon/TextBoxIcon.js +196 -0
  192. package/lib/v1/Textarea/Textarea.js +118 -0
  193. package/lib/v1/Tooltip/Tooltip.js +586 -0
  194. package/lib/v1/Typography/Typography.js +56 -0
  195. package/lib/v1/Typography/css/Typography.module.css +376 -0
  196. package/lib/v1/Typography/css/cssJSLogic.js +41 -0
  197. package/lib/v1/Typography/css/letterSpacingMap.js +20 -0
  198. package/lib/v1/Typography/props/defaultProps.js +15 -0
  199. package/lib/v1/Typography/props/propTypes.js +35 -0
  200. package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +90 -0
  201. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +126 -0
  202. package/lib/v1/semantic/Button/Button.js +63 -0
  203. package/lib/v1/semantic/index.js +15 -0
  204. package/package.json +4 -4
  205. package/result.json +1 -1
@@ -205,7 +205,7 @@ Buttongroup.propTypes = propTypes;
205
205
  <div class='footer quiet pad2 space-top1 center small'>
206
206
  Code coverage generated by
207
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
208
- at 2023-08-17T12:51:49.215Z
208
+ at 2023-08-28T16:48:16.868Z
209
209
  </div>
210
210
  <script src="../prettify.js"></script>
211
211
  <script>
@@ -283,7 +283,7 @@
283
283
  <div class='footer quiet pad2 space-top1 center small'>
284
284
  Code coverage generated by
285
285
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
286
- at 2023-08-17T12:51:49.215Z
286
+ at 2023-08-28T16:48:16.868Z
287
287
  </div>
288
288
  <script src="../prettify.js"></script>
289
289
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2023-08-17T12:51:49.215Z
119
+ at 2023-08-28T16:48:16.868Z
120
120
  </div>
121
121
  <script src="../prettify.js"></script>
122
122
  <script>
@@ -88,7 +88,7 @@
88
88
  <div class='footer quiet pad2 space-top1 center small'>
89
89
  Code coverage generated by
90
90
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
91
- at 2023-08-17T12:51:49.215Z
91
+ at 2023-08-28T16:48:16.868Z
92
92
  </div>
93
93
  <script src="../../prettify.js"></script>
94
94
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2023-08-17T12:51:49.215Z
119
+ at 2023-08-28T16:48:16.868Z
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -100,7 +100,7 @@ export const propTypes = {
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at 2023-08-17T12:51:49.215Z
103
+ at 2023-08-28T16:48:16.868Z
104
104
  </div>
105
105
  <script src="../../prettify.js"></script>
106
106
  <script>
@@ -176,7 +176,7 @@
176
176
  <div class='footer quiet pad2 space-top1 center small'>
177
177
  Code coverage generated by
178
178
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
179
- at 2023-08-17T12:51:49.215Z
179
+ at 2023-08-28T16:48:16.868Z
180
180
  </div>
181
181
  <script src="prettify.js"></script>
182
182
  <script>
@@ -73,7 +73,7 @@
73
73
  <div class='footer quiet pad2 space-top1 center small'>
74
74
  Code coverage generated by
75
75
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
76
- at 2023-08-17T12:51:49.215Z
76
+ at 2023-08-28T16:48:16.868Z
77
77
  </div>
78
78
  <script src="../prettify.js"></script>
79
79
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2023-08-17T12:51:49.215Z
104
+ at 2023-08-28T16:48:16.868Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
package/es/index.js CHANGED
@@ -38,4 +38,5 @@ export { default as Tooltip } from './Tooltip/Tooltip';
38
38
  import * as _utils from './utils';
39
39
  export { _utils as utils };
40
40
  export * from './VelocityAnimation';
41
- export * from './semantic';
41
+ export * from './semantic';
42
+ export { default as Typography } from './v1/Typography/Typography';
@@ -0,0 +1,65 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { Accordion_defaultProps } from '../../Accordion/props/defaultProps';
3
+ import { Accordion_propTypes } from '../../Accordion/props/propTypes';
4
+ export default function Accordion(props) {
5
+ const {
6
+ className,
7
+ height,
8
+ unMount,
9
+ disableInternalState,
10
+ selectedItem: propSelectedItem,
11
+ a11y,
12
+ dataId,
13
+ dataSelectorId,
14
+ onSelect,
15
+ children
16
+ } = props;
17
+ const {
18
+ role,
19
+ ariaExpanded,
20
+ ariaHaspopup
21
+ } = a11y;
22
+ const [selectedItem, setSelectedItem] = useState(propSelectedItem);
23
+
24
+ function selectMenu(selectedItem) {
25
+ if (onSelect) {
26
+ onSelect(selectedItem);
27
+ }
28
+
29
+ !disableInternalState && setSelectedItem(selectedItem);
30
+ }
31
+
32
+ useEffect(() => {
33
+ if (!disableInternalState) {
34
+ setSelectedItem(propSelectedItem);
35
+ }
36
+ }, [propSelectedItem]);
37
+ let renderChildren = React.Children.map(children, child => {
38
+ if (child) {
39
+ return /*#__PURE__*/React.cloneElement(child, {
40
+ selectedItem: disableInternalState ? propSelectedItem : selectedItem,
41
+ selectMenu: selectMenu,
42
+ unMount: unMount
43
+ });
44
+ }
45
+ });
46
+ return /*#__PURE__*/React.createElement("div", {
47
+ className: className ? className : '',
48
+ style: {
49
+ height
50
+ },
51
+ role: role,
52
+ "aria-expanded": ariaExpanded,
53
+ "aria-haspopup": ariaHaspopup,
54
+ "data-id": dataId,
55
+ "data-test-id": dataId,
56
+ "data-selector-id": dataSelectorId
57
+ }, renderChildren);
58
+ }
59
+ Accordion.propTypes = Accordion_propTypes;
60
+ Accordion.defaultProps = Accordion_defaultProps; // if (__DOCS__) {
61
+ // Accordion.docs = {
62
+ // componentGroup: 'Animation',
63
+ // folderName: 'Style Guide'
64
+ // };
65
+ // }
@@ -0,0 +1,57 @@
1
+ import React from 'react';
2
+ import { AccordionItem_defaultProps } from '../../Accordion/props/defaultProps';
3
+ import { AccordionItem_propTypes } from '../../Accordion/props/propTypes';
4
+ import VelocityAnimation from '../VelocityAnimation/VelocityAnimation/VelocityAnimation';
5
+ import VelocityAnimationGroup from '../VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup';
6
+ export default function AccordionItem(props) {
7
+ let {
8
+ id,
9
+ selectMenu,
10
+ className,
11
+ children,
12
+ dataId,
13
+ dataSelectorId,
14
+ unMount,
15
+ unMountItem,
16
+ a11y,
17
+ innerClass,
18
+ equalityCheck,
19
+ selectedItem
20
+ } = props;
21
+ unMountItem = unMountItem !== undefined ? unMountItem : unMount;
22
+ let {
23
+ role
24
+ } = a11y;
25
+
26
+ function equalityChecking() {
27
+ return equalityCheck ? equalityCheck(id, selectedItem) : selectedItem == id;
28
+ }
29
+
30
+ function handleSelectMenu() {
31
+ selectMenu(id);
32
+ }
33
+
34
+ return /*#__PURE__*/React.createElement("div", {
35
+ className: className ? className : '',
36
+ "data-id": dataId,
37
+ "data-test-id": dataId,
38
+ role: role,
39
+ "data-selector-id": dataSelectorId
40
+ }, /*#__PURE__*/React.createElement("div", {
41
+ className: innerClass ? innerClass : '',
42
+ onClick: handleSelectMenu
43
+ }, children[0]), unMountItem ? /*#__PURE__*/React.createElement(VelocityAnimationGroup, {
44
+ name: "slideDown",
45
+ isActive: equalityChecking()
46
+ }, children[1]) : /*#__PURE__*/React.createElement(VelocityAnimation, {
47
+ name: "slideDown",
48
+ isActive: equalityChecking()
49
+ }, children[1]));
50
+ }
51
+ AccordionItem.propTypes = AccordionItem_propTypes;
52
+ AccordionItem.defaultProps = AccordionItem_defaultProps; // if (__DOCS__) {
53
+ // AccordionItem.docs = {
54
+ // componentGroup: 'Animation',
55
+ // folderName: 'Style Guide'
56
+ // };
57
+ // }
@@ -0,0 +1,2 @@
1
+ export { default as Accordion } from './Accordion';
2
+ export { default as AccordionItem } from './AccordionItem';
@@ -0,0 +1,127 @@
1
+ import React from 'react';
2
+ import { defaultProps } from '../../Animation/props/defaultProps';
3
+ import { propTypes } from '../../Animation/props/propTypes';
4
+ import { CSSTransition } from 'react-transition-group';
5
+ import style from '../../common/transition.module.css';
6
+ export default function Animation(props) {
7
+ let {
8
+ name,
9
+ enterDuration,
10
+ exitDuration,
11
+ children,
12
+ isActive,
13
+ unmountOnExit,
14
+ onEntered = () => {},
15
+ onExit = () => {},
16
+ delayClassName = null
17
+ } = props;
18
+ const animation = {
19
+ zoomIn: {
20
+ enter: style.zoomInEnter,
21
+ enterActive: style.zoomInEnterActive,
22
+ enterDone: style.zoomInEnterActive,
23
+ exit: style.zoomInLeave,
24
+ exitActive: style.zoomInLeaveActive,
25
+ exitDone: style.zoomInLeaveActive,
26
+ appear: style.zoomInEnter,
27
+ appearActive: style.zoomInEnterActive
28
+ },
29
+ scaleIn: {
30
+ enter: style.scaleInEnter,
31
+ enterActive: style.scaleInEnterActive,
32
+ enterDone: style.scaleInEnterActive,
33
+ exit: style.scaleInLeave,
34
+ exitActive: style.scaleInLeaveActive,
35
+ exitDone: style.scaleInLeaveActive,
36
+ appear: style.scaleInEnter,
37
+ appearActive: style.scaleInEnterActive
38
+ },
39
+ fadeIn: {
40
+ enter: style.fadeInEnter,
41
+ enterActive: style.fadeInEnterActive,
42
+ enterDone: style.fadeInEnterActive,
43
+ exit: style.fadeInLeave,
44
+ exitActive: style.fadeInLeaveActive,
45
+ exitDone: style.fadeInLeaveActive,
46
+ appear: style.fadeInEnter,
47
+ appearActive: style.fadeInEnterActive
48
+ },
49
+ slideLeft: {
50
+ enter: style.slideLeftEnter,
51
+ enterActive: style.slideLeftEnterActive,
52
+ enterDone: style.slideLeftEnterActive,
53
+ exit: style.slideLeftLeave,
54
+ exitActive: style.slideLeftLeaveActive,
55
+ exitDone: style.slideLeftLeaveActive,
56
+ appear: style.slideLeftEnter,
57
+ appearActive: style.slideLeftEnterActive
58
+ },
59
+ slideDown: {
60
+ enter: style.slideDownEnter,
61
+ enterActive: style.slideDownEnterActive,
62
+ enterDone: style.slideDownEnterActive,
63
+ exit: style.slideDownLeave,
64
+ exitActive: style.slideDownLeaveActive,
65
+ exitDone: style.slideDownLeaveActive,
66
+ appear: style.slideDownEnter,
67
+ appearActive: style.slideDownEnterActive
68
+ },
69
+ skewIn: {
70
+ enter: style.skewInEnter,
71
+ enterActive: style.skewInEnterActive,
72
+ enterDone: style.skewInEnterActive,
73
+ exit: style.skewInLeave,
74
+ exitActive: style.skewInLeaveActive,
75
+ exitDone: style.skewInLeaveActive,
76
+ appear: style.skewInEnter,
77
+ appearActive: style.skewInEnterActive
78
+ },
79
+ none: {
80
+ enter: style.noneEnter,
81
+ enterActive: style.noneEnterActive,
82
+ enterDone: style.noneEnterActive,
83
+ exit: style.noneLeave,
84
+ exitActive: style.noneLeaveActive,
85
+ exitDone: style.noneLeaveActive,
86
+ appear: style.noneEnter,
87
+ appearActive: style.noneEnterActive
88
+ },
89
+ default: {
90
+ enter: style.defaultEnter,
91
+ enterActive: style.defaultEnterActive,
92
+ enterDone: style.defaultEnterActive,
93
+ exit: style.defaultLeave,
94
+ exitActive: style.defaultLeaveActive,
95
+ exitDone: style.defaultLeaveActive,
96
+ appear: style.defaultEnter,
97
+ appearActive: style.defaultEnterActive
98
+ }
99
+ };
100
+ let newClassNames = delayClassName ? Object.assign({}, animation[name], {
101
+ exit: `${delayClassName} ${animation[name].exit}`
102
+ }) : animation[name];
103
+ return /*#__PURE__*/React.createElement(CSSTransition, {
104
+ classNames: newClassNames && newClassNames,
105
+ in: isActive,
106
+ appear: true,
107
+ enter: true,
108
+ exit: true,
109
+ mountOnEnter: false,
110
+ unmountOnExit: unmountOnExit,
111
+ timeout: {
112
+ enter: enterDuration,
113
+ exit: exitDuration
114
+ },
115
+ onEntered: onEntered,
116
+ onExit: onExit
117
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, children));
118
+ }
119
+ Animation.propTypes = propTypes;
120
+ Animation.defaultProps = defaultProps; // if (__DOCS__) {
121
+ // Animation.docs = {
122
+ // componentGroup: 'Animation',
123
+ // folderName: 'Style Guide',
124
+ // external: true,
125
+ // description: ' '
126
+ // };
127
+ // }
@@ -0,0 +1,134 @@
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 '../../AppContainer/props/defaultProps';
5
+ import { propTypes } from '../../AppContainer/props/propTypes';
6
+ import { Container, Box } from '../Layout';
7
+ import Tooltip from '../Tooltip/Tooltip';
8
+ import '../../common/basic.module.css';
9
+ import '@zohodesk/variables/assets/colorVariables.module.css';
10
+ import '@zohodesk/variables/assets/dotVariables.module.css';
11
+ import '@zohodesk/variables/assets/sizeVariables.module.css';
12
+ import '@zohodesk/variables/assets/fontsizeVariables.module.css';
13
+ import '@zohodesk/variables/lib/fontFamilyVariables.module.css';
14
+ import '@zohodesk/variables/assets/transitionVariables.module.css';
15
+ import '@zohodesk/variables/assets/no_transitionVariables.module.css';
16
+ import '../../common/a11y.module.css';
17
+ import '../../common/boxShadow.module.css';
18
+ import style from '../../AppContainer/AppContainer.module.css';
19
+ import { getLibraryConfig, setLibraryConfig } from '../../Provider/Config';
20
+ export default class AppContainer extends React.Component {
21
+ constructor(props) {
22
+ super(props);
23
+ this.setTooltipRef = this.setTooltipRef.bind(this);
24
+ this.handleOver = this.handleOver.bind(this);
25
+ this.mouseOverDispatch = this.mouseOverDispatch.bind(this);
26
+ this.removeTimeout = this.removeTimeout.bind(this);
27
+ this.getContainerRef = this.getContainerRef.bind(this);
28
+ this.timer = null;
29
+ this.tooltipDebounce = getLibraryConfig('tooltipDebounce');
30
+ setLibraryConfig({
31
+ getTooltipContainer: () => this.containerElement
32
+ });
33
+ }
34
+
35
+ mouseOverDispatch(e) {
36
+ if (this.tooltipRef) {
37
+ this.tooltipRef.handleOver(e, this.containerElement);
38
+ }
39
+ }
40
+
41
+ removeTimeout() {
42
+ if (this.timer) {
43
+ this.timer = clearTimeout(this.timer);
44
+ }
45
+ }
46
+
47
+ handleOver(e) {
48
+ if (this.timer) {
49
+ this.timer = clearTimeout(this.timer);
50
+ }
51
+
52
+ this.timer = setTimeout(() => this.mouseOverDispatch(e), this.tooltipDebounce);
53
+ }
54
+
55
+ getContainerRef(ref) {
56
+ let {
57
+ eleRef
58
+ } = this.props;
59
+ this.containerElement = ref;
60
+ eleRef && eleRef(ref);
61
+ }
62
+
63
+ setTooltipRef(ref) {
64
+ this.tooltipRef = ref;
65
+ }
66
+
67
+ componentDidMount() {
68
+ let {
69
+ needTooltip
70
+ } = this.props;
71
+
72
+ if (this.containerElement && needTooltip) {
73
+ this.containerElement.addEventListener('mouseover', this.handleOver, false);
74
+ this.containerElement.addEventListener('mouseout', this.removeTimeout, false);
75
+ this.tooltipRef.observeElement();
76
+ }
77
+ }
78
+
79
+ componentWillUnmount() {
80
+ let {
81
+ needTooltip
82
+ } = this.props;
83
+
84
+ if (this.containerElement && needTooltip) {
85
+ this.containerElement.removeEventListener('mouseover', this.handleOver, false);
86
+ this.containerElement.addEventListener('mouseout', this.removeTimeout, false);
87
+ this.tooltipRef.unObserveElement();
88
+ }
89
+ }
90
+
91
+ render() {
92
+ let {
93
+ className,
94
+ children,
95
+ tagName,
96
+ dataId,
97
+ dataSelectorId,
98
+ tooltipClass,
99
+ tooltipParentClass,
100
+ needTooltip,
101
+ customProps
102
+ } = this.props;
103
+ let {
104
+ ContainerProps = {},
105
+ TooltipProps = {},
106
+ ExtraProps = {}
107
+ } = customProps;
108
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Container, _extends({
109
+ className: `${style.container} ${className}`,
110
+ dataId: dataId,
111
+ dataSelectorId: dataSelectorId,
112
+ tagName: tagName,
113
+ eleRef: this.getContainerRef
114
+ }, ContainerProps, ExtraProps), /*#__PURE__*/React.createElement(Box, {
115
+ flexible: true
116
+ }, children)), needTooltip ? /*#__PURE__*/React.createElement("div", _extends({}, ExtraProps, {
117
+ className: `${style.container} ${style.tooltip} ${tooltipParentClass}`,
118
+ "data-id": `${dataId}_tooltip`,
119
+ "data-test-id": `${dataId}_tooltip`,
120
+ "data-selector-id": `${dataSelectorId}_tooltip`
121
+ }), /*#__PURE__*/React.createElement(Tooltip, _extends({
122
+ ref: this.setTooltipRef,
123
+ customClass: tooltipClass
124
+ }, TooltipProps))) : null);
125
+ }
126
+
127
+ }
128
+ AppContainer.propTypes = propTypes;
129
+ AppContainer.defaultProps = defaultProps; // if (__DOCS__) {
130
+ // AppContainer.docs = {
131
+ // componentGroup: 'Template',
132
+ // folderName: 'Style Guide'
133
+ // };
134
+ // }
@@ -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
+ // }