@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
@@ -26,6 +26,19 @@ const getButtonContent = icon => {
26
26
  }));
27
27
  };
28
28
 
29
+ const getSizeStyle = size => {
30
+ switch (size) {
31
+ case 'small':
32
+ return style.small;
33
+
34
+ case 'responsive':
35
+ return style.responsive;
36
+
37
+ default:
38
+ return style.default;
39
+ }
40
+ };
41
+
29
42
  const ButtonLinkIconOnly = props => {
30
43
  const {
31
44
  size = 'default',
@@ -34,10 +47,11 @@ const ButtonLinkIconOnly = props => {
34
47
  'data-name': dataName,
35
48
  'aria-label': ariaLabel,
36
49
  link,
37
- onClick
50
+ onClick,
51
+ className
38
52
  } = props;
39
53
  const contentView = getButtonContent(icon);
40
- const styleButton = classnames(size === 'default' ? style.default : style.small, link && style.link, disabled && style.disabled);
54
+ const styleButton = classnames(getSizeStyle(size), link && style.link, disabled && style.disabled, className);
41
55
  const handleOnClick = useMemo(() => () => onClick(), [onClick]);
42
56
 
43
57
  if (link) {
@@ -60,7 +74,7 @@ const ButtonLinkIconOnly = props => {
60
74
  };
61
75
 
62
76
  ButtonLinkIconOnly.propTypes = process.env.NODE_ENV !== "production" ? {
63
- size: PropTypes.oneOf(['default', 'small']),
77
+ size: PropTypes.oneOf(['default', 'small', 'responsive']),
64
78
  'aria-label': PropTypes.string,
65
79
  'data-name': PropTypes.string,
66
80
  icon: PropTypes.oneOf(_keys(ICONS)),
@@ -70,7 +84,8 @@ ButtonLinkIconOnly.propTypes = process.env.NODE_ENV !== "production" ? {
70
84
  download: PropTypes.bool,
71
85
  target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])
72
86
  }),
73
- disabled: PropTypes.bool
87
+ disabled: PropTypes.bool,
88
+ className: PropTypes.string
74
89
  } : {};
75
90
  export default ButtonLinkIconOnly;
