@zohodesk/dot 1.4.13 → 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 (113) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +14 -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 +2 -5
  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/ActionButton/ActionButton.module.css +51 -4
  31. package/es/AlphabeticList/AlphabeticList.module.css +0 -2
  32. package/es/AttachmentViewer/AttachmentViewer.module.css +0 -2
  33. package/es/ChannelIcon/ChannelIcon.module.css +9 -4
  34. package/es/FormAction/FormAction.module.css +18 -1
  35. package/es/IconButton/IconButton.module.css +0 -1
  36. package/es/TagWithIcon/TagWithIcon.module.css +0 -3
  37. package/es/avatar/AvatarIcon/AvatarIcon.module.css +0 -6
  38. package/es/emptystate/CommonEmptyState/CommonEmptyState.module.css +0 -4
  39. package/es/form/fields/ValidationMessage/ValidationMessage.module.css +0 -1
  40. package/es/layout/SubtabLayout/SubtabLayout.module.css +0 -2
  41. package/es/list/Comment/Comment.module.css +0 -1
  42. package/es/list/Dot/Dot.module.css +0 -1
  43. package/es/list/ListLayout/ListLayout.module.css +0 -6
  44. package/es/list/Subject/Subject.module.css +8 -1
  45. package/es/list/Thread/Thread.js +1 -2
  46. package/es/list/Thread/Thread.module.css +0 -1
  47. package/es/list/status/StatusDropdown/StatusDropdown.js +50 -179
  48. package/es/list/status/StatusDropdown/StatusDropdown.module.css +1 -10
  49. package/es/list/status/StatusDropdown/props/defaultProps.js +2 -1
  50. package/es/list/status/StatusDropdown/props/propTypes.js +1 -1
  51. package/es/list/status/StatusListItem/StatusListItem.js +5 -1
  52. package/es/lookup/Lookup/Lookup.js +3 -2
  53. package/es/lookup/Lookup/Lookup.module.css +4 -1
  54. package/es/lookup/Lookup/props/propTypes.js +3 -2
  55. package/es/lookup/header/TicketHeader/TicketHeader.js +88 -73
  56. package/es/lookup/header/TicketHeader/props/defaultProps.js +7 -1
  57. package/es/lookup/header/TicketHeader/props/propTypes.js +2 -1
  58. package/es/v1/list/Thread/Thread.js +1 -2
  59. package/es/v1/list/status/StatusDropdown/StatusDropdown.js +49 -134
  60. package/es/v1/list/status/StatusDropdown/props/defaultProps.js +2 -1
  61. package/es/v1/list/status/StatusDropdown/props/propTypes.js +1 -1
  62. package/es/v1/list/status/StatusListItem/StatusListItem.js +5 -1
  63. package/es/v1/lookup/Lookup/Lookup.js +3 -2
  64. package/es/v1/lookup/Lookup/props/propTypes.js +3 -2
  65. package/es/v1/lookup/header/TicketHeader/TicketHeader.js +30 -12
  66. package/es/v1/lookup/header/TicketHeader/props/defaultProps.js +7 -1
  67. package/es/v1/lookup/header/TicketHeader/props/propTypes.js +2 -1
  68. package/es/version2/GlobalNotification/GlobalNotification.module.css +0 -4
  69. package/es/version2/lookup/AlertHeader/css/AlertHeaderNew.module.css +0 -1
  70. package/es/version2/notification/DesktopNotificationHeader/DesktopNotificationHeader.module.css +0 -2
  71. package/lib/ActionButton/ActionButton.module.css +51 -4
  72. package/lib/AlphabeticList/AlphabeticList.module.css +0 -2
  73. package/lib/AttachmentViewer/AttachmentViewer.module.css +0 -2
  74. package/lib/ChannelIcon/ChannelIcon.module.css +9 -4
  75. package/lib/FormAction/FormAction.module.css +18 -1
  76. package/lib/IconButton/IconButton.module.css +0 -1
  77. package/lib/TagWithIcon/TagWithIcon.module.css +0 -3
  78. package/lib/avatar/AvatarIcon/AvatarIcon.module.css +0 -6
  79. package/lib/emptystate/CommonEmptyState/CommonEmptyState.module.css +0 -4
  80. package/lib/form/fields/ValidationMessage/ValidationMessage.module.css +0 -1
  81. package/lib/layout/SubtabLayout/SubtabLayout.module.css +0 -2
  82. package/lib/list/Comment/Comment.module.css +0 -1
  83. package/lib/list/Dot/Dot.module.css +0 -1
  84. package/lib/list/ListLayout/ListLayout.module.css +0 -6
  85. package/lib/list/Subject/Subject.module.css +8 -1
  86. package/lib/list/Thread/Thread.js +1 -2
  87. package/lib/list/Thread/Thread.module.css +0 -1
  88. package/lib/list/status/StatusDropdown/StatusDropdown.js +96 -231
  89. package/lib/list/status/StatusDropdown/StatusDropdown.module.css +1 -10
  90. package/lib/list/status/StatusDropdown/props/defaultProps.js +2 -1
  91. package/lib/list/status/StatusDropdown/props/propTypes.js +1 -1
  92. package/lib/list/status/StatusListItem/StatusListItem.js +6 -1
  93. package/lib/lookup/Lookup/Lookup.js +3 -2
  94. package/lib/lookup/Lookup/Lookup.module.css +4 -1
  95. package/lib/lookup/Lookup/props/propTypes.js +3 -2
  96. package/lib/lookup/header/TicketHeader/TicketHeader.js +93 -106
  97. package/lib/lookup/header/TicketHeader/props/defaultProps.js +7 -1
  98. package/lib/lookup/header/TicketHeader/props/propTypes.js +2 -1
  99. package/lib/v1/list/Thread/Thread.js +1 -2
  100. package/lib/v1/list/status/StatusDropdown/StatusDropdown.js +41 -132
  101. package/lib/v1/list/status/StatusDropdown/props/defaultProps.js +2 -1
  102. package/lib/v1/list/status/StatusDropdown/props/propTypes.js +1 -1
  103. package/lib/v1/list/status/StatusListItem/StatusListItem.js +6 -1
  104. package/lib/v1/lookup/Lookup/Lookup.js +3 -2
  105. package/lib/v1/lookup/Lookup/props/propTypes.js +3 -2
  106. package/lib/v1/lookup/header/TicketHeader/TicketHeader.js +37 -12
  107. package/lib/v1/lookup/header/TicketHeader/props/defaultProps.js +7 -1
  108. package/lib/v1/lookup/header/TicketHeader/props/propTypes.js +2 -1
  109. package/lib/version2/GlobalNotification/GlobalNotification.module.css +0 -4
  110. package/lib/version2/lookup/AlertHeader/css/AlertHeaderNew.module.css +0 -1
  111. package/lib/version2/notification/DesktopNotificationHeader/DesktopNotificationHeader.module.css +0 -2
  112. package/package.json +12 -12
  113. package/result.json +1 -1
