@coorpacademy/components 10.1.3 → 10.1.7

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 (256) hide show
  1. package/es/atom/button-link/index.js +10 -4
  2. package/es/atom/button-link/index.js.map +1 -1
  3. package/es/atom/button-link/style.css +4 -5
  4. package/es/atom/button-link/test/button-link.js +25 -0
  5. package/es/atom/button-link/test/button-link.js.map +1 -0
  6. package/es/atom/button-link/test/fixtures/button-tertiary-icon-bullet.js +13 -0
  7. package/es/atom/button-link/test/fixtures/button-tertiary-icon-bullet.js.map +1 -0
  8. package/es/atom/button-link/test/fixtures.js +35 -0
  9. package/es/atom/button-link/test/fixtures.js.map +1 -0
  10. package/es/atom/button-menu/index.js +66 -0
  11. package/es/atom/button-menu/index.js.map +1 -0
  12. package/es/atom/button-menu/style.css +51 -0
  13. package/es/atom/button-menu/test/fixtures/default.js +20 -0
  14. package/es/atom/button-menu/test/fixtures/default.js.map +1 -0
  15. package/es/atom/button-menu/test/fixtures/multiple-buttons.js +15 -0
  16. package/es/atom/button-menu/test/fixtures/multiple-buttons.js.map +1 -0
  17. package/es/atom/button-menu/test/fixtures.js +15 -0
  18. package/es/atom/button-menu/test/fixtures.js.map +1 -0
  19. package/es/atom/chips/index.js +8 -4
  20. package/es/atom/chips/index.js.map +1 -1
  21. package/es/atom/chips/style.css +17 -2
  22. package/es/atom/chips/test/fixtures/long-text.js +9 -0
  23. package/es/atom/chips/test/fixtures/long-text.js.map +1 -0
  24. package/es/atom/chips/test/fixtures.js +17 -0
  25. package/es/atom/chips/test/fixtures.js.map +1 -0
  26. package/es/atom/content-badge/test/fixtures.js +27 -0
  27. package/es/atom/content-badge/test/fixtures.js.map +1 -0
  28. package/es/atom/input-search/style.css +1 -0
  29. package/es/atom/input-search/test/fixtures.js +19 -0
  30. package/es/atom/input-search/test/fixtures.js.map +1 -0
  31. package/es/atom/input-text/index.js.map +1 -1
  32. package/es/atom/input-text/style.css +6 -2
  33. package/es/atom/input-text/test/fixtures.js +2 -0
  34. package/es/atom/input-text/test/fixtures.js.map +1 -1
  35. package/es/atom/input-textarea/style.css +3 -3
  36. package/es/atom/input-textarea/test/fixtures.js +4 -0
  37. package/es/atom/input-textarea/test/fixtures.js.map +1 -1
  38. package/es/atom/tag/test/fixtures.js +19 -0
  39. package/es/atom/tag/test/fixtures.js.map +1 -0
  40. package/es/atom/wizard-steps/test/fixtures.js +17 -0
  41. package/es/atom/wizard-steps/test/fixtures.js.map +1 -0
  42. package/es/molecule/banner/index.js +19 -10
  43. package/es/molecule/banner/index.js.map +1 -1
  44. package/es/molecule/banner/style.css +10 -8
  45. package/es/molecule/banner/test/fixtures.js +15 -0
  46. package/es/molecule/banner/test/fixtures.js.map +1 -0
  47. package/es/molecule/brand-form-group/index.js +20 -5
  48. package/es/molecule/brand-form-group/index.js.map +1 -1
  49. package/es/molecule/brand-form-group/style.css +19 -0
  50. package/es/molecule/brand-form-group/test/fixtures.js +2 -0
  51. package/es/molecule/brand-form-group/test/fixtures.js.map +1 -1
  52. package/es/molecule/bullet-point-menu-button/index.js +54 -0
  53. package/es/molecule/bullet-point-menu-button/index.js.map +1 -0
  54. package/es/molecule/bullet-point-menu-button/style.css +52 -0
  55. package/es/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js +34 -0
  56. package/es/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js.map +1 -0
  57. package/es/molecule/bullet-point-menu-button/test/fixtures/default.js +11 -0
  58. package/es/molecule/bullet-point-menu-button/test/fixtures/default.js.map +1 -0
  59. package/es/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js +13 -0
  60. package/es/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js.map +1 -0
  61. package/es/molecule/bullet-point-menu-button/test/fixtures.js +15 -0
  62. package/es/molecule/bullet-point-menu-button/test/fixtures.js.map +1 -0
  63. package/es/molecule/card/test/fixtures.js +4 -0
  64. package/es/molecule/card/test/fixtures.js.map +1 -1
  65. package/es/molecule/cm-popin/index.js +4 -4
  66. package/es/molecule/cm-popin/index.js.map +1 -1
  67. package/es/molecule/cm-popin/test/fixtures/dangerous.js +2 -2
  68. package/es/molecule/cm-popin/test/fixtures/dangerous.js.map +1 -1
  69. package/es/molecule/cm-popin/test/fixtures/default.js +2 -2
  70. package/es/molecule/cm-popin/test/fixtures/default.js.map +1 -1
  71. package/es/molecule/cm-popin/test/fixtures/warning-with-close.js +2 -2
  72. package/es/molecule/cm-popin/test/fixtures/warning-with-close.js.map +1 -1
  73. package/es/molecule/cm-popin/test/fixtures.js +17 -0
  74. package/es/molecule/cm-popin/test/fixtures.js.map +1 -0
  75. package/es/molecule/feedback/test/fixtures.js +0 -2
  76. package/es/molecule/feedback/test/fixtures.js.map +1 -1
  77. package/es/molecule/select-multiple/index.js +113 -146
  78. package/es/molecule/select-multiple/index.js.map +1 -1
  79. package/es/molecule/select-multiple/test/index.js +20 -79
  80. package/es/molecule/select-multiple/test/index.js.map +1 -1
  81. package/es/molecule/vertical-tabs/index.js +8 -3
  82. package/es/molecule/vertical-tabs/index.js.map +1 -1
  83. package/es/molecule/vertical-tabs/test/fixtures/default.js +2 -1
  84. package/es/molecule/vertical-tabs/test/fixtures/default.js.map +1 -1
  85. package/es/molecule/vertical-tabs/test/fixtures/with-selected-item.js +2 -1
  86. package/es/molecule/vertical-tabs/test/fixtures/with-selected-item.js.map +1 -1
  87. package/es/molecule/vertical-tabs/test/fixtures.js +15 -0
  88. package/es/molecule/vertical-tabs/test/fixtures.js.map +1 -0
  89. package/es/molecule/wizard-summary/index.js +3 -1
  90. package/es/molecule/wizard-summary/index.js.map +1 -1
  91. package/es/molecule/wizard-summary/style.css +8 -0
  92. package/es/molecule/wizard-summary/test/fixtures.js +21 -0
  93. package/es/molecule/wizard-summary/test/fixtures.js.map +1 -0
  94. package/es/organism/brand-form/test/fixtures/wizard-playlists.js +26 -0
  95. package/es/organism/brand-form/test/fixtures/wizard-playlists.js.map +1 -0
  96. package/es/organism/brand-form/test/fixtures.js +2 -0
  97. package/es/organism/brand-form/test/fixtures.js.map +1 -1
  98. package/es/organism/playlist-translation/index.js +63 -0
  99. package/es/organism/playlist-translation/index.js.map +1 -0
  100. package/es/organism/playlist-translation/style.css +45 -0
  101. package/es/organism/playlist-translation/test/fixtures/default.js +24 -0
  102. package/es/organism/playlist-translation/test/fixtures/default.js.map +1 -0
  103. package/es/organism/playlist-translation/test/fixtures/delete.js +18 -0
  104. package/es/organism/playlist-translation/test/fixtures/delete.js.map +1 -0
  105. package/es/organism/search-and-chips-results/index.js +92 -0
  106. package/es/organism/search-and-chips-results/index.js.map +1 -0
  107. package/es/organism/search-and-chips-results/style.css +57 -0
  108. package/es/organism/search-and-chips-results/test/fixtures/default.js +46 -0
  109. package/es/organism/search-and-chips-results/test/fixtures/default.js.map +1 -0
  110. package/es/organism/search-and-chips-results/test/fixtures/empty.js +23 -0
  111. package/es/organism/search-and-chips-results/test/fixtures/empty.js.map +1 -0
  112. package/es/organism/search-and-chips-results/test/fixtures/filtered.js +26 -0
  113. package/es/organism/search-and-chips-results/test/fixtures/filtered.js.map +1 -0
  114. package/es/organism/search-and-chips-results/test/fixtures/sorted-selected.js +49 -0
  115. package/es/organism/search-and-chips-results/test/fixtures/sorted-selected.js.map +1 -0
  116. package/es/organism/search-and-chips-results/test/fixtures/unsorted-selected.js +49 -0
  117. package/es/organism/search-and-chips-results/test/fixtures/unsorted-selected.js.map +1 -0
  118. package/es/organism/search-and-chips-results/test/fixtures.js +21 -0
  119. package/es/organism/search-and-chips-results/test/fixtures.js.map +1 -0
  120. package/es/template/app-player/popin-end/test/fixtures.js +0 -2
  121. package/es/template/app-player/popin-end/test/fixtures.js.map +1 -1
  122. package/es/template/teams-dashboard/index.js +4 -3
  123. package/es/template/teams-dashboard/index.js.map +1 -1
  124. package/es/variables/colors.css +2 -0
  125. package/lib/atom/button-link/index.js +9 -2
  126. package/lib/atom/button-link/index.js.map +1 -1
  127. package/lib/atom/button-link/style.css +4 -5
  128. package/lib/atom/button-link/test/button-link.js +37 -0
  129. package/lib/atom/button-link/test/button-link.js.map +1 -0
  130. package/lib/atom/button-link/test/fixtures/button-tertiary-icon-bullet.js +18 -0
  131. package/lib/atom/button-link/test/fixtures/button-tertiary-icon-bullet.js.map +1 -0
  132. package/lib/atom/button-link/test/fixtures.js +55 -0
  133. package/lib/atom/button-link/test/fixtures.js.map +1 -0
  134. package/lib/atom/button-menu/index.js +82 -0
  135. package/lib/atom/button-menu/index.js.map +1 -0
  136. package/lib/atom/button-menu/style.css +51 -0
  137. package/lib/atom/button-menu/test/fixtures/default.js +27 -0
  138. package/lib/atom/button-menu/test/fixtures/default.js.map +1 -0
  139. package/lib/atom/button-menu/test/fixtures/multiple-buttons.js +23 -0
  140. package/lib/atom/button-menu/test/fixtures/multiple-buttons.js.map +1 -0
  141. package/lib/atom/button-menu/test/fixtures.js +25 -0
  142. package/lib/atom/button-menu/test/fixtures.js.map +1 -0
  143. package/lib/atom/chips/index.js +8 -4
  144. package/lib/atom/chips/index.js.map +1 -1
  145. package/lib/atom/chips/style.css +17 -2
  146. package/lib/atom/chips/test/fixtures/long-text.js +14 -0
  147. package/lib/atom/chips/test/fixtures/long-text.js.map +1 -0
  148. package/lib/atom/chips/test/fixtures.js +28 -0
  149. package/lib/atom/chips/test/fixtures.js.map +1 -0
  150. package/lib/atom/content-badge/test/fixtures.js +43 -0
  151. package/lib/atom/content-badge/test/fixtures.js.map +1 -0
  152. package/lib/atom/input-search/style.css +1 -0
  153. package/lib/atom/input-search/test/fixtures.js +31 -0
  154. package/lib/atom/input-search/test/fixtures.js.map +1 -0
  155. package/lib/atom/input-text/index.js.map +1 -1
  156. package/lib/atom/input-text/style.css +6 -2
  157. package/lib/atom/input-text/test/fixtures.js +3 -0
  158. package/lib/atom/input-text/test/fixtures.js.map +1 -1
  159. package/lib/atom/input-textarea/style.css +3 -3
  160. package/lib/atom/input-textarea/test/fixtures.js +6 -0
  161. package/lib/atom/input-textarea/test/fixtures.js.map +1 -1
  162. package/lib/atom/tag/test/fixtures.js +31 -0
  163. package/lib/atom/tag/test/fixtures.js.map +1 -0
  164. package/lib/atom/wizard-steps/test/fixtures.js +28 -0
  165. package/lib/atom/wizard-steps/test/fixtures.js.map +1 -0
  166. package/lib/molecule/banner/index.js +19 -10
  167. package/lib/molecule/banner/index.js.map +1 -1
  168. package/lib/molecule/banner/style.css +10 -8
  169. package/lib/molecule/{search → banner}/test/fixtures.js +5 -5
  170. package/lib/molecule/banner/test/fixtures.js.map +1 -0
  171. package/lib/molecule/brand-form-group/index.js +22 -5
  172. package/lib/molecule/brand-form-group/index.js.map +1 -1
  173. package/lib/molecule/brand-form-group/style.css +19 -0
  174. package/lib/molecule/brand-form-group/test/fixtures.js +3 -0
  175. package/lib/molecule/brand-form-group/test/fixtures.js.map +1 -1
  176. package/lib/molecule/bullet-point-menu-button/index.js +72 -0
  177. package/lib/molecule/bullet-point-menu-button/index.js.map +1 -0
  178. package/lib/molecule/bullet-point-menu-button/style.css +52 -0
  179. package/lib/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js +46 -0
  180. package/lib/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js.map +1 -0
  181. package/lib/molecule/bullet-point-menu-button/test/fixtures/default.js +18 -0
  182. package/lib/molecule/bullet-point-menu-button/test/fixtures/default.js.map +1 -0
  183. package/lib/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js +25 -0
  184. package/lib/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js.map +1 -0
  185. package/lib/molecule/bullet-point-menu-button/test/fixtures.js +25 -0
  186. package/lib/molecule/bullet-point-menu-button/test/fixtures.js.map +1 -0
  187. package/lib/molecule/card/test/fixtures.js +6 -0
  188. package/lib/molecule/card/test/fixtures.js.map +1 -1
  189. package/lib/molecule/cm-popin/index.js +4 -4
  190. package/lib/molecule/cm-popin/index.js.map +1 -1
  191. package/lib/molecule/cm-popin/test/fixtures/dangerous.js +2 -2
  192. package/lib/molecule/cm-popin/test/fixtures/dangerous.js.map +1 -1
  193. package/lib/molecule/cm-popin/test/fixtures/default.js +2 -2
  194. package/lib/molecule/cm-popin/test/fixtures/default.js.map +1 -1
  195. package/lib/molecule/cm-popin/test/fixtures/warning-with-close.js +2 -2
  196. package/lib/molecule/cm-popin/test/fixtures/warning-with-close.js.map +1 -1
  197. package/lib/molecule/cm-popin/test/fixtures.js +28 -0
  198. package/lib/molecule/cm-popin/test/fixtures.js.map +1 -0
  199. package/lib/molecule/feedback/test/fixtures.js +0 -3
  200. package/lib/molecule/feedback/test/fixtures.js.map +1 -1
  201. package/lib/molecule/select-multiple/index.js +117 -143
  202. package/lib/molecule/select-multiple/index.js.map +1 -1
  203. package/lib/molecule/select-multiple/test/index.js +25 -79
  204. package/lib/molecule/select-multiple/test/index.js.map +1 -1
  205. package/lib/molecule/vertical-tabs/index.js +8 -3
  206. package/lib/molecule/vertical-tabs/index.js.map +1 -1
  207. package/lib/molecule/vertical-tabs/test/fixtures/default.js +2 -1
  208. package/lib/molecule/vertical-tabs/test/fixtures/default.js.map +1 -1
  209. package/lib/molecule/vertical-tabs/test/fixtures/with-selected-item.js +2 -1
  210. package/lib/molecule/vertical-tabs/test/fixtures/with-selected-item.js.map +1 -1
  211. package/lib/molecule/vertical-tabs/test/fixtures.js +25 -0
  212. package/lib/molecule/vertical-tabs/test/fixtures.js.map +1 -0
  213. package/lib/molecule/wizard-summary/index.js +3 -1
  214. package/lib/molecule/wizard-summary/index.js.map +1 -1
  215. package/lib/molecule/wizard-summary/style.css +8 -0
  216. package/lib/molecule/wizard-summary/test/fixtures.js +34 -0
  217. package/lib/molecule/wizard-summary/test/fixtures.js.map +1 -0
  218. package/lib/organism/brand-form/test/fixtures/wizard-playlists.js +31 -0
  219. package/lib/organism/brand-form/test/fixtures/wizard-playlists.js.map +1 -0
  220. package/lib/organism/brand-form/test/fixtures.js +3 -0
  221. package/lib/organism/brand-form/test/fixtures.js.map +1 -1
  222. package/lib/organism/playlist-translation/index.js +78 -0
  223. package/lib/organism/playlist-translation/index.js.map +1 -0
  224. package/lib/organism/playlist-translation/style.css +45 -0
  225. package/lib/organism/playlist-translation/test/fixtures/default.js +35 -0
  226. package/lib/organism/playlist-translation/test/fixtures/default.js.map +1 -0
  227. package/lib/organism/playlist-translation/test/fixtures/delete.js +29 -0
  228. package/lib/organism/playlist-translation/test/fixtures/delete.js.map +1 -0
  229. package/lib/organism/search-and-chips-results/index.js +105 -0
  230. package/lib/organism/search-and-chips-results/index.js.map +1 -0
  231. package/lib/organism/search-and-chips-results/style.css +57 -0
  232. package/lib/organism/search-and-chips-results/test/fixtures/default.js +51 -0
  233. package/lib/organism/search-and-chips-results/test/fixtures/default.js.map +1 -0
  234. package/lib/organism/search-and-chips-results/test/fixtures/empty.js +28 -0
  235. package/lib/organism/search-and-chips-results/test/fixtures/empty.js.map +1 -0
  236. package/lib/organism/search-and-chips-results/test/fixtures/filtered.js +31 -0
  237. package/lib/organism/search-and-chips-results/test/fixtures/filtered.js.map +1 -0
  238. package/lib/organism/search-and-chips-results/test/fixtures/sorted-selected.js +54 -0
  239. package/lib/organism/search-and-chips-results/test/fixtures/sorted-selected.js.map +1 -0
  240. package/lib/organism/search-and-chips-results/test/fixtures/unsorted-selected.js +54 -0
  241. package/lib/organism/search-and-chips-results/test/fixtures/unsorted-selected.js.map +1 -0
  242. package/lib/organism/search-and-chips-results/test/fixtures.js +34 -0
  243. package/lib/organism/search-and-chips-results/test/fixtures.js.map +1 -0
  244. package/lib/template/app-player/popin-end/test/fixtures.js +0 -3
  245. package/lib/template/app-player/popin-end/test/fixtures.js.map +1 -1
  246. package/lib/template/teams-dashboard/index.js +3 -1
  247. package/lib/template/teams-dashboard/index.js.map +1 -1
  248. package/lib/variables/colors.css +2 -0
  249. package/package.json +3 -3
  250. package/es/molecule/cockpit-popin/test/fixtures.js +0 -17
  251. package/es/molecule/cockpit-popin/test/fixtures.js.map +0 -1
  252. package/es/molecule/search/test/fixtures.js +0 -15
  253. package/es/molecule/search/test/fixtures.js.map +0 -1
  254. package/lib/molecule/cockpit-popin/test/fixtures.js +0 -28
  255. package/lib/molecule/cockpit-popin/test/fixtures.js.map +0 -1
  256. package/lib/molecule/search/test/fixtures.js.map +0 -1