76
91
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/button-link-icon-only/index.js"],"names":["React","useMemo","PropTypes","classnames","ICONS","Link","style","getButtonContent","icon","Icon","buttonContent","ButtonLinkIconOnly","props","size","disabled","dataName","ariaLabel","link","onClick","contentView","styleButton","default","small","handleOnClick","propTypes","oneOf","string","func","shape","href","download","bool","target"],"mappings":";;;;;AAAA,OAAOA,KAAP,IAAeC,OAAf,QAA6B,OAA7B;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,KAAR,QAAoB,yBAApB;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,gBAAgB,GAAGC,IAAI,IAAI;AAC/B,QAAMC,IAAI,GAAG,OAAM,IAAN,EAAYD,IAAZ,EAAkBJ,KAAlB,CAAb;;AAEA,MAAI,CAACK,IAAL,EAAW;AACT,wBAAO;AAAK,MAAA,SAAS,EAAEH,KAAK,CAACI;AAAtB,MAAP;AACD;;AAED,sBACE;AAAK,IAAA,SAAS,EAAEJ,KAAK,CAACI;AAAtB,kBACE,oBAAC,IAAD;AAAM,IAAA,SAAS,EAAEJ,KAAK,CAACE;AAAvB,IADF,CADF;AAKD,CAZD;;AAcA,MAAMG,kBAAkB,GAAGC,KAAK,IAAI;AAClC,QAAM;AACJC,IAAAA,IAAI,GAAG,SADH;AAEJC,IAAAA,QAFI;AAGJN,IAAAA,IAHI;AAIJ,iBAAaO,QAJT;AAKJ,kBAAcC,SALV;AAMJC,IAAAA,IANI;AAOJC,IAAAA;AAPI,MAQFN,KARJ;AASA,QAAMO,WAAW,GAAGZ,gBAAgB,CAACC,IAAD,CAApC;AACA,QAAMY,WAAW,GAAGjB,UAAU,CAC5BU,IAAI,KAAK,SAAT,GAAqBP,KAAK,CAACe,OAA3B,GAAqCf,KAAK,CAACgB,KADf,EAE5BL,IAAI,IAAIX,KAAK,CAACW,IAFc,EAG5BH,QAAQ,IAAIR,KAAK,CAACQ,QAHU,CAA9B;AAMA,QAAMS,aAAa,GAAGtB,OAAO,CAAC,MAAM,MAAMiB,OAAO,EAApB,EAAwB,CAACA,OAAD,CAAxB,CAA7B;;AAEA,MAAID,IAAJ,EAAU;AACR,wBACE,oBAAC,IAAD,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,EAAEX,SAAS,CAACuB,KAAV,CAAgB,CAAC,SAAD,EAAY,OAAZ,CAAhB,CADuB;AAE7B,gBAAcvB,SAAS,CAACwB,MAFK;AAG7B,eAAaxB,SAAS,CAACwB,MAHM;AAI7BlB,EAAAA,IAAI,EAAEN,SAAS,CAACuB,KAAV,CAAgB,MAAKrB,KAAL,CAAhB,CAJuB;AAK7Bc,EAAAA,OAAO,EAAEhB,SAAS,CAACyB,IALU;AAM7BV,EAAAA,IAAI,EAAEf,SAAS,CAAC0B,KAAV,CAAgB;AACpBC,IAAAA,IAAI,EAAE3B,SAAS,CAACwB,MADI;AAEpBI,IAAAA,QAAQ,EAAE5B,SAAS,CAAC6B,IAFA;AAGpBC,IAAAA,MAAM,EAAE9B,SAAS,CAACuB,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB;AAHY,GAAhB,CANuB;AAW7BX,EAAAA,QAAQ,EAAEZ,SAAS,CAAC6B;AAXS,CAA/B;AAcA,eAAepB,kBAAf","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":["React","useMemo","PropTypes","classnames","ICONS","Link","style","getButtonContent","icon","Icon","buttonContent","getSizeStyle","size","small","responsive","default","ButtonLinkIconOnly","props","disabled","dataName","ariaLabel","link","onClick","className","contentView","styleButton","handleOnClick","propTypes","oneOf","string","func","shape","href","download","bool","target"],"mappings":"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","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;
@@ -1,4 +1,7 @@
1
1
  import _identity from "lodash/fp/identity";
2
+
3
+ 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); }
4
+
2
5
  import browserEnv from 'browser-env';
3
6
  import test from 'ava';
4
7
  import React from 'react';
@@ -22,4 +25,16 @@ test('should launch onClick on click event for ButtonLinkIconOnly', t => {
22
25
  button.first().simulate('click', {});
23
26
  t.pass();
24
27
  });
