@coorpacademy/components 11.40.15 → 11.40.16

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 (301) hide show
  1. package/es/atom/button/style.css +2 -2
  2. package/es/atom/button-menu/utils.d.ts +1 -1
  3. package/es/atom/checkbox-with-title/index.d.ts +25 -1
  4. package/es/atom/checkbox-with-title/index.d.ts.map +1 -1
  5. package/es/atom/checkbox-with-title/index.js +19 -2
  6. package/es/atom/checkbox-with-title/index.js.map +1 -1
  7. package/es/atom/chip/index.d.ts.map +1 -1
  8. package/es/atom/chip/index.js +4 -4
  9. package/es/atom/chip/index.js.map +1 -1
  10. package/es/atom/content-badge/style.css +2 -2
  11. package/es/atom/input-html/index.d.ts.map +1 -1
  12. package/es/atom/input-html/index.js +2 -1
  13. package/es/atom/input-html/index.js.map +1 -1
  14. package/es/atom/input-switch/index.d.ts +24 -1
  15. package/es/atom/input-switch/index.d.ts.map +1 -1
  16. package/es/atom/input-switch/index.js +18 -4
  17. package/es/atom/input-switch/index.js.map +1 -1
  18. package/es/atom/input-switch/style.css +3 -0
  19. package/es/atom/range/index.d.ts +35 -3
  20. package/es/atom/range/index.d.ts.map +1 -1
  21. package/es/atom/range/index.js +95 -20
  22. package/es/atom/range/index.js.map +1 -1
  23. package/es/atom/range/style.css +40 -2
  24. package/es/atom/resource-miniature/style.css +3 -3
  25. package/es/atom/status-item/index.native.js +1 -1
  26. package/es/atom/status-item/index.native.js.map +1 -1
  27. package/es/molecule/base-modal/index.d.ts.map +1 -1
  28. package/es/molecule/base-modal/index.js +11 -5
  29. package/es/molecule/base-modal/index.js.map +1 -1
  30. package/es/molecule/card/favorite.d.ts.map +1 -1
  31. package/es/molecule/card/favorite.js +15 -16
  32. package/es/molecule/card/favorite.js.map +1 -1
  33. package/es/molecule/card/notification.css +0 -6
  34. package/es/molecule/card/notification.d.ts.map +1 -1
  35. package/es/molecule/card/notification.js +12 -14
  36. package/es/molecule/card/notification.js.map +1 -1
  37. package/es/molecule/cm-popin/types.d.ts +2 -0
  38. package/es/molecule/cm-popin/types.d.ts.map +1 -1
  39. package/es/molecule/coorpmanager-base-banner/style.css +1 -1
  40. package/es/molecule/dashboard/cards-list/index.d.ts +9 -0
  41. package/es/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  42. package/es/molecule/dashboard/cards-list/index.js +5 -1
  43. package/es/molecule/dashboard/cards-list/index.js.map +1 -1
  44. package/es/molecule/dashboard/cards-list/style.css +1 -1
  45. package/es/molecule/draggable-list/index.d.ts +1 -0
  46. package/es/molecule/go1-banner/style.css +3 -3
  47. package/es/molecule/learning-priority-modal/index.js +1 -1
  48. package/es/molecule/learning-priority-modal/index.js.map +1 -1
  49. package/es/molecule/modal/style.css +3 -3
  50. package/es/molecule/multi-filter-panel/index.d.ts +42 -0
  51. package/es/molecule/multi-filter-panel/index.d.ts.map +1 -1
  52. package/es/molecule/multi-filter-panel/index.js +28 -15
  53. package/es/molecule/multi-filter-panel/index.js.map +1 -1
  54. package/es/molecule/multi-filter-panel/prop-types.d.ts +32 -5
  55. package/es/molecule/multi-filter-panel/prop-types.d.ts.map +1 -1
  56. package/es/molecule/multi-filter-panel/prop-types.js +4 -0
  57. package/es/molecule/multi-filter-panel/prop-types.js.map +1 -1
  58. package/es/molecule/questions/question-range/index.d.ts +6 -1
  59. package/es/molecule/quick-filters/index.js +3 -1
  60. package/es/molecule/quick-filters/index.js.map +1 -1
  61. package/es/molecule/quick-filters/style.css +7 -2
  62. package/es/molecule/tabs/index.d.ts +39 -0
  63. package/es/molecule/tabs/index.d.ts.map +1 -0
  64. package/es/molecule/tabs/index.js +69 -0
  65. package/es/molecule/tabs/index.js.map +1 -0
  66. package/es/molecule/tabs/style.css +28 -0
  67. package/es/molecule/title-and-checkbox-wrapper/index.d.ts +1 -0
  68. package/es/organism/brand-analytics/style.css +1 -1
  69. package/es/organism/brand-learning-priorities/index.d.ts +1 -0
  70. package/es/organism/content-skill-modal/index.d.ts +23 -0
  71. package/es/organism/content-skill-modal/index.d.ts.map +1 -1
  72. package/es/organism/content-skill-modal/types.d.ts +23 -0
  73. package/es/organism/content-skill-modal/types.d.ts.map +1 -1
  74. package/es/organism/filter-checkbox-and-search/index.d.ts +22 -0
  75. package/es/organism/filter-checkbox-and-search/index.d.ts.map +1 -1
  76. package/es/organism/filter-checkbox-and-search/index.js +21 -4
  77. package/es/organism/filter-checkbox-and-search/index.js.map +1 -1
  78. package/es/organism/filter-checkbox-and-search/props-types.d.ts +3 -0
  79. package/es/organism/filter-checkbox-and-search/props-types.d.ts.map +1 -1
  80. package/es/organism/filter-checkbox-and-search/props-types.js +1 -0
  81. package/es/organism/filter-checkbox-and-search/props-types.js.map +1 -1
  82. package/es/organism/filter-chip/index.d.ts +21 -0
  83. package/es/organism/filter-chip/index.d.ts.map +1 -1
  84. package/es/organism/filter-chip/index.js +14 -2
  85. package/es/organism/filter-chip/index.js.map +1 -1
  86. package/es/organism/filter-range/index.d.ts +28 -0
  87. package/es/organism/filter-range/index.d.ts.map +1 -0
  88. package/es/organism/filter-range/index.js +101 -0
  89. package/es/organism/filter-range/index.js.map +1 -0
  90. package/es/organism/filter-range/prop-types.d.ts +40 -0
  91. package/es/organism/filter-range/prop-types.d.ts.map +1 -0
  92. package/es/organism/filter-range/prop-types.js +20 -0
  93. package/es/organism/filter-range/prop-types.js.map +1 -0
  94. package/es/organism/filter-range/style.css +15 -0
  95. package/es/organism/filter-switch/index.d.ts +22 -0
  96. package/es/organism/filter-switch/index.d.ts.map +1 -1
  97. package/es/organism/filter-switch/index.js +18 -3
  98. package/es/organism/filter-switch/index.js.map +1 -1
  99. package/es/organism/filter-switch/prop-types.d.ts +2 -0
  100. package/es/organism/filter-switch/prop-types.d.ts.map +1 -1
  101. package/es/organism/filter-switch/prop-types.js +2 -1
  102. package/es/organism/filter-switch/prop-types.js.map +1 -1
  103. package/es/organism/list-item/index.d.ts +1 -0
  104. package/es/organism/list-items/index.d.ts +2 -0
  105. package/es/organism/list-items/style.css +1 -1
  106. package/es/organism/mooc-footer/style.css +2 -2
  107. package/es/organism/rewards-form/index.d.ts +1 -0
  108. package/es/organism/select-opponents/index.d.ts +1 -0
  109. package/es/organism/select-opponents/index.d.ts.map +1 -1
  110. package/es/organism/select-opponents/types.d.ts +1 -0
  111. package/es/organism/select-opponents/types.d.ts.map +1 -1
  112. package/es/organism/sidebar/style.css +3 -3
  113. package/es/organism/title-and-input/index.d.ts +1 -0
  114. package/es/organism/title-and-input/index.d.ts.map +1 -1
  115. package/es/organism/title-and-input/types.d.ts +1 -0
  116. package/es/organism/title-and-input/types.d.ts.map +1 -1
  117. package/es/organism/wizard-contents/index.d.ts +1 -0
  118. package/es/template/activity/stars-summary.css +2 -2
  119. package/es/template/app-player/loading/index.d.ts +2 -0
  120. package/es/template/app-player/player/index.d.ts +4 -0
  121. package/es/template/app-player/player/slides/index.d.ts +2 -0
  122. package/es/template/app-player/player/slides/index.d.ts.map +1 -1
  123. package/es/template/app-player/popin-correction/index.d.ts +2 -0
  124. package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
  125. package/es/template/app-player/popin-end/index.d.ts +11 -0
  126. package/es/template/app-player/popin-end/summary.d.ts +9 -0
  127. package/es/template/app-review/index.d.ts +2 -0
  128. package/es/template/app-review/index.d.ts.map +1 -1
  129. package/es/template/app-review/player/prop-types.d.ts +2 -0
  130. package/es/template/app-review/player/prop-types.d.ts.map +1 -1
  131. package/es/template/app-review/prop-types.d.ts +2 -0
  132. package/es/template/app-review/prop-types.d.ts.map +1 -1
  133. package/es/template/back-office/brand-update/index.d.ts +28 -0
  134. package/es/template/back-office/brand-update/utils.d.ts +1 -1
  135. package/es/template/common/dashboard/index.d.ts +4 -0
  136. package/es/template/common/search-page/index.d.ts +106 -21
  137. package/es/template/common/search-page/index.d.ts.map +1 -1
  138. package/es/template/common/search-page/index.js +76 -21
  139. package/es/template/common/search-page/index.js.map +1 -1
  140. package/es/template/common/search-page/style.css +52 -4
  141. package/es/template/external-course/index.d.ts +2 -0
  142. package/es/template/my-learning/index.d.ts +9 -0
  143. package/es/template/teams-dashboard/index.d.ts +9 -0
  144. package/es/util/external-content.js +2 -2
  145. package/es/util/external-content.js.map +1 -1
  146. package/es/variables/colors.css +6 -6
  147. package/es/variables/colors.d.ts +5 -4
  148. package/es/variables/colors.d.ts.map +1 -1
  149. package/es/variables/colors.js +5 -4
  150. package/es/variables/colors.js.map +1 -1
  151. package/lib/atom/button/style.css +2 -2
  152. package/lib/atom/button-menu/utils.d.ts +1 -1
  153. package/lib/atom/checkbox-with-title/index.d.ts +25 -1
  154. package/lib/atom/checkbox-with-title/index.d.ts.map +1 -1
  155. package/lib/atom/checkbox-with-title/index.js +19 -2
  156. package/lib/atom/checkbox-with-title/index.js.map +1 -1
  157. package/lib/atom/chip/index.d.ts.map +1 -1
  158. package/lib/atom/chip/index.js +4 -4
  159. package/lib/atom/chip/index.js.map +1 -1
  160. package/lib/atom/content-badge/style.css +2 -2
  161. package/lib/atom/input-html/index.d.ts.map +1 -1
  162. package/lib/atom/input-html/index.js +2 -1
  163. package/lib/atom/input-html/index.js.map +1 -1
  164. package/lib/atom/input-switch/index.d.ts +24 -1
  165. package/lib/atom/input-switch/index.d.ts.map +1 -1
  166. package/lib/atom/input-switch/index.js +18 -4
  167. package/lib/atom/input-switch/index.js.map +1 -1
  168. package/lib/atom/input-switch/style.css +3 -0
  169. package/lib/atom/range/index.d.ts +35 -3
  170. package/lib/atom/range/index.d.ts.map +1 -1
  171. package/lib/atom/range/index.js +95 -20
  172. package/lib/atom/range/index.js.map +1 -1
  173. package/lib/atom/range/style.css +40 -2
  174. package/lib/atom/resource-miniature/style.css +3 -3
  175. package/lib/atom/status-item/index.native.js +1 -1
  176. package/lib/atom/status-item/index.native.js.map +1 -1
  177. package/lib/molecule/base-modal/index.d.ts.map +1 -1
  178. package/lib/molecule/base-modal/index.js +11 -5
  179. package/lib/molecule/base-modal/index.js.map +1 -1
  180. package/lib/molecule/card/favorite.d.ts.map +1 -1
  181. package/lib/molecule/card/favorite.js +15 -16
  182. package/lib/molecule/card/favorite.js.map +1 -1
  183. package/lib/molecule/card/notification.css +0 -6
  184. package/lib/molecule/card/notification.d.ts.map +1 -1
  185. package/lib/molecule/card/notification.js +12 -14
  186. package/lib/molecule/card/notification.js.map +1 -1
  187. package/lib/molecule/cm-popin/types.d.ts +2 -0
  188. package/lib/molecule/cm-popin/types.d.ts.map +1 -1
  189. package/lib/molecule/coorpmanager-base-banner/style.css +1 -1
  190. package/lib/molecule/dashboard/cards-list/index.d.ts +9 -0
  191. package/lib/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  192. package/lib/molecule/dashboard/cards-list/index.js +5 -1
  193. package/lib/molecule/dashboard/cards-list/index.js.map +1 -1
  194. package/lib/molecule/dashboard/cards-list/style.css +1 -1
  195. package/lib/molecule/draggable-list/index.d.ts +1 -0
  196. package/lib/molecule/go1-banner/style.css +3 -3
  197. package/lib/molecule/learning-priority-modal/index.js +1 -1
  198. package/lib/molecule/learning-priority-modal/index.js.map +1 -1
  199. package/lib/molecule/modal/style.css +3 -3
  200. package/lib/molecule/multi-filter-panel/index.d.ts +42 -0
  201. package/lib/molecule/multi-filter-panel/index.d.ts.map +1 -1
  202. package/lib/molecule/multi-filter-panel/index.js +28 -15
  203. package/lib/molecule/multi-filter-panel/index.js.map +1 -1
  204. package/lib/molecule/multi-filter-panel/prop-types.d.ts +32 -5
  205. package/lib/molecule/multi-filter-panel/prop-types.d.ts.map +1 -1
  206. package/lib/molecule/multi-filter-panel/prop-types.js +4 -0
  207. package/lib/molecule/multi-filter-panel/prop-types.js.map +1 -1
  208. package/lib/molecule/questions/question-range/index.d.ts +6 -1
  209. package/lib/molecule/quick-filters/index.js +3 -1
  210. package/lib/molecule/quick-filters/index.js.map +1 -1
  211. package/lib/molecule/quick-filters/style.css +7 -2
  212. package/lib/molecule/tabs/index.d.ts +39 -0
  213. package/lib/molecule/tabs/index.d.ts.map +1 -0
  214. package/lib/molecule/tabs/index.js +74 -0
  215. package/lib/molecule/tabs/index.js.map +1 -0
  216. package/lib/molecule/tabs/style.css +28 -0
  217. package/lib/molecule/title-and-checkbox-wrapper/index.d.ts +1 -0
  218. package/lib/organism/brand-analytics/style.css +1 -1
  219. package/lib/organism/brand-learning-priorities/index.d.ts +1 -0
  220. package/lib/organism/content-skill-modal/index.d.ts +23 -0
  221. package/lib/organism/content-skill-modal/index.d.ts.map +1 -1
  222. package/lib/organism/content-skill-modal/types.d.ts +23 -0
  223. package/lib/organism/content-skill-modal/types.d.ts.map +1 -1
  224. package/lib/organism/filter-checkbox-and-search/index.d.ts +22 -0
  225. package/lib/organism/filter-checkbox-and-search/index.d.ts.map +1 -1
  226. package/lib/organism/filter-checkbox-and-search/index.js +21 -4
  227. package/lib/organism/filter-checkbox-and-search/index.js.map +1 -1
  228. package/lib/organism/filter-checkbox-and-search/props-types.d.ts +3 -0
  229. package/lib/organism/filter-checkbox-and-search/props-types.d.ts.map +1 -1
  230. package/lib/organism/filter-checkbox-and-search/props-types.js +1 -0
  231. package/lib/organism/filter-checkbox-and-search/props-types.js.map +1 -1
  232. package/lib/organism/filter-chip/index.d.ts +21 -0
  233. package/lib/organism/filter-chip/index.d.ts.map +1 -1
  234. package/lib/organism/filter-chip/index.js +14 -2
  235. package/lib/organism/filter-chip/index.js.map +1 -1
  236. package/lib/organism/filter-range/index.d.ts +28 -0
  237. package/lib/organism/filter-range/index.d.ts.map +1 -0
  238. package/lib/organism/filter-range/index.js +108 -0
  239. package/lib/organism/filter-range/index.js.map +1 -0
  240. package/lib/organism/filter-range/prop-types.d.ts +40 -0
  241. package/lib/organism/filter-range/prop-types.d.ts.map +1 -0
  242. package/lib/organism/filter-range/prop-types.js +25 -0
  243. package/lib/organism/filter-range/prop-types.js.map +1 -0
  244. package/lib/organism/filter-range/style.css +15 -0
  245. package/lib/organism/filter-switch/index.d.ts +22 -0
  246. package/lib/organism/filter-switch/index.d.ts.map +1 -1
  247. package/lib/organism/filter-switch/index.js +18 -3
  248. package/lib/organism/filter-switch/index.js.map +1 -1
  249. package/lib/organism/filter-switch/prop-types.d.ts +2 -0
  250. package/lib/organism/filter-switch/prop-types.d.ts.map +1 -1
  251. package/lib/organism/filter-switch/prop-types.js +2 -1
  252. package/lib/organism/filter-switch/prop-types.js.map +1 -1
  253. package/lib/organism/list-item/index.d.ts +1 -0
  254. package/lib/organism/list-items/index.d.ts +2 -0
  255. package/lib/organism/list-items/style.css +1 -1
  256. package/lib/organism/mooc-footer/style.css +2 -2
  257. package/lib/organism/rewards-form/index.d.ts +1 -0
  258. package/lib/organism/select-opponents/index.d.ts +1 -0
  259. package/lib/organism/select-opponents/index.d.ts.map +1 -1
  260. package/lib/organism/select-opponents/types.d.ts +1 -0
  261. package/lib/organism/select-opponents/types.d.ts.map +1 -1
  262. package/lib/organism/sidebar/style.css +3 -3
  263. package/lib/organism/title-and-input/index.d.ts +1 -0
  264. package/lib/organism/title-and-input/index.d.ts.map +1 -1
  265. package/lib/organism/title-and-input/types.d.ts +1 -0
  266. package/lib/organism/title-and-input/types.d.ts.map +1 -1
  267. package/lib/organism/wizard-contents/index.d.ts +1 -0
  268. package/lib/template/activity/stars-summary.css +2 -2
  269. package/lib/template/app-player/loading/index.d.ts +2 -0
  270. package/lib/template/app-player/player/index.d.ts +4 -0
  271. package/lib/template/app-player/player/slides/index.d.ts +2 -0
  272. package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
  273. package/lib/template/app-player/popin-correction/index.d.ts +2 -0
  274. package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
  275. package/lib/template/app-player/popin-end/index.d.ts +11 -0
  276. package/lib/template/app-player/popin-end/summary.d.ts +9 -0
  277. package/lib/template/app-review/index.d.ts +2 -0
  278. package/lib/template/app-review/index.d.ts.map +1 -1
  279. package/lib/template/app-review/player/prop-types.d.ts +2 -0
  280. package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
  281. package/lib/template/app-review/prop-types.d.ts +2 -0
  282. package/lib/template/app-review/prop-types.d.ts.map +1 -1
  283. package/lib/template/back-office/brand-update/index.d.ts +28 -0
  284. package/lib/template/back-office/brand-update/utils.d.ts +1 -1
  285. package/lib/template/common/dashboard/index.d.ts +4 -0
  286. package/lib/template/common/search-page/index.d.ts +106 -21
  287. package/lib/template/common/search-page/index.d.ts.map +1 -1
  288. package/lib/template/common/search-page/index.js +75 -20
  289. package/lib/template/common/search-page/index.js.map +1 -1
  290. package/lib/template/common/search-page/style.css +52 -4
  291. package/lib/template/external-course/index.d.ts +2 -0
  292. package/lib/template/my-learning/index.d.ts +9 -0
  293. package/lib/template/teams-dashboard/index.d.ts +9 -0
  294. package/lib/util/external-content.js +2 -2
  295. package/lib/util/external-content.js.map +1 -1
  296. package/lib/variables/colors.css +6 -6
  297. package/lib/variables/colors.d.ts +5 -4
  298. package/lib/variables/colors.d.ts.map +1 -1
  299. package/lib/variables/colors.js +5 -4
  300. package/lib/variables/colors.js.map +1 -1
  301. package/package.json +4 -2
