@zohodesk/dot 1.4.14 → 1.4.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +8 -0
  3. package/coverage/ExternalLink/ExternalLink.js.html +1 -1
  4. package/coverage/ExternalLink/ExternalLink.module.css.html +1 -1
  5. package/coverage/ExternalLink/index.html +1 -1
  6. package/coverage/ExternalLink/props/defaultProps.js.html +1 -1
  7. package/coverage/ExternalLink/props/index.html +1 -1
  8. package/coverage/ExternalLink/props/propTypes.js.html +1 -1
  9. package/coverage/IconButton/IconButton.js.html +1 -1
  10. package/coverage/IconButton/IconButton.module.css.html +1 -1
  11. package/coverage/IconButton/index.html +1 -1
  12. package/coverage/IconButton/props/defaultProps.js.html +1 -1
  13. package/coverage/IconButton/props/index.html +1 -1
  14. package/coverage/IconButton/props/propTypes.js.html +1 -1
  15. package/coverage/Image/Image.js.html +1 -1
  16. package/coverage/Image/Image.module.css.html +1 -1
  17. package/coverage/Image/index.html +1 -1
  18. package/coverage/Image/props/defaultProps.js.html +1 -1
  19. package/coverage/Image/props/index.html +1 -1
  20. package/coverage/Image/props/propTypes.js.html +1 -1
  21. package/coverage/avatar/AvatarWithTeam/AvatarWithTeam.js.html +1 -1
  22. package/coverage/avatar/AvatarWithTeam/AvatarWithTeam.module.css.html +1 -1
  23. package/coverage/avatar/AvatarWithTeam/index.html +1 -1
  24. package/coverage/avatar/AvatarWithTeam/props/defaultProps.js.html +1 -1
  25. package/coverage/avatar/AvatarWithTeam/props/index.html +1 -1
  26. package/coverage/avatar/AvatarWithTeam/props/propTypes.js.html +1 -1
  27. package/coverage/coverage-final.json +16 -16
  28. package/coverage/coverage-summary.json +16 -16
  29. package/coverage/index.html +1 -1
  30. package/es/Drawer/Drawer.js +5 -4
  31. package/es/ExternalLink/ExternalLink.js +5 -4
  32. package/es/FlipCard/FlipCard.js +12 -14
  33. package/es/IconButton/IconButton.js +5 -4
  34. package/es/Link/Link.js +10 -8
  35. package/es/Message/Message.js +5 -4
  36. package/es/ToastMessage/ToastMessage.js +4 -2
  37. package/es/actions/AutoClose.js +1 -2
  38. package/es/alert/AlertLookup/AlertLookup.js +12 -14
  39. package/es/avatar/AvatarClose/AvatarClose.js +7 -7
  40. package/es/avatar/AvatarCollision/AvatarCollision.js +7 -7
  41. package/es/avatar/AvatarIcon/AvatarIcon.js +5 -4
  42. package/es/avatar/AvatarStatus/AvatarStatus.js +8 -7
  43. package/es/avatar/AvatarThread/AvatarThread.js +7 -7
  44. package/es/avatar/AvatarUser/AvatarUser.js +9 -10
  45. package/es/avatar/AvatarWithTeam/AvatarWithTeam.js +14 -17
  46. package/es/dropdown/ToggleDropDown/ToggleDropDown.js +24 -28
  47. package/es/form/fields/CheckBoxField/CheckBoxField.js +13 -15
  48. package/es/form/fields/CurrencyField/CurrencyField.js +12 -14
  49. package/es/form/fields/DateField/DateField.js +14 -14
  50. package/es/form/fields/MultiSelectField/MultiSelectField.js +12 -13
  51. package/es/form/fields/PhoneField/PhoneField.js +7 -7
  52. package/es/form/fields/RadioField/RadioField.js +15 -18
  53. package/es/form/fields/SelectField/SelectField.js +14 -14
  54. package/es/form/fields/TagsMultiSelect/TagsMultiSelect.js +10 -13
  55. package/es/form/fields/TagsMultiSelectField/TagsMultiSelectField.js +11 -11
  56. package/es/form/fields/TextBoxField/TextBoxField.js +14 -14
  57. package/es/form/fields/TextEditorField/TextEditorField.js +10 -11
  58. package/es/form/fields/TextEditorWrapper/TextEditorWrapper.js +10 -11
  59. package/es/form/fields/TextareaField/TextareaField.js +13 -14
  60. package/es/layout/SubtabLayout/SubtabLayout.js +6 -4
  61. package/es/list/ListLayout/ListLayout.js +5 -4
  62. package/es/list/SecondaryText/AccountName.js +12 -12
  63. package/es/list/SecondaryText/ContactName.js +9 -8
  64. package/es/list/SecondaryText/Email.js +8 -8
  65. package/es/list/SecondaryText/PhoneNumber.js +8 -8
  66. package/es/list/SecondaryText/SecondaryText.js +5 -4
  67. package/es/list/SecondaryText/TicketId.js +7 -7
  68. package/es/list/Subject/Subject.js +7 -7
  69. package/es/list/Thread/Thread.js +1 -2
  70. package/es/list/status/StatusDropdown/StatusDropdown.js +50 -179
  71. package/es/list/status/StatusDropdown/StatusDropdown.module.css +1 -10
  72. package/es/list/status/StatusDropdown/props/defaultProps.js +2 -1
  73. package/es/list/status/StatusDropdown/props/propTypes.js +1 -1
  74. package/es/list/status/StatusListItem/StatusListItem.js +10 -6
  75. package/es/lookup/Lookup/Lookup.js +5 -4
  76. package/es/lookup/header/Search/Search.js +3 -5
  77. package/es/v1/Drawer/Drawer.js +5 -4
  78. package/es/v1/ExternalLink/ExternalLink.js +5 -4
  79. package/es/v1/FlipCard/FlipCard.js +12 -14
  80. package/es/v1/GlobalNotification/GlobalNotification.js +7 -6
  81. package/es/v1/IconButton/IconButton.js +5 -4
  82. package/es/v1/Link/Link.js +10 -8
  83. package/es/v1/Message/Message.js +5 -4
  84. package/es/v1/ToastMessage/ToastMessage.js +4 -2
  85. package/es/v1/actions/AutoClose.js +1 -2
  86. package/es/v1/alert/AlertLookup/AlertLookup.js +15 -15
  87. package/es/v1/avatar/AvatarClose/AvatarClose.js +7 -7
  88. package/es/v1/avatar/AvatarCollision/AvatarCollision.js +7 -7
  89. package/es/v1/avatar/AvatarIcon/AvatarIcon.js +5 -4
  90. package/es/v1/avatar/AvatarStatus/AvatarStatus.js +8 -7
  91. package/es/v1/avatar/AvatarThread/AvatarThread.js +7 -7
  92. package/es/v1/avatar/AvatarUser/AvatarUser.js +9 -10
  93. package/es/v1/avatar/AvatarWithTeam/AvatarWithTeam.js +14 -17
  94. package/es/v1/dropdown/ToggleDropDown/ToggleDropDown.js +24 -28
  95. package/es/v1/form/fields/CheckBoxField/CheckBoxField.js +13 -15
  96. package/es/v1/form/fields/CurrencyField/CurrencyField.js +12 -14
  97. package/es/v1/form/fields/DateField/DateField.js +14 -14
  98. package/es/v1/form/fields/MultiSelectField/MultiSelectField.js +12 -13
  99. package/es/v1/form/fields/PhoneField/PhoneField.js +7 -7
  100. package/es/v1/form/fields/RadioField/RadioField.js +16 -18
  101. package/es/v1/form/fields/SelectField/SelectField.js +14 -14
  102. package/es/v1/form/fields/TagsMultiSelect/TagsMultiSelect.js +10 -13
  103. package/es/v1/form/fields/TagsMultiSelectField/TagsMultiSelectField.js +11 -11
  104. package/es/v1/form/fields/TextBoxField/TextBoxField.js +14 -14
  105. package/es/v1/form/fields/TextEditorField/TextEditorField.js +10 -11
  106. package/es/v1/form/fields/TextEditorWrapper/TextEditorWrapper.js +10 -11
  107. package/es/v1/form/fields/TextareaField/TextareaField.js +13 -14
  108. package/es/v1/layout/SubtabLayout/SubtabLayout.js +6 -4
  109. package/es/v1/list/ListLayout/ListLayout.js +5 -4
  110. package/es/v1/list/SecondaryText/AccountName.js +12 -12
  111. package/es/v1/list/SecondaryText/ContactName.js +9 -8
  112. package/es/v1/list/SecondaryText/Email.js +8 -8
  113. package/es/v1/list/SecondaryText/PhoneNumber.js +8 -8
  114. package/es/v1/list/SecondaryText/SecondaryText.js +5 -4
  115. package/es/v1/list/SecondaryText/TicketId.js +7 -7
  116. package/es/v1/list/Subject/Subject.js +7 -7
  117. package/es/v1/list/Thread/Thread.js +1 -2
  118. package/es/v1/list/status/StatusDropdown/StatusDropdown.js +49 -134
  119. package/es/v1/list/status/StatusDropdown/props/defaultProps.js +2 -1
  120. package/es/v1/list/status/StatusDropdown/props/propTypes.js +1 -1
  121. package/es/v1/list/status/StatusListItem/StatusListItem.js +10 -6
  122. package/es/v1/lookup/Lookup/Lookup.js +5 -4
  123. package/es/v1/lookup/header/Search/Search.js +3 -5
  124. package/es/v1/notification/DesktopNotification/DesktopNotification.js +7 -6
  125. package/es/version2/GlobalNotification/GlobalNotification.js +7 -6
  126. package/es/version2/lookup/AlertLookup/AlertLookup.js +15 -15
  127. package/es/version2/notification/DesktopNotification/DesktopNotification.js +7 -6
  128. package/lib/list/Thread/Thread.js +1 -2
  129. package/lib/list/status/StatusDropdown/StatusDropdown.js +96 -231
  130. package/lib/list/status/StatusDropdown/StatusDropdown.module.css +1 -10
  131. package/lib/list/status/StatusDropdown/props/defaultProps.js +2 -1
  132. package/lib/list/status/StatusDropdown/props/propTypes.js +1 -1
  133. package/lib/list/status/StatusListItem/StatusListItem.js +6 -1
  134. package/lib/v1/list/Thread/Thread.js +1 -2
  135. package/lib/v1/list/status/StatusDropdown/StatusDropdown.js +41 -132
  136. package/lib/v1/list/status/StatusDropdown/props/defaultProps.js +2 -1
  137. package/lib/v1/list/status/StatusDropdown/props/propTypes.js +1 -1
  138. package/lib/v1/list/status/StatusListItem/StatusListItem.js +6 -1
  139. package/package.json +8 -8
  140. package/result.json +1 -1