28
+ test('should mount ButtonLinkIconOnly even if the className does not exist', t => {
29
+ const wrapper = shallow( /*#__PURE__*/React.createElement(ButtonLinkIconOnly, _extends({}, defaultFixture.props, {
30
+ className: 'noClass'
31
+ })), {
32
+ context: {
33
+ translate
34
+ }
35
+ });
36
+ const button = wrapper.find('[data-name="bullet-button"]');
37
+ t.true(button.exists());
38
+ t.pass();
39
+ });
25
40
  //# 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":["browserEnv","test","React","shallow","configure","Adapter","ButtonLinkIconOnly","defaultFixture","adapter","translate","t","wrapper","props","context","button","find","true","exists","first","simulate","pass"],"mappings":";AAAA,OAAOA,UAAP,MAAuB,aAAvB;AACA,OAAOC,IAAP,MAAiB,KAAjB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAAQC,OAAR,EAAiBC,SAAjB,QAAiC,QAAjC;AAEA,OAAOC,OAAP,MAAoB,yBAApB;AACA,OAAOC,kBAAP,MAA+B,IAA/B;AACA,OAAOC,cAAP,MAA2B,+BAA3B;AAEAP,UAAU;AACVI,SAAS,CAAC;AAACI,EAAAA,OAAO,EAAE,IAAIH,OAAJ;AAAV,CAAD,CAAT;AACA,MAAMI,SAAS,YAAf;AAEAR,IAAI,CAAC,6DAAD,EAAgES,CAAC,IAAI;AACvE,QAAMC,OAAO,GAAGR,OAAO,eAAC,oBAAC,kBAAD,EAAwBI,cAAc,CAACK,KAAvC,CAAD,EAAmD;AACxEC,IAAAA,OAAO,EAAE;AAACJ,MAAAA;AAAD;AAD+D,GAAnD,CAAvB;AAGA,QAAMK,MAAM,GAAGH,OAAO,CAACI,IAAR,CAAa,6BAAb,CAAf;AACAL,EAAAA,CAAC,CAACM,IAAF,CAAOF,MAAM,CAACG,MAAP,EAAP;AACAH,EAAAA,MAAM,CAACI,KAAP,GAAeC,QAAf,CAAwB,OAAxB,EAAiC,EAAjC;AACAT,EAAAA,CAAC,CAACU,IAAF;AACD,CARG,CAAJ","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":["browserEnv","test","React","shallow","configure","Adapter","ButtonLinkIconOnly","defaultFixture","adapter","translate","t","wrapper","props","context","button","find","true","exists","first","simulate","pass"],"mappings":";;;;AAAA,OAAOA,UAAP,MAAuB,aAAvB;AACA,OAAOC,IAAP,MAAiB,KAAjB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAAQC,OAAR,EAAiBC,SAAjB,QAAiC,QAAjC;AAEA,OAAOC,OAAP,MAAoB,yBAApB;AACA,OAAOC,kBAAP,MAA+B,IAA/B;AACA,OAAOC,cAAP,MAA2B,+BAA3B;AAEAP,UAAU;AACVI,SAAS,CAAC;AAACI,EAAAA,OAAO,EAAE,IAAIH,OAAJ;AAAV,CAAD,CAAT;AACA,MAAMI,SAAS,YAAf;AAEAR,IAAI,CAAC,6DAAD,EAAgES,CAAC,IAAI;AACvE,QAAMC,OAAO,GAAGR,OAAO,eAAC,oBAAC,kBAAD,EAAwBI,cAAc,CAACK,KAAvC,CAAD,EAAmD;AACxEC,IAAAA,OAAO,EAAE;AAACJ,MAAAA;AAAD;AAD+D,GAAnD,CAAvB;AAGA,QAAMK,MAAM,GAAGH,OAAO,CAACI,IAAR,CAAa,6BAAb,CAAf;AACAL,EAAAA,CAAC,CAACM,IAAF,CAAOF,MAAM,CAACG,MAAP,EAAP;AACAH,EAAAA,MAAM,CAACI,KAAP,GAAeC,QAAf,CAAwB,OAAxB,EAAiC,EAAjC;AACAT,EAAAA,CAAC,CAACU,IAAF;AACD,CARG,CAAJ;AAUAnB,IAAI,CAAC,sEAAD,EAAyES,CAAC,IAAI;AAChF,QAAMC,OAAO,GAAGR,OAAO,eAAC,oBAAC,kBAAD,eAAwBI,cAAc,CAACK,KAAvC;AAA8C,IAAA,SAAS,EAAE;AAAzD,KAAD,EAAyE;AAC9FC,IAAAA,OAAO,EAAE;AAACJ,MAAAA;AAAD;AADqF,GAAzE,CAAvB;AAGA,QAAMK,MAAM,GAAGH,OAAO,CAACI,IAAR,CAAa,6BAAb,CAAf;AACAL,EAAAA,CAAC,CAACM,IAAF,CAAOF,MAAM,CAACG,MAAP,EAAP;AACAP,EAAAA,CAAC,CAACU,IAAF;AACD,CAPG,CAAJ","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,10 @@
1
+ export default {
2
+ props: {
3
+ size: 'responsive',
4
+ 'data-name': 'default-button',
5
+ 'aria-label': 'aria button',
6
+ icon: 'close',
7
+ onClick: () => console.log('click')
8
+ }
9
+ };
10
+ //# 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":"AAAA,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,CAAf","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"}
@@ -1,16 +1,15 @@
1
+ import _isEmpty from "lodash/fp/isEmpty";
1
2
  import _constant from "lodash/fp/constant";
2
- import _get from "lodash/fp/get";
3
3
  import _uniqueId from "lodash/fp/uniqueId";
4
4
 
5
5
  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); }
6
6
 
7
- 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; }
8
-
9
7
  import React from 'react';
10
8
  import PropTypes from 'prop-types';
