@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.
Files changed (229) hide show
  1. package/components/Button/views/b2c/ButtonB2C.d.ts +1 -1
  2. package/components/Button/views/web/ButtonWeb.d.ts +1 -1
  3. package/components/Card/CardBadge.d.ts +12 -1
  4. package/components/Card/CardBadge.d.ts.map +1 -1
  5. package/components/Card/CardBadge.js +19 -4
  6. package/components/PreviewGallery/PreviewGalleryItemBase.d.ts +1 -1
  7. package/components/PreviewGallery/PreviewGalleryItemBase.d.ts.map +1 -1
  8. package/components/PreviewGallery/PreviewGalleryItemBase.js +1 -2
  9. package/components/Upload/UploadMessage.d.ts.map +1 -1
  10. package/components/Upload/UploadMessage.js +2 -2
  11. package/es/components/Card/CardBadge.js +17 -3
  12. package/es/components/PreviewGallery/PreviewGalleryItemBase.js +1 -2
  13. package/es/components/Upload/UploadMessage.js +1 -1
  14. package/es/index.js +0 -10
  15. package/index.d.ts +0 -10
  16. package/index.js +0 -110
  17. package/package.json +11 -11
  18. package/components/Badge/Badge.d.ts +0 -21
  19. package/components/Badge/Badge.d.ts.map +0 -1
  20. package/components/Badge/Badge.js +0 -30
  21. package/components/Badge/index.d.ts +0 -5
  22. package/components/Badge/index.d.ts.map +0 -1
  23. package/components/Badge/index.js +0 -25
  24. package/components/Cell/Cell.d.ts +0 -18
  25. package/components/Cell/Cell.d.ts.map +0 -1
  26. package/components/Cell/Cell.js +0 -32
  27. package/components/Cell/index.d.ts +0 -3
  28. package/components/Cell/index.d.ts.map +0 -1
  29. package/components/Cell/index.js +0 -12
  30. package/components/Dropdown/Dropdown.component-test.js +0 -547
  31. package/components/Dropdown/Dropdown.d.ts +0 -20
  32. package/components/Dropdown/Dropdown.d.ts.map +0 -1
  33. package/components/Dropdown/Dropdown.js +0 -64
  34. package/components/Dropdown/Dropdown.types.d.ts +0 -16
  35. package/components/Dropdown/Dropdown.types.d.ts.map +0 -1
  36. package/components/Dropdown/Dropdown.types.js +0 -7
  37. package/components/Dropdown/DropdownItem.d.ts +0 -30
  38. package/components/Dropdown/DropdownItem.d.ts.map +0 -1
  39. package/components/Dropdown/DropdownItem.js +0 -122
  40. package/components/Dropdown/DropdownList.d.ts +0 -22
  41. package/components/Dropdown/DropdownList.d.ts.map +0 -1
  42. package/components/Dropdown/DropdownList.js +0 -23
  43. package/components/Dropdown/DropdownMenu.d.ts +0 -30
  44. package/components/Dropdown/DropdownMenu.d.ts.map +0 -1
  45. package/components/Dropdown/DropdownMenu.js +0 -60
  46. package/components/Dropdown/DropdownPopup.d.ts +0 -18
  47. package/components/Dropdown/DropdownPopup.d.ts.map +0 -1
  48. package/components/Dropdown/DropdownPopup.js +0 -47
  49. package/components/Dropdown/DropdownUncontrolled.d.ts +0 -12
  50. package/components/Dropdown/DropdownUncontrolled.d.ts.map +0 -1
  51. package/components/Dropdown/DropdownUncontrolled.js +0 -69
  52. package/components/Dropdown/index.d.ts +0 -13
  53. package/components/Dropdown/index.d.ts.map +0 -1
  54. package/components/Dropdown/index.js +0 -53
  55. package/components/Dropdown/keyboardNavigation/index.d.ts +0 -2
  56. package/components/Dropdown/keyboardNavigation/index.d.ts.map +0 -1
  57. package/components/Dropdown/keyboardNavigation/index.js +0 -18
  58. package/components/Dropdown/keyboardNavigation/useKeyboardNavigation.d.ts +0 -20
  59. package/components/Dropdown/keyboardNavigation/useKeyboardNavigation.d.ts.map +0 -1
  60. package/components/Dropdown/keyboardNavigation/useKeyboardNavigation.js +0 -58
  61. package/components/Dropdown/keyboardNavigation/useOnComboType.d.ts +0 -6
  62. package/components/Dropdown/keyboardNavigation/useOnComboType.d.ts.map +0 -1
  63. package/components/Dropdown/keyboardNavigation/useOnComboType.js +0 -30
  64. package/components/Dropdown/keyboardNavigation/useSearchString.d.ts +0 -5
  65. package/components/Dropdown/keyboardNavigation/useSearchString.d.ts.map +0 -1
  66. package/components/Dropdown/keyboardNavigation/useSearchString.js +0 -46
  67. package/components/Dropdown/keyboardNavigation/utils.d.ts +0 -39
  68. package/components/Dropdown/keyboardNavigation/utils.d.ts.map +0 -1
  69. package/components/Dropdown/keyboardNavigation/utils.js +0 -175
  70. package/components/Dropdown/withAssistiveDropdown.d.ts +0 -27
  71. package/components/Dropdown/withAssistiveDropdown.d.ts.map +0 -1
  72. package/components/Dropdown/withAssistiveDropdown.js +0 -134
  73. package/components/Editable/Editable.component-test.js +0 -114
  74. package/components/Editable/Editable.d.ts +0 -36
  75. package/components/Editable/Editable.d.ts.map +0 -1
  76. package/components/Editable/Editable.js +0 -154
  77. package/components/Editable/index.d.ts +0 -2
  78. package/components/Editable/index.d.ts.map +0 -1
  79. package/components/Editable/index.js +0 -16
  80. package/components/List/List.d.ts +0 -3
  81. package/components/List/List.d.ts.map +0 -1
  82. package/components/List/List.js +0 -14
  83. package/components/List/ListItem.d.ts +0 -3
  84. package/components/List/ListItem.d.ts.map +0 -1
  85. package/components/List/ListItem.js +0 -14
  86. package/components/List/index.d.ts +0 -3
  87. package/components/List/index.d.ts.map +0 -1
  88. package/components/List/index.js +0 -19
  89. package/components/Price/Price.d.ts +0 -8
  90. package/components/Price/Price.d.ts.map +0 -1
  91. package/components/Price/Price.js +0 -17
  92. package/components/Price/index.d.ts +0 -3
  93. package/components/Price/index.d.ts.map +0 -1
  94. package/components/Price/index.js +0 -12
  95. package/components/Select/Select.d.ts +0 -35
  96. package/components/Select/Select.d.ts.map +0 -1
  97. package/components/Select/Select.js +0 -38
  98. package/components/Select/Select.utils.d.ts +0 -18
  99. package/components/Select/Select.utils.d.ts.map +0 -1
  100. package/components/Select/Select.utils.js +0 -50
  101. package/components/Select/SelectButton.d.ts +0 -20
  102. package/components/Select/SelectButton.d.ts.map +0 -1
  103. package/components/Select/SelectButton.js +0 -75
  104. package/components/Select/SelectDropdown.d.ts +0 -6
  105. package/components/Select/SelectDropdown.d.ts.map +0 -1
  106. package/components/Select/SelectDropdown.js +0 -16
  107. package/components/Select/SelectGroup.d.ts +0 -2
  108. package/components/Select/SelectGroup.d.ts.map +0 -1
  109. package/components/Select/SelectGroup.js +0 -13
  110. package/components/Select/SelectView.d.ts +0 -18
  111. package/components/Select/SelectView.d.ts.map +0 -1
  112. package/components/Select/SelectView.js +0 -29
  113. package/components/Select/index.d.ts +0 -5
  114. package/components/Select/index.d.ts.map +0 -1
  115. package/components/Select/index.js +0 -19
  116. package/components/Select/types.d.ts +0 -4
  117. package/components/Select/types.d.ts.map +0 -1
  118. package/components/Select/types.js +0 -5
  119. package/components/Select/views/b2c/SelectButton.d.ts +0 -4
  120. package/components/Select/views/b2c/SelectButton.d.ts.map +0 -1
  121. package/components/Select/views/b2c/SelectButton.js +0 -18
  122. package/components/Select/views/b2c/SelectDropdown.d.ts +0 -2
  123. package/components/Select/views/b2c/SelectDropdown.d.ts.map +0 -1
  124. package/components/Select/views/b2c/SelectDropdown.js +0 -11
  125. package/components/Select/views/b2c/SelectView.d.ts +0 -7
  126. package/components/Select/views/b2c/SelectView.d.ts.map +0 -1
  127. package/components/Select/views/b2c/SelectView.js +0 -76
  128. package/components/Select/views/web/SelectView.d.ts +0 -7
  129. package/components/Select/views/web/SelectView.d.ts.map +0 -1
  130. package/components/Select/views/web/SelectView.js +0 -73
  131. package/components/Select/withMultiSelect.d.ts +0 -24
  132. package/components/Select/withMultiSelect.d.ts.map +0 -1
  133. package/components/Select/withMultiSelect.js +0 -54
  134. package/components/Select/withSingleSelect.d.ts +0 -20
  135. package/components/Select/withSingleSelect.d.ts.map +0 -1
  136. package/components/Select/withSingleSelect.js +0 -47
  137. package/components/Slider/Slider.d.ts +0 -4
  138. package/components/Slider/Slider.d.ts.map +0 -1
  139. package/components/Slider/Slider.js +0 -14
  140. package/components/Slider/index.d.ts +0 -2
  141. package/components/Slider/index.d.ts.map +0 -1
  142. package/components/Slider/index.js +0 -12
  143. package/components/Switch/Switch.d.ts +0 -6
  144. package/components/Switch/Switch.d.ts.map +0 -1
  145. package/components/Switch/Switch.js +0 -17
  146. package/components/Switch/index.d.ts +0 -3
  147. package/components/Switch/index.d.ts.map +0 -1
  148. package/components/Switch/index.js +0 -12
  149. package/components/Typography/Body/index.d.ts +0 -2
  150. package/components/Typography/Body/index.d.ts.map +0 -1
  151. package/components/Typography/Body/index.js +0 -18
  152. package/components/Typography/Button/index.d.ts +0 -2
  153. package/components/Typography/Button/index.d.ts.map +0 -1
  154. package/components/Typography/Button/index.js +0 -18
  155. package/components/Typography/Caption/index.d.ts +0 -2
  156. package/components/Typography/Caption/index.d.ts.map +0 -1
  157. package/components/Typography/Caption/index.js +0 -12
  158. package/components/Typography/Footnote/index.d.ts +0 -2
  159. package/components/Typography/Footnote/index.d.ts.map +0 -1
  160. package/components/Typography/Footnote/index.js +0 -18
  161. package/components/Typography/Headline/index.d.ts +0 -4
  162. package/components/Typography/Headline/index.d.ts.map +0 -1
  163. package/components/Typography/Headline/index.js +0 -52
  164. package/components/Typography/Paragraph/index.d.ts +0 -2
  165. package/components/Typography/Paragraph/index.d.ts.map +0 -1
  166. package/components/Typography/Paragraph/index.js +0 -36
  167. package/components/Typography/Subtitle/index.d.ts +0 -2
  168. package/components/Typography/Subtitle/index.d.ts.map +0 -1
  169. package/components/Typography/Subtitle/index.js +0 -21
  170. package/components/Typography/Underline/index.d.ts +0 -2
  171. package/components/Typography/Underline/index.d.ts.map +0 -1
  172. package/components/Typography/Underline/index.js +0 -12
  173. package/components/Typography/index.d.ts +0 -11
  174. package/components/Typography/index.d.ts.map +0 -1
  175. package/components/Typography/index.js +0 -223
  176. package/es/components/Badge/Badge.js +0 -22
  177. package/es/components/Badge/index.js +0 -2
  178. package/es/components/Cell/Cell.js +0 -25
  179. package/es/components/Cell/index.js +0 -1
  180. package/es/components/Dropdown/Dropdown.component-test.js +0 -544
  181. package/es/components/Dropdown/Dropdown.js +0 -55
  182. package/es/components/Dropdown/Dropdown.types.js +0 -3
  183. package/es/components/Dropdown/DropdownItem.js +0 -114
  184. package/es/components/Dropdown/DropdownList.js +0 -15
  185. package/es/components/Dropdown/DropdownMenu.js +0 -53
  186. package/es/components/Dropdown/DropdownPopup.js +0 -39
  187. package/es/components/Dropdown/DropdownUncontrolled.js +0 -61
  188. package/es/components/Dropdown/index.js +0 -6
  189. package/es/components/Dropdown/keyboardNavigation/index.js +0 -1
  190. package/es/components/Dropdown/keyboardNavigation/useKeyboardNavigation.js +0 -52
  191. package/es/components/Dropdown/keyboardNavigation/useOnComboType.js +0 -24
  192. package/es/components/Dropdown/keyboardNavigation/useSearchString.js +0 -40
  193. package/es/components/Dropdown/keyboardNavigation/utils.js +0 -170
  194. package/es/components/Dropdown/withAssistiveDropdown.js +0 -126
  195. package/es/components/Editable/Editable.component-test.js +0 -111
  196. package/es/components/Editable/Editable.js +0 -145
  197. package/es/components/Editable/index.js +0 -1
  198. package/es/components/List/List.js +0 -7
  199. package/es/components/List/ListItem.js +0 -7
  200. package/es/components/List/index.js +0 -2
  201. package/es/components/Price/Price.js +0 -10
  202. package/es/components/Price/index.js +0 -1
  203. package/es/components/Select/Select.js +0 -29
  204. package/es/components/Select/Select.utils.js +0 -44
  205. package/es/components/Select/SelectButton.js +0 -67
  206. package/es/components/Select/SelectDropdown.js +0 -9
  207. package/es/components/Select/SelectGroup.js +0 -6
  208. package/es/components/Select/SelectView.js +0 -21
  209. package/es/components/Select/index.js +0 -2
  210. package/es/components/Select/types.js +0 -1
  211. package/es/components/Select/views/b2c/SelectButton.js +0 -12
  212. package/es/components/Select/views/b2c/SelectDropdown.js +0 -5
  213. package/es/components/Select/views/b2c/SelectView.js +0 -67
  214. package/es/components/Select/views/web/SelectView.js +0 -64
  215. package/es/components/Select/withMultiSelect.js +0 -46
  216. package/es/components/Select/withSingleSelect.js +0 -39
  217. package/es/components/Slider/Slider.js +0 -7
  218. package/es/components/Slider/index.js +0 -1
  219. package/es/components/Switch/Switch.js +0 -10
  220. package/es/components/Switch/index.js +0 -1
  221. package/es/components/Typography/Body/index.js +0 -1
  222. package/es/components/Typography/Button/index.js +0 -1
  223. package/es/components/Typography/Caption/index.js +0 -1
  224. package/es/components/Typography/Footnote/index.js +0 -1
  225. package/es/components/Typography/Headline/index.js +0 -20
  226. package/es/components/Typography/Paragraph/index.js +0 -1
  227. package/es/components/Typography/Subtitle/index.js +0 -14
  228. package/es/components/Typography/Underline/index.js +0 -1
  229. package/es/components/Typography/index.js +0 -9