@@ -27,10 +27,6 @@ var _Loader = _interopRequireDefault(require("@zohodesk/svg/lib/Loader/Loader"))
27
27
 
28
28
  var _EmptySearch = _interopRequireDefault(require("@zohodesk/svg/lib/emptystate/version3/EmptySearch"));
29
29
 
30
- var _Common = require("@zohodesk/components/lib/utils/Common.js");
31
-
32
- var _TextBox = _interopRequireDefault(require("@zohodesk/components/lib/TextBox/TextBox"));
33
-
34
30
  var _CommonEmptyState = _interopRequireDefault(require("../../../emptystate/CommonEmptyState/CommonEmptyState"));
35
31
 
36
32
  var _StatusListItem = _interopRequireDefault(require("../StatusListItem/StatusListItem"));
@@ -82,20 +78,13 @@ var StatusDropdown = /*#__PURE__*/function (_React$Component) {
82
78
  _this = _super.call(this, props);
83
79
  _this.state = {
84
80
  searchString: '',
85
- selectedIndex: 0,
86
81
  options: props.options
87
82
  };
88
83
  _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));
89
- _this.handleKeyDown = _this.handleKeyDown.bind(_assertThisInitialized(_this));
90
84
  _this.onSelect = _this.onSelect.bind(_assertThisInitialized(_this));