@@ -23,6 +23,8 @@ var _ViewDropDown = _interopRequireDefault(require("../ViewDropDown/ViewDropDown
23
23
 
24
24
  var _Layout = require("@zohodesk/components/lib/Layout");
25
25
 
26
+ var _useDragger = _interopRequireDefault(require("../../../Hooks/Dragger/useDragger"));
27
+
26
28
  var _lookupHeaderCommonModule = _interopRequireDefault(require("../lookupHeaderCommon.module.css"));
27
29
 
28
30
  var _lookupHeaderCommonResponsiveModule = _interopRequireDefault(require("../lookupHeaderCommonResponsive.module.css"));
@@ -35,117 +37,102 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
35
37
 
36
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
39
 
38
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
39
-
40
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
41
-
42
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
43
-
44
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
45
-
46
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
40
+ /*** Libraries ***/
47
41
 
48
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
42
+ /*** Components ***/
49
43
 
50
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
51
-
52
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
53
-
54
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
55
-
56
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
44
+ /*** CSS ***/
57
45
 
58
46
  /* eslint-disable react/forbid-component-props */
59
- var TicketHeader = /*#__PURE__*/function (_Component) {
60
- _inherits(TicketHeader, _Component);
61
-
62
- var _super = _createSuper(TicketHeader);
63
-
64
- function TicketHeader() {
65
- _classCallCheck(this, TicketHeader);
66
-
67
- return _super.apply(this, arguments);
68
- }
69
-
70
- _createClass(TicketHeader, [{
71
- key: "render",
72
- value: function render() {
73
- var _this$props = this.props,
74
- needSearch = _this$props.needSearch,
75
- onLookupClose = _this$props.onLookupClose,
76
- searchStr = _this$props.searchStr,
77
- onSearchChange = _this$props.onSearchChange,
78
- searchPlaceHolder = _this$props.searchPlaceHolder,
79
- title = _this$props.title,
80
- selectedViewId = _this$props.selectedViewId,
81
- onSelectView = _this$props.onSelectView,
82
- allViews = _this$props.allViews,
83
- onSearch = _this$props.onSearch,
84
- needOnTypeSearch = _this$props.needOnTypeSearch,
85
- getSearchBoxRef = _this$props.getSearchBoxRef,
86
- needViewsList = _this$props.needViewsList,
87
- i18nKeys = _this$props.i18nKeys,
88
- palette = _this$props.palette;
89
- var _i18nKeys$menuEmptyMe = i18nKeys.menuEmptyMessage,
90
- menuEmptyMessage = _i18nKeys$menuEmptyMe === void 0 ? 'No matches found' : _i18nKeys$menuEmptyMe;
91
- return /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
92
- align: "vertical",
93
- alignBox: "row",
94
- className: "".concat(_lookupHeaderCommonModule["default"].container, " ").concat(_lookupHeaderCommonModule["default"]["".concat(palette)], " ").concat(_lookupHeaderCommonResponsiveModule["default"].container, " ").concat(_TicketHeaderModule["default"].container),
95
- isCover: false,
96
- wrap: "wrap"
97
- }, /*#__PURE__*/_react["default"].createElement("div", {
98
- className: _lookupHeaderCommonModule["default"].closeContainer
99
- }, /*#__PURE__*/_react["default"].createElement(_Close["default"], {
100
- onClose: onLookupClose,
101
- dataId: "close"
102
- })), /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
103
- flexible: true
104
- }, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
105
- alignBox: "column",
106
- className: "".concat(_TicketHeaderModule["default"].innerContainer),
107
- isCover: false,
108
- wrap: "wrap",
109
- dataId: "lookupView"
110
- }, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
111
- className: _lookupHeaderCommonModule["default"].title
112
- }, /*#__PURE__*/_react["default"].createElement(_Title["default"], {
113
- text: title
114
- })), needViewsList ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
115
- className: "".concat(_TicketHeaderModule["default"].dropdown),
116
- dataId: "filterIdselected"
117
- }, /*#__PURE__*/_react["default"].createElement("div", {
118
- className: _TicketHeaderModule["default"].menuWrapper
119
- }, /*#__PURE__*/_react["default"].createElement(_ViewDropDown["default"], {
120
- dropBoxSize: "small",
121
- emptyMessage: menuEmptyMessage,
122
- needSearch: true,
123
- onChange: onSelectView,
124
- options: allViews,
125
- textField: "displayLabel",
126
- selectedValue: selectedViewId,
127
- needCloseOnSelect: true
128
- }))) : null)), needSearch ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
129
- className: "".concat(_lookupHeaderCommonModule["default"].searchContainer, " ").concat(_lookupHeaderCommonResponsiveModule["default"].searchContainer, " ").concat(_TicketHeaderModule["default"].searchContainer)
130
- }, /*#__PURE__*/_react["default"].createElement(_Search["default"], {
131
- onSearch: onSearch,
132
- searchStr: searchStr,
133
- onChange: onSearchChange,
134
- placeHolder: searchPlaceHolder,
135
- dataId: "search",
136
- needOnTypeSearch: needOnTypeSearch,
137
- getRef: getSearchBoxRef
138
- })) : null);
139
- }
140
- }]);
141
-
142
- return TicketHeader;
143
- }(_react.Component);
144
-
145
- exports["default"] = TicketHeader;
47
+ function TicketHeader(props) {
48
+ var needSearch = props.needSearch,
49
+ onLookupClose = props.onLookupClose,
50
+ searchStr = props.searchStr,
51
+ onSearchChange = props.onSearchChange,
52
+ searchPlaceHolder = props.searchPlaceHolder,
53
+ title = props.title,
54
+ selectedViewId = props.selectedViewId,
55
+ onSelectView = props.onSelectView,
56
+ allViews = props.allViews,
57
+ onSearch = props.onSearch,
58
+ needOnTypeSearch = props.needOnTypeSearch,
59
+ getSearchBoxRef = props.getSearchBoxRef,
60
+ needViewsList = props.needViewsList,
61
+ i18nKeys = props.i18nKeys,
62
+ palette = props.palette,
63
+ dragBoundaryLimit = props.dragBoundaryLimit;
64
+ var _i18nKeys$menuEmptyMe = i18nKeys.menuEmptyMessage,
65
+ menuEmptyMessage = _i18nKeys$menuEmptyMe === void 0 ? 'No matches found' : _i18nKeys$menuEmptyMe;
66
+ var dragRef = (0, _react.useRef)(null); //dragRef
67
+
68
+ (0, _useDragger["default"])({
69
+ isActive: true,
70
+ ChildRef: dragRef,
71
+ boundaryLimit: dragBoundaryLimit
72
+ }); //custom Hook
73
+
74
+ return /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
75
+ align: "vertical",
76
+ alignBox: "row",
77
+ className: "".concat(_lookupHeaderCommonModule["default"].container, " ").concat(_lookupHeaderCommonModule["default"]["".concat(palette)], " ").concat(_lookupHeaderCommonResponsiveModule["default"].container, " ").concat(_TicketHeaderModule["default"].container),
78
+ isCover: false,
79
+ wrap: "wrap",
80
+ eleRef: dragRef,
81
+ "data-drag-hook": "true"
82
+ }, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
83
+ flexible: true
84
+ }, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
85
+ alignBox: "column",
86
+ className: "".concat(_TicketHeaderModule["default"].innerContainer),
87
+ isCover: false,
88
+ wrap: "wrap",
89
+ dataId: "lookupView"
90
+ }, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
91
+ className: _lookupHeaderCommonModule["default"].title
92
+ }, /*#__PURE__*/_react["default"].createElement(_Title["default"], {
93
+ text: title
94
+ })), needViewsList ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
95
+ className: "".concat(_TicketHeaderModule["default"].dropdown),
96
+ dataId: "filterIdselected"
97
+ }, /*#__PURE__*/_react["default"].createElement("div", {
98
+ className: _TicketHeaderModule["default"].menuWrapper
99
+ }, /*#__PURE__*/_react["default"].createElement(_ViewDropDown["default"], {
100
+ dropBoxSize: "small",
101
+ emptyMessage: menuEmptyMessage,
102
+ needSearch: true,
103
+ onChange: onSelectView,
104
+ options: allViews,
105
+ textField: "displayLabel",
106
+ selectedValue: selectedViewId,
107
+ needCloseOnSelect: true
108
+ }))) : null)), needSearch ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
109
+ className: "".concat(_lookupHeaderCommonModule["default"].searchContainer, " ").concat(_lookupHeaderCommonResponsiveModule["default"].searchContainer, " ").concat(_TicketHeaderModule["default"].searchContainer)
110
+ }, /*#__PURE__*/_react["default"].createElement(_Search["default"], {
111
+ onSearch: onSearch,
112
+ searchStr: searchStr,
113
+ onChange: onSearchChange,
114
+ placeHolder: searchPlaceHolder,
115
+ dataId: "search",
116
+ needOnTypeSearch: needOnTypeSearch,
117
+ getRef: getSearchBoxRef
118
+ })) : null, /*#__PURE__*/_react["default"].createElement("div", {
119
+ className: _lookupHeaderCommonModule["default"].closeContainer
120
+ }, /*#__PURE__*/_react["default"].createElement(_Close["default"], {
121
+ onClose: onLookupClose,
122
+ dataId: "close"
123
+ })));
124
+ }
125
+
146
126
  TicketHeader.propTypes = _propTypes.propTypes;
