@zohodesk/components 1.2.40 → 1.2.41

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 (308) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +5 -0
  3. package/es/Accordion/Accordion.js +2 -2
  4. package/es/Accordion/AccordionItem.js +4 -4
  5. package/es/Accordion/__tests__/Accordion.spec.js +1 -1
  6. package/es/Accordion/__tests__/AccordionItem.spec.js +1 -1
  7. package/es/Accordion/index.js +2 -2
  8. package/es/Animation/Animation.js +3 -3
  9. package/es/Animation/__tests__/Animation.spec.js +1 -1
  10. package/es/Animation/utils.js +1 -1
  11. package/es/AppContainer/AppContainer.js +9 -9
  12. package/es/AppContainer/__tests__/AppContainer.spec.js +1 -1
  13. package/es/Avatar/Avatar.js +5 -5
  14. package/es/Avatar/__tests__/Avatar.spec.js +1 -1
  15. package/es/AvatarTeam/AvatarTeam.js +4 -4
  16. package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -1
  17. package/es/Button/Button.js +4 -4
  18. package/es/Button/__tests__/Button.spec.js +1 -1
  19. package/es/Button/index.js +2 -2
  20. package/es/Button/props/defaultProps.js +1 -1
  21. package/es/Buttongroup/Buttongroup.js +3 -3
  22. package/es/Buttongroup/__tests__/Buttongroup.spec.js +1 -1
  23. package/es/Card/Card.js +5 -5
  24. package/es/Card/__tests__/Card.spec.js +1 -1
  25. package/es/Card/index.js +4 -4
  26. package/es/CheckBox/CheckBox.js +6 -6
  27. package/es/CheckBox/__tests__/CheckBox.spec.js +1 -1
  28. package/es/DateTime/CalendarView.js +6 -6
  29. package/es/DateTime/DateTime.js +15 -15
  30. package/es/DateTime/DateTimePopupFooter.js +5 -5
  31. package/es/DateTime/DateTimePopupHeader.js +4 -4
  32. package/es/DateTime/DateWidget.js +17 -17
  33. package/es/DateTime/DaysRow.js +3 -3
  34. package/es/DateTime/Time.js +5 -5
  35. package/es/DateTime/YearView.js +6 -6
  36. package/es/DateTime/__tests__/CalendarView.spec.js +1 -1
  37. package/es/DateTime/__tests__/DateTime.spec.js +1 -1
  38. package/es/DateTime/__tests__/DateTimePopupFooter.spec.js +1 -1
  39. package/es/DateTime/__tests__/DateTimePopupHeader.spec.js +1 -1
  40. package/es/DateTime/__tests__/DateWidget.spec.js +1 -1
  41. package/es/DateTime/__tests__/DaysRow.spec.js +1 -1
  42. package/es/DateTime/__tests__/Time.spec.js +1 -1
  43. package/es/DateTime/__tests__/YearView.spec.js +1 -1
  44. package/es/DateTime/dateFormatUtils/dateFormat.js +4 -4
  45. package/es/DateTime/dateFormatUtils/dayChange.js +2 -2
  46. package/es/DateTime/dateFormatUtils/index.js +3 -3
  47. package/es/DateTime/dateFormatUtils/monthChange.js +2 -2
  48. package/es/DateTime/dateFormatUtils/timeChange.js +2 -2
  49. package/es/DateTime/dateFormatUtils/yearChange.js +2 -2
  50. package/es/DateTime/index.js +1 -1
  51. package/es/DateTime/props/propTypes.js +1 -1
  52. package/es/DateTime/validator.js +2 -2
  53. package/es/DropBox/DropBox.js +9 -9
  54. package/es/DropBox/DropBoxElement/DropBoxElement.js +6 -6
  55. package/es/DropBox/DropBoxElement/__tests__/DropBoxElement.spec.js +1 -1
  56. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +1 -1
  57. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +1 -1
  58. package/es/DropBox/__tests__/DropBox.spec.js +1 -1
  59. package/es/DropBox/css/cssJSLogic.js +1 -1
  60. package/es/DropBox/props/defaultProps.js +1 -1
  61. package/es/DropBox/props/propTypes.js +1 -1
  62. package/es/DropBox/utils/isMobilePopover.js +1 -1
  63. package/es/DropDown/DropDown.js +4 -4
  64. package/es/DropDown/DropDownHeading.js +3 -3
  65. package/es/DropDown/DropDownItem.js +3 -3
  66. package/es/DropDown/DropDownSearch.js +4 -4
  67. package/es/DropDown/DropDownSeparator.js +2 -2
  68. package/es/DropDown/__tests__/DropDown.spec.js +1 -1
  69. package/es/DropDown/__tests__/DropDownHeading.spec.js +1 -1
  70. package/es/DropDown/__tests__/DropDownItem.spec.js +1 -1
  71. package/es/DropDown/__tests__/DropDownSearch.spec.js +1 -1
  72. package/es/DropDown/__tests__/DropDownSeparator.spec.js +1 -1
  73. package/es/DropDown/index.js +7 -7
  74. package/es/DropDown/props/propTypes.js +1 -1
  75. package/es/Heading/Heading.js +3 -3
  76. package/es/Heading/__tests__/Heading.spec.js +1 -1
  77. package/es/Label/Label.js +4 -4
  78. package/es/Label/__tests__/Label.spec.js +1 -1
  79. package/es/Layout/Box.js +4 -4
  80. package/es/Layout/Container.js +4 -4
  81. package/es/Layout/__tests__/Box.spec.js +1 -1
  82. package/es/Layout/__tests__/Container.spec.js +1 -1
  83. package/es/Layout/index.js +2 -2
  84. package/es/ListItem/ListContainer.js +6 -6
  85. package/es/ListItem/ListItem.js +5 -5
  86. package/es/ListItem/ListItemWithAvatar.js +7 -7
  87. package/es/ListItem/ListItemWithCheckBox.js +6 -6
  88. package/es/ListItem/ListItemWithIcon.js +5 -5
  89. package/es/ListItem/ListItemWithRadio.js +6 -6
  90. package/es/ListItem/__tests__/ListContainer.spec.js +1 -1
  91. package/es/ListItem/__tests__/ListItem.spec.js +1 -1
  92. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +1 -1
  93. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +1 -1
  94. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +1 -1
  95. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +1 -1
  96. package/es/ListItem/index.js +6 -6
  97. package/es/Modal/Modal.js +3 -3
  98. package/es/Modal/__tests__/Modal.spec.js +1 -1
  99. package/es/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
  100. package/es/MultiSelect/AdvancedMultiSelect.js +17 -17
  101. package/es/MultiSelect/EmptyState.js +3 -3
  102. package/es/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  103. package/es/MultiSelect/MobileHeader/__tests__/MobileHeader.spec.js +1 -1
  104. package/es/MultiSelect/MultiSelect.js +20 -20
  105. package/es/MultiSelect/MultiSelectHeader.js +4 -4
  106. package/es/MultiSelect/MultiSelectWithAvatar.js +16 -16
  107. package/es/MultiSelect/SelectedOptions.js +5 -5
  108. package/es/MultiSelect/Suggestions.js +6 -6
  109. package/es/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +1 -1
  110. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +1 -1
  111. package/es/MultiSelect/__tests__/EmptyState.spec.js +1 -1
  112. package/es/MultiSelect/__tests__/MultiSelect.spec.js +1 -1
  113. package/es/MultiSelect/__tests__/MultiSelectHeader.spec.js +1 -1
  114. package/es/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +1 -1
  115. package/es/MultiSelect/__tests__/SelectedOptions.spec.js +1 -1
  116. package/es/MultiSelect/__tests__/Suggestions.spec.js +1 -1
  117. package/es/MultiSelect/index.js +4 -4
  118. package/es/MultiSelect/props/defaultProps.js +1 -1
  119. package/es/PopOver/PopOver.js +6 -6
  120. package/es/PopOver/__tests__/PopOver.spec.js +1 -1
  121. package/es/PopOver/index.js +3 -3
  122. package/es/Popup/Popup.js +3 -3
  123. package/es/Provider/AvatarSize.js +1 -1
  124. package/es/Provider/CssProvider.js +1 -1
  125. package/es/Provider/IdProvider.js +2 -2
  126. package/es/Provider/LibraryContext.js +2 -2
  127. package/es/Provider/ZindexProvider.js +2 -2
  128. package/es/Provider/index.js +4 -4
  129. package/es/Radio/Radio.js +5 -5
  130. package/es/Radio/__tests__/Radio.spec.js +1 -1
  131. package/es/Responsive/CustomResponsive.js +7 -7
  132. package/es/Responsive/ResizeComponent.js +2 -2
  133. package/es/Responsive/Responsive.js +6 -6
  134. package/es/Responsive/index.js +3 -3
  135. package/es/Responsive/utils/index.js +1 -1
  136. package/es/Responsive/windowResizeObserver.js +1 -1
  137. package/es/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  138. package/es/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +1 -1
  139. package/es/ResponsiveDropBox/props/propTypes.js +1 -1
  140. package/es/Ribbon/Ribbon.js +3 -3
  141. package/es/Ribbon/__tests__/Ribbon.spec.js +1 -1
  142. package/es/RippleEffect/RippleEffect.js +4 -4
  143. package/es/RippleEffect/__tests__/RippleEffect.spec.js +1 -1
  144. package/es/Select/GroupSelect.js +16 -16
  145. package/es/Select/Select.js +15 -15
  146. package/es/Select/SelectWithAvatar.js +17 -17
  147. package/es/Select/SelectWithIcon.js +13 -13
  148. package/es/Select/__tests__/GroupSelect.spec.js +1 -1
  149. package/es/Select/__tests__/Select.spec.js +1 -1
  150. package/es/Select/__tests__/SelectWithAvatar.spec.js +1 -1
  151. package/es/Select/__tests__/SelectWithIcon.spec.js +1 -1
  152. package/es/Select/index.js +4 -4
  153. package/es/Select/props/defaultProps.js +1 -1
  154. package/es/Stencils/Stencils.js +3 -3
  155. package/es/Stencils/__tests__/Stencils.spec.js +1 -1
  156. package/es/Switch/Switch.js +5 -5
  157. package/es/Switch/__tests__/Switch.spec.js +1 -1
  158. package/es/Tab/Tab.js +5 -5
  159. package/es/Tab/TabContent.js +4 -4
  160. package/es/Tab/TabContentWrapper.js +3 -3
  161. package/es/Tab/TabWrapper.js +3 -3
  162. package/es/Tab/Tabs.js +131 -33
  163. package/es/Tab/Tabs.module.css +32 -2
  164. package/es/Tab/__tests__/Tab.spec.js +1 -1
  165. package/es/Tab/__tests__/TabContent.spec.js +1 -1
  166. package/es/Tab/__tests__/TabContentWrapper.spec.js +1 -1
  167. package/es/Tab/__tests__/TabWrapper.spec.js +1 -1
  168. package/es/Tab/__tests__/Tabs.spec.js +1 -1
  169. package/es/Tab/index.js +5 -5
  170. package/es/Tab/props/defaultProps.js +4 -1
  171. package/es/Tab/props/propTypes.js +6 -1
  172. package/es/Tag/Tag.js +7 -7
  173. package/es/Tag/__tests__/Tag.spec.js +1 -1
  174. package/es/TextBox/TextBox.js +3 -3
  175. package/es/TextBox/__tests__/TextBox.spec.js +1 -1
  176. package/es/TextBoxIcon/TextBoxIcon.js +6 -6
  177. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -1
  178. package/es/TextBoxIcon/props/propTypes.js +1 -1
  179. package/es/Textarea/Textarea.js +3 -3
  180. package/es/Textarea/__tests__/Textarea.spec.js +1 -1
  181. package/es/Tooltip/Tooltip.js +5 -5
  182. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  183. package/es/VelocityAnimation/VelocityAnimation/__tests__/VelocityAnimation.spec.js +1 -1
  184. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
  185. package/es/VelocityAnimation/VelocityAnimationGroup/__tests__/VelocityAnimationGroup.spec.js +1 -1
  186. package/es/VelocityAnimation/index.js +2 -2
  187. package/es/css.js +37 -37
  188. package/es/deprecated/PortalLayer/PortalLayer.js +3 -3
  189. package/es/index.js +39 -39
  190. package/es/semantic/Button/Button.js +3 -3
  191. package/es/semantic/Button/__tests__/Button.spec.js +1 -1
  192. package/es/semantic/index.js +1 -1
  193. package/es/utils/Common.js +1 -1
  194. package/es/utils/ContextOptimizer.js +1 -1
  195. package/es/utils/datetime/common.js +1 -1
  196. package/es/utils/dropDownUtils.js +1 -1
  197. package/es/utils/index.js +1 -1
  198. package/es/v1/Accordion/Accordion.js +2 -2
  199. package/es/v1/Accordion/AccordionItem.js +4 -4
  200. package/es/v1/Accordion/index.js +2 -2
  201. package/es/v1/Animation/Animation.js +3 -3
  202. package/es/v1/Animation/utils.js +1 -1
  203. package/es/v1/AppContainer/AppContainer.js +9 -9
  204. package/es/v1/Avatar/Avatar.js +5 -5
  205. package/es/v1/AvatarTeam/AvatarTeam.js +4 -4
  206. package/es/v1/Button/Button.js +4 -4
  207. package/es/v1/Button/props/defaultProps.js +1 -1
  208. package/es/v1/Buttongroup/Buttongroup.js +3 -3
  209. package/es/v1/Card/Card.js +5 -5
  210. package/es/v1/Card/index.js +4 -4
  211. package/es/v1/Card/props/propTypes.js +1 -1
  212. package/es/v1/CheckBox/CheckBox.js +6 -6
  213. package/es/v1/DateTime/CalendarView.js +7 -7
  214. package/es/v1/DateTime/DateTime.js +15 -15
  215. package/es/v1/DateTime/DateTimePopupFooter.js +5 -5
  216. package/es/v1/DateTime/DateTimePopupHeader.js +4 -4
  217. package/es/v1/DateTime/DateWidget.js +17 -17
  218. package/es/v1/DateTime/DaysRow.js +3 -3
  219. package/es/v1/DateTime/Time.js +5 -5
  220. package/es/v1/DateTime/YearView.js +6 -6
  221. package/es/v1/DateTime/index.js +1 -1
  222. package/es/v1/DateTime/props/propTypes.js +2 -2
  223. package/es/v1/DropBox/DropBox.js +9 -9
  224. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +6 -6
  225. package/es/v1/DropBox/props/defaultProps.js +1 -1
  226. package/es/v1/DropBox/props/propTypes.js +1 -1
  227. package/es/v1/DropBox/utils/isMobilePopover.js +1 -1
  228. package/es/v1/DropDown/DropDown.js +4 -4
  229. package/es/v1/DropDown/DropDownHeading.js +3 -3
  230. package/es/v1/DropDown/DropDownItem.js +3 -3
  231. package/es/v1/DropDown/DropDownSearch.js +4 -4
  232. package/es/v1/DropDown/DropDownSeparator.js +2 -2
  233. package/es/v1/DropDown/props/propTypes.js +1 -1
  234. package/es/v1/Heading/Heading.js +3 -3
  235. package/es/v1/Label/Label.js +4 -4
  236. package/es/v1/Layout/Box.js +4 -4
  237. package/es/v1/Layout/Container.js +4 -4
  238. package/es/v1/Layout/index.js +2 -2
  239. package/es/v1/ListItem/ListContainer.js +6 -6
  240. package/es/v1/ListItem/ListItem.js +5 -5
  241. package/es/v1/ListItem/ListItemWithAvatar.js +7 -7
  242. package/es/v1/ListItem/ListItemWithCheckBox.js +6 -6
  243. package/es/v1/ListItem/ListItemWithIcon.js +5 -5
  244. package/es/v1/ListItem/ListItemWithRadio.js +6 -6
  245. package/es/v1/ListItem/index.js +6 -6
  246. package/es/v1/Modal/Modal.js +3 -3
  247. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
  248. package/es/v1/MultiSelect/AdvancedMultiSelect.js +17 -17
  249. package/es/v1/MultiSelect/EmptyState.js +3 -3
  250. package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  251. package/es/v1/MultiSelect/MultiSelect.js +19 -19
  252. package/es/v1/MultiSelect/MultiSelectHeader.js +4 -4
  253. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +16 -16
  254. package/es/v1/MultiSelect/SelectedOptions.js +5 -5
  255. package/es/v1/MultiSelect/Suggestions.js +6 -6
  256. package/es/v1/MultiSelect/index.js +4 -4
  257. package/es/v1/MultiSelect/props/defaultProps.js +1 -1
  258. package/es/v1/PopOver/PopOver.js +6 -6
  259. package/es/v1/Popup/Popup.js +3 -3
  260. package/es/v1/Radio/Radio.js +5 -5
  261. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  262. package/es/v1/ResponsiveDropBox/props/propTypes.js +2 -2
  263. package/es/v1/Ribbon/Ribbon.js +3 -3
  264. package/es/v1/Ribbon/props/propTypes.js +1 -1
  265. package/es/v1/RippleEffect/RippleEffect.js +4 -4
  266. package/es/v1/Select/GroupSelect.js +16 -16
  267. package/es/v1/Select/Select.js +15 -15
  268. package/es/v1/Select/SelectWithAvatar.js +17 -17
  269. package/es/v1/Select/SelectWithIcon.js +13 -13
  270. package/es/v1/Select/index.js +4 -4
  271. package/es/v1/Select/props/defaultProps.js +1 -1
  272. package/es/v1/Stencils/Stencils.js +3 -3
  273. package/es/v1/Switch/Switch.js +5 -5
  274. package/es/v1/Tab/Tab.js +5 -5
  275. package/es/v1/Tab/TabContent.js +4 -4
  276. package/es/v1/Tab/TabContentWrapper.js +3 -3
  277. package/es/v1/Tab/TabWrapper.js +3 -3
  278. package/es/v1/Tab/Tabs.js +111 -28
  279. package/es/v1/Tab/index.js +5 -5
  280. package/es/v1/Tab/props/defaultProps.js +4 -1
  281. package/es/v1/Tab/props/propTypes.js +6 -1
  282. package/es/v1/Tab/v1Tabs.module.css +32 -2
  283. package/es/v1/Tag/Tag.js +7 -7
  284. package/es/v1/TextBox/TextBox.js +3 -3
  285. package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -6
  286. package/es/v1/TextBoxIcon/props/propTypes.js +1 -1
  287. package/es/v1/Textarea/Textarea.js +3 -3
  288. package/es/v1/Tooltip/Tooltip.js +5 -5
  289. package/es/v1/Typography/Typography.js +4 -4
  290. package/es/v1/Typography/css/cssJSLogic.js +1 -1
  291. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  292. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
  293. package/es/v1/semantic/Button/Button.js +3 -3
  294. package/es/v1/semantic/index.js +1 -1
  295. package/lib/Tab/Tabs.js +167 -74
  296. package/lib/Tab/Tabs.module.css +32 -2
  297. package/lib/Tab/props/defaultProps.js +4 -1
  298. package/lib/Tab/props/propTypes.js +6 -1
  299. package/lib/v1/Card/props/propTypes.js +1 -1
  300. package/lib/v1/DateTime/props/propTypes.js +1 -1
  301. package/lib/v1/ResponsiveDropBox/props/propTypes.js +1 -1
  302. package/lib/v1/Ribbon/props/propTypes.js +1 -1
  303. package/lib/v1/Tab/Tabs.js +107 -23
  304. package/lib/v1/Tab/props/defaultProps.js +4 -1
  305. package/lib/v1/Tab/props/propTypes.js +6 -1
  306. package/lib/v1/Tab/v1Tabs.module.css +32 -2
  307. package/package.json +10 -10
  308. package/result.json +1 -1