91
85
  _this.handleTogglePopup = _this.handleTogglePopup.bind(_assertThisInitialized(_this));
92
86
  _this.onSearchClear = _this.onSearchClear.bind(_assertThisInitialized(_this));
93
87
  _this.searchList = _this.searchList.bind(_assertThisInitialized(_this));
94
- _this.scrollContentRef = _this.scrollContentRef.bind(_assertThisInitialized(_this));
95
- _this.handleMouseEnter = _this.handleMouseEnter.bind(_assertThisInitialized(_this));
96
- _this.searchInputRef = _this.searchInputRef.bind(_assertThisInitialized(_this));
97
- _this.itemRef = _this.itemRef.bind(_assertThisInitialized(_this));
98
- _this.inputRef = _this.inputRef.bind(_assertThisInitialized(_this));
99
88
  _this.handleScroll = _this.handleScroll.bind(_assertThisInitialized(_this));
100
89
  _this.emptySearchSVG = _this.emptySearchSVG.bind(_assertThisInitialized(_this));
101
90
  _this.getAriaId = (0, _IdProvider.getUniqueId)(_assertThisInitialized(_this));
@@ -109,21 +98,6 @@ var StatusDropdown = /*#__PURE__*/function (_React$Component) {
109
98
  size: "small"
110
99
  });
111
100
  }