@@ -2,11 +2,13 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
+ var _getOr2 = _interopRequireDefault(require("lodash/fp/getOr"));
5
6
  var _clamp2 = _interopRequireDefault(require("lodash/fp/clamp"));
6
7
  var _set2 = _interopRequireDefault(require("lodash/fp/set"));
7
8
  var _noop2 = _interopRequireDefault(require("lodash/fp/noop"));
8
9
  var _react = _interopRequireDefault(require("react"));
9
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _provider = _interopRequireDefault(require("../provider"));
10
12
  var _handle = _interopRequireDefault(require("./handle"));
11
13
  var _style = _interopRequireDefault(require("./style.css"));
12
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -20,11 +22,20 @@ const valueOnTrack = (track, x) => {
20
22
  const extractStateFromProps = props => {
21
23
  const {
22
24
  multi = false,
23
- value = multi ? [0, 1] : 0
25
+ value = multi ? [0, 1] : 0,
26
+ min = 0,
27
+ max = 1
24
28
  } = props;
29
+ const toNormalized = actualValue => (actualValue - min) / (max - min);
30
+ let normalizedValue;
31
+ if (multi) {
32
+ normalizedValue = Array.isArray(value) ? value.map(toNormalized) : [toNormalized(0), toNormalized(value)];
33
+ } else {
34
+ normalizedValue = toNormalized(value);
35
+ }
25
36
  return {
26
37
  multi,
27
- value: multi ? value : [0, value]
38
+ value: multi ? normalizedValue : [0, normalizedValue]
28
39
  };
29
40
  };
30
41
  const RenderHandles = props => {
@@ -77,6 +88,9 @@ RenderHandles.propTypes = process.env.NODE_ENV !== "production" ? {
77
88
  HammerForTestingMax: _handle.default.propTypes.HammerForTesting
78
89
  } : {};
79
90
  class Range extends _react.default.Component {
91
+ static contextTypes = {
92
+ skin: _provider.default.childContextTypes.skin
93
+ };
80
94
  static getDerivedStateFromProps(props, state) {
81
95
  const {
82
96
  pending
@@ -100,6 +114,20 @@ class Range extends _react.default.Component {
100
114
  setRefTrack(track) {
101
115
  this.track = track;
102
116
  }
117
+ normalizedToActual(normalizedValue) {
118
+ const {
119
+ min = 0,
120
+ max = 1
121
+ } = this.props;
122
+ return min + normalizedValue * (max - min);
123
+ }
124
+ roundToStep(value) {
125
+ const {
126
+ step = 0.1
127
+ } = this.props;
128
+ const precision = 10;
129
+ return Number((Math.round(value / step) * step).toFixed(precision));
130
+ }
103
131
  handleMinChange(e) {
104
132
  e.srcEvent.stopPropagation();
105
133
  e.srcEvent.preventDefault();
@@ -144,7 +172,8 @@ class Range extends _react.default.Component {
144
172
  multi = false
145
173
  } = this.props;
146
174
  const handle = pending ? onChange : onChangeEnd;
147
- return handle(multi ? newValues : newValues[1]);
175
+ const actualValues = newValues.map(val => this.roundToStep(this.normalizedToActual(val)));
176
+ return handle(multi ? actualValues : actualValues[1]);
148
177
  }
149
178
  handleClick(e) {
150
179
  e.stopPropagation();
@@ -153,8 +182,7 @@ class Range extends _react.default.Component {
153
182
  value: [left, right],
154
183
  multi
155
184
  } = this.state;
156
- const x = e.clientX;
157
- const newValue = valueOnTrack(this.track, x);
185
+ const newValue = valueOnTrack(this.track, e.clientX);
158
186
  if (!multi) return this.handleChange(newValue, 1, false);
159
187
  if (left === right) {
160
188
  const isClickToTheLeft = left - newValue > 0;
@@ -169,22 +197,34 @@ class Range extends _react.default.Component {
169
197
  value: [left, right],
170
198
  pending
171
199
  } = this.state;
200
+ const {
201
+ theme = 'default',
202
+ minLabel = 'Min',
203
+ maxLabel = 'Max',
204
+ min,
205
+ max,
206
+ minValueLabel,
207
+ maxValueLabel,
208
+ HammerForTestingMin,
209
+ HammerForTestingMax
210
+ } = this.props;
172
211
  const railWidth = right - left;
173
212
  const railLeft = left;
174
- const railStyle = {
175
- backgroundColor: '#9999A8',
213
+ const {
214
+ skin
215
+ } = this.context;
216
+ const primaryColor = (0, _getOr2.default)('#00B0FF', 'common.primary', skin);
217
+ const railStyle = theme === 'mooc' ? {
218
+ backgroundColor: primaryColor,
219
+ width: `${railWidth * 100}%`,
220
+ left: `${railLeft * 100}%`
221
+ } : {
176
222
  width: `${railWidth * 100}%`,
177
223
  left: `${railLeft * 100}%`
178
224
  };
179
- const {
180
- HammerForTestingMin,
181
- HammerForTestingMax
182
- } = this.props;
183
- return /*#__PURE__*/_react.default.createElement("div", {
184
- "data-testid": "slider",
185
- className: _style.default.containerWrapper,
186
- onClick: this.handleClick
187
- }, /*#__PURE__*/_react.default.createElement("div", {
225
+ const minActualValue = this.roundToStep(this.normalizedToActual(left));
226
+ const maxActualValue = this.roundToStep(this.normalizedToActual(right));
227
+ const sliderComponent = /*#__PURE__*/_react.default.createElement("div", {
188
228
  className: _style.default.container
189
229
  }, /*#__PURE__*/_react.default.createElement("div", {
190
230
  "data-testid": "track",
@@ -205,17 +245,52 @@ class Range extends _react.default.Component {
205
245
  onHandleMinChangeEnd: this.handleMinChangeEnd,
206
246
  onHandleMaxChange: this.handleMaxChange,
207
247
  onHandleMaxChangeEnd: this.handleMaxChangeEnd
208
- })));
248
+ }));
249
+ if (theme === 'mooc') {
250
+ return /*#__PURE__*/_react.default.createElement("div", {
251
+ "data-testid": "slider",
252
+ className: _style.default.containerWrapper
253
+ }, /*#__PURE__*/_react.default.createElement("div", {
254
+ onClick: this.handleClick
255
+ }, sliderComponent), /*#__PURE__*/_react.default.createElement("div", {
256
+ className: _style.default.inputsRow
257
+ }, multi ? /*#__PURE__*/_react.default.createElement("div", {
258
+ className: _style.default.moocInput,
259
+ "data-testid": "min-value"
260
+ }, /*#__PURE__*/_react.default.createElement("span", {
261
+ className: _style.default.inputHint
262
+ }, minLabel), /*#__PURE__*/_react.default.createElement("span", {
263
+ className: _style.default.inputValue
264
+ }, minActualValue === min && !!minValueLabel ? minValueLabel : minActualValue)) : null, /*#__PURE__*/_react.default.createElement("div", {
265
+ className: _style.default.moocInput,
266
+ "data-testid": "max-value"
267
+ }, /*#__PURE__*/_react.default.createElement("span", {
268
+ className: _style.default.inputHint
269
+ }, maxLabel), /*#__PURE__*/_react.default.createElement("span", {
270
+ className: _style.default.inputValue
271
+ }, maxActualValue === max && !!maxValueLabel ? maxValueLabel : maxActualValue))));
272
+ }
273
+ return /*#__PURE__*/_react.default.createElement("div", {
274
+ "data-testid": "slider",
275
+ className: _style.default.containerWrapper,
276
+ onClick: this.handleClick
277
+ }, sliderComponent);
209
278
  }
210
279
  }
211
280
  Range.propTypes = process.env.NODE_ENV !== "production" ? {
212
281
  onChange: _propTypes.default.func,
213
282
  onChangeEnd: _propTypes.default.func,
214
283
  multi: _propTypes.default.bool,
284
+ theme: _propTypes.default.oneOf(['default', 'mooc']),
285
+ min: _propTypes.default.number,
286
+ max: _propTypes.default.number,
287
+ step: _propTypes.default.number,
288
+ minLabel: _propTypes.default.string,
289
+ maxLabel: _propTypes.default.string,
290
+ minValueLabel: _propTypes.default.string,
291
+ maxValueLabel: _propTypes.default.string,
215
292
  HammerForTestingMin: RenderHandles.propTypes.HammerForTestingMin,
216
- HammerForTestingMax: RenderHandles.propTypes.HammerForTestingMax,
217
- // eslint-disable-next-line react/no-unused-prop-types
218
- value: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.number)])
293
+ HammerForTestingMax: RenderHandles.propTypes.HammerForTestingMax
219
294
  } : {};
220
295
  var _default = exports.default = Range;
221
296
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_handle","_style","e","__esModule","default","valueOnTrack","track","x","left","right","getBoundingClientRect","_clamp2","extractStateFromProps","props","multi","value","RenderHandles","pending","onHandleMinChange","onHandleMinChangeEnd","onHandleMaxChange","onHandleMaxChangeEnd","HammerForTestingMin","HammerForTestingMax","createElement","className","style","handle","animatedHandle","axis","onPan","onPanEnd","HammerForTesting","propTypes","process","env","NODE_ENV","PropTypes","number","bool","func","Handle","Range","React","Component","getDerivedStateFromProps","state","constructor","context","handleClick","bind","setRefTrack","handleMinChange","handleMaxChange","handleMinChangeEnd","handleMaxChangeEnd","srcEvent","stopPropagation","preventDefault","newValue","center","handleChange","valueIndex","prevValue","_set2","minValue","maxValue","nextValue","triggerChange","setState","newValues","onChange","_noop2","onChangeEnd","clientX","isClickToTheLeft","closestHandle","Math","abs","render","railWidth","railLeft","railStyle","backgroundColor","width","containerWrapper","onClick","container","ref","rail","animatedRail","oneOfType","arrayOf","_default","exports"],"sources":["../../../src/atom/range/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {noop, set, clamp} from 'lodash/fp';\nimport Handle from './handle';\nimport style from './style.css';\n\nconst valueOnTrack = (track, x) => {\n const {left, right} = track.getBoundingClientRect();\n return clamp(0, 1, (x - left) / (right - left));\n};\n\nconst extractStateFromProps = props => {\n const {multi = false, value = multi ? [0, 1] : 0} = props;\n return {\n multi,\n value: multi ? value : [0, value]\n };\n};\n\nconst RenderHandles = props => {\n const {\n left,\n right,\n multi = false,\n pending,\n onHandleMinChange,\n onHandleMinChangeEnd,\n onHandleMaxChange,\n onHandleMaxChangeEnd,\n HammerForTestingMin,\n HammerForTestingMax\n } = props;\n\n return (\n <div data-testid=\"handles\">\n {multi ? (\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${left * 100}%`}}\n >\n <Handle\n axis=\"x\"\n onPan={onHandleMinChange}\n onPanEnd={onHandleMinChangeEnd}\n HammerForTesting={HammerForTestingMin}\n />\n </span>\n ) : null}\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${right * 100}%`}}\n >\n <Handle\n axis=\"x\"\n onPan={onHandleMaxChange}\n onPanEnd={onHandleMaxChangeEnd}\n HammerForTesting={HammerForTestingMax}\n />\n </span>\n </div>\n );\n};\n\nRenderHandles.propTypes = {\n left: PropTypes.number,\n right: PropTypes.number,\n multi: PropTypes.bool,\n pending: PropTypes.bool,\n onHandleMinChange: PropTypes.func,\n onHandleMinChangeEnd: PropTypes.func,\n onHandleMaxChange: PropTypes.func,\n onHandleMaxChangeEnd: PropTypes.func,\n HammerForTestingMin: Handle.propTypes.HammerForTesting,\n HammerForTestingMax: Handle.propTypes.HammerForTesting\n};\n\nclass Range extends React.Component {\n static propTypes = {\n onChange: PropTypes.func,\n onChangeEnd: PropTypes.func,\n multi: PropTypes.bool,\n HammerForTestingMin: RenderHandles.propTypes.HammerForTestingMin,\n HammerForTestingMax: RenderHandles.propTypes.HammerForTestingMax,\n // eslint-disable-next-line react/no-unused-prop-types\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)])\n };\n\n static getDerivedStateFromProps(props, state) {\n const {pending} = state;\n\n if (pending) return null;\n\n return extractStateFromProps(props);\n }\n\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n ...extractStateFromProps(props),\n pending: false\n };\n\n this.handleClick = this.handleClick.bind(this);\n this.setRefTrack = this.setRefTrack.bind(this);\n this.handleMinChange = this.handleMinChange.bind(this);\n this.handleMaxChange = this.handleMaxChange.bind(this);\n this.handleMinChangeEnd = this.handleMinChangeEnd.bind(this);\n this.handleMaxChangeEnd = this.handleMaxChangeEnd.bind(this);\n }\n\n setRefTrack(track) {\n this.track = track;\n }\n\n handleMinChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, true);\n }\n\n handleMaxChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, true);\n }\n\n handleMinChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, false);\n }\n\n handleMaxChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, false);\n }\n\n handleChange(value, valueIndex, pending) {\n const {value: prevValue} = this.state;\n\n const newValue = set(valueIndex, value, prevValue);\n\n const [minValue, maxValue] = newValue;\n\n const nextValue = minValue > maxValue ? prevValue : newValue;\n\n this.triggerChange(nextValue, pending);\n return this.setState({\n pending,\n value: pending ? nextValue : extractStateFromProps(this.props).value\n });\n }\n\n triggerChange(newValues, pending) {\n const {onChange = noop, onChangeEnd = onChange, multi = false} = this.props;\n\n const handle = pending ? onChange : onChangeEnd;\n\n return handle(multi ? newValues : newValues[1]);\n }\n\n handleClick(e) {\n e.stopPropagation();\n e.preventDefault();\n const {\n value: [left, right],\n multi\n } = this.state;\n const x = e.clientX;\n const newValue = valueOnTrack(this.track, x);\n\n if (!multi) return this.handleChange(newValue, 1, false);\n\n if (left === right) {\n const isClickToTheLeft = left - newValue > 0;\n return this.handleChange(newValue, isClickToTheLeft ? 0 : 1, false);\n }\n\n const closestHandle = Math.abs(newValue - left) < Math.abs(newValue - right) ? 0 : 1;\n return this.handleChange(newValue, closestHandle, false);\n }\n\n render() {\n const {\n multi = false,\n value: [left, right],\n pending\n } = this.state;\n const railWidth = right - left;\n const railLeft = left;\n const railStyle = {\n backgroundColor: '#9999A8',\n width: `${railWidth * 100}%`,\n left: `${railLeft * 100}%`\n };\n\n const {HammerForTestingMin, HammerForTestingMax} = this.props;\n\n return (\n <div data-testid=\"slider\" className={style.containerWrapper} onClick={this.handleClick}>\n <div className={style.container}>\n <div\n data-testid=\"track\"\n className={style.track}\n data-name=\"sliderTrack\"\n ref={this.setRefTrack}\n />\n <div className={pending ? style.rail : style.animatedRail} style={railStyle} />\n <RenderHandles\n HammerForTestingMin={HammerForTestingMin}\n HammerForTestingMax={HammerForTestingMax}\n left={left}\n right={right}\n pending={pending}\n multi={multi}\n onHandleMinChange={this.handleMinChange}\n onHandleMinChangeEnd={this.handleMinChangeEnd}\n onHandleMaxChange={this.handleMaxChange}\n onHandleMaxChangeEnd={this.handleMaxChangeEnd}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default Range;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_provider","_handle","_style","e","__esModule","default","valueOnTrack","track","x","left","right","getBoundingClientRect","_clamp2","extractStateFromProps","props","multi","value","min","max","toNormalized","actualValue","normalizedValue","Array","isArray","map","RenderHandles","pending","onHandleMinChange","onHandleMinChangeEnd","onHandleMaxChange","onHandleMaxChangeEnd","HammerForTestingMin","HammerForTestingMax","createElement","className","style","handle","animatedHandle","axis","onPan","onPanEnd","HammerForTesting","propTypes","process","env","NODE_ENV","PropTypes","number","bool","func","Handle","Range","React","Component","contextTypes","skin","Provider","childContextTypes","getDerivedStateFromProps","state","constructor","context","handleClick","bind","setRefTrack","handleMinChange","handleMaxChange","handleMinChangeEnd","handleMaxChangeEnd","normalizedToActual","roundToStep","step","precision","Number","Math","round","toFixed","srcEvent","stopPropagation","preventDefault","newValue","center","handleChange","valueIndex","prevValue","_set2","minValue","maxValue","nextValue","triggerChange","setState","newValues","onChange","_noop2","onChangeEnd","actualValues","val","clientX","isClickToTheLeft","closestHandle","abs","render","theme","minLabel","maxLabel","minValueLabel","maxValueLabel","railWidth","railLeft","primaryColor","_getOr2","railStyle","backgroundColor","width","minActualValue","maxActualValue","sliderComponent","container","ref","rail","animatedRail","containerWrapper","onClick","inputsRow","moocInput","inputHint","inputValue","oneOf","string","_default","exports"],"sources":["../../../src/atom/range/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {noop, set, clamp, getOr} from 'lodash/fp';\nimport Provider from '../provider';\nimport Handle from './handle';\nimport style from './style.css';\n\nconst valueOnTrack = (track, x) => {\n const {left, right} = track.getBoundingClientRect();\n return clamp(0, 1, (x - left) / (right - left));\n};\n\nconst extractStateFromProps = props => {\n const {multi = false, value = multi ? [0, 1] : 0, min = 0, max = 1} = props;\n\n const toNormalized = actualValue => (actualValue - min) / (max - min);\n\n let normalizedValue;\n if (multi) {\n normalizedValue = Array.isArray(value)\n ? value.map(toNormalized)\n : [toNormalized(0), toNormalized(value)];\n } else {\n normalizedValue = toNormalized(value);\n }\n\n return {\n multi,\n value: multi ? normalizedValue : [0, normalizedValue]\n };\n};\n\nconst RenderHandles = props => {\n const {\n left,\n right,\n multi = false,\n pending,\n onHandleMinChange,\n onHandleMinChangeEnd,\n onHandleMaxChange,\n onHandleMaxChangeEnd,\n HammerForTestingMin,\n HammerForTestingMax\n } = props;\n\n return (\n <div data-testid=\"handles\">\n {multi ? (\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${left * 100}%`}}\n >\n <Handle\n axis=\"x\"\n onPan={onHandleMinChange}\n onPanEnd={onHandleMinChangeEnd}\n HammerForTesting={HammerForTestingMin}\n />\n </span>\n ) : null}\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${right * 100}%`}}\n >\n <Handle\n axis=\"x\"\n onPan={onHandleMaxChange}\n onPanEnd={onHandleMaxChangeEnd}\n HammerForTesting={HammerForTestingMax}\n />\n </span>\n </div>\n );\n};\n\nRenderHandles.propTypes = {\n left: PropTypes.number,\n right: PropTypes.number,\n multi: PropTypes.bool,\n pending: PropTypes.bool,\n onHandleMinChange: PropTypes.func,\n onHandleMinChangeEnd: PropTypes.func,\n onHandleMaxChange: PropTypes.func,\n onHandleMaxChangeEnd: PropTypes.func,\n HammerForTestingMin: Handle.propTypes.HammerForTesting,\n HammerForTestingMax: Handle.propTypes.HammerForTesting\n};\n\nclass Range extends React.Component {\n static propTypes = {\n onChange: PropTypes.func,\n onChangeEnd: PropTypes.func,\n multi: PropTypes.bool,\n theme: PropTypes.oneOf(['default', 'mooc']),\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n minLabel: PropTypes.string,\n maxLabel: PropTypes.string,\n minValueLabel: PropTypes.string,\n maxValueLabel: PropTypes.string,\n HammerForTestingMin: RenderHandles.propTypes.HammerForTestingMin,\n HammerForTestingMax: RenderHandles.propTypes.HammerForTestingMax\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n static getDerivedStateFromProps(props, state) {\n const {pending} = state;\n if (pending) return null;\n return extractStateFromProps(props);\n }\n\n constructor(props, context) {\n super(props, context);\n this.state = {\n ...extractStateFromProps(props),\n pending: false\n };\n this.handleClick = this.handleClick.bind(this);\n this.setRefTrack = this.setRefTrack.bind(this);\n this.handleMinChange = this.handleMinChange.bind(this);\n this.handleMaxChange = this.handleMaxChange.bind(this);\n this.handleMinChangeEnd = this.handleMinChangeEnd.bind(this);\n this.handleMaxChangeEnd = this.handleMaxChangeEnd.bind(this);\n }\n\n setRefTrack(track) {\n this.track = track;\n }\n\n normalizedToActual(normalizedValue) {\n const {min = 0, max = 1} = this.props;\n return min + normalizedValue * (max - min);\n }\n\n roundToStep(value) {\n const {step = 0.1} = this.props;\n const precision = 10;\n return Number((Math.round(value / step) * step).toFixed(precision));\n }\n\n handleMinChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, true);\n }\n\n handleMaxChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, true);\n }\n\n handleMinChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, false);\n }\n\n handleMaxChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, false);\n }\n\n handleChange(value, valueIndex, pending) {\n const {value: prevValue} = this.state;\n const newValue = set(valueIndex, value, prevValue);\n const [minValue, maxValue] = newValue;\n const nextValue = minValue > maxValue ? prevValue : newValue;\n\n this.triggerChange(nextValue, pending);\n return this.setState({\n pending,\n value: pending ? nextValue : extractStateFromProps(this.props).value\n });\n }\n\n triggerChange(newValues, pending) {\n const {onChange = noop, onChangeEnd = onChange, multi = false} = this.props;\n const handle = pending ? onChange : onChangeEnd;\n const actualValues = newValues.map(val => this.roundToStep(this.normalizedToActual(val)));\n return handle(multi ? actualValues : actualValues[1]);\n }\n\n handleClick(e) {\n e.stopPropagation();\n e.preventDefault();\n const {\n value: [left, right],\n multi\n } = this.state;\n const newValue = valueOnTrack(this.track, e.clientX);\n\n if (!multi) return this.handleChange(newValue, 1, false);\n\n if (left === right) {\n const isClickToTheLeft = left - newValue > 0;\n return this.handleChange(newValue, isClickToTheLeft ? 0 : 1, false);\n }\n\n const closestHandle = Math.abs(newValue - left) < Math.abs(newValue - right) ? 0 : 1;\n return this.handleChange(newValue, closestHandle, false);\n }\n\n render() {\n const {\n multi = false,\n value: [left, right],\n pending\n } = this.state;\n const {\n theme = 'default',\n minLabel = 'Min',\n maxLabel = 'Max',\n min,\n max,\n minValueLabel,\n maxValueLabel,\n HammerForTestingMin,\n HammerForTestingMax\n } = this.props;\n\n const railWidth = right - left;\n const railLeft = left;\n\n const {skin} = this.context;\n const primaryColor = getOr('#00B0FF', 'common.primary', skin);\n const railStyle =\n theme === 'mooc'\n ? {\n backgroundColor: primaryColor,\n width: `${railWidth * 100}%`,\n left: `${railLeft * 100}%`\n }\n : {\n width: `${railWidth * 100}%`,\n left: `${railLeft * 100}%`\n };\n\n const minActualValue = this.roundToStep(this.normalizedToActual(left));\n const maxActualValue = this.roundToStep(this.normalizedToActual(right));\n\n const sliderComponent = (\n <div className={style.container}>\n <div\n data-testid=\"track\"\n className={style.track}\n data-name=\"sliderTrack\"\n ref={this.setRefTrack}\n />\n <div className={pending ? style.rail : style.animatedRail} style={railStyle} />\n <RenderHandles\n HammerForTestingMin={HammerForTestingMin}\n HammerForTestingMax={HammerForTestingMax}\n left={left}\n right={right}\n pending={pending}\n multi={multi}\n onHandleMinChange={this.handleMinChange}\n onHandleMinChangeEnd={this.handleMinChangeEnd}\n onHandleMaxChange={this.handleMaxChange}\n onHandleMaxChangeEnd={this.handleMaxChangeEnd}\n />\n </div>\n );\n\n if (theme === 'mooc') {\n return (\n <div data-testid=\"slider\" className={style.containerWrapper}>\n <div onClick={this.handleClick}>{sliderComponent}</div>\n <div className={style.inputsRow}>\n {multi ? (\n <div className={style.moocInput} data-testid=\"min-value\">\n <span className={style.inputHint}>{minLabel}</span>\n <span className={style.inputValue}>\n {minActualValue === min && !!minValueLabel ? minValueLabel : minActualValue}\n </span>\n </div>\n ) : null}\n <div className={style.moocInput} data-testid=\"max-value\">\n <span className={style.inputHint}>{maxLabel}</span>\n <span className={style.inputValue}>\n {maxActualValue === max && !!maxValueLabel ? maxValueLabel : maxActualValue}\n </span>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div data-testid=\"slider\" className={style.containerWrapper} onClick={this.handleClick}>\n {sliderComponent}\n </div>\n );\n }\n}\n\nexport default Range;\n"],"mappings":"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","ignoreList":[]}
@@ -2,11 +2,15 @@
2
2
  @value light from colors;
3
3
  @value dark from colors;
4
4
  @value white from colors;
5
- @value brand from colors;
5
+ @value cm_grey_400 from colors;
6
+ @value surface_input_neutral_strong from colors;
6
7
 
7
8
  .containerWrapper {
8
9
  padding: 15px;
9
10
  user-select: none;
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: 18px;
10
14
  }
11
15
 
12
16
  .container {
@@ -27,7 +31,7 @@
27
31
  .rail {
28
32
  composes: track;
29
33
  width: 0;
30
- background-color: brand;
34
+ background-color: cm_grey_400;
31
35
  }
32
36
 
33
37
  .animatedRail {
@@ -55,3 +59,37 @@
55
59
  transition-duration: 0.3s;
56
60
  transition-timing-function: ease-out;
57
61
  }
62
+
63
+ .inputsRow {
64
+ display: flex;
65
+ justify-content: space-between;
66
+ margin-top: 18px;
67
+ }
68
+
69
+ .moocInput {
70
+ display: inline-flex;
71
+ align-items: center;
72
+ gap: 6px;
73
+ height: auto;
74
+ padding: 12px 16px;
75
+ border: none;
76
+ border-radius: 12px;
77
+ background-color: surface_input_neutral_strong;
78
+ font-size: 16px;
79
+ cursor: default;
80
+ user-select: none;
81
+ white-space: nowrap;
82
+ }
83
+
84
+ .inputHint {
85
+ color: cm_grey_400;
86
+ font-weight: 700;
87
+ font-size: 16px;
88
+ }
89
+
90
+ .inputValue {
91
+ color: black;
92
+ font-weight: 600;
93
+ font-size: 16px;
94
+ }
95
+
@@ -1,5 +1,5 @@
1
1
  @value colors: "../../variables/colors.css";
2
- @value lightMediumGray from colors;
2
+ @value lightMediumGrey from colors;
3
3
  @value white from colors;
4
4
  @value breakpoints: "../../variables/breakpoints.css";
5
5
  @value mobile from breakpoints;
@@ -30,7 +30,7 @@
30
30
  width: 70px;
31
31
  height: 45px;
32
32
  border: 1px solid ;
33
- box-shadow: 1px 1px 3px lightMediumGray;
33
+ box-shadow: 1px 1px 3px lightMediumGrey;
34
34
  }
35
35
 
36
36
  .poster {
@@ -39,7 +39,7 @@
39
39
  background-size: cover;
40
40
  background-position: center;
41
41
  background-repeat: no-repeat;
42
- background-color: lightMediumGray;
42
+ background-color: lightMediumGrey;
43
43
  }
44
44
 
45
45
  .icon {
@@ -15,7 +15,7 @@ const createStyle = (icon, current) => {
15
15
  backgroundColor = _colors.COLORS.cm_positive_500;
16
16
  break;
17
17
  case 'wrong':
18
- backgroundColor = _colors.COLORS.negative;
18
+ backgroundColor = _colors.COLORS.cm_negative_100;
19
19
  break;
20
20
  case 'no-answer':
21
21
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["_react","_interopRequireWildcard","require","_reactNative","_novaIcons","_colors","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","createStyle","icon","current","backgroundColor","COLORS","cm_positive_500","negative","cm_grey_100","StyleSheet","create","step","width","height","opacity","marginHorizontal","alignItems","justifyContent","borderRadius","stepText","fontWeight","fontSize","Step","value","style","setStyle","useState","useEffect","_style","child","createElement","NovaCompositionCoorpacademyCheck","color","NovaSolidStatusClose","Text","View","_default","exports"],"sources":["../../../src/atom/status-item/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {StyleSheet, Text, TextStyle, View, ViewStyle} from 'react-native';\nimport {\n NovaCompositionCoorpacademyCheck as RightIcon,\n NovaSolidStatusClose as WrongIcon\n} from '@coorpacademy/nova-icons';\nimport {COLORS} from '../../variables/colors';\nimport {StatusItemProps} from './types';\n\ntype StyleSheetType = {\n step: ViewStyle;\n stepText: TextStyle;\n icon: ViewStyle;\n};\n\nconst createStyle = (icon: StatusItemProps['icon'], current?: boolean): StyleSheetType => {\n let backgroundColor;\n\n switch (icon) {\n case 'right':\n backgroundColor = COLORS.cm_positive_500;\n break;\n case 'wrong':\n backgroundColor = COLORS.negative;\n break;\n case 'no-answer':\n default:\n backgroundColor = COLORS.cm_grey_100;\n }\n\n return StyleSheet.create({\n step: {\n width: current ? 40 : 32,\n height: current ? 40 : 32,\n opacity: current ? 1 : 0.5,\n marginHorizontal: 8,\n backgroundColor,\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 50\n },\n stepText: {\n fontWeight: '600',\n fontSize: current ? 16 : 12\n },\n icon: {\n width: current ? 14 : 12,\n height: current ? 14 : 12\n }\n });\n};\n\nconst Step = ({value, icon, current}: StatusItemProps) => {\n const [style, setStyle] = useState<StyleSheetType | null>(null);\n\n useEffect(() => {\n const _style = createStyle(icon, current);\n setStyle(_style);\n }, [current, icon]);\n\n if (!style) {\n return null;\n }\n\n let child;\n\n switch (icon) {\n case 'right':\n child = <RightIcon style={style.icon} color=\"#fff\" />;\n break;\n case 'wrong':\n child = <WrongIcon style={style.icon} color=\"#fff\" />;\n break;\n case 'no-answer':\n default:\n child = <Text style={style.stepText}>{value}</Text>;\n }\n\n return <View style={style.step}>{child}</View>;\n};\n\nexport default Step;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.native.js","names":["_react","_interopRequireWildcard","require","_reactNative","_novaIcons","_colors","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","createStyle","icon","current","backgroundColor","COLORS","cm_positive_500","cm_negative_100","cm_grey_100","StyleSheet","create","step","width","height","opacity","marginHorizontal","alignItems","justifyContent","borderRadius","stepText","fontWeight","fontSize","Step","value","style","setStyle","useState","useEffect","_style","child","createElement","NovaCompositionCoorpacademyCheck","color","NovaSolidStatusClose","Text","View","_default","exports"],"sources":["../../../src/atom/status-item/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {StyleSheet, Text, TextStyle, View, ViewStyle} from 'react-native';\nimport {\n NovaCompositionCoorpacademyCheck as RightIcon,\n NovaSolidStatusClose as WrongIcon\n} from '@coorpacademy/nova-icons';\nimport {COLORS} from '../../variables/colors';\nimport {StatusItemProps} from './types';\n\ntype StyleSheetType = {\n step: ViewStyle;\n stepText: TextStyle;\n icon: ViewStyle;\n};\n\nconst createStyle = (icon: StatusItemProps['icon'], current?: boolean): StyleSheetType => {\n let backgroundColor;\n\n switch (icon) {\n case 'right':\n backgroundColor = COLORS.cm_positive_500;\n break;\n case 'wrong':\n backgroundColor = COLORS.cm_negative_100;\n break;\n case 'no-answer':\n default:\n backgroundColor = COLORS.cm_grey_100;\n }\n\n return StyleSheet.create({\n step: {\n width: current ? 40 : 32,\n height: current ? 40 : 32,\n opacity: current ? 1 : 0.5,\n marginHorizontal: 8,\n backgroundColor,\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 50\n },\n stepText: {\n fontWeight: '600',\n fontSize: current ? 16 : 12\n },\n icon: {\n width: current ? 14 : 12,\n height: current ? 14 : 12\n }\n });\n};\n\nconst Step = ({value, icon, current}: StatusItemProps) => {\n const [style, setStyle] = useState<StyleSheetType | null>(null);\n\n useEffect(() => {\n const _style = createStyle(icon, current);\n setStyle(_style);\n }, [current, icon]);\n\n if (!style) {\n return null;\n }\n\n let child;\n\n switch (icon) {\n case 'right':\n child = <RightIcon style={style.icon} color=\"#fff\" />;\n break;\n case 'wrong':\n child = <WrongIcon style={style.icon} color=\"#fff\" />;\n break;\n case 'no-answer':\n default:\n child = <Text style={style.stepText}>{value}</Text>;\n }\n\n return <View style={style.step}>{child}</View>;\n};\n\nexport default Step;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/base-modal/index.js"],"names":[],"mappings":";AAWA,yEAiMC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/base-modal/index.js"],"names":[],"mappings":";AAWA,yEAoMC"}
@@ -111,7 +111,8 @@ const BaseModal = (props, context) => {
111
111
  } = confirmButton || {};
112
112
  const buttonConfirmColor = color || (0, _get2.default)('common.primary', skin);
113
113
  return /*#__PURE__*/_react.default.createElement("div", {
114
- className: _style.default.footer
114
+ className: _style.default.footer,
115
+ "data-name": "modal-footer"
115
116
  }, /*#__PURE__*/_react.default.createElement("div", {
116
117
  className: _style.default.footerCTAWrapper
117
118
  }, onCancel && cancelLabel ? /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
@@ -120,7 +121,7 @@ const BaseModal = (props, context) => {
120
121
  onClick: onCancel,
121
122
  label: cancelLabel,
122
123
  disabled: cancelDisabled,
123
- 'data-testid': `button-link-${cancelLabel}`
124
+ 'data-testid': `button-link-cancel`
124
125
  }) : null, onConfirm && confirmLabel ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_buttonLink.default, _extends({
125
126
  customStyle: {
126
127
  backgroundColor: buttonConfirmColor,
@@ -146,7 +147,7 @@ const BaseModal = (props, context) => {
146
147
  }
147
148
  }
148
149
  } : {}, {
149
- 'data-testid': `button-link-${confirmLabel}`
150
+ 'data-testid': `button-link-confirm`
150
151
  }))) : null), text ? /*#__PURE__*/_react.default.createElement("div", {
151
152
  className: `${_style.default.footerDescription} ${isError ? _style.default.footerDescriptionError : ''}`
152
153
  }, text) : null);
@@ -156,12 +157,17 @@ const BaseModal = (props, context) => {
156
157
  e?.stopPropagation();
157
158
  onClose();
158
159
  }
160
+ function handleModalOnClick(e) {
161
+ e?.stopPropagation();
162
+ }
159
163
  return /*#__PURE__*/_react.default.createElement("div", {
160
164
  className: _style.default.modalWrapper,
161
- "data-testid": "modal"
165
+ "data-testid": "modal",
166
+ onClick: handleOnClose
162
167
  }, /*#__PURE__*/_react.default.createElement("div", {
163
168
  className: _style.default.modal,
164
- style: customStyle
169
+ style: customStyle,
170
+ onClick: handleModalOnClick
165
171
  }, /*#__PURE__*/_react.default.createElement("header", {
166
172
  className: (0, _classnames.default)(_style.default.header, !description && _style.default.headerCentered)
167
173
  }, headerIcon?.name ? /*#__PURE__*/_react.default.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_cssColorFunction","_classnames","_provider","_icon","_buttonLink","_colors","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","BaseModal","props","context","title","titleAriaLabel","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","useRef","isScrollbarVisible","setIsScrollbarVisible","useState","checkScrollbar","bodyElement","current","scrollHeight","clientHeight","useEffect","debouncedCheckScrollbar","_debounce2","mutationObserver","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnect","cancel","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","useCallback","_isEmpty2","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get2","createElement","className","style","footerCTAWrapper","button","type","onClick","backgroundColor","paddingLeft","hoverBackgroundColor","convert","hoverColor","COLORS","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","stopPropagation","modalWrapper","modal","classnames","header","headerCentered","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","bodyWithoutScrollbar","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","shape","node","bool","oneOfType","func","boolean","objectOf","number","_default","exports"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get, debounce} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n titleAriaLabel,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n const checkScrollbar = () => {\n const bodyElement = bodyRef.current;\n if (bodyElement) {\n setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n }\n };\n\n useEffect(() => {\n if (!detectScrollbar) return;\n const bodyElement = bodyRef.current;\n\n if (!bodyElement) return;\n\n const debouncedCheckScrollbar = debounce(100, () => {\n checkScrollbar();\n });\n\n // Observer of the body content\n const mutationObserver = new MutationObserver(() => {\n debouncedCheckScrollbar();\n });\n\n mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // Observer of the body size\n const resizeObserver = new ResizeObserver(() => {\n debouncedCheckScrollbar();\n });\n\n if (bodyRef.current) {\n resizeObserver.observe(bodyRef.current);\n }\n\n checkScrollbar();\n\n return () => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n debouncedCheckScrollbar.cancel();\n };\n }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer}>\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-${cancelLabel}`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-${confirmLabel}`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\">\n <div className={style.modal} style={customStyle}>\n <header className={classnames(style.header, !description && style.headerCentered)}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle} aria-label={titleAriaLabel}>\n {title}\n </div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div\n ref={bodyRef}\n className={isScrollbarVisible ? style.body : style.bodyWithoutScrollbar}\n onScroll={onScroll}\n data-testid=\"modal-body\"\n >\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n titleAriaLabel: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_cssColorFunction","_classnames","_provider","_icon","_buttonLink","_colors","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","BaseModal","props","context","title","titleAriaLabel","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","useRef","isScrollbarVisible","setIsScrollbarVisible","useState","checkScrollbar","bodyElement","current","scrollHeight","clientHeight","useEffect","debouncedCheckScrollbar","_debounce2","mutationObserver","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnect","cancel","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","useCallback","_isEmpty2","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get2","createElement","className","style","footerCTAWrapper","button","type","onClick","backgroundColor","paddingLeft","hoverBackgroundColor","convert","hoverColor","COLORS","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","stopPropagation","handleModalOnClick","modalWrapper","modal","classnames","header","headerCentered","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","bodyWithoutScrollbar","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","shape","node","bool","oneOfType","func","boolean","objectOf","number","_default","exports"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get, debounce} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n titleAriaLabel,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n const checkScrollbar = () => {\n const bodyElement = bodyRef.current;\n if (bodyElement) {\n setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n }\n };\n\n useEffect(() => {\n if (!detectScrollbar) return;\n const bodyElement = bodyRef.current;\n\n if (!bodyElement) return;\n\n const debouncedCheckScrollbar = debounce(100, () => {\n checkScrollbar();\n });\n\n // Observer of the body content\n const mutationObserver = new MutationObserver(() => {\n debouncedCheckScrollbar();\n });\n\n mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // Observer of the body size\n const resizeObserver = new ResizeObserver(() => {\n debouncedCheckScrollbar();\n });\n\n if (bodyRef.current) {\n resizeObserver.observe(bodyRef.current);\n }\n\n checkScrollbar();\n\n return () => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n debouncedCheckScrollbar.cancel();\n };\n }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer} data-name=\"modal-footer\">\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-cancel`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-confirm`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n function handleModalOnClick(e) {\n e?.stopPropagation();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\" onClick={handleOnClose}>\n <div className={style.modal} style={customStyle} onClick={handleModalOnClick}>\n <header className={classnames(style.header, !description && style.headerCentered)}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle} aria-label={titleAriaLabel}>\n {title}\n </div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div\n ref={bodyRef}\n className={isScrollbarVisible ? style.body : style.bodyWithoutScrollbar}\n onScroll={onScroll}\n data-testid=\"modal-body\"\n >\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n titleAriaLabel: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,SAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,KAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,WAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAP,sBAAA,CAAAF,OAAA;AAAgC,SAAAU,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAZ,wBAAAY,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAjB,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AAAA,SAAAmB,SAAA,WAAAA,QAAA,GAAAR,MAAA,CAAAS,MAAA,GAAAT,MAAA,CAAAS,MAAA,CAAAC,IAAA,eAAAb,CAAA,aAAAR,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAG,CAAA,GAAAmB,SAAA,CAAAtB,CAAA,YAAAE,CAAA,IAAAC,CAAA,OAAAY,cAAA,CAAAC,IAAA,CAAAb,CAAA,EAAAD,CAAA,MAAAM,CAAA,CAAAN,CAAA,IAAAC,CAAA,CAAAD,CAAA,aAAAM,CAAA,KAAAW,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAEhC,MAAMG,SAAS,GAAGA,CAACC,KAAK,EAAEC,OAAO,KAAK;EACpC,MAAM;IACJC,KAAK;IACLC,cAAc;IACdC,WAAW;IACXC,UAAU;IACVC,QAAQ;IACRC,MAAM;IACNC,MAAM;IACNC,OAAO;IACPC,QAAQ;IACRC,eAAe,GAAG,KAAK;IACvBC;EACF,CAAC,GAAGZ,KAAK;EACT,MAAM;IAACa;EAAI,CAAC,GAAGZ,OAAO;EACtB,MAAMa,OAAO,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAC5B,MAAM,CAACC,kBAAkB,EAAEC,qBAAqB,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAACP,eAAe,CAAC;EAE9E,MAAMQ,cAAc,GAAGA,CAAA,KAAM;IAC3B,MAAMC,WAAW,GAAGN,OAAO,CAACO,OAAO;IACnC,IAAID,WAAW,EAAE;MACfH,qBAAqB,CAACG,WAAW,CAACE,YAAY,GAAGF,WAAW,CAACG,YAAY,CAAC;IAC5E;EACF,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACb,eAAe,EAAE;IACtB,MAAMS,WAAW,GAAGN,OAAO,CAACO,OAAO;IAEnC,IAAI,CAACD,WAAW,EAAE;IAElB,MAAMK,uBAAuB,GAAG,IAAAC,UAAA,CAAA/C,OAAA,EAAS,GAAG,EAAE,MAAM;MAClDwC,cAAc,CAAC,CAAC;IAClB,CAAC,CAAC;;IAEF;IACA,MAAMQ,gBAAgB,GAAG,IAAIC,gBAAgB,CAAC,MAAM;MAClDH,uBAAuB,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEFE,gBAAgB,CAACE,OAAO,CAACT,WAAW,EAAE;MAACU,SAAS,EAAE,IAAI;MAAEC,OAAO,EAAE;IAAI,CAAC,CAAC;;IAEvE;IACA,MAAMC,cAAc,GAAG,IAAIC,cAAc,CAAC,MAAM;MAC9CR,uBAAuB,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,IAAIX,OAAO,CAACO,OAAO,EAAE;MACnBW,cAAc,CAACH,OAAO,CAACf,OAAO,CAACO,OAAO,CAAC;IACzC;IAEAF,cAAc,CAAC,CAAC;IAEhB,OAAO,MAAM;MACXQ,gBAAgB,CAACO,UAAU,CAAC,CAAC;MAC7BF,cAAc,CAACE,UAAU,CAAC,CAAC;MAC3BT,uBAAuB,CAACU,MAAM,CAAC,CAAC;IAClC,CAAC;EACH,CAAC,EAAE,CAAC7B,QAAQ,EAAEK,eAAe,CAAC,CAAC;;EAE/B;EACA,IAAAa,gBAAS,EAAC,MAAM;IACd,IAAI,CAACjB,MAAM,IAAI,CAACE,OAAO,EAAE;IAEzB,MAAM2B,YAAY,GAAGC,KAAK,IAAI;MAC5B,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,EAAE;QAC1B7B,OAAO,CAAC,CAAC;MACX;IACF,CAAC;IAED8B,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEJ,YAAY,CAAC;IAClD,OAAO,MAAM;MACXG,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEL,YAAY,CAAC;IACvD,CAAC;EACH,CAAC,EAAE,CAAC7B,MAAM,EAAEE,OAAO,CAAC,CAAC;EAErB,MAAMiC,MAAM,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAC/B,IAAI,IAAAC,SAAA,CAAAjE,OAAA,EAAQ6B,MAAM,CAAC,EAAE,OAAO,IAAI;IAChC,IAAI,OAAOA,MAAM,KAAK,UAAU,EAAE,OAAOA,MAAM,CAAC,CAAC;IAEjD,MAAM;MAACqC,YAAY;MAAEC,aAAa;MAAEC,IAAI;MAAEC;IAAO,CAAC,GAAGxC,MAAM;IAC3D,MAAM;MAACyC,KAAK,EAAEC,WAAW;MAAEC,QAAQ;MAAEC,QAAQ,EAAEC;IAAc,CAAC,GAAGR,YAAY,IAAI,CAAC,CAAC;IACnF,MAAM;MACJI,KAAK,EAAEK,YAAY;MACnBC,SAAS;MACTH,QAAQ,EAAEI,eAAe;MACzBC,QAAQ;MACRC;IACF,CAAC,GAAGZ,aAAa,IAAI,CAAC,CAAC;IACvB,MAAMa,kBAAkB,GAAGD,KAAK,IAAI,IAAAE,KAAA,CAAAjF,OAAA,EAAI,gBAAgB,EAAEkC,IAAI,CAAC;IAE/D,oBACEpD,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;MAAKC,SAAS,EAAEC,cAAK,CAACvD,MAAO;MAAC,aAAU;IAAc,gBACpD/C,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;MAAKC,SAAS,EAAEC,cAAK,CAACC;IAAiB,GACpCb,QAAQ,IAAID,WAAW,gBACtBzF,MAAA,CAAAkB,OAAA,CAAAkF,aAAA,CAAC3F,WAAA,CAAAS,OAAU;MAEPmF,SAAS,EAAEC,cAAK,CAACE,MAAM;MACvBC,IAAI,EAAE,WAAW;MACjBC,OAAO,EAAEhB,QAAQ;MACjBF,KAAK,EAAEC,WAAW;MAClBE,QAAQ,EAAEC,cAAc;MACxB,aAAa,EAAE;IAAoB,CAEtC,CAAC,GACA,IAAI,EACPE,SAAS,IAAID,YAAY,gBACxB7F,MAAA,CAAAkB,OAAA,CAAAkF,aAAA,2BACEpG,MAAA,CAAAkB,OAAA,CAAAkF,aAAA,CAAC3F,WAAA,CAAAS,OAAU,EAAAc,QAAA;MAEPmB,WAAW,EAAE;QAACwD,eAAe,EAAET,kBAAkB;QAAEU,WAAW,EAAE;MAAM,CAAC;MACvEC,oBAAoB,EAAE,IAAAC,yBAAO,EAC3B,YAAYZ,kBAAkB,0BAChC,CAAC;MACDa,UAAU,EAAEC,cAAM,CAACC,KAAK;MACxBZ,SAAS,EAAEC,cAAK,CAACE,MAAM;MACvBC,IAAI,EAAE,SAAS;MACfC,OAAO,EAAEZ,SAAS;MAClBN,KAAK,EAAEK,YAAY;MACnBF,QAAQ,EAAEI;IAAe,GACrBC,QAAQ,GACR;MACEkB,IAAI,EAAE;QACJC,QAAQ,EAAE,MAAM;QAChBC,MAAM,EAAE;UACNC,IAAI,EAAErB,QAAQ;UACdC,KAAK,EAAEe,cAAM,CAACC,KAAK;UACnBK,IAAI,EAAE,EAAE;UACRnE,WAAW,EAAE;YAACoE,OAAO,EAAE;UAAC;QAC1B;MACF;IACF,CAAC,GACD,CAAC,CAAC;MACN,aAAa,EAAE;IAAqB,EAEvC,CACE,CAAC,GACJ,IACD,CAAC,EACLjC,IAAI,gBACHtF,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;MACEC,SAAS,EAAE,GAAGC,cAAK,CAACkB,iBAAiB,IAAIjC,OAAO,GAAGe,cAAK,CAACmB,sBAAsB,GAAG,EAAE;IAAG,GAEtFnC,IACE,CAAC,GACJ,IACD,CAAC;EAEV,CAAC,EAAE,CAACvC,MAAM,EAAEK,IAAI,CAAC,CAAC;EAElB,IAAI,CAACN,MAAM,IAAI,CAACL,KAAK,IAAI,CAACI,QAAQ,EAAE,OAAO,IAAI;EAE/C,SAAS6E,aAAaA,CAAC7G,CAAC,EAAE;IACxBA,CAAC,EAAE8G,eAAe,CAAC,CAAC;IACpB3E,OAAO,CAAC,CAAC;EACX;EACA,SAAS4E,kBAAkBA,CAAC/G,CAAC,EAAE;IAC7BA,CAAC,EAAE8G,eAAe,CAAC,CAAC;EACtB;EAEA,oBACE3H,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAACuB,YAAa;IAAC,eAAY,OAAO;IAACnB,OAAO,EAAEgB;EAAc,gBAC7E1H,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAACwB,KAAM;IAACxB,KAAK,EAAEnD,WAAY;IAACuD,OAAO,EAAEkB;EAAmB,gBAC3E5H,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;IAAQC,SAAS,EAAE,IAAA0B,mBAAU,EAACzB,cAAK,CAAC0B,MAAM,EAAE,CAACrF,WAAW,IAAI2D,cAAK,CAAC2B,cAAc;EAAE,GAC/ErF,UAAU,EAAEyE,IAAI,gBACfrH,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAAC1D;EAAW,gBAC/B5C,MAAA,CAAAkB,OAAA,CAAAkF,aAAA,CAAC5F,KAAA,CAAAU,OAAI;IACH8E,QAAQ,EAAEpD,UAAU,CAACyE,IAAK;IAC1Ba,SAAS,EAAEtF,UAAU,CAACqD,KAAM;IAC5BU,eAAe,EAAE/D,UAAU,CAAC+D,eAAgB;IAC5CW,IAAI,EAAE;MAACa,MAAM,EAAE,EAAE;MAAEC,WAAW,EAAE;IAAE;EAAE,CACrC,CACE,CAAC,GACJ,IAAI,eACRpI,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAAC+B;EAAc,gBAClCrI,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAACgC,WAAY;IAAC,cAAY5F;EAAe,GAC3DD,KACE,CAAC,EACLE,WAAW,gBAAG3C,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAACiC;EAAkB,GAAE5F,WAAiB,CAAC,GAAG,IAC3E,CAAC,eACN3C,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAACkC,eAAgB;IAAC9B,OAAO,EAAEgB,aAAc;IAAC,eAAY;EAAY,gBACrF1H,MAAA,CAAAkB,OAAA,CAAAkF,aAAA,CAAC5F,KAAA,CAAAU,OAAI;IAAC8E,QAAQ,EAAC,OAAO;IAACW,eAAe,EAAC,SAAS;IAACW,IAAI,EAAE;MAACa,MAAM,EAAE,EAAE;MAAEC,WAAW,EAAE;IAAE;EAAE,CAAE,CACpF,CACC,CAAC,eACTpI,MAAA,CAAAkB,OAAA,CAAAkF,aAAA;IACEqC,GAAG,EAAEpF,OAAQ;IACbgD,SAAS,EAAE9C,kBAAkB,GAAG+C,cAAK,CAACoC,IAAI,GAAGpC,cAAK,CAACqC,oBAAqB;IACxE1F,QAAQ,EAAEA,QAAS;IACnB,eAAY;EAAY,GAEvBJ,QACE,CAAC,eACN7C,MAAA,CAAAkB,OAAA,CAAAkF,aAAA,CAACnB,MAAM,MAAE,CACN,CACF,CAAC;AAEV,CAAC;AAED3C,SAAS,CAACsG,YAAY,GAAG;EACvBxF,IAAI,EAAEyF,iBAAQ,CAACC,iBAAiB,CAAC1F;AACnC,CAAC;AAEDd,SAAS,CAACyG,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EACpBzG,KAAK,EAAE0G,kBAAS,CAACC,MAAM;EACvB1G,cAAc,EAAEyG,kBAAS,CAACC,MAAM;EAChCxG,UAAU,EAAEuG,kBAAS,CAACE,KAAK,CAAC;IAC1BhC,IAAI,EAAE8B,kBAAS,CAACC,MAAM;IACtBnD,KAAK,EAAEkD,kBAAS,CAACC,MAAM;IACvBzC,eAAe,EAAEwC,kBAAS,CAACC;EAC7B,CAAC,CAAC;EACFzG,WAAW,EAAEwG,kBAAS,CAACC,MAAM;EAC7BvG,QAAQ,EAAEsG,kBAAS,CAACG,IAAI;EACxBxG,MAAM,EAAEqG,kBAAS,CAACI,IAAI;EACtBxG,MAAM,EAAEoG,kBAAS,CAACK,SAAS,CAAC,CAC1BL,kBAAS,CAACM,IAAI,EACdN,kBAAS,CAACE,KAAK,CAAC;IACd/D,IAAI,EAAE6D,kBAAS,CAACC,MAAM;IACtB7D,OAAO,EAAE4D,kBAAS,CAACO,OAAO;IAC1BtE,YAAY,EAAE+D,kBAAS,CAACE,KAAK,CAAC;MAC5B7D,KAAK,EAAE2D,kBAAS,CAACC,MAAM;MACvB1D,QAAQ,EAAEyD,kBAAS,CAACM,IAAI;MACxB9D,QAAQ,EAAEwD,kBAAS,CAACI;IACtB,CAAC,CAAC;IACFlE,aAAa,EAAE8D,kBAAS,CAACE,KAAK,CAAC;MAC7B7D,KAAK,EAAE2D,kBAAS,CAACC,MAAM;MACvBtD,SAAS,EAAEqD,kBAAS,CAACM,IAAI;MACzBzD,QAAQ,EAAEmD,kBAAS,CAACC,MAAM;MAC1BzD,QAAQ,EAAEwD,kBAAS,CAACI,IAAI;MACxBtD,KAAK,EAAEkD,kBAAS,CAACC;IACnB,CAAC;EACH,CAAC,CAAC,CACH,CAAC;EACFpG,OAAO,EAAEmG,kBAAS,CAACM,IAAI;EACvBxG,QAAQ,EAAEkG,kBAAS,CAACM,IAAI;EACxBvG,eAAe,EAAEiG,kBAAS,CAACI,IAAI;EAC/BpG,WAAW,EAAEgG,kBAAS,CAACQ,QAAQ,CAACR,kBAAS,CAACK,SAAS,CAAC,CAACL,kBAAS,CAACC,MAAM,EAAED,kBAAS,CAACS,MAAM,CAAC,CAAC;AAC3F,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA5I,OAAA,GAEaoB,SAAS","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"favorite.d.ts","sourceRoot":"","sources":["../../../src/molecule/card/favorite.js"],"names":[],"mappings":";AAcA;;;;;;;;oCA+JC"}
1
+ {"version":3,"file":"favorite.d.ts","sourceRoot":"","sources":["../../../src/molecule/card/favorite.js"],"names":[],"mappings":";AAWA;;;;;;;;oCA6JC"}
@@ -10,10 +10,10 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _uuid = require("uuid");
13
- var _novaIcons = require("@coorpacademy/nova-icons");
14
13
  var _provider = _interopRequireWildcard(require("../../atom/provider"));
15
14
  var _tooltip = _interopRequireWildcard(require("../../atom/tooltip"));
16
15
  var _button = _interopRequireDefault(require("../../atom/button"));
16
+ var _icon = _interopRequireDefault(require("../../atom/icon"));
17
17
  var _favorite = _interopRequireDefault(require("./favorite.css"));
18
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -36,7 +36,6 @@ const Favorite = ({
36
36
  }, [disabled, onFavoriteClick]);
37
37
  const primaryColor = (0, _get2.default)('common.primary', skin);
38
38
  const darkColor = (0, _get2.default)('common.dark', skin);
39
- const brandColor = (0, _get2.default)('common.brand', skin);
40
39
  const buttonRef = (0, _react.useRef)(null);
41
40
  const allowToolTip = (0, _react.useMemo)(() => !(0, _isEmpty2.default)(removeFavoriteToolTip) && !(0, _isEmpty2.default)(addFavoriteToolTip), [addFavoriteToolTip, removeFavoriteToolTip]);
42
41
 
@@ -64,6 +63,7 @@ const Favorite = ({
64
63
  (0, _react.useEffect)(() => {
65
64
  if (!toolTipIsVisible) return;
66
65
  const hide = () => setToolTipIsVisible(false);
66
+ /* istanbul ignore next: guard for non-browser envs; not testable in jsdom */
67
67
  if (typeof window === 'undefined') {
68
68
  return;
69
69
  }
@@ -89,27 +89,26 @@ const Favorite = ({
89
89
  (0, _tooltip.toggleStateOnKeyPress)(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);
90
90
  }, [toolTipIsVisible]);
91
91
  const iconWrapperClassName = (0, _react.useMemo)(() => (0, _classnames.default)(_favorite.default.favorite, className, favorite && _favorite.default.selected), [className, favorite]);
92
- const icon = (0, _react.useMemo)(() => favorite ? /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyCheck
93
- // eslint-disable-next-line css-modules/no-undef-class
94
- , {
95
- className: _favorite.default.checkIcon,
96
- style: {
97
- color: brandColor
92
+ const icon = (0, _react.useMemo)(() => favorite ? /*#__PURE__*/_react.default.createElement(_icon.default, {
93
+ iconName: 'check',
94
+ iconColor: primaryColor,
95
+ size: {
96
+ faSize: 14,
97
+ wrapperSize: 14
98
98
  },
99
- width: 13,
100
- height: 13,
101
99
  "data-testid": "favorite-check-icon",
102
100
  "aria-label": ariaLabel.removeFromFavorite
103
- }) : /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationMore, {
101
+ }) : /*#__PURE__*/_react.default.createElement(_icon.default, {
102
+ iconName: 'plus',
103
+ iconColor: darkColor,
104
104
  className: _favorite.default.moreIcon,
105
- style: {
106
- color: darkColor
105
+ size: {
106
+ faSize: 14,
107
+ wrapperSize: 14
107
108
  },
108
- width: 13,
109
- height: 13,
110
109
  "data-testid": "favorite-add-icon",
111
110
  "aria-label": ariaLabel.addToFavorite
112
- }), [ariaLabel.addToFavorite, ariaLabel.removeFromFavorite, brandColor, darkColor, favorite]);
111
+ }), [ariaLabel.addToFavorite, ariaLabel.removeFromFavorite, primaryColor, darkColor, favorite]);
113
112
  return /*#__PURE__*/_react.default.createElement("div", {
114
113
  className: _favorite.default.favoriteWrapper,
115
114
  "data-testid": "favorite-wrapper"