@coorpacademy/components 10.13.5 → 10.13.8

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 (225) hide show
  1. package/es/atom/button-link-icon-only/index.js +19 -4
  2. package/es/atom/button-link-icon-only/index.js.map +1 -1
  3. package/es/atom/button-link-icon-only/style.css +29 -0
  4. package/es/atom/button-link-icon-only/test/button-link-icon-only.js +15 -0
  5. package/es/atom/button-link-icon-only/test/button-link-icon-only.js.map +1 -1
  6. package/es/atom/button-link-icon-only/test/fixtures/review-header.js +10 -0
  7. package/es/atom/button-link-icon-only/test/fixtures/review-header.js.map +1 -0
  8. package/es/atom/drag-and-drop/index.js +72 -46
  9. package/es/atom/drag-and-drop/index.js.map +1 -1
  10. package/es/atom/drag-and-drop/style.css +160 -73
  11. package/es/atom/drag-and-drop/test/dragging.js +8 -1
  12. package/es/atom/drag-and-drop/test/dragging.js.map +1 -1
  13. package/es/atom/drag-and-drop/test/fixtures/clean-and-modified.js +12 -0
  14. package/es/atom/drag-and-drop/test/fixtures/clean-and-modified.js.map +1 -0
  15. package/es/atom/drag-and-drop/test/fixtures/default.js +3 -3
  16. package/es/atom/drag-and-drop/test/fixtures/default.js.map +1 -1
  17. package/es/atom/drag-and-drop/test/fixtures/error.js +12 -0
  18. package/es/atom/drag-and-drop/test/fixtures/error.js.map +1 -0
  19. package/es/atom/drag-and-drop/test/fixtures/modified.js +12 -0
  20. package/es/atom/drag-and-drop/test/fixtures/modified.js.map +1 -0
  21. package/es/atom/drag-and-drop/test/fixtures/with-children.js +1 -14
  22. package/es/atom/drag-and-drop/test/fixtures/with-children.js.map +1 -1
  23. package/es/atom/drag-and-drop/test/fixtures/with-image.js +1 -1
  24. package/es/atom/drag-and-drop/test/fixtures/with-image.js.map +1 -1
  25. package/es/atom/drag-and-drop/test/fixtures/with-long-description.js +12 -0
  26. package/es/atom/drag-and-drop/test/fixtures/with-long-description.js.map +1 -0
  27. package/es/atom/drag-and-drop/test/fixtures/with-video.js +2 -1
  28. package/es/atom/drag-and-drop/test/fixtures/with-video.js.map +1 -1
  29. package/es/atom/drag-and-drop/test/fixtures.js +8 -0
  30. package/es/atom/drag-and-drop/test/fixtures.js.map +1 -1
  31. package/es/atom/image-upload/index.js +6 -3
  32. package/es/atom/image-upload/index.js.map +1 -1
  33. package/es/atom/image-upload/test/fixtures/clean-modified.js +13 -0
  34. package/es/atom/image-upload/test/fixtures/clean-modified.js.map +1 -0
  35. package/es/atom/image-upload/test/fixtures/{without-image.js → default.js} +1 -1
  36. package/es/atom/image-upload/test/fixtures/default.js.map +1 -0
  37. package/es/atom/image-upload/test/fixtures.js +4 -2
  38. package/es/atom/image-upload/test/fixtures.js.map +1 -1
  39. package/es/atom/loader/style.css +7 -3
  40. package/es/atom/review-header-step-item/index.js +3 -3
  41. package/es/atom/review-header-step-item/index.js.map +1 -1
  42. package/es/atom/review-header-step-item/style.css +5 -8
  43. package/es/atom/review-header-step-item/test/fixtures.js +19 -0
  44. package/es/atom/review-header-step-item/test/fixtures.js.map +1 -0
  45. package/es/molecule/brand-form-group/index.js +3 -1
  46. package/es/molecule/brand-form-group/index.js.map +1 -1
  47. package/es/molecule/brand-form-group/style.css +5 -0
  48. package/es/molecule/brand-form-group/test/fixtures/images.js +6 -2
  49. package/es/molecule/brand-form-group/test/fixtures/images.js.map +1 -1
  50. package/es/molecule/course-sections/index.js +4 -1
  51. package/es/molecule/course-sections/index.js.map +1 -1
  52. package/es/molecule/course-sections/style.css +14 -1
  53. package/es/molecule/drag-and-drop-wrapper/index.js +39 -0
  54. package/es/molecule/drag-and-drop-wrapper/index.js.map +1 -0
  55. package/es/molecule/drag-and-drop-wrapper/style.css +15 -0
  56. package/es/molecule/drag-and-drop-wrapper/test/fixtures/default.js +9 -0
  57. package/es/molecule/drag-and-drop-wrapper/test/fixtures/default.js.map +1 -0
  58. package/es/molecule/drag-and-drop-wrapper/test/fixtures/two-drag-and-drops.js +10 -0
  59. package/es/molecule/drag-and-drop-wrapper/test/fixtures/two-drag-and-drops.js.map +1 -0
  60. package/es/molecule/drag-and-drop-wrapper/test/fixtures.js +15 -0
  61. package/es/molecule/drag-and-drop-wrapper/test/fixtures.js.map +1 -0
  62. package/es/molecule/questions/qcm-graphic/style.css +1 -1
  63. package/es/molecule/review-header-steps/test/fixtures.js +23 -0
  64. package/es/molecule/review-header-steps/test/fixtures.js.map +1 -0
  65. package/es/molecule/setup-slide/index.js +3 -1
  66. package/es/molecule/setup-slide/index.js.map +1 -1
  67. package/es/molecule/setup-slide/style.css +5 -0
  68. package/es/molecule/setup-slide/test/fixtures/without-upload-image.js +41 -0
  69. package/es/molecule/setup-slide/test/fixtures/without-upload-image.js.map +1 -0
  70. package/es/molecule/setup-slide/test/fixtures.js +2 -0
  71. package/es/molecule/setup-slide/test/fixtures.js.map +1 -1
  72. package/es/molecule/setup-slider/test/fixtures/default.js +8 -4
  73. package/es/molecule/setup-slider/test/fixtures/default.js.map +1 -1
  74. package/es/organism/brand-form/test/fixtures/lms.js +14 -0
  75. package/es/organism/brand-form/test/fixtures/lms.js.map +1 -1
  76. package/es/organism/course-selection/index.js +2 -1
  77. package/es/organism/course-selection/index.js.map +1 -1
  78. package/es/organism/course-selection/style.css +12 -3
  79. package/es/organism/course-selection/test/fixtures/loading.js +9 -0
  80. package/es/organism/course-selection/test/fixtures/loading.js.map +1 -0
  81. package/es/organism/course-selection/test/fixtures.js +2 -0
  82. package/es/organism/course-selection/test/fixtures.js.map +1 -1
  83. package/es/organism/review-header/index.js +68 -0
  84. package/es/organism/review-header/index.js.map +1 -0
  85. package/es/organism/review-header/style.css +138 -0
  86. package/es/organism/review-header/test/fixtures/all-questions-ok.js +16 -0
  87. package/es/organism/review-header/test/fixtures/all-questions-ok.js.map +1 -0
  88. package/es/organism/review-header/test/fixtures/current-question-no-answered.js +12 -0
  89. package/es/organism/review-header/test/fixtures/current-question-no-answered.js.map +1 -0
  90. package/es/organism/review-header/test/fixtures/current-question-wrong.js +10 -0
  91. package/es/organism/review-header/test/fixtures/current-question-wrong.js.map +1 -0
  92. package/es/organism/review-header/test/fixtures/first-question-current-right.js +10 -0
  93. package/es/organism/review-header/test/fixtures/first-question-current-right.js.map +1 -0
  94. package/es/organism/review-header/test/fixtures/no-answered-question.js +10 -0
  95. package/es/organism/review-header/test/fixtures/no-answered-question.js.map +1 -0
  96. package/es/organism/review-header/test/fixtures/question-to-repeat.js +10 -0
  97. package/es/organism/review-header/test/fixtures/question-to-repeat.js.map +1 -0
  98. package/es/organism/review-header/test/review-header.js +40 -0
  99. package/es/organism/review-header/test/review-header.js.map +1 -0
  100. package/es/organism/search-and-chips-results/index.js +2 -1
  101. package/es/organism/search-and-chips-results/index.js.map +1 -1
  102. package/es/organism/search-and-chips-results/style.css +10 -3
  103. package/es/organism/search-and-chips-results/test/fixtures/loading.js +9 -0
  104. package/es/organism/search-and-chips-results/test/fixtures/loading.js.map +1 -0
  105. package/es/organism/search-and-chips-results/test/fixtures.js +2 -0
  106. package/es/organism/search-and-chips-results/test/fixtures.js.map +1 -1
  107. package/es/template/back-office/brand-update/index.js +5 -2
  108. package/es/template/back-office/brand-update/index.js.map +1 -1
  109. package/es/template/back-office/brand-update/style.css +10 -1
  110. package/es/util/button-icons.js +3 -2
  111. package/es/util/button-icons.js.map +1 -1
  112. package/lib/atom/button-link-icon-only/index.js +19 -4
  113. package/lib/atom/button-link-icon-only/index.js.map +1 -1
  114. package/lib/atom/button-link-icon-only/style.css +29 -0
  115. package/lib/atom/button-link-icon-only/test/button-link-icon-only.js +14 -0
  116. package/lib/atom/button-link-icon-only/test/button-link-icon-only.js.map +1 -1
  117. package/lib/atom/button-link-icon-only/test/fixtures/review-header.js +15 -0
  118. package/lib/atom/button-link-icon-only/test/fixtures/review-header.js.map +1 -0
  119. package/lib/atom/drag-and-drop/index.js +74 -45
  120. package/lib/atom/drag-and-drop/index.js.map +1 -1
  121. package/lib/atom/drag-and-drop/style.css +160 -73
  122. package/lib/atom/drag-and-drop/test/dragging.js +8 -1
  123. package/lib/atom/drag-and-drop/test/dragging.js.map +1 -1
  124. package/lib/atom/drag-and-drop/test/fixtures/clean-and-modified.js +21 -0
  125. package/lib/atom/drag-and-drop/test/fixtures/clean-and-modified.js.map +1 -0
  126. package/lib/atom/drag-and-drop/test/fixtures/default.js +3 -3
  127. package/lib/atom/drag-and-drop/test/fixtures/default.js.map +1 -1
  128. package/lib/atom/drag-and-drop/test/fixtures/error.js +21 -0
  129. package/lib/atom/drag-and-drop/test/fixtures/error.js.map +1 -0
  130. package/lib/atom/drag-and-drop/test/fixtures/modified.js +21 -0
  131. package/lib/atom/drag-and-drop/test/fixtures/modified.js.map +1 -0
  132. package/lib/atom/drag-and-drop/test/fixtures/with-children.js +1 -19
  133. package/lib/atom/drag-and-drop/test/fixtures/with-children.js.map +1 -1
  134. package/lib/atom/drag-and-drop/test/fixtures/with-image.js +1 -1
  135. package/lib/atom/drag-and-drop/test/fixtures/with-image.js.map +1 -1
  136. package/lib/atom/drag-and-drop/test/fixtures/with-long-description.js +21 -0
  137. package/lib/atom/drag-and-drop/test/fixtures/with-long-description.js.map +1 -0
  138. package/lib/atom/drag-and-drop/test/fixtures/with-video.js +2 -1
  139. package/lib/atom/drag-and-drop/test/fixtures/with-video.js.map +1 -1
  140. package/lib/atom/drag-and-drop/test/fixtures.js +12 -0
  141. package/lib/atom/drag-and-drop/test/fixtures.js.map +1 -1
  142. package/lib/atom/image-upload/index.js +6 -3
  143. package/lib/atom/image-upload/index.js.map +1 -1
  144. package/lib/atom/image-upload/test/fixtures/clean-modified.js +22 -0
  145. package/lib/atom/image-upload/test/fixtures/clean-modified.js.map +1 -0
  146. package/lib/atom/image-upload/test/fixtures/{without-image.js → default.js} +1 -1
  147. package/lib/atom/image-upload/test/fixtures/default.js.map +1 -0
  148. package/lib/atom/image-upload/test/fixtures.js +6 -3
  149. package/lib/atom/image-upload/test/fixtures.js.map +1 -1
  150. package/lib/atom/loader/style.css +7 -3
  151. package/lib/atom/review-header-step-item/index.js +3 -3
  152. package/lib/atom/review-header-step-item/index.js.map +1 -1
  153. package/lib/atom/review-header-step-item/style.css +5 -8
  154. package/lib/atom/review-header-step-item/test/fixtures.js +31 -0
  155. package/lib/atom/review-header-step-item/test/fixtures.js.map +1 -0
  156. package/lib/molecule/brand-form-group/index.js +3 -1
  157. package/lib/molecule/brand-form-group/index.js.map +1 -1
  158. package/lib/molecule/brand-form-group/style.css +5 -0
  159. package/lib/molecule/brand-form-group/test/fixtures/images.js +6 -2
  160. package/lib/molecule/brand-form-group/test/fixtures/images.js.map +1 -1
  161. package/lib/molecule/course-sections/index.js +4 -1
  162. package/lib/molecule/course-sections/index.js.map +1 -1
  163. package/lib/molecule/course-sections/style.css +14 -1
  164. package/lib/molecule/drag-and-drop-wrapper/index.js +49 -0
  165. package/lib/molecule/drag-and-drop-wrapper/index.js.map +1 -0
  166. package/lib/molecule/drag-and-drop-wrapper/style.css +15 -0
  167. package/lib/molecule/drag-and-drop-wrapper/test/fixtures/default.js +19 -0
  168. package/lib/molecule/drag-and-drop-wrapper/test/fixtures/default.js.map +1 -0
  169. package/lib/molecule/drag-and-drop-wrapper/test/fixtures/two-drag-and-drops.js +21 -0
  170. package/lib/molecule/drag-and-drop-wrapper/test/fixtures/two-drag-and-drops.js.map +1 -0
  171. package/lib/molecule/drag-and-drop-wrapper/test/fixtures.js +25 -0
  172. package/lib/molecule/drag-and-drop-wrapper/test/fixtures.js.map +1 -0
  173. package/lib/molecule/questions/qcm-graphic/style.css +1 -1
  174. package/lib/molecule/review-header-steps/test/fixtures.js +37 -0
  175. package/lib/molecule/review-header-steps/test/fixtures.js.map +1 -0
  176. package/lib/molecule/setup-slide/index.js +3 -1
  177. package/lib/molecule/setup-slide/index.js.map +1 -1
  178. package/lib/molecule/setup-slide/style.css +5 -0
  179. package/lib/molecule/setup-slide/test/fixtures/without-upload-image.js +46 -0
  180. package/lib/molecule/setup-slide/test/fixtures/without-upload-image.js.map +1 -0
  181. package/lib/molecule/setup-slide/test/fixtures.js +3 -0
  182. package/lib/molecule/setup-slide/test/fixtures.js.map +1 -1
  183. package/lib/molecule/setup-slider/test/fixtures/default.js +7 -2
  184. package/lib/molecule/setup-slider/test/fixtures/default.js.map +1 -1
  185. package/lib/organism/brand-form/test/fixtures/lms.js +14 -0
  186. package/lib/organism/brand-form/test/fixtures/lms.js.map +1 -1
  187. package/lib/organism/course-selection/index.js +2 -1
  188. package/lib/organism/course-selection/index.js.map +1 -1
  189. package/lib/organism/course-selection/style.css +12 -3
  190. package/lib/organism/course-selection/test/fixtures/loading.js +19 -0
  191. package/lib/organism/course-selection/test/fixtures/loading.js.map +1 -0
  192. package/lib/organism/course-selection/test/fixtures.js +3 -0
  193. package/lib/organism/course-selection/test/fixtures.js.map +1 -1
  194. package/lib/organism/review-header/index.js +81 -0
  195. package/lib/organism/review-header/index.js.map +1 -0
  196. package/lib/organism/review-header/style.css +138 -0
  197. package/lib/organism/review-header/test/fixtures/all-questions-ok.js +26 -0
  198. package/lib/organism/review-header/test/fixtures/all-questions-ok.js.map +1 -0
  199. package/lib/organism/review-header/test/fixtures/current-question-no-answered.js +22 -0
  200. package/lib/organism/review-header/test/fixtures/current-question-no-answered.js.map +1 -0
  201. package/lib/organism/review-header/test/fixtures/current-question-wrong.js +20 -0
  202. package/lib/organism/review-header/test/fixtures/current-question-wrong.js.map +1 -0
  203. package/lib/organism/review-header/test/fixtures/first-question-current-right.js +20 -0
  204. package/lib/organism/review-header/test/fixtures/first-question-current-right.js.map +1 -0
  205. package/lib/organism/review-header/test/fixtures/no-answered-question.js +20 -0
  206. package/lib/organism/review-header/test/fixtures/no-answered-question.js.map +1 -0
  207. package/lib/organism/review-header/test/fixtures/question-to-repeat.js +20 -0
  208. package/lib/organism/review-header/test/fixtures/question-to-repeat.js.map +1 -0
  209. package/lib/organism/review-header/test/review-header.js +51 -0
  210. package/lib/organism/review-header/test/review-header.js.map +1 -0
  211. package/lib/organism/search-and-chips-results/index.js +2 -1
  212. package/lib/organism/search-and-chips-results/index.js.map +1 -1
  213. package/lib/organism/search-and-chips-results/style.css +10 -3
  214. package/lib/organism/search-and-chips-results/test/fixtures/loading.js +19 -0
  215. package/lib/organism/search-and-chips-results/test/fixtures/loading.js.map +1 -0
  216. package/lib/organism/search-and-chips-results/test/fixtures.js +3 -0
  217. package/lib/organism/search-and-chips-results/test/fixtures.js.map +1 -1
  218. package/lib/template/back-office/brand-update/index.js +5 -2
  219. package/lib/template/back-office/brand-update/index.js.map +1 -1
  220. package/lib/template/back-office/brand-update/style.css +10 -1
  221. package/lib/util/button-icons.js +2 -1
  222. package/lib/util/button-icons.js.map +1 -1
  223. package/package.json +3 -3
  224. package/es/atom/image-upload/test/fixtures/without-image.js.map +0 -1
  225. package/lib/atom/image-upload/test/fixtures/without-image.js.map +0 -1