112
- }, {
113
- key: "inputRef",
114
- value: function inputRef(el) {
115
- this.hiddenInput = el;
116
- }
117
- }, {
118
- key: "itemRef",
119
- value: function itemRef(ele, index, id) {
120
- this["suggestion_".concat(id)] = ele;
121
- }
122
- }, {
123
- key: "searchInputRef",
124
- value: function searchInputRef(el) {
125
- this.searchInput = el;
126
- }
127
101
  }, {
128
102
  key: "handleTogglePopup",
129
103
  value: function handleTogglePopup(e) {
@@ -137,15 +111,6 @@ var StatusDropdown = /*#__PURE__*/function (_React$Component) {
137
111
  onTogglePopup && onTogglePopup(isPopupOpen);
138
112
  togglePopup(e, boxPosition);
139
113
  }
140
- }, {
141
- key: "scrollContentRef",
142
- value: function scrollContentRef(el) {
143
- var isPopupOpen = this.props.isPopupOpen;
144
-
145
- if (isPopupOpen) {
146
- this.optionsContainer = el;
147
- }
148
- }
149
114
  }, {
150
115
  key: "componentWillReceiveProps",
151
116
  value: function componentWillReceiveProps(nextProps) {
@@ -170,110 +135,16 @@ var StatusDropdown = /*#__PURE__*/function (_React$Component) {
170
135
  }, {
171
136
  key: "componentDidUpdate",
172
137
  value: function componentDidUpdate(prevProps) {
173
- var _this2 = this;
174
-
175
- var _this$props3 = this.props,
176
- isPopupOpen = _this$props3.isPopupOpen,
177
- isSearch = _this$props3.isSearch,
178
- idName = _this$props3.idName;
179
- var _this$state = this.state,
180
- selectedIndex = _this$state.selectedIndex,
181
- options = _this$state.options;
182
-
183
- if (prevProps.isPopupOpen != isPopupOpen) {
184
- setTimeout(function () {
185
- isPopupOpen && isSearch ? _this2.searchInput && _this2.searchInput.focus() : _this2.hiddenInput && _this2.hiddenInput.focus();
186
- }, 10);
187
- }
188
-
189
- var mergeOptions = options;
190
- var option = mergeOptions[selectedIndex];
191
- var id = option && option[idName] || {};
192
- var selSuggestion = this["suggestion_".concat(id)];
193
-
194
- if (isPopupOpen) {
195
- this.optionsContainer && (0, _Common.scrollTo)(this.optionsContainer, selSuggestion);
196
- }
197
-
198
138
  if (!prevProps.isPopupOpen && this.props.isPopupOpen) {
199
139
  this.onSearchClear();
200
140
  }
201
141
  }
202
- }, {
203
- key: "handleKeyDown",
204
- value: function handleKeyDown(e) {
205
- var keyCode = e.keyCode;
206
- var _this$state2 = this.state,
207
- selectedIndex = _this$state2.selectedIndex,
208
- options = _this$state2.options;
209
- var totalIndex = options.length;
210
- var _this$props4 = this.props,
211
- togglePopup = _this$props4.togglePopup,
212
- onClick = _this$props4.onClick,
213
- boxPosition = _this$props4.boxPosition,
214
- isPopupReady = _this$props4.isPopupReady,
215
- isNextOptions = _this$props4.isNextOptions,
216
- getNextOptions = _this$props4.getNextOptions,
217
- onTogglePopup = _this$props4.onTogglePopup,
218
- isPopupOpen = _this$props4.isPopupOpen;
219
-
220
- if (isPopupReady && (keyCode === 38 || keyCode === 40) && e.preventDefault) {
221
- e.preventDefault(); //prevent body scroll
222
- }
223
-
224
- if (isPopupReady) {
225
- switch (keyCode) {
226
- case 40:
227
- if (selectedIndex === totalIndex - 1) {
228
- this.setState({
229
- selectedIndex: 0
230
- });
231
- } else {
232
- if (selectedIndex === totalIndex - 3) {
233
- isNextOptions && getNextOptions && getNextOptions();
234
- }
235
-
236
- this.setState({
237
- selectedIndex: selectedIndex + 1
238
- });
239
- }
240
-
241
- break;
242
-
243
- case 38:
244
- if (selectedIndex === 0) {
245
- this.setState({
246
- selectedIndex: totalIndex - 1
247
- });
248
- } else {
249
- this.setState({
250
- selectedIndex: selectedIndex - 1
251
- });
252
- }
253
-
254
- break;
255
-
256
- case 13:
257
- onClick && onClick(options[selectedIndex].name, e);
258
- onTogglePopup && onTogglePopup(isPopupOpen);
259
- togglePopup(e, boxPosition);
260
- break;
261
-
262
- default:
263
- break;
264
- }
265
- } else {
266
- if (keyCode === 13 || keyCode === 40) {
267
- togglePopup(e, boxPosition);
268
- }
269
- }
270
- }
271
142
  }, {
272
143
  key: "searchList",
273
144
  value: function searchList(value) {
274
- var _this$props5 = this.props,
275
- options = _this$props5.options,
276
- keyName = _this$props5.keyName;
145
+ var _this$props3 = this.props,
146
+ options = _this$props3.options,
147
+ keyName = _this$props3.keyName;
277
148
  var foptions = options.filter(function (dept) {
278
149
  return dept[keyName].toLowerCase().indexOf(value.toLowerCase()) != -1;
279
150
  });
@@ -285,7 +156,6 @@ var StatusDropdown = /*#__PURE__*/function (_React$Component) {
285
156
  var foptions = this.searchList(value);
286
157
  this.setState({
287
158
  searchString: value,
288
- selectedIndex: -1,
289
159
  options: foptions
290
160
  });
291
161
  }
@@ -298,22 +168,13 @@ var StatusDropdown = /*#__PURE__*/function (_React$Component) {
298
168
  options: foptions
299
169
  });
300
170
  }
301
- }, {
302
- key: "handleMouseEnter",
303
- value: function handleMouseEnter(id, value, index, e) {
304
- this.setState({
305
- selectedIndex: index
306
- });
307
- }
308
171
  }, {
309
172
  key: "handleScroll",
310
173
  value: function handleScroll(e) {
311
- var _this$props6 = this.props,
312
- isNextOptions = _this$props6.isNextOptions,
313
- getNextOptions = _this$props6.getNextOptions;
174
+ var getNextOptions = this.props.getNextOptions;
314
175
 
315
176
  if (e.target.scrollTop + e.target.offsetHeight > e.target.scrollHeight - 1) {
316
- isNextOptions && getNextOptions && getNextOptions(e);
177
+ getNextOptions && getNextOptions(e);
317
178
  }
318
179
  }
319
180
  }, {
@@ -329,58 +190,58 @@ var StatusDropdown = /*#__PURE__*/function (_React$Component) {
329
190
  }, {
330
191
  key: "render",
331
192
  value: function render() {
332
- var _this3 = this;
333
-
334
- var _this$state3 = this.state,
335
- options = _this$state3.options,
336
- selectedIndex = _this$state3.selectedIndex;
337
- var _this$props7 = this.props,
338
- value = _this$props7.value,
339
- removeClose = _this$props7.removeClose,
340
- boxSize = _this$props7.boxSize,
341
- keyName = _this$props7.keyName,
342
- idName = _this$props7.idName,
343
- title = _this$props7.title,
344
- isSearch = _this$props7.isSearch,
345
- isArrow = _this$props7.isArrow,
346
- placeHolderText = _this$props7.placeHolderText,
347
- className = _this$props7.className,
348
- right = _this$props7.right,
349
- left = _this$props7.left,
350
- top = _this$props7.top,
351
- bottom = _this$props7.bottom,
352
- isOpen = _this$props7.isPopupOpen,
353
- isPopupReady = _this$props7.isPopupReady,
354
- position = _this$props7.position,
355
- getTargetRef = _this$props7.getTargetRef,
356
- getContainerRef = _this$props7.getContainerRef,
357
- dataId = _this$props7.dataId,
358
- searchBoxSize = _this$props7.searchBoxSize,
359
- searchEmptyHint = _this$props7.searchEmptyHint,
360
- searchErrorText = _this$props7.searchErrorText,
361
- activeStyle = _this$props7.activeStyle,
362
- _this$props7$showOnHo = _this$props7.showOnHover,
363
- showOnHover = _this$props7$showOnHo === void 0 ? false : _this$props7$showOnHo,
364
- isDisabled = _this$props7.isDisabled,
365
- showIconOnHover = _this$props7.showIconOnHover,
366
- isReadOnly = _this$props7.isReadOnly,
367
- hoverStyle = _this$props7.hoverStyle,
368
- isEditable = _this$props7.isEditable,
369
- needTick = _this$props7.needTick,
370
- dataTitle = _this$props7.dataTitle,
371
- isDataLoaded = _this$props7.isDataLoaded,
372
- children = _this$props7.children,
373
- targetAlign = _this$props7.targetAlign,
374
- needResponsive = _this$props7.needResponsive,
375
- arrowIconPosition = _this$props7.arrowIconPosition,
376
- statusColor = _this$props7.statusColor,
377
- _this$props7$needExte = _this$props7.needExternalPopupState,
378
- needExternalPopupState = _this$props7$needExte === void 0 ? false : _this$props7$needExte,
379
- _this$props7$isPopupA = _this$props7.isPopupActive,
380
- isPopupActive = _this$props7$isPopupA === void 0 ? false : _this$props7$isPopupA,
381
- needMultiLineText = _this$props7.needMultiLineText,
382
- _this$props7$a11y = _this$props7.a11y,
383
- a11y = _this$props7$a11y === void 0 ? {} : _this$props7$a11y;
193
+ var _this2 = this;
194
+
195
+ var options = this.state.options;
196
+ var _this$props4 = this.props,
197
+ value = _this$props4.value,
198
+ removeClose = _this$props4.removeClose,
199
+ boxSize = _this$props4.boxSize,
200
+ keyName = _this$props4.keyName,
201
+ idName = _this$props4.idName,
202
+ title = _this$props4.title,
203
+ isSearch = _this$props4.isSearch,
204
+ isArrow = _this$props4.isArrow,
205
+ placeHolderText = _this$props4.placeHolderText,
206
+ className = _this$props4.className,
207
+ right = _this$props4.right,
208
+ left = _this$props4.left,
209
+ top = _this$props4.top,
210
+ bottom = _this$props4.bottom,
211
+ isOpen = _this$props4.isPopupOpen,
212
+ isPopupReady = _this$props4.isPopupReady,
213
+ position = _this$props4.position,
214
+ getTargetRef = _this$props4.getTargetRef,
215
+ getContainerRef = _this$props4.getContainerRef,
216
+ dataId = _this$props4.dataId,
217
+ searchBoxSize = _this$props4.searchBoxSize,
218
+ searchEmptyHint = _this$props4.searchEmptyHint,
219
+ searchErrorText = _this$props4.searchErrorText,
220
+ activeStyle = _this$props4.activeStyle,
221
+ _this$props4$showOnHo = _this$props4.showOnHover,
222
+ showOnHover = _this$props4$showOnHo === void 0 ? false : _this$props4$showOnHo,
223
+ isDisabled = _this$props4.isDisabled,
224
+ showIconOnHover = _this$props4.showIconOnHover,
225
+ isReadOnly = _this$props4.isReadOnly,
226
+ hoverStyle = _this$props4.hoverStyle,
227
+ isEditable = _this$props4.isEditable,
228
+ needTick = _this$props4.needTick,
229
+ dataTitle = _this$props4.dataTitle,
230
+ isDataLoaded = _this$props4.isDataLoaded,
231
+ children = _this$props4.children,
232
+ targetAlign = _this$props4.targetAlign,
233
+ needResponsive = _this$props4.needResponsive,
234
+ arrowIconPosition = _this$props4.arrowIconPosition,
235
+ statusColor = _this$props4.statusColor,
236
+ _this$props4$needExte = _this$props4.needExternalPopupState,
237
+ needExternalPopupState = _this$props4$needExte === void 0 ? false : _this$props4$needExte,
238
+ _this$props4$isPopupA = _this$props4.isPopupActive,
239
+ isPopupActive = _this$props4$isPopupA === void 0 ? false : _this$props4$isPopupA,
240
+ needMultiLineText = _this$props4.needMultiLineText,
241
+ isFetchingOptions = _this$props4.isFetchingOptions,
242
+ getNextOptions = _this$props4.getNextOptions,
243
+ _this$props4$a11y = _this$props4.a11y,
244
+ a11y = _this$props4$a11y === void 0 ? {} : _this$props4$a11y;
384
245
  var _a11y$tabIndex = a11y.tabIndex,
385
246
  tabIndex = _a11y$tabIndex === void 0 ? 0 : _a11y$tabIndex,
386
247
  ariaLabelledby = a11y.ariaLabelledby,
@@ -397,12 +258,11 @@ var StatusDropdown = /*#__PURE__*/function (_React$Component) {
397
258
  tagName: "button",
398
259
  alignBox: "row",
399
260
  className: "".concat(_StatusDropdownModule["default"].container, " ").concat(containerClass, " ").concat(_semanticButtonModule["default"].buttonReset),
400
- onMouseDown: !showOnHover && !isDisabled && !isReadOnly && isEditable ? this.handleTogglePopup : null,
261
+ onClick: !showOnHover && !isDisabled && !isReadOnly && isEditable ? this.handleTogglePopup : null,
401
262
  eleRef: getTargetRef,
402
263
  align: targetAlign,
403
264
  isCover: false,
404
265
  dataId: dataId,
405
- onClick: removeClose,
406
266
  disabled: isDisabled || isReadOnly ? true : false,
407
267
  "aria-haspopup": isSearch ? 'listbox' : 'menu',
408
268
  "aria-expanded": isPopupReady && isEditable ? true : false,
@@ -410,15 +270,7 @@ var StatusDropdown = /*#__PURE__*/function (_React$Component) {
410
270
  "aria-labelledby": ariaLabelledby,
411
271
  "aria-label": ariaLabel,
412
272
  "aria-disabled": isDisabled || isReadOnly
413
- }, isEditable ? /*#__PURE__*/_react["default"].createElement("div", {
414
- className: _StatusDropdownModule["default"].hiddenInput
415
- }, /*#__PURE__*/_react["default"].createElement(_TextBox["default"], {
416
- type: "text",
417
- inputRef: this.inputRef,
418
- onKeyDown: this.handleKeyDown,
419
- needAppearance: false,
420
- placeHolder: placeHolderText
421
- })) : null, children ? children : /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
273
+ }, children ? children : /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
422
274
  className: "".concat(_StatusDropdownModule["default"].value, " toggleDropText"),
423
275
  shrink: true,
424
276
  tagName: "span",
@@ -450,17 +302,29 @@ var StatusDropdown = /*#__PURE__*/function (_React$Component) {
450
302
  customDropBoxWrap: _StatusDropdownModule["default"].dropBoxContainer
451
303
  },
452
304
  needResponsive: needResponsive,
453
- isResponsivePadding: true
305
+ isResponsivePadding: true,
306
+ needFocusScope: true,
307
+ onClose: _this2.handleTogglePopup,
308
+ customProps: {
309
+ focusScopeProps: {
310
+ loadNextOptions: getNextOptions,
311
+ searchValue: searchString,
312
+ isFetchingOptions: isFetchingOptions
313
+ }
314
+ }
454
315
  }, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isSearch ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
455
316
  className: _StatusDropdownModule["default"].search
456
317
  }, /*#__PURE__*/_react["default"].createElement(_TextBoxIcon["default"], {
457
318
  placeHolder: placeHolderText,
458
- onChange: _this3.handleChange,
319
+ onChange: _this2.handleChange,
459
320
  value: searchString,
460
- onClear: _this3.onSearchClear,
321
+ onClear: _this2.onSearchClear,
461
322
  size: searchBoxSize,
462
- inputRef: _this3.searchInputRef,
463
- onKeyDown: _this3.handleKeyDown,
323
+ customProps: {
324
+ TextBoxProps: {
325
+ 'data-a11y-autofocus': true
326
+ }
327
+ },
464
328
  a11y: {
465
329
  ariaHaspopup: isSearch ? 'listbox' : 'menu',
466
330
  ariaExpanded: isPopupReady,
@@ -483,41 +347,42 @@ var StatusDropdown = /*#__PURE__*/function (_React$Component) {
483
347
  dataId: "".concat(dataId, "_list"),
484
348
  preventParentScroll: "vertical",
485
349
  className: "".concat(tabletMode ? _StatusDropdownModule["default"].responsivemaxHgt : _StatusDropdownModule["default"].maxHgt),
486
- eleRef: _this3.scrollContentRef,
487
- onScroll: _this3.handleScroll,
350
+ onScroll: _this2.handleScroll,
488
351
  role: isSearch ? 'listbox' : 'menu',
489
- "aria-labelledby": ariaTitleId,
490
- tabindex: "-1"
352
+ tabindex: "-1",
353
+ isScrollAttribute: true
491
354
  }, options.length != 0 && isDataLoaded ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, options.map(function (item, i) {
492
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
493
- key: i
494
- }, /*#__PURE__*/_react["default"].createElement(_StatusListItem["default"], {
355
+ var listItemText = item[keyName];
356
+ var isActive = value === listItemText;
357
+ return /*#__PURE__*/_react["default"].createElement(_StatusListItem["default"], {
358
+ key: i,
495
359
  dataId: "dataid_".concat(i),
496
- value: item[keyName],
360
+ value: listItemText,
497
361
  id: item[idName],
498
- active: value === item[keyName],
499
- onClick: _this3.onSelect.bind(_this3, item),
362
+ active: isActive,
363
+ onClick: _this2.onSelect.bind(_this2, item),
500
364
  index: i,
501
- highlight: selectedIndex === i,
502
365
  needTick: needTick,
503
366
  needBorder: false,
504
- onMouseEnter: _this3.handleMouseEnter,
505
- getRef: _this3.itemRef,
506
367
  bulletColor: item[statusColor],
507
- title: item[keyName],
368
+ title: listItemText,
508
369
  needMultiLineText: needMultiLineText,
370
+ autoHover: true,
509
371
  a11y: {
510
372
  role: isSearch ? 'option' : 'menuitem',
511
- ariaSelected: value === item[keyName],
512
- 'data-a11y-list-active': selectedIndex === i
373
+ ariaSelected: isActive,
374
+ ariaLabel: listItemText
513
375
  }
514
- }));
515
- })) : isDataLoaded ? /*#__PURE__*/_react["default"].createElement(_CommonEmptyState["default"], {
376
+ });
377
+ }), isFetchingOptions && /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
378
+ isCover: false,
379
+ align: "both"
380
+ }, /*#__PURE__*/_react["default"].createElement(_Loader["default"], null))) : isDataLoaded ? /*#__PURE__*/_react["default"].createElement(_CommonEmptyState["default"], {
516
381
  className: _StatusDropdownModule["default"].svgWrapper,
517
382
  title: searchErrorText || 'No results',
518
383
  description: searchEmptyHint,
519
384
  size: "small",
520
- getEmptyState: _this3.emptySearchSVG
385
+ getEmptyState: _this2.emptySearchSVG
521
386
  }) : /*#__PURE__*/_react["default"].createElement("div", {
522
387
  className: _StatusDropdownModule["default"].loader
523
388
  }, /*#__PURE__*/_react["default"].createElement(_Loader["default"], null)))));