package/lib/Tab/Tabs.js CHANGED
@@ -9,6 +9,8 @@ exports["default"] = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
+ var _EmptySearch = _interopRequireDefault(require("@zohodesk/svg/lib/emptystate/version3/EmptySearch"));
13
+
12
14
  var _Tab = _interopRequireDefault(require("./Tab"));
13
15
 
14
16
  var _defaultProps = require("./props/defaultProps");
@@ -29,6 +31,8 @@ var _TabsModule = _interopRequireDefault(require("./Tabs.module.css"));
29
31
 
30
32
  var _Popup = _interopRequireDefault(require("../Popup/Popup"));
31
33
 
34
+ var _TextBoxIcon = _interopRequireDefault(require("../TextBoxIcon/TextBoxIcon"));
35
+
32
36
  var _ResponsiveDropBox = _interopRequireDefault(require("../ResponsiveDropBox/ResponsiveDropBox"));
33
37
 
34
38
  var _CustomResponsive = require("../Responsive/CustomResponsive");
@@ -81,10 +85,11 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
81
85
  tabDimensions: {},
82
86
  highlightInitialDimension: null,
83
87
  renderVirtualTabs: true,
84
- tabKeys: []
88
+ tabKeys: [],
89
+ searchValue: ''
85
90
  };
