@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.
- package/CHANGELOG.md +24 -0
- package/cjs/components/DateRangePicker/DateRangePicker.d.ts +6 -0
- package/cjs/components/DateRangePicker/DateRangePicker.js +24 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js +2 -2
- package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +1 -0
- package/cjs/components/Textarea/Textarea.js +14 -2
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +6 -3
- package/cjs/components/TokenInput/TokenInput.js +43 -28
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
- package/cjs/internal/ResizeDetector/ResizeDetector.js +8 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.styles.d.ts +1 -0
- package/cjs/internal/ResizeDetector/ResizeDetector.styles.js +7 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -1
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +14 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +6 -0
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +2 -2
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +12 -6
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +1 -0
- package/components/TokenInput/TokenInput/TokenInput.js +64 -48
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +6 -3
- package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +1 -1
- package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
- package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
- package/internal/ResizeDetector/ResizeDetector.styles/ResizeDetector.styles.js +4 -1
- package/internal/ResizeDetector/ResizeDetector.styles/ResizeDetector.styles.js.map +1 -1
- package/internal/ResizeDetector/ResizeDetector.styles.d.ts +1 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/package.json +6 -4
- package/cjs/lib/__stories__/Blink.creevey.mts +0 -90
- 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
|
|
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.
|
|
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$
|
|
228
|
-
selectedItems = _this$
|
|
229
|
-
valueToString = _this$
|
|
230
|
-
delimiters = _this$
|
|
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$
|
|
247
|
-
delimiters = _this$
|
|
248
|
-
selectedItems = _this$
|
|
249
|
-
valueToItem = _this$
|
|
250
|
-
onValueChange = _this$
|
|
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$
|
|
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$
|
|
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$
|
|
418
|
-
selectedItems = _this$
|
|
419
|
-
onValueChange = _this$
|
|
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$
|
|
515
|
-
selectedItems = _this$
|
|
516
|
-
valueToString = _this$
|
|
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$
|
|
566
|
-
selectedItems = _this$
|
|
567
|
-
valueToString = _this$
|
|
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
|
|
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
|
-
|
|
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$
|
|
770
|
-
selectedItems = _this$
|
|
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$
|
|
898
|
-
selectedItems = _this$
|
|
899
|
-
width = _this$
|
|
900
|
-
onMouseEnter = _this$
|
|
901
|
-
onMouseLeave = _this$
|
|
902
|
-
menuWidth = _this$
|
|
903
|
-
menuAlign = _this$
|
|
904
|
-
renderItem = _this$
|
|
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$
|
|
1093
|
-
valueToString = _this$
|
|
1094
|
-
selectedItems = _this$
|
|
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
|
},
|