@skbkontur/react-ui 5.4.2 → 5.4.4

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 (46) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cjs/components/DateRangePicker/DateRangePicker.d.ts +6 -0
  3. package/cjs/components/DateRangePicker/DateRangePicker.js +24 -1
  4. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  5. package/cjs/components/DateRangePicker/DateRangePickerInput.js +2 -2
  6. package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  7. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  8. package/cjs/components/Textarea/Textarea.js +14 -2
  9. package/cjs/components/Textarea/Textarea.js.map +1 -1
  10. package/cjs/components/TokenInput/TokenInput.d.ts +6 -3
  11. package/cjs/components/TokenInput/TokenInput.js +43 -28
  12. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  13. package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  14. package/cjs/internal/ResizeDetector/ResizeDetector.js +8 -1
  15. package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  16. package/cjs/internal/ResizeDetector/ResizeDetector.styles.d.ts +1 -0
  17. package/cjs/internal/ResizeDetector/ResizeDetector.styles.js +7 -1
  18. package/cjs/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -1
  19. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  20. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  21. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  22. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  23. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +14 -1
  24. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
  25. package/components/DateRangePicker/DateRangePicker.d.ts +6 -0
  26. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +2 -2
  27. package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
  28. package/components/Textarea/Textarea/Textarea.js +12 -6
  29. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  30. package/components/Textarea/Textarea.d.ts +1 -0
  31. package/components/TokenInput/TokenInput/TokenInput.js +64 -48
  32. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  33. package/components/TokenInput/TokenInput.d.ts +6 -3
  34. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +1 -1
  35. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
  36. package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  37. package/internal/ResizeDetector/ResizeDetector.styles/ResizeDetector.styles.js +4 -1
  38. package/internal/ResizeDetector/ResizeDetector.styles/ResizeDetector.styles.js.map +1 -1
  39. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +1 -0
  40. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  41. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
  42. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  43. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  44. package/package.json +6 -4
  45. package/cjs/lib/__stories__/Blink.creevey.mts +0 -90
  46. package/lib/__stories__/Blink.creevey.mts +0 -90
@@ -5,7 +5,7 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
5
5
  var _dec, _class, _TokenInput;
6
6
  import _regeneratorRuntime from "@babel/runtime/regenerator";
7
7
  import React from 'react';
8
- import isEqual from 'lodash.isequal';
8
+ import lodashIsEqual from 'lodash.isequal';
9
9
  import { globalObject } from '@skbkontur/global-object';
10
10
  import { PopupIds } from "../../../internal/Popup";
11
11
  import { isKeyArrowHorizontal, isKeyArrowLeft, isKeyArrowRight, isKeyArrowUp, isKeyArrowVertical, isKeyBackspace, isKeyComma, isKeyDelete, isKeyEnter, isKeyEscape, isShortcutSelectAll } from "../../../lib/events/keyboard/identifiers";
@@ -100,13 +100,21 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
100
100
  _this.textHelper = null;
101
101
  _this.wrapper = null;
102
102
  _this.memoizedTokens = new Map();
103
+ _this.isEqual = function (itemA, itemB) {
104
+ var _this$getProps = _this.getProps(),
105
+ itemToId = _this$getProps.itemToId;
106
+ return lodashIsEqual(itemToId(itemA), itemToId(itemB));
107
+ };
103
108
  _this.hasValueInItems = function (items, value) {
109
+ var _this$getProps2 = _this.getProps(),
110
+ valueToString = _this$getProps2.valueToString;
104
111
  if (typeof value === 'string') {
105
- return items.includes(value);
112
+ return items.map(function (item) {
113
+ return valueToString(item);
114
+ }).includes(value);
106
115
  }
107
- // todo: как то не очень
108
116
  return items.some(function (item) {
109
- return isEqual(item, value);
117
+ return _this.isEqual(item, value);
110
118
  });
111
119
  };
112
120
  _this.inputRef = function (node) {
@@ -224,10 +232,10 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
224
232
  return;
225
233
  }
226
234
  event.preventDefault();
227
- var _this$getProps = _this.getProps(),
228
- selectedItems = _this$getProps.selectedItems,
229
- valueToString = _this$getProps.valueToString,
230
- delimiters = _this$getProps.delimiters;
235
+ var _this$getProps3 = _this.getProps(),
236
+ selectedItems = _this$getProps3.selectedItems,
237
+ valueToString = _this$getProps3.valueToString,
238
+ delimiters = _this$getProps3.delimiters;
231
239
  // упорядочивание токенов по индексу