@@ -7,9 +7,7 @@ import _map from "lodash/fp/map";
7
7
 
8
8
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
9
9
 
10
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
-
12
- import React from 'react';
10
+ import React, { useState, useEffect, useRef, useCallback } from 'react';
13
11
  import PropTypes from 'prop-types';
14
12
  import classnames from 'classnames';
15
13
  import { NovaCompositionNavigationArrowDown as ArrowDown } from '@coorpacademy/nova-icons';
@@ -22,155 +20,124 @@ const themeStyle = {
22
20
  cockpit: style.cockpit,
23
21
  sidebar: style.sidebar
24
22
  };
23
+ export const useChoices = options => {
24
+ const choicesRef = useRef(options);
25
25
 
26
- class SelectMultiple extends React.Component {
27
- constructor(props) {
28
- super(props);
29
-
30
- _defineProperty(this, "handleOnClick", e => {
31
- const {
32
- opened
33
- } = this.state;
34
- e.preventDefault();
35
- e.stopPropagation();
36
- this.setState({
37
- opened: !opened
38
- });
39
- });
40
-
41
- _defineProperty(this, "closeHandle", e => {
42
- if (this.node && !this.node.contains(e.target)) {
43
- this.setState({
44
- opened: false
45
- });
46
- }
47
- });
48
-
49
- _defineProperty(this, "handleChange", choice => {
50
- const {
51
- multiple,
52
- onChange
53
- } = this.props; // if multiple prop is turned on
54
- // we return all selected choices
55
-
56
- if (multiple) {
57
- this.choices = choice;
58
- return onChange(this.choices);
59
- }
60
-
61
- return onChange(choice);
62
- });
63
-
64
- this.state = {
65
- opened: false
66
- };
67
- this.node = null;
26
+ const getChoices = () => {
27
+ return choicesRef.current;
28
+ };
68
29
 
69
- this.setNode = el => this.node = el;
70
- }
30
+ const setChoices = choice => {
31
+ const choices = _set(`[${choice.i}].selected`, !choice.selected, getChoices());
71
32
 
72
- componentDidMount() {
73
- if (typeof document !== 'undefined') {
74
- document.addEventListener('click', this.closeHandle);
75
- document.addEventListener('touchstart', this.closeHandle);
76
- }
77
- }
33
+ choicesRef.current = choices.filter(c => c.selected);
34
+ };
78
35
 
79
- componentWillUnmount() {
80
- if (typeof document !== 'undefined') {
81
- document.removeEventListener('click', this.closeHandle);
82
- document.removeEventListener('touchstart', this.closeHandle);
36
+ return [getChoices, setChoices];
37
+ };
38
+
39
+ const SelectMultiple = ({
40
+ title,
41
+ options,
42
+ theme,
43
+ placeholder,
44
+ description,
45
+ multiple,
46
+ onChange,
47
+ modified = false,
48
+ required = false,
49
+ error = false
50
+ }, {
51
+ skin
52
+ }) => {
53
+ const [isOpened, updateIsOpened] = useState(false);
54
+ const [getChoices, setChoices] = useChoices(options);
55
+ const nodeRef = useRef(null);
56
+
57
+ const defaultColor = _get('common.primary', skin);
58
+
59
+ const black = _get('common.black', skin);
60
+
61
+ const handleOnClick = useCallback(e => {
62
+ e.preventDefault();
63
+ e.stopPropagation();
64
+ updateIsOpened(prev => !prev);
65
+ }, []);
66
+ const closeHandle = useCallback(e => {
67
+ if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {
68
+ updateIsOpened(false);
83
69
  }
84
- }
85
-
86
- set choices(choice) {
87
- const choices = _set(`[${choice.i}].selected`, !choice.selected, this._choices);
88
-
89
- this._choices = choices.filter(c => c.selected);
90
- }
91
-
92
- get choices() {
93
- return this._choices;
94
- }
95
-
96
- render() {
97
- const {
98
- skin
99
- } = this.context;
100
-
101
- const defaultColor = _get('common.primary', skin);
102
-
103
- const black = _get('common.black', skin);
104
-
105
- const {
106
- title,
107
- options,
108
- theme,
109
- placeholder,
110
- description,
111
- modified = false,
112
- required = false,
113
- error = false
114
- } = this.props;
115
- const {
116
- opened
117
- } = this.state;
118
- this._choices = options;
119
-
120
- const lines = _map.convert({
121
- cap: false
122
- })((choice, i) => {
123
- return /*#__PURE__*/React.createElement("li", {
124
- key: i,
125
- className: style.choice
126
- }, /*#__PURE__*/React.createElement(TitledCheckbox, {
127
- onToggle: this.handleChange,
128
- choice: _extends(_extends({}, choice), {}, {
129
- i
130
- }),
131
- background: defaultColor
132
- }));
133
- }, options);
134
-
135
- const selection = _pipe(_filter({
136
- selected: true
137
- }), _map('name'), _join(', '))(options);
138
-
139
- const _title = title && `${title}${required ? ' *' : ''}`;
140
-
141
- const titleView = title ? /*#__PURE__*/React.createElement("span", {
142
- className: style.title
143
- }, _title, " ") : null;
144
- const isActive = opened === true;
145
- const mainClass = theme ? themeStyle[theme] : style.default;
146
- const behaviourClassName = getClassState(style.default, style.modified, style.error, modified, error);
147
- return /*#__PURE__*/React.createElement("div", {
148
- className: classnames(mainClass, behaviourClassName),
149
- ref: this.setNode
150
- }, /*#__PURE__*/React.createElement("label", null, titleView, /*#__PURE__*/React.createElement("div", {
151
- className: style.select,
152
- title: selection || placeholder,
153
- onClick: this.handleOnClick
154
- }, selection || placeholder, /*#__PURE__*/React.createElement(ArrowDown, {
155
- color: black,
156
- className: classnames(style.arrow, {
157
- [style.down]: isActive
158
- })
159
- })), /*#__PURE__*/React.createElement("div", {
160
- className: isActive ? style.activeChoices : style.choices
161
- }, /*#__PURE__*/React.createElement("ul", {
162
- className: style.list
163
- }, lines))), /*#__PURE__*/React.createElement("div", {
164
- className: style.description
165
- }, description));
166
- }
167
-
168
- }
169
-
170
- _defineProperty(SelectMultiple, "contextTypes", {
171
- skin: Provider.childContextTypes.skin
172
- });
70
+ }, []);
71
+ const handleChange = useCallback(choice => {
72
+ // if multiple prop is turned on
73
+ // we return all selected choices
74
+ if (multiple) {
75
+ setChoices(choice);
76
+ return onChange(getChoices());
77
+ }
78
+
79
+ return onChange(choice);
80
+ }, [setChoices, multiple, onChange]);
81
+ useEffect(() => {
82
+ document.addEventListener('click', closeHandle);
83
+ document.addEventListener('touchstart', closeHandle);
84
+ return () => {
85
+ document.removeEventListener('click', closeHandle);
86
+ document.removeEventListener('touchstart', closeHandle);
87
+ };
88
+ }, [closeHandle]);
89
+
90
+ const lines = _map.convert({
91
+ cap: false
92
+ })((choice, i) => {
93
+ return /*#__PURE__*/React.createElement("li", {
94
+ key: i,
95
+ className: style.choice
96
+ }, /*#__PURE__*/React.createElement(TitledCheckbox, {
97
+ onToggle: handleChange,
98
+ choice: _extends(_extends({}, choice), {}, {
99
+ i
100
+ }),
101
+ background: defaultColor
102
+ }));
103
+ }, options);
104
+
105
+ const selection = _pipe(_filter({
106
+ selected: true
107
+ }), _map('name'), _join(', '))(options);
108
+
109
+ const _title = title && `${title}${required ? ' *' : ''}`;
110
+
111
+ const titleView = title ? /*#__PURE__*/React.createElement("span", {
112
+ className: style.title
113
+ }, _title, " ") : null;
114
+ const isActive = isOpened === true;
115
+ const mainClass = theme ? themeStyle[theme] : style.default;
116
+ const behaviourClassName = getClassState(style.default, style.modified, style.error, modified, error);
117
+ return /*#__PURE__*/React.createElement("div", {
118
+ className: classnames(mainClass, behaviourClassName),
119
+ ref: nodeRef
120
+ }, /*#__PURE__*/React.createElement("label", null, titleView, /*#__PURE__*/React.createElement("div", {
121
+ className: style.select,
122
+ title: selection || placeholder,
123
+ onClick: handleOnClick
124
+ }, selection || placeholder, /*#__PURE__*/React.createElement(ArrowDown, {
125
+ color: black,
126
+ className: classnames(style.arrow, {
127
+ [style.down]: isActive
128
+ })
129
+ })), /*#__PURE__*/React.createElement("div", {
130
+ className: isActive ? style.activeChoices : style.choices
131
+ }, /*#__PURE__*/React.createElement("ul", {
132
+ className: style.list
133
+ }, lines))), /*#__PURE__*/React.createElement("div", {
134
+ className: style.description
135
+ }, description));
136
+ };
173
137
 
138
+ SelectMultiple.contextTypes = {
139
+ skin: Provider.childContextTypes.skin
140
+ };
174
141
  SelectMultiple.propTypes = process.env.NODE_ENV !== "production" ? {
175
142
  title: PropTypes.string,
176
143
  placeholder: PropTypes.string,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/select-multiple/index.js"],"names":["React","PropTypes","classnames","NovaCompositionNavigationArrowDown","ArrowDown","TitledCheckbox","Provider","getClassState","style","themeStyle","setup","cockpit","sidebar","SelectMultiple","Component","constructor","props","e","opened","state","preventDefault","stopPropagation","setState","node","contains","target","choice","multiple","onChange","choices","setNode","el","componentDidMount","document","addEventListener","closeHandle","componentWillUnmount","removeEventListener","i","selected","_choices","filter","c","render","skin","context","defaultColor","black","title","options","theme","placeholder","description","modified","required","error","lines","convert","cap","handleChange","selection","_title","titleView","isActive","mainClass","default","behaviourClassName","select","handleOnClick","arrow","down","activeChoices","list","childContextTypes","propTypes","string","arrayOf","func","bool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {map, pipe, join, filter, get, set} from 'lodash/fp';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport TitledCheckbox from '../titled-checkbox';\nimport Provider from '../../atom/provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setup,\n cockpit: style.cockpit,\n sidebar: style.sidebar\n};\n\nclass SelectMultiple extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n placeholder: PropTypes.string,\n description: PropTypes.string,\n options: PropTypes.arrayOf(TitledCheckbox.propTypes.choice),\n onChange: PropTypes.func,\n multiple: PropTypes.bool,\n theme: PropTypes.string,\n modified: PropTypes.bool,\n required: PropTypes.bool,\n error: PropTypes.bool\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n opened: false\n };\n\n this.node = null;\n this.setNode = el => (this.node = el);\n }\n\n componentDidMount() {\n if (typeof document !== 'undefined') {\n document.addEventListener('click', this.closeHandle);\n document.addEventListener('touchstart', this.closeHandle);\n }\n }\n\n componentWillUnmount() {\n if (typeof document !== 'undefined') {\n document.removeEventListener('click', this.closeHandle);\n document.removeEventListener('touchstart', this.closeHandle);\n }\n }\n\n handleOnClick = e => {\n const {opened} = this.state;\n e.preventDefault();\n e.stopPropagation();\n\n this.setState({opened: !opened});\n };\n\n closeHandle = e => {\n if (this.node && !this.node.contains(e.target)) {\n this.setState({opened: false});\n }\n };\n\n set choices(choice) {\n const choices = set(`[${choice.i}].selected`, !choice.selected, this._choices);\n\n this._choices = choices.filter(c => c.selected);\n }\n\n get choices() {\n return this._choices;\n }\n\n handleChange = choice => {\n const {multiple, onChange} = this.props;\n // if multiple prop is turned on\n // we return all selected choices\n if (multiple) {\n this.choices = choice;\n\n return onChange(this.choices);\n }\n\n return onChange(choice);\n };\n\n render() {\n const {skin} = this.context;\n const defaultColor = get('common.primary', skin);\n const black = get('common.black', skin);\n const {\n title,\n options,\n theme,\n placeholder,\n description,\n modified = false,\n required = false,\n error = false\n } = this.props;\n const {opened} = this.state;\n\n this._choices = options;\n\n const lines = map.convert({cap: false})((choice, i) => {\n return (\n <li key={i} className={style.choice}>\n <TitledCheckbox\n onToggle={this.handleChange}\n choice={{...choice, i}}\n background={defaultColor}\n />\n </li>\n );\n }, options);\n const selection = pipe(filter({selected: true}), map('name'), join(', '))(options);\n\n const _title = title && `${title}${required ? ' *' : ''}`;\n\n const titleView = title ? <span className={style.title}>{_title} </span> : null;\n const isActive = opened === true;\n const mainClass = theme ? themeStyle[theme] : style.default;\n const behaviourClassName = getClassState(\n style.default,\n style.modified,\n style.error,\n modified,\n error\n );\n\n return (\n <div className={classnames(mainClass, behaviourClassName)} ref={this.setNode}>\n <label>\n {titleView}\n <div\n className={style.select}\n title={selection || placeholder}\n onClick={this.handleOnClick}\n >\n {selection || placeholder}\n <ArrowDown\n color={black}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n </div>\n <div className={isActive ? style.activeChoices : style.choices}>\n <ul className={style.list}>{lines}</ul>\n </div>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n }\n}\n\nexport default SelectMultiple;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/select-multiple/index.js"],"names":["React","useState","useEffect","useRef","useCallback","PropTypes","classnames","NovaCompositionNavigationArrowDown","ArrowDown","TitledCheckbox","Provider","getClassState","style","themeStyle","setup","cockpit","sidebar","useChoices","options","choicesRef","getChoices","current","setChoices","choice","choices","i","selected","filter","c","SelectMultiple","title","theme","placeholder","description","multiple","onChange","modified","required","error","skin","isOpened","updateIsOpened","nodeRef","defaultColor","black","handleOnClick","e","preventDefault","stopPropagation","prev","closeHandle","contains","target","handleChange","document","addEventListener","removeEventListener","lines","convert","cap","selection","_title","titleView","isActive","mainClass","default","behaviourClassName","select","arrow","down","activeChoices","list","contextTypes","childContextTypes","propTypes","string","arrayOf","func","bool"],"mappings":";;;;;;;;;AAAA,OAAOA,KAAP,IAAeC,QAAf,EAAyBC,SAAzB,EAAoCC,MAApC,EAA4CC,WAA5C,QAA8D,OAA9D;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,SAAQC,kCAAkC,IAAIC,SAA9C,QAA8D,0BAA9D;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AACA,OAAOC,QAAP,MAAqB,qBAArB;AACA,OAAOC,aAAP,MAA0B,4BAA1B;AACA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,MAAMC,UAAU,GAAG;AACjBC,EAAAA,KAAK,EAAEF,KAAK,CAACE,KADI;AAEjBC,EAAAA,OAAO,EAAEH,KAAK,CAACG,OAFE;AAGjBC,EAAAA,OAAO,EAAEJ,KAAK,CAACI;AAHE,CAAnB;AAMA,OAAO,MAAMC,UAAU,GAAGC,OAAO,IAAI;AACnC,QAAMC,UAAU,GAAGhB,MAAM,CAACe,OAAD,CAAzB;;AAEA,QAAME,UAAU,GAAG,MAAM;AACvB,WAAOD,UAAU,CAACE,OAAlB;AACD,GAFD;;AAIA,QAAMC,UAAU,GAAGC,MAAM,IAAI;AAC3B,UAAMC,OAAO,GAAG,KAAK,IAAGD,MAAM,CAACE,CAAE,YAAjB,EAA8B,CAACF,MAAM,CAACG,QAAtC,EAAgDN,UAAU,EAA1D,CAAhB;;AAEAD,IAAAA,UAAU,CAACE,OAAX,GAAqBG,OAAO,CAACG,MAAR,CAAeC,CAAC,IAAIA,CAAC,CAACF,QAAtB,CAArB;AACD,GAJD;;AAMA,SAAO,CAACN,UAAD,EAAaE,UAAb,CAAP;AACD,CAdM;;AAgBP,MAAMO,cAAc,GAAG,CACrB;AACEC,EAAAA,KADF;AAEEZ,EAAAA,OAFF;AAGEa,EAAAA,KAHF;AAIEC,EAAAA,WAJF;AAKEC,EAAAA,WALF;AAMEC,EAAAA,QANF;AAOEC,EAAAA,QAPF;AAQEC,EAAAA,QAAQ,GAAG,KARb;AASEC,EAAAA,QAAQ,GAAG,KATb;AAUEC,EAAAA,KAAK,GAAG;AAVV,CADqB,EAarB;AAACC,EAAAA;AAAD,CAbqB,KAclB;AACH,QAAM,CAACC,QAAD,EAAWC,cAAX,IAA6BxC,QAAQ,CAAC,KAAD,CAA3C;AACA,QAAM,CAACmB,UAAD,EAAaE,UAAb,IAA2BL,UAAU,CAACC,OAAD,CAA3C;AACA,QAAMwB,OAAO,GAAGvC,MAAM,CAAC,IAAD,CAAtB;;AAEA,QAAMwC,YAAY,GAAG,KAAI,gBAAJ,EAAsBJ,IAAtB,CAArB;;AACA,QAAMK,KAAK,GAAG,KAAI,cAAJ,EAAoBL,IAApB,CAAd;;AAEA,QAAMM,aAAa,GAAGzC,WAAW,CAAC0C,CAAC,IAAI;AACrCA,IAAAA,CAAC,CAACC,cAAF;AACAD,IAAAA,CAAC,CAACE,eAAF;AAEAP,IAAAA,cAAc,CAACQ,IAAI,IAAI,CAACA,IAAV,CAAd;AACD,GALgC,EAK9B,EAL8B,CAAjC;AAOA,QAAMC,WAAW,GAAG9C,WAAW,CAAC0C,CAAC,IAAI;AACnC,QAAIJ,OAAO,IAAIA,OAAO,CAACrB,OAAnB,IAA8B,CAACqB,OAAO,CAACrB,OAAR,CAAgB8B,QAAhB,CAAyBL,CAAC,CAACM,MAA3B,CAAnC,EAAuE;AACrEX,MAAAA,cAAc,CAAC,KAAD,CAAd;AACD;AACF,GAJ8B,EAI5B,EAJ4B,CAA/B;AAMA,QAAMY,YAAY,GAAGjD,WAAW,CAC9BmB,MAAM,IAAI;AACR;AACA;AACA,QAAIW,QAAJ,EAAc;AACZZ,MAAAA,UAAU,CAACC,MAAD,CAAV;AAEA,aAAOY,QAAQ,CAACf,UAAU,EAAX,CAAf;AACD;;AAED,WAAOe,QAAQ,CAACZ,MAAD,CAAf;AACD,GAX6B,EAY9B,CAACD,UAAD,EAAaY,QAAb,EAAuBC,QAAvB,CAZ8B,CAAhC;AAeAjC,EAAAA,SAAS,CAAC,MAAM;AACdoD,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,OAA1B,EAAmCL,WAAnC;AACAI,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,YAA1B,EAAwCL,WAAxC;AAEA,WAAO,MAAM;AACXI,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,OAA7B,EAAsCN,WAAtC;AACAI,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,YAA7B,EAA2CN,WAA3C;AACD,KAHD;AAID,GARQ,EAQN,CAACA,WAAD,CARM,CAAT;;AAUA,QAAMO,KAAK,GAAG,KAAIC,OAAJ,CAAY;AAACC,IAAAA,GAAG,EAAE;AAAN,GAAZ,EAA0B,CAACpC,MAAD,EAASE,CAAT,KAAe;AACrD,wBACE;AAAI,MAAA,GAAG,EAAEA,CAAT;AAAY,MAAA,SAAS,EAAEb,KAAK,CAACW;AAA7B,oBACE,oBAAC,cAAD;AAAgB,MAAA,QAAQ,EAAE8B,YAA1B;AAAwC,MAAA,MAAM,wBAAM9B,MAAN;AAAcE,QAAAA;AAAd,QAA9C;AAAgE,MAAA,UAAU,EAAEkB;AAA5E,MADF,CADF;AAKD,GANa,EAMXzB,OANW,CAAd;;AAQA,QAAM0C,SAAS,GAAG,MAAK,QAAO;AAAClC,IAAAA,QAAQ,EAAE;AAAX,GAAP,CAAL,EAA+B,KAAI,MAAJ,CAA/B,EAA4C,MAAK,IAAL,CAA5C,EAAwDR,OAAxD,CAAlB;;AAEA,QAAM2C,MAAM,GAAG/B,KAAK,IAAK,GAAEA,KAAM,GAAEO,QAAQ,GAAG,IAAH,GAAU,EAAG,EAAxD;;AAEA,QAAMyB,SAAS,GAAGhC,KAAK,gBAAG;AAAM,IAAA,SAAS,EAAElB,KAAK,CAACkB;AAAvB,KAA+B+B,MAA/B,MAAH,GAAoD,IAA3E;AACA,QAAME,QAAQ,GAAGvB,QAAQ,KAAK,IAA9B;AACA,QAAMwB,SAAS,GAAGjC,KAAK,GAAGlB,UAAU,CAACkB,KAAD,CAAb,GAAuBnB,KAAK,CAACqD,OAApD;AACA,QAAMC,kBAAkB,GAAGvD,aAAa,CACtCC,KAAK,CAACqD,OADgC,EAEtCrD,KAAK,CAACwB,QAFgC,EAGtCxB,KAAK,CAAC0B,KAHgC,EAItCF,QAJsC,EAKtCE,KALsC,CAAxC;AAQA,sBACE;AAAK,IAAA,SAAS,EAAEhC,UAAU,CAAC0D,SAAD,EAAYE,kBAAZ,CAA1B;AAA2D,IAAA,GAAG,EAAExB;AAAhE,kBACE,mCACGoB,SADH,eAEE;AAAK,IAAA,SAAS,EAAElD,KAAK,CAACuD,MAAtB;AAA8B,IAAA,KAAK,EAAEP,SAAS,IAAI5B,WAAlD;AAA+D,IAAA,OAAO,EAAEa;AAAxE,KACGe,SAAS,IAAI5B,WADhB,eAEE,oBAAC,SAAD;AAAW,IAAA,KAAK,EAAEY,KAAlB;AAAyB,IAAA,SAAS,EAAEtC,UAAU,CAACM,KAAK,CAACwD,KAAP,EAAc;AAAC,OAACxD,KAAK,CAACyD,IAAP,GAAcN;AAAf,KAAd;AAA9C,IAFF,CAFF,eAME;AAAK,IAAA,SAAS,EAAEA,QAAQ,GAAGnD,KAAK,CAAC0D,aAAT,GAAyB1D,KAAK,CAACY;AAAvD,kBACE;AAAI,IAAA,SAAS,EAAEZ,KAAK,CAAC2D;AAArB,KAA4Bd,KAA5B,CADF,CANF,CADF,eAWE;AAAK,IAAA,SAAS,EAAE7C,KAAK,CAACqB;AAAtB,KAAoCA,WAApC,CAXF,CADF;AAeD,CAlGD;;AAoGAJ,cAAc,CAAC2C,YAAf,GAA8B;AAC5BjC,EAAAA,IAAI,EAAE7B,QAAQ,CAAC+D,iBAAT,CAA2BlC;AADL,CAA9B;AAIAV,cAAc,CAAC6C,SAAf,2CAA2B;AACzB5C,EAAAA,KAAK,EAAEzB,SAAS,CAACsE,MADQ;AAEzB3C,EAAAA,WAAW,EAAE3B,SAAS,CAACsE,MAFE;AAGzB1C,EAAAA,WAAW,EAAE5B,SAAS,CAACsE,MAHE;AAIzBzD,EAAAA,OAAO,EAAEb,SAAS,CAACuE,OAAV,CAAkBnE,cAAc,CAACiE,SAAf,CAAyBnD,MAA3C,CAJgB;AAKzBY,EAAAA,QAAQ,EAAE9B,SAAS,CAACwE,IALK;AAMzB3C,EAAAA,QAAQ,EAAE7B,SAAS,CAACyE,IANK;AAOzB/C,EAAAA,KAAK,EAAE1B,SAAS,CAACsE,MAPQ;AAQzBvC,EAAAA,QAAQ,EAAE/B,SAAS,CAACyE,IARK;AASzBzC,EAAAA,QAAQ,EAAEhC,SAAS,CAACyE,IATK;AAUzBxC,EAAAA,KAAK,EAAEjC,SAAS,CAACyE;AAVQ,CAA3B;AAaA,eAAejD,cAAf","sourcesContent":["import React, {useState, useEffect, useRef, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {map, pipe, join, filter, get, set} from 'lodash/fp';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport TitledCheckbox from '../titled-checkbox';\nimport Provider from '../../atom/provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setup,\n cockpit: style.cockpit,\n sidebar: style.sidebar\n};\n\nexport const useChoices = options => {\n const choicesRef = useRef(options);\n\n const getChoices = () => {\n return choicesRef.current;\n };\n\n const setChoices = choice => {\n const choices = set(`[${choice.i}].selected`, !choice.selected, getChoices());\n\n choicesRef.current = choices.filter(c => c.selected);\n };\n\n return [getChoices, setChoices];\n};\n\nconst SelectMultiple = (\n {\n title,\n options,\n theme,\n placeholder,\n description,\n multiple,\n onChange,\n modified = false,\n required = false,\n error = false\n },\n {skin}\n) => {\n const [isOpened, updateIsOpened] = useState(false);\n const [getChoices, setChoices] = useChoices(options);\n const nodeRef = useRef(null);\n\n const defaultColor = get('common.primary', skin);\n const black = get('common.black', skin);\n\n const handleOnClick = useCallback(e => {\n e.preventDefault();\n e.stopPropagation();\n\n updateIsOpened(prev => !prev);\n }, []);\n\n const closeHandle = useCallback(e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n updateIsOpened(false);\n }\n }, []);\n\n const handleChange = useCallback(\n choice => {\n // if multiple prop is turned on\n // we return all selected choices\n if (multiple) {\n setChoices(choice);\n\n return onChange(getChoices());\n }\n\n return onChange(choice);\n },\n [setChoices, multiple, onChange]\n );\n\n useEffect(() => {\n document.addEventListener('click', closeHandle);\n document.addEventListener('touchstart', closeHandle);\n\n return () => {\n document.removeEventListener('click', closeHandle);\n document.removeEventListener('touchstart', closeHandle);\n };\n }, [closeHandle]);\n\n const lines = map.convert({cap: false})((choice, i) => {\n return (\n <li key={i} className={style.choice}>\n <TitledCheckbox onToggle={handleChange} choice={{...choice, i}} background={defaultColor} />\n </li>\n );\n }, options);\n\n const selection = pipe(filter({selected: true}), map('name'), join(', '))(options);\n\n const _title = title && `${title}${required ? ' *' : ''}`;\n\n const titleView = title ? <span className={style.title}>{_title} </span> : null;\n const isActive = isOpened === true;\n const mainClass = theme ? themeStyle[theme] : style.default;\n const behaviourClassName = getClassState(\n style.default,\n style.modified,\n style.error,\n modified,\n error\n );\n\n return (\n <div className={classnames(mainClass, behaviourClassName)} ref={nodeRef}>\n <label>\n {titleView}\n <div className={style.select} title={selection || placeholder} onClick={handleOnClick}>\n {selection || placeholder}\n <ArrowDown color={black} className={classnames(style.arrow, {[style.down]: isActive})} />\n </div>\n <div className={isActive ? style.activeChoices : style.choices}>\n <ul className={style.list}>{lines}</ul>\n </div>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nSelectMultiple.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelectMultiple.propTypes = {\n title: PropTypes.string,\n placeholder: PropTypes.string,\n description: PropTypes.string,\n options: PropTypes.arrayOf(TitledCheckbox.propTypes.choice),\n onChange: PropTypes.func,\n multiple: PropTypes.bool,\n theme: PropTypes.string,\n modified: PropTypes.bool,\n required: PropTypes.bool,\n error: PropTypes.bool\n};\n\nexport default SelectMultiple;\n"],"file":"index.js"}
@@ -2,58 +2,29 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
2
2
 
3
3
  import browserEnv from 'browser-env';
4
4
  import test from 'ava';
5
+ import flatten from 'lodash/fp/flatten';
5
6
  import React from 'react';
6
7
  import { mount, configure } from 'enzyme';
7
8
  import Adapter from 'enzyme-adapter-react-16';
8
- import SelectMultiple from '..';
9
+ import SelectMultiple, { useChoices } from '..';
9
10
  import defaultFixture from './fixtures/checked';
10
11
  browserEnv();
11
12
  configure({
12
13
  adapter: new Adapter()
13
14
  });
14
- test('should open and close list', t => {
15
- t.plan(8);
16
- const clickEvent = {
17
- preventDefault: () => t.pass(),
18
- stopPropagation: () => t.pass()
19
- };
20
- const props = defaultFixture.props;
21
- const wrapper = mount( /*#__PURE__*/React.createElement(SelectMultiple, props));
22
- const selectWrapper = wrapper.find('.select-multiple__select');
23
- t.is(wrapper.state().opened, false);
24
- t.is(selectWrapper.exists(), true);
25
- selectWrapper.simulate('click', clickEvent);
26
- t.is(wrapper.state().opened, true);
27
- selectWrapper.simulate('click', clickEvent);
28
- t.is(wrapper.state().opened, false);
29
- });
30
- test('should select choice', t => {
31
- t.plan(8);
32
- const clickEvent = {
33
- preventDefault: () => t.pass(),
34
- stopPropagation: () => t.pass()
15
+
16
+ const setup = options => {
17
+ const returnVal = [];
18
+
19
+ const TestComponent = () => {
20
+ returnVal.push(useChoices(options));
21
+ return null;
35
22
  };
36
23
 
37
- const props = _extends(_extends({}, defaultFixture.props), {}, {
38
- onChange: evt => {
39
- t.is(evt.value, 'digital');
40
- t.pass();
41
- }
42
- });
24
+ mount( /*#__PURE__*/React.createElement(TestComponent, null));
25
+ return flatten(returnVal);
26
+ };
43
27
 
44
- const wrapper = mount( /*#__PURE__*/React.createElement(SelectMultiple, props));
45
- const selectWrapper = wrapper.find('.select-multiple__select');
46
- wrapper.update();
47
- t.is(wrapper.state().opened, false);
48
- t.is(selectWrapper.exists(), true);
49
- selectWrapper.simulate('click', clickEvent);
50
- wrapper.update();
51
- t.is(wrapper.state().opened, true);
52
- const checkbox = wrapper.find('[checked=false]').first();
53
- checkbox.simulate('change');
54
- t.is(wrapper.state().opened, true);
55
- wrapper.update();
56
- });
57
28
  test('should select array of choices when props.multiple is set', t => {
58
29
  t.plan(2);
59
30
 
@@ -72,51 +43,21 @@ test('should select array of choices when props.multiple is set', t => {
72
43
  props
73
44
  });
74
45
  });
75
- test('should click outside', t => {
76
- t.plan(10);
77
- const clickEvent = {
78
- preventDefault: () => t.pass(),
79
- stopPropagation: () => t.pass()
80
- };
81
- const props = defaultFixture.props;
82
- const wrapper = mount( /*#__PURE__*/React.createElement(SelectMultiple, props));
83
- const selectWrapper = wrapper.find('.select-multiple__select');
84
- const instance = wrapper.instance();
85
- wrapper.update();
86
- t.is(wrapper.state().opened, false);
87
- t.is(selectWrapper.exists(), true);
88
- selectWrapper.simulate('click', clickEvent);
89
- wrapper.update();
90
- t.is(wrapper.state().opened, true);
91
- instance.closeHandle({
92
- target: null
93
- });
94
- t.is(wrapper.state().opened, false);
95
- selectWrapper.simulate('click', clickEvent);
96
- wrapper.update();
97
- t.is(wrapper.state().opened, true);
98
- instance.closeHandle({
99
- target: selectWrapper.getDOMNode()
100
- });
101
- t.is(wrapper.state().opened, true);
102
- wrapper.update();
103
- wrapper.unmount();
104
- });
105
46
  test('should return choices (getter)', t => {
106
47
  const props = _extends({}, defaultFixture.props);
107
48
 
108
- const wrapper = mount( /*#__PURE__*/React.createElement(SelectMultiple, props));
109
- t.is(wrapper.instance().choices.length, 4, 'not returning expected choices');
49
+ const [getChoices] = setup(props.options);
50
+ t.is(getChoices().length, 4, 'not returning expected choices');
110
51
  });
111
52
  test('should set current choice (setter)', t => {
112
53
  const props = _extends({}, defaultFixture.props);
113
54
 
114
- const wrapper = mount( /*#__PURE__*/React.createElement(SelectMultiple, props));
115
- const instance = wrapper.instance();
116
- t.is(instance.choices[0].selected, false, 'not setting correctly expected value for choice[0]');
117
- instance.choices = _extends(_extends({}, props.options[0]), {}, {
55
+ const [getChoices, setChoices] = setup(props.options);
56
+ const choices = getChoices();
57
+ t.is(choices[0].selected, false, 'not setting correctly expected value for choice[0]');
58
+ setChoices(_extends(_extends({}, props.options[0]), {}, {
118
59
  i: 0
119
- });
120
- t.is(instance.choices[0].selected, true, 'not updating correctly expected value for choice[0]');
60
+ }));
61
+ t.is(getChoices()[0].selected, true, 'not updating correctly expected value for choice[0]');
121
62
  });
122
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/molecule/select-multiple/test/index.js"],"names":["browserEnv","test","React","mount","configure","Adapter","SelectMultiple","defaultFixture","adapter","t","plan","clickEvent","preventDefault","pass","stopPropagation","props","wrapper","selectWrapper","find","is","state","opened","exists","simulate","onChange","evt","value","update","checkbox","first","multiple","choices","true","Array","isArray","instance","closeHandle","target","getDOMNode","unmount","length","selected","options","i"],"mappings":";;AAAA,OAAOA,UAAP,MAAuB,aAAvB;AACA,OAAOC,IAAP,MAAiB,KAAjB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAAQC,KAAR,EAAeC,SAAf,QAA+B,QAA/B;AACA,OAAOC,OAAP,MAAoB,yBAApB;AACA,OAAOC,cAAP,MAA2B,IAA3B;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AAEAP,UAAU;AACVI,SAAS,CAAC;AAACI,EAAAA,OAAO,EAAE,IAAIH,OAAJ;AAAV,CAAD,CAAT;AAEAJ,IAAI,CAAC,4BAAD,EAA+BQ,CAAC,IAAI;AACtCA,EAAAA,CAAC,CAACC,IAAF,CAAO,CAAP;AAEA,QAAMC,UAAU,GAAG;AAACC,IAAAA,cAAc,EAAE,MAAMH,CAAC,CAACI,IAAF,EAAvB;AAAiCC,IAAAA,eAAe,EAAE,MAAML,CAAC,CAACI,IAAF;AAAxD,GAAnB;AACA,QAAME,KAAK,GAAGR,cAAc,CAACQ,KAA7B;AACA,QAAMC,OAAO,GAAGb,KAAK,eAAC,oBAAC,cAAD,EAAoBY,KAApB,CAAD,CAArB;AACA,QAAME,aAAa,GAAGD,OAAO,CAACE,IAAR,CAAa,0BAAb,CAAtB;AAEAT,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACI,KAAR,GAAgBC,MAArB,EAA6B,KAA7B;AAEAZ,EAAAA,CAAC,CAACU,EAAF,CAAKF,aAAa,CAACK,MAAd,EAAL,EAA6B,IAA7B;AAEAL,EAAAA,aAAa,CAACM,QAAd,CAAuB,OAAvB,EAAgCZ,UAAhC;AAEAF,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACI,KAAR,GAAgBC,MAArB,EAA6B,IAA7B;AAEAJ,EAAAA,aAAa,CAACM,QAAd,CAAuB,OAAvB,EAAgCZ,UAAhC;AAEAF,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACI,KAAR,GAAgBC,MAArB,EAA6B,KAA7B;AACD,CAnBG,CAAJ;AAqBApB,IAAI,CAAC,sBAAD,EAAyBQ,CAAC,IAAI;AAChCA,EAAAA,CAAC,CAACC,IAAF,CAAO,CAAP;AAEA,QAAMC,UAAU,GAAG;AAACC,IAAAA,cAAc,EAAE,MAAMH,CAAC,CAACI,IAAF,EAAvB;AAAiCC,IAAAA,eAAe,EAAE,MAAML,CAAC,CAACI,IAAF;AAAxD,GAAnB;;AACA,QAAME,KAAK,yBACNR,cAAc,CAACQ,KADT;AAETS,IAAAA,QAAQ,EAAEC,GAAG,IAAI;AACfhB,MAAAA,CAAC,CAACU,EAAF,CAAKM,GAAG,CAACC,KAAT,EAAgB,SAAhB;AAEAjB,MAAAA,CAAC,CAACI,IAAF;AACD;AANQ,IAAX;;AAQA,QAAMG,OAAO,GAAGb,KAAK,eAAC,oBAAC,cAAD,EAAoBY,KAApB,CAAD,CAArB;AACA,QAAME,aAAa,GAAGD,OAAO,CAACE,IAAR,CAAa,0BAAb,CAAtB;AAEAF,EAAAA,OAAO,CAACW,MAAR;AAEAlB,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACI,KAAR,GAAgBC,MAArB,EAA6B,KAA7B;AAEAZ,EAAAA,CAAC,CAACU,EAAF,CAAKF,aAAa,CAACK,MAAd,EAAL,EAA6B,IAA7B;AAEAL,EAAAA,aAAa,CAACM,QAAd,CAAuB,OAAvB,EAAgCZ,UAAhC;AAEAK,EAAAA,OAAO,CAACW,MAAR;AAEAlB,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACI,KAAR,GAAgBC,MAArB,EAA6B,IAA7B;AAEA,QAAMO,QAAQ,GAAGZ,OAAO,CAACE,IAAR,CAAa,iBAAb,EAAgCW,KAAhC,EAAjB;AAEAD,EAAAA,QAAQ,CAACL,QAAT,CAAkB,QAAlB;AAEAd,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACI,KAAR,GAAgBC,MAArB,EAA6B,IAA7B;AAEAL,EAAAA,OAAO,CAACW,MAAR;AACD,CAlCG,CAAJ;AAoCA1B,IAAI,CAAC,2DAAD,EAA8DQ,CAAC,IAAI;AACrEA,EAAAA,CAAC,CAACC,IAAF,CAAO,CAAP;;AACA,QAAMK,KAAK,yBACNR,cAAc,CAACQ,KADT;AAETe,IAAAA,QAAQ,EAAE,IAFD;AAGTN,IAAAA,QAAQ,EAAEO,OAAO,IAAI;AACnBtB,MAAAA,CAAC,CAACuB,IAAF,CAAOC,KAAK,CAACC,OAAN,CAAcH,OAAd,CAAP,EAA+B,QAA/B;AACAtB,MAAAA,CAAC,CAACI,IAAF;AACD;AANQ,IAAX;;AASA,QAAMG,OAAO,GAAGb,KAAK,eAAC,oBAAC,cAAD,EAAoBY,KAApB,CAAD,CAArB;AAEAC,EAAAA,OAAO,CAACW,MAAR;AAEA,QAAMC,QAAQ,GAAGZ,OAAO,CAACE,IAAR,CAAa,iBAAb,EAAgCW,KAAhC,EAAjB;AAEAD,EAAAA,QAAQ,CAACL,QAAT,CAAkB,QAAlB,EAA4B;AAACR,IAAAA;AAAD,GAA5B;AACD,CAlBG,CAAJ;AAoBAd,IAAI,CAAC,sBAAD,EAAyBQ,CAAC,IAAI;AAChCA,EAAAA,CAAC,CAACC,IAAF,CAAO,EAAP;AAEA,QAAMC,UAAU,GAAG;AAACC,IAAAA,cAAc,EAAE,MAAMH,CAAC,CAACI,IAAF,EAAvB;AAAiCC,IAAAA,eAAe,EAAE,MAAML,CAAC,CAACI,IAAF;AAAxD,GAAnB;AACA,QAAME,KAAK,GAAGR,cAAc,CAACQ,KAA7B;AACA,QAAMC,OAAO,GAAGb,KAAK,eAAC,oBAAC,cAAD,EAAoBY,KAApB,CAAD,CAArB;AACA,QAAME,aAAa,GAAGD,OAAO,CAACE,IAAR,CAAa,0BAAb,CAAtB;AACA,QAAMiB,QAAQ,GAAGnB,OAAO,CAACmB,QAAR,EAAjB;AAEAnB,EAAAA,OAAO,CAACW,MAAR;AAEAlB,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACI,KAAR,GAAgBC,MAArB,EAA6B,KAA7B;AAEAZ,EAAAA,CAAC,CAACU,EAAF,CAAKF,aAAa,CAACK,MAAd,EAAL,EAA6B,IAA7B;AAEAL,EAAAA,aAAa,CAACM,QAAd,CAAuB,OAAvB,EAAgCZ,UAAhC;AAEAK,EAAAA,OAAO,CAACW,MAAR;AAEAlB,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACI,KAAR,GAAgBC,MAArB,EAA6B,IAA7B;AAEAc,EAAAA,QAAQ,CAACC,WAAT,CAAqB;AAACC,IAAAA,MAAM,EAAE;AAAT,GAArB;AAEA5B,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACI,KAAR,GAAgBC,MAArB,EAA6B,KAA7B;AAEAJ,EAAAA,aAAa,CAACM,QAAd,CAAuB,OAAvB,EAAgCZ,UAAhC;AAEAK,EAAAA,OAAO,CAACW,MAAR;AAEAlB,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACI,KAAR,GAAgBC,MAArB,EAA6B,IAA7B;AAEAc,EAAAA,QAAQ,CAACC,WAAT,CAAqB;AAACC,IAAAA,MAAM,EAAEpB,aAAa,CAACqB,UAAd;AAAT,GAArB;AAEA7B,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACI,KAAR,GAAgBC,MAArB,EAA6B,IAA7B;AAEAL,EAAAA,OAAO,CAACW,MAAR;AAEAX,EAAAA,OAAO,CAACuB,OAAR;AACD,CAtCG,CAAJ;AAwCAtC,IAAI,CAAC,gCAAD,EAAmCQ,CAAC,IAAI;AAC1C,QAAMM,KAAK,gBAAOR,cAAc,CAACQ,KAAtB,CAAX;;AACA,QAAMC,OAAO,GAAGb,KAAK,eAAC,oBAAC,cAAD,EAAoBY,KAApB,CAAD,CAArB;AAEAN,EAAAA,CAAC,CAACU,EAAF,CAAKH,OAAO,CAACmB,QAAR,GAAmBJ,OAAnB,CAA2BS,MAAhC,EAAwC,CAAxC,EAA2C,gCAA3C;AACD,CALG,CAAJ;AAOAvC,IAAI,CAAC,oCAAD,EAAuCQ,CAAC,IAAI;AAC9C,QAAMM,KAAK,gBAAOR,cAAc,CAACQ,KAAtB,CAAX;;AACA,QAAMC,OAAO,GAAGb,KAAK,eAAC,oBAAC,cAAD,EAAoBY,KAApB,CAAD,CAArB;AACA,QAAMoB,QAAQ,GAAGnB,OAAO,CAACmB,QAAR,EAAjB;AAEA1B,EAAAA,CAAC,CAACU,EAAF,CAAKgB,QAAQ,CAACJ,OAAT,CAAiB,CAAjB,EAAoBU,QAAzB,EAAmC,KAAnC,EAA0C,oDAA1C;AAEAN,EAAAA,QAAQ,CAACJ,OAAT,yBAAuBhB,KAAK,CAAC2B,OAAN,CAAc,CAAd,CAAvB;AAAyCC,IAAAA,CAAC,EAAE;AAA5C;AAEAlC,EAAAA,CAAC,CAACU,EAAF,CAAKgB,QAAQ,CAACJ,OAAT,CAAiB,CAAjB,EAAoBU,QAAzB,EAAmC,IAAnC,EAAyC,qDAAzC;AACD,CAVG,CAAJ","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {mount, configure} from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport SelectMultiple from '..';\nimport defaultFixture from './fixtures/checked';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\n\ntest('should open and close list', t => {\n t.plan(8);\n\n const clickEvent = {preventDefault: () => t.pass(), stopPropagation: () => t.pass()};\n const props = defaultFixture.props;\n const wrapper = mount(<SelectMultiple {...props} />);\n const selectWrapper = wrapper.find('.select-multiple__select');\n\n t.is(wrapper.state().opened, false);\n\n t.is(selectWrapper.exists(), true);\n\n selectWrapper.simulate('click', clickEvent);\n\n t.is(wrapper.state().opened, true);\n\n selectWrapper.simulate('click', clickEvent);\n\n t.is(wrapper.state().opened, false);\n});\n\ntest('should select choice', t => {\n t.plan(8);\n\n const clickEvent = {preventDefault: () => t.pass(), stopPropagation: () => t.pass()};\n const props = {\n ...defaultFixture.props,\n onChange: evt => {\n t.is(evt.value, 'digital');\n\n t.pass();\n }\n };\n const wrapper = mount(<SelectMultiple {...props} />);\n const selectWrapper = wrapper.find('.select-multiple__select');\n\n wrapper.update();\n\n t.is(wrapper.state().opened, false);\n\n t.is(selectWrapper.exists(), true);\n\n selectWrapper.simulate('click', clickEvent);\n\n wrapper.update();\n\n t.is(wrapper.state().opened, true);\n\n const checkbox = wrapper.find('[checked=false]').first();\n\n checkbox.simulate('change');\n\n t.is(wrapper.state().opened, true);\n\n wrapper.update();\n});\n\ntest('should select array of choices when props.multiple is set', t => {\n t.plan(2);\n const props = {\n ...defaultFixture.props,\n multiple: true,\n onChange: choices => {\n t.true(Array.isArray(choices), 'dffdff');\n t.pass();\n }\n };\n\n const wrapper = mount(<SelectMultiple {...props} />);\n\n wrapper.update();\n\n const checkbox = wrapper.find('[checked=false]').first();\n\n checkbox.simulate('change', {props});\n});\n\ntest('should click outside', t => {\n t.plan(10);\n\n const clickEvent = {preventDefault: () => t.pass(), stopPropagation: () => t.pass()};\n const props = defaultFixture.props;\n const wrapper = mount(<SelectMultiple {...props} />);\n const selectWrapper = wrapper.find('.select-multiple__select');\n const instance = wrapper.instance();\n\n wrapper.update();\n\n t.is(wrapper.state().opened, false);\n\n t.is(selectWrapper.exists(), true);\n\n selectWrapper.simulate('click', clickEvent);\n\n wrapper.update();\n\n t.is(wrapper.state().opened, true);\n\n instance.closeHandle({target: null});\n\n t.is(wrapper.state().opened, false);\n\n selectWrapper.simulate('click', clickEvent);\n\n wrapper.update();\n\n t.is(wrapper.state().opened, true);\n\n instance.closeHandle({target: selectWrapper.getDOMNode()});\n\n t.is(wrapper.state().opened, true);\n\n wrapper.update();\n\n wrapper.unmount();\n});\n\ntest('should return choices (getter)', t => {\n const props = {...defaultFixture.props};\n const wrapper = mount(<SelectMultiple {...props} />);\n\n t.is(wrapper.instance().choices.length, 4, 'not returning expected choices');\n});\n\ntest('should set current choice (setter)', t => {\n const props = {...defaultFixture.props};\n const wrapper = mount(<SelectMultiple {...props} />);\n const instance = wrapper.instance();\n\n t.is(instance.choices[0].selected, false, 'not setting correctly expected value for choice[0]');\n\n instance.choices = {...props.options[0], i: 0};\n\n t.is(instance.choices[0].selected, true, 'not updating correctly expected value for choice[0]');\n});\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/molecule/select-multiple/test/index.js"],"names":["browserEnv","test","flatten","React","mount","configure","Adapter","SelectMultiple","useChoices","defaultFixture","adapter","setup","options","returnVal","TestComponent","push","t","plan","props","multiple","onChange","choices","true","Array","isArray","pass","wrapper","update","checkbox","find","first","simulate","getChoices","is","length","setChoices","selected","i"],"mappings":";;AAAA,OAAOA,UAAP,MAAuB,aAAvB;AACA,OAAOC,IAAP,MAAiB,KAAjB;AACA,OAAOC,OAAP,MAAoB,mBAApB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAAQC,KAAR,EAAeC,SAAf,QAA+B,QAA/B;AACA,OAAOC,OAAP,MAAoB,yBAApB;AACA,OAAOC,cAAP,IAAwBC,UAAxB,QAAyC,IAAzC;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AAEAT,UAAU;AACVK,SAAS,CAAC;AAACK,EAAAA,OAAO,EAAE,IAAIJ,OAAJ;AAAV,CAAD,CAAT;;AAEA,MAAMK,KAAK,GAAGC,OAAO,IAAI;AACvB,QAAMC,SAAS,GAAG,EAAlB;;AACA,QAAMC,aAAa,GAAG,MAAM;AAC1BD,IAAAA,SAAS,CAACE,IAAV,CAAeP,UAAU,CAACI,OAAD,CAAzB;AACA,WAAO,IAAP;AACD,GAHD;;AAKAR,EAAAA,KAAK,eAAC,oBAAC,aAAD,OAAD,CAAL;AACA,SAAOF,OAAO,CAACW,SAAD,CAAd;AACD,CATD;;AAWAZ,IAAI,CAAC,2DAAD,EAA8De,CAAC,IAAI;AACrEA,EAAAA,CAAC,CAACC,IAAF,CAAO,CAAP;;AACA,QAAMC,KAAK,yBACNT,cAAc,CAACS,KADT;AAETC,IAAAA,QAAQ,EAAE,IAFD;AAGTC,IAAAA,QAAQ,EAAEC,OAAO,IAAI;AACnBL,MAAAA,CAAC,CAACM,IAAF,CAAOC,KAAK,CAACC,OAAN,CAAcH,OAAd,CAAP,EAA+B,QAA/B;AACAL,MAAAA,CAAC,CAACS,IAAF;AACD;AANQ,IAAX;;AASA,QAAMC,OAAO,GAAGtB,KAAK,eAAC,oBAAC,cAAD,EAAoBc,KAApB,CAAD,CAArB;AAEAQ,EAAAA,OAAO,CAACC,MAAR;AAEA,QAAMC,QAAQ,GAAGF,OAAO,CAACG,IAAR,CAAa,iBAAb,EAAgCC,KAAhC,EAAjB;AAEAF,EAAAA,QAAQ,CAACG,QAAT,CAAkB,QAAlB,EAA4B;AAACb,IAAAA;AAAD,GAA5B;AACD,CAlBG,CAAJ;AAoBAjB,IAAI,CAAC,gCAAD,EAAmCe,CAAC,IAAI;AAC1C,QAAME,KAAK,gBAAOT,cAAc,CAACS,KAAtB,CAAX;;AACA,QAAM,CAACc,UAAD,IAAerB,KAAK,CAACO,KAAK,CAACN,OAAP,CAA1B;AAEAI,EAAAA,CAAC,CAACiB,EAAF,CAAKD,UAAU,GAAGE,MAAlB,EAA0B,CAA1B,EAA6B,gCAA7B;AACD,CALG,CAAJ;AAOAjC,IAAI,CAAC,oCAAD,EAAuCe,CAAC,IAAI;AAC9C,QAAME,KAAK,gBAAOT,cAAc,CAACS,KAAtB,CAAX;;AACA,QAAM,CAACc,UAAD,EAAaG,UAAb,IAA2BxB,KAAK,CAACO,KAAK,CAACN,OAAP,CAAtC;AACA,QAAMS,OAAO,GAAGW,UAAU,EAA1B;AAEAhB,EAAAA,CAAC,CAACiB,EAAF,CAAKZ,OAAO,CAAC,CAAD,CAAP,CAAWe,QAAhB,EAA0B,KAA1B,EAAiC,oDAAjC;AAEAD,EAAAA,UAAU,uBAAKjB,KAAK,CAACN,OAAN,CAAc,CAAd,CAAL;AAAuByB,IAAAA,CAAC,EAAE;AAA1B,KAAV;AAEArB,EAAAA,CAAC,CAACiB,EAAF,CAAKD,UAAU,GAAG,CAAH,CAAV,CAAgBI,QAArB,EAA+B,IAA/B,EAAqC,qDAArC;AACD,CAVG,CAAJ","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport flatten from 'lodash/fp/flatten';\nimport React from 'react';\nimport {mount, configure} from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport SelectMultiple, {useChoices} from '..';\nimport defaultFixture from './fixtures/checked';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\n\nconst setup = options => {\n const returnVal = [];\n const TestComponent = () => {\n returnVal.push(useChoices(options));\n return null;\n };\n\n mount(<TestComponent />);\n return flatten(returnVal);\n};\n\ntest('should select array of choices when props.multiple is set', t => {\n t.plan(2);\n const props = {\n ...defaultFixture.props,\n multiple: true,\n onChange: choices => {\n t.true(Array.isArray(choices), 'dffdff');\n t.pass();\n }\n };\n\n const wrapper = mount(<SelectMultiple {...props} />);\n\n wrapper.update();\n\n const checkbox = wrapper.find('[checked=false]').first();\n\n checkbox.simulate('change', {props});\n});\n\ntest('should return choices (getter)', t => {\n const props = {...defaultFixture.props};\n const [getChoices] = setup(props.options);\n\n t.is(getChoices().length, 4, 'not returning expected choices');\n});\n\ntest('should set current choice (setter)', t => {\n const props = {...defaultFixture.props};\n const [getChoices, setChoices] = setup(props.options);\n const choices = getChoices();\n\n t.is(choices[0].selected, false, 'not setting correctly expected value for choice[0]');\n\n setChoices({...props.options[0], i: 0});\n\n t.is(getChoices()[0].selected, true, 'not updating correctly expected value for choice[0]');\n});\n"],"file":"index.js"}
@@ -31,11 +31,14 @@ const buildTab = (tab, index) => {
31
31
 
32
32
  const VerticalTabs = props => {
33
33
  const {
34
- tabs
34
+ tabs,
35
+ className,
36
+ 'aria-label': ariaLabel
35
37
  } = props;
36
38
  const tabsList = tabs.map(buildTab);
37
39
  return /*#__PURE__*/React.createElement("ul", {
38
- className: style.wrapper
40
+ className: classnames([style.wrapper, className]),
41
+ title: ariaLabel
39
42
  }, tabsList);
40
43
  };
41
44
 
@@ -45,7 +48,9 @@ VerticalTabs.propTypes = process.env.NODE_ENV !== "production" ? {
45
48
  selected: PropTypes.bool,
46
49
  leftIcon: PropTypes.string,
47
50
  onClick: PropTypes.func
48
- }))
51
+ })),
52
+ className: PropTypes.string,
53
+ 'aria-label': PropTypes.string
49
54
  } : {};