86
91
 
87
- _Common.bind.apply(_assertThisInitialized(_this), ['moreTabSelect', 'onResize', 'onTabResize', 'getHighlightRef', 'getTabsRef', 'getTabRef', 'getHighlightDim', 'onSizeChange', 'onScroll', 'togglePopup', 'setMaxDim']);
92
+ _Common.bind.apply(_assertThisInitialized(_this), ['moreTabSelect', 'onResize', 'onTabResize', 'getHighlightRef', 'getTabsRef', 'getTabRef', 'getHighlightDim', 'onSizeChange', 'onScroll', 'togglePopup', 'setMaxDim', 'handleChange', 'handleSearchValueClear', 'getMoreList', 'renderEmptyState']);
88
93
 
89
94
  _this.tabsObserver = new _ResizeObserver["default"](_this.onResize);
90
95
  _this.tabObserver = {};
@@ -188,11 +193,13 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
188
193
  var _this$props2 = this.props,
189
194
  children = _this$props2.children,
190
195
  selectedTab = _this$props2.selectedTab,
191
- childType = _this$props2.childType;
196
+ childType = _this$props2.childType,
197
+ isPopupOpen = _this$props2.isPopupOpen;
192
198
  var _this$state = this.state,
193
199
  tabDimensions = _this$state.tabDimensions,
