@megafon/ui-core 5.8.0 → 5.9.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/CHANGELOG.md +19 -0
- package/dist/es/components/{Chip → Chips}/Chip.css +53 -32
- package/dist/es/components/Chips/Chip.d.ts +74 -0
- package/dist/es/components/{Chip → Chips}/Chip.js +45 -6
- package/dist/es/components/Chips/Chips.css +19 -0
- package/dist/es/components/Chips/Chips.d.ts +27 -0
- package/dist/es/components/Chips/Chips.js +129 -0
- package/dist/es/components/Chips/components/ChipsDropdown.css +106 -0
- package/dist/es/components/Chips/components/ChipsDropdown.d.ts +16 -0
- package/dist/es/components/Chips/components/ChipsDropdown.js +101 -0
- package/dist/es/components/ContentView/ContentView.css +61 -0
- package/dist/es/components/ContentView/ContentView.d.ts +49 -0
- package/dist/es/components/ContentView/ContentView.js +103 -0
- package/dist/es/components/ContentView/i/alarm.png +0 -0
- package/dist/es/components/ContentView/i/empty.png +0 -0
- package/dist/es/components/ContentView/i/error.png +0 -0
- package/dist/es/components/ContentView/i/fail.png +0 -0
- package/dist/es/components/ContentView/i/searchNoResult.png +0 -0
- package/dist/es/components/ContentView/i/submit.png +0 -0
- package/dist/es/components/ContentView/i/success.png +0 -0
- package/dist/es/components/ContentView/i/update.png +0 -0
- package/dist/es/components/ContentView/i/waiting.png +0 -0
- package/dist/es/components/Sliders/Slider/Slider.css +127 -0
- package/dist/es/components/Sliders/Slider/Slider.d.ts +41 -0
- package/dist/es/components/Sliders/Slider/Slider.js +126 -0
- package/dist/es/components/Sliders/SliderRange/SliderRange.css +154 -0
- package/dist/es/components/Sliders/SliderRange/SliderRange.d.ts +49 -0
- package/dist/es/components/Sliders/SliderRange/SliderRange.js +227 -0
- package/dist/es/components/Sliders/SliderRange/helpers.d.ts +6 -0
- package/dist/es/components/Sliders/SliderRange/helpers.js +31 -0
- package/dist/es/components/Sliders/SliderRatio/SliderRatio.css +209 -0
- package/dist/es/components/Sliders/SliderRatio/SliderRatio.d.ts +42 -0
- package/dist/es/components/Sliders/SliderRatio/SliderRatio.js +206 -0
- package/dist/es/components/Sliders/SliderRatio/helpers.d.ts +15 -0
- package/dist/es/components/Sliders/SliderRatio/helpers.js +32 -0
- package/dist/es/components/Sliders/SliderRatio/i/thumb.png +0 -0
- package/dist/es/components/Sliders/SliderRatio/types.d.ts +8 -0
- package/dist/es/components/Sliders/SliderRatio/types.js +6 -0
- package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.css +83 -0
- package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.d.ts +23 -0
- package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.js +82 -0
- package/dist/es/components/Sliders/components/SliderScale/SliderScale.css +15 -0
- package/dist/es/components/Sliders/components/SliderScale/SliderScale.d.ts +19 -0
- package/dist/es/components/Sliders/components/SliderScale/SliderScale.js +51 -0
- package/dist/es/components/Sliders/components/SliderScale/helpers.d.ts +2 -0
- package/dist/es/components/Sliders/components/SliderScale/helpers.js +39 -0
- package/dist/es/components/Sliders/helpers.d.ts +2 -0
- package/dist/es/components/Sliders/helpers.js +33 -0
- package/dist/es/components/Switcher/Switcher.css +13 -0
- package/dist/es/components/Switcher/Switcher.d.ts +3 -1
- package/dist/es/components/Switcher/Switcher.js +5 -1
- package/dist/es/components/Tabs/Tabs.css +11 -3
- package/dist/es/components/TextField/i/textarea-resizer.svg +1 -0
- package/dist/es/index.d.ts +9 -2
- package/dist/es/index.js +9 -2
- package/dist/lib/components/{Chip → Chips}/Chip.css +53 -32
- package/dist/lib/components/Chips/Chip.d.ts +74 -0
- package/dist/lib/components/{Chip → Chips}/Chip.js +49 -7
- package/dist/lib/components/Chips/Chips.css +19 -0
- package/dist/lib/components/Chips/Chips.d.ts +27 -0
- package/dist/lib/components/Chips/Chips.js +159 -0
- package/dist/lib/components/Chips/components/ChipsDropdown.css +106 -0
- package/dist/lib/components/Chips/components/ChipsDropdown.d.ts +16 -0
- package/dist/lib/components/Chips/components/ChipsDropdown.js +131 -0
- package/dist/lib/components/ContentView/ContentView.css +61 -0
- package/dist/lib/components/ContentView/ContentView.d.ts +49 -0
- package/dist/lib/components/ContentView/ContentView.js +133 -0
- package/dist/lib/components/ContentView/i/alarm.png +0 -0
- package/dist/lib/components/ContentView/i/empty.png +0 -0
- package/dist/lib/components/ContentView/i/error.png +0 -0
- package/dist/lib/components/ContentView/i/fail.png +0 -0
- package/dist/lib/components/ContentView/i/searchNoResult.png +0 -0
- package/dist/lib/components/ContentView/i/submit.png +0 -0
- package/dist/lib/components/ContentView/i/success.png +0 -0
- package/dist/lib/components/ContentView/i/update.png +0 -0
- package/dist/lib/components/ContentView/i/waiting.png +0 -0
- package/dist/lib/components/Sliders/Slider/Slider.css +127 -0
- package/dist/lib/components/Sliders/Slider/Slider.d.ts +41 -0
- package/dist/lib/components/Sliders/Slider/Slider.js +150 -0
- package/dist/lib/components/Sliders/SliderRange/SliderRange.css +154 -0
- package/dist/lib/components/Sliders/SliderRange/SliderRange.d.ts +49 -0
- package/dist/lib/components/Sliders/SliderRange/SliderRange.js +252 -0
- package/dist/lib/components/Sliders/SliderRange/helpers.d.ts +6 -0
- package/dist/lib/components/Sliders/SliderRange/helpers.js +48 -0
- package/dist/lib/components/Sliders/SliderRatio/SliderRatio.css +209 -0
- package/dist/lib/components/Sliders/SliderRatio/SliderRatio.d.ts +42 -0
- package/dist/lib/components/Sliders/SliderRatio/SliderRatio.js +237 -0
- package/dist/lib/components/Sliders/SliderRatio/helpers.d.ts +15 -0
- package/dist/lib/components/Sliders/SliderRatio/helpers.js +58 -0
- package/dist/lib/components/Sliders/SliderRatio/i/thumb.png +0 -0
- package/dist/lib/components/Sliders/SliderRatio/types.d.ts +8 -0
- package/dist/lib/components/Sliders/SliderRatio/types.js +13 -0
- package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.css +83 -0
- package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.d.ts +23 -0
- package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.js +104 -0
- package/dist/lib/components/Sliders/components/SliderScale/SliderScale.css +15 -0
- package/dist/lib/components/Sliders/components/SliderScale/SliderScale.d.ts +19 -0
- package/dist/lib/components/Sliders/components/SliderScale/SliderScale.js +74 -0
- package/dist/lib/components/Sliders/components/SliderScale/helpers.d.ts +2 -0
- package/dist/lib/components/Sliders/components/SliderScale/helpers.js +60 -0
- package/dist/lib/components/Sliders/helpers.d.ts +2 -0
- package/dist/lib/components/Sliders/helpers.js +47 -0
- package/dist/lib/components/Switcher/Switcher.css +13 -0
- package/dist/lib/components/Switcher/Switcher.d.ts +3 -1
- package/dist/lib/components/Switcher/Switcher.js +5 -1
- package/dist/lib/components/Tabs/Tabs.css +11 -3
- package/dist/lib/components/TextField/i/textarea-resizer.svg +1 -0
- package/dist/lib/index.d.ts +9 -2
- package/dist/lib/index.js +65 -9
- package/package.json +5 -4
- package/dist/es/components/Chip/Chip.d.ts +0 -36
- package/dist/lib/components/Chip/Chip.d.ts +0 -36
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
@-webkit-keyframes listAppear {
|
|
2
|
+
from {
|
|
3
|
+
-webkit-transform: translateY(-25px);
|
|
4
|
+
transform: translateY(-25px);
|
|
5
|
+
opacity: 0;
|
|
6
|
+
}
|
|
7
|
+
to {
|
|
8
|
+
-webkit-transform: translateY(0);
|
|
9
|
+
transform: translateY(0);
|
|
10
|
+
opacity: 1;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
@keyframes listAppear {
|
|
14
|
+
from {
|
|
15
|
+
-webkit-transform: translateY(-25px);
|
|
16
|
+
transform: translateY(-25px);
|
|
17
|
+
opacity: 0;
|
|
18
|
+
}
|
|
19
|
+
to {
|
|
20
|
+
-webkit-transform: translateY(0);
|
|
21
|
+
transform: translateY(0);
|
|
22
|
+
opacity: 1;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
.mfui-chips-dropdown {
|
|
26
|
+
position: relative;
|
|
27
|
+
}
|
|
28
|
+
.mfui-chips-dropdown__button {
|
|
29
|
+
width: 100%;
|
|
30
|
+
}
|
|
31
|
+
.mfui-chips-dropdown__list {
|
|
32
|
+
position: absolute;
|
|
33
|
+
top: 100%;
|
|
34
|
+
left: 0;
|
|
35
|
+
z-index: 100;
|
|
36
|
+
display: block;
|
|
37
|
+
border-radius: 12px;
|
|
38
|
+
background-color: var(--base);
|
|
39
|
+
-webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
40
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
41
|
+
-webkit-animation-name: listAppear;
|
|
42
|
+
animation-name: listAppear;
|
|
43
|
+
-webkit-animation-duration: 0.3s;
|
|
44
|
+
animation-duration: 0.3s;
|
|
45
|
+
-webkit-animation-timing-function: ease-in-out;
|
|
46
|
+
animation-timing-function: ease-in-out;
|
|
47
|
+
}
|
|
48
|
+
.mfui-chips-dropdown__list-inner {
|
|
49
|
+
-webkit-box-sizing: border-box;
|
|
50
|
+
box-sizing: border-box;
|
|
51
|
+
max-height: 320px;
|
|
52
|
+
width: -webkit-max-content;
|
|
53
|
+
width: -moz-max-content;
|
|
54
|
+
width: max-content;
|
|
55
|
+
max-width: 256px;
|
|
56
|
+
padding: 16px;
|
|
57
|
+
overflow-y: auto;
|
|
58
|
+
scrollbar-width: thin;
|
|
59
|
+
scrollbar-color: var(--spbSky2) transparent;
|
|
60
|
+
overflow-wrap: normal;
|
|
61
|
+
}
|
|
62
|
+
.mfui-chips-dropdown__list-inner::-webkit-scrollbar {
|
|
63
|
+
width: 16px;
|
|
64
|
+
}
|
|
65
|
+
.mfui-chips-dropdown__list-inner::-webkit-scrollbar-thumb {
|
|
66
|
+
border: 6px solid transparent;
|
|
67
|
+
border-radius: 16px;
|
|
68
|
+
background-color: var(--spbSky2);
|
|
69
|
+
background-clip: padding-box;
|
|
70
|
+
}
|
|
71
|
+
.mfui-chips-dropdown__list-inner::-webkit-scrollbar-thumb:hover {
|
|
72
|
+
background-color: var(--spbSky3);
|
|
73
|
+
}
|
|
74
|
+
.mfui-chips-dropdown__list-item {
|
|
75
|
+
font-family: inherit;
|
|
76
|
+
font-size: 15px;
|
|
77
|
+
line-height: 24px;
|
|
78
|
+
font-weight: 500;
|
|
79
|
+
display: -webkit-box;
|
|
80
|
+
display: -ms-flexbox;
|
|
81
|
+
display: flex;
|
|
82
|
+
padding: 12px 32px;
|
|
83
|
+
border-radius: 12px;
|
|
84
|
+
background-color: transparent;
|
|
85
|
+
cursor: pointer;
|
|
86
|
+
}
|
|
87
|
+
.mfui-chips-dropdown__list-item:hover {
|
|
88
|
+
background-color: var(--spbSky0);
|
|
89
|
+
}
|
|
90
|
+
.mfui-chips-dropdown__list-item_with-icon {
|
|
91
|
+
padding-left: 16px;
|
|
92
|
+
padding-right: 16px;
|
|
93
|
+
}
|
|
94
|
+
.mfui-chips-dropdown__icon {
|
|
95
|
+
display: block;
|
|
96
|
+
width: 24px;
|
|
97
|
+
min-width: 24px;
|
|
98
|
+
max-height: 24px;
|
|
99
|
+
margin-right: 16px;
|
|
100
|
+
}
|
|
101
|
+
.mfui-chips-dropdown__icon svg {
|
|
102
|
+
display: block;
|
|
103
|
+
width: 100%;
|
|
104
|
+
height: 100%;
|
|
105
|
+
fill: var(--content);
|
|
106
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ChipColorsType, ChipIdType, IChipProps } from '../Chip';
|
|
3
|
+
import './ChipsDropdown.less';
|
|
4
|
+
export interface IChipsDropdownProps {
|
|
5
|
+
moreTitle: string;
|
|
6
|
+
value: ChipIdType;
|
|
7
|
+
items: IChipProps[];
|
|
8
|
+
color: ChipColorsType;
|
|
9
|
+
onClick: (e: React.SyntheticEvent<EventTarget>, id: ChipIdType) => void;
|
|
10
|
+
dataAttrs?: {
|
|
11
|
+
root?: Record<string, string>;
|
|
12
|
+
list?: Record<string, string>;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
declare const ChipsDropdown: React.FC<IChipsDropdownProps>;
|
|
16
|
+
export default ChipsDropdown;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
require("core-js/modules/es.array.find.js");
|
|
15
|
+
|
|
16
|
+
require("core-js/modules/es.array.map.js");
|
|
17
|
+
|
|
18
|
+
require("core-js/modules/es.object.values.js");
|
|
19
|
+
|
|
20
|
+
var _react = _interopRequireDefault(require("react"));
|
|
21
|
+
|
|
22
|
+
var _uiHelpers = require("@megafon/ui-helpers");
|
|
23
|
+
|
|
24
|
+
var PropTypes = _interopRequireWildcard(require("prop-types"));
|
|
25
|
+
|
|
26
|
+
var _Chip = _interopRequireWildcard(require("../Chip"));
|
|
27
|
+
|
|
28
|
+
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); }
|
|
29
|
+
|
|
30
|
+
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; }
|
|
31
|
+
|
|
32
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
33
|
+
|
|
34
|
+
var cn = (0, _uiHelpers.cnCreate)('mfui-chips-dropdown');
|
|
35
|
+
|
|
36
|
+
var ChipsDropdown = function ChipsDropdown(_ref) {
|
|
37
|
+
var color = _ref.color,
|
|
38
|
+
moreTitle = _ref.moreTitle,
|
|
39
|
+
_ref$items = _ref.items,
|
|
40
|
+
items = _ref$items === void 0 ? [] : _ref$items,
|
|
41
|
+
value = _ref.value,
|
|
42
|
+
onClick = _ref.onClick,
|
|
43
|
+
dataAttrs = _ref.dataAttrs;
|
|
44
|
+
|
|
45
|
+
var _React$useState = _react["default"].useState(false),
|
|
46
|
+
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
47
|
+
isDropdownOpen = _React$useState2[0],
|
|
48
|
+
setIsDropdownOpen = _React$useState2[1];
|
|
49
|
+
|
|
50
|
+
var dropdownRef = _react["default"].useRef(null);
|
|
51
|
+
|
|
52
|
+
var listRef = _react["default"].useRef(null);
|
|
53
|
+
|
|
54
|
+
var currentItem = _react["default"].useMemo(function () {
|
|
55
|
+
return items.find(function (item) {
|
|
56
|
+
return item.id === value;
|
|
57
|
+
}) || {
|
|
58
|
+
id: '',
|
|
59
|
+
children: moreTitle
|
|
60
|
+
};
|
|
61
|
+
}, [items, value, moreTitle]);
|
|
62
|
+
|
|
63
|
+
var handleOutsideClick = _react["default"].useCallback(function (event) {
|
|
64
|
+
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
65
|
+
setIsDropdownOpen(false);
|
|
66
|
+
}
|
|
67
|
+
}, []);
|
|
68
|
+
|
|
69
|
+
var handleOpenItemList = function handleOpenItemList() {
|
|
70
|
+
setIsDropdownOpen(true);
|
|
71
|
+
document.addEventListener('mousedown', handleOutsideClick);
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
var handleItemClick = _react["default"].useCallback(function (item) {
|
|
75
|
+
return function (e) {
|
|
76
|
+
e.persist();
|
|
77
|
+
setIsDropdownOpen(false);
|
|
78
|
+
onClick(e, item.id);
|
|
79
|
+
};
|
|
80
|
+
}, [onClick]);
|
|
81
|
+
|
|
82
|
+
_react["default"].useEffect(function () {
|
|
83
|
+
if (!isDropdownOpen) {
|
|
84
|
+
document.removeEventListener('mousedown', handleOutsideClick);
|
|
85
|
+
}
|
|
86
|
+
}, [handleOutsideClick, isDropdownOpen]);
|
|
87
|
+
|
|
88
|
+
_react["default"].useEffect(function () {
|
|
89
|
+
return function () {
|
|
90
|
+
return document.removeEventListener('mousedown', handleOutsideClick);
|
|
91
|
+
};
|
|
92
|
+
}, [handleOutsideClick]);
|
|
93
|
+
|
|
94
|
+
return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
|
|
95
|
+
className: cn(),
|
|
96
|
+
ref: dropdownRef
|
|
97
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/_react["default"].createElement(_Chip["default"], (0, _extends2["default"])({}, currentItem, {
|
|
98
|
+
className: cn('button'),
|
|
99
|
+
color: color,
|
|
100
|
+
checked: !!currentItem.id,
|
|
101
|
+
arrow: isDropdownOpen ? 'up' : 'down',
|
|
102
|
+
onClick: handleOpenItemList
|
|
103
|
+
})), isDropdownOpen && /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
|
|
104
|
+
className: cn('list'),
|
|
105
|
+
ref: listRef
|
|
106
|
+
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.list)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
107
|
+
className: cn('list-inner')
|
|
108
|
+
}, items.map(function (item, key) {
|
|
109
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
110
|
+
key: key,
|
|
111
|
+
className: cn('list-item', {
|
|
112
|
+
'with-icon': !!item.icon
|
|
113
|
+
}),
|
|
114
|
+
onClick: handleItemClick(item),
|
|
115
|
+
onKeyDown: handleItemClick(item)
|
|
116
|
+
}, !!(item === null || item === void 0 ? void 0 : item.icon) && /*#__PURE__*/_react["default"].createElement("span", {
|
|
117
|
+
className: cn('icon')
|
|
118
|
+
}, item.icon), !!(item === null || item === void 0 ? void 0 : item.children) && item.children);
|
|
119
|
+
}))));
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
ChipsDropdown.propTypes = {
|
|
123
|
+
moreTitle: PropTypes.string.isRequired,
|
|
124
|
+
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
|
|
125
|
+
items: PropTypes.arrayOf(PropTypes.shape(_Chip.ChipPropType).isRequired).isRequired,
|
|
126
|
+
color: PropTypes.oneOf(Object.values(_Chip.ChipColors)).isRequired,
|
|
127
|
+
onClick: PropTypes.func.isRequired,
|
|
128
|
+
dataAttrs: PropTypes.objectOf(PropTypes.object)
|
|
129
|
+
};
|
|
130
|
+
var _default = ChipsDropdown;
|
|
131
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
.mfui-content-view {
|
|
2
|
+
min-width: 240px;
|
|
3
|
+
padding: 0 16px;
|
|
4
|
+
color: var(--content);
|
|
5
|
+
text-align: center;
|
|
6
|
+
}
|
|
7
|
+
.mfui-content-view__image {
|
|
8
|
+
max-width: 144px;
|
|
9
|
+
margin-bottom: 24px;
|
|
10
|
+
vertical-align: top;
|
|
11
|
+
}
|
|
12
|
+
.mfui-content-view__title {
|
|
13
|
+
font-weight: 500;
|
|
14
|
+
font-size: 20px;
|
|
15
|
+
line-height: 28px;
|
|
16
|
+
letter-spacing: 0.5px;
|
|
17
|
+
}
|
|
18
|
+
.mfui-content-view__text {
|
|
19
|
+
font-size: 15px;
|
|
20
|
+
line-height: 24px;
|
|
21
|
+
font-weight: 400;
|
|
22
|
+
margin-top: 4px;
|
|
23
|
+
}
|
|
24
|
+
.mfui-content-view__buttons {
|
|
25
|
+
display: -webkit-box;
|
|
26
|
+
display: -ms-flexbox;
|
|
27
|
+
display: flex;
|
|
28
|
+
-webkit-box-orient: vertical;
|
|
29
|
+
-webkit-box-direction: normal;
|
|
30
|
+
-ms-flex-direction: column;
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
gap: 12px;
|
|
33
|
+
-webkit-box-align: center;
|
|
34
|
+
-ms-flex-align: center;
|
|
35
|
+
align-items: center;
|
|
36
|
+
padding-top: 32px;
|
|
37
|
+
}
|
|
38
|
+
.mfui-content-view_fullscreen {
|
|
39
|
+
display: -webkit-box;
|
|
40
|
+
display: -ms-flexbox;
|
|
41
|
+
display: flex;
|
|
42
|
+
-webkit-box-orient: vertical;
|
|
43
|
+
-webkit-box-direction: normal;
|
|
44
|
+
-ms-flex-direction: column;
|
|
45
|
+
flex-direction: column;
|
|
46
|
+
-webkit-box-align: center;
|
|
47
|
+
-ms-flex-align: center;
|
|
48
|
+
align-items: center;
|
|
49
|
+
-webkit-box-pack: center;
|
|
50
|
+
-ms-flex-pack: center;
|
|
51
|
+
justify-content: center;
|
|
52
|
+
min-height: 100%;
|
|
53
|
+
}
|
|
54
|
+
.mfui-content-view_fullscreen .mfui-content-view__content {
|
|
55
|
+
margin-top: auto;
|
|
56
|
+
}
|
|
57
|
+
.mfui-content-view_fullscreen .mfui-content-view__buttons {
|
|
58
|
+
margin-top: auto;
|
|
59
|
+
padding-top: 24px;
|
|
60
|
+
padding-bottom: 24px;
|
|
61
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import './ContentView.less';
|
|
3
|
+
declare const imageMap: {
|
|
4
|
+
alarm: any;
|
|
5
|
+
empty: any;
|
|
6
|
+
error: any;
|
|
7
|
+
fail: any;
|
|
8
|
+
searchNoResult: any;
|
|
9
|
+
submit: any;
|
|
10
|
+
success: any;
|
|
11
|
+
update: any;
|
|
12
|
+
waiting: any;
|
|
13
|
+
};
|
|
14
|
+
declare type ElementType = {
|
|
15
|
+
/** Текст */
|
|
16
|
+
text?: string;
|
|
17
|
+
/** Атрибут href */
|
|
18
|
+
href?: string;
|
|
19
|
+
/** Атрибут target */
|
|
20
|
+
target?: '_self' | '_blank' | '_parent' | '_top';
|
|
21
|
+
/** Обработчик клика */
|
|
22
|
+
onClick?: (e: React.SyntheticEvent<EventTarget>) => void;
|
|
23
|
+
};
|
|
24
|
+
export interface IContentViewProps {
|
|
25
|
+
/** Дополнительный класс корневого элемента */
|
|
26
|
+
className?: string;
|
|
27
|
+
/** Заголовок */
|
|
28
|
+
title: string;
|
|
29
|
+
/** Тип встроенного изображения */
|
|
30
|
+
type?: keyof typeof imageMap;
|
|
31
|
+
/** Значение тега alt для изображения */
|
|
32
|
+
alt?: string;
|
|
33
|
+
/** Ссылка на изображение */
|
|
34
|
+
src?: string;
|
|
35
|
+
/** Параметры кнопки */
|
|
36
|
+
buttonParams?: ElementType;
|
|
37
|
+
/** Параметры ссылки */
|
|
38
|
+
linkParams?: ElementType;
|
|
39
|
+
/** Полноэкранный режим */
|
|
40
|
+
isFullscreen?: boolean;
|
|
41
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
|
42
|
+
dataAttrs?: {
|
|
43
|
+
root?: Record<string, string>;
|
|
44
|
+
button?: Record<string, string>;
|
|
45
|
+
link?: Record<string, string>;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
declare const ContentView: React.FC<IContentViewProps>;
|
|
49
|
+
export default ContentView;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
require("core-js/modules/es.string.link.js");
|
|
13
|
+
|
|
14
|
+
var React = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _uiHelpers = require("@megafon/ui-helpers");
|
|
17
|
+
|
|
18
|
+
var PropTypes = _interopRequireWildcard(require("prop-types"));
|
|
19
|
+
|
|
20
|
+
var _Button = _interopRequireDefault(require("../Button/Button"));
|
|
21
|
+
|
|
22
|
+
var _alarm = _interopRequireDefault(require("./i/alarm.png"));
|
|
23
|
+
|
|
24
|
+
var _empty = _interopRequireDefault(require("./i/empty.png"));
|
|
25
|
+
|
|
26
|
+
var _error = _interopRequireDefault(require("./i/error.png"));
|
|
27
|
+
|
|
28
|
+
var _fail = _interopRequireDefault(require("./i/fail.png"));
|
|
29
|
+
|
|
30
|
+
var _searchNoResult = _interopRequireDefault(require("./i/searchNoResult.png"));
|
|
31
|
+
|
|
32
|
+
var _submit = _interopRequireDefault(require("./i/submit.png"));
|
|
33
|
+
|
|
34
|
+
var _success = _interopRequireDefault(require("./i/success.png"));
|
|
35
|
+
|
|
36
|
+
var _update = _interopRequireDefault(require("./i/update.png"));
|
|
37
|
+
|
|
38
|
+
var _waiting = _interopRequireDefault(require("./i/waiting.png"));
|
|
39
|
+
|
|
40
|
+
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); }
|
|
41
|
+
|
|
42
|
+
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; }
|
|
43
|
+
|
|
44
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
45
|
+
|
|
46
|
+
var imageMap = {
|
|
47
|
+
alarm: _alarm["default"],
|
|
48
|
+
empty: _empty["default"],
|
|
49
|
+
error: _error["default"],
|
|
50
|
+
fail: _fail["default"],
|
|
51
|
+
searchNoResult: _searchNoResult["default"],
|
|
52
|
+
submit: _submit["default"],
|
|
53
|
+
success: _success["default"],
|
|
54
|
+
update: _update["default"],
|
|
55
|
+
waiting: _waiting["default"]
|
|
56
|
+
};
|
|
57
|
+
var cn = (0, _uiHelpers.cnCreate)('mfui-content-view');
|
|
58
|
+
|
|
59
|
+
var ContentView = function ContentView(_ref) {
|
|
60
|
+
var className = _ref.className,
|
|
61
|
+
title = _ref.title,
|
|
62
|
+
type = _ref.type,
|
|
63
|
+
_ref$alt = _ref.alt,
|
|
64
|
+
alt = _ref$alt === void 0 ? '' : _ref$alt,
|
|
65
|
+
src = _ref.src,
|
|
66
|
+
buttonParams = _ref.buttonParams,
|
|
67
|
+
linkParams = _ref.linkParams,
|
|
68
|
+
isFullscreen = _ref.isFullscreen,
|
|
69
|
+
dataAttrs = _ref.dataAttrs,
|
|
70
|
+
children = _ref.children;
|
|
71
|
+
var imageSrc = type ? imageMap[type] : src;
|
|
72
|
+
var showButtons = !!(buttonParams === null || buttonParams === void 0 ? void 0 : buttonParams.text) || !!(linkParams === null || linkParams === void 0 ? void 0 : linkParams.text);
|
|
73
|
+
return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
74
|
+
className: cn({
|
|
75
|
+
fullscreen: isFullscreen
|
|
76
|
+
}, [className])
|
|
77
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
78
|
+
className: cn('content')
|
|
79
|
+
}, /*#__PURE__*/React.createElement("img", {
|
|
80
|
+
className: cn('image'),
|
|
81
|
+
src: imageSrc,
|
|
82
|
+
alt: alt
|
|
83
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
84
|
+
className: cn('title')
|
|
85
|
+
}, title), !!children && /*#__PURE__*/React.createElement("div", {
|
|
86
|
+
className: cn('text')
|
|
87
|
+
}, children)), showButtons && /*#__PURE__*/React.createElement("div", {
|
|
88
|
+
className: cn('buttons')
|
|
89
|
+
}, !!(buttonParams === null || buttonParams === void 0 ? void 0 : buttonParams.text) && /*#__PURE__*/React.createElement(_Button["default"], {
|
|
90
|
+
href: buttonParams.href,
|
|
91
|
+
target: buttonParams.target,
|
|
92
|
+
onClick: buttonParams.onClick,
|
|
93
|
+
dataAttrs: {
|
|
94
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button
|
|
95
|
+
}
|
|
96
|
+
}, buttonParams.text), !!(linkParams === null || linkParams === void 0 ? void 0 : linkParams.text) && /*#__PURE__*/React.createElement(_Button["default"], {
|
|
97
|
+
type: "text",
|
|
98
|
+
href: linkParams.href,
|
|
99
|
+
target: linkParams.target,
|
|
100
|
+
onClick: linkParams.onClick,
|
|
101
|
+
dataAttrs: {
|
|
102
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.link
|
|
103
|
+
}
|
|
104
|
+
}, linkParams.text)));
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
ContentView.propTypes = {
|
|
108
|
+
className: PropTypes.string,
|
|
109
|
+
title: PropTypes.string.isRequired,
|
|
110
|
+
type: PropTypes.oneOf(['waiting', 'error', 'submit', 'success', 'fail', 'update', 'alarm', 'empty', 'searchNoResult']),
|
|
111
|
+
alt: PropTypes.string,
|
|
112
|
+
src: PropTypes.string,
|
|
113
|
+
buttonParams: PropTypes.shape({
|
|
114
|
+
text: PropTypes.string,
|
|
115
|
+
href: PropTypes.string,
|
|
116
|
+
target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),
|
|
117
|
+
onClick: PropTypes.func
|
|
118
|
+
}),
|
|
119
|
+
linkParams: PropTypes.shape({
|
|
120
|
+
text: PropTypes.string,
|
|
121
|
+
href: PropTypes.string,
|
|
122
|
+
target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),
|
|
123
|
+
onClick: PropTypes.func
|
|
124
|
+
}),
|
|
125
|
+
isFullscreen: PropTypes.bool,
|
|
126
|
+
dataAttrs: PropTypes.shape({
|
|
127
|
+
root: PropTypes.objectOf(PropTypes.string.isRequired),
|
|
128
|
+
button: PropTypes.objectOf(PropTypes.string.isRequired),
|
|
129
|
+
link: PropTypes.objectOf(PropTypes.string.isRequired)
|
|
130
|
+
})
|
|
131
|
+
};
|
|
132
|
+
var _default = ContentView;
|
|
133
|
+
exports["default"] = _default;
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
.mfui-slider {
|
|
2
|
+
display: -webkit-box;
|
|
3
|
+
display: -ms-flexbox;
|
|
4
|
+
display: flex;
|
|
5
|
+
-webkit-box-orient: vertical;
|
|
6
|
+
-webkit-box-direction: normal;
|
|
7
|
+
-ms-flex-direction: column;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
}
|
|
10
|
+
.mfui-slider__head {
|
|
11
|
+
font-size: 15px;
|
|
12
|
+
line-height: 24px;
|
|
13
|
+
font-weight: 500;
|
|
14
|
+
display: -webkit-box;
|
|
15
|
+
display: -ms-flexbox;
|
|
16
|
+
display: flex;
|
|
17
|
+
-webkit-box-align: end;
|
|
18
|
+
-ms-flex-align: end;
|
|
19
|
+
align-items: flex-end;
|
|
20
|
+
margin-bottom: 8px;
|
|
21
|
+
}
|
|
22
|
+
.mfui-slider__display-value {
|
|
23
|
+
margin-left: auto;
|
|
24
|
+
}
|
|
25
|
+
.mfui-slider__range-input {
|
|
26
|
+
height: 12px;
|
|
27
|
+
margin: 6px 0;
|
|
28
|
+
border-radius: 100px;
|
|
29
|
+
background: var(--spbSky0);
|
|
30
|
+
background-image: -webkit-gradient(linear, left top, left bottom, from(var(--brandGreen)), to(var(--brandGreen)));
|
|
31
|
+
background-image: linear-gradient(var(--brandGreen), var(--brandGreen));
|
|
32
|
+
background-repeat: no-repeat;
|
|
33
|
+
outline: none;
|
|
34
|
+
cursor: pointer;
|
|
35
|
+
-webkit-appearance: none;
|
|
36
|
+
-moz-appearance: none;
|
|
37
|
+
appearance: none;
|
|
38
|
+
}
|
|
39
|
+
.mfui-slider__range-input:focus {
|
|
40
|
+
outline: none;
|
|
41
|
+
}
|
|
42
|
+
.mfui-slider__range-input::-webkit-slider-thumb {
|
|
43
|
+
width: 24px;
|
|
44
|
+
height: 24px;
|
|
45
|
+
border: none;
|
|
46
|
+
border-radius: 50%;
|
|
47
|
+
background-color: var(--stcWhite);
|
|
48
|
+
-webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16);
|
|
49
|
+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16);
|
|
50
|
+
-webkit-appearance: none;
|
|
51
|
+
}
|
|
52
|
+
.mfui-slider__range-input::-moz-range-thumb {
|
|
53
|
+
width: 24px;
|
|
54
|
+
height: 24px;
|
|
55
|
+
border: none;
|
|
56
|
+
border-radius: 50%;
|
|
57
|
+
background-color: var(--stcWhite);
|
|
58
|
+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16);
|
|
59
|
+
-webkit-appearance: none;
|
|
60
|
+
}
|
|
61
|
+
.mfui-slider__range-input::-ms-thumb {
|
|
62
|
+
width: 24px;
|
|
63
|
+
height: 24px;
|
|
64
|
+
border: none;
|
|
65
|
+
border-radius: 50%;
|
|
66
|
+
background-color: var(--stcWhite);
|
|
67
|
+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16);
|
|
68
|
+
-webkit-appearance: none;
|
|
69
|
+
}
|
|
70
|
+
.mfui-slider__range-input::-webkit-slider-runnable-track {
|
|
71
|
+
border: none;
|
|
72
|
+
background: transparent;
|
|
73
|
+
-webkit-box-shadow: none;
|
|
74
|
+
box-shadow: none;
|
|
75
|
+
-webkit-appearance: none;
|
|
76
|
+
}
|
|
77
|
+
.mfui-slider__range-input::-moz-range-track {
|
|
78
|
+
border: none;
|
|
79
|
+
background: transparent;
|
|
80
|
+
box-shadow: none;
|
|
81
|
+
-webkit-appearance: none;
|
|
82
|
+
}
|
|
83
|
+
.mfui-slider__range-input::-ms-track {
|
|
84
|
+
border: none;
|
|
85
|
+
background: transparent;
|
|
86
|
+
box-shadow: none;
|
|
87
|
+
-webkit-appearance: none;
|
|
88
|
+
}
|
|
89
|
+
.mfui-slider_disabled .mfui-slider__head {
|
|
90
|
+
color: var(--spbSky3);
|
|
91
|
+
}
|
|
92
|
+
.mfui-slider_disabled .mfui-slider__range-input {
|
|
93
|
+
background-image: -webkit-gradient(linear, left top, left bottom, from(var(--spbSky1)), to(var(--spbSky1)));
|
|
94
|
+
background-image: linear-gradient(var(--spbSky1), var(--spbSky1));
|
|
95
|
+
cursor: default;
|
|
96
|
+
}
|
|
97
|
+
.mfui-slider_disabled .mfui-slider__range-input::-webkit-slider-thumb {
|
|
98
|
+
width: 24px;
|
|
99
|
+
height: 24px;
|
|
100
|
+
border: none;
|
|
101
|
+
border-radius: 50%;
|
|
102
|
+
background-color: var(--stcWhite);
|
|
103
|
+
-webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16);
|
|
104
|
+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16);
|
|
105
|
+
-webkit-appearance: none;
|
|
106
|
+
background-color: var(--spbSky2);
|
|
107
|
+
}
|
|
108
|
+
.mfui-slider_disabled .mfui-slider__range-input::-moz-range-thumb {
|
|
109
|
+
width: 24px;
|
|
110
|
+
height: 24px;
|
|
111
|
+
border: none;
|
|
112
|
+
border-radius: 50%;
|
|
113
|
+
background-color: var(--stcWhite);
|
|
114
|
+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16);
|
|
115
|
+
-webkit-appearance: none;
|
|
116
|
+
background-color: var(--spbSky2);
|
|
117
|
+
}
|
|
118
|
+
.mfui-slider_disabled .mfui-slider__range-input::-ms-thumb {
|
|
119
|
+
width: 24px;
|
|
120
|
+
height: 24px;
|
|
121
|
+
border: none;
|
|
122
|
+
border-radius: 50%;
|
|
123
|
+
background-color: var(--stcWhite);
|
|
124
|
+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16);
|
|
125
|
+
-webkit-appearance: none;
|
|
126
|
+
background-color: var(--spbSky2);
|
|
127
|
+
}
|