50
55
  export default VerticalTabs;
51
56
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/vertical-tabs/index.js"],"names":["React","PropTypes","classnames","NovaSolidStatusCheckCircle2","CheckIcon","Link","style","LeftIcons","BlueValidatedCircle","buildTab","tab","index","title","selected","onClick","leftIcon","LeftIcon","VerticalTabs","props","tabs","tabsList","map","wrapper","propTypes","arrayOf","shape","children","bool","string","func"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,2BAA2B,IAAIC,SAAvC,QAAuD,0BAAvD;AAEA,OAAOC,IAAP,MAAiB,iBAAjB;AACA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,MAAMC,SAAS,GAAG;AAChBC,EAAAA,mBAAmB,EAAEJ;AADL,CAAlB;;AAIA,MAAMK,QAAQ,GAAG,CAACC,GAAD,EAAMC,KAAN,KAAgB;AAC/B,QAAM;AAACC,IAAAA,KAAD;AAAQC,IAAAA,QAAR;AAAkBC,IAAAA,OAAlB;AAA2BC,IAAAA;AAA3B,MAAuCL,GAA7C;AAEA,QAAMM,QAAQ,GAAGT,SAAS,CAACQ,QAAD,CAA1B;AACA,sBACE;AACE,iBAAY,gBAAe,WAAUH,KAAV,CAAiB,EAD9C;AAEE,IAAA,SAAS,EAAEV,UAAU,CAACI,KAAK,CAACI,GAAP,EAAYG,QAAQ,IAAIP,KAAK,CAACO,QAA9B,CAFvB;AAGE,IAAA,GAAG,EAAEF,KAHP;AAIE,IAAA,OAAO,EAAEG;AAJX,kBAME;AAAM,IAAA,SAAS,EAAER,KAAK,CAACM;AAAvB,KAA+BA,KAA/B,CANF,EAOGI,QAAQ,gBAAG,oBAAC,QAAD;AAAU,IAAA,SAAS,EAAEV,KAAK,CAACS;AAA3B,IAAH,GAA6C,IAPxD,CADF;AAWD,CAfD;;AAiBA,MAAME,YAAY,GAAGC,KAAK,IAAI;AAC5B,QAAM;AAACC,IAAAA;AAAD,MAASD,KAAf;AACA,QAAME,QAAQ,GAAGD,IAAI,CAACE,GAAL,CAASZ,QAAT,CAAjB;AAEA,sBAAO;AAAI,IAAA,SAAS,EAAEH,KAAK,CAACgB;AAArB,KAA+BF,QAA/B,CAAP;AACD,CALD;;AAOAH,YAAY,CAACM,SAAb,2CAAyB;AACvBJ,EAAAA,IAAI,EAAElB,SAAS,CAACuB,OAAV,CACJvB,SAAS,CAACwB,KAAV,CAAgB;AACdb,IAAAA,KAAK,EAAEP,IAAI,CAACkB,SAAL,CAAeG,QADR;AAEdb,IAAAA,QAAQ,EAAEZ,SAAS,CAAC0B,IAFN;AAGdZ,IAAAA,QAAQ,EAAEd,SAAS,CAAC2B,MAHN;AAIdd,IAAAA,OAAO,EAAEb,SAAS,CAAC4B;AAJL,GAAhB,CADI;AADiB,CAAzB;AAUA,eAAeZ,YAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {NovaSolidStatusCheckCircle2 as CheckIcon} from '@coorpacademy/nova-icons';\nimport {snakeCase} from 'lodash/fp';\nimport Link from '../../atom/link';\nimport style from './style.css';\n\nconst LeftIcons = {\n BlueValidatedCircle: CheckIcon\n};\n\nconst buildTab = (tab, index) => {\n const {title, selected, onClick, leftIcon} = tab;\n\n const LeftIcon = LeftIcons[leftIcon];\n return (\n <li\n data-name={`vertical_tab_${snakeCase(title)}`}\n className={classnames(style.tab, selected && style.selected)}\n key={index}\n onClick={onClick}\n >\n <span className={style.title}>{title}</span>\n {LeftIcon ? <LeftIcon className={style.leftIcon} /> : null}\n </li>\n );\n};\n\nconst VerticalTabs = props => {\n const {tabs} = props;\n const tabsList = tabs.map(buildTab);\n\n return <ul className={style.wrapper}>{tabsList}</ul>;\n};\n\nVerticalTabs.propTypes = {\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n title: Link.propTypes.children,\n selected: PropTypes.bool,\n leftIcon: PropTypes.string,\n onClick: PropTypes.func\n })\n )\n};\nexport default VerticalTabs;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/vertical-tabs/index.js"],"names":["React","PropTypes","classnames","NovaSolidStatusCheckCircle2","CheckIcon","Link","style","LeftIcons","BlueValidatedCircle","buildTab","tab","index","title","selected","onClick","leftIcon","LeftIcon","VerticalTabs","props","tabs","className","ariaLabel","tabsList","map","wrapper","propTypes","arrayOf","shape","children","bool","string","func"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,2BAA2B,IAAIC,SAAvC,QAAuD,0BAAvD;AAEA,OAAOC,IAAP,MAAiB,iBAAjB;AACA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,MAAMC,SAAS,GAAG;AAChBC,EAAAA,mBAAmB,EAAEJ;AADL,CAAlB;;AAIA,MAAMK,QAAQ,GAAG,CAACC,GAAD,EAAMC,KAAN,KAAgB;AAC/B,QAAM;AAACC,IAAAA,KAAD;AAAQC,IAAAA,QAAR;AAAkBC,IAAAA,OAAlB;AAA2BC,IAAAA;AAA3B,MAAuCL,GAA7C;AAEA,QAAMM,QAAQ,GAAGT,SAAS,CAACQ,QAAD,CAA1B;AACA,sBACE;AACE,iBAAY,gBAAe,WAAUH,KAAV,CAAiB,EAD9C;AAEE,IAAA,SAAS,EAAEV,UAAU,CAACI,KAAK,CAACI,GAAP,EAAYG,QAAQ,IAAIP,KAAK,CAACO,QAA9B,CAFvB;AAGE,IAAA,GAAG,EAAEF,KAHP;AAIE,IAAA,OAAO,EAAEG;AAJX,kBAME;AAAM,IAAA,SAAS,EAAER,KAAK,CAACM;AAAvB,KAA+BA,KAA/B,CANF,EAOGI,QAAQ,gBAAG,oBAAC,QAAD;AAAU,IAAA,SAAS,EAAEV,KAAK,CAACS;AAA3B,IAAH,GAA6C,IAPxD,CADF;AAWD,CAfD;;AAiBA,MAAME,YAAY,GAAGC,KAAK,IAAI;AAC5B,QAAM;AAACC,IAAAA,IAAD;AAAOC,IAAAA,SAAP;AAAkB,kBAAcC;AAAhC,MAA6CH,KAAnD;AACA,QAAMI,QAAQ,GAAGH,IAAI,CAACI,GAAL,CAASd,QAAT,CAAjB;AAEA,sBACE;AAAI,IAAA,SAAS,EAAEP,UAAU,CAAC,CAACI,KAAK,CAACkB,OAAP,EAAgBJ,SAAhB,CAAD,CAAzB;AAAuD,IAAA,KAAK,EAAEC;AAA9D,KACGC,QADH,CADF;AAKD,CATD;;AAWAL,YAAY,CAACQ,SAAb,2CAAyB;AACvBN,EAAAA,IAAI,EAAElB,SAAS,CAACyB,OAAV,CACJzB,SAAS,CAAC0B,KAAV,CAAgB;AACdf,IAAAA,KAAK,EAAEP,IAAI,CAACoB,SAAL,CAAeG,QADR;AAEdf,IAAAA,QAAQ,EAAEZ,SAAS,CAAC4B,IAFN;AAGdd,IAAAA,QAAQ,EAAEd,SAAS,CAAC6B,MAHN;AAIdhB,IAAAA,OAAO,EAAEb,SAAS,CAAC8B;AAJL,GAAhB,CADI,CADiB;AASvBX,EAAAA,SAAS,EAAEnB,SAAS,CAAC6B,MATE;AAUvB,gBAAc7B,SAAS,CAAC6B;AAVD,CAAzB;AAYA,eAAeb,YAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {NovaSolidStatusCheckCircle2 as CheckIcon} from '@coorpacademy/nova-icons';\nimport {snakeCase} from 'lodash/fp';\nimport Link from '../../atom/link';\nimport style from './style.css';\n\nconst LeftIcons = {\n BlueValidatedCircle: CheckIcon\n};\n\nconst buildTab = (tab, index) => {\n const {title, selected, onClick, leftIcon} = tab;\n\n const LeftIcon = LeftIcons[leftIcon];\n return (\n <li\n data-name={`vertical_tab_${snakeCase(title)}`}\n className={classnames(style.tab, selected && style.selected)}\n key={index}\n onClick={onClick}\n >\n <span className={style.title}>{title}</span>\n {LeftIcon ? <LeftIcon className={style.leftIcon} /> : null}\n </li>\n );\n};\n\nconst VerticalTabs = props => {\n const {tabs, className, 'aria-label': ariaLabel} = props;\n const tabsList = tabs.map(buildTab);\n\n return (\n <ul className={classnames([style.wrapper, className])} title={ariaLabel}>\n {tabsList}\n </ul>\n );\n};\n\nVerticalTabs.propTypes = {\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n title: Link.propTypes.children,\n selected: PropTypes.bool,\n leftIcon: PropTypes.string,\n onClick: PropTypes.func\n })\n ),\n className: PropTypes.string,\n 'aria-label': PropTypes.string\n};\nexport default VerticalTabs;\n"],"file":"index.js"}
@@ -35,7 +35,8 @@ export default {
35
35
  leftIcon: '',
36
36
  onClick: () => console.log('click'),
37
37
  selected: false
38
- }]
38
+ }],
39
+ 'aria-label': 'Languages list'
39
40
  }
