intelicoreact 1.2.47 → 1.2.49

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 (73) hide show
  1. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +134 -23
  2. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +169 -14
  3. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +5 -14
  4. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +22 -23
  5. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +199 -29
  6. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +209 -7
  7. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +4 -4
  8. package/dist/Atomic/UI/Hint/Hint.js +5 -23
  9. package/dist/Atomic/UI/Modal/Modal.js +1 -1
  10. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +0 -3
  11. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +42 -0
  12. package/dist/Molecular/CustomIcons/components/AlertCircle.js +42 -0
  13. package/dist/Molecular/CustomIcons/components/AppStore.js +46 -0
  14. package/dist/Molecular/CustomIcons/components/Arrow.js +52 -0
  15. package/dist/Molecular/CustomIcons/components/ArrowDown.js +34 -0
  16. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +37 -0
  17. package/dist/Molecular/CustomIcons/components/ArrowRight.js +37 -0
  18. package/dist/Molecular/CustomIcons/components/ArrowUp.js +34 -0
  19. package/dist/Molecular/CustomIcons/components/Bell.js +32 -0
  20. package/dist/Molecular/CustomIcons/components/Button.js +32 -0
  21. package/dist/Molecular/CustomIcons/components/Campaigns.js +33 -0
  22. package/dist/Molecular/CustomIcons/components/Check.js +33 -0
  23. package/dist/Molecular/CustomIcons/components/Check2.js +32 -0
  24. package/dist/Molecular/CustomIcons/components/ChevronDown.js +32 -0
  25. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +32 -0
  26. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +32 -0
  27. package/dist/Molecular/CustomIcons/components/ChevronRight.js +32 -0
  28. package/dist/Molecular/CustomIcons/components/ChevronUp.js +32 -0
  29. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +47 -0
  30. package/dist/Molecular/CustomIcons/components/Close.js +34 -0
  31. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +59 -0
  32. package/dist/Molecular/CustomIcons/components/Delete.js +33 -0
  33. package/dist/Molecular/CustomIcons/components/Edit.js +32 -0
  34. package/dist/Molecular/CustomIcons/components/Email.js +50 -0
  35. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +40 -0
  36. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +48 -0
  37. package/dist/Molecular/CustomIcons/components/Flows.js +32 -0
  38. package/dist/Molecular/CustomIcons/components/Gift.js +37 -0
  39. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +46 -0
  40. package/dist/Molecular/CustomIcons/components/GooglePlay.js +46 -0
  41. package/dist/Molecular/CustomIcons/components/HelpCircle.js +35 -0
  42. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +36 -0
  43. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +35 -0
  44. package/dist/Molecular/CustomIcons/components/Home.js +35 -0
  45. package/dist/Molecular/CustomIcons/components/Home2.js +38 -0
  46. package/dist/Molecular/CustomIcons/components/Key.js +40 -0
  47. package/dist/Molecular/CustomIcons/components/Landers.js +36 -0
  48. package/dist/Molecular/CustomIcons/components/Lock.js +32 -0
  49. package/dist/Molecular/CustomIcons/components/Mail.js +40 -0
  50. package/dist/Molecular/CustomIcons/components/Mastercard.js +82 -0
  51. package/dist/Molecular/CustomIcons/components/Minus.js +45 -0
  52. package/dist/Molecular/CustomIcons/components/Offers.js +33 -0
  53. package/dist/Molecular/CustomIcons/components/Pause.js +45 -0
  54. package/dist/Molecular/CustomIcons/components/PayPal.js +59 -0
  55. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +46 -0
  56. package/dist/Molecular/CustomIcons/components/Phone.js +47 -0
  57. package/dist/Molecular/CustomIcons/components/Play.js +45 -0
  58. package/dist/Molecular/CustomIcons/components/Plus.js +45 -0
  59. package/dist/Molecular/CustomIcons/components/Profile.js +37 -0
  60. package/dist/Molecular/CustomIcons/components/QRCode.js +47 -0
  61. package/dist/Molecular/CustomIcons/components/Rectangle.js +32 -0
  62. package/dist/Molecular/CustomIcons/components/Revert.js +35 -0
  63. package/dist/Molecular/CustomIcons/components/Star.js +31 -0
  64. package/dist/Molecular/CustomIcons/components/Star2.js +33 -0
  65. package/dist/Molecular/CustomIcons/components/TrafficSources.js +35 -0
  66. package/dist/Molecular/CustomIcons/components/Trash.js +32 -0
  67. package/dist/Molecular/CustomIcons/components/TrashRed.js +32 -0
  68. package/dist/Molecular/CustomIcons/components/Triggers.js +32 -0
  69. package/dist/Molecular/CustomIcons/components/User.js +37 -0
  70. package/dist/Molecular/CustomIcons/components/Visa.js +48 -0
  71. package/dist/Molecular/CustomIcons/components/X.js +32 -0
  72. package/dist/Molecular/CustomIcons/index.js +798 -0
  73. package/package.json +1 -1
@@ -29,17 +29,31 @@ var _TagList = _interopRequireDefault(require("../../UI/TagList/TagList"));
29
29
 
30
30
  var _Tag = _interopRequireDefault(require("../../UI/Tag/Tag"));
31
31
 