@@ -80,13 +80,4 @@
80
80
  height: var(--zd_size1) ;
81
81
  border-bottom: 1px solid var(--zdt_statusdropdown_line_border);
82
82
  margin: var(--zd_size9) 0 var(--zd_size10) ;
83
- }
84
- .hiddenInput {
85
- width: 0 ;
86
- height: 0 ;
87
- opacity: 0;
88
- }
89
- .hiddenInput > input {
90
- width: 100% ;
91
- padding: 0 ;
92
- }
83
+ }
@@ -21,6 +21,7 @@ var defaultProps = {
21
21
  boxSize: 'medium',
22
22
  needExternalPopupState: false,
23
23
  statusColor: 'statusColor',
24
- needMultiLineText: false
24
+ needMultiLineText: false,
25
+ isFetchingOptions: false
25
26
  };
26
27
  exports.defaultProps = defaultProps;
@@ -30,5 +30,5 @@ var propTypes = (_propTypes = {
30
30
  idName: _propTypes2["default"].string,
31
31
  isArrow: _propTypes2["default"].bool,
32
32
  isDataLoaded: _propTypes2["default"].bool
33
- }, _defineProperty(_propTypes, "isDataLoaded", _propTypes2["default"].bool), _defineProperty(_propTypes, "isDisabled", _propTypes2["default"].bool), _defineProperty(_propTypes, "isEditable", _propTypes2["default"].bool), _defineProperty(_propTypes, "isNextOptions", _propTypes2["default"].bool), _defineProperty(_propTypes, "isPopupActive", _propTypes2["default"].bool), _defineProperty(_propTypes, "isPopupOpen", _propTypes2["default"].bool), _defineProperty(_propTypes, "isPopupReady", _propTypes2["default"].bool), _defineProperty(_propTypes, "isReadOnly", _propTypes2["default"].bool), _defineProperty(_propTypes, "isSearch", _propTypes2["default"].bool), _defineProperty(_propTypes, "keyName", _propTypes2["default"].string), _defineProperty(_propTypes, "left", _propTypes2["default"].number), _defineProperty(_propTypes, "needExternalPopupState", _propTypes2["default"].bool), _defineProperty(_propTypes, "needResponsive", _propTypes2["default"].bool), _defineProperty(_propTypes, "needTick", _propTypes2["default"].bool), _defineProperty(_propTypes, "onClick", _propTypes2["default"].func), _defineProperty(_propTypes, "onTogglePopup", _propTypes2["default"].func), _defineProperty(_propTypes, "options", _propTypes2["default"].array.isRequired), _defineProperty(_propTypes, "placeHolderText", _propTypes2["default"].string), _defineProperty(_propTypes, "position", _propTypes2["default"].string), _defineProperty(_propTypes, "removeClose", _propTypes2["default"].func), _defineProperty(_propTypes, "right", _propTypes2["default"].number), _defineProperty(_propTypes, "searchBoxSize", _propTypes2["default"].oneOf(['small', 'medium', 'xmedium'])), _defineProperty(_propTypes, "searchEmptyHint", _propTypes2["default"].string), _defineProperty(_propTypes, "searchErrorText", _propTypes2["default"].string), _defineProperty(_propTypes, "showIconOnHover", _propTypes2["default"].bool), _defineProperty(_propTypes, "showOnHover", _propTypes2["default"].bool), _defineProperty(_propTypes, "statusColor", _propTypes2["default"].string), _defineProperty(_propTypes, "targetAlign", _propTypes2["default"].oneOf(['vertical', 'horizontal', 'both', 'top', 'right', 'bottom', 'left', 'between', 'around'])), _defineProperty(_propTypes, "title", _propTypes2["default"].string), _defineProperty(_propTypes, "togglePopup", _propTypes2["default"].func), _defineProperty(_propTypes, "value", _propTypes2["default"].node), _defineProperty(_propTypes, "needMultiLineText", _propTypes2["default"].bool), _defineProperty(_propTypes, "onSelectLabel", _propTypes2["default"].func), _defineProperty(_propTypes, "top", _propTypes2["default"].number), _defineProperty(_propTypes, "a11y", _propTypes2["default"].object), _propTypes);
33
+ }, _defineProperty(_propTypes, "isDataLoaded", _propTypes2["default"].bool), _defineProperty(_propTypes, "isDisabled", _propTypes2["default"].bool), _defineProperty(_propTypes, "isEditable", _propTypes2["default"].bool), _defineProperty(_propTypes, "isFetchingOptions", _propTypes2["default"].bool), _defineProperty(_propTypes, "isPopupActive", _propTypes2["default"].bool), _defineProperty(_propTypes, "isPopupOpen", _propTypes2["default"].bool), _defineProperty(_propTypes, "isPopupReady", _propTypes2["default"].bool), _defineProperty(_propTypes, "isReadOnly", _propTypes2["default"].bool), _defineProperty(_propTypes, "isSearch", _propTypes2["default"].bool), _defineProperty(_propTypes, "keyName", _propTypes2["default"].string), _defineProperty(_propTypes, "left", _propTypes2["default"].number), _defineProperty(_propTypes, "needExternalPopupState", _propTypes2["default"].bool), _defineProperty(_propTypes, "needResponsive", _propTypes2["default"].bool), _defineProperty(_propTypes, "needTick", _propTypes2["default"].bool), _defineProperty(_propTypes, "onClick", _propTypes2["default"].func), _defineProperty(_propTypes, "onTogglePopup", _propTypes2["default"].func), _defineProperty(_propTypes, "options", _propTypes2["default"].array.isRequired), _defineProperty(_propTypes, "placeHolderText", _propTypes2["default"].string), _defineProperty(_propTypes, "position", _propTypes2["default"].string), _defineProperty(_propTypes, "removeClose", _propTypes2["default"].func), _defineProperty(_propTypes, "right", _propTypes2["default"].number), _defineProperty(_propTypes, "searchBoxSize", _propTypes2["default"].oneOf(['small', 'medium', 'xmedium'])), _defineProperty(_propTypes, "searchEmptyHint", _propTypes2["default"].string), _defineProperty(_propTypes, "searchErrorText", _propTypes2["default"].string), _defineProperty(_propTypes, "showIconOnHover", _propTypes2["default"].bool), _defineProperty(_propTypes, "showOnHover", _propTypes2["default"].bool), _defineProperty(_propTypes, "statusColor", _propTypes2["default"].string), _defineProperty(_propTypes, "targetAlign", _propTypes2["default"].oneOf(['vertical', 'horizontal', 'both', 'top', 'right', 'bottom', 'left', 'between', 'around'])), _defineProperty(_propTypes, "title", _propTypes2["default"].string), _defineProperty(_propTypes, "togglePopup", _propTypes2["default"].func), _defineProperty(_propTypes, "value", _propTypes2["default"].node), _defineProperty(_propTypes, "needMultiLineText", _propTypes2["default"].bool), _defineProperty(_propTypes, "onSelectLabel", _propTypes2["default"].func), _defineProperty(_propTypes, "top", _propTypes2["default"].number), _defineProperty(_propTypes, "a11y", _propTypes2["default"].object), _propTypes);
34
34
  exports.propTypes = propTypes;