40
41
  };
41
42
  //# sourceMappingURL=default.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/molecule/vertical-tabs/test/fixtures/default.js"],"names":["props","tabs","title","leftIcon","onClick","console","log","selected"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,CACJ;AACEC,MAAAA,KAAK,EAAE,aADT;AAEEC,MAAAA,QAAQ,EAAE,qBAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KADI,EAOJ;AACEL,MAAAA,KAAK,EAAE,cADT;AAEEC,MAAAA,QAAQ,EAAE,qBAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KAPI,EAaJ;AACEL,MAAAA,KAAK,EAAE,cADT;AAEEC,MAAAA,QAAQ,EAAE,qBAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KAbI,EAmBJ;AACEL,MAAAA,KAAK,EAAE,aADT;AAEEC,MAAAA,QAAQ,EAAE,EAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KAnBI,EAyBJ;AACEL,MAAAA,KAAK,EAAE,cADT;AAEEC,MAAAA,QAAQ,EAAE,EAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KAzBI,EA+BJ;AACEL,MAAAA,KAAK,EAAE,aADT;AAEEC,MAAAA,QAAQ,EAAE,EAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KA/BI,EAqCJ;AACEL,MAAAA,KAAK,EAAE,cADT;AAEEC,MAAAA,QAAQ,EAAE,EAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KArCI;AADD;AADM,CAAf","sourcesContent":["export default {\n props: {\n tabs: [\n {\n title: '🇫🇷 French',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇪🇸 Spanish',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇮🇹 Italian',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇩🇪 German',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇷🇺 Russian',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇵🇱 Polish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇹🇷 Turkish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n }\n ]\n }\n};\n"],"file":"default.js"}
