@megafon/ui-core 6.6.0 → 6.6.1

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.
@@ -5,6 +5,7 @@ import "core-js/modules/es.parse-float.js";
5
5
  import "core-js/modules/es.regexp.exec.js";
6
6
  import "core-js/modules/es.string.replace.js";
7
7
  import "core-js/modules/es.object.get-own-property-descriptor.js";
8
+ import "core-js/modules/web.timers.js";
8
9
  import "core-js/modules/es.array.concat.js";
9
10
  import "core-js/modules/es.object.values.js";
10
11
 
@@ -63,6 +64,10 @@ var ResizeIcon = function ResizeIcon(props) {
63
64
  }));
64
65
  };
65
66
 
67
+ var isElement = function isElement(target) {
68
+ return target instanceof HTMLElement || target instanceof SVGElement || target instanceof SVGPathElement;
69
+ };
70
+
66
71
  var TEXTAREA_MAX_HEIGHT = 144;
67
72
  var DEFAULT_LABEL_TOP_POSITION = 16;
68
73
  var DEFAULT_ROW_COUNT = 3;
@@ -172,6 +177,11 @@ var TextField = function TextField(_ref) {
172
177
  isTextareaResized = _useState14[0],
173
178
  setIsTextareaResized = _useState14[1];
174
179
 
180
+ var _useState15 = useState(null),
181
+ _useState16 = _slicedToArray(_useState15, 2),
182
+ clickedElement = _useState16[0],
183
+ setClickedElement = _useState16[1];
184
+
175
185
  var fieldNode = useRef();
176
186
  var labelRef = useRef(null);
177
187
  var resizerRef = useRef(null);
@@ -275,6 +285,15 @@ var TextField = function TextField(_ref) {
275
285
  onChange === null || onChange === void 0 ? void 0 : onChange(e);
276
286
  };
277
287
 
288
+ var handleMouseDown = function handleMouseDown(e) {
289
+ if (isElement(e.target)) {
290
+ setClickedElement(e.target);
291
+ return;
292
+ }
293
+
294
+ setClickedElement(null);
295
+ };
296
+
278
297
  var handleNoticeTransitionEnd = useCallback(function () {
279
298
  !noticeText && setCurrentNoticeText(noticeText);
280
299
  }, [noticeText]);
@@ -311,7 +330,9 @@ var TextField = function TextField(_ref) {
311
330
  });
312
331
  (_a = nativeInputValue === null || nativeInputValue === void 0 ? void 0 : nativeInputValue.set) === null || _a === void 0 ? void 0 : _a.call(field, '');
313
332
  field === null || field === void 0 ? void 0 : field.dispatchEvent(inputEvent);
314
- field === null || field === void 0 ? void 0 : field.focus();
333
+ setTimeout(function () {
334
+ return field === null || field === void 0 ? void 0 : field.focus();
335
+ });
315
336
  }
316
337
 
317
338
  onIconClick === null || onIconClick === void 0 ? void 0 : onIconClick(e);
@@ -320,8 +341,16 @@ var TextField = function TextField(_ref) {
320
341
  onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);
321
342
  }, [onFocus]);
322
343
  var handleBlur = useCallback(function (e) {
344
+ var _a;
345
+
346
+ setClickedElement(null);
347
+
348
+ if ((_a = clickedElement === null || clickedElement === void 0 ? void 0 : clickedElement.closest('div')) === null || _a === void 0 ? void 0 : _a.classList.contains(cn('icon-box'))) {
349
+ return;
350
+ }
351
+
323
352
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
324
- }, [onBlur]);
353
+ }, [onBlur, clickedElement]);
325
354
  var handleBeforeMaskChange = useCallback(function (newState, oldState, inputedValue) {
326
355
  return onBeforeMaskChange && onBeforeMaskChange(inputedValue, newState, oldState);
327
356
  }, [onBeforeMaskChange]);
@@ -475,7 +504,8 @@ var TextField = function TextField(_ref) {
475
504
  }), /*#__PURE__*/React.createElement("div", {
476
505
  className: cn('field-wrapper', {
477
506
  textarea: textarea && textareaType
478
- })
507
+ }),
508
+ onMouseDown: handleMouseDown
479
509
  }, renderField(), textareaType === TextareaTypes.FLEXIBLE && !hideResizeButton && /*#__PURE__*/React.createElement("div", _extends({
480
510
  className: cn('resizer'),
481
511
  ref: resizerRef
@@ -21,6 +21,8 @@ require("core-js/modules/es.string.replace.js");
21
21
 
22
22
  require("core-js/modules/es.object.get-own-property-descriptor.js");
23
23
 
24
+ require("core-js/modules/web.timers.js");
25
+
24
26
  require("core-js/modules/es.array.concat.js");
25
27
 
26
28
  require("core-js/modules/es.object.values.js");
@@ -90,6 +92,10 @@ var ResizeIcon = function ResizeIcon(props) {
90
92
  }));
91
93
  };