32
+ var _CheckboxInput = _interopRequireDefault(require("../../FormElements/CheckboxInput/CheckboxInput"));
33
+
34
+ var _Input = _interopRequireDefault(require("../../FormElements/Input/Input"));
35
+
36
+ var _CustomIcons = require("../../../Molecular/CustomIcons");
37
+
32
38
  var _fieldValueFormatters = require("../../../Functions/fieldValueFormatters");
33
39
 
40
+ var _useIsMobile2 = _interopRequireDefault(require("../../../Functions/useIsMobile"));
41
+
34
42
  require("./TagsDropdown.scss");
35
43
 
36
44
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
45
 
38
46
  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; }
39
47
 
48
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
49
+
50
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
51
+
40
52
  var RC = 'tags-dropdown';
41
53
 
42
54
  var TagsDropdown = function TagsDropdown(_ref) {
55
+ var _dropdownListWrapperR, _dropdownListWrapperR2, _dropdownListRef$curr5, _dropdownListRef$curr6;
56
+
43
57
  var options = _ref.options,
44
58
  _ref$chosenOptions = _ref.chosenOptions,
45
59
  chosenOptions = _ref$chosenOptions === void 0 ? [] : _ref$chosenOptions,
@@ -72,12 +86,31 @@ var TagsDropdown = function TagsDropdown(_ref) {
72
86
  closeOnSelect = _ref$closeOnSelect === void 0 ? false : _ref$closeOnSelect,
73
87
  _ref$closeOnRemove = _ref.closeOnRemove,
74
88
  closeOnRemove = _ref$closeOnRemove === void 0 ? false : _ref$closeOnRemove,
89
+ _ref$closeOnRemoveAll = _ref.closeOnRemoveAll,
90
+ closeOnRemoveAll = _ref$closeOnRemoveAll === void 0 ? false : _ref$closeOnRemoveAll,
91
+ _ref$closeOnSelectAll = _ref.closeOnSelectAll,
92
+ closeOnSelectAll = _ref$closeOnSelectAll === void 0 ? false : _ref$closeOnSelectAll,
93
+ _ref$closeOnSelectMob = _ref.closeOnSelectMobile,
94
+ closeOnSelectMobile = _ref$closeOnSelectMob === void 0 ? false : _ref$closeOnSelectMob,
95
+ _ref$closeOnRemoveMob = _ref.closeOnRemoveMobile,
96
+ closeOnRemoveMobile = _ref$closeOnRemoveMob === void 0 ? false : _ref$closeOnRemoveMob,
97
+ _ref$closeOnRemoveAll2 = _ref.closeOnRemoveAllMobile,
98
+ closeOnRemoveAllMobile = _ref$closeOnRemoveAll2 === void 0 ? false : _ref$closeOnRemoveAll2,
99
+ _ref$closeOnSelectAll2 = _ref.closeOnSelectAllMobile,
100
+ closeOnSelectAllMobile = _ref$closeOnSelectAll2 === void 0 ? false : _ref$closeOnSelectAll2,
75
101
  fieldKey = _ref.fieldKey,
76
102
  id = _ref.id,
77
103
  _ref$noOptionsText = _ref.noOptionsText,
78
104
  noOptionsText = _ref$noOptionsText === void 0 ? 'No options available' : _ref$noOptionsText,
105
+ mobileSearchPlaceholder = _ref.mobileSearchPlaceholder,
106
+ _ref$isSearchable = _ref.isSearchable,
107
+ isSearchable = _ref$isSearchable === void 0 ? true : _ref$isSearchable,
79
108
  _ref$attributesOfNati = _ref.attributesOfNativeInput,
80
109
  attributesOfNativeInput = _ref$attributesOfNati === void 0 ? {} : _ref$attributesOfNati;
110
+
111
+ var _useIsMobile = (0, _useIsMobile2.default)(),
112
+ isMobile = _useIsMobile.isMobile;
113
+
81
114
  var dropdownId = fieldKey || id;
82
115
 
83
116
  var _useState = (0, _react.useState)(false),
@@ -91,6 +124,8 @@ var TagsDropdown = function TagsDropdown(_ref) {
91
124
  setSearchValue = _useState4[1];
92
125
 
93
126
  var dropdownRef = (0, _react.useRef)(null);
127
+ var dropdownListRef = (0, _react.useRef)(null);
128
+ var dropdownListWrapperRef = (0, _react.useRef)(null);
94
129
  var inputRef = (0, _react.useRef)(null);
95
130
 
96
131
  var _useState5 = (0, _react.useState)(null),
@@ -98,6 +133,16 @@ var TagsDropdown = function TagsDropdown(_ref) {
98
133
  initListHeight = _useState6[0],
99
134
  setInitListHeight = _useState6[1];
100
135
 
136
+ var _useState7 = (0, _react.useState)(null),
137
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
138
+ isScrollableList = _useState8[0],
139
+ setIsScrollableList = _useState8[1];
140
+
141
+ var _useState9 = (0, _react.useState)(false),
142
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
143
+ isFixedMaxHeight = _useState10[0],
144
+ setIsFixedMaxHeight = _useState10[1];
145
+
101
146
  var singleLevelOptions = options === null || options === void 0 ? void 0 : options.reduce(function (acc, item) {
102
147
  return [].concat((0, _toConsumableArray2.default)(acc), (0, _toConsumableArray2.default)(item.groupName ? item.list : [item]));
103
148
  }, []);
@@ -116,7 +161,7 @@ var TagsDropdown = function TagsDropdown(_ref) {
116
161
  };
117
162
 
118
163
  var deleteChosen = function deleteChosen(value) {
119
- if (closeOnRemove) setIsOpen(false);
164
+ if (isMobile ? closeOnRemoveMobile : closeOnRemove) setIsOpen(false);
120
165
  onChange(chosenOptions.filter(function (item) {
121
166
  return item !== value;
122
167
  }), 'chosenOptions');
@@ -127,7 +172,7 @@ var TagsDropdown = function TagsDropdown(_ref) {
127
172
 
128
173
  if ((item === null || item === void 0 ? void 0 : item.closeOnOptionSelect) !== undefined) {
129
174
  if (item.closeOnOptionSelect) setIsOpen(false);
130
- } else if (closeOnSelect) setIsOpen(false);
175
+ } else if (isMobile ? closeOnSelectMobile : closeOnSelect) setIsOpen(false);
131
176
 
132
177
  setSearchValue('');
133
178
 
@@ -151,16 +196,29 @@ var TagsDropdown = function TagsDropdown(_ref) {
151
196
  var getMarkupForElement = function getMarkupForElement(item) {
152
197
  var _title$toString;
153
198
 
199
+ var description = item.description;
154
200
  var title = item.title || item.label;
155
- return title.toLowerCase().includes((searchValue === null || searchValue === void 0 ? void 0 : searchValue.toLowerCase()) || '') ? /*#__PURE__*/_react.default.createElement("button", {
201
+
202
+ var hightlightSearchValue = function hightlightSearchValue(title) {
203
+ var _title$toLowerCase;
204
+
205
+ var index = (_title$toLowerCase = title.toLowerCase()) === null || _title$toLowerCase === void 0 ? void 0 : _title$toLowerCase.indexOf(searchValue.toLowerCase());
206
+ if (index === -1) return title;
207
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, title.substring(0, index), /*#__PURE__*/_react.default.createElement("span", {
208
+ className: "search-match"
209
+ }, title.substring(index, index + (searchValue === null || searchValue === void 0 ? void 0 : searchValue.length))), title.substring(index + (searchValue === null || searchValue === void 0 ? void 0 : searchValue.length)));
210
+ };
211
+
212
+ return /*#__PURE__*/_react.default.createElement("button", {
156
213
  key: title === null || title === void 0 ? void 0 : (_title$toString = title.toString()) === null || _title$toString === void 0 ? void 0 : _title$toString.replace(/ /g, '_'),
157
- onClick: function onClick() {
158
- return onChangeHandler(item);
214
+ onClick: function onClick(e) {
215
+ e.stopPropagation();
216
+ onChangeHandler(item);
159
217
  },
160
218
  className: (0, _classnames.default)("".concat(RC, "__list-item"), (0, _defineProperty2.default)({}, "".concat(RC, "__list-item_active"), chosenOptions === null || chosenOptions === void 0 ? void 0 : chosenOptions.some(function (value) {
161
219
  return value === item.value;
162
220
  })), (0, _defineProperty2.default)({}, "".concat(RC, "__list-item_disabled"), item.disabled), (0, _defineProperty2.default)({}, "".concat(RC, "__list-item_freezed"), item === null || item === void 0 ? void 0 : item.isFreezed), item.className)
163
- }, /*#__PURE__*/_react.default.createElement("span", {
221
+ }, !isMobile && /*#__PURE__*/_react.default.createElement("span", {
164
222
  className: (0, _classnames.default)("".concat(RC, "__active-icon"), (0, _defineProperty2.default)({}, "".concat(RC, "__active-icon_active"), chosenOptions === null || chosenOptions === void 0 ? void 0 : chosenOptions.some(function (value) {
165
223
  return value === item.value;
166
224
  })))
@@ -168,7 +226,17 @@ var TagsDropdown = function TagsDropdown(_ref) {
168
226
  width: 16,
169
227
  height: 16,
170
228
  className: "color--text"
171
- })), title) : null;
229
+ })), /*#__PURE__*/_react.default.createElement("div", {
230
+ className: (0, _classnames.default)("".concat(RC, "__list-item-body"))
231
+ }, /*#__PURE__*/_react.default.createElement("span", {
232
+ className: (0, _classnames.default)("".concat(RC, "__list-item-title"))
233
+ }, hightlightSearchValue(title)), description && /*#__PURE__*/_react.default.createElement("span", {
234
+ className: (0, _classnames.default)("".concat(RC, "__list-item-description"))
235
+ }, description)), isMobile && /*#__PURE__*/_react.default.createElement(_CheckboxInput.default, {
236
+ value: chosenOptions === null || chosenOptions === void 0 ? void 0 : chosenOptions.some(function (value) {
237
+ return value === item.value;
238
+ })
239
+ }));
172
240
  };
173
241
 
174
242
  var prepareOptions = function prepareOptions(options) {
@@ -188,7 +256,7 @@ var TagsDropdown = function TagsDropdown(_ref) {
188
256
  var value = _ref4.value;
189
257
  return value;
190
258
  })) || [])), 'chosenOptions');
191
- if (closeOnSelect) setIsOpen(false);
259
+ if (isMobile ? closeOnSelectAllMobile : closeOnSelectAll) setIsOpen(false);
192
260
  };
