@coorpacademy/components 10.5.4 → 10.5.7-alpha.5

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 (133) hide show
  1. package/es/molecule/course-section/index.js +5 -3
  2. package/es/molecule/course-section/index.js.map +1 -1
  3. package/es/molecule/course-section/style.css +2 -1
  4. package/es/molecule/course-section/test/fixtures/chapter.js +2 -1
  5. package/es/molecule/course-section/test/fixtures/chapter.js.map +1 -1
  6. package/es/molecule/course-section/test/fixtures/course.js +2 -1
  7. package/es/molecule/course-section/test/fixtures/course.js.map +1 -1
  8. package/es/molecule/course-sections/index.js +40 -0
  9. package/es/molecule/course-sections/index.js.map +1 -0
  10. package/es/molecule/course-sections/style.css +3 -0
  11. package/es/molecule/course-sections/test/fixtures/default.js +149 -0
  12. package/es/molecule/course-sections/test/fixtures/default.js.map +1 -0
  13. package/es/molecule/course-sections/test/fixtures/loading.js +9 -0
  14. package/es/molecule/course-sections/test/fixtures/loading.js.map +1 -0
  15. package/es/molecule/course-sections/test/fixtures.js +15 -0
  16. package/es/molecule/course-sections/test/fixtures.js.map +1 -0
  17. package/es/molecule/draggable/index.js +1 -1
  18. package/es/molecule/draggable/index.js.map +1 -1
  19. package/es/molecule/draggable/style.css +1 -5
  20. package/es/molecule/draggable-list/index.js +56 -0
  21. package/es/molecule/draggable-list/index.js.map +1 -0
  22. package/es/molecule/draggable-list/test/fixtures/course-sections.js +20 -0
  23. package/es/molecule/draggable-list/test/fixtures/course-sections.js.map +1 -0
  24. package/es/molecule/draggable-list/test/fixtures/dashboard-sections.js +26 -0
  25. package/es/molecule/draggable-list/test/fixtures/dashboard-sections.js.map +1 -0
  26. package/es/molecule/draggable-list/test/fixtures.js +2 -0
  27. package/es/molecule/draggable-list/test/fixtures.js.map +1 -1
  28. package/es/molecule/{setup-sections → draggable-list}/test/on-drop.js +17 -17
  29. package/es/molecule/draggable-list/test/on-drop.js.map +1 -0
  30. package/es/molecule/questions/qcm/index.js +37 -25
  31. package/es/molecule/questions/qcm/index.js.map +1 -1
  32. package/es/molecule/questions/qcm/style.css +48 -14
  33. package/es/molecule/questions/qcm/test/fixtures/default.js +8 -0
  34. package/es/molecule/questions/qcm/test/fixtures/default.js.map +1 -1
  35. package/es/molecule/questions/qcm/test/qcm.js +103 -0
  36. package/es/molecule/questions/qcm/test/qcm.js.map +1 -0
  37. package/es/molecule/questions/qcm-graphic/index.js +35 -17
  38. package/es/molecule/questions/qcm-graphic/index.js.map +1 -1
  39. package/es/molecule/questions/qcm-graphic/style.css +64 -13
  40. package/es/molecule/questions/qcm-graphic/test/qcm-graphic.js +65 -0
  41. package/es/molecule/questions/qcm-graphic/test/qcm-graphic.js.map +1 -0
  42. package/es/molecule/setup-section/style.css +1 -0
  43. package/es/molecule/setup-sections/index.js +7 -33
  44. package/es/molecule/setup-sections/index.js.map +1 -1
  45. package/es/molecule/wizard-summary/test/fixtures/organize-courses.js +106 -0
  46. package/es/molecule/wizard-summary/test/fixtures/organize-courses.js.map +1 -0
  47. package/es/molecule/wizard-summary/test/fixtures.js +2 -0
  48. package/es/molecule/wizard-summary/test/fixtures.js.map +1 -1
  49. package/es/organism/wizard-contents/index.js +6 -0
  50. package/es/organism/wizard-contents/index.js.map +1 -1
  51. package/es/organism/wizard-contents/test/fixtures/playlist-organize-courses.js +45 -0
  52. package/es/organism/wizard-contents/test/fixtures/playlist-organize-courses.js.map +1 -0
  53. package/es/organism/wizard-contents/test/fixtures.js +2 -0
  54. package/es/organism/wizard-contents/test/fixtures.js.map +1 -1
  55. package/es/template/back-office/brand-update/test/fixtures/wizard-organize-courses-playlist.js +22 -0
  56. package/es/template/back-office/brand-update/test/fixtures/wizard-organize-courses-playlist.js.map +1 -0
  57. package/es/template/back-office/brand-update/test/fixtures.js +2 -0
  58. package/es/template/back-office/brand-update/test/fixtures.js.map +1 -1
  59. package/es/util/get-shadow-box-color-from-primary.js +4 -0
  60. package/es/util/get-shadow-box-color-from-primary.js.map +1 -0
  61. package/es/util/test/get-shadow-box-color-from-primary.js +33 -0
  62. package/es/util/test/get-shadow-box-color-from-primary.js.map +1 -0
  63. package/es/variables/colors.css +3 -0
  64. package/lib/molecule/course-section/index.js +5 -3
  65. package/lib/molecule/course-section/index.js.map +1 -1
  66. package/lib/molecule/course-section/style.css +2 -1
  67. package/lib/molecule/course-section/test/fixtures/chapter.js +2 -1
  68. package/lib/molecule/course-section/test/fixtures/chapter.js.map +1 -1
  69. package/lib/molecule/course-section/test/fixtures/course.js +2 -1
  70. package/lib/molecule/course-section/test/fixtures/course.js.map +1 -1
  71. package/lib/molecule/course-sections/index.js +54 -0
  72. package/lib/molecule/course-sections/index.js.map +1 -0
  73. package/lib/molecule/course-sections/style.css +3 -0
  74. package/lib/molecule/course-sections/test/fixtures/default.js +154 -0
  75. package/lib/molecule/course-sections/test/fixtures/default.js.map +1 -0
  76. package/lib/molecule/course-sections/test/fixtures/loading.js +14 -0
  77. package/lib/molecule/course-sections/test/fixtures/loading.js.map +1 -0
  78. package/lib/molecule/course-sections/test/fixtures.js +25 -0
  79. package/lib/molecule/course-sections/test/fixtures.js.map +1 -0
  80. package/lib/molecule/draggable/index.js +1 -1
  81. package/lib/molecule/draggable/index.js.map +1 -1
  82. package/lib/molecule/draggable/style.css +1 -5
  83. package/lib/molecule/draggable-list/index.js +73 -0
  84. package/lib/molecule/draggable-list/index.js.map +1 -0
  85. package/lib/molecule/draggable-list/test/fixtures/course-sections.js +29 -0
  86. package/lib/molecule/draggable-list/test/fixtures/course-sections.js.map +1 -0
  87. package/lib/molecule/draggable-list/test/fixtures/dashboard-sections.js +37 -0
  88. package/lib/molecule/draggable-list/test/fixtures/dashboard-sections.js.map +1 -0
  89. package/lib/molecule/draggable-list/test/fixtures.js +3 -0
  90. package/lib/molecule/draggable-list/test/fixtures.js.map +1 -1
  91. package/lib/molecule/{setup-sections → draggable-list}/test/on-drop.js +19 -19
  92. package/lib/molecule/draggable-list/test/on-drop.js.map +1 -0
  93. package/lib/molecule/questions/qcm/index.js +44 -23
  94. package/lib/molecule/questions/qcm/index.js.map +1 -1
  95. package/lib/molecule/questions/qcm/style.css +48 -14
  96. package/lib/molecule/questions/qcm/test/fixtures/default.js +8 -0
  97. package/lib/molecule/questions/qcm/test/fixtures/default.js.map +1 -1
  98. package/lib/molecule/questions/qcm/test/qcm.js +115 -0
  99. package/lib/molecule/questions/qcm/test/qcm.js.map +1 -0
  100. package/lib/molecule/questions/qcm-graphic/index.js +33 -15
  101. package/lib/molecule/questions/qcm-graphic/index.js.map +1 -1
  102. package/lib/molecule/questions/qcm-graphic/style.css +64 -13
  103. package/lib/molecule/questions/qcm-graphic/test/qcm-graphic.js +76 -0
  104. package/lib/molecule/questions/qcm-graphic/test/qcm-graphic.js.map +1 -0
  105. package/lib/molecule/setup-section/style.css +1 -0
  106. package/lib/molecule/setup-sections/index.js +7 -37
  107. package/lib/molecule/setup-sections/index.js.map +1 -1
  108. package/lib/molecule/wizard-summary/test/fixtures/organize-courses.js +111 -0
  109. package/lib/molecule/wizard-summary/test/fixtures/organize-courses.js.map +1 -0
  110. package/lib/molecule/wizard-summary/test/fixtures.js +3 -0
  111. package/lib/molecule/wizard-summary/test/fixtures.js.map +1 -1
  112. package/lib/organism/wizard-contents/index.js +7 -0
  113. package/lib/organism/wizard-contents/index.js.map +1 -1
  114. package/lib/organism/wizard-contents/test/fixtures/playlist-organize-courses.js +54 -0
  115. package/lib/organism/wizard-contents/test/fixtures/playlist-organize-courses.js.map +1 -0
  116. package/lib/organism/wizard-contents/test/fixtures.js +3 -0
  117. package/lib/organism/wizard-contents/test/fixtures.js.map +1 -1
  118. package/lib/template/back-office/brand-update/test/fixtures/wizard-organize-courses-playlist.js +32 -0
  119. package/lib/template/back-office/brand-update/test/fixtures/wizard-organize-courses-playlist.js.map +1 -0
  120. package/lib/template/back-office/brand-update/test/fixtures.js +3 -0
  121. package/lib/template/back-office/brand-update/test/fixtures.js.map +1 -1
  122. package/lib/util/get-shadow-box-color-from-primary.js +12 -0
  123. package/lib/util/get-shadow-box-color-from-primary.js.map +1 -0
  124. package/lib/util/test/get-shadow-box-color-from-primary.js +40 -0
  125. package/lib/util/test/get-shadow-box-color-from-primary.js.map +1 -0
  126. package/lib/variables/colors.css +3 -0
  127. package/package.json +2 -2
  128. package/es/molecule/search/test/fixtures.js +0 -15
  129. package/es/molecule/search/test/fixtures.js.map +0 -1
  130. package/es/molecule/setup-sections/test/on-drop.js.map +0 -1
  131. package/lib/molecule/search/test/fixtures.js +0 -25
  132. package/lib/molecule/search/test/fixtures.js.map +0 -1
  133. package/lib/molecule/setup-sections/test/on-drop.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/molecule/course-sections/test/fixtures.js"],"names":["t","pass","MoleculeCourseSections","propTypes","value","key","not","undefined","renderComponentMacro","fixtureDefault","fixtureLoading"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,kBAAK,iEAAL,EAAwEA,CAAC,IAAI;AAC3EA,EAAAA,CAAC,CAACC,IAAF;AACA,wBAAQC,UAAuBC,SAA/B,EAA0C,CAACC,KAAD,EAAQC,GAAR,KAAgB;AACxDL,IAAAA,CAAC,CAACM,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,2DAA0DF,GAAI,mEAAvF;AACD,GAFD;AAGD,CALD;AAOA,kBAAK,kEAAL,EAAyEG,wBAAzE,EAA+FN,SAA/F,EAAuHO,gBAAvH;AACA,kBAAK,kEAAL,EAAyED,wBAAzE,EAA+FN,SAA/F,EAAuHQ,gBAAvH","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport MoleculeCourseSections from '..';\nimport fixtureDefault from './fixtures/default';\nimport fixtureLoading from './fixtures/loading';\n\ntest('Molecule › MoleculeCourseSections > should have valid propTypes', t => {\n t.pass();\n forEach(MoleculeCourseSections.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Molecule.MoleculeCourseSections.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Molecule › MoleculeCourseSections › Default › should be rendered', renderComponentMacro, MoleculeCourseSections, fixtureDefault);\ntest('Molecule › MoleculeCourseSections › Loading › should be rendered', renderComponentMacro, MoleculeCourseSections, fixtureLoading);\n"],"file":"fixtures.js"}
