@coorpacademy/components 10.5.7-alpha.16 → 10.5.7-alpha.16.12

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 (69) hide show
  1. package/es/atom/select/index.js +3 -2
  2. package/es/atom/select/index.js.map +1 -1
  3. package/es/atom/select/style.css +38 -0
  4. package/es/molecule/card/customer.js +6 -3
  5. package/es/molecule/card/customer.js.map +1 -1
  6. package/es/molecule/card/favorite.js +13 -4
  7. package/es/molecule/card/favorite.js.map +1 -1
  8. package/es/molecule/card/index.js +41 -12
  9. package/es/molecule/card/index.js.map +1 -1
  10. package/es/molecule/card/selectable.js +11 -4
  11. package/es/molecule/card/selectable.js.map +1 -1
  12. package/es/molecule/card/test/fixtures/default.js +20 -1
  13. package/es/molecule/card/test/fixtures/default.js.map +1 -1
  14. package/es/molecule/card-content/index.js +20 -7
  15. package/es/molecule/card-content/index.js.map +1 -1
  16. package/es/molecule/card-content/test/fixtures/card-no-progress-bar.js +6 -1
  17. package/es/molecule/card-content/test/fixtures/card-no-progress-bar.js.map +1 -1
  18. package/es/molecule/questions/qcm/style.css +4 -0
  19. package/es/molecule/questions/qcm-drag/index.js +53 -21
  20. package/es/molecule/questions/qcm-drag/index.js.map +1 -1
  21. package/es/molecule/questions/qcm-drag/style.css +72 -22
  22. package/es/molecule/questions/qcm-graphic/index.js +1 -0
  23. package/es/molecule/questions/qcm-graphic/index.js.map +1 -1
  24. package/es/molecule/questions/qcm-graphic/style.css +12 -2
  25. package/es/molecule/questions/qcm-graphic/test/fixtures/default.js +1 -1
  26. package/es/molecule/questions/qcm-graphic/test/fixtures/default.js.map +1 -1
  27. package/es/molecule/questions/qcm-graphic/test/fixtures/no-selected.js +1 -1
  28. package/es/molecule/questions/qcm-graphic/test/fixtures/no-selected.js.map +1 -1
  29. package/es/molecule/questions/qcm-graphic/test/qcm-graphic.js +1 -1
  30. package/es/molecule/questions/qcm-graphic/test/qcm-graphic.js.map +1 -1
  31. package/es/molecule/questions/template/index.js +2 -1
  32. package/es/molecule/questions/template/index.js.map +1 -1
  33. package/es/molecule/questions/template/style.css +6 -0
  34. package/es/variables/colors.css +2 -0
  35. package/lib/atom/select/index.js +3 -2
  36. package/lib/atom/select/index.js.map +1 -1
  37. package/lib/atom/select/style.css +38 -0
  38. package/lib/molecule/card/customer.js +6 -3
  39. package/lib/molecule/card/customer.js.map +1 -1
  40. package/lib/molecule/card/favorite.js +13 -4
  41. package/lib/molecule/card/favorite.js.map +1 -1
  42. package/lib/molecule/card/index.js +41 -12
  43. package/lib/molecule/card/index.js.map +1 -1
  44. package/lib/molecule/card/selectable.js +11 -4
  45. package/lib/molecule/card/selectable.js.map +1 -1
  46. package/lib/molecule/card/test/fixtures/default.js +20 -1
  47. package/lib/molecule/card/test/fixtures/default.js.map +1 -1
  48. package/lib/molecule/card-content/index.js +21 -7
  49. package/lib/molecule/card-content/index.js.map +1 -1
  50. package/lib/molecule/card-content/test/fixtures/card-no-progress-bar.js +6 -1
  51. package/lib/molecule/card-content/test/fixtures/card-no-progress-bar.js.map +1 -1
  52. package/lib/molecule/questions/qcm/style.css +4 -0
  53. package/lib/molecule/questions/qcm-drag/index.js +53 -21
  54. package/lib/molecule/questions/qcm-drag/index.js.map +1 -1
  55. package/lib/molecule/questions/qcm-drag/style.css +72 -22
  56. package/lib/molecule/questions/qcm-graphic/index.js +1 -0
  57. package/lib/molecule/questions/qcm-graphic/index.js.map +1 -1
  58. package/lib/molecule/questions/qcm-graphic/style.css +12 -2
  59. package/lib/molecule/questions/qcm-graphic/test/fixtures/default.js +1 -1
  60. package/lib/molecule/questions/qcm-graphic/test/fixtures/default.js.map +1 -1
  61. package/lib/molecule/questions/qcm-graphic/test/fixtures/no-selected.js +1 -1
  62. package/lib/molecule/questions/qcm-graphic/test/fixtures/no-selected.js.map +1 -1
  63. package/lib/molecule/questions/qcm-graphic/test/qcm-graphic.js +1 -1
  64. package/lib/molecule/questions/qcm-graphic/test/qcm-graphic.js.map +1 -1
  65. package/lib/molecule/questions/template/index.js +2 -1
  66. package/lib/molecule/questions/template/index.js.map +1 -1
  67. package/lib/molecule/questions/template/style.css +6 -0
  68. package/lib/variables/colors.css +2 -0
  69. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/molecule/questions/qcm-graphic/test/fixtures/no-selected.js"],"names":["props","answers","title","onClick","selected","image"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,CACP;AACEC,MAAAA,KAAK,EAAE,iCADT;AAEEC,MAAAA,OAAO,EAAE,MAAM,CAAE,CAFnB;AAGEC,MAAAA,QAAQ,EAAE,KAHZ;AAIEC,MAAAA,KAAK,EACH;AALJ,KADO,EAQP;AACEH,MAAAA,KAAK,EAAE,aADT;AAEEC,MAAAA,OAAO,EAAE,MAAM,CAAE,CAFnB;AAGEC,MAAAA,QAAQ,EAAE,KAHZ;AAIEC,MAAAA,KAAK,EACH;AALJ,KARO,EAeP;AACEH,MAAAA,KAAK,EAAE,OADT;AAEEC,MAAAA,OAAO,EAAE,MAAM,CAAE,CAFnB;AAGEC,MAAAA,QAAQ,EAAE,KAHZ;AAIEC,MAAAA,KAAK,EACH;AALJ,KAfO,EAsBP;AACEH,MAAAA,KAAK,EAAE,6BADT;AAEEC,MAAAA,OAAO,EAAE,MAAM,CAAE,CAFnB;AAGEC,MAAAA,QAAQ,EAAE,KAHZ;AAIEC,MAAAA,KAAK,EACH;AALJ,KAtBO;AADJ;AADM,CAAf","sourcesContent":["export default {\n props: {\n answers: [\n {\n title: 'There is no need for a password',\n onClick: () => {},\n selected: false,\n image:\n 'https://images.unsplash.com/photo-1467890947394-8171244e5410?dpr=2&auto=format&fit=crop&w=1080&h=720&q=80&cs=tinysrgb&crop=&bg='\n },\n {\n title: 'Lorem ipsum',\n onClick: () => {},\n selected: false,\n image:\n 'https://images.unsplash.com/photo-1494477920939-88c59ba76428?dpr=2&auto=format&fit=crop&w=1080&h=607&q=80&cs=tinysrgb&crop=&bg='\n },\n {\n title: 'Lorem',\n onClick: () => {},\n selected: false,\n image:\n 'https://images.unsplash.com/photo-1494416952682-200c9e760aac?dpr=2&auto=format&fit=crop&w=1080&h=607&q=80&cs=tinysrgb&crop=&bg='\n },\n {\n title: 'You need to have a password',\n onClick: () => {},\n selected: false,\n image:\n 'https://images.unsplash.com/photo-1493442043090-087540b34c1a?dpr=2&auto=format&fit=crop&w=1080&h=607&q=80&cs=tinysrgb&crop=&bg='\n }\n ]\n }\n};\n"],"file":"no-selected.js"}