@@ -43,6 +43,19 @@ const getButtonContent = icon => {
43
43
  }));
44
44
  };
45
45
 
46
+ const getSizeStyle = size => {
47
+ switch (size) {
48
+ case 'small':
49
+ return _style.default.small;
50
+
51
+ case 'responsive':
52
+ return _style.default.responsive;
53
+
54
+ default:
55
+ return _style.default.default;
56
+ }
57
+ };
58
+
46
59
  const ButtonLinkIconOnly = props => {
47
60
  const {
48
61
  size = 'default',
@@ -51,10 +64,11 @@ const ButtonLinkIconOnly = props => {
51
64
  'data-name': dataName,
52
65
  'aria-label': ariaLabel,
53
66
  link,
54
- onClick
67
+ onClick,
68
+ className
55
69
  } = props;
56
70
  const contentView = getButtonContent(icon);
57
- const styleButton = (0, _classnames.default)(size === 'default' ? _style.default.default : _style.default.small, link && _style.default.link, disabled && _style.default.disabled);
71
+ const styleButton = (0, _classnames.default)(getSizeStyle(size), link && _style.default.link, disabled && _style.default.disabled, className);
58
72
  const handleOnClick = (0, _react.useMemo)(() => () => onClick(), [onClick]);
59
73
 
60
74
  if (link) {
@@ -77,7 +91,7 @@ const ButtonLinkIconOnly = props => {
77
91
  };
78
92
 
79
93
  ButtonLinkIconOnly.propTypes = process.env.NODE_ENV !== "production" ? {
80
- size: _propTypes.default.oneOf(['default', 'small']),
94
+ size: _propTypes.default.oneOf(['default', 'small', 'responsive']),
81
95
  'aria-label': _propTypes.default.string,
82
96
  'data-name': _propTypes.default.string,
83
97
  icon: _propTypes.default.oneOf((0, _keys2.default)(_buttonIcons.ICONS)),
@@ -87,7 +101,8 @@ ButtonLinkIconOnly.propTypes = process.env.NODE_ENV !== "production" ? {
87
101
  download: _propTypes.default.bool,
88
102
  target: _propTypes.default.oneOf(['_self', '_blank', '_parent', '_top'])
89
103
  }),
90
- disabled: _propTypes.default.bool
104
+ disabled: _propTypes.default.bool,
105
+ className: _propTypes.default.string
91
106
  } : {};
92
107
  var _default = ButtonLinkIconOnly;
93
108
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/button-link-icon-only/index.js"],"names":["getButtonContent","icon","Icon","ICONS","style","buttonContent","ButtonLinkIconOnly","props","size","disabled","dataName","ariaLabel","link","onClick","contentView","styleButton","default","small","handleOnClick","propTypes","PropTypes","oneOf","string","func","shape","href","download","bool","target"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,gBAAgB,GAAGC,IAAI,IAAI;AAC/B,QAAMC,IAAI,GAAG,qBAAM,IAAN,EAAYD,IAAZ,EAAkBE,kBAAlB,CAAb;;AAEA,MAAI,CAACD,IAAL,EAAW;AACT,wBAAO;AAAK,MAAA,SAAS,EAAEE,eAAMC;AAAtB,MAAP;AACD;;AAED,sBACE;AAAK,IAAA,SAAS,EAAED,eAAMC;AAAtB,kBACE,6BAAC,IAAD;AAAM,IAAA,SAAS,EAAED,eAAMH;AAAvB,IADF,CADF;AAKD,CAZD;;AAcA,MAAMK,kBAAkB,GAAGC,KAAK,IAAI;AAClC,QAAM;AACJC,IAAAA,IAAI,GAAG,SADH;AAEJC,IAAAA,QAFI;AAGJR,IAAAA,IAHI;AAIJ,iBAAaS,QAJT;AAKJ,kBAAcC,SALV;AAMJC,IAAAA,IANI;AAOJC,IAAAA;AAPI,MAQFN,KARJ;AASA,QAAMO,WAAW,GAAGd,gBAAgB,CAACC,IAAD,CAApC;AACA,QAAMc,WAAW,GAAG,yBAClBP,IAAI,KAAK,SAAT,GAAqBJ,eAAMY,OAA3B,GAAqCZ,eAAMa,KADzB,EAElBL,IAAI,IAAIR,eAAMQ,IAFI,EAGlBH,QAAQ,IAAIL,eAAMK,QAHA,CAApB;AAMA,QAAMS,aAAa,GAAG,oBAAQ,MAAM,MAAML,OAAO,EAA3B,EAA+B,CAACA,OAAD,CAA/B,CAAtB;;AAEA,MAAID,IAAJ,EAAU;AACR,wBACE,6BAAC,aAAD,eACMA,IADN;AAEE,MAAA,SAAS,EAAEG,WAFb;AAGE,mBAAWL,QAHb;AAIE,oBAAYC,SAJd;AAKE,MAAA,KAAK,EAAEA;AALT,QAOGG,WAPH,CADF;AAWD;;AAED,sBACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,kBAAYH,SAFd;AAGE,iBAAWD,QAHb;AAIE,IAAA,KAAK,EAAEC,SAJT;AAKE,IAAA,SAAS,EAAEI,WALb;AAME,IAAA,OAAO,EAAEG;AANX,KAQGJ,WARH,CADF;AAYD,CA7CD;;AA+CAR,kBAAkB,CAACa,SAAnB,2CAA+B;AAC7BX,EAAAA,IAAI,EAAEY,mBAAUC,KAAV,CAAgB,CAAC,SAAD,EAAY,OAAZ,CAAhB,CADuB;AAE7B,gBAAcD,mBAAUE,MAFK;AAG7B,eAAaF,mBAAUE,MAHM;AAI7BrB,EAAAA,IAAI,EAAEmB,mBAAUC,KAAV,CAAgB,oBAAKlB,kBAAL,CAAhB,CAJuB;AAK7BU,EAAAA,OAAO,EAAEO,mBAAUG,IALU;AAM7BX,EAAAA,IAAI,EAAEQ,mBAAUI,KAAV,CAAgB;AACpBC,IAAAA,IAAI,EAAEL,mBAAUE,MADI;AAEpBI,IAAAA,QAAQ,EAAEN,mBAAUO,IAFA;AAGpBC,IAAAA,MAAM,EAAER,mBAAUC,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB;AAHY,GAAhB,CANuB;AAW7BZ,EAAAA,QAAQ,EAAEW,mBAAUO;AAXS,CAA/B;eAcerB,kB","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, keys} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {ICONS} from '../../util/button-icons';\nimport Link from '../link';\nimport style from './style.css';\n\nconst getButtonContent = icon => {\n const Icon = getOr(null, icon, ICONS);\n\n if (!Icon) {\n return <div className={style.buttonContent} />;\n }\n\n return (\n <div className={style.buttonContent}>\n <Icon className={style.icon} />\n </div>\n );\n};\n\nconst ButtonLinkIconOnly = props => {\n const {\n size = 'default',\n disabled,\n icon,\n 'data-name': dataName,\n 'aria-label': ariaLabel,\n link,\n onClick\n } = props;\n const contentView = getButtonContent(icon);\n const styleButton = classnames(\n size === 'default' ? style.default : style.small,\n link && style.link,\n disabled && style.disabled\n );\n\n const handleOnClick = useMemo(() => () => onClick(), [onClick]);\n\n if (link) {\n return (\n <Link\n {...link}\n className={styleButton}\n data-name={dataName}\n aria-label={ariaLabel}\n title={ariaLabel}\n >\n {contentView}\n </Link>\n );\n }\n\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n data-name={dataName}\n title={ariaLabel}\n className={styleButton}\n onClick={handleOnClick}\n >\n {contentView}\n </button>\n );\n};\n\nButtonLinkIconOnly.propTypes = {\n size: PropTypes.oneOf(['default', 'small']),\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n icon: PropTypes.oneOf(keys(ICONS)),\n onClick: PropTypes.func,\n link: PropTypes.shape({\n href: PropTypes.string,\n download: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])\n }),\n disabled: PropTypes.bool\n};\n\nexport default ButtonLinkIconOnly;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/atom/button-link-icon-only/index.js"],"names":["getButtonContent","icon","Icon","ICONS","style","buttonContent","getSizeStyle","size","small","responsive","default","ButtonLinkIconOnly","props","disabled","dataName","ariaLabel","link","onClick","className","contentView","styleButton","handleOnClick","propTypes","PropTypes","oneOf","string","func","shape","href","download","bool","target"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,gBAAgB,GAAGC,IAAI,IAAI;AAC/B,QAAMC,IAAI,GAAG,qBAAM,IAAN,EAAYD,IAAZ,EAAkBE,kBAAlB,CAAb;;AAEA,MAAI,CAACD,IAAL,EAAW;AACT,wBAAO;AAAK,MAAA,SAAS,EAAEE,eAAMC;AAAtB,MAAP;AACD;;AAED,sBACE;AAAK,IAAA,SAAS,EAAED,eAAMC;AAAtB,kBACE,6BAAC,IAAD;AAAM,IAAA,SAAS,EAAED,eAAMH;AAAvB,IADF,CADF;AAKD,CAZD;;AAcA,MAAMK,YAAY,GAAGC,IAAI,IAAI;AAC3B,UAAQA,IAAR;AACE,SAAK,OAAL;AACE,aAAOH,eAAMI,KAAb;;AACF,SAAK,YAAL;AACE,aAAOJ,eAAMK,UAAb;;AACF;AACE,aAAOL,eAAMM,OAAb;AANJ;AAQD,CATD;;AAWA,MAAMC,kBAAkB,GAAGC,KAAK,IAAI;AAClC,QAAM;AACJL,IAAAA,IAAI,GAAG,SADH;AAEJM,IAAAA,QAFI;AAGJZ,IAAAA,IAHI;AAIJ,iBAAaa,QAJT;AAKJ,kBAAcC,SALV;AAMJC,IAAAA,IANI;AAOJC,IAAAA,OAPI;AAQJC,IAAAA;AARI,MASFN,KATJ;AAUA,QAAMO,WAAW,GAAGnB,gBAAgB,CAACC,IAAD,CAApC;AACA,QAAMmB,WAAW,GAAG,yBAClBd,YAAY,CAACC,IAAD,CADM,EAElBS,IAAI,IAAIZ,eAAMY,IAFI,EAGlBH,QAAQ,IAAIT,eAAMS,QAHA,EAIlBK,SAJkB,CAApB;AAOA,QAAMG,aAAa,GAAG,oBAAQ,MAAM,MAAMJ,OAAO,EAA3B,EAA+B,CAACA,OAAD,CAA/B,CAAtB;;AAEA,MAAID,IAAJ,EAAU;AACR,wBACE,6BAAC,aAAD,eACMA,IADN;AAEE,MAAA,SAAS,EAAEI,WAFb;AAGE,mBAAWN,QAHb;AAIE,oBAAYC,SAJd;AAKE,MAAA,KAAK,EAAEA;AALT,QAOGI,WAPH,CADF;AAWD;;AAED,sBACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,kBAAYJ,SAFd;AAGE,iBAAWD,QAHb;AAIE,IAAA,KAAK,EAAEC,SAJT;AAKE,IAAA,SAAS,EAAEK,WALb;AAME,IAAA,OAAO,EAAEC;AANX,KAQGF,WARH,CADF;AAYD,CA/CD;;AAiDAR,kBAAkB,CAACW,SAAnB,2CAA+B;AAC7Bf,EAAAA,IAAI,EAAEgB,mBAAUC,KAAV,CAAgB,CAAC,SAAD,EAAY,OAAZ,EAAqB,YAArB,CAAhB,CADuB;AAE7B,gBAAcD,mBAAUE,MAFK;AAG7B,eAAaF,mBAAUE,MAHM;AAI7BxB,EAAAA,IAAI,EAAEsB,mBAAUC,KAAV,CAAgB,oBAAKrB,kBAAL,CAAhB,CAJuB;AAK7Bc,EAAAA,OAAO,EAAEM,mBAAUG,IALU;AAM7BV,EAAAA,IAAI,EAAEO,mBAAUI,KAAV,CAAgB;AACpBC,IAAAA,IAAI,EAAEL,mBAAUE,MADI;AAEpBI,IAAAA,QAAQ,EAAEN,mBAAUO,IAFA;AAGpBC,IAAAA,MAAM,EAAER,mBAAUC,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB;AAHY,GAAhB,CANuB;AAW7BX,EAAAA,QAAQ,EAAEU,mBAAUO,IAXS;AAY7BZ,EAAAA,SAAS,EAAEK,mBAAUE;AAZQ,CAA/B;eAeed,kB","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, keys} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {ICONS} from '../../util/button-icons';\nimport Link from '../link';\nimport style from './style.css';\n\nconst getButtonContent = icon => {\n const Icon = getOr(null, icon, ICONS);\n\n if (!Icon) {\n return <div className={style.buttonContent} />;\n }\n\n return (\n <div className={style.buttonContent}>\n <Icon className={style.icon} />\n </div>\n );\n};\n\nconst getSizeStyle = size => {\n switch (size) {\n case 'small':\n return style.small;\n case 'responsive':\n return style.responsive;\n default:\n return style.default;\n }\n};\n\nconst ButtonLinkIconOnly = props => {\n const {\n size = 'default',\n disabled,\n icon,\n 'data-name': dataName,\n 'aria-label': ariaLabel,\n link,\n onClick,\n className\n } = props;\n const contentView = getButtonContent(icon);\n const styleButton = classnames(\n getSizeStyle(size),\n link && style.link,\n disabled && style.disabled,\n className\n );\n\n const handleOnClick = useMemo(() => () => onClick(), [onClick]);\n\n if (link) {\n return (\n <Link\n {...link}\n className={styleButton}\n data-name={dataName}\n aria-label={ariaLabel}\n title={ariaLabel}\n >\n {contentView}\n </Link>\n );\n }\n\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n data-name={dataName}\n title={ariaLabel}\n className={styleButton}\n onClick={handleOnClick}\n >\n {contentView}\n </button>\n );\n};\n\nButtonLinkIconOnly.propTypes = {\n size: PropTypes.oneOf(['default', 'small', 'responsive']),\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n icon: PropTypes.oneOf(keys(ICONS)),\n onClick: PropTypes.func,\n link: PropTypes.shape({\n href: PropTypes.string,\n download: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])\n }),\n disabled: PropTypes.bool,\n className: PropTypes.string\n};\n\nexport default ButtonLinkIconOnly;\n"],"file":"index.js"}
@@ -1,6 +1,9 @@
1
+ @value breakpoints: "../../variables/breakpoints.css";
2
+ @value tablet from breakpoints;
1
3
  @value colors: "../../variables/colors.css";
