@desynova-digital/components 8.5.2 → 8.7.0

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.
@@ -31,6 +31,10 @@ var _switch = require("../switch");
31
31
 
32
32
  var _switch2 = _interopRequireDefault(_switch);
33
33
 
34
+ var _icon = require("../icon");
35
+
36
+ var _icon2 = _interopRequireDefault(_icon);
37
+
34
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
39
 
36
40
  function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
@@ -139,7 +143,14 @@ var Checkbox = function Checkbox(props) {
139
143
  console.log(value);
140
144
  }
141
145
  })
142
- ) : null
146
+ ) : null,
147
+ props.type === 'icon' && _react2.default.createElement(_icon2.default, {
148
+ name: props.value,
149
+ value: props.value,
150
+ width: props.width,
151
+ height: props.height,
152
+ fillRule: props.fillRule,
153
+ color: props.checked ? "#00CEC6" : "#AFB2BA" })
143
154
  );
144
155
  };
145
156
 
@@ -156,7 +167,10 @@ var CheckboxGroup = function CheckboxGroup(props) {
156
167
  readOnly: props.readOnly || child.props.readOnly,
157
168
  onChange: child.props.isDisabled ? props.onChange : function () {},
158
169
  theme: props.theme,
159
- type: props.type
170
+ type: props.type,
171
+ width: props.width || 16,
172
+ height: props.height || 24,
173
+ fillRule: props.fillRule || ''
160
174
  }) : null;
161
175
  })
162
176
  );
@@ -173,7 +187,10 @@ Checkbox.propTypes = {
173
187
  readOnly: _propTypes2.default.bool,
174
188
  /** Callback function which is called when the user selects an option */
175
189
  onChange: _propTypes2.default.func,
176
- type: _propTypes2.default.oneOf(["default", "label", "switch"])
190
+ type: _propTypes2.default.oneOf(["default", "label", "switch"]),
191
+ width: _propTypes2.default.number,
192
+ height: _propTypes2.default.number,
193
+ fillRule: _propTypes2.default.string
177
194
  };
178
195
 
179
196
  Checkbox.defaultProps = {
@@ -208,6 +208,41 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
208
208
  { value: "four" },
209
209
  "Option 4"
210
210
  )
211
+ ),
212
+ _react2.default.createElement(
213
+ _components.Checkbox.Group,
214
+ {
215
+ theme: "dark",
216
+ name: "example5",
217
+ onChange: function onChange(e) {
218
+ console.log(e.target.value, e.target.checked);
219
+ },
220
+ align: "horizontal",
221
+ selected: ["text_aligned_left"],
222
+ type: "icon"
223
+ },
224
+ _react2.default.createElement(_components.Checkbox, { value: "text_aligned_left" }),
225
+ _react2.default.createElement(_components.Checkbox, { value: "text_aligned_center" }),
226
+ _react2.default.createElement(_components.Checkbox, { value: "text_aligned_right" })
227
+ ),
228
+ _react2.default.createElement(
229
+ _components.Checkbox.Group,
230
+ {
231
+ theme: "dark",
232
+ name: "example6",
233
+ onChange: function onChange(e) {
234
+ console.log(e.target.value, e.target.checked);
235
+ },
236
+ align: "horizontal",
237
+ selected: ["text_position_bottom"],
238
+ type: "icon",
239
+ width: 24,
240
+ height: 16,
241
+ fillRule: "evenodd"
242
+ },
243
+ _react2.default.createElement(_components.Checkbox, { value: "text_position_top" }),
244
+ _react2.default.createElement(_components.Checkbox, { value: "text_position_center" }),
245
+ _react2.default.createElement(_components.Checkbox, { value: "text_position_bottom" })
211
246
  )
212
247
  );
213
248
  });
@@ -40,7 +40,7 @@ var Icon = function Icon(props) {
40
40
  {
41
41
  width: props.width || icon.width,
42
42
  height: props.height || icon.height,
43
- viewBox: '0 0 ' + icon.width + ' ' + icon.height,
43
+ viewBox: '0 0 ' + (props.width || icon.width) + ' ' + (props.height || icon.height),
44
44
  color: props.color
45
45
  },
46
46
  icon.paths.map(function (path, index) {
@@ -51,7 +51,7 @@ var Icon = function Icon(props) {
51
51
  fill: props.color,
52
52
  stroke: props.stroke,
53
53
  strokeWidth: icon.strokeWidth,
54
- fillRule: icon.fillRule
54
+ fillRule: props.fillRule
55
55
  });
56
56
  })
57
57
  )
@@ -328,10 +328,10 @@
328
328
  },
329
329
  "delete": {
330
330
  "paths": [
331
- "M7.2 0a1.8 1.8 0 0 1 1.794 1.652L9 1.8v.6h2.4a.6.6 0 0 1 .097 1.192L11.4 3.6h-.601l.001 7.8a1.8 1.8 0 0 1-1.652 1.794L9 13.2H3a1.8 1.8 0 0 1-1.794-1.652L1.2 11.4V3.6H.6a.6.6 0 0 1-.592-.503L0 3a.6.6 0 0 1 .503-.592L.6 2.4h2.399L3 1.8A1.8 1.8 0 0 1 4.652.006L4.8 0h2.4zm2.399 3.6h-7.2l.001 7.8a.6.6 0 0 0 .503.592L3 12h6a.6.6 0 0 0 .592-.503L9.6 11.4l-.001-7.8zM4.8 5.4a.6.6 0 0 1 .592.503L5.4 6v3.6a.6.6 0 0 1-1.192.097L4.2 9.6V6a.6.6 0 0 1 .6-.6zm2.4 0a.6.6 0 0 1 .6.6v3.6a.6.6 0 1 1-1.2 0V6a.6.6 0 0 1 .6-.6zm0-4.2H4.8a.6.6 0 0 0-.592.503L4.2 1.8l-.001.6H7.8v-.6a.6.6 0 0 0-.503-.592L7.2 1.2z"
331
+ "M0.888889 14.2222C0.888889 15.2 1.68889 16 2.66667 16H9.77778C10.7556 16 11.5556 15.2 11.5556 14.2222V3.55556H0.888889V14.2222ZM12.4444 0.888889H9.33333L8.44445 0H4L3.11111 0.888889H0V2.66667H12.4444V0.888889Z"
332
332
  ],
333
- "width": 12,
334
- "height": 14
333
+ "width": 13,
334
+ "height": 16
335
335
  },