@@ -48,7 +48,7 @@ const Draggable = props => {
48
48
  onDrop(id);
49
49
  }, [id, onDrop]);
50
50
  return /*#__PURE__*/_react.default.createElement("div", {
51
- className: (0, _classnames.default)(dragging ? _style.default.dragging : null, _style.default.section, _style.default.draggable),
51
+ className: (0, _classnames.default)(dragging ? _style.default.dragging : null, _style.default.draggable),
52
52
  onDragStart: dragStartHandler,
53
53
  onDragOver: dragOverHandler,
54
54
  onDragLeave: dragLeaveHandler,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/draggable/index.js"],"names":["preventDefault","e","stopPropagation","Draggable","props","id","dragging","onDragStart","onDragOver","onDragLeave","onDrop","children","dragStartHandler","dragOverHandler","dragLeaveHandler","dropHandler","style","section","draggable","propTypes","PropTypes","string","bool","func","element"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,cAAc,GAAGC,CAAC,IAAIA,CAAC,CAACD,cAAF,EAA5B;;AACA,MAAME,eAAe,GAAGD,CAAC,IAAIA,CAAC,CAACC,eAAF,EAA7B;;AAEA,MAAMC,SAAS,GAAGC,KAAK,IAAI;AACzB,QAAM;AAACC,IAAAA,EAAD;AAAKC,IAAAA,QAAQ,GAAG,KAAhB;AAAuBC,IAAAA,WAAvB;AAAoCC,IAAAA,UAApC;AAAgDC,IAAAA,WAAhD;AAA6DC,IAAAA,MAA7D;AAAqEC,IAAAA;AAArE,MAAiFP,KAAvF;AAEA,QAAMQ,gBAAgB,GAAG,wBACvBX,CAAC,IAAI;AACHC,IAAAA,eAAe,CAACD,CAAD,CAAf;AACAM,IAAAA,WAAW,CAACF,EAAD,CAAX;AACD,GAJsB,EAKvB,CAACA,EAAD,EAAKE,WAAL,CALuB,CAAzB;AAOA,QAAMM,eAAe,GAAG,wBACtBZ,CAAC,IAAI;AACHD,IAAAA,cAAc,CAACC,CAAD,CAAd;AACAO,IAAAA,UAAU,CAACH,EAAD,CAAV;AACD,GAJqB,EAKtB,CAACA,EAAD,EAAKG,UAAL,CALsB,CAAxB;AAOA,QAAMM,gBAAgB,GAAG,wBACvBb,CAAC,IAAI;AACHD,IAAAA,cAAc,CAACC,CAAD,CAAd;AACAQ,IAAAA,WAAW,CAACJ,EAAD,CAAX;AACD,GAJsB,EAKvB,CAACA,EAAD,EAAKI,WAAL,CALuB,CAAzB;AAOA,QAAMM,WAAW,GAAG,wBAClBd,CAAC,IAAI;AACHD,IAAAA,cAAc,CAACC,CAAD,CAAd;AACAS,IAAAA,MAAM,CAACL,EAAD,CAAN;AACD,GAJiB,EAKlB,CAACA,EAAD,EAAKK,MAAL,CALkB,CAApB;AAQA,sBACE;AACE,IAAA,SAAS,EAAE,yBAAWJ,QAAQ,GAAGU,eAAMV,QAAT,GAAoB,IAAvC,EAA6CU,eAAMC,OAAnD,EAA4DD,eAAME,SAAlE,CADb;AAEE,IAAA,WAAW,EAAEN,gBAFf;AAGE,IAAA,UAAU,EAAEC,eAHd;AAIE,IAAA,WAAW,EAAEC,gBAJf;AAKE,IAAA,MAAM,EAAEC,WALV;AAME,IAAA,SAAS;AANX,KAQGJ,QARH,CADF;AAYD,CA5CD;;AA6CAR,SAAS,CAACgB,SAAV,2CAAsB;AACpBd,EAAAA,EAAE,EAAEe,mBAAUC,MADM;AAEpBf,EAAAA,QAAQ,EAAEc,mBAAUE,IAFA;AAGpBf,EAAAA,WAAW,EAAEa,mBAAUG,IAHH;AAIpBf,EAAAA,UAAU,EAAEY,mBAAUG,IAJF;AAKpBd,EAAAA,WAAW,EAAEW,mBAAUG,IALH;AAMpBb,EAAAA,MAAM,EAAEU,mBAAUG,IANE;AAOpBZ,EAAAA,QAAQ,EAAES,mBAAUI;AAPA,CAAtB;eAUerB,S","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.section, 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"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/draggable/index.js"],"names":["preventDefault","e","stopPropagation","Draggable","props","id","dragging","onDragStart","onDragOver","onDragLeave","onDrop","children","dragStartHandler","dragOverHandler","dragLeaveHandler","dropHandler","style","draggable","propTypes","PropTypes","string","bool","func","element"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,cAAc,GAAGC,CAAC,IAAIA,CAAC,CAACD,cAAF,EAA5B;;AACA,MAAME,eAAe,GAAGD,CAAC,IAAIA,CAAC,CAACC,eAAF,EAA7B;;AAEA,MAAMC,SAAS,GAAGC,KAAK,IAAI;AACzB,QAAM;AAACC,IAAAA,EAAD;AAAKC,IAAAA,QAAQ,GAAG,KAAhB;AAAuBC,IAAAA,WAAvB;AAAoCC,IAAAA,UAApC;AAAgDC,IAAAA,WAAhD;AAA6DC,IAAAA,MAA7D;AAAqEC,IAAAA;AAArE,MAAiFP,KAAvF;AAEA,QAAMQ,gBAAgB,GAAG,wBACvBX,CAAC,IAAI;AACHC,IAAAA,eAAe,CAACD,CAAD,CAAf;AACAM,IAAAA,WAAW,CAACF,EAAD,CAAX;AACD,GAJsB,EAKvB,CAACA,EAAD,EAAKE,WAAL,CALuB,CAAzB;AAOA,QAAMM,eAAe,GAAG,wBACtBZ,CAAC,IAAI;AACHD,IAAAA,cAAc,CAACC,CAAD,CAAd;AACAO,IAAAA,UAAU,CAACH,EAAD,CAAV;AACD,GAJqB,EAKtB,CAACA,EAAD,EAAKG,UAAL,CALsB,CAAxB;AAOA,QAAMM,gBAAgB,GAAG,wBACvBb,CAAC,IAAI;AACHD,IAAAA,cAAc,CAACC,CAAD,CAAd;AACAQ,IAAAA,WAAW,CAACJ,EAAD,CAAX;AACD,GAJsB,EAKvB,CAACA,EAAD,EAAKI,WAAL,CALuB,CAAzB;AAOA,QAAMM,WAAW,GAAG,wBAClBd,CAAC,IAAI;AACHD,IAAAA,cAAc,CAACC,CAAD,CAAd;AACAS,IAAAA,MAAM,CAACL,EAAD,CAAN;AACD,GAJiB,EAKlB,CAACA,EAAD,EAAKK,MAAL,CALkB,CAApB;AAQA,sBACE;AACE,IAAA,SAAS,EAAE,yBAAWJ,QAAQ,GAAGU,eAAMV,QAAT,GAAoB,IAAvC,EAA6CU,eAAMC,SAAnD,CADb;AAEE,IAAA,WAAW,EAAEL,gBAFf;AAGE,IAAA,UAAU,EAAEC,eAHd;AAIE,IAAA,WAAW,EAAEC,gBAJf;AAKE,IAAA,MAAM,EAAEC,WALV;AAME,IAAA,SAAS;AANX,KAQGJ,QARH,CADF;AAYD,CA5CD;;AA6CAR,SAAS,CAACe,SAAV,2CAAsB;AACpBb,EAAAA,EAAE,EAAEc,mBAAUC,MADM;AAEpBd,EAAAA,QAAQ,EAAEa,mBAAUE,IAFA;AAGpBd,EAAAA,WAAW,EAAEY,mBAAUG,IAHH;AAIpBd,EAAAA,UAAU,EAAEW,mBAAUG,IAJF;AAKpBb,EAAAA,WAAW,EAAEU,mBAAUG,IALH;AAMpBZ,EAAAA,MAAM,EAAES,mBAAUG,IANE;AAOpBX,EAAAA,QAAQ,EAAEQ,mBAAUI;AAPA,CAAtB;eAUepB,S","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"],"file":"index.js"}