2
4
  @value cm_grey_100 from colors;
3
5
  @value cm_grey_200 from colors;
6
+ @value white from colors;
4
7
 
5
8
  .button {
6
9
  font-family: Gilroy;
@@ -46,6 +49,18 @@
46
49
  border-radius: 7px;
47
50
  }
48
51
 
52
+ .responsive {
53
+ composes: button;
54
+ width: 44px;
55
+ height: 44px;
56
+ border-radius: 7px;
57
+ }
58
+
59
+ .responsive .icon {
60
+ width: 14px;
61
+ height: 14px;
62
+ }
63
+
49
64
  .small {
50
65
  composes: button;
51
66
  width: 32px;
@@ -53,6 +68,20 @@
53
68
  border-radius: 5px;
54
69
  }
55
70
 
71
+ @media tablet {
72
+ .responsive {
73
+ composes: button;
74
+ width: 32px;
75
+ height: 32px;
76
+ border-radius: 5px;
77
+ }
78
+
79
+ .responsive .icon {
80
+ width: 12px;
81
+ height: 12px;
82
+ }
83
+ }
84
+
56
85
  .default .icon {
57
86
  width: 14px;
58
87
  height: 14px;
@@ -18,6 +18,8 @@ var _buttonIconBullet = _interopRequireDefault(require("./fixtures/button-icon-b
18
18
 
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
20
 
21
+ 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); }
22
+
21
23
  (0, _browserEnv.default)();
22
24
  (0, _enzyme.configure)({
23
25
  adapter: new _enzymeAdapterReact.default()
@@ -34,4 +36,16 @@ const translate = _identity2.default;
34
36
  button.first().simulate('click', {});
35
37
  t.pass();
36
38
  });
39
+ (0, _ava.default)('should mount ButtonLinkIconOnly even if the className does not exist', t => {
40
+ const wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_.default, _extends({}, _buttonIconBullet.default.props, {
41
+ className: 'noClass'
42
+ })), {
43
+ context: {
44
+ translate
45
+ }
46
+ });
47
+ const button = wrapper.find('[data-name="bullet-button"]');
48
+ t.true(button.exists());
49
+ t.pass();
50
+ });
37
51
  //# sourceMappingURL=button-link-icon-only.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/atom/button-link-icon-only/test/button-link-icon-only.js"],"names":["adapter","Adapter","translate","t","wrapper","defaultFixture","props","context","button","find","true","exists","first","simulate","pass"],"mappings":";;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;AAEA;AACA,uBAAU;AAACA,EAAAA,OAAO,EAAE,IAAIC,2BAAJ;AAAV,CAAV;AACA,MAAMC,SAAS,qBAAf;AAEA,kBAAK,6DAAL,EAAoEC,CAAC,IAAI;AACvE,QAAMC,OAAO,GAAG,mCAAQ,6BAAC,SAAD,EAAwBC,0BAAeC,KAAvC,CAAR,EAA0D;AACxEC,IAAAA,OAAO,EAAE;AAACL,MAAAA;AAAD;AAD+D,GAA1D,CAAhB;AAGA,QAAMM,MAAM,GAAGJ,OAAO,CAACK,IAAR,CAAa,6BAAb,CAAf;AACAN,EAAAA,CAAC,CAACO,IAAF,CAAOF,MAAM,CAACG,MAAP,EAAP;AACAH,EAAAA,MAAM,CAACI,KAAP,GAAeC,QAAf,CAAwB,OAAxB,EAAiC,EAAjC;AACAV,EAAAA,CAAC,CAACW,IAAF;AACD,CARD","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {shallow, configure} from 'enzyme';\nimport {identity} from 'lodash/fp';\nimport Adapter from 'enzyme-adapter-react-16';\nimport ButtonLinkIconOnly from '..';\nimport defaultFixture from './fixtures/button-icon-bullet';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\nconst translate = identity;\n\ntest('should launch onClick on click event for ButtonLinkIconOnly', t => {\n const wrapper = shallow(<ButtonLinkIconOnly {...defaultFixture.props} />, {\n context: {translate}\n });\n const button = wrapper.find('[data-name=\"bullet-button\"]');\n t.true(button.exists());\n button.first().simulate('click', {});\n t.pass();\n});\n"],"file":"button-link-icon-only.js"}