@@ -119,7 +119,10 @@ var StatusListItem = /*#__PURE__*/function (_React$Component) {
119
119
  var role = a11y.role,
120
120
  ariaSelected = a11y.ariaSelected,
121
121
  _a11y$ariaHidden = a11y.ariaHidden,
122
- ariaHidden = _a11y$ariaHidden === void 0 ? true : _a11y$ariaHidden;
122
+ ariaHidden = _a11y$ariaHidden === void 0 ? true : _a11y$ariaHidden,
123
+ ariaLabel = a11y.ariaLabel,
124
+ _a11y$insetFocus = a11y.insetFocus,
125
+ insetFocus = _a11y$insetFocus === void 0 ? true : _a11y$insetFocus;
123
126
 
124
127
  if (isLink) {
125
128
  options.href = href;
@@ -129,6 +132,8 @@ var StatusListItem = /*#__PURE__*/function (_React$Component) {
129
132
  return /*#__PURE__*/_react["default"].createElement(_Layout.Container, _extends({
130
133
  role: role,
131
134
  "aria-selected": ariaSelected,
135
+ "aria-label": ariaLabel,
136
+ "data-a11y-inset-focus": insetFocus,
132
137
  isCover: false,
133
138
  align: "baseline",
134
139
  alignBox: "row",
@@ -20,12 +20,11 @@ var _ThreadModule = _interopRequireDefault(require("../../../list/Thread/Thread.
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
21
 
22
22
  var Thread = function Thread(props) {
23
- var threadCount = props.count,
23
+ var count = props.count,
24
24
  className = props.className,
25
25
  iconTitle = props.iconTitle,
26
26
  dataId = props.dataId,
27
27
  align = props.align;
28
- var count = threadCount === '0' ? '1' : threadCount;
29
28
  return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
30
29
  customClass: "".concat(_ThreadModule["default"].container, " ").concat(_ThreadModule["default"]["align_".concat(align)], " ").concat(className),
31
30
  title: iconTitle,