147
- TicketHeader.defaultProps = _defaultProps.defaultProps; // if (__DOCS__) {
127
+ TicketHeader.defaultProps = _defaultProps.defaultProps;
128
+ var MemoizedTicketHeader = /*#__PURE__*/(0, _react.memo)(TicketHeader);
129
+ MemoizedTicketHeader.propTypes = _propTypes.propTypes;
130
+ MemoizedTicketHeader.defaultProps = _defaultProps.defaultProps;
131
+ MemoizedTicketHeader.displayName = 'TicketHeader';
132
+ var _default = MemoizedTicketHeader; // if (__DOCS__) {
148
133
  // TicketHeader.docs = {
149
134
  // componentGroup: 'Lookup'
150
135
  // };
151
- // }
136
+ // }
137
+
138
+ exports["default"] = _default;
@@ -6,6 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.defaultProps = void 0;
7
7
  var defaultProps = {
8
8
  i18nKeys: {},
9
- palette: 'default'
9
+ palette: 'default',
10
+ dragBoundaryLimit: {
11
+ top: 0,
12
+ left: 50,
13
+ right: 50,
14
+ bottom: 50
15
+ }
10
16
  };
11
17
  exports.defaultProps = defaultProps;
@@ -26,6 +26,7 @@ var propTypes = {
26
26
  i18nKeys: _propTypes["default"].shape({
27
27
  menuEmptyMessage: _propTypes["default"].string
28
28
  }),
29
- palette: _propTypes["default"].oneOf(['default', 'white'])
29
+ palette: _propTypes["default"].oneOf(['default', 'white']),
30
+ dragBoundaryLimit: _propTypes["default"].object
30
31
  };