92
94
 
95
+ var isElement = function isElement(target) {
96
+ return target instanceof HTMLElement || target instanceof SVGElement || target instanceof SVGPathElement;
97
+ };
98
+
93
99
  var TEXTAREA_MAX_HEIGHT = 144;
94
100
  var DEFAULT_LABEL_TOP_POSITION = 16;
95
101
  var DEFAULT_ROW_COUNT = 3;
@@ -202,6 +208,11 @@ var TextField = function TextField(_ref) {
202
208
  isTextareaResized = _useState14[0],
203
209
  setIsTextareaResized = _useState14[1];
204
210
 
211
+ var _useState15 = (0, React.useState)(null),
212
+ _useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
213
+ clickedElement = _useState16[0],
214
+ setClickedElement = _useState16[1];
215
+
205
216
  var fieldNode = (0, React.useRef)();
206
217
  var labelRef = (0, React.useRef)(null);
207
218
  var resizerRef = (0, React.useRef)(null);
@@ -305,6 +316,15 @@ var TextField = function TextField(_ref) {
305
316
  onChange === null || onChange === void 0 ? void 0 : onChange(e);
306
317
  };
307
318
 
319
+ var handleMouseDown = function handleMouseDown(e) {
320
+ if (isElement(e.target)) {
321
+ setClickedElement(e.target);
322
+ return;
323
+ }
324
+
325
+ setClickedElement(null);
326
+ };
327
+
308
328
  var handleNoticeTransitionEnd = (0, React.useCallback)(function () {
309
329
  !noticeText && setCurrentNoticeText(noticeText);
310
330
  }, [noticeText]);
@@ -341,7 +361,9 @@ var TextField = function TextField(_ref) {
341
361
  });
342
362
  (_a = nativeInputValue === null || nativeInputValue === void 0 ? void 0 : nativeInputValue.set) === null || _a === void 0 ? void 0 : _a.call(field, '');
343
363
  field === null || field === void 0 ? void 0 : field.dispatchEvent(inputEvent);
344
- field === null || field === void 0 ? void 0 : field.focus();
364
+ setTimeout(function () {
365
+ return field === null || field === void 0 ? void 0 : field.focus();
366
+ });
345
367
  }
346
368
 
347
369
  onIconClick === null || onIconClick === void 0 ? void 0 : onIconClick(e);
@@ -350,8 +372,16 @@ var TextField = function TextField(_ref) {
350
372
  onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);
351
373
  }, [onFocus]);
352
374
  var handleBlur = (0, React.useCallback)(function (e) {
375
+ var _a;
376
+
377
+ setClickedElement(null);
378
+
379
+ if ((_a = clickedElement === null || clickedElement === void 0 ? void 0 : clickedElement.closest('div')) === null || _a === void 0 ? void 0 : _a.classList.contains(cn('icon-box'))) {
380
+ return;
381
+ }
382
+
353
383
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
354
- }, [onBlur]);
384
+ }, [onBlur, clickedElement]);
355
385
  var handleBeforeMaskChange = (0, React.useCallback)(function (newState, oldState, inputedValue) {
356
386
  return onBeforeMaskChange && onBeforeMaskChange(inputedValue, newState, oldState);
357
387
  }, [onBeforeMaskChange]);
@@ -501,7 +531,8 @@ var TextField = function TextField(_ref) {
501
531
  }), /*#__PURE__*/React.createElement("div", {
502
532
  className: cn('field-wrapper', {
503
533
  textarea: textarea && textareaType
504
- })
534
+ }),
535
+ onMouseDown: handleMouseDown
505
536
  }, renderField(), textareaType === TextareaTypes.FLEXIBLE && !hideResizeButton && /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
506
537
  className: cn('resizer'),
507
538
  ref: resizerRef
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@megafon/ui-core",
3
- "version": "6.6.0",
3
+ "version": "6.6.1",
4
4
  "files": [
5
5
  "dist",
6
6
  "styles"
@@ -99,5 +99,5 @@
99
99
  "react-popper": "^2.2.3",
100
100
  "swiper": "^6.5.6"
101
101
  },
102
- "gitHead": "4210e85614d7e10a1d7c6b9af974dc82c4beadb7"
102
+ "gitHead": "c119b673112829f75ebb828789f183e7c061b715"
103
103
  }