@coorpacademy/components 10.21.2 → 10.22.1

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 (203) hide show
  1. package/README.md +1 -1
  2. package/es/atom/content-badge/index.js +15 -3
  3. package/es/atom/content-badge/index.js.map +1 -1
  4. package/es/atom/content-badge/style.css +6 -0
  5. package/es/atom/input-checkbox/index.js +4 -2
  6. package/es/atom/input-checkbox/index.js.map +1 -1
  7. package/es/atom/lottie-wrapper/index.js +2 -24
  8. package/es/atom/lottie-wrapper/index.js.map +1 -1
  9. package/es/atom/lottie-wrapper/prop-types.js +26 -0
  10. package/es/atom/lottie-wrapper/prop-types.js.map +1 -0
  11. package/es/atom/review-background/index.js +2 -4
  12. package/es/atom/review-background/index.js.map +1 -1
  13. package/es/atom/review-background/prop-types.js +5 -0
  14. package/es/atom/review-background/prop-types.js.map +1 -0
  15. package/es/atom/review-header-step-item/index.js +5 -8
  16. package/es/atom/review-header-step-item/index.js.map +1 -1
  17. package/es/atom/review-header-step-item/prop-types.js +7 -0
  18. package/es/atom/review-header-step-item/prop-types.js.map +1 -0
  19. package/es/atom/review-presentation/index.js +2 -15
  20. package/es/atom/review-presentation/index.js.map +1 -1
  21. package/es/atom/review-presentation/prop-types.js +18 -0
  22. package/es/atom/review-presentation/prop-types.js.map +1 -0
  23. package/es/atom/tab/index.js +1 -0
  24. package/es/atom/tab/index.js.map +1 -1
  25. package/es/molecule/answer/index.js +5 -26
  26. package/es/molecule/answer/index.js.map +1 -1
  27. package/es/molecule/answer/prop-types.js +32 -0
  28. package/es/molecule/answer/prop-types.js.map +1 -0
  29. package/es/molecule/banner/index.js +9 -4
  30. package/es/molecule/banner/index.js.map +1 -1
  31. package/es/molecule/banner/style.css +41 -6
  32. package/es/molecule/card/index.js +5 -1
  33. package/es/molecule/card/index.js.map +1 -1
  34. package/es/molecule/card/selectable.css +49 -2
  35. package/es/molecule/card/selectable.js +10 -2
  36. package/es/molecule/card/selectable.js.map +1 -1
  37. package/es/molecule/cm-popin/index.js +12 -5
  38. package/es/molecule/cm-popin/index.js.map +1 -1
  39. package/es/molecule/cm-popin/style.css +28 -0
  40. package/es/molecule/go1-banner/index.js +56 -0
  41. package/es/molecule/go1-banner/index.js.map +1 -0
  42. package/es/molecule/go1-banner/style.css +90 -0
  43. package/es/molecule/questions/free-text/index.native.js +88 -0
  44. package/es/molecule/questions/free-text/index.native.js.map +1 -0
  45. package/es/molecule/questions/qcm/index.native.js +47 -0
  46. package/es/molecule/questions/qcm/index.native.js.map +1 -0
  47. package/es/molecule/review-card-congrats/index.js +2 -13
  48. package/es/molecule/review-card-congrats/index.js.map +1 -1
  49. package/es/molecule/review-card-congrats/prop-types.js +15 -0
  50. package/es/molecule/review-card-congrats/prop-types.js.map +1 -0
  51. package/es/molecule/review-correction-popin/index.js +2 -20
  52. package/es/molecule/review-correction-popin/index.js.map +1 -1
  53. package/es/molecule/review-correction-popin/prop-types.js +21 -0
  54. package/es/molecule/review-correction-popin/prop-types.js.map +1 -0
  55. package/es/molecule/review-header-steps/index.js +2 -4
  56. package/es/molecule/review-header-steps/index.js.map +1 -1
  57. package/es/molecule/review-header-steps/prop-types.js +6 -0
  58. package/es/molecule/review-header-steps/prop-types.js.map +1 -0
  59. package/es/molecule/skill-card/index.js +2 -12
  60. package/es/molecule/skill-card/index.js.map +1 -1
  61. package/es/molecule/skill-card/prop-types.js +13 -0
  62. package/es/molecule/skill-card/prop-types.js.map +1 -0
  63. package/es/molecule/video-player/index.js +2 -17
  64. package/es/molecule/video-player/index.js.map +1 -1
  65. package/es/molecule/video-player/jwplayer-prop-types.js +38 -0
  66. package/es/molecule/video-player/jwplayer-prop-types.js.map +1 -0
  67. package/es/molecule/video-player/jwplayer.js +2 -37
  68. package/es/molecule/video-player/jwplayer.js.map +1 -1
  69. package/es/molecule/video-player/prop-types.js +53 -0
  70. package/es/molecule/video-player/prop-types.js.map +1 -0
  71. package/es/organism/brand-dashboard/index.js +6 -3
  72. package/es/organism/brand-dashboard/index.js.map +1 -1
  73. package/es/organism/review-congrats/index.js +2 -19
  74. package/es/organism/review-congrats/index.js.map +1 -1
  75. package/es/organism/review-congrats/prop-types.js +22 -0
  76. package/es/organism/review-congrats/prop-types.js.map +1 -0
  77. package/es/organism/review-header/index.js +2 -10
  78. package/es/organism/review-header/index.js.map +1 -1
  79. package/es/organism/review-header/prop-types.js +12 -0
  80. package/es/organism/review-header/prop-types.js.map +1 -0
  81. package/es/organism/review-skills/index.js +4 -19
  82. package/es/organism/review-skills/index.js.map +1 -1
  83. package/es/organism/review-skills/prop-types.js +19 -0
  84. package/es/organism/review-skills/prop-types.js.map +1 -0
  85. package/es/template/app-review/index.native.js +26 -20
  86. package/es/template/app-review/index.native.js.map +1 -1
  87. package/es/template/app-review/onboarding/index.native.js +2 -2
  88. package/es/template/app-review/onboarding/index.native.js.map +1 -1
  89. package/es/template/app-review/skills/index.native.js +2 -2
  90. package/es/template/app-review/skills/index.native.js.map +1 -1
  91. package/es/template/app-review/slides/index.js +28 -30
  92. package/es/template/app-review/slides/index.js.map +1 -1
  93. package/es/template/app-review/slides/index.native.js +49 -12
  94. package/es/template/app-review/slides/index.native.js.map +1 -1
  95. package/es/template/app-review/slides/prop-types.js +19 -19
  96. package/es/template/app-review/slides/prop-types.js.map +1 -1
  97. package/es/template/app-review/template-context.js +30 -0
  98. package/es/template/app-review/template-context.js.map +1 -0
  99. package/es/variables/analytics.js +22 -0
  100. package/es/variables/analytics.js.map +1 -0
  101. package/es/variables/colors.css +4 -0
  102. package/lib/atom/content-badge/index.js +17 -4
  103. package/lib/atom/content-badge/index.js.map +1 -1
  104. package/lib/atom/content-badge/style.css +6 -0
  105. package/lib/atom/input-checkbox/index.js +4 -2
  106. package/lib/atom/input-checkbox/index.js.map +1 -1
  107. package/lib/atom/lottie-wrapper/index.js +6 -30
  108. package/lib/atom/lottie-wrapper/index.js.map +1 -1
  109. package/lib/atom/lottie-wrapper/prop-types.js +37 -0
  110. package/lib/atom/lottie-wrapper/prop-types.js.map +1 -0
  111. package/lib/atom/review-background/index.js +3 -5
  112. package/lib/atom/review-background/index.js.map +1 -1
  113. package/lib/atom/review-background/prop-types.js +14 -0
  114. package/lib/atom/review-background/prop-types.js.map +1 -0
  115. package/lib/atom/review-header-step-item/index.js +6 -9
  116. package/lib/atom/review-header-step-item/index.js.map +1 -1
  117. package/lib/atom/review-header-step-item/prop-types.js +16 -0
  118. package/lib/atom/review-header-step-item/prop-types.js.map +1 -0
  119. package/lib/atom/review-presentation/index.js +3 -15
  120. package/lib/atom/review-presentation/index.js.map +1 -1
  121. package/lib/atom/review-presentation/prop-types.js +28 -0
  122. package/lib/atom/review-presentation/prop-types.js.map +1 -0
  123. package/lib/atom/tab/index.js +1 -0
  124. package/lib/atom/tab/index.js.map +1 -1
  125. package/lib/molecule/answer/index.js +14 -35
  126. package/lib/molecule/answer/index.js.map +1 -1
  127. package/lib/molecule/answer/prop-types.js +49 -0
  128. package/lib/molecule/answer/prop-types.js.map +1 -0
  129. package/lib/molecule/banner/index.js +9 -4
  130. package/lib/molecule/banner/index.js.map +1 -1
  131. package/lib/molecule/banner/style.css +41 -6
  132. package/lib/molecule/card/index.js +3 -1
  133. package/lib/molecule/card/index.js.map +1 -1
  134. package/lib/molecule/card/selectable.css +49 -2
  135. package/lib/molecule/card/selectable.js +9 -1
  136. package/lib/molecule/card/selectable.js.map +1 -1
  137. package/lib/molecule/cm-popin/index.js +12 -5
  138. package/lib/molecule/cm-popin/index.js.map +1 -1
  139. package/lib/molecule/cm-popin/style.css +28 -0
  140. package/lib/molecule/go1-banner/index.js +67 -0
  141. package/lib/molecule/go1-banner/index.js.map +1 -0
  142. package/lib/molecule/go1-banner/style.css +90 -0
  143. package/lib/molecule/questions/free-text/index.native.js +101 -0
  144. package/lib/molecule/questions/free-text/index.native.js.map +1 -0
  145. package/lib/molecule/questions/qcm/index.native.js +58 -0
  146. package/lib/molecule/questions/qcm/index.native.js.map +1 -0
  147. package/lib/molecule/review-card-congrats/index.js +3 -14
  148. package/lib/molecule/review-card-congrats/index.js.map +1 -1
  149. package/lib/molecule/review-card-congrats/prop-types.js +25 -0
  150. package/lib/molecule/review-card-congrats/prop-types.js.map +1 -0
  151. package/lib/molecule/review-correction-popin/index.js +3 -21
  152. package/lib/molecule/review-correction-popin/index.js.map +1 -1
  153. package/lib/molecule/review-correction-popin/prop-types.js +30 -0
  154. package/lib/molecule/review-correction-popin/prop-types.js.map +1 -0
  155. package/lib/molecule/review-header-steps/index.js +3 -5
  156. package/lib/molecule/review-header-steps/index.js.map +1 -1
  157. package/lib/molecule/review-header-steps/prop-types.js +16 -0
  158. package/lib/molecule/review-header-steps/prop-types.js.map +1 -0
  159. package/lib/molecule/skill-card/index.js +3 -13
  160. package/lib/molecule/skill-card/index.js.map +1 -1
  161. package/lib/molecule/skill-card/prop-types.js +22 -0
  162. package/lib/molecule/skill-card/prop-types.js.map +1 -0
  163. package/lib/molecule/video-player/index.js +3 -19
  164. package/lib/molecule/video-player/index.js.map +1 -1
  165. package/lib/molecule/video-player/jwplayer-prop-types.js +48 -0
  166. package/lib/molecule/video-player/jwplayer-prop-types.js.map +1 -0
  167. package/lib/molecule/video-player/jwplayer.js +3 -39
  168. package/lib/molecule/video-player/jwplayer.js.map +1 -1
  169. package/lib/molecule/video-player/prop-types.js +64 -0
  170. package/lib/molecule/video-player/prop-types.js.map +1 -0
  171. package/lib/organism/brand-dashboard/index.js +7 -3
  172. package/lib/organism/brand-dashboard/index.js.map +1 -1
  173. package/lib/organism/review-congrats/index.js +3 -20
  174. package/lib/organism/review-congrats/index.js.map +1 -1
  175. package/lib/organism/review-congrats/prop-types.js +33 -0
  176. package/lib/organism/review-congrats/prop-types.js.map +1 -0
  177. package/lib/organism/review-header/index.js +3 -11
  178. package/lib/organism/review-header/index.js.map +1 -1
  179. package/lib/organism/review-header/prop-types.js +22 -0
  180. package/lib/organism/review-header/prop-types.js.map +1 -0
  181. package/lib/organism/review-skills/index.js +10 -23
  182. package/lib/organism/review-skills/index.js.map +1 -1
  183. package/lib/organism/review-skills/prop-types.js +33 -0
  184. package/lib/organism/review-skills/prop-types.js.map +1 -0
  185. package/lib/template/app-review/index.native.js +28 -19
  186. package/lib/template/app-review/index.native.js.map +1 -1
  187. package/lib/template/app-review/onboarding/index.native.js +2 -2
  188. package/lib/template/app-review/onboarding/index.native.js.map +1 -1
  189. package/lib/template/app-review/skills/index.native.js +4 -4
  190. package/lib/template/app-review/skills/index.native.js.map +1 -1
  191. package/lib/template/app-review/slides/index.js +28 -30
  192. package/lib/template/app-review/slides/index.js.map +1 -1
  193. package/lib/template/app-review/slides/index.native.js +60 -25
  194. package/lib/template/app-review/slides/index.native.js.map +1 -1
  195. package/lib/template/app-review/slides/prop-types.js +20 -20
  196. package/lib/template/app-review/slides/prop-types.js.map +1 -1
  197. package/lib/template/app-review/template-context.js +41 -0
  198. package/lib/template/app-review/template-context.js.map +1 -0
  199. package/lib/variables/analytics.js +27 -0
  200. package/lib/variables/analytics.js.map +1 -0
  201. package/lib/variables/colors.css +4 -0
  202. package/locales/hr/global.json +2 -2
  203. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/answer/index.js"],"names":["TYPE_IMAGE","TYPE_VIDEO","TYPE_AUDIO","MediaView","media","videoId","type","childProps","style","backgroundImage","url","video","audio","isType","name","PropTypes","oneOf","videoPropType","shape","VideoPlayer","propTypes","isRequired","imgPropType","string","audioPropType","mediaUrl","oneOfType","Answer","props","model","help","buildAnswer","answerView","wrapper"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {omit} from 'lodash/fp';\nimport VideoPlayer from '../video-player';\nimport DropDown from '../questions/drop-down';\nimport FreeText from '../questions/free-text';\nimport QcmDrag from '../questions/qcm-drag';\nimport Qcm from '../questions/qcm';\nimport QcmGraphic from '../questions/qcm-graphic';\nimport QuestionRange from '../questions/question-range';\nimport Template from '../questions/template';\nimport Audio from '../audio';\nimport style from './style.css';\n\nexport const TYPE_IMAGE = 'img';\nexport const TYPE_VIDEO = 'video';\nexport const TYPE_AUDIO = 'audio';\n\nconst MediaView = ({media}) => {\n const {videoId, type, ...childProps} = media;\n switch (type) {\n case TYPE_IMAGE:\n return (\n <div\n className={style.media}\n style={{\n backgroundImage: `url(${media.url})`\n }}\n />\n );\n case TYPE_VIDEO:\n return (\n <div className={style.video}>\n <VideoPlayer {...omit('id', childProps)} id={videoId} height=\"100%\" width=\"100%\" />\n </div>\n );\n case TYPE_AUDIO:\n return (\n <div className={style.audio}>\n <Audio {...omit('id', childProps)} height=\"100%\" width=\"100%\" />\n </div>\n );\n default:\n return null;\n }\n};\n\nconst isType = name => PropTypes.oneOf([name]);\n\nconst videoPropType = PropTypes.shape({\n ...VideoPlayer.propTypes,\n type: isType(TYPE_VIDEO).isRequired\n});\n\nconst imgPropType = PropTypes.shape({\n type: isType(TYPE_IMAGE).isRequired,\n url: PropTypes.string.isRequired\n});\n\nconst audioPropType = PropTypes.shape({\n type: isType(TYPE_AUDIO).isRequired,\n mediaUrl: PropTypes.string.isRequired\n});\n\nMediaView.propTypes = {\n media: PropTypes.oneOfType([videoPropType, imgPropType, audioPropType])\n};\n\nconst Answer = props => {\n const {model, media, help} = props;\n const buildAnswer = () => {\n const {type} = model;\n\n switch (type) {\n case 'qcmDrag':\n return <QcmDrag {...model} help={help} />;\n case 'qcm':\n return <Qcm {...model} />;\n case 'qcmGraphic':\n return <QcmGraphic {...model} />;\n case 'freeText':\n return <FreeText {...model} />;\n case 'dropDown':\n return <DropDown {...model} />;\n case 'slider':\n return <QuestionRange {...model} />;\n case 'template':\n return <Template {...model} />;\n }\n };\n const answerView = buildAnswer(model);\n\n return (\n <div data-name=\"answer\" className={style.wrapper}>\n {media ? <MediaView media={media} /> : null}\n {answerView}\n </div>\n );\n};\n\nAnswer.propTypes = {\n model: PropTypes.shape({\n type: PropTypes.oneOf([\n 'qcmDrag',\n 'qcm',\n 'qcmGraphic',\n 'freeText',\n 'dropDown',\n 'slider',\n 'template'\n ]).isRequired\n }),\n help: PropTypes.string,\n media: MediaView.propTypes.media\n};\n\nexport default Answer;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/answer/index.js"],"names":["MediaView","media","videoId","type","childProps","TYPE_IMAGE","style","backgroundImage","url","TYPE_VIDEO","video","TYPE_AUDIO","audio","propTypes","MediaViewPropTypes","Answer","props","model","help","buildAnswer","answerView","wrapper"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;AAEA,MAAMA,SAAS,GAAG,CAAC;AAACC,EAAAA;AAAD,CAAD,KAAa;AAC7B,QAAM;AAACC,IAAAA,OAAD;AAAUC,IAAAA;AAAV,MAAiCF,KAAvC;AAAA,QAAyBG,UAAzB,iCAAuCH,KAAvC;;AACA,UAAQE,IAAR;AACE,SAAKE,qBAAL;AACE,0BACE;AACE,QAAA,SAAS,EAAEC,eAAML,KADnB;AAEE,QAAA,KAAK,EAAE;AACLM,UAAAA,eAAe,EAAG,OAAMN,KAAK,CAACO,GAAI;AAD7B;AAFT,QADF;;AAQF,SAAKC,qBAAL;AACE,0BACE;AAAK,QAAA,SAAS,EAAEH,eAAMI;AAAtB,sBACE,6BAAC,oBAAD,eAAiB,oBAAK,IAAL,EAAWN,UAAX,CAAjB;AAAyC,QAAA,EAAE,EAAEF,OAA7C;AAAsD,QAAA,MAAM,EAAC,MAA7D;AAAoE,QAAA,KAAK,EAAC;AAA1E,SADF,CADF;;AAKF,SAAKS,qBAAL;AACE,0BACE;AAAK,QAAA,SAAS,EAAEL,eAAMM;AAAtB,sBACE,6BAAC,cAAD,eAAW,oBAAK,IAAL,EAAWR,UAAX,CAAX;AAAmC,QAAA,MAAM,EAAC,MAA1C;AAAiD,QAAA,KAAK,EAAC;AAAvD,SADF,CADF;;AAKF;AACE,aAAO,IAAP;AAvBJ;AAyBD,CA3BD;;AA6BAJ,SAAS,CAACa,SAAV,2CAAsBC,6BAAtB;;AAEA,MAAMC,MAAM,GAAGC,KAAK,IAAI;AACtB,QAAM;AAACC,IAAAA,KAAD;AAAQhB,IAAAA,KAAR;AAAeiB,IAAAA;AAAf,MAAuBF,KAA7B;;AACA,QAAMG,WAAW,GAAG,MAAM;AACxB;AACA;AACA,UAAM;AAAChB,MAAAA;AAAD,QAASc,KAAf;;AAEA,YAAQd,IAAR;AACE,WAAK,SAAL;AACE,4BAAO,6BAAC,gBAAD,eAAac,KAAb;AAAoB,UAAA,IAAI,EAAEC;AAA1B,WAAP;;AACF,WAAK,KAAL;AACE,4BAAO,6BAAC,YAAD,EAASD,KAAT,CAAP;;AACF,WAAK,YAAL;AACE,4BAAO,6BAAC,mBAAD,EAAgBA,KAAhB,CAAP;;AACF,WAAK,UAAL;AACE,4BAAO,6BAAC,iBAAD,EAAcA,KAAd,CAAP;;AACF,WAAK,UAAL;AACE,4BAAO,6BAAC,iBAAD,EAAcA,KAAd,CAAP;;AACF,WAAK,QAAL;AACE,4BAAO,6BAAC,sBAAD,EAAmBA,KAAnB,CAAP;;AACF,WAAK,UAAL;AACE,4BAAO,6BAAC,iBAAD,EAAcA,KAAd,CAAP;AAdJ;AAgBD,GArBD;;AAsBA,QAAMG,UAAU,GAAGD,WAAW,CAACF,KAAD,CAA9B;AAEA,sBACE;AAAK,iBAAU,QAAf;AAAwB,IAAA,SAAS,EAAEX,eAAMe;AAAzC,KACGpB,KAAK,gBAAG,6BAAC,SAAD;AAAW,IAAA,KAAK,EAAEA;AAAlB,IAAH,GAAiC,IADzC,EAEGmB,UAFH,CADF;AAMD,CAhCD;;AAkCAL,MAAM,CAACF,SAAP,2CAAmBA,kBAAnB;eAEeE,M","sourcesContent":["import React from 'react';\nimport {omit} from 'lodash/fp';\nimport VideoPlayer from '../video-player';\nimport DropDown from '../questions/drop-down';\nimport FreeText from '../questions/free-text';\nimport QcmDrag from '../questions/qcm-drag';\nimport Qcm from '../questions/qcm';\nimport QcmGraphic from '../questions/qcm-graphic';\nimport QuestionRange from '../questions/question-range';\nimport Template from '../questions/template';\nimport Audio from '../audio';\nimport style from './style.css';\nimport propTypes, {MediaViewPropTypes, TYPE_AUDIO, TYPE_IMAGE, TYPE_VIDEO} from './prop-types';\n\nconst MediaView = ({media}) => {\n const {videoId, type, ...childProps} = media;\n switch (type) {\n case TYPE_IMAGE:\n return (\n <div\n className={style.media}\n style={{\n backgroundImage: `url(${media.url})`\n }}\n />\n );\n case TYPE_VIDEO:\n return (\n <div className={style.video}>\n <VideoPlayer {...omit('id', childProps)} id={videoId} height=\"100%\" width=\"100%\" />\n </div>\n );\n case TYPE_AUDIO:\n return (\n <div className={style.audio}>\n <Audio {...omit('id', childProps)} height=\"100%\" width=\"100%\" />\n </div>\n );\n default:\n return null;\n }\n};\n\nMediaView.propTypes = MediaViewPropTypes;\n\nconst Answer = props => {\n const {model, media, help} = props;\n const buildAnswer = () => {\n // (propTypes model.type is properly defined)\n // eslint-disable-next-line react/prop-types\n const {type} = model;\n\n switch (type) {\n case 'qcmDrag':\n return <QcmDrag {...model} help={help} />;\n case 'qcm':\n return <Qcm {...model} />;\n case 'qcmGraphic':\n return <QcmGraphic {...model} />;\n case 'freeText':\n return <FreeText {...model} />;\n case 'dropDown':\n return <DropDown {...model} />;\n case 'slider':\n return <QuestionRange {...model} />;\n case 'template':\n return <Template {...model} />;\n }\n };\n const answerView = buildAnswer(model);\n\n return (\n <div data-name=\"answer\" className={style.wrapper}>\n {media ? <MediaView media={media} /> : null}\n {answerView}\n </div>\n );\n};\n\nAnswer.propTypes = propTypes;\n\nexport default Answer;\n"],"file":"index.js"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = exports.MediaViewPropTypes = exports.TYPE_AUDIO = exports.TYPE_VIDEO = exports.TYPE_IMAGE = void 0;
5
+
6
+ var _propTypes = _interopRequireDefault(require("prop-types"));
7
+
8
+ var _propTypes2 = _interopRequireDefault(require("../video-player/prop-types"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ 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); }
13
+
14
+ const TYPE_IMAGE = 'img';
15
+ exports.TYPE_IMAGE = TYPE_IMAGE;
16
+ const TYPE_VIDEO = 'video';
17
+ exports.TYPE_VIDEO = TYPE_VIDEO;
18
+ const TYPE_AUDIO = 'audio';
19
+ exports.TYPE_AUDIO = TYPE_AUDIO;
20
+
21
+ const isType = name => _propTypes.default.oneOf([name]);
22
+
23
+ const videoPropType = _propTypes.default.shape(_extends(_extends({}, _propTypes2.default), {}, {
24
+ type: isType(TYPE_VIDEO).isRequired
25
+ }));
26
+
27
+ const imgPropType = _propTypes.default.shape({
28
+ type: isType(TYPE_IMAGE).isRequired,
29
+ url: _propTypes.default.string.isRequired
30
+ });
31
+
32
+ const audioPropType = _propTypes.default.shape({
33
+ type: isType(TYPE_AUDIO).isRequired,
34
+ mediaUrl: _propTypes.default.string.isRequired
35
+ });
36
+
37
+ const MediaViewPropTypes = {
38
+ media: _propTypes.default.oneOfType([videoPropType, imgPropType, audioPropType])
39
+ };
40
+ exports.MediaViewPropTypes = MediaViewPropTypes;
41
+ var _default = {
42
+ model: _propTypes.default.shape({
43
+ type: _propTypes.default.oneOf(['qcmDrag', 'qcm', 'qcmGraphic', 'freeText', 'dropDown', 'slider', 'template']).isRequired
44
+ }),
45
+ help: _propTypes.default.string,
46
+ media: MediaViewPropTypes.media
47
+ };
48
+ exports.default = _default;
49
+ //# sourceMappingURL=prop-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/molecule/answer/prop-types.js"],"names":["TYPE_IMAGE","TYPE_VIDEO","TYPE_AUDIO","isType","name","PropTypes","oneOf","videoPropType","shape","VideoPlayerPropTypes","type","isRequired","imgPropType","url","string","audioPropType","mediaUrl","MediaViewPropTypes","media","oneOfType","model","help"],"mappings":";;;;;AAAA;;AACA;;;;;;AAEO,MAAMA,UAAU,GAAG,KAAnB;;AACA,MAAMC,UAAU,GAAG,OAAnB;;AACA,MAAMC,UAAU,GAAG,OAAnB;;;AAEP,MAAMC,MAAM,GAAGC,IAAI,IAAIC,mBAAUC,KAAV,CAAgB,CAACF,IAAD,CAAhB,CAAvB;;AAEA,MAAMG,aAAa,GAAGF,mBAAUG,KAAV,uBACjBC,mBADiB;AAEpBC,EAAAA,IAAI,EAAEP,MAAM,CAACF,UAAD,CAAN,CAAmBU;AAFL,GAAtB;;AAKA,MAAMC,WAAW,GAAGP,mBAAUG,KAAV,CAAgB;AAClCE,EAAAA,IAAI,EAAEP,MAAM,CAACH,UAAD,CAAN,CAAmBW,UADS;AAElCE,EAAAA,GAAG,EAAER,mBAAUS,MAAV,CAAiBH;AAFY,CAAhB,CAApB;;AAKA,MAAMI,aAAa,GAAGV,mBAAUG,KAAV,CAAgB;AACpCE,EAAAA,IAAI,EAAEP,MAAM,CAACD,UAAD,CAAN,CAAmBS,UADW;AAEpCK,EAAAA,QAAQ,EAAEX,mBAAUS,MAAV,CAAiBH;AAFS,CAAhB,CAAtB;;AAKO,MAAMM,kBAAkB,GAAG;AAChCC,EAAAA,KAAK,EAAEb,mBAAUc,SAAV,CAAoB,CAACZ,aAAD,EAAgBK,WAAhB,EAA6BG,aAA7B,CAApB;AADyB,CAA3B;;eAIQ;AACbK,EAAAA,KAAK,EAAEf,mBAAUG,KAAV,CAAgB;AACrBE,IAAAA,IAAI,EAAEL,mBAAUC,KAAV,CAAgB,CACpB,SADoB,EAEpB,KAFoB,EAGpB,YAHoB,EAIpB,UAJoB,EAKpB,UALoB,EAMpB,QANoB,EAOpB,UAPoB,CAAhB,EAQHK;AATkB,GAAhB,CADM;AAYbU,EAAAA,IAAI,EAAEhB,mBAAUS,MAZH;AAabI,EAAAA,KAAK,EAAED,kBAAkB,CAACC;AAbb,C","sourcesContent":["import PropTypes from 'prop-types';\nimport VideoPlayerPropTypes from '../video-player/prop-types';\n\nexport const TYPE_IMAGE = 'img';\nexport const TYPE_VIDEO = 'video';\nexport const TYPE_AUDIO = 'audio';\n\nconst isType = name => PropTypes.oneOf([name]);\n\nconst videoPropType = PropTypes.shape({\n ...VideoPlayerPropTypes,\n type: isType(TYPE_VIDEO).isRequired\n});\n\nconst imgPropType = PropTypes.shape({\n type: isType(TYPE_IMAGE).isRequired,\n url: PropTypes.string.isRequired\n});\n\nconst audioPropType = PropTypes.shape({\n type: isType(TYPE_AUDIO).isRequired,\n mediaUrl: PropTypes.string.isRequired\n});\n\nexport const MediaViewPropTypes = {\n media: PropTypes.oneOfType([videoPropType, imgPropType, audioPropType])\n};\n\nexport default {\n model: PropTypes.shape({\n type: PropTypes.oneOf([\n 'qcmDrag',\n 'qcm',\n 'qcmGraphic',\n 'freeText',\n 'dropDown',\n 'slider',\n 'template'\n ]).isRequired\n }),\n help: PropTypes.string,\n media: MediaViewPropTypes.media\n};\n"],"file":"prop-types.js"}
@@ -24,6 +24,11 @@ const ICONS = {
24
24
  error: _novaIcons.NovaSolidInterfaceFeedbackInterfaceAlertDiamond,
25
25
  warning: _novaIcons.NovaSolidInterfaceFeedbackInterfaceAlertDiamond
26
26
  };
27
+ const STYLES = {
28
+ success: _style.default.success,
29
+ error: _style.default.error,
30
+ warning: _style.default.warning
31
+ };
27
32
 
28
33
  const Banner = props => {
29
34
  const {
@@ -40,7 +45,7 @@ const Banner = props => {
40
45
  const Icon = ICONS[type];
41
46
  return /*#__PURE__*/_react.default.createElement("div", {
42
47
  key: bannerKey,
43
- className: (0, _classnames.default)(_style.default.banner, type === 'error' && _style.default.errorBanner, type === 'success' && _style.default.successBanner, temporary && _style.default.temporaryBanner),
48
+ className: (0, _classnames.default)(_style.default.banner, STYLES[type], temporary && _style.default.temporaryBanner),
44
49
  onAnimationEnd: onEnd,
45
50
  title: message
46
51
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -49,7 +54,7 @@ const Banner = props => {
49
54
  }, /*#__PURE__*/_react.default.createElement(Icon, {
50
55
  className: (0, _classnames.default)(_style.default.icon, temporary && _style.default.temporaryIcon)
51
56
  }), message), firstCTALabel ? /*#__PURE__*/_react.default.createElement("div", {
52
- className: _style.default.button
57
+ className: (0, _classnames.default)(_style.default.button, STYLES[type])
53
58
  }, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
54
59
  "data-name": "first-banner-cta",
55
60
  "aria-label": firstCTALabel,
@@ -57,9 +62,9 @@ const Banner = props => {
57
62
  onClick: firstCTA,
58
63
  type: "text"
59
64
  })) : null, firstCTALabel && secondCTALabel ? /*#__PURE__*/_react.default.createElement("div", {
60
- className: _style.default.buttonsBar
65
+ className: (0, _classnames.default)(_style.default.buttonsBar, STYLES[type])
61
66
  }) : null, secondCTALabel ? /*#__PURE__*/_react.default.createElement("div", {
62
- className: _style.default.button
67
+ className: (0, _classnames.default)(_style.default.button, STYLES[type])
63
68
  }, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
64
69
  "data-name": "second-banner-cta",
65
70
  onClick: secondCTA,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/banner/index.js"],"names":["ICONS","success","ValidateIcon","error","QuestionIcon","warning","Banner","props","type","message","firstCTA","firstCTALabel","secondCTALabel","secondCTA","temporary","bannerKey","onEnd","Icon","style","banner","errorBanner","successBanner","temporaryBanner","icon","temporaryIcon","button","buttonsBar","propTypes","PropTypes","string","oneOf","isRequired","func","bool"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAIA;;AACA;;;;AAEA,MAAMA,KAAK,GAAG;AACZC,EAAAA,OAAO,EAAEC,8CADG;AAEZC,EAAAA,KAAK,EAAEC,0DAFK;AAGZC,EAAAA,OAAO,EAAED;AAHG,CAAd;;AAMA,MAAME,MAAM,GAAGC,KAAK,IAAI;AACtB,QAAM;AACJC,IAAAA,IADI;AAEJC,IAAAA,OAFI;AAGJC,IAAAA,QAHI;AAIJC,IAAAA,aAJI;AAKJC,IAAAA,cALI;AAMJC,IAAAA,SANI;AAOJC,IAAAA,SAPI;AAQJC,IAAAA,SARI;AASJC,IAAAA;AATI,MAUFT,KAVJ;AAWA,QAAMU,IAAI,GAAGjB,KAAK,CAACQ,IAAD,CAAlB;AACA,sBACE;AACE,IAAA,GAAG,EAAEO,SADP;AAEE,IAAA,SAAS,EAAE,yBACTG,eAAMC,MADG,EAETX,IAAI,KAAK,OAAT,IAAoBU,eAAME,WAFjB,EAGTZ,IAAI,KAAK,SAAT,IAAsBU,eAAMG,aAHnB,EAITP,SAAS,IAAII,eAAMI,eAJV,CAFb;AAQE,IAAA,cAAc,EAAEN,KARlB;AASE,IAAA,KAAK,EAAEP;AATT,kBAWE;AAAK,iBAAY,GAAED,IAAK,iBAAxB;AAA0C,IAAA,SAAS,EAAEU,eAAMT;AAA3D,kBACE,6BAAC,IAAD;AAAM,IAAA,SAAS,EAAE,yBAAWS,eAAMK,IAAjB,EAAuBT,SAAS,IAAII,eAAMM,aAA1C;AAAjB,IADF,EAEGf,OAFH,CAXF,EAeGE,aAAa,gBACZ;AAAK,IAAA,SAAS,EAAEO,eAAMO;AAAtB,kBACE,6BAAC,mBAAD;AACE,iBAAU,kBADZ;AAEE,kBAAYd,aAFd;AAGE,IAAA,KAAK,EAAEA,aAHT;AAIE,IAAA,OAAO,EAAED,QAJX;AAKE,IAAA,IAAI,EAAC;AALP,IADF,CADY,GAUV,IAzBN,EA0BGC,aAAa,IAAIC,cAAjB,gBAAkC;AAAK,IAAA,SAAS,EAAEM,eAAMQ;AAAtB,IAAlC,GAAyE,IA1B5E,EA2BGd,cAAc,gBACb;AAAK,IAAA,SAAS,EAAEM,eAAMO;AAAtB,kBACE,6BAAC,mBAAD;AACE,iBAAU,mBADZ;AAEE,IAAA,OAAO,EAAEZ,SAFX;AAGE,kBAAYD,cAHd;AAIE,IAAA,KAAK,EAAEA,cAJT;AAKE,IAAA,IAAI,EAAC;AALP,IADF,CADa,GAUX,IArCN,CADF;AAyCD,CAtDD;;AAwDAN,MAAM,CAACqB,SAAP,2CAAmB;AACjBZ,EAAAA,SAAS,EAAEa,mBAAUC,MADJ;AAEjBrB,EAAAA,IAAI,EAAEoB,mBAAUE,KAAV,CAAgB,oBAAK9B,KAAL,CAAhB,CAFW;AAGjBS,EAAAA,OAAO,EAAEmB,mBAAUC,MAAV,CAAiBE,UAHT;AAIjBrB,EAAAA,QAAQ,EAAEkB,mBAAUI,IAJH;AAKjBrB,EAAAA,aAAa,EAAEiB,mBAAUC,MALR;AAMjBjB,EAAAA,cAAc,EAAEgB,mBAAUC,MANT;AAOjBhB,EAAAA,SAAS,EAAEe,mBAAUI,IAPJ;AAQjBlB,EAAAA,SAAS,EAAEc,mBAAUK,IARJ;AASjBjB,EAAAA,KAAK,EAAEY,mBAAUI;AATA,CAAnB;eAYe1B,M","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {keys} from 'lodash/fp';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as QuestionIcon,\n NovaCompositionCoorpacademyValidate as ValidateIcon\n} from '@coorpacademy/nova-icons';\nimport Link from '../../atom/button-link';\nimport style from './style.css';\n\nconst ICONS = {\n success: ValidateIcon,\n error: QuestionIcon,\n warning: QuestionIcon\n};\n\nconst Banner = props => {\n const {\n type,\n message,\n firstCTA,\n firstCTALabel,\n secondCTALabel,\n secondCTA,\n temporary,\n bannerKey,\n onEnd\n } = props;\n const Icon = ICONS[type];\n return (\n <div\n key={bannerKey}\n className={classnames(\n style.banner,\n type === 'error' && style.errorBanner,\n type === 'success' && style.successBanner,\n temporary && style.temporaryBanner\n )}\n onAnimationEnd={onEnd}\n title={message}\n >\n <div data-name={`${type}-banner-message`} className={style.message}>\n <Icon className={classnames(style.icon, temporary && style.temporaryIcon)} />\n {message}\n </div>\n {firstCTALabel ? (\n <div className={style.button}>\n <Link\n data-name=\"first-banner-cta\"\n aria-label={firstCTALabel}\n label={firstCTALabel}\n onClick={firstCTA}\n type=\"text\"\n />\n </div>\n ) : null}\n {firstCTALabel && secondCTALabel ? <div className={style.buttonsBar} /> : null}\n {secondCTALabel ? (\n <div className={style.button}>\n <Link\n data-name=\"second-banner-cta\"\n onClick={secondCTA}\n aria-label={secondCTALabel}\n label={secondCTALabel}\n type=\"text\"\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nBanner.propTypes = {\n bannerKey: PropTypes.string,\n type: PropTypes.oneOf(keys(ICONS)),\n message: PropTypes.string.isRequired,\n firstCTA: PropTypes.func,\n firstCTALabel: PropTypes.string,\n secondCTALabel: PropTypes.string,\n secondCTA: PropTypes.func,\n temporary: PropTypes.bool,\n onEnd: PropTypes.func\n};\n\nexport default Banner;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/banner/index.js"],"names":["ICONS","success","ValidateIcon","error","QuestionIcon","warning","STYLES","style","Banner","props","type","message","firstCTA","firstCTALabel","secondCTALabel","secondCTA","temporary","bannerKey","onEnd","Icon","banner","temporaryBanner","icon","temporaryIcon","button","buttonsBar","propTypes","PropTypes","string","oneOf","isRequired","func","bool"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAIA;;AACA;;;;AAEA,MAAMA,KAAK,GAAG;AACZC,EAAAA,OAAO,EAAEC,8CADG;AAEZC,EAAAA,KAAK,EAAEC,0DAFK;AAGZC,EAAAA,OAAO,EAAED;AAHG,CAAd;AAMA,MAAME,MAAM,GAAG;AACbL,EAAAA,OAAO,EAAEM,eAAMN,OADF;AAEbE,EAAAA,KAAK,EAAEI,eAAMJ,KAFA;AAGbE,EAAAA,OAAO,EAAEE,eAAMF;AAHF,CAAf;;AAMA,MAAMG,MAAM,GAAGC,KAAK,IAAI;AACtB,QAAM;AACJC,IAAAA,IADI;AAEJC,IAAAA,OAFI;AAGJC,IAAAA,QAHI;AAIJC,IAAAA,aAJI;AAKJC,IAAAA,cALI;AAMJC,IAAAA,SANI;AAOJC,IAAAA,SAPI;AAQJC,IAAAA,SARI;AASJC,IAAAA;AATI,MAUFT,KAVJ;AAWA,QAAMU,IAAI,GAAGnB,KAAK,CAACU,IAAD,CAAlB;AACA,sBACE;AACE,IAAA,GAAG,EAAEO,SADP;AAEE,IAAA,SAAS,EAAE,yBAAWV,eAAMa,MAAjB,EAAyBd,MAAM,CAACI,IAAD,CAA/B,EAAuCM,SAAS,IAAIT,eAAMc,eAA1D,CAFb;AAGE,IAAA,cAAc,EAAEH,KAHlB;AAIE,IAAA,KAAK,EAAEP;AAJT,kBAME;AAAK,iBAAY,GAAED,IAAK,iBAAxB;AAA0C,IAAA,SAAS,EAAEH,eAAMI;AAA3D,kBACE,6BAAC,IAAD;AAAM,IAAA,SAAS,EAAE,yBAAWJ,eAAMe,IAAjB,EAAuBN,SAAS,IAAIT,eAAMgB,aAA1C;AAAjB,IADF,EAEGZ,OAFH,CANF,EAUGE,aAAa,gBACZ;AAAK,IAAA,SAAS,EAAE,yBAAWN,eAAMiB,MAAjB,EAAyBlB,MAAM,CAACI,IAAD,CAA/B;AAAhB,kBACE,6BAAC,mBAAD;AACE,iBAAU,kBADZ;AAEE,kBAAYG,aAFd;AAGE,IAAA,KAAK,EAAEA,aAHT;AAIE,IAAA,OAAO,EAAED,QAJX;AAKE,IAAA,IAAI,EAAC;AALP,IADF,CADY,GAUV,IApBN,EAqBGC,aAAa,IAAIC,cAAjB,gBACC;AAAK,IAAA,SAAS,EAAE,yBAAWP,eAAMkB,UAAjB,EAA6BnB,MAAM,CAACI,IAAD,CAAnC;AAAhB,IADD,GAEG,IAvBN,EAwBGI,cAAc,gBACb;AAAK,IAAA,SAAS,EAAE,yBAAWP,eAAMiB,MAAjB,EAAyBlB,MAAM,CAACI,IAAD,CAA/B;AAAhB,kBACE,6BAAC,mBAAD;AACE,iBAAU,mBADZ;AAEE,IAAA,OAAO,EAAEK,SAFX;AAGE,kBAAYD,cAHd;AAIE,IAAA,KAAK,EAAEA,cAJT;AAKE,IAAA,IAAI,EAAC;AALP,IADF,CADa,GAUX,IAlCN,CADF;AAsCD,CAnDD;;AAqDAN,MAAM,CAACkB,SAAP,2CAAmB;AACjBT,EAAAA,SAAS,EAAEU,mBAAUC,MADJ;AAEjBlB,EAAAA,IAAI,EAAEiB,mBAAUE,KAAV,CAAgB,oBAAK7B,KAAL,CAAhB,CAFW;AAGjBW,EAAAA,OAAO,EAAEgB,mBAAUC,MAAV,CAAiBE,UAHT;AAIjBlB,EAAAA,QAAQ,EAAEe,mBAAUI,IAJH;AAKjBlB,EAAAA,aAAa,EAAEc,mBAAUC,MALR;AAMjBd,EAAAA,cAAc,EAAEa,mBAAUC,MANT;AAOjBb,EAAAA,SAAS,EAAEY,mBAAUI,IAPJ;AAQjBf,EAAAA,SAAS,EAAEW,mBAAUK,IARJ;AASjBd,EAAAA,KAAK,EAAES,mBAAUI;AATA,CAAnB;eAYevB,M","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {keys} from 'lodash/fp';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as QuestionIcon,\n NovaCompositionCoorpacademyValidate as ValidateIcon\n} from '@coorpacademy/nova-icons';\nimport Link from '../../atom/button-link';\nimport style from './style.css';\n\nconst ICONS = {\n success: ValidateIcon,\n error: QuestionIcon,\n warning: QuestionIcon\n};\n\nconst STYLES = {\n success: style.success,\n error: style.error,\n warning: style.warning\n};\n\nconst Banner = props => {\n const {\n type,\n message,\n firstCTA,\n firstCTALabel,\n secondCTALabel,\n secondCTA,\n temporary,\n bannerKey,\n onEnd\n } = props;\n const Icon = ICONS[type];\n return (\n <div\n key={bannerKey}\n className={classnames(style.banner, STYLES[type], temporary && style.temporaryBanner)}\n onAnimationEnd={onEnd}\n title={message}\n >\n <div data-name={`${type}-banner-message`} className={style.message}>\n <Icon className={classnames(style.icon, temporary && style.temporaryIcon)} />\n {message}\n </div>\n {firstCTALabel ? (\n <div className={classnames(style.button, STYLES[type])}>\n <Link\n data-name=\"first-banner-cta\"\n aria-label={firstCTALabel}\n label={firstCTALabel}\n onClick={firstCTA}\n type=\"text\"\n />\n </div>\n ) : null}\n {firstCTALabel && secondCTALabel ? (\n <div className={classnames(style.buttonsBar, STYLES[type])} />\n ) : null}\n {secondCTALabel ? (\n <div className={classnames(style.button, STYLES[type])}>\n <Link\n data-name=\"second-banner-cta\"\n onClick={secondCTA}\n aria-label={secondCTALabel}\n label={secondCTALabel}\n type=\"text\"\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nBanner.propTypes = {\n bannerKey: PropTypes.string,\n type: PropTypes.oneOf(keys(ICONS)),\n message: PropTypes.string.isRequired,\n firstCTA: PropTypes.func,\n firstCTALabel: PropTypes.string,\n secondCTALabel: PropTypes.string,\n secondCTA: PropTypes.func,\n temporary: PropTypes.bool,\n onEnd: PropTypes.func\n};\n\nexport default Banner;\n"],"file":"index.js"}
@@ -36,16 +36,19 @@
36
36
  gap: 8px;
37
37
  padding: 16px 24px;
38
38
  border-radius: 5px;
39
+ }
40
+
41
+ .banner.warning {
39
42
  background-color: cm_warning_50;
40
43
  color: cm_yellow_200;
41
- border-radius: 5px;
42
44
  }
43
45
 
44
- .errorBanner {
46
+ .banner.error {
45
47
  background-color: cm_negative_50;
46
48
  color: cm_negative_200;
47
49
  }
48
- .successBanner {
50
+
51
+ .banner.success {
49
52
  background-color: color(cm_positive_100 a(15%));
50
53
  color: cm_positive_100;
51
54
  }
@@ -71,22 +74,54 @@
71
74
 
72
75
  .button{
73
76
  background-color: transparent;
74
- color: cm_yellow_200;
75
77
  white-space: nowrap;
76
78
  }
77
79
 
78
- .button :hover{
79
- color: cm_yellow_400;
80
+ .button.warning {
81
+ color: cm_yellow_200;
82
+ }
83
+
84
+ .button.warning:hover {
85
+ color: color(cm_yellow_200 blackness(+12%));
86
+ }
87
+
88
+ .button.error {
89
+ color: cm_negative_200;
90
+ }
91
+
92
+ .button.error:hover {
93
+ color: color(cm_negative_200 blackness(+12%));
80
94
  }
81
95
 
96
+ .button.success {
97
+ color: cm_positive_100;
98
+ }
99
+
100
+ .button.success:hover {
101
+ color: color(cm_positive_100 blackness(+12%));
102
+ }
103
+
104
+
82
105
  .buttonsBar {
83
106
  width: 2px;
84
107
  align-self: stretch;
85
108
  flex-grow: 0;
86
109
  opacity: 0.3;
110
+ }
111
+
112
+ .buttonsBar.warning {
87
113
  background-color: cm_yellow_200;
88
114
  }
89
115
 
116
+ .buttonsBar.error {
117
+ background-color: cm_negative_200;
118
+ }
119
+
120
+ .buttonsBar.success {
121
+ background-color: cm_positive_100;
122
+ }
123
+
124
+
90
125
  .icon {
91
126
  height: 22px;
92
127
  margin-right: 16px;
@@ -142,7 +142,7 @@ const Card = (0, _react.memo)(function Card(props, context) {
142
142
  image,
143
143
  badge,
144
144
  adaptiv,
145
- disabled = false,
145
+ disabled: hidden = false,
146
146
  type = 'course',
147
147
  title,
148
148
  author,
@@ -172,6 +172,7 @@ const Card = (0, _react.memo)(function Card(props, context) {
172
172
  const primaryColor = (0, _get2.default)('common.primary', skin);
173
173
  const whiteColor = (0, _get2.default)('common.white', skin);
174
174
  const cardStyle = (0, _classnames.default)(THEMES[theme], type === 'chapter' ? _style.default.chapter : _style.default.course, title ? null : _style.default.lazy, _style.default.grid, empty ? _style.default.empty : null);
175
+ const disabled = hidden && (!isSelected || (0, _isUndefined2.default)(isSelected));
175
176
  const handleClick = (0, _react.useMemo)(() => e => !disabled && onClick(e), [disabled, onClick]);
176
177
  const lock = disabled ? /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidLoginLocked, {
177
178
  className: _style.default.lockIcon,
@@ -218,6 +219,7 @@ const Card = (0, _react.memo)(function Card(props, context) {
218
219
  "aria-label": favoriteAriaLabel
219
220
  }) : null, /*#__PURE__*/_react.default.createElement(_selectable.default, {
220
221
  isSelected: isSelected,
222
+ hidden: hidden,
221
223
  "aria-label": selectableAriaLabel
222
224
  }), notification ? /*#__PURE__*/_react.default.createElement(_notification.default, notification) : null, customer ? /*#__PURE__*/_react.default.createElement(_customer.default, _extends({}, customer, {
223
225
  theme: theme,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/card/index.js"],"names":["THEMES","default","coorpmanager","style","CardBackground","type","image","empty","ariaLabel","skin","externalContent","primaryColor","whiteColor","EXTERNAL_CONTENT_ICONS","IconType","icon","iconColor","color","backgroundIcon","externalIconCircleWrapper","externalIcon","_backgroundIcon","externalIconCircleWithImageWrapper","backgroundColor","externalIconWithImage","imageWrapper","backgroundImage","externalContentHeader","externalBackground","emptyIcon","chapterImageWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","Card","props","context","badge","adaptiv","disabled","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","theme","cardArialabel","backgroundAriaLabel","favoriteAriaLabel","selectableAriaLabel","customerAriaLabel","badgeAriaLabel","disabledArialabel","cardContentLabelAriaLabel","cardStyle","chapter","course","lazy","grid","handleClick","e","lock","lockIcon","inlineBadgeStyle","getType","contentType","MODES","CARD","lockWrapper","shape","Customer","number","func","Notification","CardContentInfo","oneOf","Favorite","Selectable"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEO,MAAMA,MAAM,GAAG;AACpBC,EAAAA,OAAO,EAAE,IADW;AAEpBC,EAAAA,YAAY,EAAEC,eAAMD;AAFA,CAAf;;;AAKP,MAAME,cAAc,GAAG,CAAC;AAACC,EAAAA,IAAD;AAAOC,EAAAA,KAAP;AAAcC,EAAAA,KAAd;AAAqB,gBAAcC;AAAnC,CAAD,EAAgD;AAACC,EAAAA;AAAD,CAAhD,KAA2D;AAChF,QAAMC,eAAe,GAAG,wCAAkBL,IAAlB,CAAxB;AACA,QAAMM,YAAY,GAAG,mBAAI,gBAAJ,EAAsBF,IAAtB,CAArB;AACA,QAAMG,UAAU,GAAG,mBAAI,cAAJ,EAAoBH,IAApB,CAAnB;;AAEA,MAAIC,eAAe,IAAIG,wCAAuBR,IAAvB,CAAvB,EAAqD;AACnD,UAAMS,QAAQ,GAAGD,wCAAuBR,IAAvB,EAA6BU,IAA9C;AACA,UAAMC,SAAS,GAAGH,wCAAuBR,IAAvB,EAA6BY,KAA/C;;AACA,UAAMC,cAAc,gBAClB;AAAK,MAAA,SAAS,EAAEf,eAAMgB;AAAtB,oBACE,6BAAC,QAAD;AAAU,MAAA,SAAS,EAAEhB,eAAMiB;AAA3B,MADF,CADF;;AAMA,QAAId,KAAJ,EAAW;AACT,YAAMe,eAAe,gBACnB;AACE,QAAA,SAAS,EAAE,yBACTlB,eAAMgB,yBADG,EAEThB,eAAMmB,kCAFG,CADb;AAKE,QAAA,KAAK,EAAE;AACLC,UAAAA,eAAe,EAAEP;AADZ;AALT,sBASE,6BAAC,QAAD;AAAU,QAAA,SAAS,EAAEb,eAAMqB;AAA3B,QATF,CADF;;AAcA,0BACE;AAAK,QAAA,SAAS,EAAErB,eAAMsB;AAAtB,sBACE;AACE,qBAAU,OADZ;AAEE,sBAAYjB,SAFd;AAGE,QAAA,KAAK,EAAE;AACLe,UAAAA,eAAe,EAAEP,SADZ;AAELU,UAAAA,eAAe,EAAG,QAAOpB,KAAM;AAF1B,SAHT;AAOE,QAAA,SAAS,EAAE,yBAAWH,eAAMwB,qBAAjB,EAAwCxB,eAAMyB,kBAA9C;AAPb,SASGP,eATH,CADF,CADF;AAeD;;AACD,wBACE;AAAK,MAAA,SAAS,EAAElB,eAAMsB;AAAtB,oBACE;AACE,mBAAU,OADZ;AAEE,oBAAYjB,SAFd;AAGE,MAAA,KAAK,EAAE;AACLe,QAAAA,eAAe,EAAEP;AADZ,OAHT;AAME,MAAA,SAAS,EAAEb,eAAMwB;AANnB,OAQGT,cARH,CADF,CADF;AAcD;;AAED,QAAMW,SAAS,GAAGtB,KAAK,gBAAG,6BAAC,8CAAD;AAAc,IAAA,SAAS,EAAEJ,eAAM0B,SAA/B;AAA0C,IAAA,KAAK,EAAEjB;AAAjD,IAAH,GAAqE,IAA5F;AACA,sBACE;AACE,IAAA,SAAS,EAAE,yBACTT,eAAMsB,YADG,EAETpB,IAAI,KAAK,SAAT,GAAqBF,eAAM2B,mBAA3B,GAAiD,IAFxC;AADb,kBAME;AACE,iBAAU,OADZ;AAEE,kBAAYtB,SAFd;AAGE,IAAA,SAAS,EAAEL,eAAMG,KAHnB;AAIE,IAAA,KAAK,EAAE;AACLiB,MAAAA,eAAe,EAAEZ,YADZ;AAELe,MAAAA,eAAe,EAAEpB,KAAK,GAAI,QAAOA,KAAM,IAAjB,GAAuB;AAFxC;AAJT,KASGuB,SATH,CANF,CADF;AAoBD,CAlFD;;AAoFAzB,cAAc,CAAC2B,YAAf,GAA8B;AAC5BtB,EAAAA,IAAI,EAAEuB,kBAASC,iBAAT,CAA2BxB;AADL,CAA9B;AAIAL,cAAc,CAAC8B,SAAf,2CAA2B;AACzB7B,EAAAA,IAAI,EAAE8B,mBAAUC,MADS;AAEzB9B,EAAAA,KAAK,EAAE6B,mBAAUC,MAFQ;AAGzB7B,EAAAA,KAAK,EAAE4B,mBAAUE,IAHQ;AAIzB,gBAAcF,mBAAUC;AAJC,CAA3B;AAOA,MAAME,IAAI,GAAG,iBAAK,SAASA,IAAT,CAAcC,KAAd,EAAqBC,OAArB,EAA8B;AAC9C,QAAM;AAAC/B,IAAAA;AAAD,MAAS+B,OAAf;AACA,QAAM;AACJlC,IAAAA,KADI;AAEJmC,IAAAA,KAFI;AAGJC,IAAAA,OAHI;AAIJC,IAAAA,QAAQ,GAAG,KAJP;AAKJtC,IAAAA,IAAI,GAAG,QALH;AAMJuC,IAAAA,KANI;AAOJC,IAAAA,MAPI;AAQJC,IAAAA,QARI;AASJC,IAAAA,eATI;AAUJC,IAAAA,QAVI;AAWJC,IAAAA,QAXI;AAYJC,IAAAA,kBAZI;AAaJC,IAAAA,qBAbI;AAcJC,IAAAA,OAdI;AAeJC,IAAAA,eAfI;AAgBJC,IAAAA,UAhBI;AAiBJC,IAAAA,YAjBI;AAkBJC,IAAAA,aAlBI;AAmBJC,IAAAA,UAnBI;AAoBJC,IAAAA,KAAK,GAAG,SApBJ;AAqBJ,kBAAcC,aArBV;AAsBJ,6BAAyBC,mBAtBrB;AAuBJ,2BAAuBC,iBAvBnB;AAwBJ,6BAAyBC,mBAxBrB;AAyBJ,2BAAuBC,iBAzBnB;AA0BJ,wBAAoBC,cA1BhB;AA2BJ,2BAAuBC,iBA3BnB;AA4BJ,+BAA2BC;AA5BvB,MA6BF3B,KA7BJ;AA8BA,QAAMhC,KAAK,GAAG,uBAAQ,oBAAK,CAAC,OAAD,EAAU,MAAV,EAAkB,QAAlB,EAA4B,OAA5B,CAAL,EAA2CgC,KAA3C,CAAR,CAAd;AACA,QAAM5B,YAAY,GAAG,mBAAI,gBAAJ,EAAsBF,IAAtB,CAArB;AACA,QAAMG,UAAU,GAAG,mBAAI,cAAJ,EAAoBH,IAApB,CAAnB;AACA,QAAM0D,SAAS,GAAG,yBAChBnE,MAAM,CAAC0D,KAAD,CADU,EAEhBrD,IAAI,KAAK,SAAT,GAAqBF,eAAMiE,OAA3B,GAAqCjE,eAAMkE,MAF3B,EAGhBzB,KAAK,GAAG,IAAH,GAAUzC,eAAMmE,IAHL,EAIhBnE,eAAMoE,IAJU,EAKhBhE,KAAK,GAAGJ,eAAMI,KAAT,GAAiB,IALN,CAAlB;AAOA,QAAMiE,WAAW,GAAG,oBAAQ,MAAMC,CAAC,IAAI,CAAC9B,QAAD,IAAaS,OAAO,CAACqB,CAAD,CAAvC,EAA4C,CAAC9B,QAAD,EAAWS,OAAX,CAA5C,CAApB;AACA,QAAMsB,IAAI,GAAG/B,QAAQ,gBACnB,6BAAC,+BAAD;AAAU,IAAA,SAAS,EAAExC,eAAMwE,QAA3B;AAAqC,IAAA,KAAK,EAAE/D,UAA5C;AAAwD,IAAA,MAAM,EAAE;AAAhE,IADmB,GAEjB,IAFJ;AAGA,QAAMgE,gBAAgB,GAAG;AAAC3D,IAAAA,KAAK,EAAEN;AAAR,GAAzB;;AACA,QAAMkE,OAAO,GAAGC,WAAW,IAAI;AAC7B,YAAQA,WAAR;AACE,WAAK,SAAL;AACE,eAAO,eAAP;;AACF,WAAK,QAAL;AACE,eAAO,SAAP;;AACF;AACE,eAAOA,WAAP;AANJ;AAQD,GATD;;AAWA,sBACE;AACE,IAAA,SAAS,EAAEX,SADb;AAEE,iBAAU,MAFZ;AAGE,iBAAWxB,QAHb;AAIE,iBAAWkC,OAAO,CAACxE,IAAD,CAJpB;AAKE,IAAA,QAAQ,EAAEsC,QALZ;AAME,IAAA,OAAO,EAAE6B,WANX;AAOE,kBAAYb;AAPd,kBASE,6BAAC,cAAD;AAAgB,IAAA,IAAI,EAAEtD,IAAtB;AAA4B,IAAA,KAAK,EAAEC,KAAnC;AAA0C,IAAA,KAAK,EAAEC,KAAjD;AAAwD,kBAAYqD;AAApE,IATF,EAUG,2BAAYN,UAAZ,KAA2B,CAAC,2BAAYL,QAAZ,CAA5B,gBACC,6BAAC,iBAAD;AACE,IAAA,SAAS,EAAE9C,eAAM8C,QADnB;AAEE,IAAA,QAAQ,EAAEA,QAFZ;AAGE,IAAA,QAAQ,EAAEN,QAHZ;AAIE,IAAA,eAAe,EAAEU,eAJnB;AAKE,IAAA,kBAAkB,EAAEH,kBALtB;AAME,IAAA,qBAAqB,EAAEC,qBANzB;AAOE,kBAAYU;AAPd,IADD,GAUG,IApBN,eAqBE,6BAAC,mBAAD;AAAY,IAAA,UAAU,EAAEP,UAAxB;AAAoC,kBAAYQ;AAAhD,IArBF,EAsBGP,YAAY,gBAAG,6BAAC,qBAAD,EAAkBA,YAAlB,CAAH,GAAwC,IAtBvD,EAuBGT,QAAQ,gBACP,6BAAC,iBAAD,eACMA,QADN;AAEE,IAAA,KAAK,EAAEY,KAFT;AAGE,IAAA,IAAI,EAAErD,IAHR;AAIE,IAAA,QAAQ,EAAEsC,QAJZ;AAKE,kBAAYoB;AALd,KADO,GAQL,IA/BN,eAgCE,6BAAC,oBAAD;AACE,IAAA,IAAI,EAAEgB,mBAAMC,IADd;AAEE,IAAA,OAAO,EAAEtC,OAFX;AAGE,IAAA,MAAM,EAAEG,MAHV;AAIE,IAAA,eAAe,EAAEE,eAJnB;AAKE,IAAA,QAAQ,EAAEJ,QALZ;AAME,IAAA,KAAK,EAAEpC,KANT;AAOE,IAAA,QAAQ,EAAEyC,QAPZ;AAQE,IAAA,KAAK,EAAEJ,KART;AASE,IAAA,IAAI,EAAEvC,IATR;AAUE,IAAA,aAAa,EAAEmD,aAVjB;AAWE,IAAA,UAAU,EAAEC,UAXd;AAYE,IAAA,KAAK,EAAEC,KAZT;AAaE,kBAAYQ;AAbd,IAhCF,EA+CGzB,KAAK,gBACJ;AAAK,IAAA,SAAS,EAAEtC,eAAMsC,KAAtB;AAA6B,IAAA,KAAK,EAAEmC,gBAApC;AAAsD,kBAAYZ;AAAlE,KACGvB,KADH,CADI,GAIF,IAnDN,EAoDGE,QAAQ,gBACP;AAAK,IAAA,SAAS,EAAExC,eAAM8E,WAAtB;AAAmC,kBAAYhB;AAA/C,KACGS,IADH,CADO,GAIL,IAxDN,CADF;AA4DD,CAtHY,CAAb;AAwHApC,IAAI,CAACP,YAAL,GAAoB;AAClBtB,EAAAA,IAAI,EAAEuB,kBAASC,iBAAT,CAA2BxB;AADf,CAApB;AAIA6B,IAAI,CAACJ,SAAL,2CAAiB;AACfO,EAAAA,KAAK,EAAEN,mBAAUC,MADF;AAEf9B,EAAAA,KAAK,EAAE6B,mBAAUC,MAFF;AAGfO,EAAAA,QAAQ,EAAER,mBAAUE,IAHL;AAIfK,EAAAA,OAAO,EAAEP,mBAAUE,IAJJ;AAKfhC,EAAAA,IAAI,EAAE8B,mBAAUC,MALD;AAMfQ,EAAAA,KAAK,EAAET,mBAAUC,MANF;AAOfS,EAAAA,MAAM,EAAEV,mBAAUC,MAPH;AAQfW,EAAAA,eAAe,EAAEZ,mBAAUE,IARZ;AASfS,EAAAA,QAAQ,EAAEX,mBAAU+C,KAAV,CAAgBC,kBAASjD,SAAzB,CATK;AAUfc,EAAAA,QAAQ,EAAEb,mBAAUiD,MAVL;AAWfnC,EAAAA,QAAQ,EAAEd,mBAAUE,IAXL;AAYfa,EAAAA,kBAAkB,EAAEf,mBAAUC,MAZf;AAafe,EAAAA,qBAAqB,EAAEhB,mBAAUC,MAblB;AAcfgB,EAAAA,OAAO,EAAEjB,mBAAUkD,IAdJ;AAefhC,EAAAA,eAAe,EAAElB,mBAAUkD,IAfZ;AAgBf/B,EAAAA,UAAU,EAAEnB,mBAAUE,IAhBP;AAiBfkB,EAAAA,YAAY,EAAEpB,mBAAU+C,KAAV,CAAgBI,sBAAapD,SAA7B,CAjBC;AAkBfsB,EAAAA,aAAa,EAAE+B,qBAAgBrD,SAAhB,CAA0BsB,aAlB1B;AAmBfC,EAAAA,UAAU,EAAE8B,qBAAgBrD,SAAhB,CAA0BuB,UAnBvB;AAoBfC,EAAAA,KAAK,EAAEvB,mBAAUqD,KAAV,CAAgB,oBAAKxF,MAAL,CAAhB,CApBQ;AAqBf,gBAAcmC,mBAAUC,MArBT;AAsBf,2BAAyBD,mBAAUC,MAtBpB;AAuBf,yBAAuBqD,kBAASvD,SAAT,CAAmB,YAAnB,CAvBR;AAwBf,2BAAyBwD,oBAAWxD,SAAX,CAAqB,YAArB,CAxBV;AAyBf,yBAAuBiD,kBAASjD,SAAT,CAAmB,YAAnB,CAzBR;AA0Bf,sBAAoBC,mBAAUC,MA1Bf;AA2Bf,yBAAuBD,mBAAUC,MA3BlB;AA4Bf,6BAA2BmD,qBAAgBrD,SAAhB,CAA0B,YAA1B;AA5BZ,CAAjB;eA8BeI,I","sourcesContent":["import React, {useMemo, memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, isUndefined, pick, keys} from 'lodash/fp';\nimport {\n NovaSolidLoginLocked as LockIcon,\n NovaCompositionCoorpacademyPictures as PicturesIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport CardContentInfo, {MODES} from '../card-content';\nimport Customer from './customer';\nimport Favorite from './favorite';\nimport Selectable from './selectable';\nimport Notification from './notification';\nimport style from './style.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst CardBackground = ({type, image, empty, 'aria-label': ariaLabel}, {skin}) => {\n const externalContent = isExternalContent(type);\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const iconColor = EXTERNAL_CONTENT_ICONS[type].color;\n const backgroundIcon = (\n <div className={style.externalIconCircleWrapper}>\n <IconType className={style.externalIcon} />\n </div>\n );\n\n if (image) {\n const _backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n style={{\n backgroundColor: iconColor\n }}\n >\n <IconType className={style.externalIconWithImage} />\n </div>\n );\n\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor,\n backgroundImage: `url('${image}')`\n }}\n className={classnames(style.externalContentHeader, style.externalBackground)}\n >\n {_backgroundIcon}\n </div>\n </div>\n );\n }\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor\n }}\n className={style.externalContentHeader}\n >\n {backgroundIcon}\n </div>\n </div>\n );\n }\n\n const emptyIcon = empty ? <PicturesIcon className={style.emptyIcon} color={whiteColor} /> : null;\n return (\n <div\n className={classnames(\n style.imageWrapper,\n type === 'chapter' ? style.chapterImageWrapper : null\n )}\n >\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n >\n {emptyIcon}\n </div>\n </div>\n );\n};\n\nCardBackground.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCardBackground.propTypes = {\n type: PropTypes.string,\n image: PropTypes.string,\n empty: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nconst Card = memo(function Card(props, context) {\n const {skin} = context;\n const {\n image,\n badge,\n adaptiv,\n disabled = false,\n type = 'course',\n title,\n author,\n customer,\n certifiedAuthor,\n progress,\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n onClick,\n onFavoriteClick,\n isSelected,\n notification,\n badgeCategory,\n badgeLabel,\n theme = 'default',\n 'aria-label': cardArialabel,\n 'background-aria-label': backgroundAriaLabel,\n 'favorite-aria-label': favoriteAriaLabel,\n 'selectable-aria-label': selectableAriaLabel,\n 'customer-aria-label': customerAriaLabel,\n 'badge-aria-label': badgeAriaLabel,\n 'disabled-aria-label': disabledArialabel,\n 'card-content-aria-label': cardContentLabelAriaLabel\n } = props;\n const empty = isEmpty(pick(['title', 'type', 'author', 'image'], props));\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n const cardStyle = classnames(\n THEMES[theme],\n type === 'chapter' ? style.chapter : style.course,\n title ? null : style.lazy,\n style.grid,\n empty ? style.empty : null\n );\n const handleClick = useMemo(() => e => !disabled && onClick(e), [disabled, onClick]);\n const lock = disabled ? (\n <LockIcon className={style.lockIcon} color={whiteColor} height={40} />\n ) : null;\n const inlineBadgeStyle = {color: primaryColor};\n const getType = contentType => {\n switch (contentType) {\n case 'chapter':\n return 'microlearning';\n case 'course':\n return 'learner';\n default:\n return contentType;\n }\n };\n\n return (\n <div\n className={cardStyle}\n data-name=\"card\"\n data-lock={disabled}\n data-type={getType(type)}\n disabled={disabled}\n onClick={handleClick}\n aria-label={cardArialabel}\n >\n <CardBackground type={type} image={image} empty={empty} aria-label={backgroundAriaLabel} />\n {isUndefined(isSelected) && !isUndefined(favorite) ? (\n <Favorite\n className={style.favorite}\n favorite={favorite}\n disabled={disabled}\n onFavoriteClick={onFavoriteClick}\n addFavoriteToolTip={addFavoriteToolTip}\n removeFavoriteToolTip={removeFavoriteToolTip}\n aria-label={favoriteAriaLabel}\n />\n ) : null}\n <Selectable isSelected={isSelected} aria-label={selectableAriaLabel} />\n {notification ? <Notification {...notification} /> : null}\n {customer ? (\n <Customer\n {...customer}\n theme={theme}\n type={type}\n disabled={disabled}\n aria-label={customerAriaLabel}\n />\n ) : null}\n <CardContentInfo\n mode={MODES.CARD}\n adaptiv={adaptiv}\n author={author}\n certifiedAuthor={certifiedAuthor}\n disabled={disabled}\n empty={empty}\n progress={progress}\n title={title}\n type={type}\n badgeCategory={badgeCategory}\n badgeLabel={badgeLabel}\n theme={theme}\n aria-label={cardContentLabelAriaLabel}\n />\n {badge ? (\n <div className={style.badge} style={inlineBadgeStyle} aria-label={badgeAriaLabel}>\n {badge}\n </div>\n ) : null}\n {disabled ? (\n <div className={style.lockWrapper} aria-label={disabledArialabel}>\n {lock}\n </div>\n ) : null}\n </div>\n );\n});\n\nCard.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCard.propTypes = {\n badge: PropTypes.string,\n image: PropTypes.string,\n disabled: PropTypes.bool,\n adaptiv: PropTypes.bool,\n type: PropTypes.string,\n title: PropTypes.string,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n customer: PropTypes.shape(Customer.propTypes),\n progress: PropTypes.number,\n favorite: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onClick: PropTypes.func,\n onFavoriteClick: PropTypes.func,\n isSelected: PropTypes.bool,\n notification: PropTypes.shape(Notification.propTypes),\n badgeCategory: CardContentInfo.propTypes.badgeCategory,\n badgeLabel: CardContentInfo.propTypes.badgeLabel,\n theme: PropTypes.oneOf(keys(THEMES)),\n 'aria-label': PropTypes.string,\n 'background-aria-label': PropTypes.string,\n 'favorite-aria-label': Favorite.propTypes['aria-label'],\n 'selectable-aria-label': Selectable.propTypes['aria-label'],\n 'customer-aria-label': Customer.propTypes['aria-label'],\n 'badge-aria-label': PropTypes.string,\n 'disabled-aria-label': PropTypes.string,\n 'card-content-aria-label': CardContentInfo.propTypes['aria-label']\n};\nexport default Card;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/card/index.js"],"names":["THEMES","default","coorpmanager","style","CardBackground","type","image","empty","ariaLabel","skin","externalContent","primaryColor","whiteColor","EXTERNAL_CONTENT_ICONS","IconType","icon","iconColor","color","backgroundIcon","externalIconCircleWrapper","externalIcon","_backgroundIcon","externalIconCircleWithImageWrapper","backgroundColor","externalIconWithImage","imageWrapper","backgroundImage","externalContentHeader","externalBackground","emptyIcon","chapterImageWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","Card","props","context","badge","adaptiv","disabled","hidden","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","theme","cardArialabel","backgroundAriaLabel","favoriteAriaLabel","selectableAriaLabel","customerAriaLabel","badgeAriaLabel","disabledArialabel","cardContentLabelAriaLabel","cardStyle","chapter","course","lazy","grid","handleClick","e","lock","lockIcon","inlineBadgeStyle","getType","contentType","MODES","CARD","lockWrapper","shape","Customer","number","func","Notification","CardContentInfo","oneOf","Favorite","Selectable"],"mappings":"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","sourcesContent":["import React, {useMemo, memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, isUndefined, pick, keys} from 'lodash/fp';\nimport {\n NovaSolidLoginLocked as LockIcon,\n NovaCompositionCoorpacademyPictures as PicturesIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport CardContentInfo, {MODES} from '../card-content';\nimport Customer from './customer';\nimport Favorite from './favorite';\nimport Selectable from './selectable';\nimport Notification from './notification';\nimport style from './style.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst CardBackground = ({type, image, empty, 'aria-label': ariaLabel}, {skin}) => {\n const externalContent = isExternalContent(type);\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const iconColor = EXTERNAL_CONTENT_ICONS[type].color;\n const backgroundIcon = (\n <div className={style.externalIconCircleWrapper}>\n <IconType className={style.externalIcon} />\n </div>\n );\n\n if (image) {\n const _backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n style={{\n backgroundColor: iconColor\n }}\n >\n <IconType className={style.externalIconWithImage} />\n </div>\n );\n\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor,\n backgroundImage: `url('${image}')`\n }}\n className={classnames(style.externalContentHeader, style.externalBackground)}\n >\n {_backgroundIcon}\n </div>\n </div>\n );\n }\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor\n }}\n className={style.externalContentHeader}\n >\n {backgroundIcon}\n </div>\n </div>\n );\n }\n\n const emptyIcon = empty ? <PicturesIcon className={style.emptyIcon} color={whiteColor} /> : null;\n return (\n <div\n className={classnames(\n style.imageWrapper,\n type === 'chapter' ? style.chapterImageWrapper : null\n )}\n >\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n >\n {emptyIcon}\n </div>\n </div>\n );\n};\n\nCardBackground.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCardBackground.propTypes = {\n type: PropTypes.string,\n image: PropTypes.string,\n empty: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nconst Card = memo(function Card(props, context) {\n const {skin} = context;\n const {\n image,\n badge,\n adaptiv,\n disabled: hidden = false,\n type = 'course',\n title,\n author,\n customer,\n certifiedAuthor,\n progress,\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n onClick,\n onFavoriteClick,\n isSelected,\n notification,\n badgeCategory,\n badgeLabel,\n theme = 'default',\n 'aria-label': cardArialabel,\n 'background-aria-label': backgroundAriaLabel,\n 'favorite-aria-label': favoriteAriaLabel,\n 'selectable-aria-label': selectableAriaLabel,\n 'customer-aria-label': customerAriaLabel,\n 'badge-aria-label': badgeAriaLabel,\n 'disabled-aria-label': disabledArialabel,\n 'card-content-aria-label': cardContentLabelAriaLabel\n } = props;\n const empty = isEmpty(pick(['title', 'type', 'author', 'image'], props));\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n const cardStyle = classnames(\n THEMES[theme],\n type === 'chapter' ? style.chapter : style.course,\n title ? null : style.lazy,\n style.grid,\n empty ? style.empty : null\n );\n const disabled = hidden && (!isSelected || isUndefined(isSelected));\n const handleClick = useMemo(() => e => !disabled && onClick(e), [disabled, onClick]);\n const lock = disabled ? (\n <LockIcon className={style.lockIcon} color={whiteColor} height={40} />\n ) : null;\n const inlineBadgeStyle = {color: primaryColor};\n const getType = contentType => {\n switch (contentType) {\n case 'chapter':\n return 'microlearning';\n case 'course':\n return 'learner';\n default:\n return contentType;\n }\n };\n\n return (\n <div\n className={cardStyle}\n data-name=\"card\"\n data-lock={disabled}\n data-type={getType(type)}\n disabled={disabled}\n onClick={handleClick}\n aria-label={cardArialabel}\n >\n <CardBackground type={type} image={image} empty={empty} aria-label={backgroundAriaLabel} />\n {isUndefined(isSelected) && !isUndefined(favorite) ? (\n <Favorite\n className={style.favorite}\n favorite={favorite}\n disabled={disabled}\n onFavoriteClick={onFavoriteClick}\n addFavoriteToolTip={addFavoriteToolTip}\n removeFavoriteToolTip={removeFavoriteToolTip}\n aria-label={favoriteAriaLabel}\n />\n ) : null}\n <Selectable isSelected={isSelected} hidden={hidden} aria-label={selectableAriaLabel} />\n {notification ? <Notification {...notification} /> : null}\n {customer ? (\n <Customer\n {...customer}\n theme={theme}\n type={type}\n disabled={disabled}\n aria-label={customerAriaLabel}\n />\n ) : null}\n <CardContentInfo\n mode={MODES.CARD}\n adaptiv={adaptiv}\n author={author}\n certifiedAuthor={certifiedAuthor}\n disabled={disabled}\n empty={empty}\n progress={progress}\n title={title}\n type={type}\n badgeCategory={badgeCategory}\n badgeLabel={badgeLabel}\n theme={theme}\n aria-label={cardContentLabelAriaLabel}\n />\n {badge ? (\n <div className={style.badge} style={inlineBadgeStyle} aria-label={badgeAriaLabel}>\n {badge}\n </div>\n ) : null}\n {disabled ? (\n <div className={style.lockWrapper} aria-label={disabledArialabel}>\n {lock}\n </div>\n ) : null}\n </div>\n );\n});\n\nCard.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCard.propTypes = {\n badge: PropTypes.string,\n image: PropTypes.string,\n disabled: PropTypes.bool,\n adaptiv: PropTypes.bool,\n type: PropTypes.string,\n title: PropTypes.string,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n customer: PropTypes.shape(Customer.propTypes),\n progress: PropTypes.number,\n favorite: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onClick: PropTypes.func,\n onFavoriteClick: PropTypes.func,\n isSelected: PropTypes.bool,\n notification: PropTypes.shape(Notification.propTypes),\n badgeCategory: CardContentInfo.propTypes.badgeCategory,\n badgeLabel: CardContentInfo.propTypes.badgeLabel,\n theme: PropTypes.oneOf(keys(THEMES)),\n 'aria-label': PropTypes.string,\n 'background-aria-label': PropTypes.string,\n 'favorite-aria-label': Favorite.propTypes['aria-label'],\n 'selectable-aria-label': Selectable.propTypes['aria-label'],\n 'customer-aria-label': Customer.propTypes['aria-label'],\n 'badge-aria-label': PropTypes.string,\n 'disabled-aria-label': PropTypes.string,\n 'card-content-aria-label': CardContentInfo.propTypes['aria-label']\n};\nexport default Card;\n"],"file":"index.js"}
@@ -1,6 +1,7 @@
1
1
  @value colors: "../../variables/colors.css";
2
2
  @value positive from colors;
3
3
  @value cm_grey_400 from colors;
4
+ @value cm_negative_200 from colors;
4
5
 
5
6
  .selectable {
6
7
  width: 100%;
@@ -34,6 +35,15 @@
34
35
  display: none;
35
36
  }
36
37
 
38
+ .eyeIcons {
39
+ color: white;
40
+ width: 30px;
41
+ height: 30px;
42
+ padding: 4px 4px;
43
+ border-radius: 50%;
44
+ display: none;
45
+ }
46
+
37
47
  .checkIcon {
38
48
  color: positive;
39
49
  composes: icons;
@@ -44,14 +54,43 @@
44
54
  composes: icons;
45
55
  }
46
56
 
57
+ .showIcon {
58
+ background: cm_grey_400;
59
+ composes: eyeIcons;
60
+ }
61
+
62
+ .hideIcon {
63
+ background: cm_negative_200;
64
+ composes: eyeIcons;
65
+ }
66
+
67
+
68
+ .selectable.selected.hidden .showIcon,
69
+ .selectable.selected.hidden .addIcon,
70
+ .selectable.hidden .addIcon,
71
+ .selectable.hidden .checkIcon,
72
+ .selectable.hidden:hover .checkIcon {
73
+ display: none;
74
+ }
75
+ .hidden.selectable .hideIcon {
76
+ display: block;
77
+ }
78
+ .hidden.selectable:hover .hideIcon {
79
+ display: none;
80
+ }
81
+ .hidden.selectable:hover .showIcon {
82
+ display: block;
83
+ }
84
+
85
+
47
86
  .selectable:hover .addIcon,
48
87
  .selectable:hover .circle {
49
88
  display: block;
50
89
  }
51
90
 
52
- .selectable.selected .checkIcon,
91
+ .selectable.selected:not(.hidden) .checkIcon,
53
92
  .selectable.selected .circle,
54
- .selectable.selected:hover .checkIcon {
93
+ .selectable.selected:not(.hidden):hover .checkIcon {
55
94
  display: block;
56
95
  }
57
96
 
@@ -62,3 +101,11 @@
62
101
  .selectable.selected:hover .addIcon {
63
102
  display: none;
64
103
  }
104
+
105
+ .selectable.selected.hidden:hover .circle {
106
+ display: block;
107
+ }
108
+
109
+ .selectable.selected.hidden:hover .addIcon {
110
+ display: none;
111
+ }
@@ -20,11 +20,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
20
20
  const Selectable = props => {
21
21
  const {
22
22
  isSelected,
23
+ hidden = false,
23
24
  'aria-label': ariaLabel = {}
24
25
  } = props;
25
26
  if ((0, _isUndefined2.default)(isSelected)) return null;
26
27
  return /*#__PURE__*/_react.default.createElement("div", {
27
- className: (0, _classnames.default)(_selectable.default.selectable, isSelected && _selectable.default.selected)
28
+ className: (0, _classnames.default)(_selectable.default.selectable, isSelected && _selectable.default.selected, hidden && _selectable.default.hidden)
28
29
  }, /*#__PURE__*/_react.default.createElement("div", {
29
30
  className: _selectable.default.circle
30
31
  }), /*#__PURE__*/_react.default.createElement("div", {
@@ -35,11 +36,18 @@ const Selectable = props => {
35
36
  }), /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidStatusCheckCircle2, {
36
37
  className: _selectable.default.checkIcon,
37
38
  "aria-label": ariaLabel.unSelect
39
+ }), /*#__PURE__*/_react.default.createElement(_novaIcons.NovaLineContentEditionHide, {
40
+ className: _selectable.default.hideIcon,
41
+ "aria-label": ariaLabel.hide
42
+ }), /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyEye, {
43
+ className: _selectable.default.showIcon,
44
+ "aria-label": ariaLabel.show
38
45
  })));
39
46
  };
40
47
 
41
48
  Selectable.propTypes = process.env.NODE_ENV !== "production" ? {
42
49
  isSelected: _propTypes.default.bool,
50
+ hidden: _propTypes.default.bool,
43
51
  'aria-label': _propTypes.default.shape({
44
52
  select: _propTypes.default.string,
45
53
  unSelect: _propTypes.default.string
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/card/selectable.js"],"names":["Selectable","props","isSelected","ariaLabel","style","selectable","selected","circle","iconWrapper","addIcon","select","checkIcon","unSelect","propTypes","PropTypes","bool","shape","string"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAIA;;;;AAEA,MAAMA,UAAU,GAAGC,KAAK,IAAI;AAC1B,QAAM;AAACC,IAAAA,UAAD;AAAa,kBAAcC,SAAS,GAAG;AAAvC,MAA6CF,KAAnD;AAEA,MAAI,2BAAYC,UAAZ,CAAJ,EAA6B,OAAO,IAAP;AAE7B,sBACE;AAAK,IAAA,SAAS,EAAE,yBAAWE,oBAAMC,UAAjB,EAA6BH,UAAU,IAAIE,oBAAME,QAAjD;AAAhB,kBACE;AAAK,IAAA,SAAS,EAAEF,oBAAMG;AAAtB,IADF,eAEE;AAAK,IAAA,SAAS,EAAEH,oBAAMI;AAAtB,kBACE,6BAAC,uCAAD;AAAS,IAAA,SAAS,EAAEJ,oBAAMK,OAA1B;AAAmC,kBAAYN,SAAS,CAACO;AAAzD,IADF,eAEE,6BAAC,sCAAD;AAAW,IAAA,SAAS,EAAEN,oBAAMO,SAA5B;AAAuC,kBAAYR,SAAS,CAACS;AAA7D,IAFF,CAFF,CADF;AASD,CAdD;;AAgBAZ,UAAU,CAACa,SAAX,2CAAuB;AACrBX,EAAAA,UAAU,EAAEY,mBAAUC,IADD;AAErB,gBAAcD,mBAAUE,KAAV,CAAgB;AAC5BN,IAAAA,MAAM,EAAEI,mBAAUG,MADU;AAE5BL,IAAAA,QAAQ,EAAEE,mBAAUG;AAFQ,GAAhB;AAFO,CAAvB;eAQejB,U","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isUndefined} from 'lodash/fp';\nimport {\n NovaSolidStatusCheckCircle2 as CheckIcon,\n NovaSolidRemoveAddAddCircle1 as AddIcon\n} from '@coorpacademy/nova-icons';\nimport style from './selectable.css';\n\nconst Selectable = props => {\n const {isSelected, 'aria-label': ariaLabel = {}} = props;\n\n if (isUndefined(isSelected)) return null;\n\n return (\n <div className={classnames(style.selectable, isSelected && style.selected)}>\n <div className={style.circle} />\n <div className={style.iconWrapper}>\n <AddIcon className={style.addIcon} aria-label={ariaLabel.select} />\n <CheckIcon className={style.checkIcon} aria-label={ariaLabel.unSelect} />\n </div>\n </div>\n );\n};\n\nSelectable.propTypes = {\n isSelected: PropTypes.bool,\n 'aria-label': PropTypes.shape({\n select: PropTypes.string,\n unSelect: PropTypes.string\n })\n};\n\nexport default Selectable;\n"],"file":"selectable.js"}
1
+ {"version":3,"sources":["../../../src/molecule/card/selectable.js"],"names":["Selectable","props","isSelected","hidden","ariaLabel","style","selectable","selected","circle","iconWrapper","addIcon","select","checkIcon","unSelect","hideIcon","hide","showIcon","show","propTypes","PropTypes","bool","shape","string"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAMA;;;;AAEA,MAAMA,UAAU,GAAGC,KAAK,IAAI;AAC1B,QAAM;AAACC,IAAAA,UAAD;AAAaC,IAAAA,MAAM,GAAG,KAAtB;AAA6B,kBAAcC,SAAS,GAAG;AAAvD,MAA6DH,KAAnE;AAEA,MAAI,2BAAYC,UAAZ,CAAJ,EAA6B,OAAO,IAAP;AAE7B,sBACE;AACE,IAAA,SAAS,EAAE,yBAAWG,oBAAMC,UAAjB,EAA6BJ,UAAU,IAAIG,oBAAME,QAAjD,EAA2DJ,MAAM,IAAIE,oBAAMF,MAA3E;AADb,kBAGE;AAAK,IAAA,SAAS,EAAEE,oBAAMG;AAAtB,IAHF,eAIE;AAAK,IAAA,SAAS,EAAEH,oBAAMI;AAAtB,kBACE,6BAAC,uCAAD;AAAS,IAAA,SAAS,EAAEJ,oBAAMK,OAA1B;AAAmC,kBAAYN,SAAS,CAACO;AAAzD,IADF,eAEE,6BAAC,sCAAD;AAAW,IAAA,SAAS,EAAEN,oBAAMO,SAA5B;AAAuC,kBAAYR,SAAS,CAACS;AAA7D,IAFF,eAGE,6BAAC,qCAAD;AAAU,IAAA,SAAS,EAAER,oBAAMS,QAA3B;AAAqC,kBAAYV,SAAS,CAACW;AAA3D,IAHF,eAIE,6BAAC,yCAAD;AAAU,IAAA,SAAS,EAAEV,oBAAMW,QAA3B;AAAqC,kBAAYZ,SAAS,CAACa;AAA3D,IAJF,CAJF,CADF;AAaD,CAlBD;;AAoBAjB,UAAU,CAACkB,SAAX,2CAAuB;AACrBhB,EAAAA,UAAU,EAAEiB,mBAAUC,IADD;AAErBjB,EAAAA,MAAM,EAAEgB,mBAAUC,IAFG;AAGrB,gBAAcD,mBAAUE,KAAV,CAAgB;AAC5BV,IAAAA,MAAM,EAAEQ,mBAAUG,MADU;AAE5BT,IAAAA,QAAQ,EAAEM,mBAAUG;AAFQ,GAAhB;AAHO,CAAvB;eASetB,U","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isUndefined} from 'lodash/fp';\nimport {\n NovaSolidStatusCheckCircle2 as CheckIcon,\n NovaSolidRemoveAddAddCircle1 as AddIcon,\n NovaLineContentEditionHide as HideIcon,\n NovaCompositionCoorpacademyEye as ShowIcon\n} from '@coorpacademy/nova-icons';\nimport style from './selectable.css';\n\nconst Selectable = props => {\n const {isSelected, hidden = false, 'aria-label': ariaLabel = {}} = props;\n\n if (isUndefined(isSelected)) return null;\n\n return (\n <div\n className={classnames(style.selectable, isSelected && style.selected, hidden && style.hidden)}\n >\n <div className={style.circle} />\n <div className={style.iconWrapper}>\n <AddIcon className={style.addIcon} aria-label={ariaLabel.select} />\n <CheckIcon className={style.checkIcon} aria-label={ariaLabel.unSelect} />\n <HideIcon className={style.hideIcon} aria-label={ariaLabel.hide} />\n <ShowIcon className={style.showIcon} aria-label={ariaLabel.show} />\n </div>\n </div>\n );\n};\n\nSelectable.propTypes = {\n isSelected: PropTypes.bool,\n hidden: PropTypes.bool,\n 'aria-label': PropTypes.shape({\n select: PropTypes.string,\n unSelect: PropTypes.string\n })\n};\n\nexport default Selectable;\n"],"file":"selectable.js"}
@@ -20,9 +20,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
20
20
  const CMPopin = props => {
21
21
  const {
22
22
  content,
23
+ mode = 'alert',
23
24
  firstButton,
24
25
  secondButton,
25
26
  onClose,
27
+ header,
26
28
  icon
27
29
  } = props;
28
30
  const logo = {
@@ -36,7 +38,10 @@ const CMPopin = props => {
36
38
  className: _style.default.popin
37
39
  }, /*#__PURE__*/_react.default.createElement("header", {
38
40
  className: _style.default.popinHeader
39
- }, onClose ? /*#__PURE__*/_react.default.createElement(_buttonLinkIconOnly.default, {
41
+ }, header ? /*#__PURE__*/_react.default.createElement("img", {
42
+ className: _style.default.headerBackground,
43
+ src: header
44
+ }) : null, onClose ? /*#__PURE__*/_react.default.createElement(_buttonLinkIconOnly.default, {
40
45
  onClick: onClose,
41
46
  "data-name": 'close-icon',
42
47
  "aria-label": 'close-icon',
@@ -46,14 +51,14 @@ const CMPopin = props => {
46
51
  className: _style.default.contentSection
47
52
  }, LogoComponent ? /*#__PURE__*/_react.default.createElement(LogoComponent, {
48
53
  className: _style.default.icon
49
- }) : null, /*#__PURE__*/_react.default.createElement("p", {
50
- className: _style.default.content,
54
+ }) : null, content ? /*#__PURE__*/_react.default.createElement("p", {
55
+ className: mode === 'alert' ? _style.default.content : _style.default.message,
51
56
  "data-name": `cm-popin-content` // eslint-disable-next-line react/no-danger
52
57
  ,
53
58
  dangerouslySetInnerHTML: {
54
59
  __html: content
55
60
  }
56
- })), /*#__PURE__*/_react.default.createElement("div", {
61
+ }) : null), /*#__PURE__*/_react.default.createElement("div", {
57
62
  className: _style.default.buttonContainer
58
63
  }, firstButton ? /*#__PURE__*/_react.default.createElement("div", {
59
64
  className: _style.default.button
@@ -71,11 +76,13 @@ const CMPopin = props => {
71
76
  "data-name": `cm-popin-cta-${secondButton.type}`,
72
77
  "aria-label": firstButton['aria-label'],
73
78
  type: secondButton.type
74
- })) : null)), ")");
79
+ })) : null)));
75
80
  };
76
81
 
77
82
  CMPopin.propTypes = process.env.NODE_ENV !== "production" ? {
78
83
  content: _propTypes.default.string,
84
+ mode: _propTypes.default.oneOf(['alert', 'information']),
85
+ header: _propTypes.default.string,
79
86
  firstButton: _propTypes.default.shape({
80
87
  label: _propTypes.default.string,
81
88
  handleOnclick: _propTypes.default.func,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/cm-popin/index.js"],"names":["CMPopin","props","content","firstButton","secondButton","onClose","icon","logo","AlertDiamond","WindowUpload","LogoComponent","style","background","popin","popinHeader","contentSection","__html","buttonContainer","button","label","handleOnclick","type","propTypes","PropTypes","string","shape","func","oneOf"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond,\n NovaSolidApplicationsWindowUpload3 as WindowUpload\n} from '@coorpacademy/nova-icons';\nimport Cta from '../../atom/button-link';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport style from './style.css';\n\nconst CMPopin = props => {\n const {content, firstButton, secondButton, onClose, icon} = props;\n\n const logo = {\n AlertDiamond,\n WindowUpload\n };\n const LogoComponent = logo[icon];\n\n return (\n <div className={style.background}>\n <div className={style.popin}>\n <header className={style.popinHeader}>\n {onClose ? (\n <ButtonLinkIconOnly\n onClick={onClose}\n data-name={'close-icon'}\n aria-label={'close-icon'}\n size=\"small\"\n icon=\"close\"\n />\n ) : null}\n </header>\n <div className={style.contentSection}>\n {LogoComponent ? <LogoComponent className={style.icon} /> : null}\n <p\n className={style.content}\n data-name={`cm-popin-content`}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: content}}\n />\n </div>\n\n <div className={style.buttonContainer}>\n {firstButton ? (\n <div className={style.button}>\n <Cta\n label={firstButton.label}\n onClick={firstButton.handleOnclick}\n data-name={`cm-popin-cta`}\n aria-label={firstButton['aria-label']}\n type={firstButton.type}\n />\n </div>\n ) : null}\n {secondButton ? (\n <div className={style.button}>\n <Cta\n label={secondButton.label}\n onClick={secondButton.handleOnclick}\n data-name={`cm-popin-cta-${secondButton.type}`}\n aria-label={firstButton['aria-label']}\n type={secondButton.type}\n />\n </div>\n ) : null}\n </div>\n </div>\n )\n </div>\n );\n};\n\nCMPopin.propTypes = {\n content: PropTypes.string,\n firstButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n 'aria-label': PropTypes.string,\n type: PropTypes.string\n }),\n secondButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary']),\n 'aria-label': PropTypes.string\n }),\n onClose: PropTypes.func,\n icon: PropTypes.string\n};\n\nexport default CMPopin;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/cm-popin/index.js"],"names":["CMPopin","props","content","mode","firstButton","secondButton","onClose","header","icon","logo","AlertDiamond","WindowUpload","LogoComponent","style","background","popin","popinHeader","headerBackground","contentSection","message","__html","buttonContainer","button","label","handleOnclick","type","propTypes","PropTypes","string","oneOf","shape","func"],"mappings":";;;;;AAAA;;AACA;;AACA;;AAIA;;AACA;;AACA;;;;AAEA,MAAMA,OAAO,GAAGC,KAAK,IAAI;AACvB,QAAM;AAACC,IAAAA,OAAD;AAAUC,IAAAA,IAAI,GAAG,OAAjB;AAA0BC,IAAAA,WAA1B;AAAuCC,IAAAA,YAAvC;AAAqDC,IAAAA,OAArD;AAA8DC,IAAAA,MAA9D;AAAsEC,IAAAA;AAAtE,MAA8EP,KAApF;AAEA,QAAMQ,IAAI,GAAG;AACXC,IAAAA,YAAY,EAAZA,0DADW;AAEXC,IAAAA,YAAY,EAAZA;AAFW,GAAb;AAIA,QAAMC,aAAa,GAAGH,IAAI,CAACD,IAAD,CAA1B;AAEA,sBACE;AAAK,IAAA,SAAS,EAAEK,eAAMC;AAAtB,kBACE;AAAK,IAAA,SAAS,EAAED,eAAME;AAAtB,kBACE;AAAQ,IAAA,SAAS,EAAEF,eAAMG;AAAzB,KACGT,MAAM,gBAAG;AAAK,IAAA,SAAS,EAAEM,eAAMI,gBAAtB;AAAwC,IAAA,GAAG,EAAEV;AAA7C,IAAH,GAA6D,IADtE,EAEGD,OAAO,gBACN,6BAAC,2BAAD;AACE,IAAA,OAAO,EAAEA,OADX;AAEE,iBAAW,YAFb;AAGE,kBAAY,YAHd;AAIE,IAAA,IAAI,EAAC,OAJP;AAKE,IAAA,IAAI,EAAC;AALP,IADM,GAQJ,IAVN,CADF,eAaE;AAAK,IAAA,SAAS,EAAEO,eAAMK;AAAtB,KACGN,aAAa,gBAAG,6BAAC,aAAD;AAAe,IAAA,SAAS,EAAEC,eAAML;AAAhC,IAAH,GAA8C,IAD9D,EAEGN,OAAO,gBACN;AACE,IAAA,SAAS,EAAEC,IAAI,KAAK,OAAT,GAAmBU,eAAMX,OAAzB,GAAmCW,eAAMM,OADtD;AAEE,iBAAY,kBAFd,CAGE;AAHF;AAIE,IAAA,uBAAuB,EAAE;AAACC,MAAAA,MAAM,EAAElB;AAAT;AAJ3B,IADM,GAOJ,IATN,CAbF,eAyBE;AAAK,IAAA,SAAS,EAAEW,eAAMQ;AAAtB,KACGjB,WAAW,gBACV;AAAK,IAAA,SAAS,EAAES,eAAMS;AAAtB,kBACE,6BAAC,mBAAD;AACE,IAAA,KAAK,EAAElB,WAAW,CAACmB,KADrB;AAEE,IAAA,OAAO,EAAEnB,WAAW,CAACoB,aAFvB;AAGE,iBAAY,cAHd;AAIE,kBAAYpB,WAAW,CAAC,YAAD,CAJzB;AAKE,IAAA,IAAI,EAAEA,WAAW,CAACqB;AALpB,IADF,CADU,GAUR,IAXN,EAYGpB,YAAY,gBACX;AAAK,IAAA,SAAS,EAAEQ,eAAMS;AAAtB,kBACE,6BAAC,mBAAD;AACE,IAAA,KAAK,EAAEjB,YAAY,CAACkB,KADtB;AAEE,IAAA,OAAO,EAAElB,YAAY,CAACmB,aAFxB;AAGE,iBAAY,gBAAenB,YAAY,CAACoB,IAAK,EAH/C;AAIE,kBAAYrB,WAAW,CAAC,YAAD,CAJzB;AAKE,IAAA,IAAI,EAAEC,YAAY,CAACoB;AALrB,IADF,CADW,GAUT,IAtBN,CAzBF,CADF,CADF;AAsDD,CA/DD;;AAiEAzB,OAAO,CAAC0B,SAAR,2CAAoB;AAClBxB,EAAAA,OAAO,EAAEyB,mBAAUC,MADD;AAElBzB,EAAAA,IAAI,EAAEwB,mBAAUE,KAAV,CAAgB,CAAC,OAAD,EAAU,aAAV,CAAhB,CAFY;AAGlBtB,EAAAA,MAAM,EAAEoB,mBAAUC,MAHA;AAIlBxB,EAAAA,WAAW,EAAEuB,mBAAUG,KAAV,CAAgB;AAC3BP,IAAAA,KAAK,EAAEI,mBAAUC,MADU;AAE3BJ,IAAAA,aAAa,EAAEG,mBAAUI,IAFE;AAG3B,kBAAcJ,mBAAUC,MAHG;AAI3BH,IAAAA,IAAI,EAAEE,mBAAUC;AAJW,GAAhB,CAJK;AAUlBvB,EAAAA,YAAY,EAAEsB,mBAAUG,KAAV,CAAgB;AAC5BP,IAAAA,KAAK,EAAEI,mBAAUC,MADW;AAE5BJ,IAAAA,aAAa,EAAEG,mBAAUI,IAFG;AAG5BN,IAAAA,IAAI,EAAEE,mBAAUE,KAAV,CAAgB,CAAC,WAAD,EAAc,SAAd,CAAhB,CAHsB;AAI5B,kBAAcF,mBAAUC;AAJI,GAAhB,CAVI;AAgBlBtB,EAAAA,OAAO,EAAEqB,mBAAUI,IAhBD;AAiBlBvB,EAAAA,IAAI,EAAEmB,mBAAUC;AAjBE,CAApB;eAoBe5B,O","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond,\n NovaSolidApplicationsWindowUpload3 as WindowUpload\n} from '@coorpacademy/nova-icons';\nimport Cta from '../../atom/button-link';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport style from './style.css';\n\nconst CMPopin = props => {\n const {content, mode = 'alert', firstButton, secondButton, onClose, header, icon} = props;\n\n const logo = {\n AlertDiamond,\n WindowUpload\n };\n const LogoComponent = logo[icon];\n\n return (\n <div className={style.background}>\n <div className={style.popin}>\n <header className={style.popinHeader}>\n {header ? <img className={style.headerBackground} src={header} /> : null}\n {onClose ? (\n <ButtonLinkIconOnly\n onClick={onClose}\n data-name={'close-icon'}\n aria-label={'close-icon'}\n size=\"small\"\n icon=\"close\"\n />\n ) : null}\n </header>\n <div className={style.contentSection}>\n {LogoComponent ? <LogoComponent className={style.icon} /> : null}\n {content ? (\n <p\n className={mode === 'alert' ? style.content : style.message}\n data-name={`cm-popin-content`}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: content}}\n />\n ) : null}\n </div>\n\n <div className={style.buttonContainer}>\n {firstButton ? (\n <div className={style.button}>\n <Cta\n label={firstButton.label}\n onClick={firstButton.handleOnclick}\n data-name={`cm-popin-cta`}\n aria-label={firstButton['aria-label']}\n type={firstButton.type}\n />\n </div>\n ) : null}\n {secondButton ? (\n <div className={style.button}>\n <Cta\n label={secondButton.label}\n onClick={secondButton.handleOnclick}\n data-name={`cm-popin-cta-${secondButton.type}`}\n aria-label={firstButton['aria-label']}\n type={secondButton.type}\n />\n </div>\n ) : null}\n </div>\n </div>\n </div>\n );\n};\n\nCMPopin.propTypes = {\n content: PropTypes.string,\n mode: PropTypes.oneOf(['alert', 'information']),\n header: PropTypes.string,\n firstButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n 'aria-label': PropTypes.string,\n type: PropTypes.string\n }),\n secondButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary']),\n 'aria-label': PropTypes.string\n }),\n onClose: PropTypes.func,\n icon: PropTypes.string\n};\n\nexport default CMPopin;\n"],"file":"index.js"}
@@ -6,6 +6,7 @@
6
6
  @value cm_grey_800 from colors;
7
7
  @value negative from colors;
8
8
  @value lightGreen from colors;
9
+ @value xtraLightGrey from colors;
9
10
  @value cm_grey_50 from colors;
10
11
  @value cm_negative_100 from colors;
11
12
  @value cm_negative_200 from colors;
@@ -29,6 +30,12 @@
29
30
  position:fixed;
30
31
  }
31
32
 
33
+ .headerBackground {
34
+ width: calc(100% + 32px);
35
+ height: auto;
36
+ margin: -16px -16px 0px -16px;
37
+ }
38
+
32
39
  .popin {
33
40
  position: absolute;
34
41
  overflow: auto;
@@ -46,6 +53,23 @@
46
53
  animation: popup 0.7s;
47
54
  }
48
55
 
56
+ .message {
57
+ display: flex;
58
+ flex-direction: column;
59
+ justify-content: center;
60
+ align-items: center;
61
+ padding: 40px 40px 0px;
62
+ position: absolute;
63
+ background: xtraLightGrey;
64
+ font-family: 'Gilroy';
65
+ font-weight: 500;
66
+ font-size: 14px;
67
+ line-height: 20px;
68
+ margin: 0;
69
+ }
70
+ .message p {
71
+ margin: 10px 0px;
72
+ }
49
73
  @keyframes popup {
50
74
  0%{
51
75
  transform: scale(0);
@@ -98,4 +122,8 @@
98
122
  width: 100%;
99
123
  display: flex;
100
124
  justify-content: flex-end;
125
+ }
126
+
127
+ .popinHeader button {
128
+ position: absolute;
101
129
  }