31
32
  exports.propTypes = propTypes;
@@ -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,
@@ -29,10 +29,6 @@ var _Loader = _interopRequireDefault(require("@zohodesk/svg/lib/Loader/Loader"))
29
29
 
30
30
  var _EmptySearch = _interopRequireDefault(require("@zohodesk/svg/lib/emptystate/version3/EmptySearch"));
31
31
 
32
- var _Common = require("@zohodesk/components/es/utils/Common");
33
-
34
- var _TextBox = _interopRequireDefault(require("@zohodesk/components/es/v1/TextBox/TextBox"));
35
-
36
32
  var _CommonEmptyState = _interopRequireDefault(require("../../../emptystate/CommonEmptyState/CommonEmptyState"));
37
33
 
38
34
  var _StatusListItem = _interopRequireDefault(require("../StatusListItem/StatusListItem"));
@@ -117,7 +113,7 @@ function StatusDropdown(props) {
117
113
  onTogglePopup = props.onTogglePopup,
118
114
  onClick = props.onClick,
119
115
  onSelectLabel = props.onSelectLabel,
120
- isNextOptions = props.isNextOptions,
116
+ isFetchingOptions = props.isFetchingOptions,
121
117
  getNextOptions = props.getNextOptions,
122
118
  options = props.options,
123
119
  _props$a11y = props.a11y,
@@ -128,20 +124,11 @@ function StatusDropdown(props) {
128
124
  optionsList = _useState2[0],
129
125
  setOptionsList = _useState2[1];
130
126
 
131
- var _useState3 = (0, _react.useState)(0),
127
+ var _useState3 = (0, _react.useState)(''),
132
128
  _useState4 = _slicedToArray(_useState3, 2),
133
- selectedIndex = _useState4[0],
134
- setSelectedIndex = _useState4[1];
135
-
136
- var _useState5 = (0, _react.useState)(''),
137
- _useState6 = _slicedToArray(_useState5, 2),
138
- searchString = _useState6[0],
139
- setSearchString = _useState6[1];
140
-
141
- var hiddenInput = (0, _react.useRef)(null);
142
- var searchInput = (0, _react.useRef)(null);
143
- var optionsContainer = (0, _react.useRef)(null);
144
- var dropdown = (0, _react.useRef)({});
129
+ searchString = _useState4[0],
130
+ setSearchString = _useState4[1];
131
+
145
132
  var getAriaId = (0, _IdProvider.useUniqueId)();
146
133
  var _a11y$tabIndex = a11y.tabIndex,
147
134
  tabIndex = _a11y$tabIndex === void 0 ? 0 : _a11y$tabIndex,
@@ -157,84 +144,18 @@ function StatusDropdown(props) {
157
144
  });
158
145
  }