336
336
  "volume": {
337
337
  "paths": [
@@ -561,7 +561,7 @@
561
561
  },
562
562
  "subtitle": {
563
563
  "paths": [
564
- "M18 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM2 8h4v2H2V8zm10 6H2v-2h10v2zm6 0h-4v-2h4v2zm0-4H8V8h10v2z"
564
+ "M10.8 0H1.2C0.54 0 0 0.54 0 1.2V8.4C0 9.06 0.54 9.6 1.2 9.6H10.8C11.46 9.6 12 9.06 12 8.4V1.2C12 0.54 11.46 0 10.8 0ZM1.2 4.8H3.6V6H1.2V4.8ZM1.2 8.4H7.2V7.2H1.2V8.4ZM10.8 8.4H8.4V7.2H10.8V8.4ZM4.8 6H10.8V4.8H4.8V6Z"
565
565
  ],
566
566
  "width": 20,
567
567
  "height": 16
@@ -609,6 +609,13 @@
609
609
  "width": 13,
610
610
  "height": 13
611
611
  },
612
+ "chat": {
613
+ "paths":[
614
+ "M7.8 1.2V5.4H1.902L1.2 6.102V1.2H7.8ZM8.4 0H0.6C0.27 0 0 0.27 0 0.6V9L2.4 6.6H8.4C8.73 6.6 9 6.33 9 6V0.6C9 0.27 8.73 0 8.4 0ZM11.4 2.4H10.2V7.8H2.4V9C2.4 9.33 2.67 9.6 3 9.6H9.6L12 12V3C12 2.67 11.73 2.4 11.4 2.4Z"
615
+ ],
616
+ "width": 12,
617
+ "height": 12
618
+ },
612
619
  "cut": {
613
620
  "paths": [
614
621
  "M7.368 6.28L12.742.946a.74.74 0 0 1 1.042 0 .728.728 0 0 1 0 1.034l-8.297 8.236c.259.436.408.944.408 1.486 0 1.616-1.32 2.926-2.948 2.926C1.32 14.628 0 13.318 0 11.702s1.32-2.925 2.947-2.925a2.95 2.95 0 0 1 1.498.405l1.881-1.868-1.881-1.868a2.95 2.95 0 0 1-1.498.405C1.32 5.851 0 4.541 0 2.926 0 1.31 1.32 0 2.947 0c1.628 0 2.948 1.31 2.948 2.926 0 .542-.15 1.05-.408 1.486L7.368 6.28zM4.015 3.934c.252-.263.406-.618.406-1.008 0-.808-.66-1.463-1.474-1.463s-1.473.655-1.473 1.463c0 .807.66 1.462 1.473 1.462a1.475 1.475 0 0 0 1.068-.454zm-.052 6.708a1.475 1.475 0 0 0-1.016-.403c-.814 0-1.473.655-1.473 1.463s.66 1.463 1.473 1.463c.814 0 1.474-.655 1.474-1.463a1.452 1.452 0 0 0-.458-1.06zm4.705-.997a.728.728 0 0 1-.001-1.034.74.74 0 0 1 1.042-.001l4.075 4.037a.728.728 0 0 1 0 1.035.74.74 0 0 1-1.041 0L8.668 9.646z"
@@ -1104,6 +1111,42 @@
1104
1111
  ],
1105
1112
  "width": 16,
1106
1113
  "height": 18
1114
+ },
1115
+ "text_aligned_right": {
1116
+ "paths":[
1117
+ "M0 1.77778V0H16V1.77778H0ZM5.33333 5.33333H16V3.55556H5.33333V5.33333ZM16 8.88889H0V7.11111H16V8.88889ZM5.33333 12.4444H16V10.6667H5.33333V12.4444ZM0 16H16V14.2222H0V16Z"
1118
+ ],
1119
+ "width": 16,
1120
+ "height": 16
1121
+ },
1122
+ "text_aligned_center": {
1123
+ "paths":[
1124
+ "M0 1.77778V0H16V1.77778H0ZM3.55556 3.55556V5.33333H12.4444V3.55556H3.55556ZM16 8.88889H0V7.11111H16V8.88889ZM3.55556 10.6667V12.4444H12.4444V10.6667H3.55556ZM0 16H16V14.2222H0V16Z"
1125
+ ],
1126
+ "width": 16,
1127
+ "height": 16
1128
+ },
1129
+ "text_aligned_left": {
1130
+ "paths":[
1131
+ "M0 1.77778V0H16V1.77778H0ZM10.6667 3.55556H0V5.33333H10.6667V3.55556ZM10.6667 10.6667H0V12.4444H10.6667V10.6667ZM16 8.88889H0V7.11111H16V8.88889ZM0 16H16V14.2222H0V16Z"
1132
+ ],
1133
+ "width": 16,
1134
+ "height": 16
1135
+ },
1136
+ "text_position_top": {
1137
+ "paths": ["M0 0H24V16H0V0ZM2 2H22V14H2V2ZM4 5.77778V4H20V5.77778H4Z"],
1138
+ "width": 16,
1139
+ "height": 16
1140
+ },
1141
+ "text_position_center": {
1142
+ "paths": ["M0 0H24V16H0V0ZM2 2H22V14H2V2ZM4 8.77778V7H20V8.77778H4Z"],
1143
+ "width": 16,
1144
+ "height": 16
1145
+ },
1146
+ "text_position_bottom": {
1147
+ "paths": ["M0 0H24V16H0V0ZM2 2H22V14H2V2ZM4 11.7778V10H20V11.7778H4Z"],
1148
+ "width": 16,
1149
+ "height": 16
1107
1150
  }
1108
1151
  }
1109
1152
  }
@@ -11,7 +11,8 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
11
11
  var _templateObject = _taggedTemplateLiteral(['\n background: transparent;\n font-family: \'SFUIText-Medium\';\n position: relative;\n width: 100%;\n display: block;\n\n > label {\n color: #999999;\n font-size: 14px;\n\n font-family: inherit;\n position: absolute;\n pointer-events: none;\n left: 0px;\n top: 5px;\n transition: 0.2s ease all;\n -moz-transition: 0.2s ease all;\n -webkit-transition: 0.2s ease all;\n }\n > input:focus ~ label {\n top: -10px;\n left: 0px;\n font-size: 10px;\n color: #999999;\n text-transform: capitalize;\n }\n\n > input ~ label.floaton {\n top: -5px;\n left: 0px;\n font-size: 10px;\n color: #999999;\n text-transform: capitalize;\n }\n'], ['\n background: transparent;\n font-family: \'SFUIText-Medium\';\n position: relative;\n width: 100%;\n display: block;\n\n > label {\n color: #999999;\n font-size: 14px;\n\n font-family: inherit;\n position: absolute;\n pointer-events: none;\n left: 0px;\n top: 5px;\n transition: 0.2s ease all;\n -moz-transition: 0.2s ease all;\n -webkit-transition: 0.2s ease all;\n }\n > input:focus ~ label {\n top: -10px;\n left: 0px;\n font-size: 10px;\n color: #999999;\n text-transform: capitalize;\n }\n\n > input ~ label.floaton {\n top: -5px;\n left: 0px;\n font-size: 10px;\n color: #999999;\n text-transform: capitalize;\n }\n']),
12
12
  _templateObject2 = _taggedTemplateLiteral(['\n color: ', ';\n padding-top: 5px;\n display: inline-block;\n font-size: 12px;\n font-family: inherit;\n width: 100%;\n text-align: left;\n'], ['\n color: ', ';\n padding-top: 5px;\n display: inline-block;\n font-size: 12px;\n font-family: inherit;\n width: 100%;\n text-align: left;\n']),
13
13
  _templateObject3 = _taggedTemplateLiteral(['\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n right: 0;\n top: 5px;\n &:focus {\n outline: none;\n }\n'], ['\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n right: 0;\n top: 5px;\n &:focus {\n outline: none;\n }\n']),