@@ -1,58 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useKeyboardNavigation = exports.INITIAL_INDEX = void 0;
7
- var _react = /*#__PURE__*/require("react");
8
- var _utils = /*#__PURE__*/require("./utils");
9
- var _useOnComboType = /*#__PURE__*/require("./useOnComboType");
10
- var INITIAL_INDEX = exports.INITIAL_INDEX = 0;
11
-
12
- /**
13
- * Клавиатурная навигация для dropdown.
14
- * Работает для каждого instance dropdown, (popup) отдельно.
15
- */
16
- var useKeyboardNavigation = exports.useKeyboardNavigation = function useKeyboardNavigation(_ref) {
17
- var items = _ref.items,
18
- isOpen = _ref.isOpen,
19
- _ref$index = _ref.index,
20
- index = _ref$index === void 0 ? INITIAL_INDEX : _ref$index,
21
- onToggle = _ref.onToggle,
22
- onItemSelect = _ref.onItemSelect,
23
- onIndexChange = _ref.onIndexChange;
24
- var getIndexByTyping = (0, _useOnComboType.useOnComboType)({
25
- index: index,
26
- items: items
27
- });
28
- var onKeyDown = (0, _react.useCallback)(function (event) {
29
- if (!items.length) {
30
- return;
31
- }
32
- var action = (0, _utils.getActionFromKey)(event, isOpen);
33
- if (action === _utils.Actions.Last || action === _utils.Actions.First || action === _utils.Actions.Next || action === _utils.Actions.Previous || action === _utils.Actions.PageUp || action === _utils.Actions.PageDown) {
34
- event.preventDefault();
35
- onIndexChange === null || onIndexChange === void 0 || onIndexChange((0, _utils.getUpdatedIndex)(action, index, items));
36
- } else if (action === _utils.Actions.Select) {
37
- event.stopPropagation();
38
- event.preventDefault();
39
- onItemSelect === null || onItemSelect === void 0 || onItemSelect(items[index], event);
40
- } else if (action === _utils.Actions.Open) {
41
- event.preventDefault();
42
- onToggle === null || onToggle === void 0 || onToggle(true, event);
43
- } else if (action === _utils.Actions.Close) {
44
- event.preventDefault();
45
- onToggle === null || onToggle === void 0 || onToggle(false, event);
46
- } else if (action === _utils.Actions.Type) {
47
- event.preventDefault();
48
- var newIndex = getIndexByTyping(event.key);
49
- if (newIndex !== undefined) {
50
- onIndexChange === null || onIndexChange === void 0 || onIndexChange(newIndex);
51
- }
52
- }
53
- }, [isOpen, index, items, onIndexChange, onToggle, getIndexByTyping]);
54
- return {
55
- onKeyDown: onKeyDown,
56
- index: index
57
- };
58
- };
@@ -1,6 +0,0 @@
1
- import { DropdownItem } from '../Dropdown.types';
2
- export declare const useOnComboType: ({ items, index }: {
3
- items: DropdownItem[];
4
- index: number;
5
- }) => (letter: string) => number | undefined;
6
- //# sourceMappingURL=useOnComboType.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useOnComboType.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/keyboardNavigation/useOnComboType.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,cAAc,qBAAsB;IAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,cAIxE,MAAM,uBAoBtB,CAAC"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useOnComboType = void 0;
7
- var _react = /*#__PURE__*/require("react");
8
- var _utils = /*#__PURE__*/require("./utils");
9
- var _useSearchString2 = /*#__PURE__*/require("./useSearchString");
10
- var useOnComboType = exports.useOnComboType = function useOnComboType(_ref) {
11
- var items = _ref.items,
12
- index = _ref.index;
13
- var _useSearchString = (0, _useSearchString2.useSearchString)(),
14
- getSearchString = _useSearchString.getSearchString,
15
- resetSearchString = _useSearchString.resetSearchString;
16
- return (0, _react.useCallback)(function (letter) {
17
- // Находим индекс первого подходящего item
18
- var updatedSearchString = getSearchString(letter);
19
- var searchIndex = (0, _utils.getIndexByLetter)(items.map(function (item) {
20
- return item.label;
21
- }), updatedSearchString, index + 1);
22
-
23
- // Если есть подходящая опция - переходим к ней
24
- if (searchIndex >= 0) {
25
- return searchIndex;
26
- }
27
- resetSearchString();
28
- return undefined;
29
- }, [items, index, getSearchString, resetSearchString]);
30
- };
@@ -1,5 +0,0 @@
1
- export declare const useSearchString: () => {
2
- getSearchString: (char: string) => string;
3
- resetSearchString: () => void;
4
- };
5
- //# sourceMappingURL=useSearchString.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSearchString.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/keyboardNavigation/useSearchString.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;4BAMb,MAAM;;CA6BpB,CAAC"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useSearchString = void 0;
7
- var _react = /*#__PURE__*/require("react");
8
- function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
9
- 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."); }
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 _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; }
12
- 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; } }
13
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
14
- var useSearchString = exports.useSearchString = function useSearchString() {
15
- var _useState = (0, _react.useState)(''),
16
- _useState2 = _slicedToArray(_useState, 2),
17
- searchString = _useState2[0],
18
- setSearchString = _useState2[1];
19
- var searchTimeout = (0, _react.useRef)(null);
20
- var getSearchString = (0, _react.useCallback)(function (_char) {
21
- // Скидываем таймаут и начинаем новый
22
- // Это позволяет делать поиск с несколькими буквами, как нативный select
23
- if (searchTimeout.current) {
24
- window.clearTimeout(searchTimeout.current);
25
- }
26
- searchTimeout.current = window.setTimeout(function () {
27
- setSearchString('');
28
- }, 500);
29
-
30
- // Добавляем последнюю букву в поисковой строке
31
- setSearchString(function (prev) {
32
- return prev + _char;
33
- });
34
- return searchString + _char;
35
- }, [searchString]);
36
- var resetSearchString = (0, _react.useCallback)(function () {
37
- if (searchTimeout.current) {
38
- window.clearTimeout(searchTimeout.current);
39
- }
40
- setSearchString('');
41
- }, []);
42
- return {
43
- getSearchString: getSearchString,
44
- resetSearchString: resetSearchString
45
- };
46
- };
@@ -1,39 +0,0 @@
1
- import type { DropdownNode } from '../Dropdown.types';
2
- export declare enum Actions {
3
- Close = 0,
4
- CloseSelect = 1,
5
- First = 2,
6
- Last = 3,
7
- Next = 4,
8
- Open = 5,
9
- PageDown = 6,
10
- PageUp = 7,
11
- Previous = 8,
12
- Select = 9,
13
- Type = 10,
14
- OpenSub = 11,
15
- CloseSub = 12
16
- }
17
- export declare enum Keys {
18
- Home = "Home",
19
- ArrowUp = "ArrowUp",
20
- ArrowDown = "ArrowDown",
21
- ArrowLeft = "ArrowLeft",
22
- ArrowRight = "ArrowRight",
23
- Enter = "Enter",
24
- Space = " ",
25
- End = "End",
26
- Backspace = "Backspace",
27
- Clear = "Clear",
28
- PageUp = "PageUp",
29
- PageDown = "PageDown",
30
- Escape = "Escape"
31
- }
32
- /**
33
- * Возвращает экшн в соответствии с нажатой клавишей.
34
- */
35
- export declare const getActionFromKey: (event: React.KeyboardEvent, isOpen?: boolean) => Actions | null;
36
- export declare const getUpdatedIndex: (action: Actions, index: number, items: DropdownNode[]) => number;
37
- export declare const filterOptions: (options: string[] | undefined, filter: string, exclude?: string[]) => string[];
38
- export declare const getIndexByLetter: (options: string[], filter: string, startIndex?: number) => number;
39
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/keyboardNavigation/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,oBAAY,OAAO;IACf,KAAK,IAAA;IACL,WAAW,IAAA;IACX,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,IAAI,KAAA;IACJ,OAAO,KAAA;IACP,QAAQ,KAAA;CACX;AAED,oBAAY,IAAI;IACZ,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,KAAK,MAAM;IACX,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,CAAC,aAAa,WAAW,OAAO,mBA4D5E,CAAC;AAEF,eAAO,MAAM,eAAe,WAAY,OAAO,SAAS,MAAM,SAAS,YAAY,EAAE,WA6BpF,CAAC;AAIF,eAAO,MAAM,aAAa,YAAa,MAAM,EAAE,sBAAe,MAAM,YAAW,MAAM,EAAE,aAMtF,CAAC;AAIF,eAAO,MAAM,gBAAgB,YAAa,MAAM,EAAE,UAAU,MAAM,gCAmBjE,CAAC"}
@@ -1,175 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getUpdatedIndex = exports.getIndexByLetter = exports.getActionFromKey = exports.filterOptions = exports.Keys = exports.Actions = void 0;
7
- function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
8
- 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."); }
9
- 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; } }
10
- function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
11
- function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
12
- 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; }
13
- var Actions = exports.Actions = /*#__PURE__*/function (Actions) {
14
- Actions[Actions["Close"] = 0] = "Close";
15
- Actions[Actions["CloseSelect"] = 1] = "CloseSelect";
16
- Actions[Actions["First"] = 2] = "First";
17
- Actions[Actions["Last"] = 3] = "Last";
18
- Actions[Actions["Next"] = 4] = "Next";
19
- Actions[Actions["Open"] = 5] = "Open";
20
- Actions[Actions["PageDown"] = 6] = "PageDown";
21
- Actions[Actions["PageUp"] = 7] = "PageUp";
22
- Actions[Actions["Previous"] = 8] = "Previous";
23
- Actions[Actions["Select"] = 9] = "Select";
24
- Actions[Actions["Type"] = 10] = "Type";
25
- Actions[Actions["OpenSub"] = 11] = "OpenSub";
26
- Actions[Actions["CloseSub"] = 12] = "CloseSub";
27
- return Actions;
28
- }({});
29
- var Keys = exports.Keys = /*#__PURE__*/function (Keys) {
30
- Keys["Home"] = "Home";
31
- Keys["ArrowUp"] = "ArrowUp";
32
- Keys["ArrowDown"] = "ArrowDown";
33
- Keys["ArrowLeft"] = "ArrowLeft";
34
- Keys["ArrowRight"] = "ArrowRight";
35
- Keys["Enter"] = "Enter";
36
- Keys["Space"] = " ";
37
- Keys["End"] = "End";
38
- Keys["Backspace"] = "Backspace";
39
- Keys["Clear"] = "Clear";
40
- Keys["PageUp"] = "PageUp";
41
- Keys["PageDown"] = "PageDown";
42
- Keys["Escape"] = "Escape";
43
- return Keys;
44
- }({});
45
- /**
46
- * Возвращает экшн в соответствии с нажатой клавишей.
47
- */
48
- var getActionFromKey = exports.getActionFromKey = function getActionFromKey(event, isOpen) {
49
- var altKey = event.altKey,
50
- ctrlKey = event.ctrlKey,
51
- metaKey = event.metaKey;
52
-
53
- // Все кнопки, которые открывают селект
54
- var key = event.key;
55
- var openKeys = [Keys.ArrowUp, Keys.ArrowDown, Keys.Enter, Keys.Space];
56
-
57
- // Обработка открытия когда селект закрыт
58
- if (!isOpen && openKeys.includes(key)) {
59
- return Actions.Open;
60
- }
61
-
62
- // Кнопки Home и End должны перемещать всегда(открыт или закрыт)
63
- if (key === Keys.Home) {
64
- return Actions.First;
65
- }
66
- if (key === Keys.End) {
67
- return Actions.Last;
68
- }
69
-
70
- // Обработка ввода на клавиатуре при открытом и закрытом селекте
71
- if (key === Keys.Backspace || key === Keys.Clear || key.length === 1 && key !== Keys.Space && !altKey && !ctrlKey && !metaKey) {
72
- return Actions.Type;
73
- }
74
-
75
- // Обработка когда селект открыт
76
- if (isOpen) {
77
- if (key === Keys.ArrowUp && altKey) {
78
- return Actions.CloseSelect;
79
- }
80
- if (key === Keys.ArrowDown && !altKey) {
81
- return Actions.Next;
82
- }
83
- if (key === Keys.ArrowUp) {
84
- return Actions.Previous;
85
- }
86
- if (key === Keys.ArrowRight) {
87
- return Actions.OpenSub;
88
- }
89
- if (key === Keys.ArrowLeft) {
90
- return Actions.CloseSub;
91
- }
92
- if (key === Keys.PageUp) {
93
- return Actions.PageUp;
94
- }
95
- if (key === Keys.PageDown) {
96
- return Actions.PageDown;
97
- }
98
- if (key === Keys.Escape) {
99
- return Actions.Close;
100
- }
101
- if (key === Keys.Enter || key === Keys.Space) {
102
- return Actions.Select;
103
- }
104
- }
105
- return null;
106
- };
107
- var getUpdatedIndex = exports.getUpdatedIndex = function getUpdatedIndex(action, index, items) {
108
- var pageSize = 10; // Используется для pageup/pagedown
109
- var maxIndex = items.length - 1;
110
- var newIndex;
111
- switch (action) {
112
- case Actions.First:
113
- newIndex = 0;
114
- break;
115
- case Actions.Last:
116
- newIndex = maxIndex;
117
- break;
118
- case Actions.Previous:
119
- newIndex = index - 1 >= 0 ? index - 1 : maxIndex;
120
- break;
121
- case Actions.Next:
122
- newIndex = index + 1 <= maxIndex ? index + 1 : 0;
123
- break;
124
- case Actions.PageUp:
125
- newIndex = Math.max(0, index - pageSize);
126
- break;
127
- case Actions.PageDown:
128
- newIndex = Math.min(maxIndex, index + pageSize);
129
- break;
130
- default:
131
- newIndex = index;
132
- }
133
- return newIndex;
134
- };
135
-
136
- // Фильтрует массив по входной строке
137
- // Возвращает массив параметров, которые начинаются со строки filter, независимо от регистра
138
- var filterOptions = exports.filterOptions = function filterOptions() {
139
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
140
- var filter = arguments.length > 1 ? arguments[1] : undefined;
141
- var exclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
142
- var lowerCaseFilter = filter.toLowerCase();
143
- return options.filter(function (option) {
144
- var matches = option.toLowerCase().indexOf(lowerCaseFilter) === 0;
145
- return matches && exclude.indexOf(option) < 0;
146
- });
147
- };
148
-
149
- // Возвращает индекс параметра из массива параметров на основе строки поиска
150
- // Если filter - это несколько итераций одной и той же буквы (например, "aaa"), то ищем только по одной букве
151
- var getIndexByLetter = exports.getIndexByLetter = function getIndexByLetter(options, filter) {
152
- var startIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
153
- var orderedOptions = [].concat(_toConsumableArray(options.slice(startIndex)), _toConsumableArray(options.slice(0, startIndex)));
154
- var firstMatch = filterOptions(orderedOptions, filter)[0];
155
- var allSameLetter = function allSameLetter(array) {
156
- return array.every(function (letter) {
157
- return letter === array[0];
158
- });
159
- };
160
-
161
- // Сначала проверяем, есть ли точное совпадение для введенной строки
162
- if (firstMatch) {
163
- return options.indexOf(firstMatch);
164
- }
165
-
166
- // Если повторяется одна и та же буква, то ищем только по одной букве
167
- if (allSameLetter(filter.split(''))) {
168
- var matches = filterOptions(orderedOptions, filter[0]);
169
- return options.indexOf(matches[0]);
170
- }
171
-
172
- // Если нет совпадений, возвращаем -1
173
-
174
- return -1;
175
- };
@@ -1,27 +0,0 @@
1
- import React from 'react';
2
- import type { ComponentType, ForwardRefExoticComponent } from 'react';
3
- import { DropdownUncontrolledProps } from './DropdownUncontrolled';
4
- export interface WithAssistiveDropdownProps extends Pick<DropdownUncontrolledProps, 'id' | 'items' | 'placement' | 'trigger' | 'disabled' | 'onToggle' | 'onItemSelect'> {
5
- /**
6
- * WAI-ARIA role меню в выпадающем списке.
7
- */
8
- menuRole?: string;
9
- /**
10
- * WAI-ARIA role элемента меню в выпадающем списке.
11
- */
12
- menuItemRole?: string;
13
- /**
14
- * Закрыть выпадающий список после выбора.
15
- */
16
- closeOnSelect?: boolean;
17
- /**
18
- * Обработчик изменения активного индекса элемента,
19
- * на который встали клавиатурной навигацией и который нужно подсветить.
20
- */
21
- onIndexChange?: (index: number) => void;
22
- }
23
- /**
24
- * Декорирует переданный компонент, выводя доступный dropdown.
25
- */
26
- export declare const withAssistiveDropdown: <P extends object>(Component: ComponentType<P> | ForwardRefExoticComponent<P>, Dropdown?: ComponentType<DropdownUncontrolledProps>) => React.ForwardRefExoticComponent<React.PropsWithoutRef<P & WithAssistiveDropdownProps> & React.RefAttributes<HTMLButtonElement>>;
27
- //# sourceMappingURL=withAssistiveDropdown.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withAssistiveDropdown.d.ts","sourceRoot":"","sources":["../../src/components/Dropdown/withAssistiveDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAwB,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAKzF,MAAM,WAAW,0BACb,SAAQ,IAAI,CACR,yBAAyB,EACzB,IAAI,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CACtF;IACD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,MAAM,aACvC,aAAa,CAAC,CAAC,CAAC,GAAG,yBAAyB,CAAC,CAAC,CAAC,aAChD,aAAa,CAAC,yBAAyB,CAAC,oIA8HjD,CAAC"}
@@ -1,134 +0,0 @@
1
- "use strict";
2
-
3
- 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); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.withAssistiveDropdown = void 0;
8
- var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
9
- var _DropdownUncontrolled = /*#__PURE__*/require("./DropdownUncontrolled");
10
- var _keyboardNavigation = /*#__PURE__*/require("./keyboardNavigation");
11
- var _collectPackageInfo = /*#__PURE__*/require("../../collectPackageInfo");
12
- var _excluded = ["id", "items", "placement", "trigger", "disabled", "menuRole", "menuItemRole", "closeOnSelect", "onToggle", "onItemSelect", "onIndexChange"];
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
14
- 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); }
15
- function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
16
- 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."); }
17
- 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; } }
18
- 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; }
19
- 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; } }
20
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
21
- 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; }
22
- 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; }
23
- (0, _collectPackageInfo.collectPackageInfo)('Dropdown/withAssistiveDropdown');
24
- /**
25
- * Декорирует переданный компонент, выводя доступный dropdown.
26
- */
27
- var withAssistiveDropdown = exports.withAssistiveDropdown = function withAssistiveDropdown(Component) {
28
- var Dropdown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _DropdownUncontrolled.DropdownUncontrolled;
29
- return /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
30
- var id = _ref.id,
31
- items = _ref.items,
32
- placement = _ref.placement,
33
- trigger = _ref.trigger,
34
- disabled = _ref.disabled,
35
- menuRole = _ref.menuRole,
36
- menuItemRole = _ref.menuItemRole,
37
- _ref$closeOnSelect = _ref.closeOnSelect,
38
- closeOnSelect = _ref$closeOnSelect === void 0 ? true : _ref$closeOnSelect,
39
- onToggleExternal = _ref.onToggle,
40
- onItemSelectExternal = _ref.onItemSelect,
41
- onIndexChangeExternal = _ref.onIndexChange,
42
- rest = _objectWithoutProperties(_ref, _excluded);
43
- var _useState = (0, _react.useState)(false),
44
- _useState2 = _slicedToArray(_useState, 2),
45
- isOpen = _useState2[0],
46
- setIsOpen = _useState2[1];
47
- var _useState3 = (0, _react.useState)(_keyboardNavigation.INITIAL_INDEX),
48
- _useState4 = _slicedToArray(_useState3, 2),
49
- index = _useState4[0],
50
- setIndex = _useState4[1];
51
- var openingMethod = (0, _react.useRef)(null);
52
- var activeIndex = (0, _react.useMemo)(function () {
53
- return items.findIndex(function (item) {
54
- return item.isActive;
55
- });
56
- }, [items]);
57
- var onToggle = (0, _react.useCallback)(function (newIsOpen, event) {
58
- if (newIsOpen) {
59
- openingMethod.current = event.type;
60
- }
61
- setIsOpen(newIsOpen);
62
- onToggleExternal === null || onToggleExternal === void 0 || onToggleExternal(newIsOpen, event);
63
- }, [onToggleExternal]);
64
- var onItemSelect = (0, _react.useCallback)(function (item, event) {
65
- if (item.isDisabled) {
66
- return;
67
- }
68
- if (closeOnSelect) {
69
- onToggle === null || onToggle === void 0 || onToggle(false, event);
70
- }
71
- onItemSelectExternal === null || onItemSelectExternal === void 0 || onItemSelectExternal(item, event);
72
- }, [onToggle, onItemSelectExternal, closeOnSelect]);
73
- var onIndexChange = (0, _react.useCallback)(function (i) {
74
- setIndex(i);
75
- onIndexChangeExternal === null || onIndexChangeExternal === void 0 || onIndexChangeExternal(i);
76
- }, [onIndexChangeExternal]);
77
- var onBlur = (0, _react.useCallback)(function () {
78
- if (openingMethod.current === 'keydown') {
79
- setIsOpen(false);
80
- setIndex(_keyboardNavigation.INITIAL_INDEX);
81
- }
82
- }, []);
83
- var onHover = (0, _react.useCallback)(function (newIndex) {
84
- setIndex(newIndex);
85
- }, []);
86
- var onMouseLeave = (0, _react.useCallback)(function () {
87
- setIndex(-1);
88
- }, []);
89
- var _useKeyboardNavigatio = (0, _keyboardNavigation.useKeyboardNavigation)({
90
- items: items,
91
- isOpen: isOpen,
92
- index: index,
93
- onToggle: onToggle,
94
- onItemSelect: onItemSelect,
95
- onIndexChange: onIndexChange
96
- }),
97
- onKeyDown = _useKeyboardNavigatio.onKeyDown;
98
- (0, _react.useEffect)(function () {
99
- setIndex(activeIndex);
100
- }, [activeIndex]);
101
- (0, _react.useEffect)(function () {
102
- if (!isOpen) {
103
- onIndexChange === null || onIndexChange === void 0 || onIndexChange(activeIndex === -1 ? _keyboardNavigation.INITIAL_INDEX : activeIndex);
104
- }
105
- }, [isOpen, onIndexChange, activeIndex]);
106
- return /*#__PURE__*/_react["default"].createElement(Dropdown, {
107
- id: id,
108
- role: menuRole,
109
- itemRole: menuItemRole,
110
- "aria-labelledby": id ? "".concat(id, "-disclosure") : undefined,
111
- opened: isOpen,
112
- items: items,
113
- placement: placement,
114
- trigger: trigger,
115
- disabled: disabled,
116
- hoverIndex: index,
117
- onBlur: onBlur,
118
- onKeyDown: onKeyDown,
119
- onToggle: onToggle,
120
- onItemSelect: onItemSelect,
121
- onHover: onHover,
122
- onMouseLeave: onMouseLeave
123
- }, /*#__PURE__*/_react["default"].createElement(Component, _extends({}, rest, {
124
- ref: ref,
125
- id: id ? "".concat(id, "-disclosure") : undefined,
126
- opened: isOpen,
127
- disabled: disabled,
128
- "aria-activedescendant": id && index >= 0 ? "".concat(id, "-item-").concat(index) : undefined,
129
- "aria-controls": id,
130
- "aria-expanded": isOpen,
131
- "aria-haspopup": menuRole
132
- })));
133
- });
134
- };
@@ -1,114 +0,0 @@
1
- "use strict";
2
-
3
- var _react = /*#__PURE__*/_interopRequireDefault(/*#__PURE__*/require("react"));
4
- var _plasmaCyUtils = /*#__PURE__*/require("@salutejs/plasma-cy-utils");
5
- var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
6
- var _plasmaIcons = /*#__PURE__*/require("@salutejs/plasma-icons");
7
- var _IconEdit, _IconEdit2;
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
9
- var paste = function paste(selector, text) {
10
- // https://github.com/cypress-io/cypress/issues/2386#issuecomment-613374266
11
- cy.get(selector).first().then(function ($destination) {
12
- // https://developer.mozilla.org/en-US/docs/Web/API/Element/paste_event
13
- var pasteEvent = Object.assign(new Event('paste', {
14
- bubbles: true,
15
- cancelable: true
16
- }), {
17
- clipboardData: {
18
- getData: function getData() {
19
- return text;
20
- }
21
- }
22
- });
23
- $destination[0].dispatchEvent(pasteEvent);
24
- });
25
- };
26
- var noop = function noop() {};
27
- describe('plasma-hope: Editable', function () {
28
- var _CypressTestDecorator, _CypressTestDecorator2, _CypressTestDecorator3, _CypressTestDecorator4, _CypressTestDecorator5;
29
- var Editable = (0, _plasmaCyUtils.getComponent)('Editable');
30
- it('simple', function () {
31
- (0, _plasmaCyUtils.mount)(_CypressTestDecorator || (_CypressTestDecorator = /*#__PURE__*/_react["default"].createElement(_plasmaCyUtils.CypressTestDecorator, null, /*#__PURE__*/_react["default"].createElement(Editable, {
32
- value: "\u041F\u0440\u0438\u043C\u0435\u0440 \u0442\u0435\u043A\u0441\u0442\u0430",
33
- textComponent: _plasmaCore.Headline1
34
- }))));
35
- cy.matchImageSnapshot();
36
- });
37
- it('empty', function () {
38
- (0, _plasmaCyUtils.mount)(_CypressTestDecorator2 || (_CypressTestDecorator2 = /*#__PURE__*/_react["default"].createElement(_plasmaCyUtils.CypressTestDecorator, null, /*#__PURE__*/_react["default"].createElement(Editable, {
39
- textComponent: _plasmaCore.Headline1,
40
- icon: _IconEdit || (_IconEdit = /*#__PURE__*/_react["default"].createElement(_plasmaIcons.IconEdit, {
41
- size: "s",
42
- color: "inherit"
43
- }))
44
- }))));
45
- cy.matchImageSnapshot();
46
- });
47
- it('onChange', function () {
48
- (0, _plasmaCyUtils.mount)(_CypressTestDecorator3 || (_CypressTestDecorator3 = /*#__PURE__*/_react["default"].createElement(_plasmaCyUtils.CypressTestDecorator, null, /*#__PURE__*/_react["default"].createElement(Editable, {
49
- value: "onChange",
50
- onChange: noop,
51
- maxLength: 5,
52
- textComponent: _plasmaCore.Headline1
53
- }))));
54
- cy.get('span > div').first().type('Hello');
55
- cy.get('span > div').first().type('Hello world');
56
- cy.matchImageSnapshot();
57
- });
58
- it('onBlur and onFocus', function () {
59
- (0, _plasmaCyUtils.mount)(_CypressTestDecorator4 || (_CypressTestDecorator4 = /*#__PURE__*/_react["default"].createElement(_plasmaCyUtils.CypressTestDecorator, null, /*#__PURE__*/_react["default"].createElement(Editable, {
60
- value: "onBlur and onFocus",
61
- onBlur: noop,
62
- icon: _IconEdit2 || (_IconEdit2 = /*#__PURE__*/_react["default"].createElement(_plasmaIcons.IconEdit, {
63
- size: "s",
64
- color: "inherit"
65
- })),
66
- textComponent: _plasmaCore.Headline1
67
- }))));
68
- cy.get('span > span').click();
69
- cy.get('span > div').first().blur();
70
-
71
- // для случаев, если не поддерживаются современные интерфейсы window
72
- cy.window().then(function (win) {
73
- // NOTE: https://github.com/salute-developers/plasma/issues/384
74
- // callsFake не работает с данным методом
75
- // cy.stub(win, 'getSelection', undefined);
76
-
77
- // для браузеров IE < 9 при использовании компонента
78
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
- win.document.selection = {
80
- empty: noop
81
- };
82
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
83
- win.document.body.createTextRange = function () {
84
- return {
85
- moveToElementText: noop,
86
- select: noop
87
- };
88
- };
89
- });
90
- cy.get('span > div').first().focus();
91
- cy.get('span > div').first().trigger('keydown', {
92
- keyCode: 13
93
- });
94
- cy.matchImageSnapshot();
95
- });
96
- it('onPaste', function () {
97
- (0, _plasmaCyUtils.mount)(_CypressTestDecorator5 || (_CypressTestDecorator5 = /*#__PURE__*/_react["default"].createElement(_plasmaCyUtils.CypressTestDecorator, null, /*#__PURE__*/_react["default"].createElement(Editable, {
98
- value: "onPaste",
99
- onPaste: noop,
100
- textComponent: _plasmaCore.Headline1
101
- }))));
102
- paste('span > div', 'Hello from paste');
103
-
104
- // для случаев, если не поддерживаются современные интерфейсы window
105
- cy.window().then(function (win) {
106
- cy.stub(win.document, 'queryCommandSupported').callsFake(function () {
107
- return false;
108
- });
109
- cy.stub(navigator.clipboard, 'writeText').callsFake(undefined);
110
- paste('span > div', 'Hello from paste');
111
- });
112
- cy.matchImageSnapshot();
113
- });
114
- });