159
146
 
160
- function handleInputRef(el) {
161
- hiddenInput.current = el;
162
- }
163
-
164
- function itemRef(ele, index, id) {
165
- dropdown.current["suggestion_".concat(id)] = ele;
166
- }
167
-
168
- function searchInputRef(el) {
169
- searchInput.current = el;
170
- }
171
-
172
147
  function handleTogglePopup(e) {
173
148
  !isPopupOpen && onSelectLabel && onSelectLabel(e);
174
149
  onTogglePopup && onTogglePopup(isPopupOpen);
175
150
  togglePopup(e, boxPosition);
176
151
  }
177
152
 
178
- function scrollContentRef(el) {
179
- if (isPopupOpen) {
180
- optionsContainer.current = el;
181
- }
182
- }
183
-
184
153
  function onSelect(element, e) {
185
154
  onClick && onClick(e, element);
186
155
  onTogglePopup && onTogglePopup(isPopupOpen);
187
156
  togglePopup(e);
188
157
  }
189
158
 
190
- function handleKeyDown(e) {
191
- var keyCode = e.keyCode;
192
- var totalIndex = optionsList.length;
193
-
194
- if (isPopupReady && (keyCode === 38 || keyCode === 40) && e.preventDefault) {
195
- e.preventDefault(); //prevent body scroll
196
- }
197
-
198
- if (isPopupReady) {
199
- switch (keyCode) {
200
- case 40:
201
- if (selectedIndex === totalIndex - 1) {
202
- setSelectedIndex(0);
203
- } else {
204
- if (selectedIndex === totalIndex - 3) {
205
- isNextOptions && getNextOptions && getNextOptions();
206
- }
207
-
208
- setSelectedIndex(selectedIndex + 1);
209
- }
210
-
211
- break;
212
-
213
- case 38:
214
- if (selectedIndex === 0) {
215
- setSelectedIndex(totalIndex - 1);
216
- } else {
217
- setSelectedIndex(selectedIndex - 1);
218
- }
219
-
220
- break;
221
-
222
- case 13:
223
- onClick && onClick(optionsList[selectedIndex].name, e);
224
- onTogglePopup && onTogglePopup(isPopupOpen);
225
- togglePopup(e, boxPosition);
226
- break;
227
-
228
- default:
229
- break;
230
- }
231
- } else {
232
- if (keyCode === 13 || keyCode === 40) {
233
- togglePopup(e, boxPosition);
234
- }
235
- }
236
- }
237
-
238
159
  function searchList(value) {
239
160
  var foptions = options.filter(function (dept) {
240
161
  return dept[keyName].toLowerCase().indexOf(value.toLowerCase()) != -1;
@@ -245,7 +166,6 @@ function StatusDropdown(props) {
245
166
  function handleChange(value, e) {
246
167
  var foptions = searchList(value);
247
168
  setSearchString(value);
248
- setSelectedIndex(-1);
249
169
  setOptionsList(foptions);
250
170
  }
251
171
 
@@ -255,13 +175,9 @@ function StatusDropdown(props) {
255
175
  setOptionsList(foptions);
256
176
  }
257
177
 
258
- function handleMouseEnter(id, value, index, e) {
259
- setSelectedIndex(index);
260
- }
261
-
262
178
  function handleScroll(e) {
263
179
  if (e.target.scrollTop + e.target.offsetHeight > e.target.scrollHeight - 1) {
264
- isNextOptions && getNextOptions && getNextOptions(e);
180
+ getNextOptions && getNextOptions(e);
265
181
  }
266
182
  }
267
183
 
@@ -278,18 +194,7 @@ function StatusDropdown(props) {
278
194
  setOptionsList(options);
279
195
  }, [options.length]);
280
196
  (0, _hooks.useEffectCallOnlyAfterState)(function () {
281
- setTimeout(function () {
282
- isPopupOpen && isSearch ? searchInput.current && searchInput.current.focus() : hiddenInput.current && hiddenInput.current.focus();
283
- }, 10);
284
- var mergeOptions = optionsList;
285
- var option = mergeOptions[selectedIndex];
286
- var id = option && option[idName] || {};
287
- var selSuggestion = dropdown.current["suggestion_".concat(id)];
288
-
289
- if (isPopupOpen) {
290
- optionsContainer.current && (0, _Common.scrollTo)(optionsContainer.current, selSuggestion);
291
- onSearchClear();
292
- }
197
+ isPopupOpen && onSearchClear();
293
198
  }, [isPopupOpen]);
294
199
  return /*#__PURE__*/_react["default"].createElement("div", {
295
200
  className: _StatusDropdownModule["default"].posRel,
@@ -299,12 +204,11 @@ function StatusDropdown(props) {
299
204
  tagName: "button",
300
205
  alignBox: "row",
301
206
  className: "".concat(_StatusDropdownModule["default"].container, " ").concat(containerClass, " ").concat(_semanticButtonModule["default"].buttonReset),
302
- onMouseDown: !showOnHover && !isDisabled && !isReadOnly && isEditable ? handleTogglePopup : null,
207
+ onClick: !showOnHover && !isDisabled && !isReadOnly && isEditable ? handleTogglePopup : null,
303
208
  eleRef: getTargetRef,
304
209
  align: targetAlign,
305
210
  isCover: false,
306
211
  dataId: dataId,
307
- onClick: removeClose,
308
212
  disabled: isDisabled || isReadOnly ? true : false,
309
213
  "aria-haspopup": isSearch ? 'listbox' : 'menu',
310
214
  "aria-expanded": isPopupReady && isEditable ? true : false,
@@ -312,15 +216,7 @@ function StatusDropdown(props) {
312
216
  "aria-labelledby": ariaLabelledby,
313
217
  "aria-label": ariaLabel,
314
218
  "aria-disabled": isDisabled || isReadOnly
315
- }, isEditable ? /*#__PURE__*/_react["default"].createElement("div", {
316
- className: _StatusDropdownModule["default"].hiddenInput
317
- }, /*#__PURE__*/_react["default"].createElement(_TextBox["default"], {
318
- type: "text",
319
- inputRef: handleInputRef,
320
- onKeyDown: handleKeyDown,
321
- needAppearance: false,
322
- placeHolder: placeHolderText
323
- })) : null, children ? children : /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
219
+ }, children ? children : /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
324
220
  className: "".concat(_StatusDropdownModule["default"].value, " toggleDropText"),
325
221
  shrink: true,
326
222
  tagName: "span",
@@ -352,7 +248,16 @@ function StatusDropdown(props) {
352
248
  customDropBoxWrap: _StatusDropdownModule["default"].dropBoxContainer
353
249
  },
354
250
  needResponsive: needResponsive,
355
- isResponsivePadding: true
251
+ isResponsivePadding: true,
252
+ needFocusScope: true,
253
+ onClose: handleTogglePopup,
254
+ customProps: {
255
+ focusScopeProps: {
256
+ searchValue: searchString,
257
+ loadNextOptions: getNextOptions,
258
+ isFetchingOptions: isFetchingOptions
259
+ }
260
+ }
356
261
  }, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isSearch ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
357
262
  className: _StatusDropdownModule["default"].search
358
263
  }, /*#__PURE__*/_react["default"].createElement(_TextBoxIcon["default"], {
@@ -361,8 +266,11 @@ function StatusDropdown(props) {
361
266
  value: searchString,
362
267
  onClear: onSearchClear,
363
268
  size: searchBoxSize,
364
- inputRef: searchInputRef,
365
- onKeyDown: handleKeyDown,
269
+ customProps: {
270
+ TextBoxProps: {
271
+ 'data-a11y-autofocus': true
272
+ }
273
+ },
366
274
  a11y: {
367
275
  ariaHaspopup: isSearch ? 'listbox' : 'menu',
368
276
  ariaExpanded: isPopupReady,
@@ -385,38 +293,39 @@ function StatusDropdown(props) {
385
293
  dataId: "".concat(dataId, "_list"),
386
294
  preventParentScroll: "vertical",
387
295
  className: "".concat(tabletMode ? _StatusDropdownModule["default"].responsivemaxHgt : _StatusDropdownModule["default"].maxHgt),
388
- eleRef: scrollContentRef,
389
296
  onScroll: handleScroll,
390
297
  role: isSearch ? 'listbox' : 'menu',
391
- "aria-labelledby": ariaTitleId,
392
- tabindex: "-1"
298
+ tabindex: "-1",
299
+ isScrollAttribute: true
393
300
  }, optionsList.length != 0 && isDataLoaded ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, optionsList.map(function (item, i) {
394
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
395
- key: i
396
- }, /*#__PURE__*/_react["default"].createElement(_StatusListItem["default"], {
301
+ var listItemText = item[keyName];
302
+ var isActive = value === listItemText;
303
+ return /*#__PURE__*/_react["default"].createElement(_StatusListItem["default"], {
304
+ key: i,
397
305
  dataId: "dataid_".concat(i),
398
- value: item[keyName],
306
+ value: listItemText,
399
307
  id: item[idName],
400
- active: value === item[keyName],
308
+ active: isActive,
401
309
  onClick: function onClick(e) {
402
310
  return onSelect(item, e);
403
311
  },
404
312
  index: i,
405
- highlight: selectedIndex === i,
406
313
  needTick: needTick,
407
314
  needBorder: false,
408
- onMouseEnter: handleMouseEnter,
409
- getRef: itemRef,
410
315
  bulletColor: item[statusColor],
411
- title: item[keyName],
316
+ title: listItemText,
412
317
  needMultiLineText: needMultiLineText,
318
+ autoHover: true,
413
319
  a11y: {
414
320
  role: isSearch ? 'option' : 'menuitem',
415
- ariaSelected: value === item[keyName],
416
- 'data-a11y-list-active': selectedIndex === i
321
+ ariaSelected: isActive,
322
+ ariaLabel: listItemText
417
323
  }
418
- }));
419
- })) : isDataLoaded ? /*#__PURE__*/_react["default"].createElement(_CommonEmptyState["default"], {
324
+ });
325
+ }), isFetchingOptions && /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
326
+ isCover: false,
327
+ align: "both"
328
+ }, /*#__PURE__*/_react["default"].createElement(_Loader["default"], null))) : isDataLoaded ? /*#__PURE__*/_react["default"].createElement(_CommonEmptyState["default"], {
420
329
  className: _StatusDropdownModule["default"].svgWrapper,
421
330
  title: searchErrorText || 'No results',
422
331
  description: searchEmptyHint,
@@ -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;
@@ -58,7 +58,10 @@ function StatusListItem(props) {
58
58
  var role = a11y.role,
59
59
  ariaSelected = a11y.ariaSelected,
60
60
  _a11y$ariaHidden = a11y.ariaHidden,
61
- ariaHidden = _a11y$ariaHidden === void 0 ? true : _a11y$ariaHidden;
61
+ ariaHidden = _a11y$ariaHidden === void 0 ? true : _a11y$ariaHidden,
62
+ ariaLabel = a11y.ariaLabel,
63
+ _a11y$insetFocus = a11y.insetFocus,
64
+ insetFocus = _a11y$insetFocus === void 0 ? true : _a11y$insetFocus;
62
65
 
63
66
  if (isLink) {
64
67
  options.href = href;
@@ -83,6 +86,8 @@ function StatusListItem(props) {
83
86
  return /*#__PURE__*/_react["default"].createElement(_Layout.Container, _extends({
84
87
  role: role,
85
88
  "aria-selected": ariaSelected,
89
+ "aria-label": ariaLabel,
90
+ "data-a11y-inset-focus": insetFocus,
86
91
  isCover: false,
87
92
  align: "baseline",
88
93
  alignBox: "row",
@@ -53,7 +53,8 @@ function Lookup(props) {
53
53
  needFocusScope = props.needFocusScope,
54
54
  customProps = props.customProps,
55
55
  onKeyDown = props.onKeyDown,
56
- isMinHeight = props.isMinHeight;
56
+ isMinHeight = props.isMinHeight,
57
+ lookupClass = props.lookupClass;
57
58
 
58
59
  var _a11y$role = a11y.role,
59
60
  role = _a11y$role === void 0 ? 'dialog' : _a11y$role,
@@ -103,7 +104,7 @@ function Lookup(props) {
103
104
  "aria-label": ariaLabel,
104
105
  "aria-modal": ariaModal,
105
106
  id: htmlId,
106
- className: "".concat(_LookupModule["default"].box, " ").concat(_LookupModule["default"]["".concat(size, "Size")]),
107
+ className: "".concat(_LookupModule["default"].box, " ").concat(_LookupModule["default"]["".concat(size, "Size")], " ").concat(lookupClass ? lookupClass : ''),
107
108
  "data-id": dataId,
108
109
  "data-test-id": dataId
109
110
  }, a11yAttributes), /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
@@ -14,7 +14,7 @@ var propTypes = {
14
14
  customClass: _propTypes["default"].string,
15
15
  dataId: _propTypes["default"].string,
16
16
  isActive: _propTypes["default"].bool,
17
- size: _propTypes["default"].oneOf(['small', 'xmedium', 'medium', 'large', 'full']),
17
+ size: _propTypes["default"].oneOf(['small', 'xmedium', 'medium', 'large', 'xlarge', 'full']),
18
18
  htmlId: _propTypes["default"].string,
19
19
  a11y: _propTypes["default"].shape({
20
20
  role: _propTypes["default"].string,
@@ -29,6 +29,7 @@ var propTypes = {
29
29
  forwardRef: _propTypes["default"].object,
30
30
  onClick: _propTypes["default"].func,
31
31
  onClose: _propTypes["default"].func,
32
- isMinHeight: _propTypes["default"].bool
32
+ isMinHeight: _propTypes["default"].bool,
33
+ lookupClass: _propTypes["default"].string
33
34
  };
34
35
  exports.propTypes = propTypes;