@zohodesk/components 1.0.0-temp-157 → 1.0.0-temp-158

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 (423) hide show
  1. package/README.md +4 -0
  2. package/es/Accordion/Accordion.js +7 -3
  3. package/es/Accordion/AccordionItem.js +4 -2
  4. package/es/Animation/Animation.js +3 -3
  5. package/es/AppContainer/AppContainer.js +13 -5
  6. package/es/Avatar/Avatar.js +23 -11
  7. package/es/Avatar/Avatar.module.css +8 -8
  8. package/es/AvatarTeam/AvatarTeam.js +3 -3
  9. package/es/AvatarTeam/AvatarTeam.module.css +33 -32
  10. package/es/Button/Button.js +4 -3
  11. package/es/Button/css/Button.module.css +49 -48
  12. package/es/Buttongroup/Buttongroup.js +3 -3
  13. package/es/Buttongroup/Buttongroup.module.css +10 -10
  14. package/es/Card/Card.js +21 -10
  15. package/es/CheckBox/CheckBox.js +5 -3
  16. package/es/CheckBox/CheckBox.module.css +14 -14
  17. package/es/DateTime/CalendarView.js +32 -20
  18. package/es/DateTime/DateTime.js +76 -11
  19. package/es/DateTime/DateTime.module.css +32 -32
  20. package/es/DateTime/DateTimePopupFooter.js +4 -2
  21. package/es/DateTime/DateTimePopupHeader.js +8 -2
  22. package/es/DateTime/DateWidget.js +98 -35
  23. package/es/DateTime/DaysRow.js +4 -2
  24. package/es/DateTime/Time.js +10 -2
  25. package/es/DateTime/YearView.js +28 -4
  26. package/es/DateTime/YearView.module.css +12 -12
  27. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  28. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  29. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  30. package/es/DateTime/common.js +3 -0
  31. package/es/DateTime/constants.js +1 -0
  32. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  33. package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
  34. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  35. package/es/DateTime/dateFormatUtils/index.js +32 -2
  36. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  37. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  38. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  39. package/es/DateTime/objectUtils.js +14 -20
  40. package/es/DateTime/props/defaultProps.js +2 -1
  41. package/es/DateTime/typeChecker.js +3 -0
  42. package/es/DateTime/validator.js +58 -6
  43. package/es/DropBox/DropBox.js +6 -2
  44. package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  45. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +42 -41
  46. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
  47. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
  48. package/es/DropBox/props/defaultProps.js +1 -2
  49. package/es/DropBox/props/propTypes.js +1 -2
  50. package/es/DropDown/DropDown.js +8 -4
  51. package/es/DropDown/DropDown.module.css +2 -2
  52. package/es/DropDown/DropDownHeading.js +4 -5
  53. package/es/DropDown/DropDownHeading.module.css +5 -5
  54. package/es/DropDown/DropDownItem.js +6 -0
  55. package/es/DropDown/DropDownItem.module.css +7 -7
  56. package/es/DropDown/DropDownSearch.js +4 -0
  57. package/es/DropDown/DropDownSearch.module.css +3 -3
  58. package/es/DropDown/DropDownSeparator.js +1 -0
  59. package/es/DropDown/DropDownSeparator.module.css +2 -2
  60. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  61. package/es/Heading/Heading.js +2 -3
  62. package/es/Heading/Heading.module.css +1 -1
  63. package/es/Label/Label.js +4 -10
  64. package/es/Label/Label.module.css +6 -6
  65. package/es/Label/props/propTypes.js +1 -4
  66. package/es/Layout/Box.js +13 -0
  67. package/es/Layout/Container.js +12 -1
  68. package/es/Layout/index.js +1 -2
  69. package/es/ListItem/ListContainer.js +8 -3
  70. package/es/ListItem/ListItem.js +9 -3
  71. package/es/ListItem/ListItem.module.css +37 -37
  72. package/es/ListItem/ListItemWithAvatar.js +9 -3
  73. package/es/ListItem/ListItemWithCheckBox.js +7 -2
  74. package/es/ListItem/ListItemWithIcon.js +8 -3
  75. package/es/ListItem/ListItemWithRadio.js +7 -3
  76. package/es/Modal/Modal.js +28 -11
  77. package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
  78. package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
  79. package/es/MultiSelect/EmptyState.js +2 -0
  80. package/es/MultiSelect/MultiSelect.js +99 -32
  81. package/es/MultiSelect/MultiSelect.module.css +25 -24
  82. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  83. package/es/MultiSelect/MultiSelectWithAvatar.js +12 -6
  84. package/es/MultiSelect/SelectedOptions.js +6 -3
  85. package/es/MultiSelect/SelectedOptions.module.css +4 -4
  86. package/es/MultiSelect/Suggestions.js +7 -3
  87. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  88. package/es/MultiSelect/props/propTypes.js +2 -0
  89. package/es/PopOver/PopOver.js +18 -2
  90. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  91. package/es/Popup/Popup.js +77 -24
  92. package/es/Popup/__tests__/Popup.spec.js +17 -5
  93. package/es/Popup/viewPort.js +16 -4
  94. package/es/Provider/IdProvider.js +10 -5
  95. package/es/Provider/LibraryContext.js +6 -4
  96. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  97. package/es/Provider/ZindexProvider.js +9 -2
  98. package/es/Radio/Radio.js +4 -2
  99. package/es/Radio/Radio.module.css +9 -9
  100. package/es/Responsive/CustomResponsive.js +30 -18
  101. package/es/Responsive/RefWrapper.js +6 -7
  102. package/es/Responsive/ResizeComponent.js +35 -25
  103. package/es/Responsive/ResizeObserver.js +26 -6
  104. package/es/Responsive/Responsive.js +34 -20
  105. package/es/Responsive/index.js +1 -3
  106. package/es/Responsive/sizeObservers.js +28 -7
  107. package/es/Responsive/utils/index.js +7 -5
  108. package/es/Responsive/utils/shallowCompare.js +7 -2
  109. package/es/Responsive/windowResizeObserver.js +7 -0
  110. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  111. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +1 -1
  112. package/es/Ribbon/Ribbon.js +3 -2
  113. package/es/Ribbon/Ribbon.module.css +44 -42
  114. package/es/RippleEffect/RippleEffect.js +1 -3
  115. package/es/Select/GroupSelect.js +58 -14
  116. package/es/Select/Select.js +79 -33
  117. package/es/Select/Select.module.css +19 -19
  118. package/es/Select/SelectWithAvatar.js +17 -4
  119. package/es/Select/SelectWithIcon.js +46 -5
  120. package/es/Select/__tests__/Select.spec.js +6 -8
  121. package/es/Select/props/propTypes.js +1 -0
  122. package/es/Stencils/Stencils.js +3 -3
  123. package/es/Stencils/Stencils.module.css +13 -13
  124. package/es/Switch/Switch.js +5 -3
  125. package/es/Switch/Switch.module.css +22 -22
  126. package/es/Tab/Tab.js +4 -4
  127. package/es/Tab/Tab.module.css +10 -10
  128. package/es/Tab/TabContent.js +1 -0
  129. package/es/Tab/TabContentWrapper.js +2 -0
  130. package/es/Tab/TabWrapper.js +5 -2
  131. package/es/Tab/Tabs.js +54 -7
  132. package/es/Tab/Tabs.module.css +12 -12
  133. package/es/Tab/__tests__/Tab.spec.js +1 -3
  134. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  135. package/es/Tag/Tag.js +6 -3
  136. package/es/Tag/Tag.module.css +20 -20
  137. package/es/TextBox/TextBox.js +15 -3
  138. package/es/TextBox/TextBox.module.css +15 -14
  139. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  140. package/es/TextBoxIcon/TextBoxIcon.js +9 -2
  141. package/es/TextBoxIcon/TextBoxIcon.module.css +2 -1
  142. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  143. package/es/Textarea/Textarea.js +12 -3
  144. package/es/Textarea/Textarea.module.css +21 -21
  145. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  146. package/es/Tooltip/Tooltip.js +58 -14
  147. package/es/Tooltip/Tooltip.module.css +10 -3
  148. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  149. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
  150. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
  151. package/es/common/avatarsizes.module.css +16 -16
  152. package/es/common/customscroll.module.css +2 -0
  153. package/es/common/reset.module.css +1 -0
  154. package/es/deprecated/AdvancedMultiSelect.module.css +16 -16
  155. package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
  156. package/es/semantic/Button/Button.js +3 -2
  157. package/es/utils/Common.js +54 -9
  158. package/es/utils/ContextOptimizer.js +4 -5
  159. package/es/utils/__tests__/debounce.spec.js +2 -2
  160. package/es/utils/constructFullName.js +2 -0
  161. package/es/utils/css/compileClassNames.js +5 -0
  162. package/es/utils/css/mergeStyle.js +7 -6
  163. package/es/utils/css/utils.js +1 -0
  164. package/es/utils/datetime/GMTZones.js +48 -0
  165. package/es/utils/datetime/common.js +31 -7
  166. package/es/utils/debounce.js +5 -1
  167. package/es/utils/dropDownUtils.js +68 -11
  168. package/es/utils/getInitial.js +4 -0
  169. package/es/utils/shallowEqual.js +6 -0
  170. package/lib/Accordion/Accordion.js +42 -18
  171. package/lib/Accordion/AccordionItem.js +40 -18
  172. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  173. package/lib/Accordion/index.js +3 -0
  174. package/lib/Accordion/props/propTypes.js +3 -0
  175. package/lib/Animation/Animation.js +38 -18
  176. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  177. package/lib/Animation/props/propTypes.js +3 -0
  178. package/lib/AppContainer/AppContainer.js +56 -21
  179. package/lib/AppContainer/props/propTypes.js +3 -0
  180. package/lib/Avatar/Avatar.js +78 -38
  181. package/lib/Avatar/Avatar.module.css +8 -8
  182. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  183. package/lib/Avatar/props/propTypes.js +3 -0
  184. package/lib/AvatarTeam/AvatarTeam.js +52 -30
  185. package/lib/AvatarTeam/AvatarTeam.module.css +33 -32
  186. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  187. package/lib/AvatarTeam/props/propTypes.js +3 -0
  188. package/lib/Button/Button.js +31 -20
  189. package/lib/Button/css/Button.module.css +49 -48
  190. package/lib/Button/css/cssJSLogic.js +18 -17
  191. package/lib/Button/index.js +3 -0
  192. package/lib/Button/props/defaultProps.js +2 -0
  193. package/lib/Button/props/propTypes.js +3 -0
  194. package/lib/Buttongroup/Buttongroup.js +32 -12
  195. package/lib/Buttongroup/Buttongroup.module.css +10 -10
  196. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  197. package/lib/Buttongroup/props/propTypes.js +3 -0
  198. package/lib/Card/Card.js +102 -46
  199. package/lib/Card/__tests__/Card.spec.js +10 -1
  200. package/lib/Card/index.js +4 -0
  201. package/lib/Card/props/propTypes.js +3 -0
  202. package/lib/CheckBox/CheckBox.js +71 -47
  203. package/lib/CheckBox/CheckBox.module.css +14 -14
  204. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  205. package/lib/CheckBox/props/propTypes.js +3 -0
  206. package/lib/DateTime/CalendarView.js +82 -42
  207. package/lib/DateTime/DateTime.js +248 -160
  208. package/lib/DateTime/DateTime.module.css +32 -32
  209. package/lib/DateTime/DateTimePopupFooter.js +32 -9
  210. package/lib/DateTime/DateTimePopupHeader.js +49 -18
  211. package/lib/DateTime/DateWidget.js +353 -251
  212. package/lib/DateTime/DaysRow.js +28 -6
  213. package/lib/DateTime/Time.js +74 -33
  214. package/lib/DateTime/YearView.js +78 -29
  215. package/lib/DateTime/YearView.module.css +12 -12
  216. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  217. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  218. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  219. package/lib/DateTime/common.js +6 -0
  220. package/lib/DateTime/constants.js +1 -0
  221. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  222. package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
  223. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  224. package/lib/DateTime/dateFormatUtils/index.js +74 -16
  225. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  226. package/lib/DateTime/dateFormatUtils/timeChange.js +55 -23
  227. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  228. package/lib/DateTime/index.js +2 -0
  229. package/lib/DateTime/objectUtils.js +24 -20
  230. package/lib/DateTime/props/defaultProps.js +2 -1
  231. package/lib/DateTime/props/propTypes.js +11 -1
  232. package/lib/DateTime/typeChecker.js +4 -0
  233. package/lib/DateTime/validator.js +73 -10
  234. package/lib/DropBox/DropBox.js +34 -10
  235. package/lib/DropBox/DropBoxElement/DropBoxElement.js +58 -37
  236. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +42 -41
  237. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +41 -33
  238. package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
  239. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
  240. package/lib/DropBox/__tests__/DropBox.spec.js +6 -2
  241. package/lib/DropBox/css/cssJSLogic.js +3 -1
  242. package/lib/DropBox/props/defaultProps.js +8 -4
  243. package/lib/DropBox/props/propTypes.js +10 -4
  244. package/lib/DropDown/DropDown.js +52 -8
  245. package/lib/DropDown/DropDown.module.css +2 -2
  246. package/lib/DropDown/DropDownHeading.js +39 -20
  247. package/lib/DropDown/DropDownHeading.module.css +5 -5
  248. package/lib/DropDown/DropDownItem.js +42 -20
  249. package/lib/DropDown/DropDownItem.module.css +7 -7
  250. package/lib/DropDown/DropDownSearch.js +40 -17
  251. package/lib/DropDown/DropDownSearch.module.css +3 -3
  252. package/lib/DropDown/DropDownSeparator.js +24 -4
  253. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  254. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  255. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  256. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  257. package/lib/DropDown/index.js +9 -0
  258. package/lib/DropDown/props/propTypes.js +6 -4
  259. package/lib/Heading/Heading.js +37 -15
  260. package/lib/Heading/Heading.module.css +1 -1
  261. package/lib/Heading/props/propTypes.js +3 -0
  262. package/lib/Label/Label.js +41 -27
  263. package/lib/Label/Label.module.css +6 -6
  264. package/lib/Label/__tests__/Label.spec.js +14 -1
  265. package/lib/Label/props/propTypes.js +4 -4
  266. package/lib/Layout/Box.js +31 -11
  267. package/lib/Layout/Container.js +29 -10
  268. package/lib/Layout/__tests__/Box.spec.js +65 -49
  269. package/lib/Layout/__tests__/Container.spec.js +67 -50
  270. package/lib/Layout/index.js +3 -0
  271. package/lib/Layout/props/propTypes.js +3 -0
  272. package/lib/Layout/utils.js +10 -0
  273. package/lib/ListItem/ListContainer.js +49 -28
  274. package/lib/ListItem/ListItem.js +70 -46
  275. package/lib/ListItem/ListItem.module.css +37 -37
  276. package/lib/ListItem/ListItemWithAvatar.js +76 -49
  277. package/lib/ListItem/ListItemWithCheckBox.js +64 -39
  278. package/lib/ListItem/ListItemWithIcon.js +69 -45
  279. package/lib/ListItem/ListItemWithRadio.js +65 -41
  280. package/lib/ListItem/index.js +7 -0
  281. package/lib/ListItem/props/propTypes.js +6 -4
  282. package/lib/Modal/Modal.js +46 -11
  283. package/lib/Modal/props/propTypes.js +3 -0
  284. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +295 -167
  285. package/lib/MultiSelect/AdvancedMultiSelect.js +203 -125
  286. package/lib/MultiSelect/EmptyState.js +46 -25
  287. package/lib/MultiSelect/MultiSelect.js +324 -206
  288. package/lib/MultiSelect/MultiSelect.module.css +25 -24
  289. package/lib/MultiSelect/MultiSelectHeader.js +31 -9
  290. package/lib/MultiSelect/MultiSelectWithAvatar.js +106 -64
  291. package/lib/MultiSelect/SelectedOptions.js +44 -18
  292. package/lib/MultiSelect/SelectedOptions.module.css +4 -4
  293. package/lib/MultiSelect/Suggestions.js +65 -33
  294. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  295. package/lib/MultiSelect/index.js +5 -0
  296. package/lib/MultiSelect/props/defaultProps.js +2 -0
  297. package/lib/MultiSelect/props/propTypes.js +5 -0
  298. package/lib/PopOver/PopOver.js +95 -49
  299. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  300. package/lib/PopOver/index.js +4 -0
  301. package/lib/PopOver/props/propTypes.js +3 -0
  302. package/lib/Popup/Popup.js +159 -82
  303. package/lib/Popup/__tests__/Popup.spec.js +44 -9
  304. package/lib/Popup/viewPort.js +28 -14
  305. package/lib/Provider/AvatarSize.js +4 -0
  306. package/lib/Provider/Config.js +2 -0
  307. package/lib/Provider/CssProvider.js +4 -0
  308. package/lib/Provider/IdProvider.js +17 -6
  309. package/lib/Provider/LibraryContext.js +35 -15
  310. package/lib/Provider/LibraryContextInit.js +4 -0
  311. package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
  312. package/lib/Provider/ZindexProvider.js +15 -3
  313. package/lib/Provider/index.js +5 -0
  314. package/lib/Radio/Radio.js +62 -39
  315. package/lib/Radio/Radio.module.css +9 -9
  316. package/lib/Radio/__tests__/Radiospec.js +9 -5
  317. package/lib/Radio/props/propTypes.js +3 -0
  318. package/lib/Responsive/CustomResponsive.js +73 -28
  319. package/lib/Responsive/RefWrapper.js +17 -11
  320. package/lib/Responsive/ResizeComponent.js +63 -39
  321. package/lib/Responsive/ResizeObserver.js +24 -10
  322. package/lib/Responsive/Responsive.js +81 -31
  323. package/lib/Responsive/index.js +4 -0
  324. package/lib/Responsive/props/propTypes.js +3 -0
  325. package/lib/Responsive/sizeObservers.js +53 -17
  326. package/lib/Responsive/utils/index.js +11 -3
  327. package/lib/Responsive/utils/shallowCompare.js +11 -2
  328. package/lib/Responsive/windowResizeObserver.js +8 -0
  329. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
  330. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +1 -1
  331. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  332. package/lib/Ribbon/Ribbon.js +34 -14
  333. package/lib/Ribbon/Ribbon.module.css +44 -42
  334. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  335. package/lib/Ribbon/props/propTypes.js +3 -0
  336. package/lib/RippleEffect/RippleEffect.js +18 -10
  337. package/lib/RippleEffect/props/propTypes.js +3 -0
  338. package/lib/Select/GroupSelect.js +230 -131
  339. package/lib/Select/Select.js +291 -209
  340. package/lib/Select/Select.module.css +19 -19
  341. package/lib/Select/SelectWithAvatar.js +103 -57
  342. package/lib/Select/SelectWithIcon.js +133 -77
  343. package/lib/Select/__tests__/Select.spec.js +134 -92
  344. package/lib/Select/index.js +5 -0
  345. package/lib/Select/props/defaultProps.js +5 -4
  346. package/lib/Select/props/propTypes.js +4 -0
  347. package/lib/Stencils/Stencils.js +30 -11
  348. package/lib/Stencils/Stencils.module.css +13 -13
  349. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  350. package/lib/Stencils/props/propTypes.js +3 -0
  351. package/lib/Switch/Switch.js +57 -34
  352. package/lib/Switch/Switch.module.css +22 -22
  353. package/lib/Switch/props/propTypes.js +3 -0
  354. package/lib/Tab/Tab.js +41 -28
  355. package/lib/Tab/Tab.module.css +10 -10
  356. package/lib/Tab/TabContent.js +12 -5
  357. package/lib/Tab/TabContentWrapper.js +13 -6
  358. package/lib/Tab/TabWrapper.js +37 -19
  359. package/lib/Tab/Tabs.js +172 -98
  360. package/lib/Tab/Tabs.module.css +12 -12
  361. package/lib/Tab/__tests__/Tab.spec.js +67 -58
  362. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  363. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  364. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  365. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  366. package/lib/Tab/index.js +6 -0
  367. package/lib/Tab/props/propTypes.js +3 -0
  368. package/lib/Tag/Tag.js +72 -43
  369. package/lib/Tag/Tag.module.css +20 -20
  370. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  371. package/lib/Tag/props/propTypes.js +3 -0
  372. package/lib/TextBox/TextBox.js +86 -60
  373. package/lib/TextBox/TextBox.module.css +15 -14
  374. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  375. package/lib/TextBox/props/propTypes.js +6 -4
  376. package/lib/TextBoxIcon/TextBoxIcon.js +79 -52
  377. package/lib/TextBoxIcon/TextBoxIcon.module.css +2 -1
  378. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -4
  379. package/lib/TextBoxIcon/props/propTypes.js +3 -0
  380. package/lib/Textarea/Textarea.js +55 -30
  381. package/lib/Textarea/Textarea.module.css +21 -21
  382. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  383. package/lib/Textarea/props/propTypes.js +3 -0
  384. package/lib/Tooltip/Tooltip.js +94 -31
  385. package/lib/Tooltip/Tooltip.module.css +10 -3
  386. package/lib/Tooltip/__tests__/Tooltip.spec.js +24 -3
  387. package/lib/Tooltip/props/propTypes.js +3 -0
  388. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
  389. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  390. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
  391. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  392. package/lib/VelocityAnimation/index.js +3 -0
  393. package/lib/common/avatarsizes.module.css +16 -16
  394. package/lib/common/customscroll.module.css +2 -0
  395. package/lib/common/reset.module.css +1 -0
  396. package/lib/css.js +40 -0
  397. package/lib/deprecated/AdvancedMultiSelect.module.css +16 -16
  398. package/lib/deprecated/PortalLayer/PortalLayer.js +47 -24
  399. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  400. package/lib/index.js +57 -0
  401. package/lib/semantic/Button/Button.js +42 -22
  402. package/lib/semantic/Button/props/propTypes.js +3 -0
  403. package/lib/semantic/index.js +2 -0
  404. package/lib/utils/Common.js +108 -18
  405. package/lib/utils/ContextOptimizer.js +16 -10
  406. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  407. package/lib/utils/__tests__/debounce.spec.js +3 -2
  408. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  409. package/lib/utils/constructFullName.js +13 -4
  410. package/lib/utils/css/compileClassNames.js +6 -0
  411. package/lib/utils/css/mergeStyle.js +10 -7
  412. package/lib/utils/css/utils.js +8 -0
  413. package/lib/utils/datetime/GMTZones.js +55 -0
  414. package/lib/utils/datetime/common.js +52 -7
  415. package/lib/utils/debounce.js +6 -1
  416. package/lib/utils/dropDownUtils.js +176 -60
  417. package/lib/utils/dummyFunction.js +2 -0
  418. package/lib/utils/getHTMLFontSize.js +1 -0
  419. package/lib/utils/getInitial.js +6 -0
  420. package/lib/utils/index.js +4 -0
  421. package/lib/utils/scrollTo.js +2 -0
  422. package/lib/utils/shallowEqual.js +8 -0
  423. package/package.json +20 -13
