@megafon/ui-core 6.6.0 → 6.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.
- package/dist/es/components/List/List.css +1 -1
- package/dist/es/components/Row/Row.css +13 -0
- package/dist/es/components/Row/Row.d.ts +2 -0
- package/dist/es/components/Row/Row.js +7 -2
- package/dist/es/components/TextField/TextField.js +33 -3
- package/dist/lib/components/List/List.css +1 -1
- package/dist/lib/components/Row/Row.css +13 -0
- package/dist/lib/components/Row/Row.d.ts +2 -0
- package/dist/lib/components/Row/Row.js +7 -2
- package/dist/lib/components/TextField/TextField.js +34 -3
- package/package.json +2 -2
- package/CHANGELOG.md +0 -2683
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
padding: 24px 32px;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
.mfui-v6-row:hover {
|
|
34
|
+
text-decoration: none;
|
|
35
|
+
}
|
|
33
36
|
.mfui-v6-row__wrapper {
|
|
34
37
|
display: -webkit-box;
|
|
35
38
|
display: -ms-flexbox;
|
|
@@ -37,6 +40,7 @@
|
|
|
37
40
|
-webkit-box-align: center;
|
|
38
41
|
-ms-flex-align: center;
|
|
39
42
|
align-items: center;
|
|
43
|
+
width: 100%;
|
|
40
44
|
}
|
|
41
45
|
.mfui-v6-row__icon-container {
|
|
42
46
|
display: -webkit-box;
|
|
@@ -236,3 +240,12 @@
|
|
|
236
240
|
line-height: 24px;
|
|
237
241
|
font-weight: 500;
|
|
238
242
|
}
|
|
243
|
+
.mfui-v6-row_auto-height {
|
|
244
|
+
display: -webkit-box;
|
|
245
|
+
display: -ms-flexbox;
|
|
246
|
+
display: flex;
|
|
247
|
+
-webkit-box-align: center;
|
|
248
|
+
-ms-flex-align: center;
|
|
249
|
+
align-items: center;
|
|
250
|
+
height: auto;
|
|
251
|
+
}
|
|
@@ -23,6 +23,8 @@ export interface IRowProps {
|
|
|
23
23
|
target?: '_self' | '_blank';
|
|
24
24
|
/** rel - аргумент тега <a> */
|
|
25
25
|
rel?: string;
|
|
26
|
+
/** Автоматическая высота */
|
|
27
|
+
autoHeight?: boolean;
|
|
26
28
|
/** Обработчик клика */
|
|
27
29
|
onClick?: (e: React.SyntheticEvent<EventTarget>) => void;
|
|
28
30
|
/** Дочерние элементы: Badges, Switcher, Selector */
|
|
@@ -34,6 +34,8 @@ var Row = function Row(_ref) {
|
|
|
34
34
|
_ref$target = _ref.target,
|
|
35
35
|
target = _ref$target === void 0 ? '_self' : _ref$target,
|
|
36
36
|
rel = _ref.rel,
|
|
37
|
+
_ref$autoHeight = _ref.autoHeight,
|
|
38
|
+
autoHeight = _ref$autoHeight === void 0 ? false : _ref$autoHeight,
|
|
37
39
|
onClick = _ref.onClick,
|
|
38
40
|
children = _ref.children,
|
|
39
41
|
className = _ref.className,
|
|
@@ -53,7 +55,8 @@ var Row = function Row(_ref) {
|
|
|
53
55
|
size: size,
|
|
54
56
|
view: backgroundView,
|
|
55
57
|
pointer: isActive,
|
|
56
|
-
'has-arrow': showArrow && !showLoader
|
|
58
|
+
'has-arrow': showArrow && !showLoader,
|
|
59
|
+
'auto-height': autoHeight
|
|
57
60
|
}, [className, classes.root]),
|
|
58
61
|
href: href,
|
|
59
62
|
target: href ? target : undefined,
|
|
@@ -71,7 +74,8 @@ var Row = function Row(_ref) {
|
|
|
71
74
|
className: cn('header')
|
|
72
75
|
}, /*#__PURE__*/React.createElement(Header, {
|
|
73
76
|
className: cn('title', [classes.title]),
|
|
74
|
-
as: isSmallSize ? 'h5' : 'h3'
|
|
77
|
+
as: isSmallSize ? 'h5' : 'h3',
|
|
78
|
+
space: isSmallSize ? 'tight' : 'wide'
|
|
75
79
|
}, title), !!subTitle && /*#__PURE__*/React.createElement("div", {
|
|
76
80
|
className: cn('sub-title', [classes.subtitle])
|
|
77
81
|
}, subTitle)), !showLoader ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
@@ -98,6 +102,7 @@ Row.propTypes = {
|
|
|
98
102
|
href: PropTypes.string,
|
|
99
103
|
target: PropTypes.oneOf(['_self', '_blank']),
|
|
100
104
|
rel: PropTypes.string,
|
|
105
|
+
autoHeight: PropTypes.bool,
|
|
101
106
|
onClick: PropTypes.func,
|
|
102
107
|
children: PropTypes.node,
|
|
103
108
|
className: PropTypes.string,
|
|
@@ -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
|
-
|
|
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
|
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
padding: 24px 32px;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
.mfui-v6-row:hover {
|
|
34
|
+
text-decoration: none;
|
|
35
|
+
}
|
|
33
36
|
.mfui-v6-row__wrapper {
|
|
34
37
|
display: -webkit-box;
|
|
35
38
|
display: -ms-flexbox;
|
|
@@ -37,6 +40,7 @@
|
|
|
37
40
|
-webkit-box-align: center;
|
|
38
41
|
-ms-flex-align: center;
|
|
39
42
|
align-items: center;
|
|
43
|
+
width: 100%;
|
|
40
44
|
}
|
|
41
45
|
.mfui-v6-row__icon-container {
|
|
42
46
|
display: -webkit-box;
|
|
@@ -236,3 +240,12 @@
|
|
|
236
240
|
line-height: 24px;
|
|
237
241
|
font-weight: 500;
|
|
238
242
|
}
|
|
243
|
+
.mfui-v6-row_auto-height {
|
|
244
|
+
display: -webkit-box;
|
|
245
|
+
display: -ms-flexbox;
|
|
246
|
+
display: flex;
|
|
247
|
+
-webkit-box-align: center;
|
|
248
|
+
-ms-flex-align: center;
|
|
249
|
+
align-items: center;
|
|
250
|
+
height: auto;
|
|
251
|
+
}
|
|
@@ -23,6 +23,8 @@ export interface IRowProps {
|
|
|
23
23
|
target?: '_self' | '_blank';
|
|
24
24
|
/** rel - аргумент тега <a> */
|
|
25
25
|
rel?: string;
|
|
26
|
+
/** Автоматическая высота */
|
|
27
|
+
autoHeight?: boolean;
|
|
26
28
|
/** Обработчик клика */
|
|
27
29
|
onClick?: (e: React.SyntheticEvent<EventTarget>) => void;
|
|
28
30
|
/** Дочерние элементы: Badges, Switcher, Selector */
|
|
@@ -53,6 +53,8 @@ var Row = function Row(_ref) {
|
|
|
53
53
|
_ref$target = _ref.target,
|
|
54
54
|
target = _ref$target === void 0 ? '_self' : _ref$target,
|
|
55
55
|
rel = _ref.rel,
|
|
56
|
+
_ref$autoHeight = _ref.autoHeight,
|
|
57
|
+
autoHeight = _ref$autoHeight === void 0 ? false : _ref$autoHeight,
|
|
56
58
|
onClick = _ref.onClick,
|
|
57
59
|
children = _ref.children,
|
|
58
60
|
className = _ref.className,
|
|
@@ -72,7 +74,8 @@ var Row = function Row(_ref) {
|
|
|
72
74
|
size: size,
|
|
73
75
|
view: backgroundView,
|
|
74
76
|
pointer: isActive,
|
|
75
|
-
'has-arrow': showArrow && !showLoader
|
|
77
|
+
'has-arrow': showArrow && !showLoader,
|
|
78
|
+
'auto-height': autoHeight
|
|
76
79
|
}, [className, classes.root]),
|
|
77
80
|
href: href,
|
|
78
81
|
target: href ? target : undefined,
|
|
@@ -90,7 +93,8 @@ var Row = function Row(_ref) {
|
|
|
90
93
|
className: cn('header')
|
|
91
94
|
}, /*#__PURE__*/_react["default"].createElement(_Header["default"], {
|
|
92
95
|
className: cn('title', [classes.title]),
|
|
93
|
-
as: isSmallSize ? 'h5' : 'h3'
|
|
96
|
+
as: isSmallSize ? 'h5' : 'h3',
|
|
97
|
+
space: isSmallSize ? 'tight' : 'wide'
|
|
94
98
|
}, title), !!subTitle && /*#__PURE__*/_react["default"].createElement("div", {
|
|
95
99
|
className: cn('sub-title', [classes.subtitle])
|
|
96
100
|
}, subTitle)), !showLoader ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -117,6 +121,7 @@ Row.propTypes = {
|
|
|
117
121
|
href: PropTypes.string,
|
|
118
122
|
target: PropTypes.oneOf(['_self', '_blank']),
|
|
119
123
|
rel: PropTypes.string,
|
|
124
|
+
autoHeight: PropTypes.bool,
|
|
120
125
|
onClick: PropTypes.func,
|
|
121
126
|
children: PropTypes.node,
|
|
122
127
|
className: PropTypes.string,
|
|
@@ -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
|
-
|
|
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.
|
|
3
|
+
"version": "6.7.0",
|
|
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": "
|
|
102
|
+
"gitHead": "bf7d2cc9e75cf3527fae3ea8a58e8e3f4958e18a"
|
|
103
103
|
}
|