193
261
 
194
262
  var unselectAllItems = function unselectAllItems(e) {
@@ -200,7 +268,7 @@ var TagsDropdown = function TagsDropdown(_ref) {
200
268
  return value === item;
201
269
  })) === null || _prepareOptions2$find === void 0 ? void 0 : _prepareOptions2$find.isFreezed;
202
270
  }), 'chosenOptions');
203
- if (closeOnRemove) setIsOpen(false);
271
+ if (isMobile ? closeOnRemoveAllMobile : closeOnRemoveAll) setIsOpen(false);
204
272
  };
205
273
 
206
274
  var getParentNode = function getParentNode() {
@@ -221,7 +289,7 @@ var TagsDropdown = function TagsDropdown(_ref) {
221
289
  };
222
290
 
223
291
  var setListContainerStyles = function setListContainerStyles() {
224
- var _dropdownRef$current$, _dropdownRef$current, _getComputedStyle$mar, _getComputedStyle, _getComputedStyle$mar2, _getComputedStyle$max, _getComputedStyle2, _getComputedStyle2$ma, _dl$getBoundingClient, _sw$getBoundingClient;
292
+ var _dropdownRef$current$, _dropdownRef$current, _getComputedStyle$mar, _getComputedStyle, _getComputedStyle$mar2, _getComputedStyle$max, _getComputedStyle2, _getComputedStyle2$ma, _dl$getBoundingClient, _sw$getBoundingClient, _sw$getBoundingClient2, _lh$getBoundingClient, _lf$getBoundingClient;
225
293
 
226
294
  var lc = getListContainer();
227
295
  if (!lc || !isOpen) return false;
@@ -233,8 +301,10 @@ var TagsDropdown = function TagsDropdown(_ref) {
233
301
  left = _ref6.left,
234
302
  top = _ref6.top;
235
303
 
236
- var sw = lc.getElementsByClassName('tags-dropdown__selector-wrapper')[0];
304
+ var sw = dropdownListWrapperRef === null || dropdownListWrapperRef === void 0 ? void 0 : dropdownListWrapperRef.current;
237
305
  var dl = lc.getElementsByClassName('tags-dropdown__list')[0];
306
+ var lh = sw === null || sw === void 0 ? void 0 : sw.getElementsByClassName('tags-dropdown__header')[0];
307
+ var lf = sw === null || sw === void 0 ? void 0 : sw.getElementsByClassName('tags-dropdown__footer')[0];
238
308
  var margin = parseInt((_getComputedStyle$mar = (_getComputedStyle = getComputedStyle(sw)) === null || _getComputedStyle === void 0 ? void 0 : (_getComputedStyle$mar2 = _getComputedStyle.marginTop) === null || _getComputedStyle$mar2 === void 0 ? void 0 : _getComputedStyle$mar2.replace('px', '')) !== null && _getComputedStyle$mar !== void 0 ? _getComputedStyle$mar : 0);
239
309
  var maxHeight = initListHeight !== null && initListHeight !== void 0 ? initListHeight : parseInt((_getComputedStyle$max = (_getComputedStyle2 = getComputedStyle(dl)) === null || _getComputedStyle2 === void 0 ? void 0 : (_getComputedStyle2$ma = _getComputedStyle2.maxHeight) === null || _getComputedStyle2$ma === void 0 ? void 0 : _getComputedStyle2$ma.replace('px', '')) !== null && _getComputedStyle$max !== void 0 ? _getComputedStyle$max : 0);
240
310
  if (initListHeight === null) setInitListHeight(maxHeight);
@@ -244,13 +314,13 @@ var TagsDropdown = function TagsDropdown(_ref) {
244
314
  var swHeight = sw === null || sw === void 0 ? void 0 : (_sw$getBoundingClient = sw.getBoundingClientRect()) === null || _sw$getBoundingClient === void 0 ? void 0 : _sw$getBoundingClient.height;
245
315
  var controlsHeight = swHeight - dlHeight;
246
316
  if (swHeight > maxHeight) swHeight = maxHeight - 2 * margin;
247
- var maxSwHeight = toTop - margin >= maxHeight || toBottom - margin >= maxHeight ? maxHeight - 3 * margin : toTop > toBottom ? toTop - 3 * margin : toBottom - 4 * margin;
317
+ var maxSwHeight = isMobile ? (sw === null || sw === void 0 ? void 0 : (_sw$getBoundingClient2 = sw.getBoundingClientRect()) === null || _sw$getBoundingClient2 === void 0 ? void 0 : _sw$getBoundingClient2.height) - (lh === null || lh === void 0 ? void 0 : (_lh$getBoundingClient = lh.getBoundingClientRect()) === null || _lh$getBoundingClient === void 0 ? void 0 : _lh$getBoundingClient.height) - (lf === null || lf === void 0 ? void 0 : (_lf$getBoundingClient = lf.getBoundingClientRect()) === null || _lf$getBoundingClient === void 0 ? void 0 : _lf$getBoundingClient.height) : toTop - margin >= maxHeight || toBottom - margin >= maxHeight ? maxHeight - 3 * margin : toTop > toBottom ? toTop - 3 * margin : toBottom - 4 * margin;
248
318
  var listPos = toTop < toBottom || toBottom >= swHeight ? 'bottom' : 'top';
249
319
  if (swHeight > (listPos === 'top' ? toTop : toBottom)) swHeight = (listPos === 'top' ? toTop : toBottom) - 3 * margin;
250
320
  lc.style.minWidth = "".concat(width, "px");
251
321
  lc.style.left = "".concat(left, "px");
252
322
  lc.style.top = "".concat(listPos === 'bottom' ? top + height : top - swHeight - 2 * margin, "px");
253
- dl.style.maxHeight = "".concat(maxSwHeight - controlsHeight, "px");
323
+ dl.style.maxHeight = "".concat(isMobile ? maxSwHeight : maxSwHeight - controlsHeight, "px");
254
324
  };
255
325
 
256
326
  var renderListContainer = function renderListContainer() {
@@ -267,28 +337,91 @@ var TagsDropdown = function TagsDropdown(_ref) {
267
337
  return false;
268
338
  };
269
339
 
340
+ var isItemMatchesSearch = function isItemMatchesSearch(item) {
341
+ var title = item.title || item.label;
342
+ return searchValue.length ? title.toLowerCase().includes((searchValue === null || searchValue === void 0 ? void 0 : searchValue.toLowerCase()) || '') : true;
343
+ };
344
+
345
+ var getFilteredOptions = function getFilteredOptions(options) {
346
+ return options === null || options === void 0 ? void 0 : options.reduce(function (result, option) {
347
+ if (option.groupName) {
348
+ var _option$list;
349
+
350
+ var filteredGroupItems = option === null || option === void 0 ? void 0 : (_option$list = option.list) === null || _option$list === void 0 ? void 0 : _option$list.filter(function (item) {
351
+ return isItemMatchesSearch(item);
352
+ });
353
+
354
+ if (filteredGroupItems !== null && filteredGroupItems !== void 0 && filteredGroupItems.length) {
355
+ result.push(_objectSpread(_objectSpread({}, option), {}, {
356
+ list: filteredGroupItems
357
+ }));
358
+ }
359
+ } else if (isItemMatchesSearch(option)) {
360
+ result.push(option);
361
+ }
362
+
363
+ return result;
364
+ }, []);
365
+ };
366
+
270
367
  var getListMarkUp = function getListMarkUp() {
368
+ var filteredOptions = getFilteredOptions(options);
271
369
  return /*#__PURE__*/_react.default.createElement("div", {
272
- className: "".concat(RC, "__selector-wrapper")
273
- }, headerContent ? /*#__PURE__*/_react.default.createElement("div", {
274
- className: "".concat(RC, "__header")
275
- }, headerContent) : null, /*#__PURE__*/_react.default.createElement("div", {
276
- className: "".concat(RC, "__list ").concat(headerContent ? "".concat(RC, "__list--with-header") : '', " ").concat(footerContent ? "".concat(RC, "__list--with-footer") : '')
277
- }, (options === null || options === void 0 ? void 0 : options.length) > 0 ? options === null || options === void 0 ? void 0 : options.map(function (option) {
278
- var _option$groupName, _option$groupName$toS, _option$list;
370
+ ref: dropdownListWrapperRef,
371
+ className: (0, _classnames.default)("".concat(RC, "__selector-wrapper"), (0, _defineProperty2.default)({}, "".concat(RC, "__selector-wrapper--fixed-height"), isFixedMaxHeight && isMobile))
372
+ }, headerContent || isMobile ? /*#__PURE__*/_react.default.createElement("div", {
373
+ className: (0, _classnames.default)("".concat(RC, "__header"), (0, _defineProperty2.default)({}, "".concat(RC, "__header-with-shadow"), isScrollableList && isMobile))
374
+ }, isMobile && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
375
+ className: (0, _classnames.default)("".concat(RC, "__header-row"))
376
+ }, /*#__PURE__*/_react.default.createElement("div", {
377
+ className: (0, _classnames.default)("".concat(RC, "__label"))
378
+ }, label), /*#__PURE__*/_react.default.createElement("div", {
379
+ className: (0, _classnames.default)("".concat(RC, "__close-icon")),
380
+ onClick: function onClick(e) {
381
+ e.stopPropagation();
382
+ setIsOpen(false);
383
+ }
384
+ }, /*#__PURE__*/_react.default.createElement(_reactFeather.X, {
385
+ onClick: function onClick(e) {
386
+ e.stopPropagation();
387
+ setIsOpen(false);
388
+ }
389
+ }))), 1 === 1 && /*#__PURE__*/_react.default.createElement("div", {
390
+ className: (0, _classnames.default)("".concat(RC, "__header-row"))
391
+ }, /*#__PURE__*/_react.default.createElement(_Input.default, {
392
+ className: "".concat(RC, "__input"),
393
+ value: searchValue,
394
+ onChange: function onChange(v) {
395
+ return setSearchValue(v);
396
+ },
397
+ placeholder: mobileSearchPlaceholder || 'Search',
398
+ withDelete: true,
399
+ onMouseDown: function onMouseDown() {
400
+ if (!isOpen) {
401
+ if (!isMobile) setIsSearchInputFocused(true);
402
+ setIsOpen(true);
403
+ }
404
+ }
405
+ }))), headerContent && /*#__PURE__*/_react.default.createElement("div", {
406
+ className: (0, _classnames.default)("".concat(RC, "__header-row"))
407
+ }, headerContent)) : null, /*#__PURE__*/_react.default.createElement("div", {
408
+ ref: dropdownListRef,
409
+ className: "".concat(RC, "__list ").concat(headerContent || isMobile ? "".concat(RC, "__list--with-header") : '', " ").concat(footerContent ? "".concat(RC, "__list--with-footer") : '')
410
+ }, (filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.length) > 0 ? filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.map(function (option) {
411
+ var _option$groupName, _option$groupName$toS, _option$list2;
279
412
 
280
413
  return option.groupName ? /*#__PURE__*/_react.default.createElement("div", {
281
414
  key: (_option$groupName = option.groupName) === null || _option$groupName === void 0 ? void 0 : (_option$groupName$toS = _option$groupName.toString()) === null || _option$groupName$toS === void 0 ? void 0 : _option$groupName$toS.replace(/ /g, '_').concat(Date.now()),
282
415
  className: (0, _classnames.default)("".concat(RC, "-group"), option.className)
283
416
  }, /*#__PURE__*/_react.default.createElement("span", {
284
417
  className: "".concat(RC, "-group__name")
285
- }, option.groupName), (_option$list = option.list) === null || _option$list === void 0 ? void 0 : _option$list.map(function (item) {
418
+ }, option.groupName), (_option$list2 = option.list) === null || _option$list2 === void 0 ? void 0 : _option$list2.map(function (item) {
286
419
  return getMarkupForElement(item);
287
420
  })) : getMarkupForElement(option);
288
421
  }) : /*#__PURE__*/_react.default.createElement("div", {
289
422
  className: "".concat(RC, "__no-options")
290
423
  }, noOptionsText)), footerContent ? /*#__PURE__*/_react.default.createElement("div", {
291
- className: "".concat(RC, "__footer")
424
+ className: (0, _classnames.default)("".concat(RC, "__footer"), (0, _defineProperty2.default)({}, "".concat(RC, "__footer-with-shadow"), isScrollableList))
292
425
  }, footerContent) : null);
293
426
  };
294
427
 
@@ -303,9 +436,16 @@ var TagsDropdown = function TagsDropdown(_ref) {
303
436
  initListContainer();
304
437
  }, []);
305
438
  (0, _react.useLayoutEffect)(function () {
306
- window.addEventListener('resize', setListContainerStyles);
307
- window.addEventListener('mousewheel', closeList);
308
- window.addEventListener('mouseup', handleClickOutside);
439
+ if (!isMobile) {
440
+ window.addEventListener('resize', setListContainerStyles);
441
+ window.addEventListener('mousewheel', closeList);
442
+ window.addEventListener('mouseup', handleClickOutside);
443
+ } else {
444
+ window.removeEventListener('resize', setListContainerStyles);
445
+ window.removeEventListener('mousewheel', closeList);
446
+ window.removeEventListener('mouseup', handleClickOutside);
447
+ }
448
+
309
449
  return function () {
310
450
  window.removeEventListener('resize', setListContainerStyles);
311
451
  window.removeEventListener('mousewheel', closeList);
@@ -314,20 +454,48 @@ var TagsDropdown = function TagsDropdown(_ref) {
314
454
  }, [getListContainer]);
315
455
  (0, _react.useLayoutEffect)(function () {
316
456
  setListContainerStyles();
317
- }, [isOpen, chosenOptions]);
457
+ }, [isOpen, chosenOptions, isMobile, dropdownListWrapperRef === null || dropdownListWrapperRef === void 0 ? void 0 : (_dropdownListWrapperR = dropdownListWrapperRef.current) === null || _dropdownListWrapperR === void 0 ? void 0 : (_dropdownListWrapperR2 = _dropdownListWrapperR.getBoundingClientRect()) === null || _dropdownListWrapperR2 === void 0 ? void 0 : _dropdownListWrapperR2.height]);
318
458
  (0, _react.useEffect)(function () {
319
- document.addEventListener('click', handleClickOutside, true);
459
+ if (!isMobile) {
460
+ document.addEventListener('click', handleClickOutside, true);
461
+ } else {
462
+ document.removeEventListener('click', handleClickOutside, true);
463
+ }
464
+
320
465
  return function () {
321
466
  return document.removeEventListener('click', handleClickOutside, true);
322
467
  };
323
- }, []);
468
+ }, [isMobile]);
324
469
  (0, _react.useEffect)(function () {
325
470
  var _selectAllButtonRef$c, _unselectAllButtonRef;
326
471
 
327
472
  var fn = isOpen ? 'addEventListener' : 'removeEventListener';
328
473
  selectAllButtonRef === null || selectAllButtonRef === void 0 ? void 0 : (_selectAllButtonRef$c = selectAllButtonRef.current) === null || _selectAllButtonRef$c === void 0 ? void 0 : _selectAllButtonRef$c[fn]('click', selectAllItems, true);
329
474
  unselectAllButtonRef === null || unselectAllButtonRef === void 0 ? void 0 : (_unselectAllButtonRef = unselectAllButtonRef.current) === null || _unselectAllButtonRef === void 0 ? void 0 : _unselectAllButtonRef[fn]('click', unselectAllItems, true);
475
+
476
+ if (isOpen) {
477
+ var _getListContainer2;
478
+
479
+ (_getListContainer2 = getListContainer()) === null || _getListContainer2 === void 0 ? void 0 : _getListContainer2.classList.add('tags-dropdown__container--opened');
480
+ } else {
481
+ var _getListContainer3;
482
+
483
+ (_getListContainer3 = getListContainer()) === null || _getListContainer3 === void 0 ? void 0 : _getListContainer3.classList.remove('tags-dropdown__container--opened');
484
+ }
330
485
  }, [isOpen]);