14
- _templateObject4 = _taggedTemplateLiteral(['\n width: 100%;\n box-sizing: border-box;\n\n background: ', ';\n\n border: none;\n border-radius: 0px;\n -webkit-appearance: none;\n border-bottom: 1px solid\n ', ';\n\n font-family: \'SFUIText-Medium\';\n color: ', ';\n\n cursor: ', ';\n\n font-size: 14px;\n padding: 7px 0px 2px;\n margin-top: 15px;\n display: block;\n\n &:hover {\n border-color: ', ';\n }\n &:disabled:hover {\n border-color: ', ';\n }\n &:disabled {\n border-color: ', ';\n color: ', ';\n }\n &:focus {\n outline: none;\n }\n &::placeholder {\n color: ', ';\n\n opacity: ', ';\n transition: 0.2s ease all;\n }\n\n &:focus::placeholder {\n color: ', ';\n\n opacity: ', ';\n }\n'], ['\n width: 100%;\n box-sizing: border-box;\n\n background: ', ';\n\n border: none;\n border-radius: 0px;\n -webkit-appearance: none;\n border-bottom: 1px solid\n ', ';\n\n font-family: \'SFUIText-Medium\';\n color: ', ';\n\n cursor: ', ';\n\n font-size: 14px;\n padding: 7px 0px 2px;\n margin-top: 15px;\n display: block;\n\n &:hover {\n border-color: ', ';\n }\n &:disabled:hover {\n border-color: ', ';\n }\n &:disabled {\n border-color: ', ';\n color: ', ';\n }\n &:focus {\n outline: none;\n }\n &::placeholder {\n color: ', ';\n\n opacity: ', ';\n transition: 0.2s ease all;\n }\n\n &:focus::placeholder {\n color: ', ';\n\n opacity: ', ';\n }\n']);
14
+ _templateObject4 = _taggedTemplateLiteral(['\n position: absolute;\n right: 0px;\n top: 0px;\n background-color: #303F51;\n border-radius: 12px;\n font-size: 12px;\n padding: 5px 10px;\n color: #FFFFFF;\n'], ['\n position: absolute;\n right: 0px;\n top: 0px;\n background-color: #303F51;\n border-radius: 12px;\n font-size: 12px;\n padding: 5px 10px;\n color: #FFFFFF;\n']),
15
+ _templateObject5 = _taggedTemplateLiteral(['\n width: 100%;\n box-sizing: border-box;\n\n background: ', ';\n\n border: none;\n border-radius: 0px;\n -webkit-appearance: none;\n border-bottom: 1px solid\n ', ';\n\n font-family: \'SFUIText-Medium\';\n color: ', ';\n\n cursor: ', ';\n\n font-size: 14px;\n padding: 7px 0px 2px;\n margin-top: 15px;\n display: block;\n\n &:hover {\n border-color: ', ';\n }\n &:disabled:hover {\n border-color: ', ';\n }\n &:disabled {\n border-color: ', ';\n color: ', ';\n }\n &:focus {\n outline: none;\n }\n &::placeholder {\n color: ', ';\n\n opacity: ', ';\n transition: 0.2s ease all;\n }\n\n &:focus::placeholder {\n color: ', ';\n\n opacity: ', ';\n }\n'], ['\n width: 100%;\n box-sizing: border-box;\n\n background: ', ';\n\n border: none;\n border-radius: 0px;\n -webkit-appearance: none;\n border-bottom: 1px solid\n ', ';\n\n font-family: \'SFUIText-Medium\';\n color: ', ';\n\n cursor: ', ';\n\n font-size: 14px;\n padding: 7px 0px 2px;\n margin-top: 15px;\n display: block;\n\n &:hover {\n border-color: ', ';\n }\n &:disabled:hover {\n border-color: ', ';\n }\n &:disabled {\n border-color: ', ';\n color: ', ';\n }\n &:focus {\n outline: none;\n }\n &::placeholder {\n color: ', ';\n\n opacity: ', ';\n transition: 0.2s ease all;\n }\n\n &:focus::placeholder {\n color: ', ';\n\n opacity: ', ';\n }\n']);
15
16
 
16
17
  var _react = require('react');
17
18
 