@@ -5,15 +5,16 @@
5
5
  --textbox_border_width: 0;
6
6
  --textbox_border_style: solid;
7
7
  --textbox_border_color: var(--zdt_textbox_default_border);
8
- --textbox_font_size: var(--zd_font_size14);
8
+ --textbox_font_size: 14px;
9
9
  --textbox_width: 100%;
10
- --textbox_height: var(--zd_size35);
10
+ --textbox_height: 35px;
11
11
  --textbox_border_radius: none;
12
12
  --textbox_font_family: var(--zd_regular);
13
+ /* Variable:Ignore */
13
14
  --textbox_letter_spacing: 0.1px;
14
15
  --textbox_padding: 0;
15
16
  --textbox_cursor: auto;
16
- --textbox_line_height: var(--zd_size35);
17
+ --textbox_line_height: 35px;
17
18
 
18
19
  /* textbox placeholder default variable */
19
20
  --textbox_placeholder_text_color: var(--zdt_textbox_placeholder_text);
@@ -110,25 +111,25 @@
110
111
  /* Size */
111
112
  .xmedium,
112
113
  .medium {
113
- --textbox_font_size: var(--zd_font_size14);
114
+ --textbox_font_size: 14px;
114
115
  }
115
116
  .xmedium {
116
- --textbox_height: var(--zd_size28);
117
- --textbox_line_height: var(--zd_size28);
117
+ --textbox_height: 28px;
118
+ --textbox_line_height: 28px;
118
119
  }