1
+ {"version":3,"sources":["../../../../../../src/molecule/questions/qcm-graphic/test/fixtures/no-selected.js"],"names":["props","answers","title","onClick","selected","image"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,CACP;AACEC,MAAAA,KAAK,EAAE,iCADT;AAEEC,MAAAA,OAAO,EAAE,MAAM,CAAE,CAFnB;AAGEC,MAAAA,QAAQ,EAAE,KAHZ;AAIEC,MAAAA,KAAK,EACH;AALJ,KADO,EAQP;AACEH,MAAAA,KAAK,EACH,6PAFJ;AAGEC,MAAAA,OAAO,EAAE,MAAM,CAAE,CAHnB;AAIEC,MAAAA,QAAQ,EAAE,KAJZ;AAKEC,MAAAA,KAAK,EACH;AANJ,KARO,EAgBP;AACEH,MAAAA,KAAK,EAAE,OADT;AAEEC,MAAAA,OAAO,EAAE,MAAM,CAAE,CAFnB;AAGEC,MAAAA,QAAQ,EAAE,KAHZ;AAIEC,MAAAA,KAAK,EACH;AALJ,KAhBO,EAuBP;AACEH,MAAAA,KAAK,EAAE,6BADT;AAEEC,MAAAA,OAAO,EAAE,MAAM,CAAE,CAFnB;AAGEC,MAAAA,QAAQ,EAAE,KAHZ;AAIEC,MAAAA,KAAK,EACH;AALJ,KAvBO;AADJ;AADM,CAAf","sourcesContent":["export default {\n props: {\n answers: [\n {\n title: 'There is no need for a password',\n onClick: () => {},\n selected: false,\n image:\n 'https://images.unsplash.com/photo-1467890947394-8171244e5410?dpr=2&auto=format&fit=crop&w=1080&h=720&q=80&cs=tinysrgb&crop=&bg='\n },\n {\n title:\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua tempor incididunt ut labore et dolore tempor incididunt ut labore et dolore magna aliqua tempor incididunt ut labore et dolore.',\n onClick: () => {},\n selected: false,\n image:\n 'https://images.unsplash.com/photo-1494477920939-88c59ba76428?dpr=2&auto=format&fit=crop&w=1080&h=607&q=80&cs=tinysrgb&crop=&bg='\n },\n {\n title: 'Lorem',\n onClick: () => {},\n selected: false,\n image:\n 'https://images.unsplash.com/photo-1494416952682-200c9e760aac?dpr=2&auto=format&fit=crop&w=1080&h=607&q=80&cs=tinysrgb&crop=&bg='\n },\n {\n title: 'You need to have a password',\n onClick: () => {},\n selected: false,\n image:\n 'https://images.unsplash.com/photo-1493442043090-087540b34c1a?dpr=2&auto=format&fit=crop&w=1080&h=607&q=80&cs=tinysrgb&crop=&bg='\n }\n ]\n }\n};\n"],"file":"no-selected.js"}
@@ -28,7 +28,7 @@ test('onClick should be reachable, should match given aria-label', t => {
28
28
  });
29
29
  const answersImages = wrapper.find('[data-name="answerImage"]');
30
30
  t.true(answersImages.at(1).exists());
31
- t.is(answersImages.at(1).props()['aria-label'], 'Lorem ipsum');
31
+ t.is(answersImages.at(1).props()['aria-label'], 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sut labore et dolore magna aliqua.');
32
32
  const answers = wrapper.find('[data-name="answerGraphic"]');
33
33
  answers.at(1).simulate('click');
34
34
  t.true(answerWasClicked);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/molecule/questions/qcm-graphic/test/qcm-graphic.js"],"names":["browserEnv","test","React","shallow","configure","Adapter","QCMImage","defaultFixture","adapter","translate","t","answerWasClicked","props","answers","onClick","wrapper","context","answersImages","find","true","at","exists","is","simulate","pass","firstAnswer","deepEqual","style","unselectedBackgroundAnswer","children","backgroundColor","firstAnswerText","thirdAnswer","boxShadow","selectedBackgroundAnswer"],"mappings":"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","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {shallow, configure} from 'enzyme';\nimport {identity} from 'lodash/fp';\nimport Adapter from 'enzyme-adapter-react-16';\nimport QCMImage from '..';\nimport defaultFixture from './fixtures/default';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\nconst translate = identity;\n\ntest('onClick should be reachable, should match given aria-label', t => {\n let answerWasClicked = false;\n defaultFixture.props.answers[1] = {\n ...defaultFixture.props.answers[1],\n onClick: () => {\n answerWasClicked = true;\n }\n };\n\n const wrapper = shallow(<QCMImage {...defaultFixture.props} />, {\n context: {translate}\n });\n\n const answersImages = wrapper.find('[data-name=\"answerImage\"]');\n t.true(answersImages.at(1).exists());\n t.is(answersImages.at(1).props()['aria-label'], 'Lorem ipsum');\n\n const answers = wrapper.find('[data-name=\"answerGraphic\"]');\n answers.at(1).simulate('click');\n t.true(answerWasClicked);\n t.pass();\n});\n\ntest(\"should set: selected's background to Primary, unselected's no background\", t => {\n const wrapper = shallow(<QCMImage {...defaultFixture.props} />, {\n context: {translate}\n });\n const answers = wrapper.find('[data-name=\"answerGraphic\"]');\n\n const firstAnswer = answers.at(0);\n t.true(firstAnswer.exists());\n t.deepEqual(firstAnswer.props().style, {});\n const unselectedBackgroundAnswer = firstAnswer.children().at(0);\n t.true(unselectedBackgroundAnswer.exists());\n t.deepEqual(unselectedBackgroundAnswer.props().style, {backgroundColor: '#F4F4F5'});\n const firstAnswerText = firstAnswer.children().at(1).children().at(1).children().at(0);\n t.true(firstAnswerText.exists());\n\n const thirdAnswer = answers.at(2);\n t.true(thirdAnswer.exists());\n t.deepEqual(thirdAnswer.props().style, {boxShadow: '0 4px 16px rgba(0, 122, 179, 0.25)'});\n const selectedBackgroundAnswer = thirdAnswer.children().at(0);\n t.true(selectedBackgroundAnswer.exists());\n t.deepEqual(selectedBackgroundAnswer.props().style, {backgroundColor: '#00B0FF'});\n});\n"],"file":"qcm-graphic.js"}
1
+ {"version":3,"sources":["../../../../../src/molecule/questions/qcm-graphic/test/qcm-graphic.js"],"names":["browserEnv","test","React","shallow","configure","Adapter","QCMImage","defaultFixture","adapter","translate","t","answerWasClicked","props","answers","onClick","wrapper","context","answersImages","find","true","at","exists","is","simulate","pass","firstAnswer","deepEqual","style","unselectedBackgroundAnswer","children","backgroundColor","firstAnswerText","thirdAnswer","boxShadow","selectedBackgroundAnswer"],"mappings":"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","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {shallow, configure} from 'enzyme';\nimport {identity} from 'lodash/fp';\nimport Adapter from 'enzyme-adapter-react-16';\nimport QCMImage from '..';\nimport defaultFixture from './fixtures/default';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\nconst translate = identity;\n\ntest('onClick should be reachable, should match given aria-label', t => {\n let answerWasClicked = false;\n defaultFixture.props.answers[1] = {\n ...defaultFixture.props.answers[1],\n onClick: () => {\n answerWasClicked = true;\n }\n };\n\n const wrapper = shallow(<QCMImage {...defaultFixture.props} />, {\n context: {translate}\n });\n\n const answersImages = wrapper.find('[data-name=\"answerImage\"]');\n t.true(answersImages.at(1).exists());\n t.is(\n answersImages.at(1).props()['aria-label'],\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sut labore et dolore magna aliqua.'\n );\n\n const answers = wrapper.find('[data-name=\"answerGraphic\"]');\n answers.at(1).simulate('click');\n t.true(answerWasClicked);\n t.pass();\n});\n\ntest(\"should set: selected's background to Primary, unselected's no background\", t => {\n const wrapper = shallow(<QCMImage {...defaultFixture.props} />, {\n context: {translate}\n });\n const answers = wrapper.find('[data-name=\"answerGraphic\"]');\n\n const firstAnswer = answers.at(0);\n t.true(firstAnswer.exists());\n t.deepEqual(firstAnswer.props().style, {});\n const unselectedBackgroundAnswer = firstAnswer.children().at(0);\n t.true(unselectedBackgroundAnswer.exists());\n t.deepEqual(unselectedBackgroundAnswer.props().style, {backgroundColor: '#F4F4F5'});\n const firstAnswerText = firstAnswer.children().at(1).children().at(1).children().at(0);\n t.true(firstAnswerText.exists());\n\n const thirdAnswer = answers.at(2);\n t.true(thirdAnswer.exists());\n t.deepEqual(thirdAnswer.props().style, {boxShadow: '0 4px 16px rgba(0, 122, 179, 0.25)'});\n const selectedBackgroundAnswer = thirdAnswer.children().at(0);\n t.true(selectedBackgroundAnswer.exists());\n t.deepEqual(selectedBackgroundAnswer.props().style, {backgroundColor: '#00B0FF'});\n});\n"],"file":"qcm-graphic.js"}
@@ -25,7 +25,8 @@ const Template = ({
25
25
 
26
26
  if (type === 'string') {
27
27
  return /*#__PURE__*/React.createElement("span", {
28
- key: key // eslint-disable-next-line react/no-danger
28
+ key: key,
29
+ className: style.textPart // eslint-disable-next-line react/no-danger
29
30
  ,
30
31
  dangerouslySetInnerHTML: {
31
32
  __html: part.value
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/molecule/questions/template/index.js"],"names":["React","PropTypes","parseTemplateString","DropDown","FreeText","style","Template","template","answers","totalTemplate","templateCompose","convert","cap","part","key","type","__html","value","field","name","fieldType","fieldProps","fieldView","text","answerType","wrapper","TextPropTypes","propTypes","string","arrayOf","oneOfType","shape"],"mappings":";;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,mBAAP,MAAgC,qCAAhC;AACA,OAAOC,QAAP,MAAqB,cAArB;AACA,OAAOC,QAAP,MAAqB,cAArB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,QAAQ,GAAG,CAAC;AAACC,EAAAA,QAAD;AAAWC,EAAAA;AAAX,CAAD,KAAyB;AACxC,QAAMC,aAAa,GAAGP,mBAAmB,CAACK,QAAD,CAAzC;;AACA,QAAMG,eAAe,GAAG,KAAIC,OAAJ,CAAY;AAACC,IAAAA,GAAG,EAAE;AAAN,GAAZ,EAA0B,CAACC,IAAD,EAAOC,GAAP,KAAe;AAC/D,UAAMC,IAAI,GAAGF,IAAI,CAACE,IAAlB;;AACA,QAAIA,IAAI,KAAK,QAAb,EAAuB;AACrB,0BACE;AACE,QAAA,GAAG,EAAED,GADP,CAEE;AAFF;AAGE,QAAA,uBAAuB,EAAE;AAACE,UAAAA,MAAM,EAAEH,IAAI,CAACI;AAAd;AAH3B,QADF;AAOD;;AACD,QAAIF,IAAI,KAAK,aAAb,EAA4B;AAC1B,YAAMG,KAAK,GAAG,MAAK;AAACC,QAAAA,IAAI,EAAEN,IAAI,CAACI;AAAZ,OAAL,EAAyBT,OAAzB,CAAd;;AACA,UAAI,CAACU,KAAL,EAAY,OAAO,IAAP;;AACZ,YAAM;AAACH,QAAAA,IAAI,EAAEK;AAAP,UAAmCF,KAAzC;AAAA,YAA2BG,UAA3B,iCAAyCH,KAAzC;;AACA,YAAMI,SAAS,GACbF,SAAS,KAAK,MAAd,gBACE,oBAAC,QAAD,eAAcC,UAAd;AAA0B,QAAA,SAAS,EAAEhB,KAAK,CAACkB;AAA3C,SADF,gBAGE,oBAAC,QAAD,eAAcF,UAAd;AAA0B,QAAA,KAAK,EAAC;AAAhC,SAJJ;AAOA,0BACE;AAAK,QAAA,SAAS,EAAEhB,KAAK,CAACmB,UAAtB;AAAkC,QAAA,GAAG,EAAEX,IAAI,CAACI;AAA5C,SACGK,SADH,CADF;AAKD;AACF,GA5BuB,EA4BrBb,aA5BqB,CAAxB;;AA8BA,sBACE;AAAK,iBAAU,kBAAf;AAAkC,IAAA,SAAS,EAAEJ,KAAK,CAACoB;AAAnD,KACGf,eADH,CADF;AAKD,CArCD;;AAuCA,MAAMgB,aAAN,iEACKvB,QAAQ,CAACwB,SADd;AAEEZ,EAAAA,IAAI,EAAEd,SAAS,CAAC2B;AAFlB;AAKAtB,QAAQ,CAACqB,SAAT,2CAAqB;AACnBpB,EAAAA,QAAQ,EAAEN,SAAS,CAAC2B,MADD;AAEnBpB,EAAAA,OAAO,EAAEP,SAAS,CAAC4B,OAAV,CACP5B,SAAS,CAAC6B,SAAV,CAAoB,CAAC7B,SAAS,CAAC8B,KAAV,CAAgB5B,QAAQ,CAACwB,SAAzB,CAAD,EAAsC1B,SAAS,CAAC8B,KAAV,CAAgBL,aAAhB,CAAtC,CAApB,CADO;AAFU,CAArB;AAOA,eAAepB,QAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {map, find} from 'lodash/fp';\nimport parseTemplateString from '../../../util/parse-template-string';\nimport DropDown from '../drop-down';\nimport FreeText from '../free-text';\nimport style from './style.css';\n\nconst Template = ({template, answers}) => {\n const totalTemplate = parseTemplateString(template);\n const templateCompose = map.convert({cap: false})((part, key) => {\n const type = part.type;\n if (type === 'string') {\n return (\n <span\n key={key}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: part.value}}\n />\n );\n }\n if (type === 'answerField') {\n const field = find({name: part.value}, answers);\n if (!field) return null;\n const {type: fieldType, ...fieldProps} = field;\n const fieldView =\n fieldType === 'text' ? (\n <FreeText {...fieldProps} className={style.text} />\n ) : (\n <DropDown {...fieldProps} theme=\"player\" />\n );\n\n return (\n <div className={style.answerType} key={part.value}>\n {fieldView}\n </div>\n );\n }\n }, totalTemplate);\n\n return (\n <div data-name=\"template-wrapper\" className={style.wrapper}>\n {templateCompose}\n </div>\n );\n};\n\nconst TextPropTypes = {\n ...DropDown.propTypes,\n type: PropTypes.string\n};\n\nTemplate.propTypes = {\n template: PropTypes.string,\n answers: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.shape(DropDown.propTypes), PropTypes.shape(TextPropTypes)])\n )\n};\n\nexport default Template;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/molecule/questions/template/index.js"],"names":["React","PropTypes","parseTemplateString","DropDown","FreeText","style","Template","template","answers","totalTemplate","templateCompose","convert","cap","part","key","type","textPart","__html","value","field","name","fieldType","fieldProps","fieldView","text","answerType","wrapper","TextPropTypes","propTypes","string","arrayOf","oneOfType","shape"],"mappings":";;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,mBAAP,MAAgC,qCAAhC;AACA,OAAOC,QAAP,MAAqB,cAArB;AACA,OAAOC,QAAP,MAAqB,cAArB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,QAAQ,GAAG,CAAC;AAACC,EAAAA,QAAD;AAAWC,EAAAA;AAAX,CAAD,KAAyB;AACxC,QAAMC,aAAa,GAAGP,mBAAmB,CAACK,QAAD,CAAzC;;AACA,QAAMG,eAAe,GAAG,KAAIC,OAAJ,CAAY;AAACC,IAAAA,GAAG,EAAE;AAAN,GAAZ,EAA0B,CAACC,IAAD,EAAOC,GAAP,KAAe;AAC/D,UAAMC,IAAI,GAAGF,IAAI,CAACE,IAAlB;;AACA,QAAIA,IAAI,KAAK,QAAb,EAAuB;AACrB,0BACE;AACE,QAAA,GAAG,EAAED,GADP;AAEE,QAAA,SAAS,EAAET,KAAK,CAACW,QAFnB,CAGE;AAHF;AAIE,QAAA,uBAAuB,EAAE;AAACC,UAAAA,MAAM,EAAEJ,IAAI,CAACK;AAAd;AAJ3B,QADF;AAQD;;AACD,QAAIH,IAAI,KAAK,aAAb,EAA4B;AAC1B,YAAMI,KAAK,GAAG,MAAK;AAACC,QAAAA,IAAI,EAAEP,IAAI,CAACK;AAAZ,OAAL,EAAyBV,OAAzB,CAAd;;AACA,UAAI,CAACW,KAAL,EAAY,OAAO,IAAP;;AACZ,YAAM;AAACJ,QAAAA,IAAI,EAAEM;AAAP,UAAmCF,KAAzC;AAAA,YAA2BG,UAA3B,iCAAyCH,KAAzC;;AACA,YAAMI,SAAS,GACbF,SAAS,KAAK,MAAd,gBACE,oBAAC,QAAD,eAAcC,UAAd;AAA0B,QAAA,SAAS,EAAEjB,KAAK,CAACmB;AAA3C,SADF,gBAGE,oBAAC,QAAD,eAAcF,UAAd;AAA0B,QAAA,KAAK,EAAC;AAAhC,SAJJ;AAOA,0BACE;AAAK,QAAA,SAAS,EAAEjB,KAAK,CAACoB,UAAtB;AAAkC,QAAA,GAAG,EAAEZ,IAAI,CAACK;AAA5C,SACGK,SADH,CADF;AAKD;AACF,GA7BuB,EA6BrBd,aA7BqB,CAAxB;;AA+BA,sBACE;AAAK,iBAAU,kBAAf;AAAkC,IAAA,SAAS,EAAEJ,KAAK,CAACqB;AAAnD,KACGhB,eADH,CADF;AAKD,CAtCD;;AAwCA,MAAMiB,aAAN,iEACKxB,QAAQ,CAACyB,SADd;AAEEb,EAAAA,IAAI,EAAEd,SAAS,CAAC4B;AAFlB;AAKAvB,QAAQ,CAACsB,SAAT,2CAAqB;AACnBrB,EAAAA,QAAQ,EAAEN,SAAS,CAAC4B,MADD;AAEnBrB,EAAAA,OAAO,EAAEP,SAAS,CAAC6B,OAAV,CACP7B,SAAS,CAAC8B,SAAV,CAAoB,CAAC9B,SAAS,CAAC+B,KAAV,CAAgB7B,QAAQ,CAACyB,SAAzB,CAAD,EAAsC3B,SAAS,CAAC+B,KAAV,CAAgBL,aAAhB,CAAtC,CAApB,CADO;AAFU,CAArB;AAOA,eAAerB,QAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {map, find} from 'lodash/fp';\nimport parseTemplateString from '../../../util/parse-template-string';\nimport DropDown from '../drop-down';\nimport FreeText from '../free-text';\nimport style from './style.css';\n\nconst Template = ({template, answers}) => {\n const totalTemplate = parseTemplateString(template);\n const templateCompose = map.convert({cap: false})((part, key) => {\n const type = part.type;\n if (type === 'string') {\n return (\n <span\n key={key}\n className={style.textPart}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: part.value}}\n />\n );\n }\n if (type === 'answerField') {\n const field = find({name: part.value}, answers);\n if (!field) return null;\n const {type: fieldType, ...fieldProps} = field;\n const fieldView =\n fieldType === 'text' ? (\n <FreeText {...fieldProps} className={style.text} />\n ) : (\n <DropDown {...fieldProps} theme=\"player\" />\n );\n\n return (\n <div className={style.answerType} key={part.value}>\n {fieldView}\n </div>\n );\n }\n }, totalTemplate);\n\n return (\n <div data-name=\"template-wrapper\" className={style.wrapper}>\n {templateCompose}\n </div>\n );\n};\n\nconst TextPropTypes = {\n ...DropDown.propTypes,\n type: PropTypes.string\n};\n\nTemplate.propTypes = {\n template: PropTypes.string,\n answers: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.shape(DropDown.propTypes), PropTypes.shape(TextPropTypes)])\n )\n};\n\nexport default Template;\n"],"file":"index.js"}
@@ -1,6 +1,8 @@
1
1
  @value breakpoints: "../../../variables/breakpoints.css";
2
2
  @value mobile from breakpoints;
3
3
  @value tablet from breakpoints;
4
+ @value colors: "../../../variables/colors.css";
5
+ @value cm_blue_900 from colors;
4
6
 
5
7
  .wrapper {
6
8
  display: block;
@@ -15,6 +17,10 @@
15
17
  text-align: center;
16
18
  }
17
19
 
20
+ .textPart {
21
+ color: cm_blue_900;
22
+ }
23
+
18
24
  .answerType {
19
25
  display: inline-block;
20
26
  margin: 4px 0 8px;
@@ -39,6 +39,7 @@
39
39
  @value cm_grey_200: #d7d7da;
40
40
  @value cm_grey_300: #C5C5C9;
41
41
  @value cm_grey_400: #9999A8;
42
+ @value cm_grey_450: #8393ad;
42
43
  @value cm_grey_500: #515161;
43
44
  @value cm_grey_700: #1D1D2B;
44
45
  @value cm_grey_800: #3a3a4a;
@@ -62,3 +63,4 @@
62
63
  @value cm_violet_podcast: #432ba7;
63
64
  @value cm_warning_50: rgba(255, 192, 67, 0.13);
64
65
  @value box_shadow_light_dark: rgba(0, 0, 0, 0.12);
66
+ @value box_shadow_medium_dark: rgba(0, 0, 0, 0.2);
@@ -106,9 +106,10 @@ const Select = (props, context) => {
106
106
  const black = (0, _react.useMemo)(() => (0, _getOr2.default)('#14171A', 'common.black', skin), [skin]);
107
107
  const color = (0, _react.useMemo)(() => (0, _getOr2.default)('#00B0FF', 'common.primary', skin), [skin]);
108
108
  const shouldUseSkinFontColor = (0, _react.useMemo)(() => !isSelectedInValidOption && selected && (0, _includes2.default)(theme, ['question', 'template', 'player']), [isSelectedInValidOption, selected, theme]);
109
+ const arrowColor = selected ? color : undefined;
109
110
  const arrowView = !multiple ? /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowDown, {
110
- color: selected && (theme === 'question' || theme === 'template') ? color : black,
111
- className: _style.default.arrow
111
+ color: (0, _includes2.default)(theme, ['question', 'template', 'player']) ? arrowColor : black,
112
+ className: shouldUseSkinFontColor ? _style.default.selectedArrow : _style.default.arrow
112
113
  }) : null;
113
114
  const behaviourClassName = (0, _react.useMemo)(() => (0, _getClassState.default)(_style.default.default, _style.default.modified, _style.default.error, modified, error), [error, modified]);
114
115
  const composedClassName = (0, _react.useMemo)(() => (0, _classnames.default)(theme ? themeStyle[theme] : behaviourClassName, selected ? _style.default.selected : _style.default.unselected, className), [behaviourClassName, className, selected, theme]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/select/index.js"],"names":["themeStyle","filter","style","invalid","header","mooc","question","sort","thematiques","player","template","Select","props","context","name","options","className","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","skin","optionList","map","option","index","value","selectOption","titleView","selected","selectedLabel","isSelectedInValidOption","validOption","handleChange","e","target","selectedOptions","black","color","shouldUseSkinFontColor","arrowView","arrow","behaviourClassName","default","composedClassName","unselected","labelSize","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","selectBox","SelectOptionPropTypes","PropTypes","string","isRequired","oneOfType","number","bool","contextTypes","Provider","childContextTypes","propTypes","func","oneOf","arrayOf","shape"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {find, keys, map, get, getOr, filter, includes, size} from 'lodash/fp';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport Provider from '../provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n filter: style.filter,\n invalid: style.invalid,\n header: style.header,\n mooc: style.mooc,\n question: style.question,\n sort: style.sort,\n thematiques: style.thematiques,\n player: style.player,\n template: style.template // we keep template in case it is used anywhere else?\n};\n\nconst Select = (props, context) => {\n const {\n name,\n options = [],\n className,\n borderClassName,\n onChange,\n multiple = false,\n disabled,\n required,\n description,\n theme,\n modified = false,\n error = false,\n title: propTitle\n } = props;\n\n const {skin} = context;\n\n const title = useMemo(() => (propTitle ? `${propTitle}${required ? '*' : ''}` : null), [\n propTitle,\n required\n ]);\n\n const optionList =\n options &&\n options.map((option, index) => {\n return (\n <option key={index} value={option.value} className={style.selectOption}>\n {option.name}\n </option>\n );\n });\n\n const titleView = title ? <span className={style.title}>{title} </span> : null;\n\n const selected = useMemo(\n () =>\n multiple\n ? map(get('value'), filter({selected: true}, options))\n : get('value', find({selected: true}, options)),\n [multiple, options]\n );\n const selectedLabel = useMemo(\n () =>\n multiple\n ? map(get('name'), filter({selected: true}, options))\n : get('name', find({selected: true}, options)),\n [multiple, options]\n );\n\n const isSelectedInValidOption = useMemo(\n () =>\n theme === 'player' &&\n getOr(false, 'name', find({validOption: false, selected: true}, options)),\n [options, theme]\n );\n\n const handleChange = useMemo(\n () =>\n multiple\n ? e => {\n onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\n onChange(e.target.value);\n },\n [onChange, multiple]\n );\n\n const black = useMemo(() => getOr('#14171A', 'common.black', skin), [skin]);\n const color = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const shouldUseSkinFontColor = useMemo(\n () =>\n !isSelectedInValidOption && selected && includes(theme, ['question', 'template', 'player']),\n [isSelectedInValidOption, selected, theme]\n );\n\n const arrowView = !multiple ? (\n <ArrowDown\n color={selected && (theme === 'question' || theme === 'template') ? color : black}\n className={style.arrow}\n />\n ) : null;\n const behaviourClassName = useMemo(\n () => getClassState(style.default, style.modified, style.error, modified, error),\n [error, modified]\n );\n const composedClassName = useMemo(\n () =>\n classnames(\n theme ? themeStyle[theme] : behaviourClassName,\n selected ? style.selected : style.unselected,\n className\n ),\n [behaviourClassName, className, selected, theme]\n );\n\n const labelSize = useMemo(() => size(selectedLabel), [selectedLabel]);\n\n const isLongLabel = useMemo(() => labelSize >= 65, [labelSize]);\n\n return (\n <div className={composedClassName}>\n <label\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\n {titleView}\n <span\n data-name=\"select-span\"\n className={classnames(\n style.selectSpan,\n includes(theme, ['player', 'invalid', 'question', 'thematiques', 'template'])\n ? style.noLabelCommon\n : null,\n borderClassName,\n isLongLabel ? style.longLabel : null\n )}\n >\n {selectedLabel}\n </span>\n {arrowView}\n <select\n data-name=\"native-select\"\n className={style.selectBox}\n title={selectedLabel}\n name={name}\n onChange={handleChange}\n value={selected}\n multiple={multiple}\n disabled={disabled}\n >\n {optionList}\n </select>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nexport const SelectOptionPropTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selected: PropTypes.bool,\n validOption: PropTypes.bool\n};\n\nSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelect.propTypes = {\n title: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n borderClassName: PropTypes.string,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n description: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n theme: PropTypes.oneOf(keys(themeStyle)),\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes)),\n modified: PropTypes.bool,\n error: PropTypes.bool\n};\n\nexport default Select;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/atom/select/index.js"],"names":["themeStyle","filter","style","invalid","header","mooc","question","sort","thematiques","player","template","Select","props","context","name","options","className","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","skin","optionList","map","option","index","value","selectOption","titleView","selected","selectedLabel","isSelectedInValidOption","validOption","handleChange","e","target","selectedOptions","black","color","shouldUseSkinFontColor","arrowColor","undefined","arrowView","selectedArrow","arrow","behaviourClassName","default","composedClassName","unselected","labelSize","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","selectBox","SelectOptionPropTypes","PropTypes","string","isRequired","oneOfType","number","bool","contextTypes","Provider","childContextTypes","propTypes","func","oneOf","arrayOf","shape"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {find, keys, map, get, getOr, filter, includes, size} from 'lodash/fp';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport Provider from '../provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n filter: style.filter,\n invalid: style.invalid,\n header: style.header,\n mooc: style.mooc,\n question: style.question,\n sort: style.sort,\n thematiques: style.thematiques,\n player: style.player,\n template: style.template // we keep template in case it is used anywhere else?\n};\n\nconst Select = (props, context) => {\n const {\n name,\n options = [],\n className,\n borderClassName,\n onChange,\n multiple = false,\n disabled,\n required,\n description,\n theme,\n modified = false,\n error = false,\n title: propTitle\n } = props;\n\n const {skin} = context;\n\n const title = useMemo(() => (propTitle ? `${propTitle}${required ? '*' : ''}` : null), [\n propTitle,\n required\n ]);\n\n const optionList =\n options &&\n options.map((option, index) => {\n return (\n <option key={index} value={option.value} className={style.selectOption}>\n {option.name}\n </option>\n );\n });\n\n const titleView = title ? <span className={style.title}>{title} </span> : null;\n\n const selected = useMemo(\n () =>\n multiple\n ? map(get('value'), filter({selected: true}, options))\n : get('value', find({selected: true}, options)),\n [multiple, options]\n );\n const selectedLabel = useMemo(\n () =>\n multiple\n ? map(get('name'), filter({selected: true}, options))\n : get('name', find({selected: true}, options)),\n [multiple, options]\n );\n\n const isSelectedInValidOption = useMemo(\n () =>\n theme === 'player' &&\n getOr(false, 'name', find({validOption: false, selected: true}, options)),\n [options, theme]\n );\n\n const handleChange = useMemo(\n () =>\n multiple\n ? e => {\n onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\n onChange(e.target.value);\n },\n [onChange, multiple]\n );\n\n const black = useMemo(() => getOr('#14171A', 'common.black', skin), [skin]);\n const color = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const shouldUseSkinFontColor = useMemo(\n () =>\n !isSelectedInValidOption && selected && includes(theme, ['question', 'template', 'player']),\n [isSelectedInValidOption, selected, theme]\n );\n const arrowColor = selected ? color : undefined;\n\n const arrowView = !multiple ? (\n <ArrowDown\n color={includes(theme, ['question', 'template', 'player']) ? arrowColor : black}\n className={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n />\n ) : null;\n const behaviourClassName = useMemo(\n () => getClassState(style.default, style.modified, style.error, modified, error),\n [error, modified]\n );\n const composedClassName = useMemo(\n () =>\n classnames(\n theme ? themeStyle[theme] : behaviourClassName,\n selected ? style.selected : style.unselected,\n className\n ),\n [behaviourClassName, className, selected, theme]\n );\n\n const labelSize = useMemo(() => size(selectedLabel), [selectedLabel]);\n\n const isLongLabel = useMemo(() => labelSize >= 65, [labelSize]);\n\n return (\n <div className={composedClassName}>\n <label\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\n {titleView}\n <span\n data-name=\"select-span\"\n className={classnames(\n style.selectSpan,\n includes(theme, ['player', 'invalid', 'question', 'thematiques', 'template'])\n ? style.noLabelCommon\n : null,\n borderClassName,\n isLongLabel ? style.longLabel : null\n )}\n >\n {selectedLabel}\n </span>\n {arrowView}\n <select\n data-name=\"native-select\"\n className={style.selectBox}\n title={selectedLabel}\n name={name}\n onChange={handleChange}\n value={selected}\n multiple={multiple}\n disabled={disabled}\n >\n {optionList}\n </select>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nexport const SelectOptionPropTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selected: PropTypes.bool,\n validOption: PropTypes.bool\n};\n\nSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelect.propTypes = {\n title: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n borderClassName: PropTypes.string,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n description: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n theme: PropTypes.oneOf(keys(themeStyle)),\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes)),\n modified: PropTypes.bool,\n error: PropTypes.bool\n};\n\nexport default Select;\n"],"file":"index.js"}
@@ -11,7 +11,9 @@
11
11
  @value xtraLightGrey from colors;
12
12
  @value transparent from colors;
13
13
  @value box_shadow_light_dark from colors;
14
+ @value box_shadow_medium_dark from colors;
14
15
  @value cm_blue_900 from colors;
16
+ @value cm_grey_450 from colors;
15
17
 
16
18
  .default {
17
19
  display: flex;
@@ -85,6 +87,7 @@
85
87
  .player .selectWrapper {
86
88
  min-width: min-content;
87
89
  height: min-content;
90
+ margin-right: 0;
88
91
  }
89
92
 
90
93
  .modified select {
@@ -132,6 +135,22 @@
132
135
  z-index: 11;
133
136
  }
134
137
 
138
+ .selectedArrow {
139
+ composes: arrow;
140
+ }
141
+
142
+ .player .selectWrapper .arrow {
143
+ color: cm_grey_450;
144
+ }
145
+
146
+ .player:hover .arrow {
147
+ color: cm_blue_900;
148
+ }
149
+
150
+ .player:hover .selectedArrow {
151
+ color: inherit;
152
+ }
153
+
135
154
  @media mobile {
136
155
  .arrow::after {
137
156
  right: 10px;
@@ -176,6 +195,8 @@
176
195
  }
177
196
 
178
197
  .filter .selectBox {
198
+ position: absolute;
199
+ top: 27px;
179
200
  display: block;
180
201
  width: 100%;
181
202
  height: 50px;
@@ -246,6 +267,12 @@ div.player .noLabelCommon.selectSpan {
246
267
  min-width: min-content;
247
268
  width: 100%;
248
269
  white-space: nowrap;
270
+ color: cm_blue_900;
271
+ border-width: 0;
272
+ }
273
+
274
+ div.player:hover span.selectSpan {
275
+ box-shadow: 0px 4px 16px box_shadow_medium_dark;
249
276
  }
250
277
 
251
278
  .no-label .selectBox {
@@ -465,6 +492,17 @@ div.player .noLabelCommon.selectSpan {
465
492
  composes: no-label;
466
493
  }
467
494
 
495
+ .player .selectBox {
496
+ border: 0;
497
+ }
498
+
499
+ /* mozilla specific styling */
500
+ @supports (-moz-appearance:none) {
501
+ .player label.selectWrapper select.selectBox {
502
+ width: 100%;
503
+ }
504
+ }
505
+
468
506
  /*
469
507
  Header
470
508
  */
@@ -27,12 +27,14 @@ const Customer = props => {
27
27
  type,
28
28
  coorpOriginal,
29
29
  theme,
30
- disabled = false
30
+ disabled = false,
31
+ 'aria-label': ariaLabel
31
32
  } = props;
32
33
  const className = (0, _classnames.default)(THEMES[theme], _customer.default.customer, type === 'chapter' ? _customer.default.chapterCustomer : null);
33
34
  return /*#__PURE__*/_react.default.createElement("div", {
34
35
  className: className,
35
- disabled: disabled
36
+ disabled: disabled,
37
+ "aria-label": ariaLabel
36
38
  }, /*#__PURE__*/_react.default.createElement("div", {
37
39
  className: _customer.default.content
38
40
  }, coorpOriginal ? /*#__PURE__*/_react.default.createElement("span", {
@@ -47,7 +49,8 @@ Customer.propTypes = process.env.NODE_ENV !== "production" ? {
47
49
  type: _propTypes.default.string,
48
50
  name: _propTypes.default.string,
49
51
  coorpOriginal: _propTypes.default.bool.isRequired,
50
- disabled: _propTypes.default.bool
52
+ disabled: _propTypes.default.bool,
53
+ 'aria-label': _propTypes.default.string
51
54
  } : {};
52
55
  var _default = Customer;
53
56
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/card/customer.js"],"names":["THEMES","default","coorpmanager","style","Customer","props","name","type","coorpOriginal","theme","disabled","className","customer","chapterCustomer","content","coorp","original","propTypes","PropTypes","oneOf","string","bool","isRequired"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;AAEO,MAAMA,MAAM,GAAG;AACpBC,EAAAA,OAAO,EAAE,IADW;AAEpBC,EAAAA,YAAY,EAAEC,kBAAMD;AAFA,CAAf;;;AAKP,MAAME,QAAQ,GAAGC,KAAK,IAAI;AACxB,QAAM;AAACC,IAAAA,IAAD;AAAOC,IAAAA,IAAP;AAAaC,IAAAA,aAAb;AAA4BC,IAAAA,KAA5B;AAAmCC,IAAAA,QAAQ,GAAG;AAA9C,MAAuDL,KAA7D;AACA,QAAMM,SAAS,GAAG,yBAChBX,MAAM,CAACS,KAAD,CADU,EAEhBN,kBAAMS,QAFU,EAGhBL,IAAI,KAAK,SAAT,GAAqBJ,kBAAMU,eAA3B,GAA6C,IAH7B,CAAlB;AAMA,sBACE;AAAK,IAAA,SAAS,EAAEF,SAAhB;AAA2B,IAAA,QAAQ,EAAED;AAArC,kBACE;AAAK,IAAA,SAAS,EAAEP,kBAAMW;AAAtB,KACGN,aAAa,gBAAG;AAAM,IAAA,SAAS,EAAEL,kBAAMY;AAAvB,cAAH,GAAiD,IADjE,EAEGP,aAAa,gBAAG;AAAM,IAAA,SAAS,EAAEL,kBAAMa;AAAvB,iBAAH,GAAuD,IAFvE,EAGG,CAACR,aAAD,IAAkBF,IAHrB,CADF,CADF;AASD,CAjBD;;AAmBAF,QAAQ,CAACa,SAAT,2CAAqB;AACnBR,EAAAA,KAAK,EAAES,mBAAUC,KAAV,CAAgB,oBAAKnB,MAAL,CAAhB,CADY;AAEnBO,EAAAA,IAAI,EAAEW,mBAAUE,MAFG;AAGnBd,EAAAA,IAAI,EAAEY,mBAAUE,MAHG;AAInBZ,EAAAA,aAAa,EAAEU,mBAAUG,IAAV,CAAeC,UAJX;AAKnBZ,EAAAA,QAAQ,EAAEQ,mBAAUG;AALD,CAArB;eAQejB,Q","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {keys} from 'lodash/fp';\nimport style from './customer.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst Customer = props => {\n const {name, type, coorpOriginal, theme, disabled = false} = props;\n const className = classnames(\n THEMES[theme],\n style.customer,\n type === 'chapter' ? style.chapterCustomer : null\n );\n\n return (\n <div className={className} disabled={disabled}>\n <div className={style.content}>\n {coorpOriginal ? <span className={style.coorp}>Coorp </span> : null}\n {coorpOriginal ? <span className={style.original}>Original </span> : null}\n {!coorpOriginal && name}\n </div>\n </div>\n );\n};\n\nCustomer.propTypes = {\n theme: PropTypes.oneOf(keys(THEMES)),\n type: PropTypes.string,\n name: PropTypes.string,\n coorpOriginal: PropTypes.bool.isRequired,\n disabled: PropTypes.bool\n};\n\nexport default Customer;\n"],"file":"customer.js"}
1
+ {"version":3,"sources":["../../../src/molecule/card/customer.js"],"names":["THEMES","default","coorpmanager","style","Customer","props","name","type","coorpOriginal","theme","disabled","ariaLabel","className","customer","chapterCustomer","content","coorp","original","propTypes","PropTypes","oneOf","string","bool","isRequired"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;AAEO,MAAMA,MAAM,GAAG;AACpBC,EAAAA,OAAO,EAAE,IADW;AAEpBC,EAAAA,YAAY,EAAEC,kBAAMD;AAFA,CAAf;;;AAKP,MAAME,QAAQ,GAAGC,KAAK,IAAI;AACxB,QAAM;AAACC,IAAAA,IAAD;AAAOC,IAAAA,IAAP;AAAaC,IAAAA,aAAb;AAA4BC,IAAAA,KAA5B;AAAmCC,IAAAA,QAAQ,GAAG,KAA9C;AAAqD,kBAAcC;AAAnE,MAAgFN,KAAtF;AACA,QAAMO,SAAS,GAAG,yBAChBZ,MAAM,CAACS,KAAD,CADU,EAEhBN,kBAAMU,QAFU,EAGhBN,IAAI,KAAK,SAAT,GAAqBJ,kBAAMW,eAA3B,GAA6C,IAH7B,CAAlB;AAMA,sBACE;AAAK,IAAA,SAAS,EAAEF,SAAhB;AAA2B,IAAA,QAAQ,EAAEF,QAArC;AAA+C,kBAAYC;AAA3D,kBACE;AAAK,IAAA,SAAS,EAAER,kBAAMY;AAAtB,KACGP,aAAa,gBAAG;AAAM,IAAA,SAAS,EAAEL,kBAAMa;AAAvB,cAAH,GAAiD,IADjE,EAEGR,aAAa,gBAAG;AAAM,IAAA,SAAS,EAAEL,kBAAMc;AAAvB,iBAAH,GAAuD,IAFvE,EAGG,CAACT,aAAD,IAAkBF,IAHrB,CADF,CADF;AASD,CAjBD;;AAmBAF,QAAQ,CAACc,SAAT,2CAAqB;AACnBT,EAAAA,KAAK,EAAEU,mBAAUC,KAAV,CAAgB,oBAAKpB,MAAL,CAAhB,CADY;AAEnBO,EAAAA,IAAI,EAAEY,mBAAUE,MAFG;AAGnBf,EAAAA,IAAI,EAAEa,mBAAUE,MAHG;AAInBb,EAAAA,aAAa,EAAEW,mBAAUG,IAAV,CAAeC,UAJX;AAKnBb,EAAAA,QAAQ,EAAES,mBAAUG,IALD;AAMnB,gBAAcH,mBAAUE;AANL,CAArB;eASejB,Q","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {keys} from 'lodash/fp';\nimport style from './customer.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst Customer = props => {\n const {name, type, coorpOriginal, theme, disabled = false, 'aria-label': ariaLabel} = props;\n const className = classnames(\n THEMES[theme],\n style.customer,\n type === 'chapter' ? style.chapterCustomer : null\n );\n\n return (\n <div className={className} disabled={disabled} aria-label={ariaLabel}>\n <div className={style.content}>\n {coorpOriginal ? <span className={style.coorp}>Coorp </span> : null}\n {coorpOriginal ? <span className={style.original}>Original </span> : null}\n {!coorpOriginal && name}\n </div>\n </div>\n );\n};\n\nCustomer.propTypes = {\n theme: PropTypes.oneOf(keys(THEMES)),\n type: PropTypes.string,\n name: PropTypes.string,\n coorpOriginal: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nexport default Customer;\n"],"file":"customer.js"}
@@ -49,7 +49,8 @@ class Favorite extends _react.default.Component {
49
49
  favorite,
50
50
  addFavoriteToolTip,
51
51
  removeFavoriteToolTip,
52
- className
52
+ className,
53
+ 'aria-label': ariaLabel = {}
53
54
  } = this.props;
54
55
  const primaryColor = (0, _get2.default)('common.primary', skin);
55
56
  const darkColor = (0, _get2.default)('common.dark', skin);
@@ -61,6 +62,7 @@ class Favorite extends _react.default.Component {
61
62
  className: _favorite.default.blocFavorite
62
63
  }, toolTipView, /*#__PURE__*/_react.default.createElement("div", {
63
64
  "data-name": "favorite",
65
+ "aria-label": ariaLabel.favorite,
64
66
  className: (0, _classnames.default)(_favorite.default.favorite, className, favorite && _favorite.default.selected),
65
67
  onClick: this.handleFavoviteClick,
66
68
  style: {
@@ -70,12 +72,14 @@ class Favorite extends _react.default.Component {
70
72
  className: _favorite.default.checkIcon,
71
73
  color: brandColor,
72
74
  width: 13,
73
- height: 13
75
+ height: 13,
76
+ "aria-label": ariaLabel.removeFromFavorite
74
77
  }) : /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationMore, {
75
78
  className: _favorite.default.moreIcon,
76
79
  color: darkColor,
77
80
  width: 13,
78
- height: 13
81
+ height: 13,
82
+ "aria-label": ariaLabel.addToFavorite
79
83
  })));
80
84
  }
81
85
 
@@ -91,7 +95,12 @@ Favorite.propTypes = process.env.NODE_ENV !== "production" ? {
91
95
  disabled: _propTypes.default.bool,
92
96
  addFavoriteToolTip: _propTypes.default.string,
93
97
  removeFavoriteToolTip: _propTypes.default.string,
94
- onFavoriteClick: _propTypes.default.func
98
+ onFavoriteClick: _propTypes.default.func,
99
+ 'aria-label': _propTypes.default.shape({
100
+ favorite: _propTypes.default.string,
101
+ addToFavorite: _propTypes.default.string,
102
+ removeFromFavorite: _propTypes.default.string
103
+ })
95
104
  } : {};
96
105
  var _default = Favorite;
97
106
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/card/favorite.js"],"names":["Favorite","React","Component","constructor","props","context","handleFavoviteClick","bind","e","disabled","onFavoriteClick","stopPropagation","preventDefault","render","skin","favorite","addFavoriteToolTip","removeFavoriteToolTip","className","primaryColor","darkColor","brandColor","toolTipView","style","showToolTip","blocFavorite","selected","color","checkIcon","moreIcon","Provider","childContextTypes","propTypes","PropTypes","string","bool","func"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAIA;;AACA;;;;;;AAEA,MAAMA,QAAN,SAAuBC,eAAMC,SAA7B,CAAuC;AAcrCC,EAAAA,WAAW,CAACC,KAAD,EAAQC,OAAR,EAAiB;AAC1B,UAAMD,KAAN,EAAaC,OAAb;AACA,SAAKC,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBC,IAAzB,CAA8B,IAA9B,CAA3B;AACD;;AAEDD,EAAAA,mBAAmB,CAACE,CAAD,EAAI;AACrB,UAAM;AAACC,MAAAA,QAAD;AAAWC,MAAAA,eAAe;AAA1B,QAAqC,KAAKN,KAAhD;AACAI,IAAAA,CAAC,CAACG,eAAF;AACAH,IAAAA,CAAC,CAACI,cAAF;AACA,QAAI,CAACH,QAAL,EAAeC,eAAe,CAACF,CAAD,CAAf;AAChB;;AAEDK,EAAAA,MAAM,GAAG;AACP,UAAM;AAACC,MAAAA;AAAD,QAAS,KAAKT,OAApB;AACA,UAAM;AAACU,MAAAA,QAAD;AAAWC,MAAAA,kBAAX;AAA+BC,MAAAA,qBAA/B;AAAsDC,MAAAA;AAAtD,QAAmE,KAAKd,KAA9E;AAEA,UAAMe,YAAY,GAAG,mBAAI,gBAAJ,EAAsBL,IAAtB,CAArB;AACA,UAAMM,SAAS,GAAG,mBAAI,aAAJ,EAAmBN,IAAnB,CAAlB;AACA,UAAMO,UAAU,GAAG,mBAAI,cAAJ,EAAoBP,IAApB,CAAnB;AACA,UAAMQ,WAAW,GACf,CAAC,uBAAQL,qBAAR,CAAD,IAAmC,CAAC,uBAAQD,kBAAR,CAApC,gBACE;AAAK,MAAA,SAAS,EAAEO,kBAAMC;AAAtB,oBACE,2CAAOT,QAAQ,GAAGE,qBAAH,GAA2BD,kBAA1C,CADF,CADF,GAII,IALN;AAOA,wBACE;AAAK,MAAA,SAAS,EAAEO,kBAAME;AAAtB,OACGH,WADH,eAEE;AACE,mBAAU,UADZ;AAEE,MAAA,SAAS,EAAE,yBAAWC,kBAAMR,QAAjB,EAA2BG,SAA3B,EAAsCH,QAAQ,IAAIQ,kBAAMG,QAAxD,CAFb;AAGE,MAAA,OAAO,EAAE,KAAKpB,mBAHhB;AAIE,MAAA,KAAK,EAAE;AACLqB,QAAAA,KAAK,EAAER;AADF;AAJT,OAQGJ,QAAQ,gBACP,6BAAC,2CAAD;AAAW,MAAA,SAAS,EAAEQ,kBAAMK,SAA5B;AAAuC,MAAA,KAAK,EAAEP,UAA9C;AAA0D,MAAA,KAAK,EAAE,EAAjE;AAAqE,MAAA,MAAM,EAAE;AAA7E,MADO,gBAGP,6BAAC,wCAAD;AAAU,MAAA,SAAS,EAAEE,kBAAMM,QAA3B;AAAqC,MAAA,KAAK,EAAET,SAA5C;AAAuD,MAAA,KAAK,EAAE,EAA9D;AAAkE,MAAA,MAAM,EAAE;AAA1E,MAXJ,CAFF,CADF;AAmBD;;AA3DoC;;gBAAjCpB,Q,kBAUkB;AACpBc,EAAAA,IAAI,EAAEgB,kBAASC,iBAAT,CAA2BjB;AADb,C;;AAVlBd,Q,CACGgC,S,2CAAY;AACjBd,EAAAA,SAAS,EAAEe,mBAAUC,MADJ;AAEjBnB,EAAAA,QAAQ,EAAEkB,mBAAUE,IAFH;AAGjB1B,EAAAA,QAAQ,EAAEwB,mBAAUE,IAHH;AAIjBnB,EAAAA,kBAAkB,EAAEiB,mBAAUC,MAJb;AAKjBjB,EAAAA,qBAAqB,EAAEgB,mBAAUC,MALhB;AAMjBxB,EAAAA,eAAe,EAAEuB,mBAAUG;AANV,C;eA6DNpC,Q","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, noop} from 'lodash/fp';\nimport {\n NovaCompositionNavigationMore as MoreIcon,\n NovaCompositionCoorpacademyCheck as CheckIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport style from './favorite.css';\n\nclass Favorite extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n favorite: PropTypes.bool,\n disabled: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onFavoriteClick: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props, context) {\n super(props, context);\n this.handleFavoviteClick = this.handleFavoviteClick.bind(this);\n }\n\n handleFavoviteClick(e) {\n const {disabled, onFavoriteClick = noop} = this.props;\n e.stopPropagation();\n e.preventDefault();\n if (!disabled) onFavoriteClick(e);\n }\n\n render() {\n const {skin} = this.context;\n const {favorite, addFavoriteToolTip, removeFavoriteToolTip, className} = this.props;\n\n const primaryColor = get('common.primary', skin);\n const darkColor = get('common.dark', skin);\n const brandColor = get('common.brand', skin);\n const toolTipView =\n !isEmpty(removeFavoriteToolTip) && !isEmpty(addFavoriteToolTip) ? (\n <div className={style.showToolTip}>\n <span>{favorite ? removeFavoriteToolTip : addFavoriteToolTip}</span>\n </div>\n ) : null;\n\n return (\n <div className={style.blocFavorite}>\n {toolTipView}\n <div\n data-name=\"favorite\"\n className={classnames(style.favorite, className, favorite && style.selected)}\n onClick={this.handleFavoviteClick}\n style={{\n color: primaryColor\n }}\n >\n {favorite ? (\n <CheckIcon className={style.checkIcon} color={brandColor} width={13} height={13} />\n ) : (\n <MoreIcon className={style.moreIcon} color={darkColor} width={13} height={13} />\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default Favorite;\n"],"file":"favorite.js"}
1
+ {"version":3,"sources":["../../../src/molecule/card/favorite.js"],"names":["Favorite","React","Component","constructor","props","context","handleFavoviteClick","bind","e","disabled","onFavoriteClick","stopPropagation","preventDefault","render","skin","favorite","addFavoriteToolTip","removeFavoriteToolTip","className","ariaLabel","primaryColor","darkColor","brandColor","toolTipView","style","showToolTip","blocFavorite","selected","color","checkIcon","removeFromFavorite","moreIcon","addToFavorite","Provider","childContextTypes","propTypes","PropTypes","string","bool","func","shape"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, noop} from 'lodash/fp';\nimport {\n NovaCompositionNavigationMore as MoreIcon,\n NovaCompositionCoorpacademyCheck as CheckIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport style from './favorite.css';\n\nclass Favorite extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n favorite: PropTypes.bool,\n disabled: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onFavoriteClick: PropTypes.func,\n 'aria-label': PropTypes.shape({\n favorite: PropTypes.string,\n addToFavorite: PropTypes.string,\n removeFromFavorite: PropTypes.string\n })\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props, context) {\n super(props, context);\n this.handleFavoviteClick = this.handleFavoviteClick.bind(this);\n }\n\n handleFavoviteClick(e) {\n const {disabled, onFavoriteClick = noop} = this.props;\n e.stopPropagation();\n e.preventDefault();\n if (!disabled) onFavoriteClick(e);\n }\n\n render() {\n const {skin} = this.context;\n const {\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n className,\n 'aria-label': ariaLabel = {}\n } = this.props;\n\n const primaryColor = get('common.primary', skin);\n const darkColor = get('common.dark', skin);\n const brandColor = get('common.brand', skin);\n const toolTipView =\n !isEmpty(removeFavoriteToolTip) && !isEmpty(addFavoriteToolTip) ? (\n <div className={style.showToolTip}>\n <span>{favorite ? removeFavoriteToolTip : addFavoriteToolTip}</span>\n </div>\n ) : null;\n\n return (\n <div className={style.blocFavorite}>\n {toolTipView}\n <div\n data-name=\"favorite\"\n aria-label={ariaLabel.favorite}\n className={classnames(style.favorite, className, favorite && style.selected)}\n onClick={this.handleFavoviteClick}\n style={{\n color: primaryColor\n }}\n >\n {favorite ? (\n <CheckIcon\n className={style.checkIcon}\n color={brandColor}\n width={13}\n height={13}\n aria-label={ariaLabel.removeFromFavorite}\n />\n ) : (\n <MoreIcon\n className={style.moreIcon}\n color={darkColor}\n width={13}\n height={13}\n aria-label={ariaLabel.addToFavorite}\n />\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default Favorite;\n"],"file":"favorite.js"}
@@ -54,7 +54,8 @@ exports.THEMES = THEMES;
54
54
  const CardBackground = ({
55
55
  type,
56
56
  image,
57
- empty
57
+ empty,
58
+ 'aria-label': ariaLabel
58
59
  }, {
59
60
  skin
60
61
  }) => {
@@ -86,6 +87,7 @@ const CardBackground = ({
86
87
  className: _style.default.imageWrapper
87
88
  }, /*#__PURE__*/_react.default.createElement("div", {
88
89
  "data-name": "cover",
90
+ "aria-label": ariaLabel,
89
91
  style: {
90
92
  backgroundColor: iconColor,
91
93
  backgroundImage: `url('${image}')`
@@ -98,6 +100,7 @@ const CardBackground = ({
98
100
  className: _style.default.imageWrapper
99
101
  }, /*#__PURE__*/_react.default.createElement("div", {
100
102
  "data-name": "cover",
103
+ "aria-label": ariaLabel,
101
104
  style: {
102
105
  backgroundColor: iconColor
103
106
  },
@@ -113,6 +116,7 @@ const CardBackground = ({
113
116
  className: (0, _classnames.default)(_style.default.imageWrapper, type === 'chapter' ? _style.default.chapterImageWrapper : null)
114
117
  }, /*#__PURE__*/_react.default.createElement("div", {
115
118
  "data-name": "cover",
119
+ "aria-label": ariaLabel,
116
120
  className: _style.default.image,
117
121
  style: {
118
122
  backgroundColor: primaryColor,
@@ -127,7 +131,8 @@ CardBackground.contextTypes = {
127
131
  CardBackground.propTypes = process.env.NODE_ENV !== "production" ? {
128
132
  type: _propTypes.default.string,
129
133
  image: _propTypes.default.string,
130
- empty: _propTypes.default.bool
134
+ empty: _propTypes.default.bool,
135
+ 'aria-label': _propTypes.default.string
131
136
  } : {};
132
137
  const Card = (0, _react.memo)(function Card(props, context) {
133
138
  const {
@@ -153,7 +158,15 @@ const Card = (0, _react.memo)(function Card(props, context) {
153
158
  notification,
154
159
  badgeCategory,
155
160
  badgeLabel,
156
- theme = 'default'
161
+ theme = 'default',
162
+ 'aria-label': cardArialabel,
163
+ 'background-aria-label': backgroundAriaLabel,
164
+ 'favorite-aria-label': favoriteAriaLabel,
165
+ 'selectable-aria-label': selectableAriaLabel,
166
+ 'customer-aria-label': customerAriaLabel,
167
+ 'badge-aria-label': badgeAriaLabel,
168
+ 'disabled-aria-label': disabledArialabel,
169
+ 'card-content-aria-label': cardContentLabelAriaLabel
157
170
  } = props;
158
171
  const empty = (0, _isEmpty2.default)((0, _pick2.default)(['title', 'type', 'author', 'image'], props));
159
172
  const primaryColor = (0, _get2.default)('common.primary', skin);
@@ -188,24 +201,29 @@ const Card = (0, _react.memo)(function Card(props, context) {
188
201
  "data-lock": disabled,
189
202
  "data-type": getType(type),
190
203
  disabled: disabled,
191
- onClick: handleClick
204
+ onClick: handleClick,
205
+ "aria-label": cardArialabel
192
206
  }, /*#__PURE__*/_react.default.createElement(CardBackground, {
193
207
  type: type,
194
208
  image: image,
195
- empty: empty
209
+ empty: empty,
210
+ "aria-label": backgroundAriaLabel
196
211
  }), (0, _isUndefined2.default)(isSelected) && !(0, _isUndefined2.default)(favorite) ? /*#__PURE__*/_react.default.createElement(_favorite.default, {
197
212
  className: _style.default.favorite,
198
213
  favorite: favorite,
199
214
  disabled: disabled,
200
215
  onFavoriteClick: onFavoriteClick,
201
216
  addFavoriteToolTip: addFavoriteToolTip,
202
- removeFavoriteToolTip: removeFavoriteToolTip
217
+ removeFavoriteToolTip: removeFavoriteToolTip,
218
+ "aria-label": favoriteAriaLabel
203
219
  }) : null, /*#__PURE__*/_react.default.createElement(_selectable.default, {
204
- isSelected: isSelected
220
+ isSelected: isSelected,
221
+ "aria-label": selectableAriaLabel
205
222
  }), notification ? /*#__PURE__*/_react.default.createElement(_notification.default, notification) : null, customer ? /*#__PURE__*/_react.default.createElement(_customer.default, _extends({}, customer, {
206
223
  theme: theme,
207
224
  type: type,
208
- disabled: disabled
225
+ disabled: disabled,
226
+ "aria-label": customerAriaLabel
209
227
  })) : null, /*#__PURE__*/_react.default.createElement(_cardContent.default, {
210
228
  mode: _cardContent.MODES.CARD,
211
229
  adaptiv: adaptiv,
@@ -218,12 +236,15 @@ const Card = (0, _react.memo)(function Card(props, context) {
218
236
  type: type,
219
237
  badgeCategory: badgeCategory,
220
238
  badgeLabel: badgeLabel,
221
- theme: theme
239
+ theme: theme,
240
+ "aria-label": cardContentLabelAriaLabel
222
241
  }), badge ? /*#__PURE__*/_react.default.createElement("div", {
223
242
  className: _style.default.badge,
224
- style: inlineBadgeStyle
243
+ style: inlineBadgeStyle,
244
+ "aria-label": badgeAriaLabel
225
245
  }, badge) : null, disabled ? /*#__PURE__*/_react.default.createElement("div", {
226
- className: _style.default.lockWrapper
246
+ className: _style.default.lockWrapper,
247
+ "aria-label": disabledArialabel
227
248
  }, lock) : null);
228
249
  });
229
250
  Card.contextTypes = {
@@ -249,7 +270,15 @@ Card.propTypes = process.env.NODE_ENV !== "production" ? {
249
270
  notification: _propTypes.default.shape(_notification.default.propTypes),
250
271
  badgeCategory: _cardContent.default.propTypes.badgeCategory,
251
272
  badgeLabel: _cardContent.default.propTypes.badgeLabel,
252
- theme: _propTypes.default.oneOf((0, _keys2.default)(THEMES))
273
+ theme: _propTypes.default.oneOf((0, _keys2.default)(THEMES)),
274
+ 'aria-label': _propTypes.default.string,
275
+ 'background-aria-label': _propTypes.default.string,
276
+ 'favorite-aria-label': _favorite.default.propTypes['aria-label'],
277
+ 'selectable-aria-label': _selectable.default.propTypes['aria-label'],
278
+ 'customer-aria-label': _customer.default.propTypes['aria-label'],
279
+ 'badge-aria-label': _propTypes.default.string,
280
+ 'disabled-aria-label': _propTypes.default.string,
281
+ 'card-content-aria-label': _cardContent.default.propTypes['aria-label']
253
282
  } : {};
254
283
  var _default = Card;
255
284
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/card/index.js"],"names":["THEMES","default","coorpmanager","style","CardBackground","type","image","empty","skin","externalContent","primaryColor","whiteColor","EXTERNAL_CONTENT_ICONS","IconType","icon","iconColor","color","backgroundIcon","externalIconCircleWrapper","externalIcon","_backgroundIcon","externalIconCircleWithImageWrapper","backgroundColor","externalIconWithImage","imageWrapper","backgroundImage","externalContentHeader","externalBackground","emptyIcon","chapterImageWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","Card","props","context","badge","adaptiv","disabled","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","theme","cardStyle","chapter","course","lazy","grid","handleClick","e","lock","lockIcon","inlineBadgeStyle","getType","contentType","MODES","CARD","lockWrapper","shape","Customer","number","func","Notification","CardContentInfo","oneOf"],"mappings":"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","sourcesContent":["import React, {useMemo, memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, isUndefined, pick, keys} from 'lodash/fp';\nimport {\n NovaSolidLoginLocked as LockIcon,\n NovaCompositionCoorpacademyPictures as PicturesIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport CardContentInfo, {MODES} from '../card-content';\nimport Customer from './customer';\nimport Favorite from './favorite';\nimport Selectable from './selectable';\nimport Notification from './notification';\nimport style from './style.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst CardBackground = ({type, image, empty}, {skin}) => {\n const externalContent = isExternalContent(type);\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const iconColor = EXTERNAL_CONTENT_ICONS[type].color;\n const backgroundIcon = (\n <div className={style.externalIconCircleWrapper}>\n <IconType className={style.externalIcon} />\n </div>\n );\n\n if (image) {\n const _backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n style={{\n backgroundColor: iconColor\n }}\n >\n <IconType className={style.externalIconWithImage} />\n </div>\n );\n\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n style={{\n backgroundColor: iconColor,\n backgroundImage: `url('${image}')`\n }}\n className={classnames(style.externalContentHeader, style.externalBackground)}\n >\n {_backgroundIcon}\n </div>\n </div>\n );\n }\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n style={{\n backgroundColor: iconColor\n }}\n className={style.externalContentHeader}\n >\n {backgroundIcon}\n </div>\n </div>\n );\n }\n\n const emptyIcon = empty ? <PicturesIcon className={style.emptyIcon} color={whiteColor} /> : null;\n return (\n <div\n className={classnames(\n style.imageWrapper,\n type === 'chapter' ? style.chapterImageWrapper : null\n )}\n >\n <div\n data-name=\"cover\"\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n >\n {emptyIcon}\n </div>\n </div>\n );\n};\n\nCardBackground.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCardBackground.propTypes = {\n type: PropTypes.string,\n image: PropTypes.string,\n empty: PropTypes.bool\n};\n\nconst Card = memo(function Card(props, context) {\n const {skin} = context;\n const {\n image,\n badge,\n adaptiv,\n disabled = false,\n type = 'course',\n title,\n author,\n customer,\n certifiedAuthor,\n progress,\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n onClick,\n onFavoriteClick,\n isSelected,\n notification,\n badgeCategory,\n badgeLabel,\n theme = 'default'\n } = props;\n const empty = isEmpty(pick(['title', 'type', 'author', 'image'], props));\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n const cardStyle = classnames(\n THEMES[theme],\n type === 'chapter' ? style.chapter : style.course,\n title ? null : style.lazy,\n style.grid,\n empty ? style.empty : null\n );\n const handleClick = useMemo(() => e => !disabled && onClick(e), [disabled, onClick]);\n const lock = disabled ? (\n <LockIcon className={style.lockIcon} color={whiteColor} height={40} />\n ) : null;\n const inlineBadgeStyle = {color: primaryColor};\n const getType = contentType => {\n switch (contentType) {\n case 'chapter':\n return 'microlearning';\n case 'course':\n return 'learner';\n default:\n return contentType;\n }\n };\n\n return (\n <div\n className={cardStyle}\n data-name=\"card\"\n data-lock={disabled}\n data-type={getType(type)}\n disabled={disabled}\n onClick={handleClick}\n >\n <CardBackground type={type} image={image} empty={empty} />\n {isUndefined(isSelected) && !isUndefined(favorite) ? (\n <Favorite\n className={style.favorite}\n favorite={favorite}\n disabled={disabled}\n onFavoriteClick={onFavoriteClick}\n addFavoriteToolTip={addFavoriteToolTip}\n removeFavoriteToolTip={removeFavoriteToolTip}\n />\n ) : null}\n <Selectable isSelected={isSelected} />\n {notification ? <Notification {...notification} /> : null}\n {customer ? <Customer {...customer} theme={theme} type={type} disabled={disabled} /> : null}\n <CardContentInfo\n mode={MODES.CARD}\n adaptiv={adaptiv}\n author={author}\n certifiedAuthor={certifiedAuthor}\n disabled={disabled}\n empty={empty}\n progress={progress}\n title={title}\n type={type}\n badgeCategory={badgeCategory}\n badgeLabel={badgeLabel}\n theme={theme}\n />\n {badge ? (\n <div className={style.badge} style={inlineBadgeStyle}>\n {badge}\n </div>\n ) : null}\n {disabled ? <div className={style.lockWrapper}>{lock}</div> : null}\n </div>\n );\n});\n\nCard.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCard.propTypes = {\n badge: PropTypes.string,\n image: PropTypes.string,\n disabled: PropTypes.bool,\n adaptiv: PropTypes.bool,\n type: PropTypes.string,\n title: PropTypes.string,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n customer: PropTypes.shape(Customer.propTypes),\n progress: PropTypes.number,\n favorite: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onClick: PropTypes.func,\n onFavoriteClick: PropTypes.func,\n isSelected: PropTypes.bool,\n notification: PropTypes.shape(Notification.propTypes),\n badgeCategory: CardContentInfo.propTypes.badgeCategory,\n badgeLabel: CardContentInfo.propTypes.badgeLabel,\n theme: PropTypes.oneOf(keys(THEMES))\n};\nexport default Card;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/card/index.js"],"names":["THEMES","default","coorpmanager","style","CardBackground","type","image","empty","ariaLabel","skin","externalContent","primaryColor","whiteColor","EXTERNAL_CONTENT_ICONS","IconType","icon","iconColor","color","backgroundIcon","externalIconCircleWrapper","externalIcon","_backgroundIcon","externalIconCircleWithImageWrapper","backgroundColor","externalIconWithImage","imageWrapper","backgroundImage","externalContentHeader","externalBackground","emptyIcon","chapterImageWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","Card","props","context","badge","adaptiv","disabled","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","theme","cardArialabel","backgroundAriaLabel","favoriteAriaLabel","selectableAriaLabel","customerAriaLabel","badgeAriaLabel","disabledArialabel","cardContentLabelAriaLabel","cardStyle","chapter","course","lazy","grid","handleClick","e","lock","lockIcon","inlineBadgeStyle","getType","contentType","MODES","CARD","lockWrapper","shape","Customer","number","func","Notification","CardContentInfo","oneOf","Favorite","Selectable"],"mappings":"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","sourcesContent":["import React, {useMemo, memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, isUndefined, pick, keys} from 'lodash/fp';\nimport {\n NovaSolidLoginLocked as LockIcon,\n NovaCompositionCoorpacademyPictures as PicturesIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport CardContentInfo, {MODES} from '../card-content';\nimport Customer from './customer';\nimport Favorite from './favorite';\nimport Selectable from './selectable';\nimport Notification from './notification';\nimport style from './style.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst CardBackground = ({type, image, empty, 'aria-label': ariaLabel}, {skin}) => {\n const externalContent = isExternalContent(type);\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const iconColor = EXTERNAL_CONTENT_ICONS[type].color;\n const backgroundIcon = (\n <div className={style.externalIconCircleWrapper}>\n <IconType className={style.externalIcon} />\n </div>\n );\n\n if (image) {\n const _backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n style={{\n backgroundColor: iconColor\n }}\n >\n <IconType className={style.externalIconWithImage} />\n </div>\n );\n\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor,\n backgroundImage: `url('${image}')`\n }}\n className={classnames(style.externalContentHeader, style.externalBackground)}\n >\n {_backgroundIcon}\n </div>\n </div>\n );\n }\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor\n }}\n className={style.externalContentHeader}\n >\n {backgroundIcon}\n </div>\n </div>\n );\n }\n\n const emptyIcon = empty ? <PicturesIcon className={style.emptyIcon} color={whiteColor} /> : null;\n return (\n <div\n className={classnames(\n style.imageWrapper,\n type === 'chapter' ? style.chapterImageWrapper : null\n )}\n >\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n >\n {emptyIcon}\n </div>\n </div>\n );\n};\n\nCardBackground.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCardBackground.propTypes = {\n type: PropTypes.string,\n image: PropTypes.string,\n empty: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nconst Card = memo(function Card(props, context) {\n const {skin} = context;\n const {\n image,\n badge,\n adaptiv,\n disabled = false,\n type = 'course',\n title,\n author,\n customer,\n certifiedAuthor,\n progress,\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n onClick,\n onFavoriteClick,\n isSelected,\n notification,\n badgeCategory,\n badgeLabel,\n theme = 'default',\n 'aria-label': cardArialabel,\n 'background-aria-label': backgroundAriaLabel,\n 'favorite-aria-label': favoriteAriaLabel,\n 'selectable-aria-label': selectableAriaLabel,\n 'customer-aria-label': customerAriaLabel,\n 'badge-aria-label': badgeAriaLabel,\n 'disabled-aria-label': disabledArialabel,\n 'card-content-aria-label': cardContentLabelAriaLabel\n } = props;\n const empty = isEmpty(pick(['title', 'type', 'author', 'image'], props));\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n const cardStyle = classnames(\n THEMES[theme],\n type === 'chapter' ? style.chapter : style.course,\n title ? null : style.lazy,\n style.grid,\n empty ? style.empty : null\n );\n const handleClick = useMemo(() => e => !disabled && onClick(e), [disabled, onClick]);\n const lock = disabled ? (\n <LockIcon className={style.lockIcon} color={whiteColor} height={40} />\n ) : null;\n const inlineBadgeStyle = {color: primaryColor};\n const getType = contentType => {\n switch (contentType) {\n case 'chapter':\n return 'microlearning';\n case 'course':\n return 'learner';\n default:\n return contentType;\n }\n };\n\n return (\n <div\n className={cardStyle}\n data-name=\"card\"\n data-lock={disabled}\n data-type={getType(type)}\n disabled={disabled}\n onClick={handleClick}\n aria-label={cardArialabel}\n >\n <CardBackground type={type} image={image} empty={empty} aria-label={backgroundAriaLabel} />\n {isUndefined(isSelected) && !isUndefined(favorite) ? (\n <Favorite\n className={style.favorite}\n favorite={favorite}\n disabled={disabled}\n onFavoriteClick={onFavoriteClick}\n addFavoriteToolTip={addFavoriteToolTip}\n removeFavoriteToolTip={removeFavoriteToolTip}\n aria-label={favoriteAriaLabel}\n />\n ) : null}\n <Selectable isSelected={isSelected} aria-label={selectableAriaLabel} />\n {notification ? <Notification {...notification} /> : null}\n {customer ? (\n <Customer\n {...customer}\n theme={theme}\n type={type}\n disabled={disabled}\n aria-label={customerAriaLabel}\n />\n ) : null}\n <CardContentInfo\n mode={MODES.CARD}\n adaptiv={adaptiv}\n author={author}\n certifiedAuthor={certifiedAuthor}\n disabled={disabled}\n empty={empty}\n progress={progress}\n title={title}\n type={type}\n badgeCategory={badgeCategory}\n badgeLabel={badgeLabel}\n theme={theme}\n aria-label={cardContentLabelAriaLabel}\n />\n {badge ? (\n <div className={style.badge} style={inlineBadgeStyle} aria-label={badgeAriaLabel}>\n {badge}\n </div>\n ) : null}\n {disabled ? (\n <div className={style.lockWrapper} aria-label={disabledArialabel}>\n {lock}\n </div>\n ) : null}\n </div>\n );\n});\n\nCard.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCard.propTypes = {\n badge: PropTypes.string,\n image: PropTypes.string,\n disabled: PropTypes.bool,\n adaptiv: PropTypes.bool,\n type: PropTypes.string,\n title: PropTypes.string,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n customer: PropTypes.shape(Customer.propTypes),\n progress: PropTypes.number,\n favorite: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onClick: PropTypes.func,\n onFavoriteClick: PropTypes.func,\n isSelected: PropTypes.bool,\n notification: PropTypes.shape(Notification.propTypes),\n badgeCategory: CardContentInfo.propTypes.badgeCategory,\n badgeLabel: CardContentInfo.propTypes.badgeLabel,\n theme: PropTypes.oneOf(keys(THEMES)),\n 'aria-label': PropTypes.string,\n 'background-aria-label': PropTypes.string,\n 'favorite-aria-label': Favorite.propTypes['aria-label'],\n 'selectable-aria-label': Selectable.propTypes['aria-label'],\n 'customer-aria-label': Customer.propTypes['aria-label'],\n 'badge-aria-label': PropTypes.string,\n 'disabled-aria-label': PropTypes.string,\n 'card-content-aria-label': CardContentInfo.propTypes['aria-label']\n};\nexport default Card;\n"],"file":"index.js"}