@salutejs/plasma-hope 1.387.0 → 1.387.1-dev.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/components/Button/views/b2c/ButtonB2C.d.ts +1 -1
- package/components/Button/views/web/ButtonWeb.d.ts +1 -1
- package/components/Card/CardBadge.d.ts +12 -1
- package/components/Card/CardBadge.d.ts.map +1 -1
- package/components/Card/CardBadge.js +19 -4
- package/components/PreviewGallery/PreviewGalleryItemBase.d.ts +1 -1
- package/components/PreviewGallery/PreviewGalleryItemBase.d.ts.map +1 -1
- package/components/PreviewGallery/PreviewGalleryItemBase.js +1 -2
- package/components/Upload/UploadMessage.d.ts.map +1 -1
- package/components/Upload/UploadMessage.js +2 -2
- package/es/components/Card/CardBadge.js +17 -3
- package/es/components/PreviewGallery/PreviewGalleryItemBase.js +1 -2
- package/es/components/Upload/UploadMessage.js +1 -1
- package/es/index.js +0 -10
- package/index.d.ts +0 -10
- package/index.js +0 -110
- package/package.json +11 -11
- package/components/Badge/Badge.d.ts +0 -21
- package/components/Badge/Badge.d.ts.map +0 -1
- package/components/Badge/Badge.js +0 -30
- package/components/Badge/index.d.ts +0 -5
- package/components/Badge/index.d.ts.map +0 -1
- package/components/Badge/index.js +0 -25
- package/components/Cell/Cell.d.ts +0 -18
- package/components/Cell/Cell.d.ts.map +0 -1
- package/components/Cell/Cell.js +0 -32
- package/components/Cell/index.d.ts +0 -3
- package/components/Cell/index.d.ts.map +0 -1
- package/components/Cell/index.js +0 -12
- package/components/Dropdown/Dropdown.component-test.js +0 -547
- package/components/Dropdown/Dropdown.d.ts +0 -20
- package/components/Dropdown/Dropdown.d.ts.map +0 -1
- package/components/Dropdown/Dropdown.js +0 -64
- package/components/Dropdown/Dropdown.types.d.ts +0 -16
- package/components/Dropdown/Dropdown.types.d.ts.map +0 -1
- package/components/Dropdown/Dropdown.types.js +0 -7
- package/components/Dropdown/DropdownItem.d.ts +0 -30
- package/components/Dropdown/DropdownItem.d.ts.map +0 -1
- package/components/Dropdown/DropdownItem.js +0 -122
- package/components/Dropdown/DropdownList.d.ts +0 -22
- package/components/Dropdown/DropdownList.d.ts.map +0 -1
- package/components/Dropdown/DropdownList.js +0 -23
- package/components/Dropdown/DropdownMenu.d.ts +0 -30
- package/components/Dropdown/DropdownMenu.d.ts.map +0 -1
- package/components/Dropdown/DropdownMenu.js +0 -60
- package/components/Dropdown/DropdownPopup.d.ts +0 -18
- package/components/Dropdown/DropdownPopup.d.ts.map +0 -1
- package/components/Dropdown/DropdownPopup.js +0 -47
- package/components/Dropdown/DropdownUncontrolled.d.ts +0 -12
- package/components/Dropdown/DropdownUncontrolled.d.ts.map +0 -1
- package/components/Dropdown/DropdownUncontrolled.js +0 -69
- package/components/Dropdown/index.d.ts +0 -13
- package/components/Dropdown/index.d.ts.map +0 -1
- package/components/Dropdown/index.js +0 -53
- package/components/Dropdown/keyboardNavigation/index.d.ts +0 -2
- package/components/Dropdown/keyboardNavigation/index.d.ts.map +0 -1
- package/components/Dropdown/keyboardNavigation/index.js +0 -18
- package/components/Dropdown/keyboardNavigation/useKeyboardNavigation.d.ts +0 -20
- package/components/Dropdown/keyboardNavigation/useKeyboardNavigation.d.ts.map +0 -1
- package/components/Dropdown/keyboardNavigation/useKeyboardNavigation.js +0 -58
- package/components/Dropdown/keyboardNavigation/useOnComboType.d.ts +0 -6
- package/components/Dropdown/keyboardNavigation/useOnComboType.d.ts.map +0 -1
- package/components/Dropdown/keyboardNavigation/useOnComboType.js +0 -30
- package/components/Dropdown/keyboardNavigation/useSearchString.d.ts +0 -5
- package/components/Dropdown/keyboardNavigation/useSearchString.d.ts.map +0 -1
- package/components/Dropdown/keyboardNavigation/useSearchString.js +0 -46
- package/components/Dropdown/keyboardNavigation/utils.d.ts +0 -39
- package/components/Dropdown/keyboardNavigation/utils.d.ts.map +0 -1
- package/components/Dropdown/keyboardNavigation/utils.js +0 -175
- package/components/Dropdown/withAssistiveDropdown.d.ts +0 -27
- package/components/Dropdown/withAssistiveDropdown.d.ts.map +0 -1
- package/components/Dropdown/withAssistiveDropdown.js +0 -134
- package/components/Editable/Editable.component-test.js +0 -114
- package/components/Editable/Editable.d.ts +0 -36
- package/components/Editable/Editable.d.ts.map +0 -1
- package/components/Editable/Editable.js +0 -154
- package/components/Editable/index.d.ts +0 -2
- package/components/Editable/index.d.ts.map +0 -1
- package/components/Editable/index.js +0 -16
- package/components/List/List.d.ts +0 -3
- package/components/List/List.d.ts.map +0 -1
- package/components/List/List.js +0 -14
- package/components/List/ListItem.d.ts +0 -3
- package/components/List/ListItem.d.ts.map +0 -1
- package/components/List/ListItem.js +0 -14
- package/components/List/index.d.ts +0 -3
- package/components/List/index.d.ts.map +0 -1
- package/components/List/index.js +0 -19
- package/components/Price/Price.d.ts +0 -8
- package/components/Price/Price.d.ts.map +0 -1
- package/components/Price/Price.js +0 -17
- package/components/Price/index.d.ts +0 -3
- package/components/Price/index.d.ts.map +0 -1
- package/components/Price/index.js +0 -12
- package/components/Select/Select.d.ts +0 -35
- package/components/Select/Select.d.ts.map +0 -1
- package/components/Select/Select.js +0 -38
- package/components/Select/Select.utils.d.ts +0 -18
- package/components/Select/Select.utils.d.ts.map +0 -1
- package/components/Select/Select.utils.js +0 -50
- package/components/Select/SelectButton.d.ts +0 -20
- package/components/Select/SelectButton.d.ts.map +0 -1
- package/components/Select/SelectButton.js +0 -75
- package/components/Select/SelectDropdown.d.ts +0 -6
- package/components/Select/SelectDropdown.d.ts.map +0 -1
- package/components/Select/SelectDropdown.js +0 -16
- package/components/Select/SelectGroup.d.ts +0 -2
- package/components/Select/SelectGroup.d.ts.map +0 -1
- package/components/Select/SelectGroup.js +0 -13
- package/components/Select/SelectView.d.ts +0 -18
- package/components/Select/SelectView.d.ts.map +0 -1
- package/components/Select/SelectView.js +0 -29
- package/components/Select/index.d.ts +0 -5
- package/components/Select/index.d.ts.map +0 -1
- package/components/Select/index.js +0 -19
- package/components/Select/types.d.ts +0 -4
- package/components/Select/types.d.ts.map +0 -1
- package/components/Select/types.js +0 -5
- package/components/Select/views/b2c/SelectButton.d.ts +0 -4
- package/components/Select/views/b2c/SelectButton.d.ts.map +0 -1
- package/components/Select/views/b2c/SelectButton.js +0 -18
- package/components/Select/views/b2c/SelectDropdown.d.ts +0 -2
- package/components/Select/views/b2c/SelectDropdown.d.ts.map +0 -1
- package/components/Select/views/b2c/SelectDropdown.js +0 -11
- package/components/Select/views/b2c/SelectView.d.ts +0 -7
- package/components/Select/views/b2c/SelectView.d.ts.map +0 -1
- package/components/Select/views/b2c/SelectView.js +0 -76
- package/components/Select/views/web/SelectView.d.ts +0 -7
- package/components/Select/views/web/SelectView.d.ts.map +0 -1
- package/components/Select/views/web/SelectView.js +0 -73
- package/components/Select/withMultiSelect.d.ts +0 -24
- package/components/Select/withMultiSelect.d.ts.map +0 -1
- package/components/Select/withMultiSelect.js +0 -54
- package/components/Select/withSingleSelect.d.ts +0 -20
- package/components/Select/withSingleSelect.d.ts.map +0 -1
- package/components/Select/withSingleSelect.js +0 -47
- package/components/Slider/Slider.d.ts +0 -4
- package/components/Slider/Slider.d.ts.map +0 -1
- package/components/Slider/Slider.js +0 -14
- package/components/Slider/index.d.ts +0 -2
- package/components/Slider/index.d.ts.map +0 -1
- package/components/Slider/index.js +0 -12
- package/components/Switch/Switch.d.ts +0 -6
- package/components/Switch/Switch.d.ts.map +0 -1
- package/components/Switch/Switch.js +0 -17
- package/components/Switch/index.d.ts +0 -3
- package/components/Switch/index.d.ts.map +0 -1
- package/components/Switch/index.js +0 -12
- package/components/Typography/Body/index.d.ts +0 -2
- package/components/Typography/Body/index.d.ts.map +0 -1
- package/components/Typography/Body/index.js +0 -18
- package/components/Typography/Button/index.d.ts +0 -2
- package/components/Typography/Button/index.d.ts.map +0 -1
- package/components/Typography/Button/index.js +0 -18
- package/components/Typography/Caption/index.d.ts +0 -2
- package/components/Typography/Caption/index.d.ts.map +0 -1
- package/components/Typography/Caption/index.js +0 -12
- package/components/Typography/Footnote/index.d.ts +0 -2
- package/components/Typography/Footnote/index.d.ts.map +0 -1
- package/components/Typography/Footnote/index.js +0 -18
- package/components/Typography/Headline/index.d.ts +0 -4
- package/components/Typography/Headline/index.d.ts.map +0 -1
- package/components/Typography/Headline/index.js +0 -52
- package/components/Typography/Paragraph/index.d.ts +0 -2
- package/components/Typography/Paragraph/index.d.ts.map +0 -1
- package/components/Typography/Paragraph/index.js +0 -36
- package/components/Typography/Subtitle/index.d.ts +0 -2
- package/components/Typography/Subtitle/index.d.ts.map +0 -1
- package/components/Typography/Subtitle/index.js +0 -21
- package/components/Typography/Underline/index.d.ts +0 -2
- package/components/Typography/Underline/index.d.ts.map +0 -1
- package/components/Typography/Underline/index.js +0 -12
- package/components/Typography/index.d.ts +0 -11
- package/components/Typography/index.d.ts.map +0 -1
- package/components/Typography/index.js +0 -223
- package/es/components/Badge/Badge.js +0 -22
- package/es/components/Badge/index.js +0 -2
- package/es/components/Cell/Cell.js +0 -25
- package/es/components/Cell/index.js +0 -1
- package/es/components/Dropdown/Dropdown.component-test.js +0 -544
- package/es/components/Dropdown/Dropdown.js +0 -55
- package/es/components/Dropdown/Dropdown.types.js +0 -3
- package/es/components/Dropdown/DropdownItem.js +0 -114
- package/es/components/Dropdown/DropdownList.js +0 -15
- package/es/components/Dropdown/DropdownMenu.js +0 -53
- package/es/components/Dropdown/DropdownPopup.js +0 -39
- package/es/components/Dropdown/DropdownUncontrolled.js +0 -61
- package/es/components/Dropdown/index.js +0 -6
- package/es/components/Dropdown/keyboardNavigation/index.js +0 -1
- package/es/components/Dropdown/keyboardNavigation/useKeyboardNavigation.js +0 -52
- package/es/components/Dropdown/keyboardNavigation/useOnComboType.js +0 -24
- package/es/components/Dropdown/keyboardNavigation/useSearchString.js +0 -40
- package/es/components/Dropdown/keyboardNavigation/utils.js +0 -170
- package/es/components/Dropdown/withAssistiveDropdown.js +0 -126
- package/es/components/Editable/Editable.component-test.js +0 -111
- package/es/components/Editable/Editable.js +0 -145
- package/es/components/Editable/index.js +0 -1
- package/es/components/List/List.js +0 -7
- package/es/components/List/ListItem.js +0 -7
- package/es/components/List/index.js +0 -2
- package/es/components/Price/Price.js +0 -10
- package/es/components/Price/index.js +0 -1
- package/es/components/Select/Select.js +0 -29
- package/es/components/Select/Select.utils.js +0 -44
- package/es/components/Select/SelectButton.js +0 -67
- package/es/components/Select/SelectDropdown.js +0 -9
- package/es/components/Select/SelectGroup.js +0 -6
- package/es/components/Select/SelectView.js +0 -21
- package/es/components/Select/index.js +0 -2
- package/es/components/Select/types.js +0 -1
- package/es/components/Select/views/b2c/SelectButton.js +0 -12
- package/es/components/Select/views/b2c/SelectDropdown.js +0 -5
- package/es/components/Select/views/b2c/SelectView.js +0 -67
- package/es/components/Select/views/web/SelectView.js +0 -64
- package/es/components/Select/withMultiSelect.js +0 -46
- package/es/components/Select/withSingleSelect.js +0 -39
- package/es/components/Slider/Slider.js +0 -7
- package/es/components/Slider/index.js +0 -1
- package/es/components/Switch/Switch.js +0 -10
- package/es/components/Switch/index.js +0 -1
- package/es/components/Typography/Body/index.js +0 -1
- package/es/components/Typography/Button/index.js +0 -1
- package/es/components/Typography/Caption/index.js +0 -1
- package/es/components/Typography/Footnote/index.js +0 -1
- package/es/components/Typography/Headline/index.js +0 -20
- package/es/components/Typography/Paragraph/index.js +0 -1
- package/es/components/Typography/Subtitle/index.js +0 -14
- package/es/components/Typography/Underline/index.js +0 -1
- package/es/components/Typography/index.js +0 -9
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
var _excluded = ["id", "items", "placement", "trigger", "disabled", "menuRole", "menuItemRole", "closeOnSelect", "onToggle", "onItemSelect", "onIndexChange"];
|
|
2
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
-
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
4
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
6
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
7
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
8
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
9
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
10
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
11
|
-
import React, { useState, useRef, useCallback, useEffect, useMemo, forwardRef } from 'react';
|
|
12
|
-
import { DropdownUncontrolled } from './DropdownUncontrolled';
|
|
13
|
-
import { useKeyboardNavigation, INITIAL_INDEX } from './keyboardNavigation';
|
|
14
|
-
import { collectPackageInfo } from '../../collectPackageInfo';
|
|
15
|
-
collectPackageInfo('Dropdown/withAssistiveDropdown');
|
|
16
|
-
/**
|
|
17
|
-
* Декорирует переданный компонент, выводя доступный dropdown.
|
|
18
|
-
*/
|
|
19
|
-
export var withAssistiveDropdown = function withAssistiveDropdown(Component) {
|
|
20
|
-
var Dropdown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DropdownUncontrolled;
|
|
21
|
-
return /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
22
|
-
var id = _ref.id,
|
|
23
|
-
items = _ref.items,
|
|
24
|
-
placement = _ref.placement,
|
|
25
|
-
trigger = _ref.trigger,
|
|
26
|
-
disabled = _ref.disabled,
|
|
27
|
-
menuRole = _ref.menuRole,
|
|
28
|
-
menuItemRole = _ref.menuItemRole,
|
|
29
|
-
_ref$closeOnSelect = _ref.closeOnSelect,
|
|
30
|
-
closeOnSelect = _ref$closeOnSelect === void 0 ? true : _ref$closeOnSelect,
|
|
31
|
-
onToggleExternal = _ref.onToggle,
|
|
32
|
-
onItemSelectExternal = _ref.onItemSelect,
|
|
33
|
-
onIndexChangeExternal = _ref.onIndexChange,
|
|
34
|
-
rest = _objectWithoutProperties(_ref, _excluded);
|
|
35
|
-
var _useState = useState(false),
|
|
36
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
37
|
-
isOpen = _useState2[0],
|
|
38
|
-
setIsOpen = _useState2[1];
|
|
39
|
-
var _useState3 = useState(INITIAL_INDEX),
|
|
40
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
41
|
-
index = _useState4[0],
|
|
42
|
-
setIndex = _useState4[1];
|
|
43
|
-
var openingMethod = useRef(null);
|
|
44
|
-
var activeIndex = useMemo(function () {
|
|
45
|
-
return items.findIndex(function (item) {
|
|
46
|
-
return item.isActive;
|
|
47
|
-
});
|
|
48
|
-
}, [items]);
|
|
49
|
-
var onToggle = useCallback(function (newIsOpen, event) {
|
|
50
|
-
if (newIsOpen) {
|
|
51
|
-
openingMethod.current = event.type;
|
|
52
|
-
}
|
|
53
|
-
setIsOpen(newIsOpen);
|
|
54
|
-
onToggleExternal === null || onToggleExternal === void 0 || onToggleExternal(newIsOpen, event);
|
|
55
|
-
}, [onToggleExternal]);
|
|
56
|
-
var onItemSelect = useCallback(function (item, event) {
|
|
57
|
-
if (item.isDisabled) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
if (closeOnSelect) {
|
|
61
|
-
onToggle === null || onToggle === void 0 || onToggle(false, event);
|
|
62
|
-
}
|
|
63
|
-
onItemSelectExternal === null || onItemSelectExternal === void 0 || onItemSelectExternal(item, event);
|
|
64
|
-
}, [onToggle, onItemSelectExternal, closeOnSelect]);
|
|
65
|
-
var onIndexChange = useCallback(function (i) {
|
|
66
|
-
setIndex(i);
|
|
67
|
-
onIndexChangeExternal === null || onIndexChangeExternal === void 0 || onIndexChangeExternal(i);
|
|
68
|
-
}, [onIndexChangeExternal]);
|
|
69
|
-
var onBlur = useCallback(function () {
|
|
70
|
-
if (openingMethod.current === 'keydown') {
|
|
71
|
-
setIsOpen(false);
|
|
72
|
-
setIndex(INITIAL_INDEX);
|
|
73
|
-
}
|
|
74
|
-
}, []);
|
|
75
|
-
var onHover = useCallback(function (newIndex) {
|
|
76
|
-
setIndex(newIndex);
|
|
77
|
-
}, []);
|
|
78
|
-
var onMouseLeave = useCallback(function () {
|
|
79
|
-
setIndex(-1);
|
|
80
|
-
}, []);
|
|
81
|
-
var _useKeyboardNavigatio = useKeyboardNavigation({
|
|
82
|
-
items: items,
|
|
83
|
-
isOpen: isOpen,
|
|
84
|
-
index: index,
|
|
85
|
-
onToggle: onToggle,
|
|
86
|
-
onItemSelect: onItemSelect,
|
|
87
|
-
onIndexChange: onIndexChange
|
|
88
|
-
}),
|
|
89
|
-
onKeyDown = _useKeyboardNavigatio.onKeyDown;
|
|
90
|
-
useEffect(function () {
|
|
91
|
-
setIndex(activeIndex);
|
|
92
|
-
}, [activeIndex]);
|
|
93
|
-
useEffect(function () {
|
|
94
|
-
if (!isOpen) {
|
|
95
|
-
onIndexChange === null || onIndexChange === void 0 || onIndexChange(activeIndex === -1 ? INITIAL_INDEX : activeIndex);
|
|
96
|
-
}
|
|
97
|
-
}, [isOpen, onIndexChange, activeIndex]);
|
|
98
|
-
return /*#__PURE__*/React.createElement(Dropdown, {
|
|
99
|
-
id: id,
|
|
100
|
-
role: menuRole,
|
|
101
|
-
itemRole: menuItemRole,
|
|
102
|
-
"aria-labelledby": id ? "".concat(id, "-disclosure") : undefined,
|
|
103
|
-
opened: isOpen,
|
|
104
|
-
items: items,
|
|
105
|
-
placement: placement,
|
|
106
|
-
trigger: trigger,
|
|
107
|
-
disabled: disabled,
|
|
108
|
-
hoverIndex: index,
|
|
109
|
-
onBlur: onBlur,
|
|
110
|
-
onKeyDown: onKeyDown,
|
|
111
|
-
onToggle: onToggle,
|
|
112
|
-
onItemSelect: onItemSelect,
|
|
113
|
-
onHover: onHover,
|
|
114
|
-
onMouseLeave: onMouseLeave
|
|
115
|
-
}, /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
|
|
116
|
-
ref: ref,
|
|
117
|
-
id: id ? "".concat(id, "-disclosure") : undefined,
|
|
118
|
-
opened: isOpen,
|
|
119
|
-
disabled: disabled,
|
|
120
|
-
"aria-activedescendant": id && index >= 0 ? "".concat(id, "-item-").concat(index) : undefined,
|
|
121
|
-
"aria-controls": id,
|
|
122
|
-
"aria-expanded": isOpen,
|
|
123
|
-
"aria-haspopup": menuRole
|
|
124
|
-
})));
|
|
125
|
-
});
|
|
126
|
-
};
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
var _IconEdit, _IconEdit2;
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { mount, CypressTestDecorator, getComponent } from '@salutejs/plasma-cy-utils';
|
|
4
|
-
import { Headline1 } from '@salutejs/plasma-core';
|
|
5
|
-
import { IconEdit } from '@salutejs/plasma-icons';
|
|
6
|
-
var paste = function paste(selector, text) {
|
|
7
|
-
// https://github.com/cypress-io/cypress/issues/2386#issuecomment-613374266
|
|
8
|
-
cy.get(selector).first().then(function ($destination) {
|
|
9
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Element/paste_event
|
|
10
|
-
var pasteEvent = Object.assign(new Event('paste', {
|
|
11
|
-
bubbles: true,
|
|
12
|
-
cancelable: true
|
|
13
|
-
}), {
|
|
14
|
-
clipboardData: {
|
|
15
|
-
getData: function getData() {
|
|
16
|
-
return text;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
$destination[0].dispatchEvent(pasteEvent);
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
var noop = function noop() {};
|
|
24
|
-
describe('plasma-hope: Editable', function () {
|
|
25
|
-
var _CypressTestDecorator, _CypressTestDecorator2, _CypressTestDecorator3, _CypressTestDecorator4, _CypressTestDecorator5;
|
|
26
|
-
var Editable = getComponent('Editable');
|
|
27
|
-
it('simple', function () {
|
|
28
|
-
mount(_CypressTestDecorator || (_CypressTestDecorator = /*#__PURE__*/React.createElement(CypressTestDecorator, null, /*#__PURE__*/React.createElement(Editable, {
|
|
29
|
-
value: "\u041F\u0440\u0438\u043C\u0435\u0440 \u0442\u0435\u043A\u0441\u0442\u0430",
|
|
30
|
-
textComponent: Headline1
|
|
31
|
-
}))));
|
|
32
|
-
cy.matchImageSnapshot();
|
|
33
|
-
});
|
|
34
|
-
it('empty', function () {
|
|
35
|
-
mount(_CypressTestDecorator2 || (_CypressTestDecorator2 = /*#__PURE__*/React.createElement(CypressTestDecorator, null, /*#__PURE__*/React.createElement(Editable, {
|
|
36
|
-
textComponent: Headline1,
|
|
37
|
-
icon: _IconEdit || (_IconEdit = /*#__PURE__*/React.createElement(IconEdit, {
|
|
38
|
-
size: "s",
|
|
39
|
-
color: "inherit"
|
|
40
|
-
}))
|
|
41
|
-
}))));
|
|
42
|
-
cy.matchImageSnapshot();
|
|
43
|
-
});
|
|
44
|
-
it('onChange', function () {
|
|
45
|
-
mount(_CypressTestDecorator3 || (_CypressTestDecorator3 = /*#__PURE__*/React.createElement(CypressTestDecorator, null, /*#__PURE__*/React.createElement(Editable, {
|
|
46
|
-
value: "onChange",
|
|
47
|
-
onChange: noop,
|
|
48
|
-
maxLength: 5,
|
|
49
|
-
textComponent: Headline1
|
|
50
|
-
}))));
|
|
51
|
-
cy.get('span > div').first().type('Hello');
|
|
52
|
-
cy.get('span > div').first().type('Hello world');
|
|
53
|
-
cy.matchImageSnapshot();
|
|
54
|
-
});
|
|
55
|
-
it('onBlur and onFocus', function () {
|
|
56
|
-
mount(_CypressTestDecorator4 || (_CypressTestDecorator4 = /*#__PURE__*/React.createElement(CypressTestDecorator, null, /*#__PURE__*/React.createElement(Editable, {
|
|
57
|
-
value: "onBlur and onFocus",
|
|
58
|
-
onBlur: noop,
|
|
59
|
-
icon: _IconEdit2 || (_IconEdit2 = /*#__PURE__*/React.createElement(IconEdit, {
|
|
60
|
-
size: "s",
|
|
61
|
-
color: "inherit"
|
|
62
|
-
})),
|
|
63
|
-
textComponent: Headline1
|
|
64
|
-
}))));
|
|
65
|
-
cy.get('span > span').click();
|
|
66
|
-
cy.get('span > div').first().blur();
|
|
67
|
-
|
|
68
|
-
// для случаев, если не поддерживаются современные интерфейсы window
|
|
69
|
-
cy.window().then(function (win) {
|
|
70
|
-
// NOTE: https://github.com/salute-developers/plasma/issues/384
|
|
71
|
-
// callsFake не работает с данным методом
|
|
72
|
-
// cy.stub(win, 'getSelection', undefined);
|
|
73
|
-
|
|
74
|
-
// для браузеров IE < 9 при использовании компонента
|
|
75
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
76
|
-
win.document.selection = {
|
|
77
|
-
empty: noop
|
|
78
|
-
};
|
|
79
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
80
|
-
win.document.body.createTextRange = function () {
|
|
81
|
-
return {
|
|
82
|
-
moveToElementText: noop,
|
|
83
|
-
select: noop
|
|
84
|
-
};
|
|
85
|
-
};
|
|
86
|
-
});
|
|
87
|
-
cy.get('span > div').first().focus();
|
|
88
|
-
cy.get('span > div').first().trigger('keydown', {
|
|
89
|
-
keyCode: 13
|
|
90
|
-
});
|
|
91
|
-
cy.matchImageSnapshot();
|
|
92
|
-
});
|
|
93
|
-
it('onPaste', function () {
|
|
94
|
-
mount(_CypressTestDecorator5 || (_CypressTestDecorator5 = /*#__PURE__*/React.createElement(CypressTestDecorator, null, /*#__PURE__*/React.createElement(Editable, {
|
|
95
|
-
value: "onPaste",
|
|
96
|
-
onPaste: noop,
|
|
97
|
-
textComponent: Headline1
|
|
98
|
-
}))));
|
|
99
|
-
paste('span > div', 'Hello from paste');
|
|
100
|
-
|
|
101
|
-
// для случаев, если не поддерживаются современные интерфейсы window
|
|
102
|
-
cy.window().then(function (win) {
|
|
103
|
-
cy.stub(win.document, 'queryCommandSupported').callsFake(function () {
|
|
104
|
-
return false;
|
|
105
|
-
});
|
|
106
|
-
cy.stub(navigator.clipboard, 'writeText').callsFake(undefined);
|
|
107
|
-
paste('span > div', 'Hello from paste');
|
|
108
|
-
});
|
|
109
|
-
cy.matchImageSnapshot();
|
|
110
|
-
});
|
|
111
|
-
});
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
var _excluded = ["textComponent", "value", "icon", "maxLength", "spellCheck", "onChange", "onBlur", "onPaste", "placeholder"];
|
|
2
|
-
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
3
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
5
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
6
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
7
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
8
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
9
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
10
|
-
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
11
|
-
import styled from 'styled-components';
|
|
12
|
-
import { tertiary, text, background } from '@salutejs/plasma-core';
|
|
13
|
-
import { selectText, clearSelection } from '../../utils';
|
|
14
|
-
import { collectPackageInfo } from '../../collectPackageInfo';
|
|
15
|
-
collectPackageInfo('Editable/Editable');
|
|
16
|
-
var KeyCodes = /*#__PURE__*/function (KeyCodes) {
|
|
17
|
-
KeyCodes[KeyCodes["ENTER"] = 13] = "ENTER";
|
|
18
|
-
KeyCodes[KeyCodes["ESCAPE"] = 27] = "ESCAPE";
|
|
19
|
-
return KeyCodes;
|
|
20
|
-
}(KeyCodes || {});
|
|
21
|
-
var EditButton = /*#__PURE__*/styled.span.withConfig({
|
|
22
|
-
componentId: "plasma-web-core__sc-dgyiy9-0"
|
|
23
|
-
})(["position:relative;background:var( --plasma-editable-icon-background,linear-gradient(270deg,", " 70%,rgba(0,0,0,0) 120%) );padding-left:1rem;color:", ";align-self:stretch;", ""], background, tertiary, function (_ref) {
|
|
24
|
-
var $isHidden = _ref.$isHidden;
|
|
25
|
-
return $isHidden ? 'display: none;' : '';
|
|
26
|
-
});
|
|
27
|
-
var StyledContainer = /*#__PURE__*/styled.span.withConfig({
|
|
28
|
-
componentId: "plasma-web-core__sc-dgyiy9-1"
|
|
29
|
-
})(["display:flex;align-items:center;max-width:100%;cursor:pointer;&:hover > ", "{color:", ";}"], EditButton, text);
|
|
30
|
-
var extraComponentStyles = {
|
|
31
|
-
whiteSpace: 'nowrap',
|
|
32
|
-
overflow: 'hidden',
|
|
33
|
-
marginRight: '-1rem',
|
|
34
|
-
paddingRight: '1rem',
|
|
35
|
-
outline: 'none',
|
|
36
|
-
caretColor: 'var(--plasma-colors-accent)'
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Компонент, добавляющий возможность редактирования к текстовому компоненту
|
|
40
|
-
*
|
|
41
|
-
* Для указания альтернативного фона у иконки справа от текста
|
|
42
|
-
* можно указать css переменную --plasma-editable-icon-background в контейнере элемента
|
|
43
|
-
*
|
|
44
|
-
*/
|
|
45
|
-
export var Editable = function Editable(_ref2) {
|
|
46
|
-
var textComponent = _ref2.textComponent,
|
|
47
|
-
value = _ref2.value,
|
|
48
|
-
icon = _ref2.icon,
|
|
49
|
-
maxLength = _ref2.maxLength,
|
|
50
|
-
_ref2$spellCheck = _ref2.spellCheck,
|
|
51
|
-
spellCheck = _ref2$spellCheck === void 0 ? 'false' : _ref2$spellCheck,
|
|
52
|
-
onChange = _ref2.onChange,
|
|
53
|
-
onBlur = _ref2.onBlur,
|
|
54
|
-
onPaste = _ref2.onPaste,
|
|
55
|
-
placeholder = _ref2.placeholder,
|
|
56
|
-
props = _objectWithoutProperties(_ref2, _excluded);
|
|
57
|
-
var Component = textComponent;
|
|
58
|
-
var _useState = useState(false),
|
|
59
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
60
|
-
isEditing = _useState2[0],
|
|
61
|
-
setIsEditing = _useState2[1];
|
|
62
|
-
var inputRef = useRef(null);
|
|
63
|
-
var prevValueRef = useRef(value || '');
|
|
64
|
-
var handlePaste = useCallback(function (e) {
|
|
65
|
-
if (!inputRef.current) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
e.preventDefault();
|
|
69
|
-
var text = e.clipboardData.getData('text/plain').replace(/[\n\r]/gi, '');
|
|
70
|
-
if (document.queryCommandSupported('insertText')) {
|
|
71
|
-
document.execCommand('insertText', false, text);
|
|
72
|
-
} else {
|
|
73
|
-
try {
|
|
74
|
-
navigator.clipboard.writeText(text);
|
|
75
|
-
} catch (_unused) {
|
|
76
|
-
inputRef.current.textContent = text;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if (onPaste) {
|
|
80
|
-
onPaste(e);
|
|
81
|
-
}
|
|
82
|
-
}, [onPaste]);
|
|
83
|
-
var handleBlur = useCallback(function (e) {
|
|
84
|
-
setIsEditing(false);
|
|
85
|
-
clearSelection();
|
|
86
|
-
if (onBlur) {
|
|
87
|
-
onBlur(e);
|
|
88
|
-
}
|
|
89
|
-
}, [onBlur]);
|
|
90
|
-
var handleFocus = useCallback(function () {
|
|
91
|
-
setIsEditing(true);
|
|
92
|
-
inputRef.current && selectText(inputRef.current);
|
|
93
|
-
}, []);
|
|
94
|
-
var handleEditClick = useCallback(function () {
|
|
95
|
-
var _inputRef$current;
|
|
96
|
-
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
|
|
97
|
-
}, []);
|
|
98
|
-
var handleKeyDown = useCallback(function (e) {
|
|
99
|
-
if ([KeyCodes.ENTER, KeyCodes.ESCAPE].includes(e.keyCode)) {
|
|
100
|
-
var _inputRef$current2;
|
|
101
|
-
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();
|
|
102
|
-
}
|
|
103
|
-
}, []);
|
|
104
|
-
var handleChange = useCallback(function (e) {
|
|
105
|
-
var _inputRef$current$tex;
|
|
106
|
-
if (!inputRef.current) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
var contentLength = ((_inputRef$current$tex = inputRef.current.textContent) === null || _inputRef$current$tex === void 0 ? void 0 : _inputRef$current$tex.length) || 0;
|
|
110
|
-
if (!maxLength || contentLength <= maxLength) {
|
|
111
|
-
prevValueRef.current = inputRef.current.textContent || '';
|
|
112
|
-
onChange && onChange(e);
|
|
113
|
-
} else {
|
|
114
|
-
inputRef.current.textContent = prevValueRef.current;
|
|
115
|
-
}
|
|
116
|
-
}, [maxLength, onChange]);
|
|
117
|
-
useEffect(function () {
|
|
118
|
-
if (!inputRef.current) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
if (typeof value === 'undefined') {
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
if (value === inputRef.current.textContent) {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
inputRef.current.textContent = value;
|
|
128
|
-
}, [value, textComponent]);
|
|
129
|
-
return /*#__PURE__*/React.createElement(StyledContainer, props, /*#__PURE__*/React.createElement(Component, {
|
|
130
|
-
ref: inputRef,
|
|
131
|
-
style: extraComponentStyles,
|
|
132
|
-
role: "textbox",
|
|
133
|
-
spellCheck: spellCheck,
|
|
134
|
-
contentEditable: true,
|
|
135
|
-
onPaste: handlePaste,
|
|
136
|
-
onInput: handleChange,
|
|
137
|
-
onBlur: handleBlur,
|
|
138
|
-
onFocus: handleFocus,
|
|
139
|
-
onKeyDown: handleKeyDown,
|
|
140
|
-
"aria-label": placeholder
|
|
141
|
-
}), /*#__PURE__*/React.createElement(EditButton, {
|
|
142
|
-
onClick: handleEditClick,
|
|
143
|
-
$isHidden: isEditing
|
|
144
|
-
}, icon));
|
|
145
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './Editable';
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
import { applySpacing } from '@salutejs/plasma-core';
|
|
3
|
-
import { collectPackageInfo } from '../../collectPackageInfo';
|
|
4
|
-
collectPackageInfo('List/List');
|
|
5
|
-
export var List = /*#__PURE__*/styled.ul.withConfig({
|
|
6
|
-
componentId: "plasma-web-core__sc-zvesl8-0"
|
|
7
|
-
})(["margin:0;padding:0;", ""], applySpacing);
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
import { applySpacing } from '@salutejs/plasma-core';
|
|
3
|
-
import { collectPackageInfo } from '../../collectPackageInfo';
|
|
4
|
-
collectPackageInfo('List/ListItem');
|
|
5
|
-
export var ListItem = /*#__PURE__*/styled.li.withConfig({
|
|
6
|
-
componentId: "plasma-web-core__sc-hp7rr5-0"
|
|
7
|
-
})(["list-style:none;", ""], applySpacing);
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
import { Price as BasePrice } from '@salutejs/plasma-core';
|
|
3
|
-
import { collectPackageInfo } from '../../collectPackageInfo';
|
|
4
|
-
collectPackageInfo('Price/Price');
|
|
5
|
-
/**
|
|
6
|
-
* Компонент для отображения цены / стоимости / суммы.
|
|
7
|
-
*/
|
|
8
|
-
export var Price = /*#__PURE__*/styled(BasePrice).withConfig({
|
|
9
|
-
componentId: "plasma-web-core__sc-1uuh6mu-0"
|
|
10
|
-
})([""]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Price } from './Price';
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React, { forwardRef } from 'react';
|
|
3
|
-
import styled from 'styled-components';
|
|
4
|
-
import { applyDropdownListCssProperties } from '../Dropdown';
|
|
5
|
-
import { SelectView } from './SelectView';
|
|
6
|
-
import { withSingleSelect } from './withSingleSelect';
|
|
7
|
-
import { withMultiSelect } from './withMultiSelect';
|
|
8
|
-
import { collectPackageInfo } from '../../collectPackageInfo';
|
|
9
|
-
collectPackageInfo('Select/Select');
|
|
10
|
-
var StyledSelectView = /*#__PURE__*/styled(SelectView).withConfig({
|
|
11
|
-
componentId: "plasma-web-core__sc-m9l8to-0"
|
|
12
|
-
})(["", ";"], applyDropdownListCssProperties);
|
|
13
|
-
var SingleSelect = /*#__PURE__*/withSingleSelect(StyledSelectView);
|
|
14
|
-
var MultiSelect = /*#__PURE__*/withMultiSelect(StyledSelectView);
|
|
15
|
-
export var Select = function Select(_ref) {
|
|
16
|
-
var design = _ref.design;
|
|
17
|
-
return /*#__PURE__*/forwardRef(function (props, ref) {
|
|
18
|
-
if (props.multiselect) {
|
|
19
|
-
return /*#__PURE__*/React.createElement(MultiSelect, _extends({
|
|
20
|
-
design: design,
|
|
21
|
-
ref: ref
|
|
22
|
-
}, props));
|
|
23
|
-
}
|
|
24
|
-
return /*#__PURE__*/React.createElement(SingleSelect, _extends({
|
|
25
|
-
design: design,
|
|
26
|
-
ref: ref
|
|
27
|
-
}, props));
|
|
28
|
-
});
|
|
29
|
-
};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
var _excluded = ["items"];
|
|
3
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
7
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
-
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
9
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
11
|
-
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
12
|
-
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
13
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
14
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
15
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
16
|
-
/**
|
|
17
|
-
* Пройдется по списку рекурсивно, вернув новый список с подсписками, поднятыми на верхний уровень.
|
|
18
|
-
*/
|
|
19
|
-
export var flattenItemsRecursive = function flattenItemsRecursive(list) {
|
|
20
|
-
return list.reduce(function (acc, _ref) {
|
|
21
|
-
var items = _ref.items,
|
|
22
|
-
rest = _objectWithoutProperties(_ref, _excluded);
|
|
23
|
-
acc.push(rest);
|
|
24
|
-
if (items) {
|
|
25
|
-
acc.push.apply(acc, _toConsumableArray(flattenItemsRecursive(items)));
|
|
26
|
-
}
|
|
27
|
-
return acc;
|
|
28
|
-
}, []);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Пройдется по списку рекурсивно, вернув новый список с новыми объектами с флагом `isActive`.
|
|
33
|
-
*/
|
|
34
|
-
export var setActiveRecursive = function setActiveRecursive(list, isActive) {
|
|
35
|
-
return list.map(function (item) {
|
|
36
|
-
var newItem = _objectSpread(_objectSpread({}, item), {}, {
|
|
37
|
-
isActive: isActive(item)
|
|
38
|
-
});
|
|
39
|
-
if (item.items) {
|
|
40
|
-
newItem.items = setActiveRecursive(item.items, isActive);
|
|
41
|
-
}
|
|
42
|
-
return newItem;
|
|
43
|
-
});
|
|
44
|
-
};
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
var _StyledArrow;
|
|
2
|
-
var _excluded = ["design"],
|
|
3
|
-
_excluded2 = ["value", "placeholder", "hasItems"];
|
|
4
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
5
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
6
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
7
|
-
import React, { forwardRef } from 'react';
|
|
8
|
-
import styled, { css } from 'styled-components';
|
|
9
|
-
import { body1, accent, primary, secondary, tertiary, success, warning, critical, applyEllipsis } from '@salutejs/plasma-core';
|
|
10
|
-
import { IconChevronDown } from '@salutejs/plasma-icons';
|
|
11
|
-
import { inputBorder, inputBorderHover } from '../../tokens';
|
|
12
|
-
import { applyB2CSelectButton } from './views/b2c/SelectButton';
|
|
13
|
-
import { collectPackageInfo } from '../../collectPackageInfo';
|
|
14
|
-
collectPackageInfo('Select/SelectButton');
|
|
15
|
-
var statuses = {
|
|
16
|
-
success: success,
|
|
17
|
-
warning: warning,
|
|
18
|
-
error: critical
|
|
19
|
-
};
|
|
20
|
-
var StyledArrow = /*#__PURE__*/styled(IconChevronDown).withConfig({
|
|
21
|
-
componentId: "plasma-web-core__sc-wqinip-0"
|
|
22
|
-
})(["margin:var(--plasma-select-button-arrow-margin,0 0 0 0.75rem);transition:color 0.3s ease-in-out,transform 0.15s ease-in-out;pointer-events:none;user-select:none;"]);
|
|
23
|
-
var StyledText = /*#__PURE__*/styled.span.withConfig({
|
|
24
|
-
componentId: "plasma-web-core__sc-wqinip-1"
|
|
25
|
-
})(["", ";color:", ";transition:color 0.3s ease-in-out;pointer-events:none;user-select:none;"], applyEllipsis, primary);
|
|
26
|
-
var StyledPlaceholder = /*#__PURE__*/styled.span.withConfig({
|
|
27
|
-
componentId: "plasma-web-core__sc-wqinip-2"
|
|
28
|
-
})(["", ";color:", ";pointer-events:none;user-select:none;"], applyEllipsis, tertiary);
|
|
29
|
-
var StyledButton = /*#__PURE__*/styled.button.withConfig({
|
|
30
|
-
componentId: "plasma-web-core__sc-wqinip-3"
|
|
31
|
-
})(["", ";display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;width:100%;height:3rem;padding:0.875rem 0.9375rem;border:1px solid ", ";border-radius:0.25rem;background-color:transparent;color:", ";transition:border-color 0.3s ease-in-out;", " &:disabled{cursor:inherit;}&:not(:disabled):focus{outline:0 none;border-color:", ";color:", ";}", " ", " ", " ", ""], body1, inputBorder, secondary, function (_ref) {
|
|
32
|
-
var hasItems = _ref.hasItems;
|
|
33
|
-
return hasItems && css(["&:not(:disabled):hover{cursor:pointer;border-color:", ";color:", ";}"], inputBorderHover, secondary);
|
|
34
|
-
}, accent, accent, function (_ref2) {
|
|
35
|
-
var focused = _ref2.focused;
|
|
36
|
-
return focused && css(["border-color:", ";color:", ";"], accent, accent);
|
|
37
|
-
}, function (_ref3) {
|
|
38
|
-
var status = _ref3.status;
|
|
39
|
-
return status && css(["border-color:", ";color:", ";&:hover,&:focus{border-color:", ";}"], statuses[status], statuses[status], statuses[status]);
|
|
40
|
-
}, function (_ref4) {
|
|
41
|
-
var opened = _ref4.opened;
|
|
42
|
-
return opened && css(["", "{transform:rotate(-180deg);}"], StyledArrow);
|
|
43
|
-
}, function (_ref5) {
|
|
44
|
-
var design = _ref5.design,
|
|
45
|
-
props = _objectWithoutProperties(_ref5, _excluded);
|
|
46
|
-
return design === 'b2c' && applyB2CSelectButton(props);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
// eslint-disable-next-line prefer-arrow-callback
|
|
50
|
-
export var SelectButton = /*#__PURE__*/forwardRef(function SelectButton(_ref6, ref) {
|
|
51
|
-
var value = _ref6.value,
|
|
52
|
-
placeholder = _ref6.placeholder,
|
|
53
|
-
hasItems = _ref6.hasItems,
|
|
54
|
-
rest = _objectWithoutProperties(_ref6, _excluded2);
|
|
55
|
-
return /*#__PURE__*/React.createElement(StyledButton, _extends({
|
|
56
|
-
type: "button"
|
|
57
|
-
}, rest, {
|
|
58
|
-
ref: ref,
|
|
59
|
-
hasItems: hasItems,
|
|
60
|
-
"aria-label": placeholder
|
|
61
|
-
}), value && /*#__PURE__*/React.createElement(StyledText, null, value), placeholder && !value && /*#__PURE__*/React.createElement(StyledPlaceholder, {
|
|
62
|
-
"aria-hidden": "true"
|
|
63
|
-
}, placeholder), hasItems && (_StyledArrow || (_StyledArrow = /*#__PURE__*/React.createElement(StyledArrow, {
|
|
64
|
-
size: "xs",
|
|
65
|
-
color: "inherit"
|
|
66
|
-
}))));
|
|
67
|
-
});
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
import { DropdownUncontrolled } from '../Dropdown';
|
|
3
|
-
import { applyB2CSelectDropdown } from './views/b2c/SelectDropdown';
|
|
4
|
-
export var SelectDropdown = /*#__PURE__*/styled(DropdownUncontrolled).withConfig({
|
|
5
|
-
componentId: "plasma-web-core__sc-1gejpif-0"
|
|
6
|
-
})(["width:100%;--plasma-dropdown-width:100%;--plasma-dropdown-padding:0.25rem;--plasma-dropdown-border-radius:0.25rem;--plasma-dropdown-item-border-radius:0.25rem;--plasma-popup-padding:var(--plasma-dropdown-padding) 0 0;--plasma-popup-width:100%;--plasma-popup-nested-width:100%;--plasma-popup-nested-padding:0 var(--plasma-dropdown-padding,0);--plasma-popup-nested-margin:calc(var(--plasma-dropdown-padding,0) * -1) 0 0;", ""], function (_ref) {
|
|
7
|
-
var design = _ref.design;
|
|
8
|
-
return design === 'b2c' && applyB2CSelectDropdown();
|
|
9
|
-
});
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
import { collectPackageInfo } from '../../collectPackageInfo';
|
|
3
|
-
collectPackageInfo('Select/SelectGroup');
|
|
4
|
-
export var SelectGroup = /*#__PURE__*/styled.div.withConfig({
|
|
5
|
-
componentId: "plasma-web-core__sc-w2a6z1-0"
|
|
6
|
-
})(["display:flex;"]);
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React, { useMemo, forwardRef } from 'react';
|
|
3
|
-
import { SelectView as SelectViewWeb } from './views/web/SelectView';
|
|
4
|
-
import { SelectView as SelectViewB2C } from './views/b2c/SelectView';
|
|
5
|
-
var componentsMap = {
|
|
6
|
-
web: SelectViewWeb,
|
|
7
|
-
b2c: SelectViewB2C
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Поле с выпадающим списком.
|
|
12
|
-
*/
|
|
13
|
-
export var SelectView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
14
|
-
var design = props.design;
|
|
15
|
-
var SelectViewBase = useMemo(function () {
|
|
16
|
-
return componentsMap[design];
|
|
17
|
-
}, [design]);
|
|
18
|
-
return /*#__PURE__*/React.createElement(SelectViewBase, _extends({}, props, {
|
|
19
|
-
ref: ref
|
|
20
|
-
}));
|
|
21
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { button2, critical, primary, success, surfaceLiquid01, surfaceLiquid02, warning } from '@salutejs/plasma-core';
|
|
2
|
-
import { css } from 'styled-components';
|
|
3
|
-
var statuses = {
|
|
4
|
-
success: success,
|
|
5
|
-
warning: warning,
|
|
6
|
-
error: critical
|
|
7
|
-
};
|
|
8
|
-
export var applyB2CSelectButton = function applyB2CSelectButton(_ref) {
|
|
9
|
-
var hasItems = _ref.hasItems,
|
|
10
|
-
status = _ref.status;
|
|
11
|
-
return css(["", ";--plasma-select-button-arrow-margin:0 -0.25rem 0 0.75rem;padding:1rem;background-color:", ";border:0 none;border-radius:0.75rem;color:", ";&:focus{outline:0 none;}", " &:focus:not(:disabled){background-color:", ";}", ""], button2, surfaceLiquid01, primary, hasItems && css(["&:hover:not(:disabled),&:focus:not(:disabled){background-color:", ";color:", ";cursor:pointer;}"], surfaceLiquid02, primary), surfaceLiquid02, status && css(["color:", ";"], statuses[status]));
|
|
12
|
-
};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { css } from 'styled-components';
|
|
2
|
-
import { button2 } from '@salutejs/plasma-core';
|
|
3
|
-
export var applyB2CSelectDropdown = function applyB2CSelectDropdown() {
|
|
4
|
-
return css(["--plasma-dropdown-padding:0.125rem;--plasma-dropdown-border-radius:0.875rem;--plasma-dropdown-item-height:2.75rem;--plasma-dropdown-item-padding:0.875rem;--plasma-dropdown-item-border-radius:0.75rem;--plasma-dropdown-item-font-size:", ";--plasma-dropdown-item-font-weight:", ";--plasma-dropdown-item-line-height:", ";--plasma-dropdown-item-letter-spacing:", ";"], button2.fontSize, button2.fontWeight, button2.lineHeight, button2.letterSpacing);
|
|
5
|
-
};
|