119
120
  .medium {
120
- --textbox_height: var(--zd_size35);
121
- --textbox_line_height: var(--zd_size35);
121
+ --textbox_height: 35px;
122
+ --textbox_line_height: 35px;
122
123
  }
123
124
  .small {
124
- --textbox_font_size: var(--zd_font_size12);
125
- --textbox_height: var(--zd_size28);
126
- --textbox_line_height: var(--zd_size28);
125
+ --textbox_font_size: 12px;
126
+ --textbox_height: 28px;
127
+ --textbox_line_height: 28px;
127
128
  }
128
129
  .xsmall {
129
- --textbox_font_size: var(--zd_font_size13);
130
- --textbox_height: var(--zd_size25);
131
- --textbox_line_height: var(--zd_size25);
130
+ --textbox_font_size: 13px;
131
+ --textbox_height: 25px;
132
+ --textbox_line_height: 25px;
132
133
  }
133
134
  .default,
134
135
  .primary,
@@ -111,9 +111,7 @@ describe('TextBox component', () => {
111
111
  text: "Text Box Working"
112
112
  }));
113
113
  expect(TestUtils.findRenderedComponentsWithTestid(renderedDOM, 'textBox').getAttribute('placeholder')).toMatch(/Text Box/);
114
- });
115
-
116
- // it('Check disabled works', () => {
114
+ }); // it('Check disabled works', () => {
117
115
  // let renderedDOM = TestUtils.renderIntoDocument(