11
- import { NovaSolidDataTransferDataUpload1 as UploadIcon, NovaLineStatusClose as Close } from '@coorpacademy/nova-icons';
12
- import Provider from '../provider';
9
+ import { NovaLineStatusClose as Close, NovaSolidFilesBasicFileUpload2 as FileUploadIcon, NovaSolidFilesBasicFileBlock2 as FileUploadBlockedIcon } from '@coorpacademy/nova-icons';
13
10
  import Loader from '../loader';
11
+ import Button from '../button-link';
12
+ import getClassState from '../../util/get-class-state';
14
13
  import style from './style.css';
15
14
 
16
15
  const constantNull = _constant(null);
@@ -38,12 +37,6 @@ class DragAndDrop extends React.Component {
38
37
  }
39
38
 
40
39
  render() {
41
- const {
42
- skin
43
- } = this.context;
44
-
45
- const brandColor = _get('common.brand', skin);
46
-
47
40
  const idBox = _uniqueId('drop-box-');
48
41
 
49
42
  const {
@@ -55,7 +48,8 @@ class DragAndDrop extends React.Component {
55
48
  previewContent,
56
49
  loading = false,
57
50
  modified = false,
58
- onReset = null
51
+ onReset = null,
52
+ error = ''
59
53
  } = this.props;
60
54
  const {
61
55
  dragging
@@ -64,72 +58,103 @@ class DragAndDrop extends React.Component {
64
58
 
65
59
  if (previewContent && previewContent.type === 'image') {
66
60
  previewView = /*#__PURE__*/React.createElement("div", {
67
- className: style.previewView
61
+ className: style.preview
68
62
  }, /*#__PURE__*/React.createElement("img", {
69
63
  src: previewContent.src
70
64
  }));
71
65
  } else if (previewContent && previewContent.type === 'video') {
72
66
  previewView = /*#__PURE__*/React.createElement("div", {
73
- className: _extends(_extends({}, style.previewView), {}, {
74
- width: '300px'
75
- })
67
+ className: style.preview
76
68
  }, /*#__PURE__*/React.createElement("video", {
77
- width: "100%",
78
69
  controls: true,
79
70
  src: previewContent.src,
80
71
  type: "video/*"
81
72
  }));
82
73
  } else if (loading) {
83
74
  previewView = /*#__PURE__*/React.createElement("div", {
84
- className: style.loading
85
- }, /*#__PURE__*/React.createElement(Loader, null));
75
+ className: style.loaderWrapper
76
+ }, /*#__PURE__*/React.createElement("div", {
77
+ className: style.loadingCancel
78
+ }, /*#__PURE__*/React.createElement(Close, {
79
+ "data-name": "reset-content-icon",
80
+ height: 16,
81
+ width: 16,
82
+ className: style.closeIcon,
83
+ onClick: onReset
84
+ })), /*#__PURE__*/React.createElement("div", {
85
+ className: style.loader
86
+ }, /*#__PURE__*/React.createElement(Loader, {
87
+ theme: "coorpmanager"
88
+ })), /*#__PURE__*/React.createElement("span", {
89
+ className: style.loaderText
90
+ }, "Uploading"));
86
91
  } else {
87
92
  previewView = /*#__PURE__*/React.createElement("span", null, previewLabel);
88
93
  }
89
94
 
90
- const resetContent = previewContent && previewContent.src && onReset ? /*#__PURE__*/React.createElement("div", {
95
+ const resetContent = previewContent && previewContent.src ? /*#__PURE__*/React.createElement("div", {
91
96
  className: style.resetUploadWrapper
92
97
  }, /*#__PURE__*/React.createElement("div", {
93
98
  className: style.resetSrcLabel
94
- }, previewContent.src), /*#__PURE__*/React.createElement(Close, {
99
+ }, previewContent.src), onReset ? /*#__PURE__*/React.createElement(Close, {
95
100
  "data-name": "reset-content-icon",
96
101
  height: 16,
97
102
  width: 16,
98
103
  className: style.closeIcon,
99
104
  onClick: onReset
100
- })) : null;
105
+ }) : null) : null;
106
+
107
+ const buildButton = () => {
108
+ const defaultButtonProps = {
109
+ label: uploadLabel,
110
+ 'aria-label': 'aria button',
111
+ 'data-name': 'default-button',
112
+ icon: {
113
+ position: 'left',
114
+ type: 'folders'
115
+ }
116
+ };
117
+
118
+ if (dragging) {
119
+ return null;
120
+ } else if (error) {
121
+ return /*#__PURE__*/React.createElement(Button, _extends({}, defaultButtonProps, {
122
+ label: "Try again",
123
+ icon: {}
124
+ }));
125
+ } else {
126
+ return /*#__PURE__*/React.createElement(Button, defaultButtonProps);
127
+ }
128
+ };
129
+
130
+ const button = buildButton(dragging, error);
131
+ const previewContainer = getClassState(style.previewContainer, style.modifiedPreviewContainer, null, modified, error);
132
+ const inputWrapper = getClassState(style.inputWrapper, style.modifiedInputWrapper, style.errorInputWrapper, modified, error);
101
133
  return /*#__PURE__*/React.createElement("div", {
102
134
  className: style.wrapper,
103
135
  "data-name": "drag-and-drop-wrapper"
136
+ }, !_isEmpty(previewContent) || loading ? /*#__PURE__*/React.createElement("div", {
137
+ className: previewContainer
138
+ }, previewView) : /*#__PURE__*/React.createElement("div", {
139
+ className: dragging ? style.dragging : inputWrapper,
140
+ id: idBox
104
141
  }, /*#__PURE__*/React.createElement("div", {
142
+ className: style.infosContainer
143
+ }, error ? /*#__PURE__*/React.createElement(FileUploadBlockedIcon, {
144
+ className: style.iconError
145
+ }) : /*#__PURE__*/React.createElement(FileUploadIcon, {
146
+ className: style.icon
147
+ }), description ? /*#__PURE__*/React.createElement("div", {
148
+ className: style.description
149
+ }, description) : null, error ? null : /*#__PURE__*/React.createElement("div", {
105
150
  className: style.title
106
- }, title), /*#__PURE__*/React.createElement("div", {
107
- className: modified ? style.modified : style.previewWrapper
108
- }, previewView), /*#__PURE__*/React.createElement("div", {
109
- className: dragging ? style.dragging : style.inputWrapper,
110
- id: idBox
111
- }, /*#__PURE__*/React.createElement(UploadIcon, {
112
- className: style.arrow,
113
- color: brandColor
114
- }), /*#__PURE__*/React.createElement("div", {
115
- className: style.uploadLabel
116
- }, uploadLabel), children(this.handleDragStart, this.handleDragStop)), resetContent, description ?
117
- /*#__PURE__*/
118
- // eslint-disable-next-line react/no-danger
119
- React.createElement("div", {
120
- className: style.description,
121
- dangerouslySetInnerHTML: {
122
- __html: description
123
- }
124
- }) : null);
151
+ }, title)), button, /*#__PURE__*/React.createElement("div", null, children(this.handleDragStart, this.handleDragStop))), error ? /*#__PURE__*/React.createElement("span", {
152
+ className: style.errorMessage
153
+ }, error) : resetContent);
125
154
  }
