@coorpacademy/components 11.14.21-alpha.1 → 11.14.22

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 (64) hide show
  1. package/es/atom/button-link-icon-only/index.d.ts.map +1 -1
  2. package/es/atom/button-link-icon-only/index.js +1 -0
  3. package/es/atom/button-link-icon-only/index.js.map +1 -1
  4. package/es/molecule/audio/index.d.ts.map +1 -1
  5. package/es/molecule/audio/index.js +1 -0
  6. package/es/molecule/audio/index.js.map +1 -1
  7. package/es/molecule/drag-and-drop/index.js +3 -1
  8. package/es/molecule/drag-and-drop/index.js.map +1 -1
  9. package/es/molecule/drag-and-drop/overlay.d.ts.map +1 -1
  10. package/es/molecule/drag-and-drop/overlay.js +2 -1
  11. package/es/molecule/drag-and-drop/overlay.js.map +1 -1
  12. package/es/molecule/drag-and-drop/upload-report.d.ts.map +1 -1
  13. package/es/molecule/drag-and-drop/upload-report.js +1 -0
  14. package/es/molecule/drag-and-drop/upload-report.js.map +1 -1
  15. package/es/molecule/draggable/index.d.ts.map +1 -1
  16. package/es/molecule/draggable/index.js +1 -0
  17. package/es/molecule/draggable/index.js.map +1 -1
  18. package/es/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  19. package/es/molecule/expandible-actionable-table/index.js +1 -0
  20. package/es/molecule/expandible-actionable-table/index.js.map +1 -1
  21. package/es/molecule/forum/forum-comment/index.js +2 -2
  22. package/es/molecule/forum/forum-comment/index.js.map +1 -1
  23. package/es/organism/mooc-header/index.js +1 -1
  24. package/es/organism/mooc-header/index.js.map +1 -1
  25. package/es/template/app-player/player/slides/header/index.js +2 -1
  26. package/es/template/app-player/player/slides/header/index.js.map +1 -1
  27. package/es/template/app-player/player/slides/header/microlearning.css +10 -0
  28. package/es/template/app-player/player/slides/header/microlearning.d.ts +1 -0
  29. package/es/template/app-player/player/slides/header/microlearning.d.ts.map +1 -1
  30. package/es/template/app-player/player/slides/header/microlearning.js +34 -18
  31. package/es/template/app-player/player/slides/header/microlearning.js.map +1 -1
  32. package/lib/atom/button-link-icon-only/index.d.ts.map +1 -1
  33. package/lib/atom/button-link-icon-only/index.js +1 -0
  34. package/lib/atom/button-link-icon-only/index.js.map +1 -1
  35. package/lib/molecule/audio/index.d.ts.map +1 -1
  36. package/lib/molecule/audio/index.js +1 -0
  37. package/lib/molecule/audio/index.js.map +1 -1
  38. package/lib/molecule/drag-and-drop/index.js +3 -1
  39. package/lib/molecule/drag-and-drop/index.js.map +1 -1
  40. package/lib/molecule/drag-and-drop/overlay.d.ts.map +1 -1
  41. package/lib/molecule/drag-and-drop/overlay.js +2 -1
  42. package/lib/molecule/drag-and-drop/overlay.js.map +1 -1
  43. package/lib/molecule/drag-and-drop/upload-report.d.ts.map +1 -1
  44. package/lib/molecule/drag-and-drop/upload-report.js +1 -0
  45. package/lib/molecule/drag-and-drop/upload-report.js.map +1 -1
  46. package/lib/molecule/draggable/index.d.ts.map +1 -1
  47. package/lib/molecule/draggable/index.js +1 -0
  48. package/lib/molecule/draggable/index.js.map +1 -1
  49. package/lib/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  50. package/lib/molecule/expandible-actionable-table/index.js +1 -0
  51. package/lib/molecule/expandible-actionable-table/index.js.map +1 -1
  52. package/lib/molecule/forum/forum-comment/index.js +2 -2
  53. package/lib/molecule/forum/forum-comment/index.js.map +1 -1
  54. package/lib/organism/mooc-header/index.js +1 -1
  55. package/lib/organism/mooc-header/index.js.map +1 -1
  56. package/lib/template/app-player/player/slides/header/index.js +2 -1
  57. package/lib/template/app-player/player/slides/header/index.js.map +1 -1
  58. package/lib/template/app-player/player/slides/header/microlearning.css +10 -0
  59. package/lib/template/app-player/player/slides/header/microlearning.d.ts +1 -0
  60. package/lib/template/app-player/player/slides/header/microlearning.d.ts.map +1 -1
  61. package/lib/template/app-player/player/slides/header/microlearning.js +35 -18
  62. package/lib/template/app-player/player/slides/header/microlearning.js.map +1 -1
  63. package/locales/en/global.json +1 -2
  64. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/button-link-icon-only/index.js"],"names":[],"mappings":";AAkCA,6DA+CC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/button-link-icon-only/index.js"],"names":[],"mappings":";AAkCA,6DAgDC"}