@@ -45,10 +46,14 @@ var InputError = _styledComponents2.default.span(_templateObject2, function (pro
45
46
 
46
47
  var PasswordToggleButton = _styledComponents2.default.div(_templateObject3);
47
48
 
49
+ var CountWrappper = _styledComponents2.default.div(_templateObject4);
50
+
48
51
  var InputText = function InputText(_ref) {
49
- var defaultValue = _ref.defaultValue,
52
+ var maxlength = _ref.maxlength,
53
+ defaultValue = _ref.defaultValue,
50
54
  type = _ref.type,
51
- props = _objectWithoutProperties(_ref, ['defaultValue', 'type']);
55
+ showLengthCount = _ref.showLengthCount,
56
+ props = _objectWithoutProperties(_ref, ['maxlength', 'defaultValue', 'type', 'showLengthCount']);
52
57
 
53
58
  var _useState = (0, _react.useState)(true),
54
59
  _useState2 = _slicedToArray(_useState, 2),
@@ -81,7 +86,7 @@ var InputText = function InputText(_ref) {
81
86
  return _react2.default.createElement(
82
87
  InputTextDiv,
83
88
  { theme: props.theme },
84
- _react2.default.createElement(InputText.Element, _extends({ type: hidden ? type : 'text', value: props.value, defaultValue: defaultValue }, props)),
89
+ _react2.default.createElement(InputText.Element, _extends({ type: hidden ? type : 'text', value: props.value, defaultValue: defaultValue }, props, { maxLength: maxlength || '' })),
85
90
  props.label ? _react2.default.createElement(
86
91
  'label',
87
92
  {
@@ -95,6 +100,13 @@ var InputText = function InputText(_ref) {
95
100
  { value: props.value, theme: props.theme, error: props.error },
96
101
  errorMesssage
97
102
  ) : '',
103
+ maxlength && showLengthCount && _react2.default.createElement(
104
+ CountWrappper,
105
+ null,
106
+ props.value.length,
107
+ '/',
108
+ maxlength
109
+ ),
98
110
  type == 'password' || passwordButton ? _react2.default.createElement(
99
111
  PasswordToggleButton,
100
112
  {
@@ -120,7 +132,7 @@ var InputText = function InputText(_ref) {
120
132
  );
121
133
  };
122
134
 
123
- InputText.Element = _styledComponents2.default.input(_templateObject4, function (props) {
135
+ InputText.Element = _styledComponents2.default.input(_templateObject5, function (props) {
124
136
  return _tokens.colors[props.theme].inputCommon.background;
125
137
  }, function (props) {
126
138
  if (props.error) {
@@ -182,7 +194,7 @@ InputText.propTypes = {
182
194
  value: _propTypes2.default.string,
183
195
  /** The (HTML) maxlength for the input. */
184
196
  maxlength: _propTypes2.default.number,
185
-
197
+ showLengthCount: _propTypes2.default.bool,
186
198
  theme: _propTypes2.default.oneOf(['light', 'dark'])
187
199
 
188
200
  /** deprecate error string prop */
@@ -197,7 +209,8 @@ InputText.defaultProps = {
197
209
  type: 'text',
198
210
  maxlength: 50,
199
211
  theme: 'light',
200
- value: ''
212
+ value: '',
213
+ showLengthCount: false
201
214
  };
202
215
 
203
216
  exports.default = InputText;
@@ -19,9 +19,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
19
19
  _react2.default.createElement(
20
20
  _storyHelpers.Stack,
21
21
  null,
22
- _react2.default.createElement(_components.InputText, { type: 'text', label: 'First Name', maxLength: 3, onChange: function onChange(e) {
22
+ _react2.default.createElement(_components.InputText, { type: 'text', label: 'First Name', onKeyPress: function onKeyPress(e) {
23
+ return undefined.value = e.target.value;
24
+ }, onChange: function onChange(e) {
23
25
  return console.log(e.target.value);
24
- }, placeholder: 'Enter Name max 10', value: '', required: true }),
26
+ }, placeholder: 'Enter Name max 10', value: 'asd', required: true }),
25
27
  _react2.default.createElement(_components.InputText, { type: 'password', label: 'Middle Name', minLength: 3, maxLength: 6, placeholder: 'Show as password', required: true }),
26
28
  _react2.default.createElement(_components.InputText, { type: 'text', value: "hello", label: 'Label and default value', required: true })
27
29
  ),
@@ -60,7 +62,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
60
62
  _react2.default.createElement(
61
63
  _storyHelpers.Stack,
62
64
  null,
63
- _react2.default.createElement(_components.InputText, { theme: 'dark', type: 'text', label: 'First Name', maxLength: 3, onChange: function onChange(e) {
65
+ _react2.default.createElement(_components.InputText, { theme: 'dark', type: 'text', label: 'First Name', showLengthCount: true, maxLength: 3, onChange: function onChange(e) {
64
66
  return console.log(e.target.value);
65
67
  }, placeholder: 'Enter Name max 10', required: true }),
66
68
  _react2.default.createElement(_components.InputText, { theme: 'dark', type: 'password', label: 'Middle Name', minLength: 3, maxLength: 6, placeholder: 'Show as password', required: true }),
@@ -62,10 +62,10 @@ function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defi
62
62
 
63
63
  var StyledFilterCompoment = _styledComponents2.default.div(_templateObject, function (_ref) {
64
64
  var isMenuOpen = _ref.isMenuOpen;
65
- return isMenuOpen ? "95" : "1";
65
+ return isMenuOpen ? '95' : '1';
66
66
  }, function (_ref2) {
67
67
  var showSelectedFiltersAsChip = _ref2.showSelectedFiltersAsChip;
68
- return showSelectedFiltersAsChip ? "360px" : "30px";
68
+ return showSelectedFiltersAsChip ? '360px' : '30px';
69
69
  });
70
70
 
71
71
  var ApplyBtn = (0, _styledComponents2.default)(_button2.default)(_templateObject2);
@@ -73,7 +73,7 @@ var ResetBtn = (0, _styledComponents2.default)(_button2.default)(_templateObject
73
73
 
74
74
  var OverlayStyles = _styledComponents2.default.div(_templateObject4, function (_ref3) {
75
75
  var isMenuOpen = _ref3.isMenuOpen;
76
- return isMenuOpen ? "94" : "0";
76
+ return isMenuOpen ? '94' : '0';
77
77
  });
78
78
 
79
79
  var UserIdDropdown = _styledComponents2.default.div(_templateObject5);
@@ -95,14 +95,14 @@ var Filter = function (_Component) {
95
95
  })))));
96
96
 
97
97
  switch (groupItem.display_format) {
98
- case "CheckboxGroup":
98
+ case 'CheckboxGroup':
99
99
  {
100
- if (groupItem.select_type === "select") {
100
+ if (groupItem.select_type === 'select') {
101
101
  // single select
102
102
  var selected = selectedFiltersObj[groupItem.field].value === optionItem.field;
103
103
  if (selected && groupItem.min_selection === 0) {
104
- filters[groupItem.field].value = "";
105
- filters.params[groupItem.field] = "";
104
+ filters[groupItem.field].value = '';
105
+ filters.params[groupItem.field] = '';
106
106
  } else {
107
107
  filters[groupItem.field].value = optionItem.field;
108
108
  filters.params[groupItem.field] = optionItem.field;
@@ -121,7 +121,7 @@ var Filter = function (_Component) {
121
121
  return item === optionItem.field;
122
122
  });
123
123
 
124
- var maxSelection = typeof groupItem.max_selection === "number" ? groupItem.max_selection : groupItem.options.length;
124
+ var maxSelection = typeof groupItem.max_selection === 'number' ? groupItem.max_selection : groupItem.options.length;
125
125
  if (optionIndex < 0 && multiple.length < maxSelection) {
126
126
  multiple.push(optionItem.field);
127
127
  } else if (optionIndex > -1 && !(groupItem.required && multiple.length === 1)) {
@@ -132,21 +132,21 @@ var Filter = function (_Component) {
132
132
  break;
133
133
  }
134
134
 
135
- case "datepicker":
135
+ case 'datepicker':
136
136
  {
137
137
  filters[groupItem.field].value.key = optionItem.field; // in date, this needs to be added for highlighting the selected filters
138
- if (optionItem.field === "date_range") {
138
+ if (optionItem.field === 'date_range') {
139
139
  _this.setState({ isSelectRangeSelected: true }, function () {
140
140
  filters[groupItem.field].value.fromDate = selectedFiltersObj[groupItem.field].value.fromDate;
141
141
  filters[groupItem.field].value.toDate = selectedFiltersObj[groupItem.field].value.toDate;
142
142
  });
143
- } else if (optionItem.field === "week") {
143
+ } else if (optionItem.field === 'week') {
144
144
  filters[groupItem.field].value.fromDate = _constants.WEEK_DATE;
145
145
  filters[groupItem.field].value.toDate = _constants.CURRENT_DATE;
146
- } else if (optionItem.field === "month") {
146
+ } else if (optionItem.field === 'month') {
147
147
  filters[groupItem.field].value.fromDate = _constants.MONTH_DATE;
148
148
  filters[groupItem.field].value.toDate = _constants.CURRENT_DATE;
149
- } else if (optionItem.field === "three_month") {
149
+ } else if (optionItem.field === 'three_month') {
150
150
  filters[groupItem.field].value.fromDate = _constants.THREE_MONTHS;
151
151
  filters[groupItem.field].value.toDate = _constants.CURRENT_DATE;
152
152
  } else {
@@ -158,7 +158,7 @@ var Filter = function (_Component) {
158
158
  break;
159
159
  }
160
160
 
161
- case "input":
161
+ case 'input':
162
162
  {
163
163
  var selectedUserIds = _this.state.selectedUserIds;
164
164
 
@@ -176,32 +176,33 @@ var Filter = function (_Component) {
176
176
  }, '');
177
177
  filters[groupItem.field] = updatedUserIds;
178
178
  filters.params[groupItem.field] = updatedUserid;
179
- _this._userFilterInput.current.value = "";
179
+ _this._userFilterInput.current.value = '';
180
180
  }
181
181
 
182
182
  default:
183
183
  break;
184
184
  }
185
185
 
186
- _this.changeFilters("selected", filters);
186
+ _this.changeFilters('selected', filters);
187
187
  };
188
188
 
189
189
  _this.changeFilters = function (forAction, filters) {
190
190
  var initialFilters = _this.props.initialFilters;
191
191
 
192
192
  var newFilters = null;
193
- if (forAction === "reset") {
193
+ if (forAction === 'reset') {
194
194
  newFilters = initialFilters;
195
- } else if (forAction === "selected") {
195
+ } else if (forAction === 'selected') {
196
196
  newFilters = filters;
197
- } else if (forAction === "previous") {
197
+ } else if (forAction === 'previous') {
198
198
  newFilters = _this.props.selectedFilters;
199
199
  }
200
200
  _this.setState({
201
201
  selectedFiltersObj: newFilters,
202
- selectedFiltersFor: forAction
202
+ selectedFiltersFor: forAction,
203
+ autoSelectIndex: -1
203
204
  }, function () {
204
- if (forAction === "reset" || forAction === "previous") {
205
+ if (forAction === 'reset' || forAction === 'previous') {
205
206
  _this.applyFilters();
206
207
  }
207
208
  });
@@ -214,37 +215,37 @@ var Filter = function (_Component) {
214
215
  _this.highlightSelectedFilters = function (element, option) {
215
216
  var selectedFiltersObj = _this.state.selectedFiltersObj;
216
217
 
217
- var selectedStyle = "";
218
+ var selectedStyle = '';
218
219
  if (selectedFiltersObj[element.field]) {
219
- if (element.select_type === "select") {
220
- if (element.field === "date") {
220
+ if (element.select_type === 'select') {
221
+ if (element.field === 'date') {
221
222
  /*
222
223
  * for date we have value as Object which contains fromDate and toDate
223
224
  * so we add "key" in that object and check based on that key
224
225
  * key is nothing but the value of selected label
225
226
  */
226
- selectedStyle = selectedFiltersObj[element.field].value.key === option.field ? "checked" : "";
227
+ selectedStyle = selectedFiltersObj[element.field].value.key === option.field ? 'checked' : '';
227
228
  } else {
228
- selectedStyle = selectedFiltersObj[element.field].value === option.field ? "checked" : "";
229
+ selectedStyle = selectedFiltersObj[element.field].value === option.field ? 'checked' : '';
229
230
  }
230
- } else if (element.select_type === "multiselect") {
231
- selectedStyle = selectedFiltersObj[element.field].value.includes(option.field) ? "checked" : "";
231
+ } else if (element.select_type === 'multiselect') {
232
+ selectedStyle = selectedFiltersObj[element.field].value.includes(option.field) ? 'checked' : '';
232
233
  }
233
234
  }
234
- return "filter-group-item " + selectedStyle;
235
+ return 'filter-group-item ' + selectedStyle;
235
236
  };
236
237
 
237
238
  _this.renderFilterDisplayLabels = function (element) {
238
239
  var selectedFiltersObj = _this.state.selectedFiltersObj;
239
240
 
240
241
 
241
- var label = "";
242
+ var label = '';
242
243
 
243
244
  if (selectedFiltersObj && selectedFiltersObj[element.field]) {
244
- if (element.select_type === "select") {
245
- label = selectedFiltersObj[element.field].value ? selectedFiltersObj[element.field].label : "All"; // normal label - single select
245
+ if (element.select_type === 'select') {
246
+ label = selectedFiltersObj[element.field].value ? selectedFiltersObj[element.field].label : 'All'; // normal label - single select
246
247
 
247
- if (element.field === "date") {
248
+ if (element.field === 'date') {
248
249
  // eg. display like this Jan 10
249
250
  var value = selectedFiltersObj[element.field].value;
250
251
 
@@ -252,28 +253,37 @@ var Filter = function (_Component) {
252
253
  var end = new Date(value ? value.toDate : _constants.CURRENT_DATE);
253
254
  var fromattedFrom = _constants.MONTHS[from.getMonth()] + " " + from.getDate();
254
255
  var fromattedEnd = _constants.MONTHS[end.getMonth()] + " " + end.getDate();
255
- if (value.key === "date_range" && !value.toDate && !value.fromDate) {
256
- label = " - ";
257
- } else if (value.key === "date_range" || value.key === "week" || value.key === "month" || value.key === "three_month") {
256
+ if (value.key === 'date_range' && !value.toDate && !value.fromDate) {
257
+ label = ' - ';
258
+ } else if (value.key === 'date_range' || value.key === 'week' || value.key === 'month' || value.key === 'three_month') {
258
259
  label = fromattedFrom + " - " + fromattedEnd;
259
260
  } else {
260
261
  label = fromattedEnd;
261
262
  }
262
263
  }
263
- } else if (element.select_type === "multiselect") {
264
+ } else if (element.select_type === 'multiselect') {
264
265
  label = selectedFiltersObj[element.field].value.length;
265
266
  }
266
267
  }
267
268
 
268
- return "" + (element.title === "Date" ? "" : element.title + " : ") + label;
269
+ return "" + (element.title === 'Date' ? '' : element.title + " : ") + label;
269
270
  };
270
271
 
271
272
  _this.toggleFiltersMenu = function (flag) {
272
- _this.setState({ isMenuOpen: flag });
273
+ var selectedFilters = _this.props.selectedFilters;
274
+
275
+ if (flag) {
276
+ _this.setState({
277
+ isMenuOpen: flag,
278
+ selectedUserIds: selectedFilters && selectedFilters.user_id_filter
279
+ });
280
+ } else {
281
+ _this.setState({ isMenuOpen: flag });
282
+ }
273
283
  };
274
284
 
275
285
  _this.componentDidUpdate = function (prevProps, prevState, snapshot) {
276
- if (_this.state.selectedFiltersFor == "reset") {} else if (_this.state.selectedFiltersFor == "selected") {} else if (prevProps.selectedFilters && _this.state.selectedFiltersObj == null) {
286
+ if (_this.state.selectedFiltersFor == 'reset') {} else if (_this.state.selectedFiltersFor == 'selected') {} else if (prevProps.selectedFilters && _this.state.selectedFiltersObj == null) {
277
287
  _this.setState({
278
288
  selectedFiltersObj: _this.props.selectedFilters
279
289
  });
@@ -306,39 +316,54 @@ var Filter = function (_Component) {
306
316
  };
307
317
 
308
318
  _this.applyFilters = function (forData) {
309
- var selectedFiltersObj = _this.state.selectedFiltersObj;
319
+ var _this$state = _this.state,
320
+ selectedFiltersObj = _this$state.selectedFiltersObj,
321
+ selectedUserIds = _this$state.selectedUserIds;
310
322
  var _this$props = _this.props,
311
323
  applyFilters = _this$props.applyFilters,
312
324
  initialFilters = _this$props.initialFilters;
313
325
 
314
326
  _this.toggleFiltersMenu(false);
315
- if (forData === "reset") {
327
+ if (forData === 'reset') {
316
328
  _this.setState({
317
329
  selectedFiltersObj: initialFilters,
318
330
  showDropDownOptions: false,
319
331
  selectedUserIds: []
320
332
  }, function () {
321
- applyFilters(_this.state.selectedFiltersObj, "reset");
333
+ applyFilters(_this.state.selectedFiltersObj, 'reset');
322
334
  });
323
- } else if (forData === "cancel") {
335
+ } else if (forData === 'cancel') {
324
336
  _this.setState({
325
337
  selectedFiltersObj: _this.props.selectedFilters,
326
- showDropDownOptions: false
338
+ showDropDownOptions: false,
339
+ selectedUserIds: []
327
340
  }, function () {
328
341
  // applyFilters(this.state.selectedFiltersObj);
329
342
  });
330
343
  } else {
331
- applyFilters(selectedFiltersObj, "apply");
344
+ applyFilters(selectedFiltersObj, 'apply');
332
345
  }
333
346
  };
334
347
 
335
- _this.getClassName = function (user) {
336
- var selectedUserIds = _this.state.selectedUserIds;
348
+ _this.getClassName = function (user, indx) {
349
+ var _this$state2 = _this.state,
350
+ selectedUserIds = _this$state2.selectedUserIds,
351
+ autoSelectIndex = _this$state2.autoSelectIndex;
337
352
 
338
- var index = selectedUserIds.findIndex(function (userObj) {
339
- return userObj.user_id === user.user_id;
353
+ if (autoSelectIndex === indx) return 'dropdown-options active';else {
354
+ var index = selectedUserIds.findIndex(function (userObj) {
355
+ return userObj.user_id === user.user_id;
356
+ });
357
+ return index >= 0 ? 'dropdown-options active' : 'dropdown-options';
358
+ }
359
+ };
360
+
361
+ _this.resetSelectedUserFilter = function () {
362
+ _this.setState({
363
+ selectedUserIds: [],
364
+ showDropDownOptions: false,
365
+ autoSelectIndex: -1
340
366
  });
341
- return index >= 0 ? "dropdown-options active" : "dropdown-options";
342
367
  };
343
368
 
344
369
  _this.render = function () {
@@ -348,11 +373,11 @@ var Filter = function (_Component) {
348
373
  filterMessage = _this$props2.filterMessage,
349
374
  width = _this$props2.width,
350
375
  userIdsList = _this$props2.userIdsList;
351
- var _this$state = _this.state,
352
- isMenuOpen = _this$state.isMenuOpen,
353
- selectedFiltersObj = _this$state.selectedFiltersObj,
354
- isSelectRangeSelected = _this$state.isSelectRangeSelected,
355
- showDropDownOptions = _this$state.showDropDownOptions;
376
+ var _this$state3 = _this.state,
377
+ isMenuOpen = _this$state3.isMenuOpen,
378
+ selectedFiltersObj = _this$state3.selectedFiltersObj,
379
+ isSelectRangeSelected = _this$state3.isSelectRangeSelected,
380
+ showDropDownOptions = _this$state3.showDropDownOptions;
356
381
 
357
382
  return _react2.default.createElement(
358
383
  _react.Fragment,
@@ -379,9 +404,9 @@ var Filter = function (_Component) {
379
404
  className: "search-filter-list-box",
380
405
  onClick: function onClick() {
381
406
  _this.toggleFiltersMenu(!(isMenuOpen && !showSelectedFiltersAsChip));
382
- _this.applyFilters("cancel");
407
+ _this.applyFilters('cancel');
383
408
  if (isMenuOpen && !showSelectedFiltersAsChip) {
384
- _this.applyFilters("cancel");
409
+ _this.applyFilters('cancel');
385
410
  } else {
386
411
  _this.toggleFiltersMenu(true);
387
412
  }
@@ -390,7 +415,7 @@ var Filter = function (_Component) {
390
415
  !showSelectedFiltersAsChip && _react2.default.createElement(
391
416
  "div",
392
417
  {
393
- className: isMenuOpen ? "filter-button active" : "filter-button"
418
+ className: isMenuOpen ? 'filter-button active' : 'filter-button'
394
419
  },
395
420
  _react2.default.createElement(_icon2.default, { name: "filter", width: 16, height: 16, color: "#afb2ba" })
396
421
  ),
@@ -404,7 +429,7 @@ var Filter = function (_Component) {
404
429
  "span",
405
430
  {
406
431
  style: {
407
- color: "#63d0c7"
432
+ color: '#63d0c7'
408
433
  }
409
434
  },
410
435
  "FILTERS"
@@ -421,7 +446,7 @@ var Filter = function (_Component) {
421
446
  {
422
447
  key: item.text,
423
448
  theme: "dark",
424
- style: { cursor: "pointer" },
449
+ style: { cursor: 'pointer' },
425
450
  className: "chip-button checked"
426
451
  },
427
452
  _this.renderFilterDisplayLabels(item)
@@ -490,17 +515,20 @@ var Filter = function (_Component) {
490
515
  onChange: function onChange(e) {
491
516
  _this.handleDebounce(groupItem.permission, e.target.value);
492
517
  _this.setState({ showDropDownOptions: true });
518
+ },
519
+ onKeyDown: function onKeyDown(e) {
520
+ return _this.onKeyDown(e, groupItem);
493
521
  }
494
522
  // onFocus={(e) => this.setState({showDropDownOptions: true})}
495
523
  }),
496
524
  userIdsList && userIdsList.length > 0 && showDropDownOptions && _this._userFilterInput.current.value.length > 1 && _react2.default.createElement(
497
525
  "div",
498
526
  { className: "user-dropdown" },
499
- userIdsList.map(function (user) {
527
+ userIdsList.map(function (user, index) {
500
528
  return _react2.default.createElement(
501
529
  "p",
502
530
  {
503
- className: _this.getClassName(user),
531
+ className: _this.getClassName(user, index),
504
532
  onClick: function onClick(e) {
505
533
  return _this.onSelection(groupItem, user);
506
534
  }
@@ -512,83 +540,82 @@ var Filter = function (_Component) {
512
540
  )
513
541
  )
514
542
  );
515
- } else {
516
- return _react2.default.createElement(
543
+ }
544
+ return _react2.default.createElement(
545
+ "div",
546
+ { className: "filter-group", key: groupItem.field },
547
+ _react2.default.createElement(
517
548
  "div",
518
- { className: "filter-group", key: groupItem.field },
519
- _react2.default.createElement(
520
- "div",
521
- { className: "filter-group-title" },
522
- groupItem.title
523
- ),
524
- _react2.default.createElement(
525
- "div",
526
- { className: "filter-group-item-list" },
527
- groupItem.options.map(function (option) {
528
- return option.field === "date_range" ? _react2.default.createElement(_datePicker2.default, {
529
- theme: "dark",
530
- label: _react2.default.createElement(
531
- _tag2.default,
532
- {
533
- key: option.field,
534
- theme: "dark",
535
- className: "chip-button " + _this.highlightSelectedFilters(groupItem, option)
536
- },
537
- option.title
538
- ),
539
- className: _this.highlightSelectedFilters(groupItem, option),
540
- labelAsText: true,
541
- rangePicker: true,
542
- minDate: isSelectRangeSelected ? null : selectedFiltersObj[groupItem.field].value.fromDate - option.max_days * _constants.CONVERT,
543
- maxDate: isSelectRangeSelected ? _constants.CURRENT_DATE : selectedFiltersObj[groupItem.field].value.fromDate + option.max_days * _constants.CONVERT > _constants.CURRENT_DATE ? _constants.CURRENT_DATE : selectedFiltersObj[groupItem.field].value.fromDate + option.max_days * _constants.CONVERT,
544
- datepickerStep: 2,
545
- selected:
546
- // previousSelectedFilters && previousSelectedFilters[groupItem.field].value.key !='date_range' ? []:(
547
- selectedFiltersObj[groupItem.field] ? [selectedFiltersObj[groupItem.field].value.fromDate, selectedFiltersObj[groupItem.field].value.toDate] : []
548
- // )
549
- ,
550
- onSelectionChange: function onSelectionChange(date) {
551
- var filters = _extends({}, selectedFiltersObj);
552
- var formattedFrom = date.from ? new Date(date.from) : null;
553
- var formattedEnd = date.to ? new Date(date.to) : null; // new Date(date.to || CURRENT_DATE);
554
- filters[groupItem.field].value.fromDate = date.from;
555
- filters[groupItem.field].value.toDate = date.to; // || CURRENT_DATE;
556
- filters[groupItem.field].value.key = "date_range";
557
- filters[groupItem.field].label = date.from && date.to ? _constants.MONTHS[formattedFrom.getMonth()] + " " + formattedFrom.getDate() + " - " + _constants.MONTHS[formattedEnd.getMonth()] + " " + formattedEnd.getDate() : "no selection";
558
- _this.setState({ isSelectRangeSelected: false }, function () {
559
- _this.changeFilters("selected", filters);
560
- });
561
- },
562
- onCalendarOpen: function onCalendarOpen() {
563
- _this.onSelection(groupItem, option);
564
- }
565
- }) : _react2.default.createElement(
549
+ { className: "filter-group-title" },
550
+ groupItem.title
551
+ ),
552
+ _react2.default.createElement(
553
+ "div",
554
+ { className: "filter-group-item-list" },
555
+ groupItem.options.map(function (option) {
556
+ return option.field === 'date_range' ? _react2.default.createElement(_datePicker2.default, {
557
+ theme: "dark",
558
+ label: _react2.default.createElement(
566
559
  _tag2.default,
567
560
  {
568
561
  key: option.field,
569
562
  theme: "dark",
570
- className: "chip-button " + _this.highlightSelectedFilters(groupItem, option),
571
- onClick: function onClick() {
572
- // first range picker false then
573
- _this.setState({ isRangePickerVisible: false }, function () {
574
- _this.onSelection(groupItem, option);
575
- });
576
- }
563
+ className: 'chip-button ' + _this.highlightSelectedFilters(groupItem, option)
577
564
  },
578
565
  option.title
579
- );
580
- })
581
- )
582
- );
583
- }
566
+ ),
567
+ className: _this.highlightSelectedFilters(groupItem, option),
568
+ labelAsText: true,
569
+ rangePicker: true,
570
+ minDate: isSelectRangeSelected ? null : selectedFiltersObj[groupItem.field].value.fromDate - option.max_days * _constants.CONVERT,
571
+ maxDate: isSelectRangeSelected ? _constants.CURRENT_DATE : selectedFiltersObj[groupItem.field].value.fromDate + option.max_days * _constants.CONVERT > _constants.CURRENT_DATE ? _constants.CURRENT_DATE : selectedFiltersObj[groupItem.field].value.fromDate + option.max_days * _constants.CONVERT,
572
+ datepickerStep: 2,
573
+ selected:
574
+ // previousSelectedFilters && previousSelectedFilters[groupItem.field].value.key !='date_range' ? []:(
575
+ selectedFiltersObj[groupItem.field] ? [selectedFiltersObj[groupItem.field].value.fromDate, selectedFiltersObj[groupItem.field].value.toDate] : []
576
+ // )
577
+ ,
578
+ onSelectionChange: function onSelectionChange(date) {
579
+ var filters = _extends({}, selectedFiltersObj);
580
+ var formattedFrom = date.from ? new Date(date.from) : null;
581
+ var formattedEnd = date.to ? new Date(date.to) : null; // new Date(date.to || CURRENT_DATE);
582
+ filters[groupItem.field].value.fromDate = date.from;
583
+ filters[groupItem.field].value.toDate = date.to; // || CURRENT_DATE;
584
+ filters[groupItem.field].value.key = 'date_range';
585
+ filters[groupItem.field].label = date.from && date.to ? _constants.MONTHS[formattedFrom.getMonth()] + " " + formattedFrom.getDate() + " - " + _constants.MONTHS[formattedEnd.getMonth()] + " " + formattedEnd.getDate() : 'no selection';
586
+ _this.setState({ isSelectRangeSelected: false }, function () {
587
+ _this.changeFilters('selected', filters);
588
+ });
589
+ },
590
+ onCalendarOpen: function onCalendarOpen() {
591
+ _this.onSelection(groupItem, option);
592
+ }
593
+ }) : _react2.default.createElement(
594
+ _tag2.default,
595
+ {
596
+ key: option.field,
597
+ theme: "dark",
598
+ className: 'chip-button ' + _this.highlightSelectedFilters(groupItem, option),
599
+ onClick: function onClick() {
600
+ // first range picker false then
601
+ _this.setState({ isRangePickerVisible: false }, function () {
602
+ _this.onSelection(groupItem, option);
603
+ });
604
+ }
605
+ },
606
+ option.title
607
+ );
608
+ })
609
+ )
610
+ );
584
611
  }) : null,
585
612
  _react2.default.createElement(
586
613
  "div",
587
614
  {
588
615
  style: {
589
- margin: "15px 0px 0px",
590
- textAlign: "center",
591
- display: "flex"
616
+ margin: '15px 0px 0px',
617
+ textAlign: 'center',
618
+ display: 'flex'
592
619
  }
593
620
  },
594
621
  _react2.default.createElement(
@@ -597,7 +624,7 @@ var Filter = function (_Component) {
597
624
  appearance: "cta",
598
625
  onClick: function onClick() {
599
626
  // this.toggleFiltersMenu(false);
600
- _this.applyFilters("reset");
627
+ _this.applyFilters('reset');
601
628
  // this.changeFilters('reset', null);
602
629
  }
603
630
  },
@@ -628,8 +655,8 @@ var Filter = function (_Component) {
628
655
  selectedFiltersFor: null,
629
656
  isSelectRangeSelected: false, // this is based on max_days
630
657
  selectedUserIds: [],
631
- userInput: "",
632
- showDropDownOptions: false
658
+ showDropDownOptions: false,
659
+ autoSelectIndex: -1
633
660
  };
634
661
  _this._userFilter = _react2.default.createRef();
635
662
  _this._userFilterInput = _react2.default.createRef();
@@ -637,48 +664,98 @@ var Filter = function (_Component) {
637
664
  }
638
665
 
639
666
  /**
640
- * This function handle the onChange event in the filter.
641
- * @param {Object} groupItem GUI elements for the particular section
642
- * @param {Object} optionItem the item from the options of that section
643
- */
667
+ * This function handle the onChange event in the filter.
668
+ * @param {Object} groupItem GUI elements for the particular section
669
+ * @param {Object} optionItem the item from the options of that section
670
+ */
644
671
 
645
672
 
646
673
  /**
647
- * This function performs action based on forAction on filters object
648
- * @param {String} forAction action performed on the filter object
649
- * @param {Object} filters Object containing current filters selected values
650
- */
674
+ * This function performs action based on forAction on filters object
675
+ * @param {String} forAction action performed on the filter object
676
+ * @param {Object} filters Object containing current filters selected values
677
+ */
651
678
 
652
679
 
653
680
  /**
654
- * This function hadles the onchange event for search input field inside filter
655
- * @param {string} query Input Filed value
656
- * @param {string} permission Type of dashboard
657
- */
681
+ * This function hadles the onchange event for search input field inside filter
682
+ * @param {string} query Input Filed value
683
+ * @param {string} permission Type of dashboard
684
+ */
658
685
 
659
686
 
660
- // to highlight selected filters
687
+ _createClass(Filter, [{
688
+ key: "onKeyDown",
661
689
 
662
690
 
663
- // this to render filter label based on selectedFiltersObj
691
+ /**
692
+ * This function handles the keypress traverse over the dropdown option list
693
+ * @param {Object} e the event object that is fired
694
+ * @param {Object} groupItem Object containing groupitem details
695
+ */
696
+ value: function onKeyDown(e, groupItem) {
697
+ var autoSelectIndex = this.state.autoSelectIndex;
698
+ var userIdsList = this.props.userIdsList;
664
699
 
665
700
 
666
- /**
667
- * This function toggle filters menu - show & hide.
668
- * @param {boolean} flag contains value true/false to show/ hide filter.
669
- */
701
+ if (userIdsList.length) {
702
+ switch (e.keyCode) {
703
+ case 13:
704
+ e.preventDefault();
705
+ this.onSelection(groupItem, userIdsList[autoSelectIndex]);
706
+ break;
707
+ case 40:
708
+ {
709
+ e.preventDefault();
710
+ var nextIndex = autoSelectIndex + 1;
711
+ if (nextIndex > userIdsList.length - 1) {
712
+ nextIndex = userIdsList.length - 1;
713
+ }
714
+ this.setState({
715
+ autoSelectIndex: nextIndex
716
+ });
717
+ }
718
+ break;
719
+ case 38:
720
+ {
721
+ e.preventDefault();
722
+ var prevIndex = autoSelectIndex - 1;
723
+ if (prevIndex < 0) {
724
+ prevIndex = userIdsList.length - 1;
725
+ }
726
+ this.setState({
727
+ autoSelectIndex: prevIndex
728
+ });
729
+ }
730
+ break;
731
+ default:
732
+ // eslint-disable-next-line no-console
733
+ console.log('Default Case');
734
+ }
735
+ }
736
+ }
670
737
 
738
+ // to highlight selected filters
671
739
 
672
- _createClass(Filter, [{
740
+
741
+ // this to render filter label based on selectedFiltersObj
742
+
743
+
744
+ /**
745
+ * This function toggle filters menu - show & hide.
746
+ * @param {boolean} flag contains value true/false to show/ hide filter.
747
+ */
748
+
749
+ }, {
673
750
  key: "componentDidMount",
674
751
  value: function componentDidMount() {
675
752
  document.body.addEventListener('click', this.toggleDropDown);
676
753
  }
677
754
 
678
755
  /**
679
- * This function hides the dropdown list when user clicks outside the area of input box
680
- * @param {Object} e click event that gets fired.
681
- */
756
+ * This function hides the dropdown list when user clicks outside the area of input box
757
+ * @param {Object} e click event that gets fired.
758
+ */
682
759
 
683
760
 
684
761
  /**
@@ -688,10 +765,15 @@ var Filter = function (_Component) {
688
765
 
689
766
 
690
767
  /**
691
- * This function takes the current user object from the dropdown list and checks if it is pre-selected.
692
- * @param {Objec} user object that contains details for the user
693
- * @returns the name of class with active state or not.
694
- */
768
+ * This function takes the current user object from the dropdown list and checks if it is pre-selected.
769
+ * @param {Objec} user object that contains details for the user
770
+ * @returns the name of class with active state or not.
771
+ */
772
+
773
+
774
+ /**
775
+ * This function reset userIds in the filter.
776
+ */
695
777
 
696
778
  }]);
697
779
 
@@ -709,7 +791,7 @@ Filter.propTypes = {
709
791
  };
710
792
 
711
793
  Filter.defaultProps = {
712
- width: "360px"
794
+ width: '360px'
713
795
  };
714
796
 
715
797
  exports.default = Filter;
@@ -558,6 +558,11 @@ var Table = function (_Component) {
558
558
  _this.handleDebounce(text);
559
559
  };
560
560
 
561
+ _this.resetSearchTextAndFilters = function () {
562
+ _this.handleInputChange('');
563
+ _this._filterRef.current.resetSelectedUserFilter();
564
+ };
565
+
561
566
  _this.handleDebounce = (0, _lodash.debounce)(function (text) {
562
567
  var getSearchedRows = _this.props.getSearchedRows;
563
568
 
@@ -597,6 +602,7 @@ var Table = function (_Component) {
597
602
  // isAllRowsSelected:false,
598
603
  searchedText: ''
599
604
  };
605
+
600
606
  return _this;
601
607
  }
602
608
 
@@ -837,6 +843,11 @@ var Table = function (_Component) {
837
843
  */
838
844
 
839
845
 
846
+ /**
847
+ * This function reset Search & filters.
848
+ */
849
+
850
+
840
851
  /**
841
852
  * This function triggers API call with the text as searched keyword
842
853
  * @param {string} text the searched text
@@ -1007,11 +1018,11 @@ var Table = function (_Component) {
1007
1018
  null,
1008
1019
  _react2.default.createElement(
1009
1020
  "span",
1010
- null,
1021
+ { className: "search-icon-wrapper" },
1011
1022
  _react2.default.createElement(_icon2.default, {
1012
1023
  name: "search",
1013
- width: 10,
1014
- height: 10,
1024
+ width: 12,
1025
+ height: 12,
1015
1026
  color: "#999999"
1016
1027
  })
1017
1028
  ),
@@ -1079,6 +1090,7 @@ var Table = function (_Component) {
1079
1090
  )
1080
1091
  ),
1081
1092
  this.props.filtersStructure && this.props.filtersStructure.length ? _react2.default.createElement(_filter2.default, {
1093
+ ref: this._filterRef,
1082
1094
  initialFilters: this.props.initialFilters,
1083
1095
  filtersStructure: this.props.filtersStructure,
1084
1096
  selectedFilters: this.props.selectedFilters,
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@desynova-digital/components",
3
- "version": "8.5.2",
3
+ "version": "8.7.0",
4
4
  "description": "Components for Desynova Digital",
5
5
  "main": "index.js",
6
6
  "author": "desynova-digital",
7
7
  "license": "MIT",
8
8
  "repository": "desynova-digital",
9
9
  "dependencies": {
10
- "@desynova-digital/tokens": "8.5.2",
10
+ "@desynova-digital/tokens": "8.7.0",
11
11
  "prop-types": "^15.7.2",
12
12
  "styled-components": "^4.3.2"
13
13
  },