1
+ {"version":3,"sources":["../../../../src/atom/button-link-icon-only/test/button-link-icon-only.js"],"names":["adapter","Adapter","translate","t","wrapper","defaultFixture","props","context","button","find","true","exists","first","simulate","pass"],"mappings":";;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;AAEA;AACA,uBAAU;AAACA,EAAAA,OAAO,EAAE,IAAIC,2BAAJ;AAAV,CAAV;AACA,MAAMC,SAAS,qBAAf;AAEA,kBAAK,6DAAL,EAAoEC,CAAC,IAAI;AACvE,QAAMC,OAAO,GAAG,mCAAQ,6BAAC,SAAD,EAAwBC,0BAAeC,KAAvC,CAAR,EAA0D;AACxEC,IAAAA,OAAO,EAAE;AAACL,MAAAA;AAAD;AAD+D,GAA1D,CAAhB;AAGA,QAAMM,MAAM,GAAGJ,OAAO,CAACK,IAAR,CAAa,6BAAb,CAAf;AACAN,EAAAA,CAAC,CAACO,IAAF,CAAOF,MAAM,CAACG,MAAP,EAAP;AACAH,EAAAA,MAAM,CAACI,KAAP,GAAeC,QAAf,CAAwB,OAAxB,EAAiC,EAAjC;AACAV,EAAAA,CAAC,CAACW,IAAF;AACD,CARD;AAUA,kBAAK,sEAAL,EAA6EX,CAAC,IAAI;AAChF,QAAMC,OAAO,GAAG,mCAAQ,6BAAC,SAAD,eAAwBC,0BAAeC,KAAvC;AAA8C,IAAA,SAAS,EAAE;AAAzD,KAAR,EAAgF;AAC9FC,IAAAA,OAAO,EAAE;AAACL,MAAAA;AAAD;AADqF,GAAhF,CAAhB;AAGA,QAAMM,MAAM,GAAGJ,OAAO,CAACK,IAAR,CAAa,6BAAb,CAAf;AACAN,EAAAA,CAAC,CAACO,IAAF,CAAOF,MAAM,CAACG,MAAP,EAAP;AACAR,EAAAA,CAAC,CAACW,IAAF;AACD,CAPD","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {shallow, configure} from 'enzyme';\nimport {identity} from 'lodash/fp';\nimport Adapter from 'enzyme-adapter-react-16';\nimport ButtonLinkIconOnly from '..';\nimport defaultFixture from './fixtures/button-icon-bullet';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\nconst translate = identity;\n\ntest('should launch onClick on click event for ButtonLinkIconOnly', t => {\n const wrapper = shallow(<ButtonLinkIconOnly {...defaultFixture.props} />, {\n context: {translate}\n });\n const button = wrapper.find('[data-name=\"bullet-button\"]');\n t.true(button.exists());\n button.first().simulate('click', {});\n t.pass();\n});\n\ntest('should mount ButtonLinkIconOnly even if the className does not exist', t => {\n const wrapper = shallow(<ButtonLinkIconOnly {...defaultFixture.props} className={'noClass'} />, {\n context: {translate}\n });\n const button = wrapper.find('[data-name=\"bullet-button\"]');\n t.true(button.exists());\n t.pass();\n});\n"],"file":"button-link-icon-only.js"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _default = {
6
+ props: {
7
+ size: 'responsive',
8
+ 'data-name': 'default-button',
9
+ 'aria-label': 'aria button',
10
+ icon: 'close',
11
+ onClick: () => console.log('click')
12
+ }
13
+ };
14
+ exports.default = _default;
15
+ //# sourceMappingURL=review-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/atom/button-link-icon-only/test/fixtures/review-header.js"],"names":["props","size","icon","onClick","console","log"],"mappings":";;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,YADD;AAEL,iBAAa,gBAFR;AAGL,kBAAc,aAHT;AAILC,IAAAA,IAAI,EAAE,OAJD;AAKLC,IAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ;AALV;AADM,C","sourcesContent":["export default {\n props: {\n size: 'responsive',\n 'data-name': 'default-button',\n 'aria-label': 'aria button',\n icon: 'close',\n onClick: () => console.log('click')\n }\n};\n"],"file":"review-header.js"}
@@ -3,9 +3,9 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
5
 