118
116
  // <TextBox maxLength='100' placeHolder='Text Box' size='medium' variant='primary' value='Text Box Working' disabled />
119
117
  // );
@@ -129,7 +127,6 @@ describe('TextBox component', () => {
129
127
  // pass
130
128
  // ).toBe(true);
131
129
  // });
132
-
133
130
  // it('Check readOnly works', () => {
134
131
  // let renderedDOM = TestUtils.renderIntoDocument(
135
132
  // <TextBox maxLength='100' placeHolder='Text Box' size='medium' variant='primary' value='Text Box Working' readOnly />
@@ -1,4 +1,5 @@
1
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
+
2
3
  import React from 'react';
3
4
  import { defaultProps } from './props/defaultProps';
4
5
  import { propTypes } from './props/propTypes';
@@ -20,6 +21,7 @@ export default class TextBoxIcon extends React.Component {
20
21
  this.handleRef = this.handleRef.bind(this);
21
22
  this.handleClear = this.handleClear.bind(this);
22
23
  }
24
+
23
25
  handleRef(ele) {
24
26
  let {
25
27
  inputRef
@@ -27,6 +29,7 @@ export default class TextBoxIcon extends React.Component {
27
29
  this.inputEle = ele;
28
30
  inputRef && inputRef(ele);
29
31
  }
32
+
30
33
  handleClear() {
31
34
  let {
32
35
  onClear
@@ -36,12 +39,14 @@ export default class TextBoxIcon extends React.Component {
36
39
  preventScroll: true
37
40
  });
38
41
  }
42
+
39
43
  handleFocus(e) {
40
44
  const {
41
45
  onFocus,
42
46
  needReadOnlyStyle,
43
47
  isReadOnly
44
48
  } = this.props;
49
+
45
50
  if (!needReadOnlyStyle || !isReadOnly && needReadOnlyStyle) {
46
51
  this.setState({
47
52
  isActive: true
@@ -49,6 +54,7 @@ export default class TextBoxIcon extends React.Component {
49
54
  onFocus && onFocus(e);
50
55
  }
51
56
  }
57
+
52
58
  handleBlur(e) {
53
59
  const {
54
60
  onBlur
@@ -58,6 +64,7 @@ export default class TextBoxIcon extends React.Component {
58
64
  });
59
65
  onBlur && onBlur(e);
60
66
  }
67
+
61
68
  render() {
62
69
  const {
63
70
  type,
@@ -169,10 +176,10 @@ export default class TextBoxIcon extends React.Component {
169
176
  className: `${style.line} ${style[`borderColor_${borderColor}`]} ${customTBoxLine}`
170
177
  }));
171
178
  }
179
+
172
180
  }
173
181
  TextBoxIcon.defaultProps = defaultProps;
174
- TextBoxIcon.propTypes = propTypes;
175
- // if (__DOCS__) {
182
+ TextBoxIcon.propTypes = propTypes; // if (__DOCS__) {
176
183
  // TextBoxIcon.docs = {
177
184
  // componentGroup: 'Form Elements',
178
185
  // folderName: 'Style Guide',
@@ -4,7 +4,7 @@
4
4
  --textboxicon_line_color: var(--zdt_textboxicon_default_line_bg);
5
5
 
6
6
  /* textboxicon icon default variables */
7
- --textboxicon_icon_margin: 0 var(--zd_size5);
7
+ --textboxicon_icon_margin: 0 5px;
8
8
  --textboxicon_icon_cursor: pointer;
9
9
  --textboxicon_icon_color: var(--zdt_textboxicon_default_icon);
10
10
  }
@@ -36,6 +36,7 @@
36
36
  .line {
37
37
  position: absolute;
38
38
  bottom: 0;
39
+ /* Variable:Ignore */
39
40
  min-height: 1px;
40
41
  transition: var(--zd_transition2);
41
42
  height: var(--textboxicon_line_height);
@@ -1,8 +1,6 @@
1
1
  import React from 'react';
2
2
  import TextBoxIcon from '../TextBoxIcon';
3
- import renderer from 'react-test-renderer';
4
-
5
- // children: PropTypes.node,
3
+ import renderer from 'react-test-renderer'; // children: PropTypes.node,
6
4
  // disabled: PropTypes.bool,
7
5
  // iconRotated: PropTypes.bool,
8
6
  // id: PropTypes.string,
@@ -136,9 +134,7 @@ describe('TextBoxIcon component', () => {
136
134
  text: "Text Box Working"
137
135
  }));
138
136
  expect(TestUtils.findRenderedComponentsWithTestid(renderedDOM, 'textBoxIcon').getAttribute('placeholder')).toMatch(/Text Box/);
139
- });
140
-
141
- // it('Check disabled works', () => {
137
+ }); // it('Check disabled works', () => {
142
138
  // let renderedDOM = TestUtils.renderIntoDocument(