1
+ {"version":3,"sources":["../../../../../src/molecule/vertical-tabs/test/fixtures/default.js"],"names":["props","tabs","title","leftIcon","onClick","console","log","selected"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,CACJ;AACEC,MAAAA,KAAK,EAAE,aADT;AAEEC,MAAAA,QAAQ,EAAE,qBAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KADI,EAOJ;AACEL,MAAAA,KAAK,EAAE,cADT;AAEEC,MAAAA,QAAQ,EAAE,qBAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KAPI,EAaJ;AACEL,MAAAA,KAAK,EAAE,cADT;AAEEC,MAAAA,QAAQ,EAAE,qBAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KAbI,EAmBJ;AACEL,MAAAA,KAAK,EAAE,aADT;AAEEC,MAAAA,QAAQ,EAAE,EAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KAnBI,EAyBJ;AACEL,MAAAA,KAAK,EAAE,cADT;AAEEC,MAAAA,QAAQ,EAAE,EAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KAzBI,EA+BJ;AACEL,MAAAA,KAAK,EAAE,aADT;AAEEC,MAAAA,QAAQ,EAAE,EAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KA/BI,EAqCJ;AACEL,MAAAA,KAAK,EAAE,cADT;AAEEC,MAAAA,QAAQ,EAAE,EAFZ;AAGEC,MAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ,CAHjB;AAIEC,MAAAA,QAAQ,EAAE;AAJZ,KArCI,CADD;AA6CL,kBAAc;AA7CT;AADM,CAAf","sourcesContent":["export default {\n props: {\n tabs: [\n {\n title: '🇫🇷 French',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇪🇸 Spanish',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇮🇹 Italian',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇩🇪 German',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇷🇺 Russian',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇵🇱 Polish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇹🇷 Turkish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n }\n ],\n 'aria-label': 'Languages list'\n }\n};\n"],"file":"default.js"}
@@ -75,7 +75,8 @@ export default {
75
75
  leftIcon: '',
76
76
  onClick: () => console.log('click'),
77
77
  selected: false
78
- }]
78
+ }],
79
+ 'aria-label': 'Languages list'
79
80
  }