6
- var _constant2 = _interopRequireDefault(require("lodash/fp/constant"));
6
+ var _isEmpty2 = _interopRequireDefault(require("lodash/fp/isEmpty"));
7
7
 
8
- var _get2 = _interopRequireDefault(require("lodash/fp/get"));
8
+ var _constant2 = _interopRequireDefault(require("lodash/fp/constant"));
9
9
 
10
10
  var _uniqueId2 = _interopRequireDefault(require("lodash/fp/uniqueId"));
11
11
 
@@ -15,18 +15,18 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
16
  var _novaIcons = require("@coorpacademy/nova-icons");
17
17
 
18
- var _provider = _interopRequireDefault(require("../provider"));
19
-
20
18
  var _loader = _interopRequireDefault(require("../loader"));
21
19
 
20
+ var _buttonLink = _interopRequireDefault(require("../button-link"));
21
+
22
+ var _getClassState = _interopRequireDefault(require("../../util/get-class-state"));
23
+
22
24
  var _style = _interopRequireDefault(require("./style.css"));
23
25
 
24
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
27
 
26
28
  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); }
27
29
 
28
- 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; }
29
-
30
30
  const constantNull = (0, _constant2.default)(null);
31
31
 
32
32
  class DragAndDrop extends _react.default.Component {
@@ -52,10 +52,6 @@ class DragAndDrop extends _react.default.Component {
52
52
  }
53
53
 
54
54
  render() {
55
- const {
56
- skin
57
- } = this.context;
58
- const brandColor = (0, _get2.default)('common.brand', skin);
59
55
  const idBox = (0, _uniqueId2.default)('drop-box-');
60
56
  const {
61
57
  children = constantNull,
@@ -66,7 +62,8 @@ class DragAndDrop extends _react.default.Component {
66
62
  previewContent,
67
63
  loading = false,
68
64
  modified = false,
69
- onReset = null
65
+ onReset = null,
66
+ error = ''
70
67
  } = this.props;
71
68
  const {
72
69
  dragging
@@ -75,72 +72,103 @@ class DragAndDrop extends _react.default.Component {
75
72
 
76
73
  if (previewContent && previewContent.type === 'image') {
77
74
  previewView = /*#__PURE__*/_react.default.createElement("div", {
78
- className: _style.default.previewView
75
+ className: _style.default.preview
79
76
  }, /*#__PURE__*/_react.default.createElement("img", {
80
77
  src: previewContent.src
81
78
  }));
82
79
  } else if (previewContent && previewContent.type === 'video') {
83
80
  previewView = /*#__PURE__*/_react.default.createElement("div", {
84
- className: _extends(_extends({}, _style.default.previewView), {}, {
85
- width: '300px'
86
- })
81
+ className: _style.default.preview
87
82
  }, /*#__PURE__*/_react.default.createElement("video", {
88
- width: "100%",
89
83
  controls: true,
90
84
  src: previewContent.src,
91
85
  type: "video/*"
92
86
  }));
93
87
  } else if (loading) {
94
88
  previewView = /*#__PURE__*/_react.default.createElement("div", {
95
- className: _style.default.loading
96
- }, /*#__PURE__*/_react.default.createElement(_loader.default, null));
89
+ className: _style.default.loaderWrapper
90
+ }, /*#__PURE__*/_react.default.createElement("div", {
91
+ className: _style.default.loadingCancel
92
+ }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaLineStatusClose, {
93
+ "data-name": "reset-content-icon",
94
+ height: 16,
95
+ width: 16,
96
+ className: _style.default.closeIcon,
97
+ onClick: onReset
98
+ })), /*#__PURE__*/_react.default.createElement("div", {
99
+ className: _style.default.loader
100
+ }, /*#__PURE__*/_react.default.createElement(_loader.default, {
101
+ theme: "coorpmanager"
102
+ })), /*#__PURE__*/_react.default.createElement("span", {
103
+ className: _style.default.loaderText
104
+ }, "Uploading"));
97
105
  } else {
98
106
  previewView = /*#__PURE__*/_react.default.createElement("span", null, previewLabel);
99
107
  }
100
108
 
101
- const resetContent = previewContent && previewContent.src && onReset ? /*#__PURE__*/_react.default.createElement("div", {
109
+ const resetContent = previewContent && previewContent.src ? /*#__PURE__*/_react.default.createElement("div", {
102
110
  className: _style.default.resetUploadWrapper
103
111
  }, /*#__PURE__*/_react.default.createElement("div", {
104
112
  className: _style.default.resetSrcLabel
105
- }, previewContent.src), /*#__PURE__*/_react.default.createElement(_novaIcons.NovaLineStatusClose, {
113
+ }, previewContent.src), onReset ? /*#__PURE__*/_react.default.createElement(_novaIcons.NovaLineStatusClose, {
106
114
  "data-name": "reset-content-icon",
107
115
  height: 16,
108
116
  width: 16,
109
117
  className: _style.default.closeIcon,
110
118
  onClick: onReset
111
- })) : null;
119
+ }) : null) : null;
120
+
121
+ const buildButton = () => {
122
+ const defaultButtonProps = {
123
+ label: uploadLabel,
124
+ 'aria-label': 'aria button',
125
+ 'data-name': 'default-button',
126
+ icon: {
127
+ position: 'left',
128
+ type: 'folders'
129
+ }
130
+ };
131
+
132
+ if (dragging) {
133
+ return null;
134
+ } else if (error) {
135
+ return /*#__PURE__*/_react.default.createElement(_buttonLink.default, _extends({}, defaultButtonProps, {
136
+ label: "Try again",
137
+ icon: {}
138
+ }));
139
+ } else {
140
+ return /*#__PURE__*/_react.default.createElement(_buttonLink.default, defaultButtonProps);
141
+ }
142
+ };
143
+
144
+ const button = buildButton(dragging, error);
145
+ const previewContainer = (0, _getClassState.default)(_style.default.previewContainer, _style.default.modifiedPreviewContainer, null, modified, error);
146
+ const inputWrapper = (0, _getClassState.default)(_style.default.inputWrapper, _style.default.modifiedInputWrapper, _style.default.errorInputWrapper, modified, error);
112
147
  return /*#__PURE__*/_react.default.createElement("div", {
113
148
  className: _style.default.wrapper,
114
149
  "data-name": "drag-and-drop-wrapper"
150
+ }, !(0, _isEmpty2.default)(previewContent) || loading ? /*#__PURE__*/_react.default.createElement("div", {
151
+ className: previewContainer
152
+ }, previewView) : /*#__PURE__*/_react.default.createElement("div", {
153
+ className: dragging ? _style.default.dragging : inputWrapper,
154
+ id: idBox
115
155
  }, /*#__PURE__*/_react.default.createElement("div", {
156
+ className: _style.default.infosContainer
157
+ }, error ? /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidFilesBasicFileBlock2, {
158
+ className: _style.default.iconError
159
+ }) : /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidFilesBasicFileUpload2, {
160
+ className: _style.default.icon
161
+ }), description ? /*#__PURE__*/_react.default.createElement("div", {
162
+ className: _style.default.description
163
+ }, description) : null, error ? null : /*#__PURE__*/_react.default.createElement("div", {
116
164
  className: _style.default.title
117
- }, title), /*#__PURE__*/_react.default.createElement("div", {
118
- className: modified ? _style.default.modified : _style.default.previewWrapper
119
- }, previewView), /*#__PURE__*/_react.default.createElement("div", {
120
- className: dragging ? _style.default.dragging : _style.default.inputWrapper,
121
- id: idBox
122
- }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidDataTransferDataUpload1, {
123
- className: _style.default.arrow,
124
- color: brandColor
125
- }), /*#__PURE__*/_react.default.createElement("div", {
126
- className: _style.default.uploadLabel
127
- }, uploadLabel), children(this.handleDragStart, this.handleDragStop)), resetContent, description ?
128
- /*#__PURE__*/
129
- // eslint-disable-next-line react/no-danger
130
- _react.default.createElement("div", {
131
- className: _style.default.description,
132
- dangerouslySetInnerHTML: {
133
- __html: description
134
- }
135
- }) : null);
165
+ }, title)), button, /*#__PURE__*/_react.default.createElement("div", null, children(this.handleDragStart, this.handleDragStop))), error ? /*#__PURE__*/_react.default.createElement("span", {
166
+ className: _style.default.errorMessage
167
+ }, error) : resetContent);
136
168
  }