486
+ (0, _react.useEffect)(function () {
487
+ if (isOpen && isMobile) {
488
+ var _dropdownListRef$curr, _dropdownListRef$curr2;
489
+
490
+ setIsScrollableList((dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr = dropdownListRef.current) === null || _dropdownListRef$curr === void 0 ? void 0 : _dropdownListRef$curr.scrollHeight) > (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr2 = dropdownListRef.current) === null || _dropdownListRef$curr2 === void 0 ? void 0 : _dropdownListRef$curr2.clientHeight));
491
+
492
+ if (isScrollableList === null) {
493
+ var _dropdownListRef$curr3, _dropdownListRef$curr4;
494
+
495
+ setIsFixedMaxHeight((dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr3 = dropdownListRef.current) === null || _dropdownListRef$curr3 === void 0 ? void 0 : _dropdownListRef$curr3.scrollHeight) > (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr4 = dropdownListRef.current) === null || _dropdownListRef$curr4 === void 0 ? void 0 : _dropdownListRef$curr4.clientHeight));
496
+ }
497
+ }
498
+ }, [isOpen, isMobile, dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr5 = dropdownListRef.current) === null || _dropdownListRef$curr5 === void 0 ? void 0 : _dropdownListRef$curr5.scrollHeight, dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef$curr6 = dropdownListRef.current) === null || _dropdownListRef$curr6 === void 0 ? void 0 : _dropdownListRef$curr6.clientHeight]);
331
499
  return /*#__PURE__*/_react.default.createElement("div", {
332
500
  className: (0, _classnames.default)(RC, className, (0, _defineProperty2.default)({}, "".concat(RC, "_disabled"), disabled)),
333
501
  ref: dropdownRef
@@ -385,7 +553,9 @@ var TagsDropdown = function TagsDropdown(_ref) {
385
553
  }
386
554
  }, attributesOfNativeInput)) : '', isOpen && renderListContainer(), /*#__PURE__*/_react.default.createElement("span", {
387
555
  className: (0, _classnames.default)("".concat(RC, "__arrow"), (0, _defineProperty2.default)({}, "".concat(RC, "__arrow_active"), isOpen))
388
- }, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronDown, {
556
+ }, isMobile ? /*#__PURE__*/_react.default.createElement(_CustomIcons.ChevronUpDown, null) : isOpen ? /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronUp, {
557
+ className: "color--text"
558
+ }) : /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronDown, {
389
559
  className: "color--text"
390
560
  }))));