126
155
 
127
156
  }
128
157
 
129
- _defineProperty(DragAndDrop, "contextTypes", {
130
- skin: Provider.childContextTypes.skin
131
- });
132
-
133
158
  DragAndDrop.propTypes = process.env.NODE_ENV !== "production" ? {
134
159
  title: PropTypes.string,
135
160
  description: PropTypes.string,
@@ -142,7 +167,8 @@ DragAndDrop.propTypes = process.env.NODE_ENV !== "production" ? {
142
167
  loading: PropTypes.bool,
143
168
  modified: PropTypes.bool,
144
169
  children: PropTypes.func,
145
- onReset: PropTypes.func
170
+ onReset: PropTypes.func,
171
+ error: PropTypes.string
146
172
  } : {};
147
173
  export default DragAndDrop;
148
174
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/drag-and-drop/index.js"],"names":["React","PropTypes","NovaSolidDataTransferDataUpload1","UploadIcon","NovaLineStatusClose","Close","Provider","Loader","style","constantNull","DragAndDrop","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","src","width","resetContent","resetUploadWrapper","resetSrcLabel","closeIcon","wrapper","previewWrapper","inputWrapper","arrow","__html","childContextTypes","propTypes","string","shape","bool","func"],"mappings":";;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SACEC,gCAAgC,IAAIC,UADtC,EAEEC,mBAAmB,IAAIC,KAFzB,QAGO,0BAHP;AAIA,OAAOC,QAAP,MAAqB,aAArB;AACA,OAAOC,MAAP,MAAmB,WAAnB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,YAAY,GAAG,UAAS,IAAT,CAArB;;AAEA,MAAMC,WAAN,SAA0BV,KAAK,CAACW,SAAhC,CAA0C;AAoBxCC,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,UAAMA,KAAN;AAEA,SAAKC,KAAL,GAAa;AACXC,MAAAA,QAAQ,EAAE;AADC,KAAb;AAIA,SAAKC,eAAL,GAAuB,KAAKA,eAAL,CAAqBC,IAArB,CAA0B,IAA1B,CAAvB;AACA,SAAKC,cAAL,GAAsB,KAAKA,cAAL,CAAoBD,IAApB,CAAyB,IAAzB,CAAtB;AACD;;AAEDD,EAAAA,eAAe,GAAG;AAChB,SAAKG,QAAL,CAAc;AACZJ,MAAAA,QAAQ,EAAE;AADE,KAAd;AAGD;;AAEDG,EAAAA,cAAc,GAAG;AACf,SAAKC,QAAL,CAAc;AACZJ,MAAAA,QAAQ,EAAE;AADE,KAAd;AAGD;;AAEDK,EAAAA,MAAM,GAAG;AACP,UAAM;AAACC,MAAAA;AAAD,QAAS,KAAKC,OAApB;;AACA,UAAMC,UAAU,GAAG,KAAI,cAAJ,EAAoBF,IAApB,CAAnB;;AACA,UAAMG,KAAK,GAAG,UAAS,WAAT,CAAd;;AACA,UAAM;AACJC,MAAAA,QAAQ,GAAGhB,YADP;AAEJiB,MAAAA,KAFI;AAGJC,MAAAA,WAHI;AAIJC,MAAAA,WAJI;AAKJC,MAAAA,YAAY,GAAG,EALX;AAMJC,MAAAA,cANI;AAOJC,MAAAA,OAAO,GAAG,KAPN;AAQJC,MAAAA,QAAQ,GAAG,KARP;AASJC,MAAAA,OAAO,GAAG;AATN,QAUF,KAAKpB,KAVT;AAWA,UAAM;AAACE,MAAAA;AAAD,QAAa,KAAKD,KAAxB;AAEA,QAAIoB,WAAW,GAAG,IAAlB;;AAEA,QAAIJ,cAAc,IAAIA,cAAc,CAACK,IAAf,KAAwB,OAA9C,EAAuD;AACrDD,MAAAA,WAAW,gBACT;AAAK,QAAA,SAAS,EAAE1B,KAAK,CAAC0B;AAAtB,sBACE;AAAK,QAAA,GAAG,EAAEJ,cAAc,CAACM;AAAzB,QADF,CADF;AAKD,KAND,MAMO,IAAIN,cAAc,IAAIA,cAAc,CAACK,IAAf,KAAwB,OAA9C,EAAuD;AAC5DD,MAAAA,WAAW,gBACT;AAAK,QAAA,SAAS,wBAAM1B,KAAK,CAAC0B,WAAZ;AAAyBG,UAAAA,KAAK,EAAE;AAAhC;AAAd,sBACE;AAAO,QAAA,KAAK,EAAC,MAAb;AAAoB,QAAA,QAAQ,MAA5B;AAA6B,QAAA,GAAG,EAAEP,cAAc,CAACM,GAAjD;AAAsD,QAAA,IAAI,EAAC;AAA3D,QADF,CADF;AAKD,KANM,MAMA,IAAIL,OAAJ,EAAa;AAClBG,MAAAA,WAAW,gBACT;AAAK,QAAA,SAAS,EAAE1B,KAAK,CAACuB;AAAtB,sBACE,oBAAC,MAAD,OADF,CADF;AAKD,KANM,MAMA;AACLG,MAAAA,WAAW,gBAAG,kCAAOL,YAAP,CAAd;AACD;;AAED,UAAMS,YAAY,GAChBR,cAAc,IAAIA,cAAc,CAACM,GAAjC,IAAwCH,OAAxC,gBACE;AAAK,MAAA,SAAS,EAAEzB,KAAK,CAAC+B;AAAtB,oBACE;AAAK,MAAA,SAAS,EAAE/B,KAAK,CAACgC;AAAtB,OAAsCV,cAAc,CAACM,GAArD,CADF,eAEE,oBAAC,KAAD;AACE,mBAAU,oBADZ;AAEE,MAAA,MAAM,EAAE,EAFV;AAGE,MAAA,KAAK,EAAE,EAHT;AAIE,MAAA,SAAS,EAAE5B,KAAK,CAACiC,SAJnB;AAKE,MAAA,OAAO,EAAER;AALX,MAFF,CADF,GAWI,IAZN;AAcA,wBACE;AAAK,MAAA,SAAS,EAAEzB,KAAK,CAACkC,OAAtB;AAA+B,mBAAU;AAAzC,oBACE;AAAK,MAAA,SAAS,EAAElC,KAAK,CAACkB;AAAtB,OAA8BA,KAA9B,CADF,eAEE;AAAK,MAAA,SAAS,EAAEM,QAAQ,GAAGxB,KAAK,CAACwB,QAAT,GAAoBxB,KAAK,CAACmC;AAAlD,OAAmET,WAAnE,CAFF,eAGE;AAAK,MAAA,SAAS,EAAEnB,QAAQ,GAAGP,KAAK,CAACO,QAAT,GAAoBP,KAAK,CAACoC,YAAlD;AAAgE,MAAA,EAAE,EAAEpB;AAApE,oBACE,oBAAC,UAAD;AAAY,MAAA,SAAS,EAAEhB,KAAK,CAACqC,KAA7B;AAAoC,MAAA,KAAK,EAAEtB;AAA3C,MADF,eAEE;AAAK,MAAA,SAAS,EAAEf,KAAK,CAACoB;AAAtB,OAAoCA,WAApC,CAFF,EAGGH,QAAQ,CAAC,KAAKT,eAAN,EAAuB,KAAKE,cAA5B,CAHX,CAHF,EAQGoB,YARH,EASGX,WAAW;AAAA;AACV;AACA;AAAK,MAAA,SAAS,EAAEnB,KAAK,CAACmB,WAAtB;AAAmC,MAAA,uBAAuB,EAAE;AAACmB,QAAAA,MAAM,EAAEnB;AAAT;AAA5D,MAFU,GAGR,IAZN,CADF;AAgBD;;AAlHuC;;gBAApCjB,W,kBAgBkB;AACpBW,EAAAA,IAAI,EAAEf,QAAQ,CAACyC,iBAAT,CAA2B1B;AADb,C;;AAhBlBX,W,CACGsC,S,2CAAY;AACjBtB,EAAAA,KAAK,EAAEzB,SAAS,CAACgD,MADA;AAEjBtB,EAAAA,WAAW,EAAE1B,SAAS,CAACgD,MAFN;AAGjBrB,EAAAA,WAAW,EAAE3B,SAAS,CAACgD,MAHN;AAIjBpB,EAAAA,YAAY,EAAE5B,SAAS,CAACgD,MAJP;AAKjBnB,EAAAA,cAAc,EAAE7B,SAAS,CAACiD,KAAV,CAAgB;AAC9Bf,IAAAA,IAAI,EAAElC,SAAS,CAACgD,MADc;AAE9Bb,IAAAA,GAAG,EAAEnC,SAAS,CAACgD;AAFe,GAAhB,CALC;AASjBlB,EAAAA,OAAO,EAAE9B,SAAS,CAACkD,IATF;AAUjBnB,EAAAA,QAAQ,EAAE/B,SAAS,CAACkD,IAVH;AAWjB1B,EAAAA,QAAQ,EAAExB,SAAS,CAACmD,IAXH;AAYjBnB,EAAAA,OAAO,EAAEhC,SAAS,CAACmD;AAZF,C;AAoHrB,eAAe1C,WAAf","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":["React","PropTypes","NovaLineStatusClose","Close","NovaSolidFilesBasicFileUpload2","FileUploadIcon","NovaSolidFilesBasicFileBlock2","FileUploadBlockedIcon","Loader","Button","getClassState","style","constantNull","DragAndDrop","Component","constructor","props","state","dragging","handleDragStart","bind","handleDragStop","setState","render","idBox","children","title","description","uploadLabel","previewLabel","previewContent","loading","modified","onReset","error","previewView","type","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","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"}