137
169
 
138
170
  }
139
171
 
140
- _defineProperty(DragAndDrop, "contextTypes", {
141
- skin: _provider.default.childContextTypes.skin
142
- });
143
-
144
172
  DragAndDrop.propTypes = process.env.NODE_ENV !== "production" ? {
145
173
  title: _propTypes.default.string,
146
174
  description: _propTypes.default.string,
@@ -153,7 +181,8 @@ DragAndDrop.propTypes = process.env.NODE_ENV !== "production" ? {
153
181
  loading: _propTypes.default.bool,
154
182
  modified: _propTypes.default.bool,
155
183
  children: _propTypes.default.func,
156
- onReset: _propTypes.default.func
184
+ onReset: _propTypes.default.func,
185
+ error: _propTypes.default.string
157
186
  } : {};
158
187
  var _default = DragAndDrop;
159
188
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/drag-and-drop/index.js"],"names":["constantNull","DragAndDrop","React","Component","constructor","props","state","dragging","handleDragStart","bind","handleDragStop","setState","render","skin","context","brandColor","idBox","children","title","description","uploadLabel","previewLabel","previewContent","loading","modified","onReset","previewView","type","style","src","width","resetContent","resetUploadWrapper","resetSrcLabel","closeIcon","wrapper","previewWrapper","inputWrapper","arrow","__html","Provider","childContextTypes","propTypes","PropTypes","string","shape","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {uniqueId, get, constant} from 'lodash/fp';\nimport {\n NovaSolidDataTransferDataUpload1 as UploadIcon,\n NovaLineStatusClose as Close\n} from '@coorpacademy/nova-icons';\nimport Provider from '../provider';\nimport Loader from '../loader';\nimport style from './style.css';\n\nconst constantNull = constant(null);\n\nclass DragAndDrop extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n description: PropTypes.string,\n uploadLabel: PropTypes.string,\n previewLabel: PropTypes.string,\n previewContent: PropTypes.shape({\n type: PropTypes.string,\n src: PropTypes.string\n }),\n loading: PropTypes.bool,\n modified: PropTypes.bool,\n children: PropTypes.func,\n onReset: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n dragging: false\n };\n\n this.handleDragStart = this.handleDragStart.bind(this);\n this.handleDragStop = this.handleDragStop.bind(this);\n }\n\n handleDragStart() {\n this.setState({\n dragging: true\n });\n }\n\n handleDragStop() {\n this.setState({\n dragging: false\n });\n }\n\n render() {\n const {skin} = this.context;\n const brandColor = get('common.brand', skin);\n const idBox = uniqueId('drop-box-');\n const {\n children = constantNull,\n title,\n description,\n uploadLabel,\n previewLabel = '',\n previewContent,\n loading = false,\n modified = false,\n onReset = null\n } = this.props;\n const {dragging} = this.state;\n\n let previewView = null;\n\n if (previewContent && previewContent.type === 'image') {\n previewView = (\n <div className={style.previewView}>\n <img src={previewContent.src} />\n </div>\n );\n } else if (previewContent && previewContent.type === 'video') {\n previewView = (\n <div className={{...style.previewView, width: '300px'}}>\n <video width=\"100%\" controls src={previewContent.src} type=\"video/*\" />\n </div>\n );\n } else if (loading) {\n previewView = (\n <div className={style.loading}>\n <Loader />\n </div>\n );\n } else {\n previewView = <span>{previewLabel}</span>;\n }\n\n const resetContent =\n previewContent && previewContent.src && onReset ? (\n <div className={style.resetUploadWrapper}>\n <div className={style.resetSrcLabel}>{previewContent.src}</div>\n <Close\n data-name=\"reset-content-icon\"\n height={16}\n width={16}\n className={style.closeIcon}\n onClick={onReset}\n />\n </div>\n ) : null;\n\n return (\n <div className={style.wrapper} data-name=\"drag-and-drop-wrapper\">\n <div className={style.title}>{title}</div>\n <div className={modified ? style.modified : style.previewWrapper}>{previewView}</div>\n <div className={dragging ? style.dragging : style.inputWrapper} id={idBox}>\n <UploadIcon className={style.arrow} color={brandColor} />\n <div className={style.uploadLabel}>{uploadLabel}</div>\n {children(this.handleDragStart, this.handleDragStop)}\n </div>\n {resetContent}\n {description ? (\n // eslint-disable-next-line react/no-danger\n <div className={style.description} dangerouslySetInnerHTML={{__html: description}} />\n ) : null}\n </div>\n );\n }\n}\n\nexport default DragAndDrop;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/atom/drag-and-drop/index.js"],"names":["constantNull","DragAndDrop","React","Component","constructor","props","state","dragging","handleDragStart","bind","handleDragStop","setState","render","idBox","children","title","description","uploadLabel","previewLabel","previewContent","loading","modified","onReset","error","previewView","type","style","preview","src","loaderWrapper","loadingCancel","closeIcon","loader","loaderText","resetContent","resetUploadWrapper","resetSrcLabel","buildButton","defaultButtonProps","label","icon","position","button","previewContainer","modifiedPreviewContainer","inputWrapper","modifiedInputWrapper","errorInputWrapper","wrapper","infosContainer","iconError","errorMessage","propTypes","PropTypes","string","shape","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {uniqueId, constant, isEmpty} from 'lodash/fp';\nimport {\n NovaLineStatusClose as Close,\n NovaSolidFilesBasicFileUpload2 as FileUploadIcon,\n NovaSolidFilesBasicFileBlock2 as FileUploadBlockedIcon\n} from '@coorpacademy/nova-icons';\nimport Loader from '../loader';\nimport Button from '../button-link';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst constantNull = constant(null);\n\nclass DragAndDrop extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n description: PropTypes.string,\n uploadLabel: PropTypes.string,\n previewLabel: PropTypes.string,\n previewContent: PropTypes.shape({\n type: PropTypes.string,\n src: PropTypes.string\n }),\n loading: PropTypes.bool,\n modified: PropTypes.bool,\n children: PropTypes.func,\n onReset: PropTypes.func,\n error: PropTypes.string\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n dragging: false\n };\n\n this.handleDragStart = this.handleDragStart.bind(this);\n this.handleDragStop = this.handleDragStop.bind(this);\n }\n\n handleDragStart() {\n this.setState({\n dragging: true\n });\n }\n\n handleDragStop() {\n this.setState({\n dragging: false\n });\n }\n\n render() {\n const idBox = uniqueId('drop-box-');\n const {\n children = constantNull,\n title,\n description,\n uploadLabel,\n previewLabel = '',\n previewContent,\n loading = false,\n modified = false,\n onReset = null,\n error = ''\n } = this.props;\n const {dragging} = this.state;\n\n let previewView = null;\n\n if (previewContent && previewContent.type === 'image') {\n previewView = (\n <div className={style.preview}>\n <img src={previewContent.src} />\n </div>\n );\n } else if (previewContent && previewContent.type === 'video') {\n previewView = (\n <div className={style.preview}>\n <video controls src={previewContent.src} type=\"video/*\" />\n </div>\n );\n } else if (loading) {\n previewView = (\n <div className={style.loaderWrapper}>\n <div className={style.loadingCancel}>\n <Close\n data-name=\"reset-content-icon\"\n height={16}\n width={16}\n className={style.closeIcon}\n onClick={onReset}\n />\n </div>\n <div className={style.loader}>\n <Loader theme=\"coorpmanager\" />\n </div>\n <span className={style.loaderText}>Uploading</span>\n </div>\n );\n } else {\n previewView = <span>{previewLabel}</span>;\n }\n\n const resetContent =\n previewContent && previewContent.src ? (\n <div className={style.resetUploadWrapper}>\n <div className={style.resetSrcLabel}>{previewContent.src}</div>\n {onReset ? (\n <Close\n data-name=\"reset-content-icon\"\n height={16}\n width={16}\n className={style.closeIcon}\n onClick={onReset}\n />\n ) : null}\n </div>\n ) : null;\n\n const buildButton = () => {\n const defaultButtonProps = {\n label: uploadLabel,\n 'aria-label': 'aria button',\n 'data-name': 'default-button',\n icon: {\n position: 'left',\n type: 'folders'\n }\n };\n if (dragging) {\n return null;\n } else if (error) {\n return <Button {...defaultButtonProps} label=\"Try again\" icon={{}} />;\n } else {\n return <Button {...defaultButtonProps} />;\n }\n };\n\n const button = buildButton(dragging, error);\n\n const previewContainer = getClassState(\n style.previewContainer,\n style.modifiedPreviewContainer,\n null,\n modified,\n error\n );\n const inputWrapper = getClassState(\n style.inputWrapper,\n style.modifiedInputWrapper,\n style.errorInputWrapper,\n modified,\n error\n );\n\n return (\n <div className={style.wrapper} data-name=\"drag-and-drop-wrapper\">\n {!isEmpty(previewContent) || loading ? (\n <div className={previewContainer}>{previewView}</div>\n ) : (\n <div className={dragging ? style.dragging : inputWrapper} id={idBox}>\n <div className={style.infosContainer}>\n {error ? (\n <FileUploadBlockedIcon className={style.iconError} />\n ) : (\n <FileUploadIcon className={style.icon} />\n )}\n {description ? <div className={style.description}>{description}</div> : null}\n {error ? null : <div className={style.title}>{title}</div>}\n </div>\n {button}\n <div>{children(this.handleDragStart, this.handleDragStop)}</div>\n </div>\n )}\n {error ? <span className={style.errorMessage}>{error}</span> : resetContent}\n </div>\n );\n }\n}\n\nexport default DragAndDrop;\n"],"file":"index.js"}