391
561
  };
@@ -40,9 +40,9 @@
40
40
 
41
41
  cursor: pointer;
42
42
 
43
- border: 1px solid #E2E5EC;
43
+ border: 1px solid #e2e5ec;
44
44
  border-radius: 3px;
45
- background: #FFF;
45
+ background: #fff;
46
46
  }
47
47
 
48
48
  &__input {
@@ -72,13 +72,13 @@
72
72
  height: 30px;
73
73
  padding: 4px 32px 6px;
74
74
 
75
- background: #F8FBFF;
75
+ background: #f8fbff;
76
76
  }
77
77
 
78
78
  &__header {
79
79
  box-sizing: border-box;
80
80
 
81
- border-bottom: 1px solid #E8E9EC;
81
+ border-bottom: 1px solid #e8e9ec;
82
82
  }
83
83
 
84
84
  &__selector-wrapper {
@@ -89,7 +89,7 @@
89
89
  box-sizing: border-box;
90
90
  margin-top: 4px;
91
91
 
92
- border: 1px solid #E2E5EC;
92
+ border: 1px solid #e2e5ec;
93
93
  box-shadow: 0 4px 25px rgb(0 0 0 / 25%);
94
94
  }
95
95
 
@@ -107,7 +107,7 @@
107
107
 