232
240
  var tokens = _this.state.activeTokens.map(function (token) {
233
241
  return selectedItems.indexOf(token);
@@ -243,11 +251,11 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
243
251
  return;
244
252
  }
245
253
  var paste = event.clipboardData.getData('text');
246
- var _this$getProps2 = _this.getProps(),
247
- delimiters = _this$getProps2.delimiters,
248
- selectedItems = _this$getProps2.selectedItems,
249
- valueToItem = _this$getProps2.valueToItem,
250
- onValueChange = _this$getProps2.onValueChange;
254
+ var _this$getProps4 = _this.getProps(),
255
+ delimiters = _this$getProps4.delimiters,
256
+ selectedItems = _this$getProps4.selectedItems,
257
+ valueToItem = _this$getProps4.valueToItem,
258
+ onValueChange = _this$getProps4.onValueChange;
251
259
  if (delimiters.some(function (delimiter) {
252
260
  return paste.includes(delimiter);
253
261
  })) {
@@ -270,7 +278,7 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
270
278
  };
271
279
  _this.tryGetItems = /*#__PURE__*/function () {
272
280
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(query) {
273
- var autocompleteItems, _this$getProps3, selectedItems, valueToItem, valueToString, isSelectedItem, isEditingItem, autocompleteItemsUnique, editingItem, selectItemIndex;
281
+ var autocompleteItems, _this$getProps5, selectedItems, valueToItem, valueToString, isSelectedItem, isEditingItem, autocompleteItemsUnique, editingItem, selectItemIndex;
274
282
  return _regeneratorRuntime.wrap(function _callee$(_context) {
275
283
  while (1) switch (_context.prev = _context.next) {
276
284
  case 0:
@@ -293,20 +301,20 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
293
301
  type: 'SET_LOADING',
294
302
  payload: false
295
303
  });
296
- _this$getProps3 = _this.getProps(), selectedItems = _this$getProps3.selectedItems, valueToItem = _this$getProps3.valueToItem, valueToString = _this$getProps3.valueToString;
304
+ _this$getProps5 = _this.getProps(), selectedItems = _this$getProps5.selectedItems, valueToItem = _this$getProps5.valueToItem, valueToString = _this$getProps5.valueToString;
297
305
  isSelectedItem = function isSelectedItem(item) {
298
306
  return _this.hasValueInItems(selectedItems, item);
299
307
  };
300
308
  isEditingItem = function isEditingItem(item) {
301
309
  var editingItem = selectedItems[_this.state.editingTokenIndex];
302
- return !!editingItem && isEqual(item, editingItem);
310
+ return !!editingItem && _this.isEqual(item, editingItem);
303
311
  };
304
312
  autocompleteItemsUnique = autocompleteItems.filter(function (item) {
305
313
  return !isSelectedItem(item) || isEditingItem(item);
306
314
  });
307
315
  if (_this.isEditingMode) {
308
316
  editingItem = selectedItems[_this.state.editingTokenIndex];
309
- if (isEqual(editingItem, valueToItem(_this.state.inputValue)) && !_this.hasValueInItems(autocompleteItemsUnique, editingItem)) {
317
+ if (_this.isEqual(editingItem, valueToItem(_this.state.inputValue)) && !_this.hasValueInItems(autocompleteItemsUnique, editingItem)) {
310
318
  autocompleteItemsUnique.unshift(editingItem);
311
319
  }
312
320
  }
@@ -344,7 +352,7 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
344
352
  }
345
353
  };
346
354
  _this.handleInputKeyDown = function (e) {
347
- var _this$input3, _this$input4;
355
+ var _this$state$autocompl, _this$state$autocompl2, _this$input3, _this$input4;
348
356
  e.stopPropagation();
349
357
  if (_this.type !== TokenInputType.WithReference && _this.getProps().delimiters.some(function (key) {
350
358
  return key === e.key || key === ',' && isKeyComma(e);
@@ -360,9 +368,10 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
360
368
  }
361
369
  }
362
370
  var isRightmostTokenNotDisabled = !_this.isTokenDisabled(_this.getProps().selectedItems.length - 1);
371
+ var canSetValueToInput = _this.showAddItemHint || ((_this$state$autocompl = (_this$state$autocompl2 = _this.state.autocompleteItems) == null ? void 0 : _this$state$autocompl2.length) != null ? _this$state$autocompl : 0) > 0;
363
372
  switch (true) {
364
373
  case isKeyEnter(e):
365
- if (_this.menuRef) {
374
+ if (canSetValueToInput && _this.menuRef) {
366
375
  _this.menuRef.enter(e);
367
376
  }
368
377
  // don't allow textarea
@@ -414,9 +423,9 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
414
423
  };
415
424
  _this.handleWrapperKeyDown = function (e) {
416
425
  var _this$wrapper2;
417
- var _this$getProps4 = _this.getProps(),
418
- selectedItems = _this$getProps4.selectedItems,
419
- onValueChange = _this$getProps4.onValueChange;
426
+ var _this$getProps6 = _this.getProps(),
427
+ selectedItems = _this$getProps6.selectedItems,
428
+ onValueChange = _this$getProps6.onValueChange;
420
429
  switch (true) {
421
430
  case isKeyBackspace(e):
422
431
  case isKeyDelete(e):
@@ -493,7 +502,7 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
493
502
  if (!isLeftEdge && !isRightEdge) {
494
503
  var itemNew = _this.getProps().selectedItems[newItemIndex];
495
504
  var itemsNew = [itemNew].concat(_this.state.activeTokens.filter(function (item) {
496
- return !isEqual(item, itemNew);
505
+ return !_this.isEqual(item, itemNew);
497
506
  }));
498
507
  _this.dispatch({
499
508
  type: 'SET_ACTIVE_TOKENS',
@@ -511,9 +520,9 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
511
520
  }
512
521
  };
513
522
  _this.selectItem = function (item) {
514
- var _this$getProps5 = _this.getProps(),
515
- selectedItems = _this$getProps5.selectedItems,
516
- valueToString = _this$getProps5.valueToString;
523
+ var _this$getProps7 = _this.getProps(),
524
+ selectedItems = _this$getProps7.selectedItems,
525
+ valueToString = _this$getProps7.valueToString;
517
526
  if (_this.isEditingMode) {
518
527
  _this.dispatch({
519
528
  type: 'UPDATE_QUERY',
@@ -529,10 +538,10 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
529
538
  };
530
539
  _this.handleRemoveToken = function (item) {
531
540
  _this.props.onValueChange == null || _this.props.onValueChange(_this.getProps().selectedItems.filter(function (_) {
532
- return !isEqual(_, item);
541
+ return !_this.isEqual(_, item);
533
542
  }));
534
543
  var filteredActiveTokens = _this.state.activeTokens.filter(function (_) {
535
- return !isEqual(_, item);
544
+ return !_this.isEqual(_, item);
536
545
  });
537
546
  _this.dispatch({
538
547
  type: 'SET_ACTIVE_TOKENS',
@@ -547,7 +556,7 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
547
556
  var items = _this.state.activeTokens;
548
557
  if (event.ctrlKey) {
549
558
  var newItems = _this.hasValueInItems(_this.state.activeTokens, itemNew) ? items.filter(function (item) {
550
- return !isEqual(item, itemNew);
559
+ return !_this.isEqual(item, itemNew);
551
560
  }) : [].concat(items, [itemNew]);
552
561
  _this.dispatch({
553
562
  type: 'SET_ACTIVE_TOKENS',
@@ -562,9 +571,9 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
562
571
  _this.focusInput();
563
572
  };
564
573
  _this.handleTokenEdit = function (itemNew) {
565
- var _this$getProps6 = _this.getProps(),
566
- selectedItems = _this$getProps6.selectedItems,
567
- valueToString = _this$getProps6.valueToString;
574
+ var _this$getProps8 = _this.getProps(),
575
+ selectedItems = _this$getProps8.selectedItems,
576
+ valueToString = _this$getProps8.valueToString;
568
577
  var editingTokenIndex = selectedItems.findIndex(function (item) {
569
578
  return item === itemNew;
570
579
  });
@@ -590,12 +599,18 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
590
599
  _this.tryGetItems();
591
600
  };
592
601
  _this.finishTokenEdit = function () {
593
- var selectedItems = _this.getProps().selectedItems;
602
+ var _autocompleteItems$fi;
603
+ var _this$getProps9 = _this.getProps(),
604
+ selectedItems = _this$getProps9.selectedItems,
605
+ valueToString = _this$getProps9.valueToString;
594
606
  var _this$state2 = _this.state,
595
607
  editingTokenIndex = _this$state2.editingTokenIndex,
596
608
  inputValue = _this$state2.inputValue,
597
- reservedInputValue = _this$state2.reservedInputValue;
598
- var editedItem = _this.getProps().valueToItem(inputValue);
609
+ reservedInputValue = _this$state2.reservedInputValue,
610
+ autocompleteItems = _this$state2.autocompleteItems;
611
+ var editedItem = (_autocompleteItems$fi = autocompleteItems == null ? void 0 : autocompleteItems.find(function (item) {
612
+ return valueToString(item) === inputValue;
613
+ })) != null ? _autocompleteItems$fi : _this.getProps().valueToItem(inputValue);
599
614
  var newItems = selectedItems.concat([]);
600
615
  if (!_this.hasValueInItems(selectedItems, editedItem)) {
601
616
  newItems.splice.apply(newItems, [editingTokenIndex, 1].concat(_this.isInputValueChanged ? [editedItem] : []));
@@ -766,8 +781,8 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
766
781
  if (isDirectionLeft === void 0) {
767
782
  isDirectionLeft = true;
768
783
  }
769
- var _this$getProps7 = _this.getProps(),
770
- selectedItems = _this$getProps7.selectedItems;
784
+ var _this$getProps10 = _this.getProps(),
785
+ selectedItems = _this$getProps10.selectedItems;
771
786
  var step = isDirectionLeft ? -1 : +1;
772
787
  var availableIndex = startIndex + step;
773
788
  while (_this.isTokenDisabled(availableIndex)) {
@@ -894,14 +909,14 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
894
909
  totalCount = _this$props2.totalCount,
895
910
  ariaDescribedby = _this$props2['aria-describedby'],
896
911
  ariaLabel = _this$props2['aria-label'];
897
- var _this$getProps8 = this.getProps(),
898
- selectedItems = _this$getProps8.selectedItems,
899
- width = _this$getProps8.width,
900
- onMouseEnter = _this$getProps8.onMouseEnter,
901
- onMouseLeave = _this$getProps8.onMouseLeave,
902
- menuWidth = _this$getProps8.menuWidth,
903
- menuAlign = _this$getProps8.menuAlign,
904
- renderItem = _this$getProps8.renderItem;
912
+ var _this$getProps11 = this.getProps(),
913
+ selectedItems = _this$getProps11.selectedItems,
914
+ width = _this$getProps11.width,
915
+ onMouseEnter = _this$getProps11.onMouseEnter,
916
+ onMouseLeave = _this$getProps11.onMouseLeave,
917
+ menuWidth = _this$getProps11.menuWidth,
918
+ menuAlign = _this$getProps11.menuAlign,
919
+ renderItem = _this$getProps11.renderItem;
905
920
  var _this$state3 = this.state,
906
921
  activeTokens = _this$state3.activeTokens,
907
922
  inFocus = _this$state3.inFocus,
@@ -1089,9 +1104,9 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
1089
1104
  var _this$state4 = this.state,
1090
1105
  inputValue = _this$state4.inputValue,
1091
1106
  editingTokenIndex = _this$state4.editingTokenIndex;
1092
- var _this$getProps9 = this.getProps(),
1093
- valueToString = _this$getProps9.valueToString,
1094
- selectedItems = _this$getProps9.selectedItems;
1107
+ var _this$getProps12 = this.getProps(),
1108
+ valueToString = _this$getProps12.valueToString,
1109
+ selectedItems = _this$getProps12.selectedItems;
1095
1110
  if (this.isEditingMode) {
1096
1111
  return valueToString(selectedItems[editingTokenIndex]) !== inputValue;
1097
1112
  }
@@ -1109,6 +1124,7 @@ export var TokenInput = (_dec = locale('TokenInput', TokenInputLocaleHelper), ro
1109
1124
  return item;
1110
1125
  },
1111
1126
  toKey: defaultToKey,
1127
+ itemToId: defaultToKey,
1112
1128
  onValueChange: function onValueChange() {
1113
1129
  return void 0;
1114
1130
  },