@@ -7,11 +7,6 @@
7
7
  @value cm_grey_100 from colors;
8
8
 
9
9
 
10
- .section {
11
- display: flex;
12
- justify-content: center;
13
- }
14
-
15
10
  .draggable {
16
11
  cursor: grab;
17
12
  position: relative;
@@ -58,6 +53,7 @@
58
53
  font-family: 'Open Sans';
59
54
  font-weight: 600;
60
55
  font-size: 14px;
56
+ border-radius: 7px;
61
57
  }
62
58
 
63
59
  @media mobile {
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _react = _interopRequireWildcard(require("react"));
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _draggable = _interopRequireDefault(require("../draggable"));
11
+
12
+ var _setupSection = _interopRequireDefault(require("../setup-section"));
13
+
14
+ var _courseSection = _interopRequireDefault(require("../course-section"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
19
+
20
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
22
+ 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); }
23
+
24
+ const ITEMS = {
25
+ 'setup-section': _setupSection.default,
26
+ 'course-section': _courseSection.default
27
+ };
28
+
29
+ const DraggableList = ({
30
+ items,
31
+ onDrop,
32
+ itemType
33
+ }) => {
34
+ const [dragTo, setDragTo] = (0, _react.useState)(null);
35
+ const [dragFrom, setDragFrom] = (0, _react.useState)(null);
36
+ const dragStartHandler = (0, _react.useCallback)(id => {
37
+ setDragFrom(id);
38
+ }, [setDragFrom]);
39
+ const dragOverHandler = (0, _react.useCallback)(id => {
40
+ if (dragTo === id) return;
41
+ setDragTo(id);
42
+ }, [dragTo, setDragTo]);
43
+ const dragLeaveHandler = (0, _react.useCallback)(id => {
44
+ setDragTo(null);
45
+ }, [setDragTo]);
46
+ const dropHandler = (0, _react.useCallback)(id => {
47
+ if (onDrop && dragFrom) onDrop(dragFrom, id);
48
+ setDragTo(null);
49
+ setDragFrom(null);
50
+ }, [onDrop, setDragTo, setDragFrom, dragFrom]);
51
+ const Item = ITEMS[itemType];
52
+ const itemsView = items.map(item => /*#__PURE__*/_react.default.createElement(_draggable.default, {
53
+ key: item.id,
54
+ id: item.id,
55
+ dragging: dragTo === item.id,
56
+ onDragStart: dragStartHandler,
57
+ onDragOver: dragOverHandler,
58
+ onDragLeave: dragLeaveHandler,
59
+ onDrop: dropHandler
60
+ }, /*#__PURE__*/_react.default.createElement(Item, _extends({}, item, {
61
+ key: item.id
62
+ }))));
63
+ return /*#__PURE__*/_react.default.createElement("div", null, itemsView);
64
+ };
65
+
66
+ DraggableList.propTypes = process.env.NODE_ENV !== "production" ? {
67
+ items: _propTypes.default.arrayOf(_propTypes.default.shape(_setupSection.default.propTypes)),
68
+ onDrop: _propTypes.default.func,
69
+ itemType: _propTypes.default.string
70
+ } : {};
71
+ var _default = DraggableList;
72
+ exports.default = _default;
73
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/molecule/draggable-list/index.js"],"names":["ITEMS","SetupSection","CourseSection","DraggableList","items","onDrop","itemType","dragTo","setDragTo","dragFrom","setDragFrom","dragStartHandler","id","dragOverHandler","dragLeaveHandler","dropHandler","Item","itemsView","map","item","propTypes","PropTypes","arrayOf","shape","func","string"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,KAAK,GAAG;AAAC,mBAAiBC,qBAAlB;AAAgC,oBAAkBC;AAAlD,CAAd;;AAEA,MAAMC,aAAa,GAAG,CAAC;AAACC,EAAAA,KAAD;AAAQC,EAAAA,MAAR;AAAgBC,EAAAA;AAAhB,CAAD,KAA+B;AACnD,QAAM,CAACC,MAAD,EAASC,SAAT,IAAsB,qBAAS,IAAT,CAA5B;AACA,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0B,qBAAS,IAAT,CAAhC;AAEA,QAAMC,gBAAgB,GAAG,wBACvBC,EAAE,IAAI;AACJF,IAAAA,WAAW,CAACE,EAAD,CAAX;AACD,GAHsB,EAIvB,CAACF,WAAD,CAJuB,CAAzB;AAOA,QAAMG,eAAe,GAAG,wBACtBD,EAAE,IAAI;AACJ,QAAIL,MAAM,KAAKK,EAAf,EAAmB;AACnBJ,IAAAA,SAAS,CAACI,EAAD,CAAT;AACD,GAJqB,EAKtB,CAACL,MAAD,EAASC,SAAT,CALsB,CAAxB;AAQA,QAAMM,gBAAgB,GAAG,wBACvBF,EAAE,IAAI;AACJJ,IAAAA,SAAS,CAAC,IAAD,CAAT;AACD,GAHsB,EAIvB,CAACA,SAAD,CAJuB,CAAzB;AAOA,QAAMO,WAAW,GAAG,wBAClBH,EAAE,IAAI;AACJ,QAAIP,MAAM,IAAII,QAAd,EAAwBJ,MAAM,CAACI,QAAD,EAAWG,EAAX,CAAN;AAExBJ,IAAAA,SAAS,CAAC,IAAD,CAAT;AACAE,IAAAA,WAAW,CAAC,IAAD,CAAX;AACD,GANiB,EAOlB,CAACL,MAAD,EAASG,SAAT,EAAoBE,WAApB,EAAiCD,QAAjC,CAPkB,CAApB;AAUA,QAAMO,IAAI,GAAGhB,KAAK,CAACM,QAAD,CAAlB;AACA,QAAMW,SAAS,GAAGb,KAAK,CAACc,GAAN,CAAUC,IAAI,iBAC9B,6BAAC,kBAAD;AACE,IAAA,GAAG,EAAEA,IAAI,CAACP,EADZ;AAEE,IAAA,EAAE,EAAEO,IAAI,CAACP,EAFX;AAGE,IAAA,QAAQ,EAAEL,MAAM,KAAKY,IAAI,CAACP,EAH5B;AAIE,IAAA,WAAW,EAAED,gBAJf;AAKE,IAAA,UAAU,EAAEE,eALd;AAME,IAAA,WAAW,EAAEC,gBANf;AAOE,IAAA,MAAM,EAAEC;AAPV,kBASE,6BAAC,IAAD,eAAUI,IAAV;AAAgB,IAAA,GAAG,EAAEA,IAAI,CAACP;AAA1B,KATF,CADgB,CAAlB;AAaA,sBAAO,0CAAMK,SAAN,CAAP;AACD,CAnDD;;AAqDAd,aAAa,CAACiB,SAAd,2CAA0B;AACxBhB,EAAAA,KAAK,EAAEiB,mBAAUC,OAAV,CAAkBD,mBAAUE,KAAV,CAAgBtB,sBAAamB,SAA7B,CAAlB,CADiB;AAExBf,EAAAA,MAAM,EAAEgB,mBAAUG,IAFM;AAGxBlB,EAAAA,QAAQ,EAAEe,mBAAUI;AAHI,CAA1B;eAMetB,a","sourcesContent":["import React, {useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport Draggable from '../draggable';\nimport SetupSection from '../setup-section';\nimport CourseSection from '../course-section';\n\nconst ITEMS = {'setup-section': SetupSection, 'course-section': CourseSection};\n\nconst DraggableList = ({items, onDrop, itemType}) => {\n const [dragTo, setDragTo] = useState(null);\n const [dragFrom, setDragFrom] = useState(null);\n\n const dragStartHandler = useCallback(\n id => {\n setDragFrom(id);\n },\n [setDragFrom]\n );\n\n const dragOverHandler = useCallback(\n id => {\n if (dragTo === id) return;\n setDragTo(id);\n },\n [dragTo, setDragTo]\n );\n\n const dragLeaveHandler = useCallback(\n id => {\n setDragTo(null);\n },\n [setDragTo]\n );\n\n const dropHandler = useCallback(\n id => {\n if (onDrop && dragFrom) onDrop(dragFrom, id);\n\n setDragTo(null);\n setDragFrom(null);\n },\n [onDrop, setDragTo, setDragFrom, dragFrom]\n );\n\n const Item = ITEMS[itemType];\n const itemsView = items.map(item => (\n <Draggable\n key={item.id}\n id={item.id}\n dragging={dragTo === item.id}\n onDragStart={dragStartHandler}\n onDragOver={dragOverHandler}\n onDragLeave={dragLeaveHandler}\n onDrop={dropHandler}\n >\n <Item {...item} key={item.id} />\n </Draggable>\n ));\n return <div>{itemsView}</div>;\n};\n\nDraggableList.propTypes = {\n items: PropTypes.arrayOf(PropTypes.shape(SetupSection.propTypes)),\n onDrop: PropTypes.func,\n itemType: PropTypes.string\n};\n\nexport default DraggableList;\n"],"file":"index.js"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _default2 = _interopRequireDefault(require("../../../course-sections/test/fixtures/default"));
7
+
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+
10
+ const {
11
+ props: {
12
+ sections
13
+ }
14
+ } = _default2.default;
15
+ var _default = {
16
+ props: {
17
+ itemType: 'course-section',
18
+ items: sections,
19
+ onDrop: (dragged, dropped) => {
20
+ console.log('foo');
21
+ console.log({
22
+ dragged,
23
+ dropped
24
+ });
25
+ }
26
+ }
27
+ };
28
+ exports.default = _default;
29
+ //# sourceMappingURL=course-sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/molecule/draggable-list/test/fixtures/course-sections.js"],"names":["props","sections","courseSections","itemType","items","onDrop","dragged","dropped","console","log"],"mappings":";;;;;AAAA;;;;AAEA,MAAM;AACJA,EAAAA,KAAK,EAAE;AAACC,IAAAA;AAAD;AADH,IAEFC,iBAFJ;eAIe;AACbF,EAAAA,KAAK,EAAE;AACLG,IAAAA,QAAQ,EAAE,gBADL;AAELC,IAAAA,KAAK,EAAEH,QAFF;AAGLI,IAAAA,MAAM,EAAE,CAACC,OAAD,EAAUC,OAAV,KAAsB;AAC5BC,MAAAA,OAAO,CAACC,GAAR,CAAY,KAAZ;AACAD,MAAAA,OAAO,CAACC,GAAR,CAAY;AAACH,QAAAA,OAAD;AAAUC,QAAAA;AAAV,OAAZ;AACD;AANI;AADM,C","sourcesContent":["import courseSections from '../../../course-sections/test/fixtures/default';\n\nconst {\n props: {sections}\n} = courseSections;\n\nexport default {\n props: {\n itemType: 'course-section',\n items: sections,\n onDrop: (dragged, dropped) => {\n console.log('foo');\n console.log({dragged, dropped});\n }\n }\n};\n"],"file":"course-sections.js"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _analyticsBoutique = _interopRequireDefault(require("../../../setup-section/test/fixtures/analytics-boutique"));
7
+
8
+ var _analyticsBranch = _interopRequireDefault(require("../../../setup-section/test/fixtures/analytics-branch"));
9
+
10
+ var _analyticsRegion = _interopRequireDefault(require("../../../setup-section/test/fixtures/analytics-region"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ const {
15
+ props: boutique
16
+ } = _analyticsBoutique.default;
17
+ const {
18
+ props: branch
19
+ } = _analyticsBranch.default;
20
+ const {
21
+ props: region
22
+ } = _analyticsRegion.default;
23
+ var _default = {
24
+ props: {
25
+ itemType: 'setup-section',
26
+ items: [boutique, branch, region],
27
+ onDrop: (dragged, dropped) => {
28
+ console.log('foo');
29
+ console.log({
30
+ dragged,
31
+ dropped
32
+ });
33
+ }
34
+ }
35
+ };
36
+ exports.default = _default;
37
+ //# sourceMappingURL=dashboard-sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/molecule/draggable-list/test/fixtures/dashboard-sections.js"],"names":["props","boutique","Boutique","branch","Branch","region","Region","itemType","items","onDrop","dragged","dropped","console","log"],"mappings":";;;;;AAAA;;AACA;;AACA;;;;AAEA,MAAM;AAACA,EAAAA,KAAK,EAAEC;AAAR,IAAoBC,0BAA1B;AACA,MAAM;AAACF,EAAAA,KAAK,EAAEG;AAAR,IAAkBC,wBAAxB;AACA,MAAM;AAACJ,EAAAA,KAAK,EAAEK;AAAR,IAAkBC,wBAAxB;eAEe;AACbN,EAAAA,KAAK,EAAE;AACLO,IAAAA,QAAQ,EAAE,eADL;AAELC,IAAAA,KAAK,EAAE,CAACP,QAAD,EAAWE,MAAX,EAAmBE,MAAnB,CAFF;AAGLI,IAAAA,MAAM,EAAE,CAACC,OAAD,EAAUC,OAAV,KAAsB;AAC5BC,MAAAA,OAAO,CAACC,GAAR,CAAY,KAAZ;AACAD,MAAAA,OAAO,CAACC,GAAR,CAAY;AAACH,QAAAA,OAAD;AAAUC,QAAAA;AAAV,OAAZ;AACD;AANI;AADM,C","sourcesContent":["import Boutique from '../../../setup-section/test/fixtures/analytics-boutique';\nimport Branch from '../../../setup-section/test/fixtures/analytics-branch';\nimport Region from '../../../setup-section/test/fixtures/analytics-region';\n\nconst {props: boutique} = Boutique;\nconst {props: branch} = Branch;\nconst {props: region} = Region;\n\nexport default {\n props: {\n itemType: 'setup-section',\n items: [boutique, branch, region],\n onDrop: (dragged, dropped) => {\n console.log('foo');\n console.log({dragged, dropped});\n }\n }\n};\n"],"file":"dashboard-sections.js"}
@@ -8,6 +8,8 @@ var _renderComponent = _interopRequireDefault(require("../../../test/helpers/ren
8
8
 
9
9
  var _ = _interopRequireDefault(require(".."));
10
10
 
11
+ var _courseSections = _interopRequireDefault(require("./fixtures/course-sections"));
12
+
11
13
  var _dashboardSections = _interopRequireDefault(require("./fixtures/dashboard-sections"));
12
14
 
13
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -18,5 +20,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
18
20
  t.not(value, undefined, `PropType for "Molecule.MoleculeDraggableList.propTypes.${key}" may not be undefined. Did you mistype the propTypes definition?`);
19
21
  });
20
22
  });
23
+ (0, _ava.default)('Molecule › MoleculeDraggableList › CourseSections › should be rendered', _renderComponent.default, _.default, _courseSections.default);
21
24
  (0, _ava.default)('Molecule › MoleculeDraggableList › DashboardSections › should be rendered', _renderComponent.default, _.default, _dashboardSections.default);
22
25
  //# sourceMappingURL=fixtures.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/molecule/draggable-list/test/fixtures.js"],"names":["t","pass","MoleculeDraggableList","propTypes","value","key","not","undefined","renderComponentMacro","fixtureDashboardSections"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,kBAAK,gEAAL,EAAuEA,CAAC,IAAI;AAC1EA,EAAAA,CAAC,CAACC,IAAF;AACA,wBAAQC,UAAsBC,SAA9B,EAAyC,CAACC,KAAD,EAAQC,GAAR,KAAgB;AACvDL,IAAAA,CAAC,CAACM,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,0DAAyDF,GAAI,mEAAtF;AACD,GAFD;AAGD,CALD;AAOA,kBAAK,2EAAL,EAAkFG,wBAAlF,EAAwGN,SAAxG,EAA+HO,0BAA/H","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport MoleculeDraggableList from '..';\nimport fixtureDashboardSections from './fixtures/dashboard-sections';\n\ntest('Molecule › MoleculeDraggableList > should have valid propTypes', t => {\n t.pass();\n forEach(MoleculeDraggableList.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Molecule.MoleculeDraggableList.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Molecule › MoleculeDraggableList › DashboardSections › should be rendered', renderComponentMacro, MoleculeDraggableList, fixtureDashboardSections);\n"],"file":"fixtures.js"}
1
+ {"version":3,"sources":["../../../../src/molecule/draggable-list/test/fixtures.js"],"names":["t","pass","MoleculeDraggableList","propTypes","value","key","not","undefined","renderComponentMacro","fixtureCourseSections","fixtureDashboardSections"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,kBAAK,gEAAL,EAAuEA,CAAC,IAAI;AAC1EA,EAAAA,CAAC,CAACC,IAAF;AACA,wBAAQC,UAAsBC,SAA9B,EAAyC,CAACC,KAAD,EAAQC,GAAR,KAAgB;AACvDL,IAAAA,CAAC,CAACM,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,0DAAyDF,GAAI,mEAAtF;AACD,GAFD;AAGD,CALD;AAOA,kBAAK,wEAAL,EAA+EG,wBAA/E,EAAqGN,SAArG,EAA4HO,uBAA5H;AACA,kBAAK,2EAAL,EAAkFD,wBAAlF,EAAwGN,SAAxG,EAA+HQ,0BAA/H","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport MoleculeDraggableList from '..';\nimport fixtureCourseSections from './fixtures/course-sections';\nimport fixtureDashboardSections from './fixtures/dashboard-sections';\n\ntest('Molecule › MoleculeDraggableList > should have valid propTypes', t => {\n t.pass();\n forEach(MoleculeDraggableList.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Molecule.MoleculeDraggableList.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Molecule › MoleculeDraggableList › CourseSections › should be rendered', renderComponentMacro, MoleculeDraggableList, fixtureCourseSections);\ntest('Molecule › MoleculeDraggableList › DashboardSections › should be rendered', renderComponentMacro, MoleculeDraggableList, fixtureDashboardSections);\n"],"file":"fixtures.js"}
@@ -18,7 +18,7 @@ var _ = _interopRequireDefault(require(".."));
18
18
 
19
19
  var _style = _interopRequireDefault(require("../../draggable/style.css"));
20
20
 
21
- var _default = _interopRequireDefault(require("./fixtures/default"));
21
+ var _dashboardSections = _interopRequireDefault(require("./fixtures/dashboard-sections"));
22
22
 
23
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
24
 
@@ -30,15 +30,15 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
30
30
  });
31
31
  (0, _ava.default)('should trigger onDrop handler', t => {
32
32
  t.plan(7);
33
- const elementToDrag = _default.default.props.sections[0].id;
34
- const elementToDrop = _default.default.props.sections[2].id;
33
+ const elementToDrag = _dashboardSections.default.props.items[0].id;
34
+ const elementToDrop = _dashboardSections.default.props.items[2].id;
35
35
 
36
36
  const dropHandler = (dragged, dropped) => {
37
37
  t.is(dropped, elementToDrop);
38
38
  t.is(dragged, elementToDrag);
39
39
  };
40
40
 
41
- const wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react.default.createElement(_.default, _extends({}, _default.default.props, {
41
+ const wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react.default.createElement(_.default, _extends({}, _dashboardSections.default.props, {
42
42
  onDrop: dropHandler
43
43
  })), {
44
44
  wrappingComponent: _renderComponent.wrappingComponent
@@ -55,12 +55,12 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
55
55
  const dropEvent = {
56
56
  preventDefault: () => t.pass()
57
57
  };
58
- wrapper.find(`.${_style.default.section}`).at(0).simulate('dragStart', dragStartEvent);
59
- wrapper.find(`.${_style.default.section}`).at(0).simulate('dragOver', dragOverEvent);
60
- wrapper.find(`.${_style.default.section}`).at(0).simulate('dragOver', dragOverEvent);
61
- wrapper.find(`.${_style.default.section}`).at(0).simulate('dragLeave', dragLeaveEvent);
62
- wrapper.find(`.${_style.default.section}`).at(2).simulate('dragOver', dragOverEvent);
63
- wrapper.find(`.${_style.default.section}`).at(2).simulate('drop', dropEvent);
58
+ wrapper.find(`.${_style.default.draggable}`).at(0).simulate('dragStart', dragStartEvent);
59
+ wrapper.find(`.${_style.default.draggable}`).at(0).simulate('dragOver', dragOverEvent);
60
+ wrapper.find(`.${_style.default.draggable}`).at(0).simulate('dragOver', dragOverEvent);
61
+ wrapper.find(`.${_style.default.draggable}`).at(0).simulate('dragLeave', dragLeaveEvent);
62
+ wrapper.find(`.${_style.default.draggable}`).at(2).simulate('dragOver', dragOverEvent);
63
+ wrapper.find(`.${_style.default.draggable}`).at(2).simulate('drop', dropEvent);
64
64
  });
65
65
  (0, _ava.default)('should skip drop event if dragStart is not called', t => {
66
66
  t.plan(1);
@@ -69,7 +69,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
69
69
  t.fail();
70
70
  };
71
71
 
72
- const wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react.default.createElement(_.default, _extends({}, _default.default.props, {
72
+ const wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react.default.createElement(_.default, _extends({}, _dashboardSections.default.props, {
73
73
  onDrop: dropHandler
74
74
  })), {
75
75
  wrappingComponent: _renderComponent.wrappingComponent
@@ -77,7 +77,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
77
77
  const dropEvent = {
78
78
  preventDefault: () => t.pass()
79
79
  };
80
- wrapper.find(`.${_style.default.section}`).at(2).simulate('drop', dropEvent);
80
+ wrapper.find(`.${_style.default.draggable}`).at(2).simulate('drop', dropEvent);
81
81
  });
82
82
  (0, _ava.default)('should skip dragStart event if section id is not defined', t => {
83
83
  t.plan(0);
@@ -86,7 +86,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
86
86
  t.fail();
87
87
  };
88
88
 
89
- const wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react.default.createElement(_.default, _extends({}, (0, _set2.default)('sections.0.id', '', _default.default.props), {
89
+ const wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react.default.createElement(_.default, _extends({}, (0, _set2.default)('items.0.id', '', _dashboardSections.default.props), {
90
90
  onDrop: dropHandler
91
91
  })), {
92
92
  wrappingComponent: _renderComponent.wrappingComponent
@@ -103,11 +103,11 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
103
103
  const dropEvent = {
104
104
  preventDefault: () => {}
105
105
  };
106
- wrapper.find(`.${_style.default.section}`).at(0).simulate('dragStart', dragStartEvent);
107
- wrapper.find(`.${_style.default.section}`).at(0).simulate('dragOver', dragOverEvent);
108
- wrapper.find(`.${_style.default.section}`).at(0).simulate('dragOver', dragOverEvent);
109
- wrapper.find(`.${_style.default.section}`).at(0).simulate('dragLeave', dragLeaveEvent);
110
- wrapper.find(`.${_style.default.section}`).at(2).simulate('dragOver', dragOverEvent);
111
- wrapper.find(`.${_style.default.section}`).at(2).simulate('drop', dropEvent);
106
+ wrapper.find(`.${_style.default.draggable}`).at(0).simulate('dragStart', dragStartEvent);
107
+ wrapper.find(`.${_style.default.draggable}`).at(0).simulate('dragOver', dragOverEvent);
108
+ wrapper.find(`.${_style.default.draggable}`).at(0).simulate('dragOver', dragOverEvent);
109
+ wrapper.find(`.${_style.default.draggable}`).at(0).simulate('dragLeave', dragLeaveEvent);
110
+ wrapper.find(`.${_style.default.draggable}`).at(2).simulate('dragOver', dragOverEvent);
111
+ wrapper.find(`.${_style.default.draggable}`).at(2).simulate('drop', dropEvent);
112
112
  });
113
113
  //# sourceMappingURL=on-drop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/molecule/draggable-list/test/on-drop.js"],"names":["adapter","Adapter","t","plan","elementToDrag","fixtures","props","items","id","elementToDrop","dropHandler","dragged","dropped","is","wrapper","wrappingComponent","dragStartEvent","preventDefault","pass","dragOverEvent","dragLeaveEvent","dropEvent","find","style","draggable","at","simulate","fail"],"mappings":"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","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {mount, configure} from 'enzyme';\nimport {set} from 'lodash/fp';\nimport Adapter from 'enzyme-adapter-react-16';\nimport {wrappingComponent} from '../../../test/helpers/render-component';\nimport SetupSections from '..';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from '../../draggable/style.css';\nimport fixtures from './fixtures/dashboard-sections';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\n\ntest('should trigger onDrop handler', t => {\n t.plan(7);\n\n const elementToDrag = fixtures.props.items[0].id;\n const elementToDrop = fixtures.props.items[2].id;\n\n const dropHandler = (dragged, dropped) => {\n t.is(dropped, elementToDrop);\n t.is(dragged, elementToDrag);\n };\n\n const wrapper = mount(<SetupSections {...fixtures.props} onDrop={dropHandler} />, {\n wrappingComponent\n });\n\n const dragStartEvent = {preventDefault: () => t.pass()};\n const dragOverEvent = {preventDefault: () => t.pass()};\n const dragLeaveEvent = {preventDefault: () => t.pass()};\n const dropEvent = {preventDefault: () => t.pass()};\n\n wrapper.find(`.${style.draggable}`).at(0).simulate('dragStart', dragStartEvent);\n wrapper.find(`.${style.draggable}`).at(0).simulate('dragOver', dragOverEvent);\n wrapper.find(`.${style.draggable}`).at(0).simulate('dragOver', dragOverEvent);\n wrapper.find(`.${style.draggable}`).at(0).simulate('dragLeave', dragLeaveEvent);\n wrapper.find(`.${style.draggable}`).at(2).simulate('dragOver', dragOverEvent);\n wrapper.find(`.${style.draggable}`).at(2).simulate('drop', dropEvent);\n});\n\ntest('should skip drop event if dragStart is not called', t => {\n t.plan(1);\n\n const dropHandler = (dragged, dropped) => {\n t.fail();\n };\n\n const wrapper = mount(<SetupSections {...fixtures.props} onDrop={dropHandler} />, {\n wrappingComponent\n });\n\n const dropEvent = {preventDefault: () => t.pass()};\n wrapper.find(`.${style.draggable}`).at(2).simulate('drop', dropEvent);\n});\n\ntest('should skip dragStart event if section id is not defined', t => {\n t.plan(0);\n\n const dropHandler = (dragged, dropped) => {\n t.fail();\n };\n\n const wrapper = mount(\n <SetupSections {...set('items.0.id', '', fixtures.props)} onDrop={dropHandler} />,\n {\n wrappingComponent\n }\n );\n\n const dragStartEvent = {preventDefault: () => {}};\n const dragOverEvent = {preventDefault: () => {}};\n const dragLeaveEvent = {preventDefault: () => {}};\n const dropEvent = {preventDefault: () => {}};\n\n wrapper.find(`.${style.draggable}`).at(0).simulate('dragStart', dragStartEvent);\n wrapper.find(`.${style.draggable}`).at(0).simulate('dragOver', dragOverEvent);\n wrapper.find(`.${style.draggable}`).at(0).simulate('dragOver', dragOverEvent);\n wrapper.find(`.${style.draggable}`).at(0).simulate('dragLeave', dragLeaveEvent);\n wrapper.find(`.${style.draggable}`).at(2).simulate('dragOver', dragOverEvent);\n wrapper.find(`.${style.draggable}`).at(2).simulate('drop', dropEvent);\n});\n"],"file":"on-drop.js"}
@@ -3,59 +3,79 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
5
 
6
- var _maxBy2 = _interopRequireDefault(require("lodash/fp/maxBy"));
7
-
8
- var _getOr2 = _interopRequireDefault(require("lodash/fp/getOr"));
9
-
10
- var _react = _interopRequireDefault(require("react"));
6
+ var _react = _interopRequireWildcard(require("react"));
11
7
 
12
8
  var _classnames = _interopRequireDefault(require("classnames"));
13
9
 
14
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
11
 
12
+ var _getOr = _interopRequireDefault(require("lodash/fp/getOr"));
13
+
14
+ var _maxBy = _interopRequireDefault(require("lodash/fp/maxBy"));
15
+
16
16
  var _provider = _interopRequireDefault(require("../../../atom/provider"));
17
17
 
18
18
  var _style = require("../../../atom/label/style.css");
19
19
 
20
+ var _getShadowBoxColorFromPrimary = require("../../../util/get-shadow-box-color-from-primary");
21
+
20
22
  var _style2 = _interopRequireDefault(require("./style.css"));
21
23
 
22
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
25
 
26
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
27
+
28
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ 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); }
31
+
24
32
  const QCM = (props, context) => {
25
33
  const {
26
34
  answers
27
35
  } = props;
28
- const longestAnswer = (0, _maxBy2.default)(({
36
+ const longestAnswer = (0, _maxBy.default)(({
29
37
  title
30
38
  }) => title.length, answers);
31
- const answersViews = answers.map((answer, key) => {
39
+ const {
40
+ skin
41
+ } = context;
42
+ const primarySkinColor = (0, _getOr.default)('#00B0FF', 'common.primary', skin);
43
+ const answersViews = (0, _react.useMemo)(() => answers.map((answer, key) => {
32
44
  const {
33
45
  onClick,
34
46
  title,
35
- selected
47
+ selected,
48
+ 'aria-label': ariaLabel
36
49
  } = answer;
37
- const {
38
- skin
39
- } = context;
40
- const primarySkinColor = (0, _getOr2.default)('#00B0FF', 'common.primary', skin);
41
- const selectedStyle = selected ? {
42
- backgroundColor: primarySkinColor,
43
- borderColor: primarySkinColor
44
- } : null;
45
- const className = (0, _classnames.default)(longestAnswer === answer ? _style2.default.longestAnswer : _style2.default.answer, selected ? _style2.default.selectedAnswer : _style2.default.unselectedAnswer);
50
+ const longAnswerClass = longestAnswer.title === title ? _style2.default.longestAnswer : _style2.default.answer;
51
+ const selectedAnswerClass = selected ? _style2.default.selectedAnswer : _style2.default.unselectedAnswer;
46
52
  return /*#__PURE__*/_react.default.createElement("div", {
47
53
  "data-name": "answer",
48
- className: (0, _classnames.default)(className, _style.innerHTML),
54
+ "aria-label": ariaLabel || title,
55
+ className: (0, _classnames.default)(longAnswerClass, _style.innerHTML, selectedAnswerClass),
49
56
  onClick: onClick,
50
- style: selectedStyle,
57
+ style: _extends({}, selected && {
58
+ boxShadow: `0 4px 16px ${(0, _getShadowBoxColorFromPrimary.getShadowBoxColorFromPrimary)(primarySkinColor)}`
59
+ }),
51
60
  "data-selected": selected,
52
- key: key // eslint-disable-next-line react/no-danger
61
+ key: key
62
+ }, /*#__PURE__*/_react.default.createElement("div", {
63
+ "data-name": "answer-background",
64
+ style: {
65
+ backgroundColor: selected ? primarySkinColor : '#F4F4F5'
66
+ /* cm_grey_75 */
67
+
68
+ },
69
+ className: _style2.default.background
70
+ }), /*#__PURE__*/_react.default.createElement("span", {
71
+ "data-name": "answer-label",
72
+ className: _style2.default.answerText // eslint-disable-next-line react/no-danger
53
73
  ,
54
74
  dangerouslySetInnerHTML: {
55
75
  __html: title
56
76
  }
57
- });
58
- });
77
+ }));
78
+ }), [answers, longestAnswer, primarySkinColor]);
59
79
  return /*#__PURE__*/_react.default.createElement("div", {
60
80
  "data-name": "qcm",
61
81
  className: _style2.default.wrapper
@@ -69,7 +89,8 @@ QCM.propTypes = process.env.NODE_ENV !== "production" ? {
69
89
  answers: _propTypes.default.arrayOf(_propTypes.default.shape({
70
90
  title: _propTypes.default.string,
71
91
  selected: _propTypes.default.bool,
72
- onClick: _propTypes.default.func
92
+ onClick: _propTypes.default.func,
93
+ 'aria-label': _propTypes.default.string
73
94
  }))
74
95
  } : {};
75
96
  var _default = QCM;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/molecule/questions/qcm/index.js"],"names":["QCM","props","context","answers","longestAnswer","title","length","answersViews","map","answer","key","onClick","selected","skin","primarySkinColor","selectedStyle","backgroundColor","borderColor","className","style","selectedAnswer","unselectedAnswer","innerHTML","__html","wrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","arrayOf","shape","string","bool","func"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;AAEA,MAAMA,GAAG,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;AAC9B,QAAM;AAACC,IAAAA;AAAD,MAAYF,KAAlB;AACA,QAAMG,aAAa,GAAG,qBAAM,CAAC;AAACC,IAAAA;AAAD,GAAD,KAAaA,KAAK,CAACC,MAAzB,EAAiCH,OAAjC,CAAtB;AAEA,QAAMI,YAAY,GAAGJ,OAAO,CAACK,GAAR,CAAY,CAACC,MAAD,EAASC,GAAT,KAAiB;AAChD,UAAM;AAACC,MAAAA,OAAD;AAAUN,MAAAA,KAAV;AAAiBO,MAAAA;AAAjB,QAA6BH,MAAnC;AACA,UAAM;AAACI,MAAAA;AAAD,QAASX,OAAf;AAEA,UAAMY,gBAAgB,GAAG,qBAAM,SAAN,EAAiB,gBAAjB,EAAmCD,IAAnC,CAAzB;AACA,UAAME,aAAa,GAAGH,QAAQ,GAC1B;AAACI,MAAAA,eAAe,EAAEF,gBAAlB;AAAoCG,MAAAA,WAAW,EAAEH;AAAjD,KAD0B,GAE1B,IAFJ;AAIA,UAAMI,SAAS,GAAG,yBAChBd,aAAa,KAAKK,MAAlB,GAA2BU,gBAAMf,aAAjC,GAAiDe,gBAAMV,MADvC,EAEhBG,QAAQ,GAAGO,gBAAMC,cAAT,GAA0BD,gBAAME,gBAFxB,CAAlB;AAKA,wBACE;AACE,mBAAU,QADZ;AAEE,MAAA,SAAS,EAAE,yBAAWH,SAAX,EAAsBI,gBAAtB,CAFb;AAGE,MAAA,OAAO,EAAEX,OAHX;AAIE,MAAA,KAAK,EAAEI,aAJT;AAKE,uBAAeH,QALjB;AAME,MAAA,GAAG,EAAEF,GANP,CAOE;AAPF;AAQE,MAAA,uBAAuB,EAAE;AAACa,QAAAA,MAAM,EAAElB;AAAT;AAR3B,MADF;AAYD,GA1BoB,CAArB;AA4BA,sBACE;AAAK,iBAAU,KAAf;AAAqB,IAAA,SAAS,EAAEc,gBAAMK;AAAtC,KACGjB,YADH,CADF;AAKD,CArCD;;AAuCAP,GAAG,CAACyB,YAAJ,GAAmB;AACjBZ,EAAAA,IAAI,EAAEa,kBAASC,iBAAT,CAA2Bd;AADhB,CAAnB;AAIAb,GAAG,CAAC4B,SAAJ,2CAAgB;AACdzB,EAAAA,OAAO,EAAE0B,mBAAUC,OAAV,CACPD,mBAAUE,KAAV,CAAgB;AACd1B,IAAAA,KAAK,EAAEwB,mBAAUG,MADH;AAEdpB,IAAAA,QAAQ,EAAEiB,mBAAUI,IAFN;AAGdtB,IAAAA,OAAO,EAAEkB,mBAAUK;AAHL,GAAhB,CADO;AADK,CAAhB;eAUelC,G","sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport {getOr, maxBy} from 'lodash/fp';\nimport Provider from '../../../atom/provider';\nimport {innerHTML} from '../../../atom/label/style.css';\nimport style from './style.css';\n\nconst QCM = (props, context) => {\n const {answers} = props;\n const longestAnswer = maxBy(({title}) => title.length, answers);\n\n const answersViews = answers.map((answer, key) => {\n const {onClick, title, selected} = answer;\n const {skin} = context;\n\n const primarySkinColor = getOr('#00B0FF', 'common.primary', skin);\n const selectedStyle = selected\n ? {backgroundColor: primarySkinColor, borderColor: primarySkinColor}\n : null;\n\n const className = classnames(\n longestAnswer === answer ? style.longestAnswer : style.answer,\n selected ? style.selectedAnswer : style.unselectedAnswer\n );\n\n return (\n <div\n data-name=\"answer\"\n className={classnames(className, innerHTML)}\n onClick={onClick}\n style={selectedStyle}\n data-selected={selected}\n key={key}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n );\n });\n\n return (\n <div data-name=\"qcm\" className={style.wrapper}>\n {answersViews}\n </div>\n );\n};\n\nQCM.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nQCM.propTypes = {\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n selected: PropTypes.bool,\n onClick: PropTypes.func\n })\n )\n};\n\nexport default QCM;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/molecule/questions/qcm/index.js"],"names":["QCM","props","context","answers","longestAnswer","title","length","skin","primarySkinColor","answersViews","map","answer","key","onClick","selected","ariaLabel","longAnswerClass","style","selectedAnswerClass","selectedAnswer","unselectedAnswer","innerHTML","boxShadow","backgroundColor","background","answerText","__html","wrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","arrayOf","shape","string","bool","func"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,GAAG,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;AAC9B,QAAM;AAACC,IAAAA;AAAD,MAAYF,KAAlB;AACA,QAAMG,aAAa,GAAG,oBAAM,CAAC;AAACC,IAAAA;AAAD,GAAD,KAAaA,KAAK,CAACC,MAAzB,EAAiCH,OAAjC,CAAtB;AACA,QAAM;AAACI,IAAAA;AAAD,MAASL,OAAf;AACA,QAAMM,gBAAgB,GAAG,oBAAM,SAAN,EAAiB,gBAAjB,EAAmCD,IAAnC,CAAzB;AAEA,QAAME,YAAY,GAAG,oBACnB,MACEN,OAAO,CAACO,GAAR,CAAY,CAACC,MAAD,EAASC,GAAT,KAAiB;AAC3B,UAAM;AAACC,MAAAA,OAAD;AAAUR,MAAAA,KAAV;AAAiBS,MAAAA,QAAjB;AAA2B,oBAAcC;AAAzC,QAAsDJ,MAA5D;AACA,UAAMK,eAAe,GAAGZ,aAAa,CAACC,KAAd,KAAwBA,KAAxB,GAAgCY,gBAAMb,aAAtC,GAAsDa,gBAAMN,MAApF;AACA,UAAMO,mBAAmB,GAAGJ,QAAQ,GAAGG,gBAAME,cAAT,GAA0BF,gBAAMG,gBAApE;AAEA,wBACE;AACE,mBAAU,QADZ;AAEE,oBAAYL,SAAS,IAAIV,KAF3B;AAGE,MAAA,SAAS,EAAE,yBAAWW,eAAX,EAA4BK,gBAA5B,EAAuCH,mBAAvC,CAHb;AAIE,MAAA,OAAO,EAAEL,OAJX;AAKE,MAAA,KAAK,eACCC,QAAQ,IAAI;AACdQ,QAAAA,SAAS,EAAG,cAAa,gEAA6Bd,gBAA7B,CAA+C;AAD1D,OADb,CALP;AAUE,uBAAeM,QAVjB;AAWE,MAAA,GAAG,EAAEF;AAXP,oBAaE;AACE,mBAAU,mBADZ;AAEE,MAAA,KAAK,EAAE;AAACW,QAAAA,eAAe,EAAET,QAAQ,GAAGN,gBAAH,GAAsB;AAAU;;AAA1D,OAFT;AAGE,MAAA,SAAS,EAAES,gBAAMO;AAHnB,MAbF,eAkBE;AACE,mBAAU,cADZ;AAEE,MAAA,SAAS,EAAEP,gBAAMQ,UAFnB,CAGE;AAHF;AAIE,MAAA,uBAAuB,EAAE;AAACC,QAAAA,MAAM,EAAErB;AAAT;AAJ3B,MAlBF,CADF;AA2BD,GAhCD,CAFiB,EAmCnB,CAACF,OAAD,EAAUC,aAAV,EAAyBI,gBAAzB,CAnCmB,CAArB;AAsCA,sBACE;AAAK,iBAAU,KAAf;AAAqB,IAAA,SAAS,EAAES,gBAAMU;AAAtC,KACGlB,YADH,CADF;AAKD,CAjDD;;AAmDAT,GAAG,CAAC4B,YAAJ,GAAmB;AACjBrB,EAAAA,IAAI,EAAEsB,kBAASC,iBAAT,CAA2BvB;AADhB,CAAnB;AAIAP,GAAG,CAAC+B,SAAJ,2CAAgB;AACd5B,EAAAA,OAAO,EAAE6B,mBAAUC,OAAV,CACPD,mBAAUE,KAAV,CAAgB;AACd7B,IAAAA,KAAK,EAAE2B,mBAAUG,MADH;AAEdrB,IAAAA,QAAQ,EAAEkB,mBAAUI,IAFN;AAGdvB,IAAAA,OAAO,EAAEmB,mBAAUK,IAHL;AAId,kBAAcL,mBAAUG;AAJV,GAAhB,CADO;AADK,CAAhB;eAWenC,G","sourcesContent":["import React, {useMemo} from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport getOr from 'lodash/fp/getOr';\nimport maxBy from 'lodash/fp/maxBy';\nimport Provider from '../../../atom/provider';\nimport {innerHTML} from '../../../atom/label/style.css';\nimport {getShadowBoxColorFromPrimary} from '../../../util/get-shadow-box-color-from-primary';\nimport style from './style.css';\n\nconst QCM = (props, context) => {\n const {answers} = props;\n const longestAnswer = maxBy(({title}) => title.length, answers);\n const {skin} = context;\n const primarySkinColor = getOr('#00B0FF', 'common.primary', skin);\n\n const answersViews = useMemo(\n () =>\n answers.map((answer, key) => {\n const {onClick, title, selected, 'aria-label': ariaLabel} = answer;\n const longAnswerClass = longestAnswer.title === title ? style.longestAnswer : style.answer;\n const selectedAnswerClass = selected ? style.selectedAnswer : style.unselectedAnswer;\n\n return (\n <div\n data-name=\"answer\"\n aria-label={ariaLabel || title}\n className={classnames(longAnswerClass, innerHTML, selectedAnswerClass)}\n onClick={onClick}\n style={{\n ...(selected && {\n boxShadow: `0 4px 16px ${getShadowBoxColorFromPrimary(primarySkinColor)}`\n })\n }}\n data-selected={selected}\n key={key}\n >\n <div\n data-name=\"answer-background\"\n style={{backgroundColor: selected ? primarySkinColor : '#F4F4F5' /* cm_grey_75 */}}\n className={style.background}\n />\n <span\n data-name=\"answer-label\"\n className={style.answerText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n </div>\n );\n }),\n [answers, longestAnswer, primarySkinColor]\n );\n\n return (\n <div data-name=\"qcm\" className={style.wrapper}>\n {answersViews}\n </div>\n );\n};\n\nQCM.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nQCM.propTypes = {\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n selected: PropTypes.bool,\n onClick: PropTypes.func,\n 'aria-label': PropTypes.string\n })\n )\n};\n\nexport default QCM;\n"],"file":"index.js"}
@@ -3,7 +3,8 @@
3
3
  @value colors: "../../../variables/colors.css";
4
4
  @value white from colors;
5
5
  @value black from colors;
6
- @value light from colors;
6
+ @value box_shadow_light_dark from colors;
7
+ @value cm_blue_900 from colors;
7
8
 
8
9
  .wrapper {
9
10
  text-align: center;
@@ -18,14 +19,15 @@
18
19
  font-size: 15px;
19
20
  font-weight: 600;
20
21
  background-color: white;
21
- border: 1px solid color(black lightness(85%));
22
- border-radius: 3px;
22
+ border-radius: 8px;
23
23
  box-sizing: border-box;
24
24
  margin-bottom: 8px;
25
25
  cursor: pointer;
26
26
  padding: 11px 24px;
27
27
  line-height: 24px;
28
28
  white-space: normal;
29
+ overflow: hidden;
30
+ transition: all 0.25s linear;
29
31
  }
30
32
 
31
33
  .longestAnswer {
@@ -33,20 +35,56 @@
33
35
  width: auto;
34
36
  }
35
37
 
36
- .answer:last-child {
37
- margin-bottom: 0;
38
+
39
+ .background {
40
+ position: absolute;
41
+ width: 100%;
42
+ height: 100%;
43
+ top: 0;
44
+ left: 0;
45
+ transition: opacity 0.25s linear, background-color 0.25s linear;
46
+ }
47
+
48
+ .answerText {
49
+ position: relative;
50
+ color: cm_blue_900;
51
+ }
52
+
53
+ .selectedAnswer .answerText {
54
+ color: white;
55
+ }
56
+
57
+ .selectedAnswer:hover .background{
58
+ opacity: 0.8;
59
+ }
60
+
61
+ .selectedAnswer.answer:hover {
62
+ background-color: black;
38
63
  }
39
64
 
40
- .answer:hover {
41
- background-color: light;
65
+ .selectedAnswer .background{
66
+ opacity: 1;
42
67
  }
43
68
 
69
+ .selectedAnswer,
44
70
  .unselectedAnswer {
45
- color: black;
71
+ position: relative;
46
72
  }
47
73
 
48
- .selectedAnswer {
49
- color: white;
74
+ .unselectedAnswer {
75
+ box-shadow: 0px 4px 16px box_shadow_light_dark;
76
+ }
77
+
78
+ .unselectedAnswer .background {
79
+ opacity: 0;
80
+ }
81
+
82
+ .unselectedAnswer:hover .background{
83
+ opacity: 1;
84
+ }
85
+
86
+ .answer:last-child {
87
+ margin-bottom: 0;
50
88
  }
51
89
 
52
90
  @media mobile {
@@ -59,10 +97,6 @@
59
97
  width: 100%;
60
98
  }
61
99
 
62
- .answer:hover {
63
- background-color: white;
64
- }
65
-
66
100
  .answer {
67
101
  padding: 8px 24px;
68
102
  }