108
108
  text-align: left;
109
109
 
110
- background: #FFF;
110
+ background: #fff;
111
111
 
112
112
  &::-webkit-scrollbar {
113
113
  width: 4px;
@@ -160,6 +160,16 @@
160
160
  pointer-events: none;
161
161
 
162
162
  opacity: 1;
163
+ color: #757f8c;
164
+ }
165
+
166
+ &-body {
167
+ white-space: wrap;
168
+ text-align: left;
169
+ }
170
+
171
+ &-description {
172
+ margin-left: $spacing-xs;
163
173
  color: #757F8C;
164
174
  }
165
175
  }
@@ -220,7 +230,7 @@
220
230
  }
221
231
 
222
232
  &__error {
223
- border-color: #F06D8D;
233
+ border-color: #f06d8d;
224
234
  }
225
235
 
226
236
  .tag {
@@ -251,3 +261,195 @@
251
261
  }
252
262
  }
253
263
  }
264
+
265
+ @media (max-width: 767px) {
266
+ .tags-dropdown {
267
+ &__container {
268
+ overflow: hidden !important;
269
+
270
+ &--opened {
271
+ width: 100dvw;
272
+ height: 100dvh;
273
+ max-height: 100dvh;
274
+ position: fixed;
275
+ left: 0 !important;
276
+ top: 0 !important;
277
+ background: rgba(23, 29, 51, 0.5);
278
+ padding: $spacing-s;
279
+ }
280
+ }
281
+
282
+ &__selector-wrapper {
283
+ position: absolute;
284
+ box-sizing: border-box;
285
+ bottom: $spacing-s;
286
+ width: calc(100% - $spacing-m);
287
+ max-height: 500px;
288
+ border-radius: $spacing-l !important;
289
+ overflow: hidden;
290
+ background: $color--light;
291
+
292
+ &--fixed-height {
293
+ height: 500px !important;
294
+ }
295
+ }
296
+
297
+ &__header,
298
+ &__footer {
299
+ height: unset;
300
+ z-index: 4;
301
+ background: none;
302
+ border: none;
303
+
304
+ &-with-shadow {
305
+ &::after {
306
+ content: '';
307
+ position: absolute;
308
+ left: 0;
309
+ bottom: -15px;
310
+ width: 100%;
311
+ height: 15px;
312
+ background: linear-gradient(
313
+ 180deg,
314
+ rgba(212, 218, 230, 0.5) 0%,
315
+ rgba(212, 218, 230, 0.3) 21.35%,
316
+ rgba(247, 248, 250, 0) 100%
317
+ );
318
+ }
319
+ }
320
+ }
321
+
322
+ &__header {
323
+ position: relative;
324
+ display: flex;
325
+ flex-direction: column;
326
+ justify-content: space-between;
327
+ padding: $spacing-m;
328
+ color: #3b414b;
329
+ font-size: 16px;
330
+ font-weight: 600;
331
+ line-height: 24px;
332
+ letter-spacing: 0.1px;
333
+ gap: $spacing-m;
334
+
335
+ &-row {
336
+ width: 100%;
337
+ display: flex;
338
+ flex-direction: row;
339
+ align-items: center;
340
+ min-height: 24px;
341
+ justify-content: space-between;
342
+
343
+ .input__wrap {
344
+ width: 100%;
345
+ display: flex;
346
+ align-items: center;
347
+ padding-right: $spacing-s;
348
+ border-radius: 6px;
349
+ border: 1px solid var(--form-input-border, #E1E8F1);
350
+ background: var(--black-bg-color, #F8FBFF)!important;
351
+
352
+ input {
353
+ background: unset!important;
354
+ }
355
+ }
356
+ }
357
+ }
358
+
359
+ &__footer {
360
+ position: absolute;
361
+ bottom: 0;
362
+ padding: 0;
363
+
364
+ &-with-shadow::after {
365
+ bottom: 0;
366
+ top: -15px;
367
+ transform: rotate(180deg);
368
+ }
369
+
370
+ button {
371
+ width: 100%;
372
+ height: 40px;
373
+ }
374
+ }
375
+
376
+ &__close-icon {
377
+ display: flex;
378
+ align-items: center;
379
+ position: absolute;
380
+ top: 0;
381
+ right: 0;
382
+ height: 100%;
383
+ padding: $spacing-m;
384
+ width: 16px;
385
+ height: 24px;
386
+
387
+ svg {
388
+ width: 16px;
389
+ height: 16px;
390
+ color: #a0a4b0;
391
+ }
392
+ }
393
+
394
+ &__container &__list {
395
+ top: 0;
396
+ padding: $spacing-m $spacing-m !important;
397
+ display: flex;
398
+ flex-direction: column;
399
+ gap: $spacing-xs;
400
+ max-height: unset;
401
+ }
402
+
403
+ &-group {
404
+ margin: 0;
405
+ display: flex;
406
+ flex-direction: column;
407
+ gap: $spacing-xs;
408
+
409
+ &:first-child {
410
+ margin-top: calc($spacing-s * -1);
411
+ }
412
+
413
+ &__name {
414
+ margin: 0;
415
+ margin-bottom: $spacing-s;
416
+ font-size: 11px;
417
+ padding: 10px 0px 6px 0px;
418
+ box-shadow: none !important;
419
+ border-bottom: 1px solid var(--black-gray-light-divider, rgba(58, 72, 122, 0.15));
420
+ }
421
+ }
422
+
423
+ &__list-item {
424
+ display: flex;
425
+ justify-content: space-between;
426
+ height: auto !important;
427
+ padding: 10px $spacing-s !important;
428
+ line-height: 24px;
429
+ min-height: unset!important;
430
+
431
+ &_active {
432
+ border-radius: 6px;
433
+ background: var(--bg-gray-box, #f0f1f4) !important;
434
+ }
435
+
436
+ .checkbox-input__input {
437
+ margin: 0;
438
+ margin-left: $spacing-s;
439
+ }
440
+
441
+ .search-match {
442
+ font-weight: 600;
443
+ }
444
+ }
445
+
446
+ &__arrow {
447
+ top: 10px!important;
448
+ }
449
+
450
+ &__no-options {
451
+ padding-left: 0!important;
452
+ text-align: center;
453
+ }
454
+ }
455
+ }