80
81
  };
81
82
  //# sourceMappingURL=with-selected-item.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/molecule/vertical-tabs/test/fixtures/with-selected-item.js"],"names":["props","tabs","title","leftIcon","onClick","console","log","selected"],"mappings":"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","sourcesContent":["export default {\n props: {\n tabs: [\n {\n title: '🇫🇷 French',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: true\n },\n {\n title: '🇪🇸 Spanish',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇮🇹 Italian',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇩🇪 German',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇷🇺 Russian',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇵🇱 Polish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇹🇷 Turkish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇩🇪 German',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇷🇺 Russian',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇵🇱 Polish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇹🇷 Turkish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇩🇪 German',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇷🇺 Russian',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇵🇱 Polish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇹🇷 Turkish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n }\n ]\n }\n};\n"],"file":"with-selected-item.js"}
1
+ {"version":3,"sources":["../../../../../src/molecule/vertical-tabs/test/fixtures/with-selected-item.js"],"names":["props","tabs","title","leftIcon","onClick","console","log","selected"],"mappings":"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","sourcesContent":["export default {\n props: {\n tabs: [\n {\n title: '🇫🇷 French',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: true\n },\n {\n title: '🇪🇸 Spanish',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇮🇹 Italian',\n leftIcon: 'BlueValidatedCircle',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇩🇪 German',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇷🇺 Russian',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇵🇱 Polish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇹🇷 Turkish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇩🇪 German',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇷🇺 Russian',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇵🇱 Polish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇹🇷 Turkish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇩🇪 German',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇷🇺 Russian',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇵🇱 Polish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n },\n {\n title: '🇹🇷 Turkish',\n leftIcon: '',\n onClick: () => console.log('click'),\n selected: false\n }\n ],\n 'aria-label': 'Languages list'\n }\n};\n"],"file":"with-selected-item.js"}