143
139
  // <TextBoxIcon maxLength='100' placeHolder='Text Box' size='medium' variant='primary' value='Text Box Working' disabled />
144
140
  // );
@@ -154,7 +150,6 @@ describe('TextBoxIcon component', () => {
154
150
  // pass
155
151
  // ).toBe(true);
156
152
  // });
157
-
158
153
  // it('Check readOnly works', () => {
159
154
  // let renderedDOM = TestUtils.renderIntoDocument(
160
155
  // <TextBoxIcon maxLength='100' placeHolder='Text Box' size='medium' variant='primary' value='Text Box Working' readOnly />
@@ -1,8 +1,10 @@
1
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
+
2
3
  import React from 'react';
3
4
  import { defaultProps } from './props/defaultProps';
4
5
  import { propTypes } from './props/propTypes';
5
6
  /* eslint css-modules/no-unused-class: [2, { markAsUsed: ['resizeX', 'resizeY', 'noresize', 'resizeboth', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'default', 'primary'] }] */
7
+
6
8
  import style from './Textarea.module.css';
7
9
  export default class Textarea extends React.Component {
8
10
  constructor(props) {
@@ -11,6 +13,7 @@ export default class Textarea extends React.Component {
11
13
  this.onKeyDown = this.onKeyDown.bind(this);
12
14
  this.onBlur = this.onBlur.bind(this);
13
15
  }
16
+
14
17
  onChange(e) {
15
18
  e && e.preventDefault();
16
19
  let {
@@ -18,6 +21,7 @@ export default class Textarea extends React.Component {
18
21
  } = this.props;
19
22
  onChange && onChange(e.target.value, e);
20
23
  }
24
+
21
25
  onBlur(e) {
22
26
  e && e.preventDefault();
23
27
  let {
@@ -25,12 +29,14 @@ export default class Textarea extends React.Component {
25
29
  } = this.props;
26
30
  onBlur && onBlur(e.target.value, e);
27
31
  }
32
+
28
33
  onKeyDown(e) {
29
34
  let {
30
35
  onKeyDown
31
36
  } = this.props;
32
37
  onKeyDown && onKeyDown(e);
33
38
  }
39
+
34
40
  render() {
35
41
  let {
36
42
  size,
@@ -67,15 +73,19 @@ export default class Textarea extends React.Component {
67
73
  none: 'noresize'
68
74
  };
69
75
  let options = {};
76
+
70
77
  if (isReadOnly) {
71
78
  options.readOnly = 'readOnly';
72
79
  }
80
+
73
81
  if (isDisabled) {
74
82
  options.disabled = 'disabled';
75
83
  }
84
+
76
85
  if (autoFocus) {
77
86
  options.autoFocus = true;
78
87
  }
88
+
79
89
  let classList = needAppearance ? `${style.container} ${style[size]} ${style[variant]} ${needBorder ? style.needBorder : style.noBorder} ${resize ? style[resizes[resize]] : style[resizes.none]} ${animated ? `${style[`${size}animated`]}` : ''} ${isDisabled && !needEffect || isReadOnly && !needEffect ? '' : style.effect}` : `${style.basic}`;
80
90
  return /*#__PURE__*/React.createElement("textarea", _extends({
81
91
  "aria-label": ariaLabel,
@@ -95,11 +105,10 @@ export default class Textarea extends React.Component {
95
105
  "data-selector-id": dataSelectorId
96
106
  }));
97
107
  }
108
+
98
109
  }
99
110
  Textarea.defaultProps = defaultProps;
100
- Textarea.propTypes = propTypes;
101
-
102
- // if (__DOCS__) {
111
+ Textarea.propTypes = propTypes; // if (__DOCS__) {
103
112
  // Textarea.docs = {
104
113
  // componentGroup: 'Form Elements',
105
114
  // folderName: 'Style Guide',
@@ -4,10 +4,10 @@
4
4
  --textarea_border_color: none;
5
5
  --textarea_cursor: auto;
6
6
  --textarea_text_color: var(--zdt_textarea_default_text);
7
- --textarea_font_size: var(--zd_font_size14);
8
- --textarea_line_height: var(--zd_size22);
9
- --textarea_padding: var(--zd_size2) 0;
10
- --textarea_height: var(--zd_size30);
7
+ --textarea_font_size: 14px;
8
+ --textarea_line_height: 22px;
9
+ --textarea_padding: 2px 0;
10
+ --textarea_height: 30px;
11
11
 
12
12
  /* textarea placeholder default variable */
13
13
  --textarea_placeholder_text_color: var(--zdt_textarea_placeholder_text);
@@ -95,39 +95,39 @@
95
95
  vertical-align: middle;
96
96
  }
97
97
  .xsmall {
98
- --textarea_font_size: var(--zd_font_size14);
99
- --textarea_padding: var(--zd_size4) 0 var(--zd_size2);
100
- --textarea_height: var(--zd_size28);
101
- --textarea_line_height: var(--zd_size19);
98
+ --textarea_font_size: 14px;
99
+ --textarea_padding: 4px 0 2px;
100
+ --textarea_height: 28px;
101
+ --textarea_line_height: 19px;
102
102
  }
103
103
  .xmedium {
104
- --textarea_font_size: var(--zd_font_size13);
105
- --textarea_padding: var(--zd_size4) 0 var(--zd_size2);
106
- --textarea_height: var(--zd_size25);
107
- --textarea_line_height: var(--zd_size17);
104
+ --textarea_font_size: 13px;
105
+ --textarea_padding: 4px 0 2px;
106
+ --textarea_height: 25px;
107
+ --textarea_line_height: 17px;
108
108
  }
109
109
  .small {
110
- --textarea_height: var(--zd_size30);
111
- --textarea_padding: var(--zd_size2) 0;
110
+ --textarea_height: 30px;
111
+ --textarea_padding: 2px 0;
112
112
  }
113
113
  .smallanimated:focus,
114
114
  .xsmallanimated:focus,
115
115
  .xmediumanimated:focus {
116
- --textarea_height: var(--zd_size70);
116
+ --textarea_height: 70px;
117
117
  }
118
118
  .medium {
119
- --textarea_height: var(--zd_size88);
120
- --textarea_padding: var(--zd_size2);
119
+ --textarea_height: 88px;
120
+ --textarea_padding: 2px;
121
121
  }
122
122
  .large {
123
- --textarea_height: var(--zd_size45);
124
- --textarea_padding: var(--zd_size2);
123
+ --textarea_height: 45px;
124
+ --textarea_padding: 2px;
125
125
  }
126
126
  .largeanimated:focus {
127
- --textarea_height: var(--zd_size220);
127
+ --textarea_height: 220px;
128
128
  }
129
129
  .xlarge {
130
- --textarea_height: var(--zd_size184);
130
+ --textarea_height: 184px;
131
131
  }
132
132
  .default {
133
133
  font-family: var(--zd_regular);
@@ -135,8 +135,7 @@ describe('Textarea component', () => {
135
135
  needBorder: false
136
136
  }));
137
137
  expect(TestUtils.findRenderedComponentsWithTestid(renderedDOM, 'TextareaComp').className).toMatch(/noBorder/);
138
- });
139
- // it('Check disabled works', () => {
138
+ }); // it('Check disabled works', () => {
140
139
  // let renderedDOM = TestUtils.renderIntoDocument(
141
140
  // <Textarea maxLength='100' placeHolder='Text Area' resize='vertical' size='large' variant='primary' text='Text Area Working' disabled needBorder={false} />
142
141
  // );
@@ -152,6 +151,7 @@ describe('Textarea component', () => {
152
151
  // pass
153
152
  // ).toBe(true);
154
153
  // });
154
+
155
155
  it('Check check onchange works', () => {
156
156
  let mockfn = jest.fn();
157
157
  let renderedDOM = TestUtils.renderIntoDocument( /*#__PURE__*/React.createElement(Textarea, {
@@ -27,39 +27,49 @@ export default class Tooltip extends React.Component {
27
27
  this.tooltipContainerClientRect = {};
28
28
  this.tooltipContainerEl = {};
29
29
  }
30
+
30
31
  onResize(sizeOfObservedEl, observedEl) {
31
32
  this.isResized = true;
32
33
  }
34
+
33
35
  observeElement() {
34
36
  this.tooltipContainerEl = this.getToolTipContainerEl();
35
37
  this.observer.observe(this.tooltipContainerEl);
36
38
  }
39
+
37
40
  unObserveElement() {
38
41
  this.observer.disconnect();
39
42
  }
43
+
40
44
  getClientRectOfContEl(el) {
41
45
  if (this.isResized) {
42
46
  return this.setClientRectOfContEl(el);
43
47
  }
48
+
44
49
  return this.tooltipContainerClientRect;
45
50
  }
51
+
46
52
  setClientRectOfContEl(containerEl) {
47
53
  this.isResized = false;
48
54
  this.tooltipContainerClientRect = containerEl.getBoundingClientRect();
49
55
  return this.tooltipContainerClientRect;
50
56
  }
57
+
51
58
  getToolTipContainerEl() {
52
59
  const getTooltipContainer = getLibraryConfig('getTooltipContainer');
53
60
  const tooltipContainer = typeof getTooltipContainer === 'function' ? getTooltipContainer() : null;
54
61
  return tooltipContainer ? tooltipContainer : document.body;
55
62
  }
63
+
56
64
  getToolTipDOM(el) {
57
65
  this.toolTip = el;
58
66
  }
67
+
59
68
  reset() {
60
69
  let {
61
70
  title
62
71
  } = this.state;
72
+
63
73
  if (title !== null) {
64
74
  this.setState({
65
75
  title: null,
@@ -68,8 +78,9 @@ export default class Tooltip extends React.Component {
68
78
  });
69
79
  }
70
80
  }
71
-
72
81
  /* left and right screen edge check for top and bottom tooltip position */
82
+
83
+
73
84
  leftRightScreenEdge(tLeft, toolTipArrowLeft, thisLeft, thisWidth, tooltipoffsetWidth, bodyWidth, rightEdge, bodyLeft) {
74
85
  if (tLeft - bodyLeft <= 1) {
75
86
  // top & bottom position left side screen edge case
@@ -85,6 +96,7 @@ export default class Tooltip extends React.Component {
85
96
  tLeft = parseInt(thisLeft - (tooltipoffsetWidth - thisWidth) / 2);
86
97
  toolTipArrowLeft = parseInt(tooltipoffsetWidth / 2 - 4);
87
98
  }
99
+
88
100
  return {
89
101
  tLeft,
90
102
  toolTipArrowLeft,
@@ -95,8 +107,9 @@ export default class Tooltip extends React.Component {
95
107
  rightEdge
96
108
  };
97
109
  }
98
-
99
110
  /* top and bottom screen edge check for left and right tooltip position */
111
+
112
+
100
113
  topBottomScreenEdge(tTop, toolTipArrowTop, thisTop, thisHeight, tooltipoffsetHeight, bodyHeight, bottomEdge) {
101
114
  if (tTop <= 1) {
102
115
  tTop = 2;
@@ -106,6 +119,7 @@ export default class Tooltip extends React.Component {
106
119
  tTop -= bottomEdge;
107
120
  toolTipArrowTop += bottomEdge;
108
121
  }
122
+
109
123
  return {
110
124
  tTop,
111
125
  toolTipArrowTop,
@@ -116,16 +130,19 @@ export default class Tooltip extends React.Component {
116
130
  bottomEdge
117
131
  };
118
132
  }
133
+
119
134
  handleOver(e, targetElement) {
120
135
  let containerElement = this.tooltipContainerEl;
121
136
  let element = e.target;
122
137
  let titleDiv = element.hasAttribute('data-title') || element.hasAttribute('title') ? element : element.closest('[data-title]') || element.closest('[title]');
138
+
123
139
  if (titleDiv) {
124
140
  let title = titleDiv.getAttribute('data-title') || titleDiv.getAttribute('title');
125
-
126
141
  /* if data-title-position is left or right change right and left in rtl case */
142
+
127
143
  let isPosition = titleDiv.getAttribute('data-title-position');
128
144
  let elem = this.getDirection;
145
+
129
146
  if (elem.getAttribute('dir') == 'rtl') {
130
147
  if (isPosition == 'left') {
131
148
  isPosition = 'right';
@@ -133,36 +150,44 @@ export default class Tooltip extends React.Component {
133
150
  isPosition = 'left';
134
151
  }
135
152
  }
153
+
136
154
  if (title !== '' && title) {
137
155
  titleDiv.setAttribute('data-title', title);
138
156
  titleDiv.removeAttribute('title');
157
+
139
158
  if (element.nodeName !== 'I' && element.innerText && element.innerText.trim() !== '') {
140
159
  let isContentDotted = '';
160
+
141
161
  if (element.scrollWidth !== 0) {
142
162
  isContentDotted = element.offsetWidth < element.scrollWidth;
163
+
143
164
  if (!isContentDotted) {
144
165
  isContentDotted = element.offsetHeight < element.scrollHeight;
145
- }
146
- // if (!isContentDotted) {Need to check the code Sivanesh
166
+ } // if (!isContentDotted) {Need to check the code Sivanesh
147
167
  // isContentDotted = element.offsetHeight < element.scrollHeight;
148
168
  // }
169
+
149
170
  } else {
150
171
  const offWidth = selectn('parentElement.offsetWidth', element) || 0;
151
172
  const scrollWidth = selectn('parentElement.scrollWidth', element) || 0;
152
173
  isContentDotted = offWidth < scrollWidth;
153
174
  }
175
+
154
176
  let originText = element.innerText.replace(/\s/g, '').toLowerCase();
155
177
  let tooltipText = title.replace(/\s/g, '').toLowerCase();
156
178
  let isDefaultTooltip = element.hasAttribute('data-istitle') || element.hasAttribute('istitle') ? element.getAttribute('data-istitle') || element.getAttribute('istitle') : 'false';
157
179
  isDefaultTooltip = isDefaultTooltip === 'true';
158
180
  let isSameText = originText.indexOf(tooltipText) !== -1 ? true : false;
181
+
159
182
  if (!isContentDotted && isSameText && !isDefaultTooltip) {
160
183
  return false;
161
184
  }
185
+
162
186
  if (isContentDotted && titleDiv.getAttribute('data-dottedTitle')) {
163
187
  title = titleDiv.getAttribute('data-dottedTitle');
164
188
  }
165
189
  }
190
+
166
191
  let isHtml = titleDiv.getAttribute('data-ishtml');
167
192
  let dataTooltipnoArrow = titleDiv.getAttribute('data-tooltip-noarrow') === 'true' ? true : false;
168
193
  let dataTooltipWrap = titleDiv.getAttribute('data-title-wrap') === 'true' ? true : false;
@@ -175,6 +200,7 @@ export default class Tooltip extends React.Component {
175
200
  dataTooltipWrap
176
201
  }, () => {
177
202
  let tooltip = this.toolTip;
203
+
178
204
  if (tooltip) {
179
205
  /* element top, left, height, width */
180
206
  let thisTop = clientRect.top;
@@ -182,9 +208,11 @@ export default class Tooltip extends React.Component {
182
208
  let thisHeight = clientRect.height;
183
209
  let thisWidth = clientRect.width;
184
210
  /* box layout left spacing */
185
- let bodyLeft = boxLayout.left;
186
- // let checkTop = thisTop + thisHeight;
211
+
212
+ let bodyLeft = boxLayout.left; // let checkTop = thisTop + thisHeight;
213
+
187
214
  /* element left plus element width */
215
+
188
216
  let checkLeft = thisLeft + thisWidth;
189
217
  let tTop;
190
218
  let tLeft;
@@ -194,6 +222,7 @@ export default class Tooltip extends React.Component {
194
222
  let bottomEdge;
195
223
  let tooltipLeft;
196
224
  /* offset width, height of body */
225
+
197
226
  let bodyWidth = containerElement.offsetWidth;
198
227
  let bodyHeight = containerElement.offsetHeight;
199
228
  let isArrowHorizontal = false;
@@ -201,12 +230,16 @@ export default class Tooltip extends React.Component {
201
230
  let isArrowRight = false;
202
231
  let tWidth = '';
203
232
  /* overall body height minus element top + element height */
233
+
204
234
  let thisBottom = bodyHeight - (thisTop + thisHeight);
205
235
  /* overall body width minus element left + element width */
236
+
206
237
  let thisRight = bodyWidth - (thisLeft + thisWidth);
207
238
  /* tooltip width and height */
239
+
208
240
  let tooltipoffsetWidth = tooltip.offsetWidth;
209
241
  let tooltipoffsetHeight = tooltip.offsetHeight;
242
+
210
243
  if (isPosition) {
211
244
  if (isPosition == 'top') {
212
245
  /* if top does not have enough space show tooltip in bottom area */
@@ -234,8 +267,9 @@ export default class Tooltip extends React.Component {
234
267
  toolTipArrowLeft = parseInt(tooltipoffsetWidth / 2 - 6);
235
268
  isArrowDown = true;
236
269
  }
237
-
238
270
  /* top tooltip left and right corner edge case */
271
+
272
+
239
273
  let values = this.leftRightScreenEdge(tLeft, toolTipArrowLeft, thisLeft, thisWidth, tooltipoffsetWidth, bodyWidth, rightEdge, bodyLeft);
240
274
  tLeft = values.tLeft, toolTipArrowLeft = values.toolTipArrowLeft, thisLeft = values.thisLeft, thisWidth = values.thisWidth, tooltipoffsetWidth = values.tooltipoffsetWidth, bodyWidth = values.bodyWidth, rightEdge = values.rightEdge;
241
275
  } else if (isPosition == 'bottom') {
@@ -264,12 +298,14 @@ export default class Tooltip extends React.Component {
264
298
  toolTipArrowLeft = parseInt(tooltipoffsetWidth / 2 - 6);
265
299
  isArrowDown = false;
266
300
  }
267
-
268
301
  /* bottom tooltip left and right corner edge case */
302
+
303
+
269
304
  let values = this.leftRightScreenEdge(tLeft, toolTipArrowLeft, thisLeft, thisWidth, tooltipoffsetWidth, bodyWidth, rightEdge, bodyLeft);
270
305
  tLeft = values.tLeft, toolTipArrowLeft = values.toolTipArrowLeft, thisLeft = values.thisLeft, thisWidth = values.thisWidth, tooltipoffsetWidth = values.tooltipoffsetWidth, bodyWidth = values.bodyWidth, rightEdge = values.rightEdge;
271
306
  } else if (isPosition == 'left') {
272
307
  isArrowHorizontal = true;
308
+
273
309
  if (thisLeft - bodyLeft <= tooltipoffsetWidth) {
274
310
  if (thisLeft - bodyLeft <= thisRight) {
275
311
  /* if left does not have enough space show tooltip in right area */
@@ -298,12 +334,14 @@ export default class Tooltip extends React.Component {
298
334
  toolTipArrowLeft = parseInt(tooltipoffsetWidth - 2);
299
335
  isArrowRight = true;
300
336
  }
301
-
302
337
  /* left tooltip top and bottom corner edge case */
338
+
339
+
303
340
  let values = this.topBottomScreenEdge(tTop, toolTipArrowTop, thisTop, thisHeight, tooltipoffsetHeight, bodyHeight, bottomEdge);
304
341
  tTop = values.tTop, toolTipArrowTop = values.toolTipArrowTop, thisTop = values.thisTop, thisHeight = values.thisHeight, tooltipoffsetHeight = values.tooltipoffsetHeight, bodyHeight = values.bodyHeight, bottomEdge = values.bottomEdge;
305
342
  } else if (isPosition == 'right') {
306
343
  isArrowHorizontal = true;
344
+
307
345
  if (thisRight + bodyLeft <= tooltipoffsetWidth) {
308
346
  if (thisLeft + bodyLeft <= thisRight) {
309
347
  /* if right space is larger than left space show tooltip in right (default) area */
@@ -339,11 +377,13 @@ export default class Tooltip extends React.Component {
339
377
  toolTipArrowLeft = -1;
340
378
  isArrowRight = false;
341
379
  }
342
-
343
380
  /* right tooltip left and right corner edge case */
381
+
382
+
344
383
  let values = this.topBottomScreenEdge(tTop, toolTipArrowTop, thisTop, thisHeight, tooltipoffsetHeight, bodyHeight, bottomEdge);
345
384
  tTop = values.tTop, toolTipArrowTop = values.toolTipArrowTop, thisTop = values.thisTop, thisHeight = values.thisHeight, tooltipoffsetHeight = values.tooltipoffsetHeight, bodyHeight = values.bodyHeight, bottomEdge = values.bottomEdge;
346
385
  }
386
+
347
387
  this.setState({
348
388
  top: tTop,
349
389
  left: tLeft,
@@ -361,6 +401,7 @@ export default class Tooltip extends React.Component {
361
401
  tTop = parseInt(thisTop + thisHeight + 10);
362
402
  tLeft = parseInt(thisLeft - (tooltipoffsetWidth / 2 - thisWidth / 2) + 2);
363
403
  tooltipLeft = parseInt(tooltipoffsetWidth / 2 - 6);
404
+
364
405
  if (tLeft - bodyLeft <= 1) {
365
406
  // default left side screen edge case
366
407
  tooltipLeft = parseInt(thisLeft - bodyLeft + thisWidth / 2 - 6);
@@ -374,7 +415,9 @@ export default class Tooltip extends React.Component {
374
415
  tLeft = parseInt(thisLeft - (tooltipoffsetWidth - thisWidth) / 2);
375
416
  tooltipLeft = parseInt(tooltipoffsetWidth / 2 - 4);
376
417
  }
418
+
377
419
  isArrowDown = false;
420
+
378
421
  if (tTop + tooltipoffsetHeight > bodyHeight) {
379
422
  /* if bottom does not have enough space show tooltip in top area */
380
423
  if (thisTop > thisBottom) {
@@ -382,6 +425,7 @@ export default class Tooltip extends React.Component {
382
425
  tTop -= tooltipoffsetHeight + thisHeight + 20;
383
426
  }
384
427
  }
428
+
385
429
  if (isArrowDown) {
386
430
  let arrowTop = tooltipoffsetHeight - 4;
387
431
  this.setState({
@@ -413,6 +457,7 @@ export default class Tooltip extends React.Component {
413
457
  this.reset();
414
458
  }
415
459
  }
460
+
416
461
  render() {
417
462
  let {
418
463
  title,
@@ -459,11 +504,10 @@ export default class Tooltip extends React.Component {
459
504
  className: tooltipCss
460
505
  }, title)) : null;
461
506
  }
507
+
462
508
  }
463
509
  Tooltip.propTypes = propTypes;
464
- Tooltip.defaultProps = defaultProps;
465
-
466
- // if (__DOCS__) {
510
+ Tooltip.defaultProps = defaultProps; // if (__DOCS__) {
467
511
  // Tooltip.docs = {
468
512
  // componentGroup: 'Atom',
469
513
  // folderName: 'Style Guide',