@@ -68,6 +68,7 @@ const ButtonLinkIconOnly = props => {
68
68
  type: "button",
69
69
  "aria-label": ariaLabel,
70
70
  "data-name": dataName,
71
+ "data-testid": `button-${dataName}-${className}`,
71
72
  title: ariaLabel,
72
73
  className: styleButton,
73
74
  onClick: handleOnClick
@@ -1 +1 @@
1
- {"version":3,"file":"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"],"sources":["../../../src/atom/button-link-icon-only/index.js"],"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';\n// eslint-disable-next-line css-modules/no-unused-class\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 style[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"],"mappings":"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"}
1
+ {"version":3,"file":"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"],"sources":["../../../src/atom/button-link-icon-only/index.js"],"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';\n// eslint-disable-next-line css-modules/no-unused-class\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 style[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 data-testid={`button-${dataName}-${className}`}\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"],"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,C,CACA;;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,gBAAgB,GAAGC,IAAI,IAAI;EAC/B,MAAMC,IAAI,GAAG,OAAM,IAAN,EAAYD,IAAZ,EAAkBJ,KAAlB,CAAb;;EAEA,IAAI,CAACK,IAAL,EAAW;IACT,oBAAO;MAAK,SAAS,EAAEH,KAAK,CAACI;IAAtB,EAAP;EACD;;EAED,oBACE;IAAK,SAAS,EAAEJ,KAAK,CAACI;EAAtB,gBACE,oBAAC,IAAD;IAAM,SAAS,EAAEJ,KAAK,CAACE;EAAvB,EADF,CADF;AAKD,CAZD;;AAcA,MAAMG,YAAY,GAAGC,IAAI,IAAI;EAC3B,QAAQA,IAAR;IACE,KAAK,OAAL;MACE,OAAON,KAAK,CAACO,KAAb;;IACF,KAAK,YAAL;MACE,OAAOP,KAAK,CAACQ,UAAb;;IACF;MACE,OAAOR,KAAK,CAACS,OAAb;EANJ;AAQD,CATD;;AAWA,MAAMC,kBAAkB,GAAGC,KAAK,IAAI;EAClC,MAAM;IACJL,IAAI,GAAG,SADH;IAEJM,QAFI;IAGJV,IAHI;IAIJ,aAAaW,QAJT;IAKJ,cAAcC,SALV;IAMJC,IANI;IAOJC,OAPI;IAQJC;EARI,IASFN,KATJ;EAUA,MAAMO,WAAW,GAAGjB,gBAAgB,CAACC,IAAD,CAApC;EACA,MAAMiB,WAAW,GAAGtB,UAAU,CAC5BQ,YAAY,CAACC,IAAD,CADgB,EAE5BS,IAAI,IAAIf,KAAK,CAACe,IAFc,EAG5BH,QAAQ,IAAIZ,KAAK,CAACY,QAHU,EAI5BZ,KAAK,CAACiB,SAAD,CAJuB,CAA9B;EAOA,MAAMG,aAAa,GAAGzB,OAAO,CAAC,MAAM,MAAMqB,OAAO,EAApB,EAAwB,CAACA,OAAD,CAAxB,CAA7B;;EAEA,IAAID,IAAJ,EAAU;IACR,oBACE,oBAAC,IAAD,eACMA,IADN;MAEE,SAAS,EAAEI,WAFb;MAGE,aAAWN,QAHb;MAIE,cAAYC,SAJd;MAKE,KAAK,EAAEA;IALT,IAOGI,WAPH,CADF;EAWD;;EAED,oBACE;IACE,IAAI,EAAC,QADP;IAEE,cAAYJ,SAFd;IAGE,aAAWD,QAHb;IAIE,eAAc,UAASA,QAAS,IAAGI,SAAU,EAJ/C;IAKE,KAAK,EAAEH,SALT;IAME,SAAS,EAAEK,WANb;IAOE,OAAO,EAAEC;EAPX,GASGF,WATH,CADF;AAaD,CAhDD;;AAkDAR,kBAAkB,CAACW,SAAnB,2CAA+B;EAC7Bf,IAAI,EAAEV,SAAS,CAAC0B,KAAV,CAAgB,CAAC,SAAD,EAAY,OAAZ,EAAqB,YAArB,CAAhB,CADuB;EAE7B,cAAc1B,SAAS,CAAC2B,MAFK;EAG7B,aAAa3B,SAAS,CAAC2B,MAHM;EAI7BrB,IAAI,EAAEN,SAAS,CAAC0B,KAAV,CAAgB,MAAKxB,KAAL,CAAhB,CAJuB;EAK7BkB,OAAO,EAAEpB,SAAS,CAAC4B,IALU;EAM7BT,IAAI,EAAEnB,SAAS,CAAC6B,KAAV,CAAgB;IACpBC,IAAI,EAAE9B,SAAS,CAAC2B,MADI;IAEpBI,QAAQ,EAAE/B,SAAS,CAACgC,IAFA;IAGpBC,MAAM,EAAEjC,SAAS,CAAC0B,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB;EAHY,CAAhB,CANuB;EAW7BV,QAAQ,EAAEhB,SAAS,CAACgC,IAXS;EAY7BX,SAAS,EAAErB,SAAS,CAAC2B;AAZQ,CAA/B;AAeA,eAAeb,kBAAf"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/audio/index.js"],"names":[],"mappings":";AAQA;IACE;;;;;MAKE;IAEF;;;;;;;;;;;;;;;;;;;;;;MAEE;IAEF,sCAKC;IAeD,yBAGC;IApBC,kBAAwB;IAa1B,iCAEE;IAXF,+CAGC;IAED,2BAEC;IAWD,sBA+BC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/audio/index.js"],"names":[],"mappings":";AAQA;IACE;;;;;MAKE;IAEF;;;;;;;;;;;;;;;;;;;;;;MAEE;IAEF,sCAKC;IAeD,yBAGC;IApBC,kBAAwB;IAa1B,iCAEE;IAXF,+CAGC;IAED,2BAEC;IAWD,sBAgCC;CACF"}
@@ -74,6 +74,7 @@ class Audio extends React.Component {
74
74
  autoPlay: "",
75
75
  onPlay: this.handlePlay,
76
76
  name: "media",
77
+ "data-testid": "audio",
77
78
  "data-name": "audio",
78
79
  preload: "auto"
79
80
  }, /*#__PURE__*/React.createElement("source", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classnames","NovaCompositionCoorpacademyMicrophone","PodcastIcon","Provider","style","Audio","Component","constructor","props","context","setAudio","element","audioElement","handlePlay","bind","shouldComponentUpdate","nextProps","mediaUrl","componentDidUpdate","load","e","onPlay","render","description","poster","skin","white","frame","backgroundImage","color","icon","innerHTML","__html","audio","contextTypes","childContextTypes","propTypes","string","func"],"sources":["../../../src/molecule/audio/index.js"],"sourcesContent":["import React from 'react';\nimport {get} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {NovaCompositionCoorpacademyMicrophone as PodcastIcon} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nclass Audio extends React.Component {\n static propTypes = {\n description: PropTypes.string,\n mediaUrl: PropTypes.string,\n poster: PropTypes.string,\n onPlay: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props, context) {\n super(props, context);\n this.handlePlay = this.handlePlay.bind(this);\n this.audioElement = null;\n this.setAudio = this.setAudio.bind(this);\n }\n\n shouldComponentUpdate(nextProps) {\n const {mediaUrl} = this.props;\n return nextProps.mediaUrl !== mediaUrl;\n }\n\n componentDidUpdate() {\n this.audioElement.load();\n }\n\n setAudio = element => {\n this.audioElement = element;\n };\n\n handlePlay(e) {\n const {onPlay} = this.props;\n if (onPlay) onPlay(e);\n }\n\n render() {\n const {description, mediaUrl, poster} = this.props;\n const {skin} = this.context;\n\n const white = get('common.white', skin);\n return (\n <div className={style.frame} style={{backgroundImage: `url(${poster})`}}>\n <PodcastIcon style={{color: white}} className={style.icon} />\n {description ? (\n <div\n className={classnames(style.description, style.innerHTML)}\n data-name=\"audioDescription\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: description}}\n />\n ) : null}\n <audio\n className={style.audio}\n controls\n controlsList=\"nodownload\"\n ref={this.setAudio}\n autoPlay=\"\"\n onPlay={this.handlePlay}\n name=\"media\"\n data-name=\"audio\"\n preload=\"auto\"\n >\n <source src={mediaUrl} />\n </audio>\n </div>\n );\n }\n}\n\nexport default Audio;\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,qCAAqC,IAAIC,WAAjD,QAAmE,0BAAnE;AACA,OAAOC,QAAP,MAAqB,qBAArB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,KAAN,SAAoBP,KAAK,CAACQ,SAA1B,CAAoC;EAYlCC,WAAW,CAACC,KAAD,EAAQC,OAAR,EAAiB;IAC1B,MAAMD,KAAN,EAAaC,OAAb;;IAD0B,KAgB5BC,QAhB4B,GAgBjBC,OAAO,IAAI;MACpB,KAAKC,YAAL,GAAoBD,OAApB;IACD,CAlB2B;;IAE1B,KAAKE,UAAL,GAAkB,KAAKA,UAAL,CAAgBC,IAAhB,CAAqB,IAArB,CAAlB;IACA,KAAKF,YAAL,GAAoB,IAApB;IACA,KAAKF,QAAL,GAAgB,KAAKA,QAAL,CAAcI,IAAd,CAAmB,IAAnB,CAAhB;EACD;;EAEDC,qBAAqB,CAACC,SAAD,EAAY;IAC/B,MAAM;MAACC;IAAD,IAAa,KAAKT,KAAxB;IACA,OAAOQ,SAAS,CAACC,QAAV,KAAuBA,QAA9B;EACD;;EAEDC,kBAAkB,GAAG;IACnB,KAAKN,YAAL,CAAkBO,IAAlB;EACD;;EAMDN,UAAU,CAACO,CAAD,EAAI;IACZ,MAAM;MAACC;IAAD,IAAW,KAAKb,KAAtB;IACA,IAAIa,MAAJ,EAAYA,MAAM,CAACD,CAAD,CAAN;EACb;;EAEDE,MAAM,GAAG;IACP,MAAM;MAACC,WAAD;MAAcN,QAAd;MAAwBO;IAAxB,IAAkC,KAAKhB,KAA7C;IACA,MAAM;MAACiB;IAAD,IAAS,KAAKhB,OAApB;;IAEA,MAAMiB,KAAK,GAAG,KAAI,cAAJ,EAAoBD,IAApB,CAAd;;IACA,oBACE;MAAK,SAAS,EAAErB,KAAK,CAACuB,KAAtB;MAA6B,KAAK,EAAE;QAACC,eAAe,EAAG,OAAMJ,MAAO;MAAhC;IAApC,gBACE,oBAAC,WAAD;MAAa,KAAK,EAAE;QAACK,KAAK,EAAEH;MAAR,CAApB;MAAoC,SAAS,EAAEtB,KAAK,CAAC0B;IAArD,EADF,EAEGP,WAAW,gBACV;MACE,SAAS,EAAEvB,UAAU,CAACI,KAAK,CAACmB,WAAP,EAAoBnB,KAAK,CAAC2B,SAA1B,CADvB;MAEE,aAAU,kBAFZ,CAGE;MAHF;MAIE,uBAAuB,EAAE;QAACC,MAAM,EAAET;MAAT;IAJ3B,EADU,GAOR,IATN,eAUE;MACE,SAAS,EAAEnB,KAAK,CAAC6B,KADnB;MAEE,QAAQ,MAFV;MAGE,YAAY,EAAC,YAHf;MAIE,GAAG,EAAE,KAAKvB,QAJZ;MAKE,QAAQ,EAAC,EALX;MAME,MAAM,EAAE,KAAKG,UANf;MAOE,IAAI,EAAC,OAPP;MAQE,aAAU,OARZ;MASE,OAAO,EAAC;IATV,gBAWE;MAAQ,GAAG,EAAEI;IAAb,EAXF,CAVF,CADF;EA0BD;;AApEiC;;AAA9BZ,K,CAQG6B,Y,GAAe;EACpBT,IAAI,EAAEtB,QAAQ,CAACgC,iBAAT,CAA2BV;AADb,C;AARlBpB,K,CACG+B,S,2CAAY;EACjBb,WAAW,EAAExB,SAAS,CAACsC,MADN;EAEjBpB,QAAQ,EAAElB,SAAS,CAACsC,MAFH;EAGjBb,MAAM,EAAEzB,SAAS,CAACsC,MAHD;EAIjBhB,MAAM,EAAEtB,SAAS,CAACuC;AAJD,C;AAsErB,eAAejC,KAAf"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classnames","NovaCompositionCoorpacademyMicrophone","PodcastIcon","Provider","style","Audio","Component","constructor","props","context","setAudio","element","audioElement","handlePlay","bind","shouldComponentUpdate","nextProps","mediaUrl","componentDidUpdate","load","e","onPlay","render","description","poster","skin","white","frame","backgroundImage","color","icon","innerHTML","__html","audio","contextTypes","childContextTypes","propTypes","string","func"],"sources":["../../../src/molecule/audio/index.js"],"sourcesContent":["import React from 'react';\nimport {get} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {NovaCompositionCoorpacademyMicrophone as PodcastIcon} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nclass Audio extends React.Component {\n static propTypes = {\n description: PropTypes.string,\n mediaUrl: PropTypes.string,\n poster: PropTypes.string,\n onPlay: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props, context) {\n super(props, context);\n this.handlePlay = this.handlePlay.bind(this);\n this.audioElement = null;\n this.setAudio = this.setAudio.bind(this);\n }\n\n shouldComponentUpdate(nextProps) {\n const {mediaUrl} = this.props;\n return nextProps.mediaUrl !== mediaUrl;\n }\n\n componentDidUpdate() {\n this.audioElement.load();\n }\n\n setAudio = element => {\n this.audioElement = element;\n };\n\n handlePlay(e) {\n const {onPlay} = this.props;\n if (onPlay) onPlay(e);\n }\n\n render() {\n const {description, mediaUrl, poster} = this.props;\n const {skin} = this.context;\n\n const white = get('common.white', skin);\n return (\n <div className={style.frame} style={{backgroundImage: `url(${poster})`}}>\n <PodcastIcon style={{color: white}} className={style.icon} />\n {description ? (\n <div\n className={classnames(style.description, style.innerHTML)}\n data-name=\"audioDescription\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: description}}\n />\n ) : null}\n <audio\n className={style.audio}\n controls\n controlsList=\"nodownload\"\n ref={this.setAudio}\n autoPlay=\"\"\n onPlay={this.handlePlay}\n name=\"media\"\n data-testid=\"audio\"\n data-name=\"audio\"\n preload=\"auto\"\n >\n <source src={mediaUrl} />\n </audio>\n </div>\n );\n }\n}\n\nexport default Audio;\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,qCAAqC,IAAIC,WAAjD,QAAmE,0BAAnE;AACA,OAAOC,QAAP,MAAqB,qBAArB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,KAAN,SAAoBP,KAAK,CAACQ,SAA1B,CAAoC;EAYlCC,WAAW,CAACC,KAAD,EAAQC,OAAR,EAAiB;IAC1B,MAAMD,KAAN,EAAaC,OAAb;;IAD0B,KAgB5BC,QAhB4B,GAgBjBC,OAAO,IAAI;MACpB,KAAKC,YAAL,GAAoBD,OAApB;IACD,CAlB2B;;IAE1B,KAAKE,UAAL,GAAkB,KAAKA,UAAL,CAAgBC,IAAhB,CAAqB,IAArB,CAAlB;IACA,KAAKF,YAAL,GAAoB,IAApB;IACA,KAAKF,QAAL,GAAgB,KAAKA,QAAL,CAAcI,IAAd,CAAmB,IAAnB,CAAhB;EACD;;EAEDC,qBAAqB,CAACC,SAAD,EAAY;IAC/B,MAAM;MAACC;IAAD,IAAa,KAAKT,KAAxB;IACA,OAAOQ,SAAS,CAACC,QAAV,KAAuBA,QAA9B;EACD;;EAEDC,kBAAkB,GAAG;IACnB,KAAKN,YAAL,CAAkBO,IAAlB;EACD;;EAMDN,UAAU,CAACO,CAAD,EAAI;IACZ,MAAM;MAACC;IAAD,IAAW,KAAKb,KAAtB;IACA,IAAIa,MAAJ,EAAYA,MAAM,CAACD,CAAD,CAAN;EACb;;EAEDE,MAAM,GAAG;IACP,MAAM;MAACC,WAAD;MAAcN,QAAd;MAAwBO;IAAxB,IAAkC,KAAKhB,KAA7C;IACA,MAAM;MAACiB;IAAD,IAAS,KAAKhB,OAApB;;IAEA,MAAMiB,KAAK,GAAG,KAAI,cAAJ,EAAoBD,IAApB,CAAd;;IACA,oBACE;MAAK,SAAS,EAAErB,KAAK,CAACuB,KAAtB;MAA6B,KAAK,EAAE;QAACC,eAAe,EAAG,OAAMJ,MAAO;MAAhC;IAApC,gBACE,oBAAC,WAAD;MAAa,KAAK,EAAE;QAACK,KAAK,EAAEH;MAAR,CAApB;MAAoC,SAAS,EAAEtB,KAAK,CAAC0B;IAArD,EADF,EAEGP,WAAW,gBACV;MACE,SAAS,EAAEvB,UAAU,CAACI,KAAK,CAACmB,WAAP,EAAoBnB,KAAK,CAAC2B,SAA1B,CADvB;MAEE,aAAU,kBAFZ,CAGE;MAHF;MAIE,uBAAuB,EAAE;QAACC,MAAM,EAAET;MAAT;IAJ3B,EADU,GAOR,IATN,eAUE;MACE,SAAS,EAAEnB,KAAK,CAAC6B,KADnB;MAEE,QAAQ,MAFV;MAGE,YAAY,EAAC,YAHf;MAIE,GAAG,EAAE,KAAKvB,QAJZ;MAKE,QAAQ,EAAC,EALX;MAME,MAAM,EAAE,KAAKG,UANf;MAOE,IAAI,EAAC,OAPP;MAQE,eAAY,OARd;MASE,aAAU,OATZ;MAUE,OAAO,EAAC;IAVV,gBAYE;MAAQ,GAAG,EAAEI;IAAb,EAZF,CAVF,CADF;EA2BD;;AArEiC;;AAA9BZ,K,CAQG6B,Y,GAAe;EACpBT,IAAI,EAAEtB,QAAQ,CAACgC,iBAAT,CAA2BV;AADb,C;AARlBpB,K,CACG+B,S,2CAAY;EACjBb,WAAW,EAAExB,SAAS,CAACsC,MADN;EAEjBpB,QAAQ,EAAElB,SAAS,CAACsC,MAFH;EAGjBb,MAAM,EAAEzB,SAAS,CAACsC,MAHD;EAIjBhB,MAAM,EAAEtB,SAAS,CAACuC;AAJD,C;AAuErB,eAAejC,KAAf"}
@@ -42,7 +42,8 @@ export const DragAndDrop = (props, context) => {
42
42
  const loading = state === 'loading';
43
43
  return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", {
44
44
  onClick: handleBack,
45
- className: style.back
45
+ className: style.back,
46
+ "data-testid": "back"
46
47
  }, /*#__PURE__*/React.createElement(ArrowLeft, {
47
48
  width: 12,
48
49
  height: 12,
@@ -84,6 +85,7 @@ export const DragAndDrop = (props, context) => {
84
85
 
85
86
  const disableFileInput = state === 'success';
86
87
  return /*#__PURE__*/React.createElement("div", _extends({}, getRootProps(), {
88
+ "data-testid": "drop-zone",
87
89
  className: style.wrapper
88
90
  }), /*#__PURE__*/React.createElement("input", _extends({}, getInputProps(), {
89
91
  disabled: disableFileInput
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","PropTypes","getOr","includes","Dropzone","NovaCompositionNavigationArrowLeft","ArrowLeft","Provider","InputText","Overlay","UploadReport","PlaceHolder","style","DragAndDrop","props","context","skin","primaryColor","state","title","message","warningMessage","mode","dragAndDropMessage","buttonTitle","backLabel","orLabel","accept","type","contentType","fields","onDrop","onDelete","onBack","handleBack","e","stopPropagation","preventDefault","loading","back","arrow","getRootProps","getInputProps","isDragActive","getView","disableFileInput","wrapper","contextTypes","childContextTypes","propTypes","oneOf","isRequired","string","func","arrayOf","shape","actions","label","onClick"],"sources":["../../../src/molecule/drag-and-drop/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport getOr from 'lodash/fp/getOr';\nimport includes from 'lodash/fp/includes';\nimport Dropzone from 'react-dropzone';\nimport {NovaCompositionNavigationArrowLeft as ArrowLeft} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport InputText from '../../atom/input-text';\nimport {Overlay} from './overlay';\nimport {UploadReport} from './upload-report';\nimport {PlaceHolder} from './placeholder';\nimport style from './style.css';\n\nexport const DragAndDrop = (props, context) => {\n const {skin} = context;\n const primaryColor = getOr('#00B0FF', 'common.primary', skin);\n\n const {\n state,\n title,\n message,\n warningMessage,\n mode,\n dragAndDropMessage,\n buttonTitle,\n backLabel,\n orLabel,\n accept,\n type: contentType = 'scorm',\n fields,\n onDrop,\n onDelete,\n onBack\n } = props;\n\n const handleBack = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n onBack && onBack(e);\n },\n [onBack]\n );\n\n const loading = state === 'loading';\n return (\n <div>\n <span onClick={handleBack} className={style.back}>\n <ArrowLeft width={12} height={12} className={style.arrow} />\n {backLabel}\n </span>\n <Dropzone accept={accept} disabled={loading} onDrop={onDrop}>\n {({getRootProps, getInputProps, isDragActive}) => {\n const getView = () => {\n if (contentType !== 'scorm' || includes(state, ['success', 'error', 'ready'])) {\n return (\n <UploadReport\n state={state}\n message={message}\n warningMessage={warningMessage}\n fields={fields}\n type={contentType}\n onDelete={onDelete}\n mode={mode}\n orLabel={orLabel}\n onClick={onDrop}\n buttonTitle={buttonTitle}\n primaryColor={primaryColor}\n />\n );\n }\n return (\n <PlaceHolder\n title={title}\n buttonTitle={buttonTitle}\n uploadLabel={message}\n primaryColor={primaryColor}\n onClick={onDrop}\n />\n );\n };\n\n const disableFileInput = state === 'success';\n\n return (\n <div {...getRootProps()} className={style.wrapper}>\n <input {...getInputProps()} disabled={disableFileInput} />\n {getView()}\n {isDragActive || loading ? (\n <Overlay\n iconColor={primaryColor}\n description={dragAndDropMessage}\n isLoading={loading}\n />\n ) : null}\n </div>\n );\n }}\n </Dropzone>\n </div>\n );\n};\n\nDragAndDrop.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nDragAndDrop.propTypes = {\n state: PropTypes.oneOf(['default', 'ready', 'loading', 'success', 'error']).isRequired,\n mode: PropTypes.oneOf(['edit', 'upload']),\n title: PropTypes.string,\n type: PropTypes.string,\n message: PropTypes.string,\n warningMessage: PropTypes.string,\n dragAndDropMessage: PropTypes.string,\n buttonTitle: PropTypes.string,\n backLabel: PropTypes.string,\n orLabel: PropTypes.string,\n onBack: PropTypes.func,\n accept: PropTypes.string,\n fields: PropTypes.arrayOf(\n PropTypes.shape({\n ...InputText.propTypes,\n type: PropTypes.oneOf(['text'])\n })\n ),\n onDrop: PropTypes.func,\n onDelete: PropTypes.func,\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.oneOf(['edit', 'upload', 'delete']),\n label: PropTypes.string,\n onClick: PropTypes.func\n })\n )\n};\n\nexport default DragAndDrop;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","PropTypes","getOr","includes","Dropzone","NovaCompositionNavigationArrowLeft","ArrowLeft","Provider","InputText","Overlay","UploadReport","PlaceHolder","style","DragAndDrop","props","context","skin","primaryColor","state","title","message","warningMessage","mode","dragAndDropMessage","buttonTitle","backLabel","orLabel","accept","type","contentType","fields","onDrop","onDelete","onBack","handleBack","e","stopPropagation","preventDefault","loading","back","arrow","getRootProps","getInputProps","isDragActive","getView","disableFileInput","wrapper","contextTypes","childContextTypes","propTypes","oneOf","isRequired","string","func","arrayOf","shape","actions","label","onClick"],"sources":["../../../src/molecule/drag-and-drop/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport getOr from 'lodash/fp/getOr';\nimport includes from 'lodash/fp/includes';\nimport Dropzone from 'react-dropzone';\nimport {NovaCompositionNavigationArrowLeft as ArrowLeft} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport InputText from '../../atom/input-text';\nimport {Overlay} from './overlay';\nimport {UploadReport} from './upload-report';\nimport {PlaceHolder} from './placeholder';\nimport style from './style.css';\n\nexport const DragAndDrop = (props, context) => {\n const {skin} = context;\n const primaryColor = getOr('#00B0FF', 'common.primary', skin);\n\n const {\n state,\n title,\n message,\n warningMessage,\n mode,\n dragAndDropMessage,\n buttonTitle,\n backLabel,\n orLabel,\n accept,\n type: contentType = 'scorm',\n fields,\n onDrop,\n onDelete,\n onBack\n } = props;\n\n const handleBack = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n onBack && onBack(e);\n },\n [onBack]\n );\n\n const loading = state === 'loading';\n return (\n <div>\n <span onClick={handleBack} className={style.back} data-testid=\"back\">\n <ArrowLeft width={12} height={12} className={style.arrow} />\n {backLabel}\n </span>\n <Dropzone accept={accept} disabled={loading} onDrop={onDrop}>\n {({getRootProps, getInputProps, isDragActive}) => {\n const getView = () => {\n if (contentType !== 'scorm' || includes(state, ['success', 'error', 'ready'])) {\n return (\n <UploadReport\n state={state}\n message={message}\n warningMessage={warningMessage}\n fields={fields}\n type={contentType}\n onDelete={onDelete}\n mode={mode}\n orLabel={orLabel}\n onClick={onDrop}\n buttonTitle={buttonTitle}\n primaryColor={primaryColor}\n />\n );\n }\n return (\n <PlaceHolder\n title={title}\n buttonTitle={buttonTitle}\n uploadLabel={message}\n primaryColor={primaryColor}\n onClick={onDrop}\n />\n );\n };\n\n const disableFileInput = state === 'success';\n\n return (\n <div {...getRootProps()} data-testid=\"drop-zone\" className={style.wrapper}>\n <input {...getInputProps()} disabled={disableFileInput} />\n {getView()}\n {isDragActive || loading ? (\n <Overlay\n iconColor={primaryColor}\n description={dragAndDropMessage}\n isLoading={loading}\n />\n ) : null}\n </div>\n );\n }}\n </Dropzone>\n </div>\n );\n};\n\nDragAndDrop.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nDragAndDrop.propTypes = {\n state: PropTypes.oneOf(['default', 'ready', 'loading', 'success', 'error']).isRequired,\n mode: PropTypes.oneOf(['edit', 'upload']),\n title: PropTypes.string,\n type: PropTypes.string,\n message: PropTypes.string,\n warningMessage: PropTypes.string,\n dragAndDropMessage: PropTypes.string,\n buttonTitle: PropTypes.string,\n backLabel: PropTypes.string,\n orLabel: PropTypes.string,\n onBack: PropTypes.func,\n accept: PropTypes.string,\n fields: PropTypes.arrayOf(\n PropTypes.shape({\n ...InputText.propTypes,\n type: PropTypes.oneOf(['text'])\n })\n ),\n onDrop: PropTypes.func,\n onDelete: PropTypes.func,\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.oneOf(['edit', 'upload', 'delete']),\n label: PropTypes.string,\n onClick: PropTypes.func\n })\n )\n};\n\nexport default DragAndDrop;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../src/molecule/drag-and-drop/overlay.js"],"names":[],"mappings":"AAUO;;;;gBAcN"}
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../src/molecule/drag-and-drop/overlay.js"],"names":[],"mappings":"AAUO;;;;gBAkBN"}
@@ -21,7 +21,8 @@ export const Overlay = ({
21
21
  className: style.icon
22
22
  })), /*#__PURE__*/React.createElement("p", null, description));
23
23
  return /*#__PURE__*/React.createElement("div", {
24
- className: style.overlay
24
+ className: style.overlay,
25
+ "data-testid": "overlay"
25
26
  }, isLoading ? /*#__PURE__*/React.createElement(Loader, null) : dropOverlay);
26
27
  };
27
28
  export default Overlay;
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","names":["React","PropTypes","NovaSolidDataTransferDataUpload1","UploadIcon","convert","Loader","style","Overlay","description","isLoading","iconColor","dropOverlay","arrow","border","color","icon","overlay","propTypes","string","bool"],"sources":["../../../src/molecule/drag-and-drop/overlay.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {NovaSolidDataTransferDataUpload1 as UploadIcon} from '@coorpacademy/nova-icons';\nimport {convert} from 'css-color-function';\n\nimport Loader from '../../atom/loader';\n\nimport style from './overlay.css';\n\nexport const Overlay = ({description, isLoading, iconColor}) => {\n const dropOverlay = (\n <React.Fragment>\n <div\n className={style.arrow}\n style={{border: `15px solid ${convert(`color(${iconColor} a(-90%))`)}`}}\n >\n <UploadIcon style={{color: iconColor}} className={style.icon} />\n </div>\n <p>{description}</p>\n </React.Fragment>\n );\n\n return <div className={style.overlay}>{isLoading ? <Loader /> : dropOverlay}</div>;\n};\n\nexport default Overlay;\n\nOverlay.propTypes = {\n description: PropTypes.string,\n isLoading: PropTypes.bool,\n iconColor: PropTypes.string\n};\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SAAQC,gCAAgC,IAAIC,UAA5C,QAA6D,0BAA7D;AACA,SAAQC,OAAR,QAAsB,oBAAtB;AAEA,OAAOC,MAAP,MAAmB,mBAAnB;AAEA,OAAOC,KAAP,MAAkB,eAAlB;AAEA,OAAO,MAAMC,OAAO,GAAG,CAAC;EAACC,WAAD;EAAcC,SAAd;EAAyBC;AAAzB,CAAD,KAAyC;EAC9D,MAAMC,WAAW,gBACf,oBAAC,KAAD,CAAO,QAAP,qBACE;IACE,SAAS,EAAEL,KAAK,CAACM,KADnB;IAEE,KAAK,EAAE;MAACC,MAAM,EAAG,cAAaT,OAAO,CAAE,SAAQM,SAAU,WAApB,CAAgC;IAA9D;EAFT,gBAIE,oBAAC,UAAD;IAAY,KAAK,EAAE;MAACI,KAAK,EAAEJ;IAAR,CAAnB;IAAuC,SAAS,EAAEJ,KAAK,CAACS;EAAxD,EAJF,CADF,eAOE,+BAAIP,WAAJ,CAPF,CADF;EAYA,oBAAO;IAAK,SAAS,EAAEF,KAAK,CAACU;EAAtB,GAAgCP,SAAS,gBAAG,oBAAC,MAAD,OAAH,GAAgBE,WAAzD,CAAP;AACD,CAdM;AAgBP,eAAeJ,OAAf;AAEAA,OAAO,CAACU,SAAR,2CAAoB;EAClBT,WAAW,EAAEP,SAAS,CAACiB,MADL;EAElBT,SAAS,EAAER,SAAS,CAACkB,IAFH;EAGlBT,SAAS,EAAET,SAAS,CAACiB;AAHH,CAApB"}
1
+ {"version":3,"file":"overlay.js","names":["React","PropTypes","NovaSolidDataTransferDataUpload1","UploadIcon","convert","Loader","style","Overlay","description","isLoading","iconColor","dropOverlay","arrow","border","color","icon","overlay","propTypes","string","bool"],"sources":["../../../src/molecule/drag-and-drop/overlay.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {NovaSolidDataTransferDataUpload1 as UploadIcon} from '@coorpacademy/nova-icons';\nimport {convert} from 'css-color-function';\n\nimport Loader from '../../atom/loader';\n\nimport style from './overlay.css';\n\nexport const Overlay = ({description, isLoading, iconColor}) => {\n const dropOverlay = (\n <React.Fragment>\n <div\n className={style.arrow}\n style={{border: `15px solid ${convert(`color(${iconColor} a(-90%))`)}`}}\n >\n <UploadIcon style={{color: iconColor}} className={style.icon} />\n </div>\n <p>{description}</p>\n </React.Fragment>\n );\n\n return (\n <div className={style.overlay} data-testid=\"overlay\">\n {isLoading ? <Loader /> : dropOverlay}\n </div>\n );\n};\n\nexport default Overlay;\n\nOverlay.propTypes = {\n description: PropTypes.string,\n isLoading: PropTypes.bool,\n iconColor: PropTypes.string\n};\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SAAQC,gCAAgC,IAAIC,UAA5C,QAA6D,0BAA7D;AACA,SAAQC,OAAR,QAAsB,oBAAtB;AAEA,OAAOC,MAAP,MAAmB,mBAAnB;AAEA,OAAOC,KAAP,MAAkB,eAAlB;AAEA,OAAO,MAAMC,OAAO,GAAG,CAAC;EAACC,WAAD;EAAcC,SAAd;EAAyBC;AAAzB,CAAD,KAAyC;EAC9D,MAAMC,WAAW,gBACf,oBAAC,KAAD,CAAO,QAAP,qBACE;IACE,SAAS,EAAEL,KAAK,CAACM,KADnB;IAEE,KAAK,EAAE;MAACC,MAAM,EAAG,cAAaT,OAAO,CAAE,SAAQM,SAAU,WAApB,CAAgC;IAA9D;EAFT,gBAIE,oBAAC,UAAD;IAAY,KAAK,EAAE;MAACI,KAAK,EAAEJ;IAAR,CAAnB;IAAuC,SAAS,EAAEJ,KAAK,CAACS;EAAxD,EAJF,CADF,eAOE,+BAAIP,WAAJ,CAPF,CADF;EAYA,oBACE;IAAK,SAAS,EAAEF,KAAK,CAACU,OAAtB;IAA+B,eAAY;EAA3C,GACGP,SAAS,gBAAG,oBAAC,MAAD,OAAH,GAAgBE,WAD5B,CADF;AAKD,CAlBM;AAoBP,eAAeJ,OAAf;AAEAA,OAAO,CAACU,SAAR,2CAAoB;EAClBT,WAAW,EAAEP,SAAS,CAACiB,MADL;EAElBT,SAAS,EAAER,SAAS,CAACkB,IAFH;EAGlBT,SAAS,EAAET,SAAS,CAACiB;AAHH,CAApB"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload-report.d.ts","sourceRoot":"","sources":["../../../src/molecule/drag-and-drop/upload-report.js"],"names":[],"mappings":"AAkDO;;;;;;;;;;;gBA4FN"}
1
+ {"version":3,"file":"upload-report.d.ts","sourceRoot":"","sources":["../../../src/molecule/drag-and-drop/upload-report.js"],"names":[],"mappings":"AAkDO;;;;;;;;;;;gBAgGN"}
@@ -107,6 +107,7 @@ export const UploadReport = ({
107
107
  }));
108
108
 
109
109
  const deleteView = onDelete ? /*#__PURE__*/React.createElement("div", {
110
+ "data-testid": "trash-icon",
110
111
  onClick: handleDelete,
111
112
  className: classnames(style.actionIcon, style.trashIcon)
112
113
  }, /*#__PURE__*/React.createElement(TrashIcon, {
@@ -1 +1 @@
1
- {"version":3,"file":"upload-report.js","names":["React","useCallback","PropTypes","NovaCompositionCoorpacademyValidate","Validated","NovaLineContentEditionBin","TrashIcon","NovaCompositionCoorpacademyWarn","WarnIcon","classnames","EXTERNAL_CONTENT_ICONS","InputText","Button","style","SuccessMessage","message","emoticon","propTypes","string","isRequired","ErrorMessage","buttonTitle","primaryColor","selectButton","backgroundColor","UploadReport","state","warningMessage","type","contentType","fields","mode","orLabel","onDelete","handleDelete","e","stopPropagation","preventDefault","stopPropagationHandler","showMessage","fileName","fileView","fileWrapper","validateIcon","warning","showToolTip","warningIcon","emptyFileWrapper","IconType","icon","iconColor","color","buildField","field","index","deleteView","actionIcon","trashIcon","fieldsList","convert","cap","reportingContainer","reportHeader","iconContainer","oval","iconHeader","reportContainer","or","drop","arrayOf","shape","oneOf","func"],"sources":["../../../src/molecule/drag-and-drop/upload-report.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionCoorpacademyValidate as Validated,\n NovaLineContentEditionBin as TrashIcon,\n NovaCompositionCoorpacademyWarn as WarnIcon\n} from '@coorpacademy/nova-icons';\nimport classnames from 'classnames';\nimport {pipe, split, last, map, head, getOr, isEmpty, includes} from 'lodash/fp';\nimport {EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport InputText from '../../atom/input-text';\n\nimport Button from '../../atom/button';\nimport style from './upload-report.css';\n\nconst SuccessMessage = ({message}) => (\n <div>\n <span className={style.emoticon}>🎉</span>\n <p className={style.message}>{message}</p>\n </div>\n);\n\nSuccessMessage.propTypes = {\n message: PropTypes.string.isRequired\n};\n\nconst ErrorMessage = ({message, buttonTitle, primaryColor}) => (\n <div>\n <div>\n <span className={style.emoticon}>🥺</span>\n <p className={style.message}>{message}</p>\n </div>\n <div>\n <Button\n data-name=\"cta\"\n type=\"link\"\n submitValue={buttonTitle}\n className={style.selectButton}\n style={{backgroundColor: primaryColor}}\n />\n </div>\n </div>\n);\n\nErrorMessage.propTypes = {\n message: PropTypes.string.isRequired,\n buttonTitle: PropTypes.string,\n primaryColor: PropTypes.string\n};\n\nexport const UploadReport = ({\n state,\n message,\n warningMessage,\n type: contentType,\n fields,\n mode = 'upload',\n orLabel,\n buttonTitle,\n primaryColor,\n onDelete\n}) => {\n const handleDelete = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n onDelete && onDelete(e);\n },\n [onDelete]\n );\n\n const stopPropagationHandler = useCallback(e => {\n e.stopPropagation();\n e.preventDefault();\n }, []);\n\n const showMessage = includes(state, ['success', 'error']);\n\n const fileName = pipe(head, getOr('', 'value'), split('/'), last)(fields);\n const fileView = fileName ? (\n <div className={style.fileWrapper}>\n <div className={style.fileName} title={fileName}>\n {fileName}\n </div>\n {isEmpty(warningMessage) ? (\n <Validated className={style.validateIcon} />\n ) : (\n <div className={style.warning}>\n <div className={style.showToolTip}>\n <span>{warningMessage}</span>\n </div>\n <div className={style.warningIcon}>\n <WarnIcon width={11} height={11} />\n </div>\n </div>\n )}\n </div>\n ) : (\n <div className={style.emptyFileWrapper} />\n );\n const IconType = EXTERNAL_CONTENT_ICONS[contentType].icon;\n const iconColor = EXTERNAL_CONTENT_ICONS[contentType].color;\n const buildField = (field, index) => <InputText {...field} key={index} theme={'cockpit'} />;\n const deleteView = onDelete ? (\n <div onClick={handleDelete} className={classnames(style.actionIcon, style.trashIcon)}>\n <TrashIcon width={20} height={20} />\n </div>\n ) : null;\n const fieldsList = map.convert({cap: false})(buildField, fields);\n return (\n <div className={style.reportingContainer}>\n <div className={style.reportHeader} onClick={stopPropagationHandler}>\n <div className={style.iconContainer} style={{backgroundColor: iconColor}}>\n <div className={style.oval}>\n <IconType className={style.iconHeader} style={{color: iconColor}} />\n </div>\n </div>\n {fileView}\n {deleteView}\n </div>\n <div className={style.reportContainer} onClick={stopPropagationHandler}>\n {state === 'success' ? <SuccessMessage message={message} /> : null}\n {state === 'error' ? (\n <ErrorMessage message={message} buttonTitle={buttonTitle} primaryColor={primaryColor} />\n ) : null}\n {mode === 'edit' && !showMessage ? <div>{fieldsList}</div> : null}\n {mode === 'edit' && !showMessage ? <span className={style.or}>{orLabel}</span> : null}\n </div>\n {!showMessage ? (\n <div className={style.drop}>\n <p className={style.message}>{message}</p>\n <Button\n data-name=\"cta\"\n type=\"link\"\n submitValue={buttonTitle}\n className={style.selectButton}\n style={{backgroundColor: primaryColor}}\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nexport default UploadReport;\n\nUploadReport.propTypes = {\n state: PropTypes.string.isRequired,\n message: PropTypes.string.isRequired,\n warningMessage: PropTypes.string,\n orLabel: PropTypes.string,\n type: PropTypes.string,\n fields: PropTypes.arrayOf(\n PropTypes.shape({\n ...InputText.propTypes,\n type: PropTypes.oneOf(['text'])\n })\n ),\n mode: PropTypes.oneOf(['edit', 'upload']),\n buttonTitle: PropTypes.string,\n primaryColor: PropTypes.string,\n onDelete: PropTypes.func\n};\n"],"mappings":";;;;;;;;;;;AAAA,OAAOA,KAAP,IAAeC,WAAf,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SACEC,mCAAmC,IAAIC,SADzC,EAEEC,yBAAyB,IAAIC,SAF/B,EAGEC,+BAA+B,IAAIC,QAHrC,QAIO,0BAJP;AAKA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,SAAQC,sBAAR,QAAqC,6BAArC;AACA,OAAOC,SAAP,MAAsB,uBAAtB;AAEA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,KAAP,MAAkB,qBAAlB;;AAEA,MAAMC,cAAc,GAAG,CAAC;EAACC;AAAD,CAAD,kBACrB,8CACE;EAAM,SAAS,EAAEF,KAAK,CAACG;AAAvB,kBADF,eAEE;EAAG,SAAS,EAAEH,KAAK,CAACE;AAApB,GAA8BA,OAA9B,CAFF,CADF;;AAOAD,cAAc,CAACG,SAAf,2CAA2B;EACzBF,OAAO,EAAEb,SAAS,CAACgB,MAAV,CAAiBC;AADD,CAA3B;;AAIA,MAAMC,YAAY,GAAG,CAAC;EAACL,OAAD;EAAUM,WAAV;EAAuBC;AAAvB,CAAD,kBACnB,8CACE,8CACE;EAAM,SAAS,EAAET,KAAK,CAACG;AAAvB,kBADF,eAEE;EAAG,SAAS,EAAEH,KAAK,CAACE;AAApB,GAA8BA,OAA9B,CAFF,CADF,eAKE,8CACE,oBAAC,MAAD;EACE,aAAU,KADZ;EAEE,IAAI,EAAC,MAFP;EAGE,WAAW,EAAEM,WAHf;EAIE,SAAS,EAAER,KAAK,CAACU,YAJnB;EAKE,KAAK,EAAE;IAACC,eAAe,EAAEF;EAAlB;AALT,EADF,CALF,CADF;;AAkBAF,YAAY,CAACH,SAAb,2CAAyB;EACvBF,OAAO,EAAEb,SAAS,CAACgB,MAAV,CAAiBC,UADH;EAEvBE,WAAW,EAAEnB,SAAS,CAACgB,MAFA;EAGvBI,YAAY,EAAEpB,SAAS,CAACgB;AAHD,CAAzB;AAMA,OAAO,MAAMO,YAAY,GAAG,CAAC;EAC3BC,KAD2B;EAE3BX,OAF2B;EAG3BY,cAH2B;EAI3BC,IAAI,EAAEC,WAJqB;EAK3BC,MAL2B;EAM3BC,IAAI,GAAG,QANoB;EAO3BC,OAP2B;EAQ3BX,WAR2B;EAS3BC,YAT2B;EAU3BW;AAV2B,CAAD,KAWtB;EACJ,MAAMC,YAAY,GAAGjC,WAAW,CAC9BkC,CAAC,IAAI;IACHA,CAAC,CAACC,eAAF;IACAD,CAAC,CAACE,cAAF;IACAJ,QAAQ,IAAIA,QAAQ,CAACE,CAAD,CAApB;EACD,CAL6B,EAM9B,CAACF,QAAD,CAN8B,CAAhC;EASA,MAAMK,sBAAsB,GAAGrC,WAAW,CAACkC,CAAC,IAAI;IAC9CA,CAAC,CAACC,eAAF;IACAD,CAAC,CAACE,cAAF;EACD,CAHyC,EAGvC,EAHuC,CAA1C;;EAKA,MAAME,WAAW,GAAG,UAASb,KAAT,EAAgB,CAAC,SAAD,EAAY,OAAZ,CAAhB,CAApB;;EAEA,MAAMc,QAAQ,GAAG,aAAW,OAAM,EAAN,EAAU,OAAV,CAAX,EAA+B,OAAM,GAAN,CAA/B,SAAiDV,MAAjD,CAAjB;;EACA,MAAMW,QAAQ,GAAGD,QAAQ,gBACvB;IAAK,SAAS,EAAE3B,KAAK,CAAC6B;EAAtB,gBACE;IAAK,SAAS,EAAE7B,KAAK,CAAC2B,QAAtB;IAAgC,KAAK,EAAEA;EAAvC,GACGA,QADH,CADF,EAIG,SAAQb,cAAR,iBACC,oBAAC,SAAD;IAAW,SAAS,EAAEd,KAAK,CAAC8B;EAA5B,EADD,gBAGC;IAAK,SAAS,EAAE9B,KAAK,CAAC+B;EAAtB,gBACE;IAAK,SAAS,EAAE/B,KAAK,CAACgC;EAAtB,gBACE,kCAAOlB,cAAP,CADF,CADF,eAIE;IAAK,SAAS,EAAEd,KAAK,CAACiC;EAAtB,gBACE,oBAAC,QAAD;IAAU,KAAK,EAAE,EAAjB;IAAqB,MAAM,EAAE;EAA7B,EADF,CAJF,CAPJ,CADuB,gBAmBvB;IAAK,SAAS,EAAEjC,KAAK,CAACkC;EAAtB,EAnBF;EAqBA,MAAMC,QAAQ,GAAGtC,sBAAsB,CAACmB,WAAD,CAAtB,CAAoCoB,IAArD;EACA,MAAMC,SAAS,GAAGxC,sBAAsB,CAACmB,WAAD,CAAtB,CAAoCsB,KAAtD;;EACA,MAAMC,UAAU,GAAG,CAACC,KAAD,EAAQC,KAAR,kBAAkB,oBAAC,SAAD,eAAeD,KAAf;IAAsB,GAAG,EAAEC,KAA3B;IAAkC,KAAK,EAAE;EAAzC,GAArC;;EACA,MAAMC,UAAU,GAAGtB,QAAQ,gBACzB;IAAK,OAAO,EAAEC,YAAd;IAA4B,SAAS,EAAEzB,UAAU,CAACI,KAAK,CAAC2C,UAAP,EAAmB3C,KAAK,CAAC4C,SAAzB;EAAjD,gBACE,oBAAC,SAAD;IAAW,KAAK,EAAE,EAAlB;IAAsB,MAAM,EAAE;EAA9B,EADF,CADyB,GAIvB,IAJJ;;EAKA,MAAMC,UAAU,GAAG,KAAIC,OAAJ,CAAY;IAACC,GAAG,EAAE;EAAN,CAAZ,EAA0BR,UAA1B,EAAsCtB,MAAtC,CAAnB;;EACA,oBACE;IAAK,SAAS,EAAEjB,KAAK,CAACgD;EAAtB,gBACE;IAAK,SAAS,EAAEhD,KAAK,CAACiD,YAAtB;IAAoC,OAAO,EAAExB;EAA7C,gBACE;IAAK,SAAS,EAAEzB,KAAK,CAACkD,aAAtB;IAAqC,KAAK,EAAE;MAACvC,eAAe,EAAE0B;IAAlB;EAA5C,gBACE;IAAK,SAAS,EAAErC,KAAK,CAACmD;EAAtB,gBACE,oBAAC,QAAD;IAAU,SAAS,EAAEnD,KAAK,CAACoD,UAA3B;IAAuC,KAAK,EAAE;MAACd,KAAK,EAAED;IAAR;EAA9C,EADF,CADF,CADF,EAMGT,QANH,EAOGc,UAPH,CADF,eAUE;IAAK,SAAS,EAAE1C,KAAK,CAACqD,eAAtB;IAAuC,OAAO,EAAE5B;EAAhD,GACGZ,KAAK,KAAK,SAAV,gBAAsB,oBAAC,cAAD;IAAgB,OAAO,EAAEX;EAAzB,EAAtB,GAA6D,IADhE,EAEGW,KAAK,KAAK,OAAV,gBACC,oBAAC,YAAD;IAAc,OAAO,EAAEX,OAAvB;IAAgC,WAAW,EAAEM,WAA7C;IAA0D,YAAY,EAAEC;EAAxE,EADD,GAEG,IAJN,EAKGS,IAAI,KAAK,MAAT,IAAmB,CAACQ,WAApB,gBAAkC,iCAAMmB,UAAN,CAAlC,GAA4D,IAL/D,EAMG3B,IAAI,KAAK,MAAT,IAAmB,CAACQ,WAApB,gBAAkC;IAAM,SAAS,EAAE1B,KAAK,CAACsD;EAAvB,GAA4BnC,OAA5B,CAAlC,GAAgF,IANnF,CAVF,EAkBG,CAACO,WAAD,gBACC;IAAK,SAAS,EAAE1B,KAAK,CAACuD;EAAtB,gBACE;IAAG,SAAS,EAAEvD,KAAK,CAACE;EAApB,GAA8BA,OAA9B,CADF,eAEE,oBAAC,MAAD;IACE,aAAU,KADZ;IAEE,IAAI,EAAC,MAFP;IAGE,WAAW,EAAEM,WAHf;IAIE,SAAS,EAAER,KAAK,CAACU,YAJnB;IAKE,KAAK,EAAE;MAACC,eAAe,EAAEF;IAAlB;EALT,EAFF,CADD,GAWG,IA7BN,CADF;AAiCD,CA5FM;AA8FP,eAAeG,YAAf;AAEAA,YAAY,CAACR,SAAb,2CAAyB;EACvBS,KAAK,EAAExB,SAAS,CAACgB,MAAV,CAAiBC,UADD;EAEvBJ,OAAO,EAAEb,SAAS,CAACgB,MAAV,CAAiBC,UAFH;EAGvBQ,cAAc,EAAEzB,SAAS,CAACgB,MAHH;EAIvBc,OAAO,EAAE9B,SAAS,CAACgB,MAJI;EAKvBU,IAAI,EAAE1B,SAAS,CAACgB,MALO;EAMvBY,MAAM,EAAE5B,SAAS,CAACmE,OAAV,CACNnE,SAAS,CAACoE,KAAV,cACK3D,SAAS,CAACM,SADf;IAEEW,IAAI,EAAE1B,SAAS,CAACqE,KAAV,CAAgB,CAAC,MAAD,CAAhB;EAFR,GADM,CANe;EAYvBxC,IAAI,EAAE7B,SAAS,CAACqE,KAAV,CAAgB,CAAC,MAAD,EAAS,QAAT,CAAhB,CAZiB;EAavBlD,WAAW,EAAEnB,SAAS,CAACgB,MAbA;EAcvBI,YAAY,EAAEpB,SAAS,CAACgB,MAdD;EAevBe,QAAQ,EAAE/B,SAAS,CAACsE;AAfG,CAAzB"}
1
+ {"version":3,"file":"upload-report.js","names":["React","useCallback","PropTypes","NovaCompositionCoorpacademyValidate","Validated","NovaLineContentEditionBin","TrashIcon","NovaCompositionCoorpacademyWarn","WarnIcon","classnames","EXTERNAL_CONTENT_ICONS","InputText","Button","style","SuccessMessage","message","emoticon","propTypes","string","isRequired","ErrorMessage","buttonTitle","primaryColor","selectButton","backgroundColor","UploadReport","state","warningMessage","type","contentType","fields","mode","orLabel","onDelete","handleDelete","e","stopPropagation","preventDefault","stopPropagationHandler","showMessage","fileName","fileView","fileWrapper","validateIcon","warning","showToolTip","warningIcon","emptyFileWrapper","IconType","icon","iconColor","color","buildField","field","index","deleteView","actionIcon","trashIcon","fieldsList","convert","cap","reportingContainer","reportHeader","iconContainer","oval","iconHeader","reportContainer","or","drop","arrayOf","shape","oneOf","func"],"sources":["../../../src/molecule/drag-and-drop/upload-report.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionCoorpacademyValidate as Validated,\n NovaLineContentEditionBin as TrashIcon,\n NovaCompositionCoorpacademyWarn as WarnIcon\n} from '@coorpacademy/nova-icons';\nimport classnames from 'classnames';\nimport {pipe, split, last, map, head, getOr, isEmpty, includes} from 'lodash/fp';\nimport {EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport InputText from '../../atom/input-text';\n\nimport Button from '../../atom/button';\nimport style from './upload-report.css';\n\nconst SuccessMessage = ({message}) => (\n <div>\n <span className={style.emoticon}>🎉</span>\n <p className={style.message}>{message}</p>\n </div>\n);\n\nSuccessMessage.propTypes = {\n message: PropTypes.string.isRequired\n};\n\nconst ErrorMessage = ({message, buttonTitle, primaryColor}) => (\n <div>\n <div>\n <span className={style.emoticon}>🥺</span>\n <p className={style.message}>{message}</p>\n </div>\n <div>\n <Button\n data-name=\"cta\"\n type=\"link\"\n submitValue={buttonTitle}\n className={style.selectButton}\n style={{backgroundColor: primaryColor}}\n />\n </div>\n </div>\n);\n\nErrorMessage.propTypes = {\n message: PropTypes.string.isRequired,\n buttonTitle: PropTypes.string,\n primaryColor: PropTypes.string\n};\n\nexport const UploadReport = ({\n state,\n message,\n warningMessage,\n type: contentType,\n fields,\n mode = 'upload',\n orLabel,\n buttonTitle,\n primaryColor,\n onDelete\n}) => {\n const handleDelete = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n onDelete && onDelete(e);\n },\n [onDelete]\n );\n\n const stopPropagationHandler = useCallback(e => {\n e.stopPropagation();\n e.preventDefault();\n }, []);\n\n const showMessage = includes(state, ['success', 'error']);\n\n const fileName = pipe(head, getOr('', 'value'), split('/'), last)(fields);\n const fileView = fileName ? (\n <div className={style.fileWrapper}>\n <div className={style.fileName} title={fileName}>\n {fileName}\n </div>\n {isEmpty(warningMessage) ? (\n <Validated className={style.validateIcon} />\n ) : (\n <div className={style.warning}>\n <div className={style.showToolTip}>\n <span>{warningMessage}</span>\n </div>\n <div className={style.warningIcon}>\n <WarnIcon width={11} height={11} />\n </div>\n </div>\n )}\n </div>\n ) : (\n <div className={style.emptyFileWrapper} />\n );\n const IconType = EXTERNAL_CONTENT_ICONS[contentType].icon;\n const iconColor = EXTERNAL_CONTENT_ICONS[contentType].color;\n const buildField = (field, index) => <InputText {...field} key={index} theme={'cockpit'} />;\n const deleteView = onDelete ? (\n <div\n data-testid=\"trash-icon\"\n onClick={handleDelete}\n className={classnames(style.actionIcon, style.trashIcon)}\n >\n <TrashIcon width={20} height={20} />\n </div>\n ) : null;\n const fieldsList = map.convert({cap: false})(buildField, fields);\n return (\n <div className={style.reportingContainer}>\n <div className={style.reportHeader} onClick={stopPropagationHandler}>\n <div className={style.iconContainer} style={{backgroundColor: iconColor}}>\n <div className={style.oval}>\n <IconType className={style.iconHeader} style={{color: iconColor}} />\n </div>\n </div>\n {fileView}\n {deleteView}\n </div>\n <div className={style.reportContainer} onClick={stopPropagationHandler}>\n {state === 'success' ? <SuccessMessage message={message} /> : null}\n {state === 'error' ? (\n <ErrorMessage message={message} buttonTitle={buttonTitle} primaryColor={primaryColor} />\n ) : null}\n {mode === 'edit' && !showMessage ? <div>{fieldsList}</div> : null}\n {mode === 'edit' && !showMessage ? <span className={style.or}>{orLabel}</span> : null}\n </div>\n {!showMessage ? (\n <div className={style.drop}>\n <p className={style.message}>{message}</p>\n <Button\n data-name=\"cta\"\n type=\"link\"\n submitValue={buttonTitle}\n className={style.selectButton}\n style={{backgroundColor: primaryColor}}\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nexport default UploadReport;\n\nUploadReport.propTypes = {\n state: PropTypes.string.isRequired,\n message: PropTypes.string.isRequired,\n warningMessage: PropTypes.string,\n orLabel: PropTypes.string,\n type: PropTypes.string,\n fields: PropTypes.arrayOf(\n PropTypes.shape({\n ...InputText.propTypes,\n type: PropTypes.oneOf(['text'])\n })\n ),\n mode: PropTypes.oneOf(['edit', 'upload']),\n buttonTitle: PropTypes.string,\n primaryColor: PropTypes.string,\n onDelete: PropTypes.func\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/draggable/index.js"],"names":[],"mappings":";AAQA,oDA4CC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/draggable/index.js"],"names":[],"mappings":";AAQA,oDA6CC"}
@@ -35,6 +35,7 @@ const Draggable = props => {
35
35
  }, [id, onDrop]);
36
36
  return /*#__PURE__*/React.createElement("div", {
37
37
  className: classnames(dragging ? style.dragging : null, style.draggable),
38
+ "data-testid": `draggable-${id}`,
38
39
  onDragStart: dragStartHandler,
39
40
  onDragOver: dragOverHandler,
40
41
  onDragLeave: dragLeaveHandler,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","PropTypes","classnames","style","preventDefault","e","stopPropagation","Draggable","props","id","dragging","onDragStart","onDragOver","onDragLeave","onDrop","children","dragStartHandler","dragOverHandler","dragLeaveHandler","dropHandler","draggable","propTypes","string","bool","func","element"],"sources":["../../../src/molecule/draggable/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport style from './style.css';\n\nconst preventDefault = e => e.preventDefault();\nconst stopPropagation = e => e.stopPropagation();\n\nconst Draggable = props => {\n const {id, dragging = false, onDragStart, onDragOver, onDragLeave, onDrop, children} = props;\n\n const dragStartHandler = useCallback(\n e => {\n stopPropagation(e);\n onDragStart(id);\n },\n [id, onDragStart]\n );\n const dragOverHandler = useCallback(\n e => {\n preventDefault(e);\n onDragOver(id);\n },\n [id, onDragOver]\n );\n const dragLeaveHandler = useCallback(\n e => {\n preventDefault(e);\n onDragLeave(id);\n },\n [id, onDragLeave]\n );\n const dropHandler = useCallback(\n e => {\n preventDefault(e);\n onDrop(id);\n },\n [id, onDrop]\n );\n\n return (\n <div\n className={classnames(dragging ? style.dragging : null, style.draggable)}\n onDragStart={dragStartHandler}\n onDragOver={dragOverHandler}\n onDragLeave={dragLeaveHandler}\n onDrop={dropHandler}\n draggable\n >\n {children}\n </div>\n );\n};\nDraggable.propTypes = {\n id: PropTypes.string,\n dragging: PropTypes.bool,\n onDragStart: PropTypes.func,\n onDragOver: PropTypes.func,\n onDragLeave: PropTypes.func,\n onDrop: PropTypes.func,\n children: PropTypes.element\n};\n\nexport default Draggable;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAeC,WAAf,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,cAAc,GAAGC,CAAC,IAAIA,CAAC,CAACD,cAAF,EAA5B;;AACA,MAAME,eAAe,GAAGD,CAAC,IAAIA,CAAC,CAACC,eAAF,EAA7B;;AAEA,MAAMC,SAAS,GAAGC,KAAK,IAAI;EACzB,MAAM;IAACC,EAAD;IAAKC,QAAQ,GAAG,KAAhB;IAAuBC,WAAvB;IAAoCC,UAApC;IAAgDC,WAAhD;IAA6DC,MAA7D;IAAqEC;EAArE,IAAiFP,KAAvF;EAEA,MAAMQ,gBAAgB,GAAGhB,WAAW,CAClCK,CAAC,IAAI;IACHC,eAAe,CAACD,CAAD,CAAf;IACAM,WAAW,CAACF,EAAD,CAAX;EACD,CAJiC,EAKlC,CAACA,EAAD,EAAKE,WAAL,CALkC,CAApC;EAOA,MAAMM,eAAe,GAAGjB,WAAW,CACjCK,CAAC,IAAI;IACHD,cAAc,CAACC,CAAD,CAAd;IACAO,UAAU,CAACH,EAAD,CAAV;EACD,CAJgC,EAKjC,CAACA,EAAD,EAAKG,UAAL,CALiC,CAAnC;EAOA,MAAMM,gBAAgB,GAAGlB,WAAW,CAClCK,CAAC,IAAI;IACHD,cAAc,CAACC,CAAD,CAAd;IACAQ,WAAW,CAACJ,EAAD,CAAX;EACD,CAJiC,EAKlC,CAACA,EAAD,EAAKI,WAAL,CALkC,CAApC;EAOA,MAAMM,WAAW,GAAGnB,WAAW,CAC7BK,CAAC,IAAI;IACHD,cAAc,CAACC,CAAD,CAAd;IACAS,MAAM,CAACL,EAAD,CAAN;EACD,CAJ4B,EAK7B,CAACA,EAAD,EAAKK,MAAL,CAL6B,CAA/B;EAQA,oBACE;IACE,SAAS,EAAEZ,UAAU,CAACQ,QAAQ,GAAGP,KAAK,CAACO,QAAT,GAAoB,IAA7B,EAAmCP,KAAK,CAACiB,SAAzC,CADvB;IAEE,WAAW,EAAEJ,gBAFf;IAGE,UAAU,EAAEC,eAHd;IAIE,WAAW,EAAEC,gBAJf;IAKE,MAAM,EAAEC,WALV;IAME,SAAS;EANX,GAQGJ,QARH,CADF;AAYD,CA5CD;;AA6CAR,SAAS,CAACc,SAAV,2CAAsB;EACpBZ,EAAE,EAAER,SAAS,CAACqB,MADM;EAEpBZ,QAAQ,EAAET,SAAS,CAACsB,IAFA;EAGpBZ,WAAW,EAAEV,SAAS,CAACuB,IAHH;EAIpBZ,UAAU,EAAEX,SAAS,CAACuB,IAJF;EAKpBX,WAAW,EAAEZ,SAAS,CAACuB,IALH;EAMpBV,MAAM,EAAEb,SAAS,CAACuB,IANE;EAOpBT,QAAQ,EAAEd,SAAS,CAACwB;AAPA,CAAtB;AAUA,eAAelB,SAAf"}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","PropTypes","classnames","style","preventDefault","e","stopPropagation","Draggable","props","id","dragging","onDragStart","onDragOver","onDragLeave","onDrop","children","dragStartHandler","dragOverHandler","dragLeaveHandler","dropHandler","draggable","propTypes","string","bool","func","element"],"sources":["../../../src/molecule/draggable/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport style from './style.css';\n\nconst preventDefault = e => e.preventDefault();\nconst stopPropagation = e => e.stopPropagation();\n\nconst Draggable = props => {\n const {id, dragging = false, onDragStart, onDragOver, onDragLeave, onDrop, children} = props;\n\n const dragStartHandler = useCallback(\n e => {\n stopPropagation(e);\n onDragStart(id);\n },\n [id, onDragStart]\n );\n const dragOverHandler = useCallback(\n e => {\n preventDefault(e);\n onDragOver(id);\n },\n [id, onDragOver]\n );\n const dragLeaveHandler = useCallback(\n e => {\n preventDefault(e);\n onDragLeave(id);\n },\n [id, onDragLeave]\n );\n const dropHandler = useCallback(\n e => {\n preventDefault(e);\n onDrop(id);\n },\n [id, onDrop]\n );\n\n return (\n <div\n className={classnames(dragging ? style.dragging : null, style.draggable)}\n data-testid={`draggable-${id}`}\n onDragStart={dragStartHandler}\n onDragOver={dragOverHandler}\n onDragLeave={dragLeaveHandler}\n onDrop={dropHandler}\n draggable\n >\n {children}\n </div>\n );\n};\nDraggable.propTypes = {\n id: PropTypes.string,\n dragging: PropTypes.bool,\n onDragStart: PropTypes.func,\n onDragOver: PropTypes.func,\n onDragLeave: PropTypes.func,\n onDrop: PropTypes.func,\n children: PropTypes.element\n};\n\nexport default Draggable;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAeC,WAAf,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,cAAc,GAAGC,CAAC,IAAIA,CAAC,CAACD,cAAF,EAA5B;;AACA,MAAME,eAAe,GAAGD,CAAC,IAAIA,CAAC,CAACC,eAAF,EAA7B;;AAEA,MAAMC,SAAS,GAAGC,KAAK,IAAI;EACzB,MAAM;IAACC,EAAD;IAAKC,QAAQ,GAAG,KAAhB;IAAuBC,WAAvB;IAAoCC,UAApC;IAAgDC,WAAhD;IAA6DC,MAA7D;IAAqEC;EAArE,IAAiFP,KAAvF;EAEA,MAAMQ,gBAAgB,GAAGhB,WAAW,CAClCK,CAAC,IAAI;IACHC,eAAe,CAACD,CAAD,CAAf;IACAM,WAAW,CAACF,EAAD,CAAX;EACD,CAJiC,EAKlC,CAACA,EAAD,EAAKE,WAAL,CALkC,CAApC;EAOA,MAAMM,eAAe,GAAGjB,WAAW,CACjCK,CAAC,IAAI;IACHD,cAAc,CAACC,CAAD,CAAd;IACAO,UAAU,CAACH,EAAD,CAAV;EACD,CAJgC,EAKjC,CAACA,EAAD,EAAKG,UAAL,CALiC,CAAnC;EAOA,MAAMM,gBAAgB,GAAGlB,WAAW,CAClCK,CAAC,IAAI;IACHD,cAAc,CAACC,CAAD,CAAd;IACAQ,WAAW,CAACJ,EAAD,CAAX;EACD,CAJiC,EAKlC,CAACA,EAAD,EAAKI,WAAL,CALkC,CAApC;EAOA,MAAMM,WAAW,GAAGnB,WAAW,CAC7BK,CAAC,IAAI;IACHD,cAAc,CAACC,CAAD,CAAd;IACAS,MAAM,CAACL,EAAD,CAAN;EACD,CAJ4B,EAK7B,CAACA,EAAD,EAAKK,MAAL,CAL6B,CAA/B;EAQA,oBACE;IACE,SAAS,EAAEZ,UAAU,CAACQ,QAAQ,GAAGP,KAAK,CAACO,QAAT,GAAoB,IAA7B,EAAmCP,KAAK,CAACiB,SAAzC,CADvB;IAEE,eAAc,aAAYX,EAAG,EAF/B;IAGE,WAAW,EAAEO,gBAHf;IAIE,UAAU,EAAEC,eAJd;IAKE,WAAW,EAAEC,gBALf;IAME,MAAM,EAAEC,WANV;IAOE,SAAS;EAPX,GASGJ,QATH,CADF;AAaD,CA7CD;;AA8CAR,SAAS,CAACc,SAAV,2CAAsB;EACpBZ,EAAE,EAAER,SAAS,CAACqB,MADM;EAEpBZ,QAAQ,EAAET,SAAS,CAACsB,IAFA;EAGpBZ,WAAW,EAAEV,SAAS,CAACuB,IAHH;EAIpBZ,UAAU,EAAEX,SAAS,CAACuB,IAJF;EAKpBX,WAAW,EAAEZ,SAAS,CAACuB,IALH;EAMpBV,MAAM,EAAEb,SAAS,CAACuB,IANE;EAOpBT,QAAQ,EAAEd,SAAS,CAACwB;AAPA,CAAtB;AAUA,eAAelB,SAAf"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/expandible-actionable-table/index.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAMjE,OAAO,EAA2C,KAAK,EAAY,MAAM,SAAS,CAAC;AAiCnF,QAAA,MAAM,+BAA+B;YAAW,KAAK,iBAAiB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqKrF,CAAC;AASF,eAAe,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/expandible-actionable-table/index.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAMjE,OAAO,EAA2C,KAAK,EAAY,MAAM,SAAS,CAAC;AAiCnF,QAAA,MAAM,+BAA+B;YAAW,KAAK,iBAAiB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsKrF,CAAC;AASF,eAAe,+BAA+B,CAAC"}
@@ -178,6 +178,7 @@ const ActionableExpandableErrorsTable = (props, legacyContext) => {
178
178
  'aria-describedby': ariaDescribedby
179
179
  } : {}, {
180
180
  className: style.table,
181
+ "data-testid": "expandible-actionable-table",
181
182
  "data-name": "expandible-actionable-table"
182
183
  }), /*#__PURE__*/React.createElement("thead", {
183
184
  className: isNestedTable ? style.theadNested : style.thead
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useState","classnames","ButtonLinkIconOnly","StatusItem","BulkProgressBar","Provider","GetTranslateFromContext","BulletPointMenuButton","ButtonLink","ErrorsTable","style","propTypes","buildField","field","componentType","buildLastField","lastField","buildNestedRow","row","ActionableExpandableErrorsTable","props","legacyContext","columns","rows","stickyFirstColumn","stickyLastColumn","ariaDescribedby","columnWidth","isNestedTable","translate","expandedRows","setExpandedRows","expandState","setExpandState","handleExpandRow","index","isRowExpanded","newExpandedRows","filter","id","concat","expandedState","forEach","headerRow","map","column","cIndex","title","headerFirstSticky","headerFirst","header","push","headerLastSticky","headerLast","headerView","bodyView","fields","isRowExpandible","bodyRow","fIndex","cellContent","columFirstWrapper","expandButtonWrapper","columnFirstSticky","columnFirst","col","width","columnLastSticky","columnLast","inspectButton","nestedRow","nestedRowCellule","includes","length","wrapper","table","theadNested","thead","contextTypes","skin","childContextTypes"],"sources":["../../../src/molecule/expandible-actionable-table/index.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport classnames from 'classnames';\nimport {get, isString, size, includes} from 'lodash/fp';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport StatusItem from '../../atom/status-item';\nimport BulkProgressBar from '../bulk-progress-bar';\nimport {WebContextValues} from '../../atom/provider/web-context';\nimport Provider, {GetTranslateFromContext} from '../../atom/provider';\nimport BulletPointMenuButton from '../bullet-point-menu-button';\nimport ButtonLink from '../../atom/button-link';\nimport ErrorsTable from '../errors-table';\nimport style from './style.css';\nimport {ExpandState, Field, LastField, NestedRow, Props, propTypes} from './types';\n\nconst buildField = (field: Field) => {\n if (isString(field)) return field;\n const {componentType} = field;\n switch (componentType) {\n case 'status':\n return <StatusItem {...field} />;\n case 'progress-bar':\n return <BulkProgressBar {...field} />;\n }\n};\n\nconst buildLastField = (lastField: LastField) => {\n const {componentType} = lastField;\n switch (componentType) {\n case 'menu':\n return <BulletPointMenuButton {...lastField} />;\n case 'button-link':\n return <ButtonLink {...lastField} />;\n }\n};\n\nconst buildNestedRow = (row: NestedRow) => {\n const {componentType} = row;\n switch (componentType) {\n case 'errors-table':\n return <ErrorsTable {...row} />;\n case 'expandible-errors-table':\n return <ActionableExpandableErrorsTable {...row} />;\n }\n};\n\nconst ActionableExpandableErrorsTable = (props: Props, legacyContext: WebContextValues) => {\n const {\n columns,\n rows = [],\n lastField,\n stickyFirstColumn = false,\n stickyLastColumn = false,\n ariaDescribedby,\n columnWidth = `${100 / size(columns)}%`,\n isNestedTable = false\n } = props;\n const translate = GetTranslateFromContext(legacyContext);\n\n /**\n * State variable to keep track of all the expanded rows\n * By default, nothing expanded. Hence initialized with empty array.\n */\n const [expandedRows, setExpandedRows] = useState<number[]>([]);\n\n /**\n * State variable to keep track which row is currently expanded.\n */\n const [expandState, setExpandState] = useState<ExpandState>({});\n\n /**\n * This function gets called when show/hide link is clicked.\n */\n const handleExpandRow = (index: number) => () => {\n const isRowExpanded = includes(index, expandedRows);\n\n /**\n * If the row is expanded, we are here to hide it. Hence remove\n * it from the state variable. Otherwise add to it.\n */\n const newExpandedRows = isRowExpanded\n ? expandedRows.filter(id => id !== index)\n : expandedRows.concat(index);\n\n setExpandedRows(newExpandedRows);\n\n /**\n * Create a new object to update the expanded state of all rows\n * Use the newExpandedRows array to set the state of all rows that are currently expanded\n */\n const expandedState: ExpandState = {};\n newExpandedRows.forEach(id => {\n expandedState[id] = true;\n });\n\n setExpandState(expandedState);\n };\n\n const headerRow = columns.map((column, cIndex) => {\n const {title} = column;\n return (\n <th\n className={\n cIndex === 0\n ? classnames(\n stickyFirstColumn ? style.headerFirstSticky : style.headerFirst,\n style.header\n )\n : style.header\n }\n key={`${title}-${cIndex}`}\n role=\"columnheader\"\n >\n {title}\n </th>\n );\n });\n\n headerRow.push(\n <th\n className={stickyLastColumn ? style.headerLastSticky : style.headerLast}\n key=\"action-header\"\n />\n );\n const headerView = [...headerRow];\n\n const bodyView = rows.map((row, index) => {\n const {fields, isRowExpandible = false} = row;\n const bodyRow = fields.map((field, fIndex) => {\n const cellContent =\n fIndex === 0 ? (\n <div className={style.columFirstWrapper}>\n <div className={style.expandButtonWrapper}>\n {isRowExpandible ? (\n <ButtonLinkIconOnly\n onClick={handleExpandRow(index)}\n data-name={`arrowUp-button-${index}`}\n icon=\"down\"\n className={expandState[index] ? 'bulkArrowUp' : 'bulkArrowDown'}\n aria-label={translate('bulk_import.show_errors')}\n />\n ) : null}\n </div>\n {buildField(field)}\n </div>\n ) : (\n buildField(field)\n );\n return (\n <td\n className={\n fIndex === 0\n ? classnames(\n stickyFirstColumn ? style.columnFirstSticky : style.columnFirst,\n style.col\n )\n : style.col\n }\n style={{width: columnWidth}}\n key={`${field}-${fIndex}`}\n >\n {cellContent}\n </td>\n );\n });\n\n bodyRow.push(\n <td\n className={stickyLastColumn ? style.columnLastSticky : style.columnLast}\n key=\"actionHeader\"\n >\n {lastField ? (\n <div\n className={classnames({\n [style.inspectButton]: get('className', lastField) === 'bulkInspectButton'\n })}\n >\n {buildLastField(lastField)}\n </div>\n ) : null}\n </td>\n );\n const nestedRow = get('nestedRow', row);\n const nestedRowCellule =\n nestedRow && expandedRows.includes(index) ? (\n <tr key={`line-${index}-error`}>\n <td className={style.nestedRowCellule} colSpan={fields.length + 2}>\n {buildNestedRow(nestedRow)}\n </td>\n </tr>\n ) : null;\n\n return nestedRowCellule\n ? [<tr key={`line-${index}`}>{bodyRow}</tr>, nestedRowCellule]\n : [<tr key={`line-${index}`}>{bodyRow}</tr>];\n });\n\n return (\n <div className={style.wrapper}>\n <table\n {...(ariaDescribedby ? {'aria-describedby': ariaDescribedby} : {})}\n className={style.table}\n data-name=\"expandible-actionable-table\"\n >\n <thead className={isNestedTable ? style.theadNested : style.thead}>\n <tr>{headerView}</tr>\n </thead>\n <tbody>{bodyView}</tbody>\n </table>\n </div>\n );\n};\n\nActionableExpandableErrorsTable.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nActionableExpandableErrorsTable.propTypes = propTypes;\n\nexport default ActionableExpandableErrorsTable;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useState","classnames","ButtonLinkIconOnly","StatusItem","BulkProgressBar","Provider","GetTranslateFromContext","BulletPointMenuButton","ButtonLink","ErrorsTable","style","propTypes","buildField","field","componentType","buildLastField","lastField","buildNestedRow","row","ActionableExpandableErrorsTable","props","legacyContext","columns","rows","stickyFirstColumn","stickyLastColumn","ariaDescribedby","columnWidth","isNestedTable","translate","expandedRows","setExpandedRows","expandState","setExpandState","handleExpandRow","index","isRowExpanded","newExpandedRows","filter","id","concat","expandedState","forEach","headerRow","map","column","cIndex","title","headerFirstSticky","headerFirst","header","push","headerLastSticky","headerLast","headerView","bodyView","fields","isRowExpandible","bodyRow","fIndex","cellContent","columFirstWrapper","expandButtonWrapper","columnFirstSticky","columnFirst","col","width","columnLastSticky","columnLast","inspectButton","nestedRow","nestedRowCellule","includes","length","wrapper","table","theadNested","thead","contextTypes","skin","childContextTypes"],"sources":["../../../src/molecule/expandible-actionable-table/index.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport classnames from 'classnames';\nimport {get, isString, size, includes} from 'lodash/fp';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport StatusItem from '../../atom/status-item';\nimport BulkProgressBar from '../bulk-progress-bar';\nimport {WebContextValues} from '../../atom/provider/web-context';\nimport Provider, {GetTranslateFromContext} from '../../atom/provider';\nimport BulletPointMenuButton from '../bullet-point-menu-button';\nimport ButtonLink from '../../atom/button-link';\nimport ErrorsTable from '../errors-table';\nimport style from './style.css';\nimport {ExpandState, Field, LastField, NestedRow, Props, propTypes} from './types';\n\nconst buildField = (field: Field) => {\n if (isString(field)) return field;\n const {componentType} = field;\n switch (componentType) {\n case 'status':\n return <StatusItem {...field} />;\n case 'progress-bar':\n return <BulkProgressBar {...field} />;\n }\n};\n\nconst buildLastField = (lastField: LastField) => {\n const {componentType} = lastField;\n switch (componentType) {\n case 'menu':\n return <BulletPointMenuButton {...lastField} />;\n case 'button-link':\n return <ButtonLink {...lastField} />;\n }\n};\n\nconst buildNestedRow = (row: NestedRow) => {\n const {componentType} = row;\n switch (componentType) {\n case 'errors-table':\n return <ErrorsTable {...row} />;\n case 'expandible-errors-table':\n return <ActionableExpandableErrorsTable {...row} />;\n }\n};\n\nconst ActionableExpandableErrorsTable = (props: Props, legacyContext: WebContextValues) => {\n const {\n columns,\n rows = [],\n lastField,\n stickyFirstColumn = false,\n stickyLastColumn = false,\n ariaDescribedby,\n columnWidth = `${100 / size(columns)}%`,\n isNestedTable = false\n } = props;\n const translate = GetTranslateFromContext(legacyContext);\n\n /**\n * State variable to keep track of all the expanded rows\n * By default, nothing expanded. Hence initialized with empty array.\n */\n const [expandedRows, setExpandedRows] = useState<number[]>([]);\n\n /**\n * State variable to keep track which row is currently expanded.\n */\n const [expandState, setExpandState] = useState<ExpandState>({});\n\n /**\n * This function gets called when show/hide link is clicked.\n */\n const handleExpandRow = (index: number) => () => {\n const isRowExpanded = includes(index, expandedRows);\n\n /**\n * If the row is expanded, we are here to hide it. Hence remove\n * it from the state variable. Otherwise add to it.\n */\n const newExpandedRows = isRowExpanded\n ? expandedRows.filter(id => id !== index)\n : expandedRows.concat(index);\n\n setExpandedRows(newExpandedRows);\n\n /**\n * Create a new object to update the expanded state of all rows\n * Use the newExpandedRows array to set the state of all rows that are currently expanded\n */\n const expandedState: ExpandState = {};\n newExpandedRows.forEach(id => {\n expandedState[id] = true;\n });\n\n setExpandState(expandedState);\n };\n\n const headerRow = columns.map((column, cIndex) => {\n const {title} = column;\n return (\n <th\n className={\n cIndex === 0\n ? classnames(\n stickyFirstColumn ? style.headerFirstSticky : style.headerFirst,\n style.header\n )\n : style.header\n }\n key={`${title}-${cIndex}`}\n role=\"columnheader\"\n >\n {title}\n </th>\n );\n });\n\n headerRow.push(\n <th\n className={stickyLastColumn ? style.headerLastSticky : style.headerLast}\n key=\"action-header\"\n />\n );\n const headerView = [...headerRow];\n\n const bodyView = rows.map((row, index) => {\n const {fields, isRowExpandible = false} = row;\n const bodyRow = fields.map((field, fIndex) => {\n const cellContent =\n fIndex === 0 ? (\n <div className={style.columFirstWrapper}>\n <div className={style.expandButtonWrapper}>\n {isRowExpandible ? (\n <ButtonLinkIconOnly\n onClick={handleExpandRow(index)}\n data-name={`arrowUp-button-${index}`}\n icon=\"down\"\n className={expandState[index] ? 'bulkArrowUp' : 'bulkArrowDown'}\n aria-label={translate('bulk_import.show_errors')}\n />\n ) : null}\n </div>\n {buildField(field)}\n </div>\n ) : (\n buildField(field)\n );\n return (\n <td\n className={\n fIndex === 0\n ? classnames(\n stickyFirstColumn ? style.columnFirstSticky : style.columnFirst,\n style.col\n )\n : style.col\n }\n style={{width: columnWidth}}\n key={`${field}-${fIndex}`}\n >\n {cellContent}\n </td>\n );\n });\n\n bodyRow.push(\n <td\n className={stickyLastColumn ? style.columnLastSticky : style.columnLast}\n key=\"actionHeader\"\n >\n {lastField ? (\n <div\n className={classnames({\n [style.inspectButton]: get('className', lastField) === 'bulkInspectButton'\n })}\n >\n {buildLastField(lastField)}\n </div>\n ) : null}\n </td>\n );\n const nestedRow = get('nestedRow', row);\n const nestedRowCellule =\n nestedRow && expandedRows.includes(index) ? (\n <tr key={`line-${index}-error`}>\n <td className={style.nestedRowCellule} colSpan={fields.length + 2}>\n {buildNestedRow(nestedRow)}\n </td>\n </tr>\n ) : null;\n\n return nestedRowCellule\n ? [<tr key={`line-${index}`}>{bodyRow}</tr>, nestedRowCellule]\n : [<tr key={`line-${index}`}>{bodyRow}</tr>];\n });\n\n return (\n <div className={style.wrapper}>\n <table\n {...(ariaDescribedby ? {'aria-describedby': ariaDescribedby} : {})}\n className={style.table}\n data-testid=\"expandible-actionable-table\"\n data-name=\"expandible-actionable-table\"\n >\n <thead className={isNestedTable ? style.theadNested : style.thead}>\n <tr>{headerView}</tr>\n </thead>\n <tbody>{bodyView}</tbody>\n </table>\n </div>\n );\n};\n\nActionableExpandableErrorsTable.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nActionableExpandableErrorsTable.propTypes = propTypes;\n\nexport default ActionableExpandableErrorsTable;\n"],"mappings":"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"}
@@ -55,8 +55,8 @@ const ForumComment = (props, context) => {
55
55
  }, avatarView, /*#__PURE__*/React.createElement("div", {
56
56
  className: style.comment
57
57
  }, /*#__PURE__*/React.createElement("textarea", {
58
- placeholder: translate('Write something here'),
59
- title: translate('Write something here'),
58
+ placeholder: translate('comment_aria_label'),
59
+ title: translate('comment_aria_label'),
60
60
  "aria-label": translate('comment_aria_label'),
61
61
  value: value,
62
62
  onChange: onChange,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classnames","SrcPropType","Provider","Button","style","ForumComment","props","context","translate","skin","avatar","onPost","onChange","value","textareaDisabled","postDisabled","newPost","profileAvatarAlt","primary","light","avatarView","image","button","post","backgroundColor","disabledButton","container","wrapper","comment","contextTypes","childContextTypes","propTypes","string","func","bool"],"sources":["../../../../src/molecule/forum/forum-comment/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {get, noop} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {SrcPropType} from '../../../util/proptypes';\nimport Provider from '../../../atom/provider';\nimport Button from '../../../atom/button';\nimport style from './style.css';\n\nconst ForumComment = (props, context) => {\n const {translate, skin} = context;\n const {\n avatar,\n onPost,\n onChange,\n value,\n textareaDisabled,\n postDisabled,\n newPost = false,\n profileAvatarAlt\n } = props;\n const primary = get('common.primary', skin);\n const light = get('common.light', skin);\n\n const avatarView = avatar ? (\n <div className={style.image}>\n <img src={avatar} alt={profileAvatarAlt} />\n </div>\n ) : null;\n\n const button = (\n <div className={style.post}>\n <Button\n type=\"link\"\n onClick={!postDisabled ? onPost : noop}\n disabled={postDisabled}\n submitValue={translate('Post')}\n aria-label={translate('post_comment_aria_label')}\n style={{\n backgroundColor: postDisabled ? light : primary\n }}\n className={postDisabled ? style.disabledButton : style.button}\n />\n </div>\n );\n\n return (\n <div\n data-name=\"forumComment\"\n className={classnames(style.container, newPost ? style.newPost : null)}\n >\n <div className={classnames(style.wrapper, newPost ? style.newPost : null)}>\n {avatarView}\n <div className={style.comment}>\n <textarea\n placeholder={translate('Write something here')}\n title={translate('Write something here')}\n aria-label={translate('comment_aria_label')}\n value={value}\n onChange={onChange}\n disabled={textareaDisabled}\n />\n </div>\n </div>\n {button}\n </div>\n );\n};\n\nForumComment.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nForumComment.propTypes = {\n value: PropTypes.string,\n profileAvatarAlt: PropTypes.string,\n avatar: SrcPropType,\n onChange: PropTypes.func,\n onPost: PropTypes.func,\n newPost: PropTypes.bool,\n textareaDisabled: PropTypes.bool,\n postDisabled: PropTypes.bool\n};\nexport default ForumComment;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classnames","SrcPropType","Provider","Button","style","ForumComment","props","context","translate","skin","avatar","onPost","onChange","value","textareaDisabled","postDisabled","newPost","profileAvatarAlt","primary","light","avatarView","image","button","post","backgroundColor","disabledButton","container","wrapper","comment","contextTypes","childContextTypes","propTypes","string","func","bool"],"sources":["../../../../src/molecule/forum/forum-comment/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {get, noop} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {SrcPropType} from '../../../util/proptypes';\nimport Provider from '../../../atom/provider';\nimport Button from '../../../atom/button';\nimport style from './style.css';\n\nconst ForumComment = (props, context) => {\n const {translate, skin} = context;\n const {\n avatar,\n onPost,\n onChange,\n value,\n textareaDisabled,\n postDisabled,\n newPost = false,\n profileAvatarAlt\n } = props;\n const primary = get('common.primary', skin);\n const light = get('common.light', skin);\n\n const avatarView = avatar ? (\n <div className={style.image}>\n <img src={avatar} alt={profileAvatarAlt} />\n </div>\n ) : null;\n\n const button = (\n <div className={style.post}>\n <Button\n type=\"link\"\n onClick={!postDisabled ? onPost : noop}\n disabled={postDisabled}\n submitValue={translate('Post')}\n aria-label={translate('post_comment_aria_label')}\n style={{\n backgroundColor: postDisabled ? light : primary\n }}\n className={postDisabled ? style.disabledButton : style.button}\n />\n </div>\n );\n\n return (\n <div\n data-name=\"forumComment\"\n className={classnames(style.container, newPost ? style.newPost : null)}\n >\n <div className={classnames(style.wrapper, newPost ? style.newPost : null)}>\n {avatarView}\n <div className={style.comment}>\n <textarea\n placeholder={translate('comment_aria_label')}\n title={translate('comment_aria_label')}\n aria-label={translate('comment_aria_label')}\n value={value}\n onChange={onChange}\n disabled={textareaDisabled}\n />\n </div>\n </div>\n {button}\n </div>\n );\n};\n\nForumComment.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nForumComment.propTypes = {\n value: PropTypes.string,\n profileAvatarAlt: PropTypes.string,\n avatar: SrcPropType,\n onChange: PropTypes.func,\n onPost: PropTypes.func,\n newPost: PropTypes.bool,\n textareaDisabled: PropTypes.bool,\n postDisabled: PropTypes.bool\n};\nexport default ForumComment;\n"],"mappings":"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"}
@@ -629,7 +629,7 @@ class MoocHeader extends React.Component {
629
629
  style: {
630
630
  color: primaryColor
631
631
  }
632
- }))) : null)), searchFormView, /*#__PURE__*/React.createElement("nav", {
632
+ }))) : null)), searchFormView, /*#__PURE__*/React.createElement("div", {
633
633
  className: isMenuOpen ? style.menuWrapper : style.hiddenMenuWrapper,
634
634
  "data-name": "menu-wrapper"
635
635
  }, pagesView, userView || linksView, settingsView)));