@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.
Files changed (112) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/es/components/{Chip → Chips}/Chip.css +53 -32
  3. package/dist/es/components/Chips/Chip.d.ts +74 -0
  4. package/dist/es/components/{Chip → Chips}/Chip.js +45 -6
  5. package/dist/es/components/Chips/Chips.css +19 -0
  6. package/dist/es/components/Chips/Chips.d.ts +27 -0
  7. package/dist/es/components/Chips/Chips.js +129 -0
  8. package/dist/es/components/Chips/components/ChipsDropdown.css +106 -0
  9. package/dist/es/components/Chips/components/ChipsDropdown.d.ts +16 -0
  10. package/dist/es/components/Chips/components/ChipsDropdown.js +101 -0
  11. package/dist/es/components/ContentView/ContentView.css +61 -0
  12. package/dist/es/components/ContentView/ContentView.d.ts +49 -0
  13. package/dist/es/components/ContentView/ContentView.js +103 -0
  14. package/dist/es/components/ContentView/i/alarm.png +0 -0
  15. package/dist/es/components/ContentView/i/empty.png +0 -0
  16. package/dist/es/components/ContentView/i/error.png +0 -0
  17. package/dist/es/components/ContentView/i/fail.png +0 -0
  18. package/dist/es/components/ContentView/i/searchNoResult.png +0 -0
  19. package/dist/es/components/ContentView/i/submit.png +0 -0
  20. package/dist/es/components/ContentView/i/success.png +0 -0
  21. package/dist/es/components/ContentView/i/update.png +0 -0
  22. package/dist/es/components/ContentView/i/waiting.png +0 -0
  23. package/dist/es/components/Sliders/Slider/Slider.css +127 -0
  24. package/dist/es/components/Sliders/Slider/Slider.d.ts +41 -0
  25. package/dist/es/components/Sliders/Slider/Slider.js +126 -0
  26. package/dist/es/components/Sliders/SliderRange/SliderRange.css +154 -0
  27. package/dist/es/components/Sliders/SliderRange/SliderRange.d.ts +49 -0
  28. package/dist/es/components/Sliders/SliderRange/SliderRange.js +227 -0
  29. package/dist/es/components/Sliders/SliderRange/helpers.d.ts +6 -0
  30. package/dist/es/components/Sliders/SliderRange/helpers.js +31 -0
  31. package/dist/es/components/Sliders/SliderRatio/SliderRatio.css +209 -0
  32. package/dist/es/components/Sliders/SliderRatio/SliderRatio.d.ts +42 -0
  33. package/dist/es/components/Sliders/SliderRatio/SliderRatio.js +206 -0
  34. package/dist/es/components/Sliders/SliderRatio/helpers.d.ts +15 -0
  35. package/dist/es/components/Sliders/SliderRatio/helpers.js +32 -0
  36. package/dist/es/components/Sliders/SliderRatio/i/thumb.png +0 -0
  37. package/dist/es/components/Sliders/SliderRatio/types.d.ts +8 -0
  38. package/dist/es/components/Sliders/SliderRatio/types.js +6 -0
  39. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.css +83 -0
  40. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.d.ts +23 -0
  41. package/dist/es/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.js +82 -0
  42. package/dist/es/components/Sliders/components/SliderScale/SliderScale.css +15 -0
  43. package/dist/es/components/Sliders/components/SliderScale/SliderScale.d.ts +19 -0
  44. package/dist/es/components/Sliders/components/SliderScale/SliderScale.js +51 -0
  45. package/dist/es/components/Sliders/components/SliderScale/helpers.d.ts +2 -0
  46. package/dist/es/components/Sliders/components/SliderScale/helpers.js +39 -0
  47. package/dist/es/components/Sliders/helpers.d.ts +2 -0
  48. package/dist/es/components/Sliders/helpers.js +33 -0
  49. package/dist/es/components/Switcher/Switcher.css +13 -0
  50. package/dist/es/components/Switcher/Switcher.d.ts +3 -1
  51. package/dist/es/components/Switcher/Switcher.js +5 -1
  52. package/dist/es/components/Tabs/Tabs.css +11 -3
  53. package/dist/es/components/TextField/i/textarea-resizer.svg +1 -0
  54. package/dist/es/index.d.ts +9 -2
  55. package/dist/es/index.js +9 -2
  56. package/dist/lib/components/{Chip → Chips}/Chip.css +53 -32
  57. package/dist/lib/components/Chips/Chip.d.ts +74 -0
  58. package/dist/lib/components/{Chip → Chips}/Chip.js +49 -7
  59. package/dist/lib/components/Chips/Chips.css +19 -0
  60. package/dist/lib/components/Chips/Chips.d.ts +27 -0
  61. package/dist/lib/components/Chips/Chips.js +159 -0
  62. package/dist/lib/components/Chips/components/ChipsDropdown.css +106 -0
  63. package/dist/lib/components/Chips/components/ChipsDropdown.d.ts +16 -0
  64. package/dist/lib/components/Chips/components/ChipsDropdown.js +131 -0
  65. package/dist/lib/components/ContentView/ContentView.css +61 -0
  66. package/dist/lib/components/ContentView/ContentView.d.ts +49 -0
  67. package/dist/lib/components/ContentView/ContentView.js +133 -0
  68. package/dist/lib/components/ContentView/i/alarm.png +0 -0
  69. package/dist/lib/components/ContentView/i/empty.png +0 -0
  70. package/dist/lib/components/ContentView/i/error.png +0 -0
  71. package/dist/lib/components/ContentView/i/fail.png +0 -0
  72. package/dist/lib/components/ContentView/i/searchNoResult.png +0 -0
  73. package/dist/lib/components/ContentView/i/submit.png +0 -0
  74. package/dist/lib/components/ContentView/i/success.png +0 -0
  75. package/dist/lib/components/ContentView/i/update.png +0 -0
  76. package/dist/lib/components/ContentView/i/waiting.png +0 -0
  77. package/dist/lib/components/Sliders/Slider/Slider.css +127 -0
  78. package/dist/lib/components/Sliders/Slider/Slider.d.ts +41 -0
  79. package/dist/lib/components/Sliders/Slider/Slider.js +150 -0
  80. package/dist/lib/components/Sliders/SliderRange/SliderRange.css +154 -0
  81. package/dist/lib/components/Sliders/SliderRange/SliderRange.d.ts +49 -0
  82. package/dist/lib/components/Sliders/SliderRange/SliderRange.js +252 -0
  83. package/dist/lib/components/Sliders/SliderRange/helpers.d.ts +6 -0
  84. package/dist/lib/components/Sliders/SliderRange/helpers.js +48 -0
  85. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.css +209 -0
  86. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.d.ts +42 -0
  87. package/dist/lib/components/Sliders/SliderRatio/SliderRatio.js +237 -0
  88. package/dist/lib/components/Sliders/SliderRatio/helpers.d.ts +15 -0
  89. package/dist/lib/components/Sliders/SliderRatio/helpers.js +58 -0
  90. package/dist/lib/components/Sliders/SliderRatio/i/thumb.png +0 -0
  91. package/dist/lib/components/Sliders/SliderRatio/types.d.ts +8 -0
  92. package/dist/lib/components/Sliders/SliderRatio/types.js +13 -0
  93. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.css +83 -0
  94. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.d.ts +23 -0
  95. package/dist/lib/components/Sliders/components/SliderDisplayValue/SliderDisplayValue.js +104 -0
  96. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.css +15 -0
  97. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.d.ts +19 -0
  98. package/dist/lib/components/Sliders/components/SliderScale/SliderScale.js +74 -0
  99. package/dist/lib/components/Sliders/components/SliderScale/helpers.d.ts +2 -0
  100. package/dist/lib/components/Sliders/components/SliderScale/helpers.js +60 -0
  101. package/dist/lib/components/Sliders/helpers.d.ts +2 -0
  102. package/dist/lib/components/Sliders/helpers.js +47 -0
  103. package/dist/lib/components/Switcher/Switcher.css +13 -0
  104. package/dist/lib/components/Switcher/Switcher.d.ts +3 -1
  105. package/dist/lib/components/Switcher/Switcher.js +5 -1
  106. package/dist/lib/components/Tabs/Tabs.css +11 -3
  107. package/dist/lib/components/TextField/i/textarea-resizer.svg +1 -0
  108. package/dist/lib/index.d.ts +9 -2
  109. package/dist/lib/index.js +65 -9
  110. package/package.json +5 -4
  111. package/dist/es/components/Chip/Chip.d.ts +0 -36
  112. 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;
@@ -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
+ }