194
200
  totalDimension = _this$state.totalDimension,
195
- tabKeys = _this$state.tabKeys;
201
+ tabKeys = _this$state.tabKeys,
202
+ searchValue = _this$state.searchValue;
196
203
 
197
204
  if (prevProps.children && children) {
198
205
  /**
@@ -230,6 +237,10 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
230
237
  if (prevProps.selectedTab !== selectedTab || newTabKeys.length === 1) {
231
238
  this.moveHighlight();
232
239
  }
240
+
241
+ if (prevProps.isPopupOpen != isPopupOpen && searchValue.length) {
242
+ this.handleSearchValueClear();
243
+ }
233
244
  }
234
245
  }
235
246
  }, {
@@ -431,7 +442,9 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
431
442
  }, {
432
443
  key: "moreTabSelect",
433
444
  value: function moreTabSelect(tab, value, index, e) {
434
- var onSelect = this.props.onSelect;
445
+ var _this$props7 = this.props,
446
+ onSelect = _this$props7.onSelect,
447
+ closePopupOnly = _this$props7.closePopupOnly;
435
448
 
436
449
  if (e && e.target && e.target.parentElement.tagName === 'A' && (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)) {
437
450
  (0, _Common.cancelBubblingEffect)(e);
@@ -440,6 +453,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
440
453
 
441
454
  e.preventDefault();
442
455
  onSelect(tab);
456
+ closePopupOnly();
443
457
  }
444
458
  }, {
445
459
  key: "onScroll",
@@ -451,11 +465,11 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
451
465
  }, {
452
466
  key: "togglePopup",
453
467
  value: function togglePopup(e) {
454
- var _this$props7 = this.props,
455
- boxPosition = _this$props7.boxPosition,
456
- togglePopup = _this$props7.togglePopup,
457
- align = _this$props7.align,
458
- removeClose = _this$props7.removeClose;
468
+ var _this$props8 = this.props,
469
+ boxPosition = _this$props8.boxPosition,
470
+ togglePopup = _this$props8.togglePopup,
471
+ align = _this$props8.align,
472
+ removeClose = _this$props8.removeClose;
459
473
  removeClose && removeClose(e);
460
474
  var popupPosition = align === 'vertical' ? 'bottomLeft' : 'rightTop';
461
475
  boxPosition = boxPosition ? boxPosition : popupPosition;
@@ -471,45 +485,114 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
471
485
  }])
472
486
  };
473
487
  }
488
+ }, {
489
+ key: "handleChange",
490
+ value: function handleChange(value, e) {
491
+ this.setState({
492
+ searchValue: value
493
+ });
494
+ }
495
+ }, {
496
+ key: "handleSearchValueClear",
497
+ value: function handleSearchValueClear(e) {
498
+ this.setState({
499
+ searchValue: ''
500
+ });
501
+ }
502
+ }, {
503
+ key: "getMoreList",
504
+ value: function getMoreList(_ref2) {
505
+ var moreTabs = _ref2.moreTabs;
506
+ var validElements = [];
507
+
508
+ _react["default"].Children.map(moreTabs, function (child) {
509
+ var isValidElement = /*#__PURE__*/_react["default"].isValidElement(child);
510
+
511
+ if (isValidElement) {
512
+ validElements.push(child.props);
513
+ }
514
+ });
515
+
516
+ return validElements;
517
+ }
518
+ }, {
519
+ key: "handleFilterSuggestions",
520
+ value: function handleFilterSuggestions(_ref3) {
521
+ var moreTabs = _ref3.moreTabs;
522
+ var showTitleInMoreOptions = this.props.showTitleInMoreOptions;
523
+ var searchValue = this.state.searchValue;
524
+ var options = this.getMoreList({
525
+ moreTabs: moreTabs
526
+ });
527
+ var filteredOptions = options.filter(function (list) {
528
+ var text = list.text,
529
+ title = list.title;
530
+ var value = text ? text : showTitleInMoreOptions ? title : '';
531
+ return value.toLowerCase().includes(searchValue.toLowerCase());
532
+ });
533
+ return filteredOptions;
534
+ }
535
+ }, {
536
+ key: "renderEmptyState",
537
+ value: function renderEmptyState() {
538
+ var searchErrorText = this.props.searchErrorText;
539
+ return /*#__PURE__*/_react["default"].createElement("div", {
540
+ className: _TabsModule["default"].emptyStateContainer
541
+ }, /*#__PURE__*/_react["default"].createElement(_EmptySearch["default"], {
542
+ size: "small"
543
+ }), /*#__PURE__*/_react["default"].createElement("div", {
544
+ className: _TabsModule["default"].emptyStateTitle
545
+ }, searchErrorText));
546
+ }
474
547
  }, {
475
548
  key: "renderTabs",
476
549
  value: function renderTabs(mainTabs, moreTabs, isVirtual) {
477
550
  var _this8 = this;
478
551
 
479
- var _this$props8 = this.props,
480
- selectedTab = _this$props8.selectedTab,
481
- moreButtonClass = _this$props8.moreButtonClass,
482
- moreButtonActiveClass = _this$props8.moreButtonActiveClass,
483
- moreBoxClass = _this$props8.moreBoxClass,
484
- menuItemClass = _this$props8.menuItemClass,
485
- itemClass = _this$props8.itemClass,
486
- itemActiveClass = _this$props8.itemActiveClass,
487
- iconName = _this$props8.iconName,
488
- isPopupReady = _this$props8.isPopupReady,
489
- isPopupOpen = _this$props8.isPopupOpen,
490
- getContainerRef = _this$props8.getContainerRef,
491
- showTitleInMoreOptions = _this$props8.showTitleInMoreOptions,
492
- onSelect = _this$props8.onSelect,
493
- moreContainerClass = _this$props8.moreContainerClass,
494
- align = _this$props8.align,
495
- type = _this$props8.type,
496
- isAnimate = _this$props8.isAnimate,
497
- needTabBorder = _this$props8.needTabBorder,
498
- needAppearance = _this$props8.needAppearance,
499
- iconSize = _this$props8.iconSize,
500
- getTargetRef = _this$props8.getTargetRef,
501
- position = _this$props8.position,
502
- customProps = _this$props8.customProps,
503
- getCustomDropBoxHeaderPlaceHolder = _this$props8.getCustomDropBoxHeaderPlaceHolder,
504
- dataSelectorId = _this$props8.dataSelectorId,
505
- dataId = _this$props8.dataId;
552
+ var _this$props9 = this.props,
553
+ selectedTab = _this$props9.selectedTab,
554
+ moreButtonClass = _this$props9.moreButtonClass,
555
+ moreButtonActiveClass = _this$props9.moreButtonActiveClass,
556
+ moreBoxClass = _this$props9.moreBoxClass,
557
+ menuItemClass = _this$props9.menuItemClass,
558
+ itemClass = _this$props9.itemClass,
559
+ itemActiveClass = _this$props9.itemActiveClass,
560
+ iconName = _this$props9.iconName,
561
+ isPopupReady = _this$props9.isPopupReady,
562
+ isPopupOpen = _this$props9.isPopupOpen,
563
+ getContainerRef = _this$props9.getContainerRef,
564
+ showTitleInMoreOptions = _this$props9.showTitleInMoreOptions,
565
+ onSelect = _this$props9.onSelect,
566
+ moreContainerClass = _this$props9.moreContainerClass,
567
+ align = _this$props9.align,
568
+ type = _this$props9.type,
569
+ isAnimate = _this$props9.isAnimate,
570
+ needTabBorder = _this$props9.needTabBorder,
571
+ needAppearance = _this$props9.needAppearance,
572
+ iconSize = _this$props9.iconSize,
573
+ getTargetRef = _this$props9.getTargetRef,
574
+ position = _this$props9.position,
575
+ customProps = _this$props9.customProps,
576
+ getCustomDropBoxHeaderPlaceHolder = _this$props9.getCustomDropBoxHeaderPlaceHolder,
577
+ dataSelectorId = _this$props9.dataSelectorId,
578
+ dataId = _this$props9.dataId,
579
+ placeHolderText = _this$props9.placeHolderText,
580
+ searchBoxSize = _this$props9.searchBoxSize,
581
+ removeClose = _this$props9.removeClose;
582
+ var searchValue = this.state.searchValue;
506
583
  var _customProps$DropBoxP = customProps.DropBoxProps,
507
584
  DropBoxProps = _customProps$DropBoxP === void 0 ? {} : _customProps$DropBoxP,
508
585
  _customProps$ListItem = customProps.ListItemProps,
509
586
  ListItemProps = _customProps$ListItem === void 0 ? {} : _customProps$ListItem,
510
587
  _customProps$MoreButt = customProps.MoreButtonProps,
511
- MoreButtonProps = _customProps$MoreButt === void 0 ? {} : _customProps$MoreButt;
588
+ MoreButtonProps = _customProps$MoreButt === void 0 ? {} : _customProps$MoreButt,
589
+ _customProps$TextBoxI = customProps.TextBoxIconProps,
590
+ TextBoxIconProps = _customProps$TextBoxI === void 0 ? {} : _customProps$TextBoxI;
512
591
  var popupClass = align === 'vertical' ? _TabsModule["default"][position] ? _TabsModule["default"][position] : '' : '';
592
+ var moreTabsListItems = this.handleFilterSuggestions({
593
+ moreTabs: moreTabs
594
+ });
595
+ var hasSearch = moreTabs.length > 4;
513
596
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _react["default"].Children.map(mainTabs, function (child) {
514
597
  if (!child) {
515
598
  return null;
@@ -558,8 +641,8 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
558
641
  })), isPopupOpen && /*#__PURE__*/_react["default"].createElement(_CustomResponsive.ResponsiveReceiver, {
559
642
  query: this.responsiveFunc,
560
643
  responsiveId: "Helmet"
561
- }, function (_ref2) {
562
- var tabletMode = _ref2.tabletMode;
644
+ }, function (_ref4) {
645
+ var tabletMode = _ref4.tabletMode;
563
646
  return /*#__PURE__*/_react["default"].createElement(_ResponsiveDropBox["default"], _extends({
564
647
  isActive: isPopupReady,
565
648
  isAnimate: true,
@@ -574,30 +657,40 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
574
657
  }, DropBoxProps, {
575
658
  isResponsivePadding: true,
576
659
  needFocusScope: true,
577
- onClose: _this8.togglePopup,
578
- dataId: "".concat(dataId, "_dropbox")
579
- }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(_this8.props), /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
660
+ dataId: "".concat(dataId, "_dropbox"),
661
+ onClick: removeClose,
662
+ onClose: _this8.togglePopup
663
+ }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(_this8.props), hasSearch ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
664
+ className: _TabsModule["default"].search
665
+ }, /*#__PURE__*/_react["default"].createElement(_TextBoxIcon["default"], _extends({
666
+ placeHolder: placeHolderText,
667
+ onChange: _this8.handleChange,
668
+ value: searchValue,
669
+ onClear: _this8.handleSearchValueClear,
670
+ size: searchBoxSize,
671
+ customProps: {
672
+ TextBoxProps: {
673
+ 'data-a11y-autofocus': true
674
+ }
675
+ },
676
+ dataId: "".concat(dataId, "_search")
677
+ }, TextBoxIconProps))) : null, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
580
678
  flexible: true,
581
679
  shrink: true,
582
680
  scroll: "vertical",
583
- className: "".concat(tabletMode ? '' : _TabsModule["default"].menuBox, " ").concat(moreBoxClass),
681
+ className: "".concat(_TabsModule["default"].listWrapper, " ").concat(tabletMode ? '' : _TabsModule["default"].menuBox, " ").concat(moreBoxClass),
584
682
  onScroll: _this8.onScroll,
585
683
  dataId: "".concat(dataId, "_Tabs")
586
- }, _react["default"].Children.map(moreTabs, function (child) {
587
- if (!child) {
588
- return null;
589
- }
590
-
591
- var _child$props = child.props,
592
- text = _child$props.text,
593
- id = _child$props.id,
594
- title = _child$props.title,
595
- isLink = _child$props.isLink,
596
- href = _child$props.href,
597
- children = _child$props.children,
598
- dataId = _child$props.dataId;
684
+ }, moreTabsListItems.length ? moreTabsListItems.map(function (data) {
685
+ var text = data.text,
686
+ id = data.id,
687
+ title = data.title,
688
+ isLink = data.isLink,
689
+ href = data.href,
690
+ children = data.children,
691
+ dataId = data.dataId;
599
692
  var value = text ? text : showTitleInMoreOptions ? title : null;
600
- return /*#__PURE__*/_react["default"].isValidElement(child) && /*#__PURE__*/_react["default"].createElement(_ListItem["default"], _extends({
693
+ return /*#__PURE__*/_react["default"].createElement(_ListItem["default"], _extends({
601
694
  key: id,
602
695
  value: value,
603
696
  onClick: _this8.moreTabSelect,
@@ -612,27 +705,27 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
612
705
  target: "self",
613
706
  dataId: "".concat(dataId, "_Tab")
614
707
  }, ListItemProps), !showTitleInMoreOptions ? children : null);
615
- })));
708
+ }) : _this8.renderEmptyState()));
616
709
  })) : null);
617
710
  }
618
711
  }, {
619
712
  key: "render",
620
713
  value: function render() {
621
- var _this$props9 = this.props,
622
- style = _this$props9.style,
623
- className = _this$props9.className,
624
- dataId = _this$props9.dataId,
625
- highlightClass = _this$props9.highlightClass,
626
- type = _this$props9.type,
627
- isAnimate = _this$props9.isAnimate,
628
- needTabBorder = _this$props9.needTabBorder,
629
- needBorder = _this$props9.needBorder,
630
- needPadding = _this$props9.needPadding,
631
- align = _this$props9.align,
632
- needAppearance = _this$props9.needAppearance,
633
- children = _this$props9.children,
634
- containerClass = _this$props9.containerClass,
635
- dataSelectorId = _this$props9.dataSelectorId;
714
+ var _this$props10 = this.props,
715
+ style = _this$props10.style,
716
+ className = _this$props10.className,
717
+ dataId = _this$props10.dataId,
718
+ highlightClass = _this$props10.highlightClass,
719
+ type = _this$props10.type,
720
+ isAnimate = _this$props10.isAnimate,
721
+ needTabBorder = _this$props10.needTabBorder,
722
+ needBorder = _this$props10.needBorder,
723
+ needPadding = _this$props10.needPadding,
724
+ align = _this$props10.align,
725
+ needAppearance = _this$props10.needAppearance,
726
+ children = _this$props10.children,
727
+ containerClass = _this$props10.containerClass,
728
+ dataSelectorId = _this$props10.dataSelectorId;
636
729
  var _this$state2 = this.state,
637
730
  totalDimension = _this$state2.totalDimension,
638
731
  tabDimensions = _this$state2.tabDimensions,
@@ -123,15 +123,45 @@
123
123
  .bottomRightToLeft,
124
124
  .topRightToLeft,
125
125
  .bottomCenterToLeft {
126
- right: calc(var(--tab_position_gap) * -1);
126
+ right: calc(var(--tab_position_gap) * -1);
127
127
  }
128
128
 
129
129
  .bottomLeftToRight,
130
130
  .topLeftToRight,
131
131
  .bottomCenterToRight {
132
- left: calc(var(--tab_position_gap) * -1);
132
+ left: calc(var(--tab_position_gap) * -1);
133
133
  }
134
134
 
135
135
  .hidden {
136
136
  visibility: hidden;
137
+ }
138
+
139
+ .search {
140
+ padding: 0 var(--zd_size20) 0 ;
141
+ }
142
+
143
+ .emptyStateContainer {
144
+ padding-bottom: var(--zd_size15) ;
145
+ }
146
+
147
+ .emptyStateTitle {
148
+ font-family: var(--zd_semibold);
149
+ word-wrap: break-word;
150
+ font-size: var(--zd_font_size16) ;
151
+ max-width: var(--zd_size430) ;
152
+ text-align: center;
153
+ }
154
+
155
+ [dir=ltr] .emptyStateTitle {
156
+ margin-left: auto ;
157
+ margin-right: auto ;
158
+ }
159
+
160
+ [dir=rtl] .emptyStateTitle {
161
+ margin-right: auto ;
162
+ margin-left: auto ;
163
+ }
164
+
165
+ .listWrapper {
166
+ padding-top: var(--zd_size10) ;
137
167
  }
@@ -39,7 +39,10 @@ var Tabs_defaultProps = {
39
39
  iconSize: '7',
40
40
  containerClass: '',
41
41
  customProps: {},
42
- dataSelectorId: 'tabs'
42
+ dataSelectorId: 'tabs',
43
+ searchBoxSize: 'small',
44
+ searchErrorText: 'No results',
45
+ placeHolderText: 'Search'
43
46
  };
44
47
  exports.Tabs_defaultProps = Tabs_defaultProps;
45
48
  var TabWrapper_defaultProps = {
@@ -97,12 +97,17 @@ var Tabs_propTypes = {
97
97
  getTargetRef: _propTypes["default"].func,
98
98
  containerClass: _propTypes["default"].string,
99
99
  customProps: _propTypes["default"].shape({
100
+ TextBoxIconProps: _propTypes["default"].object,
100
101
  DropBoxProps: _propTypes["default"].object,
101
102
  ListItemProps: _propTypes["default"].object,
102
103
  MoreButtonProps: _propTypes["default"].object
103
104
  }),
104
105
  getCustomDropBoxHeaderPlaceHolder: _propTypes["default"].func,
105
- dataSelectorId: _propTypes["default"].string
106
+ dataSelectorId: _propTypes["default"].string,
107
+ placeHolderText: _propTypes["default"].string,
108
+ searchBoxSize: _propTypes["default"].string,
109
+ searchErrorText: _propTypes["default"].string,
110
+ closePopupOnly: _propTypes["default"].func
106
111
  };
107
112
  exports.Tabs_propTypes = Tabs_propTypes;
108
113
  var TabWrapper_propTypes = {
@@ -10,7 +10,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
12
12
  var CardHeader_propTypes = {
13
- children: _propTypes["default"].element,
13
+ children: _propTypes["default"].node,
14
14
  dataId: _propTypes["default"].string,
15
15
  isScroll: _propTypes["default"].bool,
16
16
  customClass: _propTypes["default"].string,
@@ -110,7 +110,7 @@ exports.DateTime_propTypes = DateTime_propTypes;
110
110
  var DateWidget_propTypes = {
111
111
  borderColor: _propTypes["default"].oneOf(['transparent', 'default']),
112
112
  cantEditOnPopupOpen: _propTypes["default"].bool,
113
- children: _propTypes["default"].object,
113
+ children: _propTypes["default"].node,
114
114
  className: _propTypes["default"].string,
115
115
  closePopupOnly: _propTypes["default"].func,
116
116
  dataId: _propTypes["default"].string,
@@ -18,7 +18,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
18
18
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
19
 
20
20
  var propTypes = _objectSpread(_objectSpread({}, _propTypes2.DropBoxPropTypes), {}, {
21
- children: _propTypes["default"].element,
21
+ children: _propTypes["default"].node,
22
22
  customClass: _propTypes["default"].object,
23
23
  isResponsivePadding: _propTypes["default"].bool,
24
24
  alignBox: _propTypes["default"].oneOf(['column', 'row'])
@@ -10,7 +10,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
12
12
  var propTypes = {
13
- children: _propTypes["default"].element,
13
+ children: _propTypes["default"].node,
14
14
  dataId: _propTypes["default"].string,
15
15
  palette: _propTypes["default"].oneOf(['default', 'danger', 'primary', 'secondary', 'info', 'dark']),
16
16
  size: _propTypes["default"].oneOf(['small', 'medium', 'large', 'xlarge']),