@coorpacademy/components 10.1.10 → 10.1.13

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 (127) hide show
  1. package/es/atom/input-checkbox/index.js +9 -3
  2. package/es/atom/input-checkbox/index.js.map +1 -1
  3. package/es/atom/input-checkbox/style.css +15 -0
  4. package/es/atom/tag/test/fixtures.js +4 -2
  5. package/es/atom/tag/test/fixtures.js.map +1 -1
  6. package/es/molecule/banner/index.js +1 -1
  7. package/es/molecule/banner/index.js.map +1 -1
  8. package/es/molecule/brand-form-group/style.css +5 -0
  9. package/es/molecule/brand-tabs/style.css +0 -1
  10. package/es/molecule/bullet-point-menu-button/index.js +1 -5
  11. package/es/molecule/bullet-point-menu-button/index.js.map +1 -1
  12. package/es/molecule/bullet-point-menu-button/style.css +11 -7
  13. package/es/molecule/select-multiple/index.js +101 -16
  14. package/es/molecule/select-multiple/index.js.map +1 -1
  15. package/es/molecule/select-multiple/style.css +292 -11
  16. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme-multiple.js +32 -0
  17. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme-multiple.js.map +1 -0
  18. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme.js +32 -0
  19. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme.js.map +1 -0
  20. package/es/molecule/select-multiple/test/fixtures/setup-theme-error.js +1 -1
  21. package/es/molecule/select-multiple/test/fixtures/setup-theme-error.js.map +1 -1
  22. package/es/molecule/vertical-tabs/style.css +2 -2
  23. package/es/organism/accordion/coorp-manager/index.js +5 -2
  24. package/es/organism/accordion/coorp-manager/index.js.map +1 -1
  25. package/es/organism/brand-dashboard/index.js +1 -3
  26. package/es/organism/brand-dashboard/index.js.map +1 -1
  27. package/es/organism/brand-dashboard/style.css +0 -10
  28. package/es/organism/list-item/index.js +68 -0
  29. package/es/organism/list-item/index.js.map +1 -0
  30. package/es/organism/list-item/style.css +49 -0
  31. package/es/organism/list-item/test/fixtures/archived.js +39 -0
  32. package/es/organism/list-item/test/fixtures/archived.js.map +1 -0
  33. package/es/organism/list-item/test/fixtures/draft.js +39 -0
  34. package/es/organism/list-item/test/fixtures/draft.js.map +1 -0
  35. package/es/organism/list-item/test/fixtures/published.js +39 -0
  36. package/es/organism/list-item/test/fixtures/published.js.map +1 -0
  37. package/es/organism/list-item/test/fixtures/revised.js +41 -0
  38. package/es/organism/list-item/test/fixtures/revised.js.map +1 -0
  39. package/es/organism/list-item/test/fixtures.js +19 -0
  40. package/es/organism/list-item/test/fixtures.js.map +1 -0
  41. package/es/organism/playlist-translation/style.css +9 -2
  42. package/es/organism/setup-header/style.css +16 -7
  43. package/es/template/back-office/brand-update/index.js +106 -92
  44. package/es/template/back-office/brand-update/index.js.map +1 -1
  45. package/es/template/back-office/brand-update/style.css +22 -66
  46. package/es/template/back-office/brand-update/test/fixtures/default.js +1 -58
  47. package/es/template/back-office/brand-update/test/fixtures/default.js.map +1 -1
  48. package/es/template/back-office/brand-update/test/fixtures/general-settings.js +77 -3
  49. package/es/template/back-office/brand-update/test/fixtures/general-settings.js.map +1 -1
  50. package/es/template/back-office/brand-update/test/fixtures/loader.js +1 -1
  51. package/es/template/back-office/brand-update/test/fixtures/loader.js.map +1 -1
  52. package/es/template/back-office/brand-update/test/fixtures/manageusers-edit.js +1 -1
  53. package/es/template/back-office/brand-update/test/fixtures/manageusers-edit.js.map +1 -1
  54. package/es/template/back-office/brand-update/test/fixtures/manageusers-list.js +1 -1
  55. package/es/template/back-office/brand-update/test/fixtures/manageusers-list.js.map +1 -1
  56. package/es/template/back-office/brand-update/test/fixtures/uploadusers.js +1 -1
  57. package/es/template/back-office/brand-update/test/fixtures/uploadusers.js.map +1 -1
  58. package/es/template/back-office/brand-update/test/fixtures.js +0 -2
  59. package/es/template/back-office/brand-update/test/fixtures.js.map +1 -1
  60. package/lib/atom/input-checkbox/index.js +10 -3
  61. package/lib/atom/input-checkbox/index.js.map +1 -1
  62. package/lib/atom/input-checkbox/style.css +15 -0
  63. package/lib/atom/tag/test/fixtures.js +5 -2
  64. package/lib/atom/tag/test/fixtures.js.map +1 -1
  65. package/lib/molecule/banner/index.js +1 -1
  66. package/lib/molecule/banner/index.js.map +1 -1
  67. package/lib/molecule/brand-form-group/style.css +5 -0
  68. package/lib/molecule/brand-tabs/style.css +0 -1
  69. package/lib/molecule/bullet-point-menu-button/index.js +1 -5
  70. package/lib/molecule/bullet-point-menu-button/index.js.map +1 -1
  71. package/lib/molecule/bullet-point-menu-button/style.css +11 -7
  72. package/lib/molecule/select-multiple/index.js +103 -15
  73. package/lib/molecule/select-multiple/index.js.map +1 -1
  74. package/lib/molecule/select-multiple/style.css +292 -11
  75. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme-multiple.js +37 -0
  76. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme-multiple.js.map +1 -0
  77. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme.js +37 -0
  78. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme.js.map +1 -0
  79. package/lib/molecule/select-multiple/test/fixtures/setup-theme-error.js +1 -1
  80. package/lib/molecule/select-multiple/test/fixtures/setup-theme-error.js.map +1 -1
  81. package/lib/molecule/vertical-tabs/style.css +2 -2
  82. package/lib/organism/accordion/coorp-manager/index.js +4 -2
  83. package/lib/organism/accordion/coorp-manager/index.js.map +1 -1
  84. package/lib/organism/brand-dashboard/index.js +1 -3
  85. package/lib/organism/brand-dashboard/index.js.map +1 -1
  86. package/lib/organism/brand-dashboard/style.css +0 -10
  87. package/lib/organism/list-item/index.js +82 -0
  88. package/lib/organism/list-item/index.js.map +1 -0
  89. package/lib/organism/list-item/style.css +49 -0
  90. package/lib/organism/list-item/test/fixtures/archived.js +44 -0
  91. package/lib/organism/list-item/test/fixtures/archived.js.map +1 -0
  92. package/lib/organism/list-item/test/fixtures/draft.js +44 -0
  93. package/lib/organism/list-item/test/fixtures/draft.js.map +1 -0
  94. package/lib/organism/list-item/test/fixtures/published.js +44 -0
  95. package/lib/organism/list-item/test/fixtures/published.js.map +1 -0
  96. package/lib/organism/list-item/test/fixtures/revised.js +46 -0
  97. package/lib/organism/list-item/test/fixtures/revised.js.map +1 -0
  98. package/lib/organism/list-item/test/fixtures.js +31 -0
  99. package/lib/organism/list-item/test/fixtures.js.map +1 -0
  100. package/lib/organism/playlist-translation/style.css +9 -2
  101. package/lib/organism/setup-header/style.css +16 -7
  102. package/lib/template/back-office/brand-update/index.js +106 -93
  103. package/lib/template/back-office/brand-update/index.js.map +1 -1
  104. package/lib/template/back-office/brand-update/style.css +22 -66
  105. package/lib/template/back-office/brand-update/test/fixtures/default.js +1 -58
  106. package/lib/template/back-office/brand-update/test/fixtures/default.js.map +1 -1
  107. package/lib/template/back-office/brand-update/test/fixtures/general-settings.js +76 -3
  108. package/lib/template/back-office/brand-update/test/fixtures/general-settings.js.map +1 -1
  109. package/lib/template/back-office/brand-update/test/fixtures/loader.js +2 -2
  110. package/lib/template/back-office/brand-update/test/fixtures/loader.js.map +1 -1
  111. package/lib/template/back-office/brand-update/test/fixtures/manageusers-edit.js +2 -2
  112. package/lib/template/back-office/brand-update/test/fixtures/manageusers-edit.js.map +1 -1
  113. package/lib/template/back-office/brand-update/test/fixtures/manageusers-list.js +2 -2
  114. package/lib/template/back-office/brand-update/test/fixtures/manageusers-list.js.map +1 -1
  115. package/lib/template/back-office/brand-update/test/fixtures/uploadusers.js +2 -2
  116. package/lib/template/back-office/brand-update/test/fixtures/uploadusers.js.map +1 -1
  117. package/lib/template/back-office/brand-update/test/fixtures.js +0 -3
  118. package/lib/template/back-office/brand-update/test/fixtures.js.map +1 -1
  119. package/package.json +2 -2
  120. package/es/molecule/search/test/fixtures.js +0 -15
  121. package/es/molecule/search/test/fixtures.js.map +0 -1
  122. package/es/template/back-office/brand-update/test/fixtures/manageusers.js +0 -11
  123. package/es/template/back-office/brand-update/test/fixtures/manageusers.js.map +0 -1
  124. package/lib/molecule/search/test/fixtures.js +0 -25
  125. package/lib/molecule/search/test/fixtures.js.map +0 -1
  126. package/lib/template/back-office/brand-update/test/fixtures/manageusers.js +0 -25
  127. package/lib/template/back-office/brand-update/test/fixtures/manageusers.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/input-checkbox/index.js"],"names":["titleStylesClassNames","primary","style","secondary","tertiary","InputCheckbox","props","checked","onChange","error","disabled","required","titleStyle","modified","theme","title","propsTitle","titleStyleClassName","idCheckbox","handleChange","e","target","modifiedClassName","coorpManagerModified","defaultModified","errorClassName","coorpManagerError","defaultError","defaultContainerClassName","coorpManager","default","className","checkbox","icon","propTypes","PropTypes","string","isRequired","bool","func","oneOf"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;AAEA,MAAMA,qBAAqB,GAAG;AAC5BC,EAAAA,OAAO,EAAEC,eAAMD,OADa;AAE5BE,EAAAA,SAAS,EAAED,eAAMC,SAFW;AAG5BC,EAAAA,QAAQ,EAAEF,eAAME;AAHY,CAA9B;;AAMA,MAAMC,aAAa,GAAGC,KAAK,IAAI;AAC7B,QAAM;AACJC,IAAAA,OADI;AAEJC,IAAAA,QAAQ,iBAFJ;AAGJC,IAAAA,KAHI;AAIJC,IAAAA,QAJI;AAKJC,IAAAA,QALI;AAMJC,IAAAA,UAAU,GAAG,SANT;AAOJC,IAAAA,QAAQ,GAAG,KAPP;AAQJC,IAAAA,KAAK,GAAG,SARJ;AASJC,IAAAA,KAAK,EAAEC;AATH,MAUFV,KAVJ;AAYA,QAAMW,mBAAmB,GAAGjB,qBAAqB,CAACY,UAAD,CAAjD;AACA,QAAMM,UAAU,GAAG,wBAAS,iBAAT,CAAnB;AACA,QAAMH,KAAK,GAAI,GAAEC,UAAW,GAAEL,QAAQ,GAAG,GAAH,GAAS,EAAG,EAAlD;AACA,QAAMQ,YAAY,GAAG,oBAAQ,MAAMC,CAAC,IAAIZ,QAAQ,CAACY,CAAC,CAACC,MAAF,CAASd,OAAV,CAA3B,EAA+C,CAACC,QAAD,CAA/C,CAArB;AAEA,QAAMc,iBAAiB,GACrBR,KAAK,KAAK,cAAV,GAA2BZ,eAAMqB,oBAAjC,GAAwDrB,eAAMsB,eADhE;AAEA,QAAMC,cAAc,GAAGX,KAAK,KAAK,cAAV,GAA2BZ,eAAMwB,iBAAjC,GAAqDxB,eAAMyB,YAAlF;AACA,QAAMC,yBAAyB,GAAGd,KAAK,KAAK,cAAV,GAA2BZ,eAAM2B,YAAjC,GAAgD3B,eAAM4B,OAAxF;AAEA,QAAMC,SAAS,GAAG,4BAChBH,yBADgB,EAEhBN,iBAFgB,EAGhBG,cAHgB,EAIhBZ,QAJgB,EAKhBJ,KALgB,CAAlB;AAQA,sBACE;AAAK,IAAA,SAAS,EAAEsB;AAAhB,kBACE;AACE,IAAA,IAAI,EAAC,UADP;AAEE,IAAA,SAAS,EAAE7B,eAAM8B,QAFnB;AAGE,IAAA,IAAI,EAAEjB,KAHR;AAIE,IAAA,EAAE,EAAEG,UAJN;AAKE,IAAA,OAAO,EAAEX,OALX;AAME,IAAA,QAAQ,EAAEY,YANZ;AAOE,IAAA,QAAQ,EAAET;AAPZ,IADF,eAUE;AAAO,IAAA,OAAO,EAAEQ;AAAhB,kBACE,6BAAC,kCAAD;AAAW,IAAA,SAAS,EAAEhB,eAAM+B;AAA5B,IADF,CAVF,eAaE;AAAM,IAAA,SAAS,EAAEhB;AAAjB,KAAuCF,KAAvC,CAbF,CADF;AAiBD,CAhDD;;AAkDAV,aAAa,CAAC6B,SAAd,2CAA0B;AACxBnB,EAAAA,KAAK,EAAEoB,mBAAUC,MAAV,CAAiBC,UADA;AAExB3B,EAAAA,QAAQ,EAAEyB,mBAAUG,IAFI;AAGxB3B,EAAAA,QAAQ,EAAEwB,mBAAUG,IAHI;AAIxB/B,EAAAA,OAAO,EAAE4B,mBAAUG,IAJK;AAKxB7B,EAAAA,KAAK,EAAE0B,mBAAUG,IALO;AAMxB9B,EAAAA,QAAQ,EAAE2B,mBAAUI,IANI;AAOxB1B,EAAAA,QAAQ,EAAEsB,mBAAUG,IAPI;AAQxBxB,EAAAA,KAAK,EAAEqB,mBAAUK,KAAV,CAAgB,CAAC,cAAD,EAAiB,SAAjB,CAAhB,CARiB;AASxB5B,EAAAA,UAAU,EAAEuB,mBAAUK,KAAV,CAAgB,CAAC,SAAD,EAAY,WAAZ,EAAyB,UAAzB,CAAhB;AATY,CAA1B;eAYenC,a","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {NovaSolidStatusValidate as CheckIcon} from '@coorpacademy/nova-icons';\nimport {noop, uniqueId} from 'lodash/fp';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst titleStylesClassNames = {\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary\n};\n\nconst InputCheckbox = props => {\n const {\n checked,\n onChange = noop,\n error,\n disabled,\n required,\n titleStyle = 'primary',\n modified = false,\n theme = 'default',\n title: propsTitle\n } = props;\n\n const titleStyleClassName = titleStylesClassNames[titleStyle];\n const idCheckbox = uniqueId('input-checkbox-');\n const title = `${propsTitle}${required ? '*' : ''}`;\n const handleChange = useMemo(() => e => onChange(e.target.checked), [onChange]);\n\n const modifiedClassName =\n theme === 'coorpmanager' ? style.coorpManagerModified : style.defaultModified;\n const errorClassName = theme === 'coorpmanager' ? style.coorpManagerError : style.defaultError;\n const defaultContainerClassName = theme === 'coorpmanager' ? style.coorpManager : style.default;\n\n const className = getClassState(\n defaultContainerClassName,\n modifiedClassName,\n errorClassName,\n modified,\n error\n );\n\n return (\n <div className={className}>\n <input\n type=\"checkbox\"\n className={style.checkbox}\n name={title}\n id={idCheckbox}\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n />\n <label htmlFor={idCheckbox}>\n <CheckIcon className={style.icon} />\n </label>\n <span className={titleStyleClassName}>{title}</span>\n </div>\n );\n};\n\nInputCheckbox.propTypes = {\n title: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n checked: PropTypes.bool,\n error: PropTypes.bool,\n onChange: PropTypes.func,\n modified: PropTypes.bool,\n theme: PropTypes.oneOf(['coorpmanager', 'default']),\n titleStyle: PropTypes.oneOf(['primary', 'secondary', 'tertiary'])\n};\n\nexport default InputCheckbox;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/atom/input-checkbox/index.js"],"names":["titleStylesClassNames","inherit","style","primary","secondary","tertiary","InputCheckbox","props","checked","onChange","error","disabled","required","titleStyle","modified","theme","title","propsTitle","noLabelMargins","titleStyleClassName","idCheckbox","handleChange","e","target","modifiedClassName","coorpManagerModified","defaultModified","errorClassName","coorpManagerError","defaultError","defaultContainerClassName","coorpManager","default","className","checkbox","undefined","icon","propTypes","PropTypes","string","isRequired","bool","func","oneOf"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;AAEA,MAAMA,qBAAqB,GAAG;AAC5BC,EAAAA,OAAO,EAAEC,eAAMD,OADa;AAE5BE,EAAAA,OAAO,EAAED,eAAMC,OAFa;AAG5BC,EAAAA,SAAS,EAAEF,eAAME,SAHW;AAI5BC,EAAAA,QAAQ,EAAEH,eAAMG;AAJY,CAA9B;;AAOA,MAAMC,aAAa,GAAGC,KAAK,IAAI;AAC7B,QAAM;AACJC,IAAAA,OADI;AAEJC,IAAAA,QAAQ,iBAFJ;AAGJC,IAAAA,KAHI;AAIJC,IAAAA,QAJI;AAKJC,IAAAA,QALI;AAMJC,IAAAA,UAAU,GAAG,SANT;AAOJC,IAAAA,QAAQ,GAAG,KAPP;AAQJC,IAAAA,KAAK,GAAG,SARJ;AASJC,IAAAA,KAAK,EAAEC,UATH;AAUJC,IAAAA,cAAc,GAAG;AAVb,MAWFX,KAXJ;AAaA,QAAMY,mBAAmB,GAAGnB,qBAAqB,CAACa,UAAD,CAAjD;AACA,QAAMO,UAAU,GAAG,wBAAS,iBAAT,CAAnB;AACA,QAAMJ,KAAK,GAAI,GAAEC,UAAW,GAAEL,QAAQ,GAAG,GAAH,GAAS,EAAG,EAAlD;AACA,QAAMS,YAAY,GAAG,oBAAQ,MAAMC,CAAC,IAAIb,QAAQ,CAACa,CAAC,CAACC,MAAF,CAASf,OAAV,CAA3B,EAA+C,CAACC,QAAD,CAA/C,CAArB;AAEA,QAAMe,iBAAiB,GACrBT,KAAK,KAAK,cAAV,GAA2Bb,eAAMuB,oBAAjC,GAAwDvB,eAAMwB,eADhE;AAEA,QAAMC,cAAc,GAAGZ,KAAK,KAAK,cAAV,GAA2Bb,eAAM0B,iBAAjC,GAAqD1B,eAAM2B,YAAlF;AACA,QAAMC,yBAAyB,GAAGf,KAAK,KAAK,cAAV,GAA2Bb,eAAM6B,YAAjC,GAAgD7B,eAAM8B,OAAxF;AAEA,QAAMC,SAAS,GAAG,4BAChBH,yBADgB,EAEhBN,iBAFgB,EAGhBG,cAHgB,EAIhBb,QAJgB,EAKhBJ,KALgB,CAAlB;AAQA,sBACE;AAAK,IAAA,SAAS,EAAEuB;AAAhB,kBACE;AACE,IAAA,IAAI,EAAC,UADP;AAEE,IAAA,SAAS,EAAE/B,eAAMgC,QAFnB;AAGE,IAAA,IAAI,EAAElB,KAHR;AAIE,IAAA,EAAE,EAAEI,UAJN;AAKE,IAAA,OAAO,EAAEZ,OALX;AAME,IAAA,QAAQ,EAAEa,YANZ;AAOE,IAAA,QAAQ,EAAEV;AAPZ,IADF,eAUE;AAAO,IAAA,SAAS,EAAEO,cAAc,GAAGhB,eAAMgB,cAAT,GAA0BiB,SAA1D;AAAqE,IAAA,OAAO,EAAEf;AAA9E,kBACE,6BAAC,kCAAD;AAAW,IAAA,SAAS,EAAElB,eAAMkC;AAA5B,IADF,CAVF,eAaE;AAAM,IAAA,SAAS,EAAEjB,mBAAjB;AAAsC,IAAA,KAAK,EAAEH;AAA7C,KACGA,KADH,CAbF,CADF;AAmBD,CAnDD;;AAqDAV,aAAa,CAAC+B,SAAd,2CAA0B;AACxBrB,EAAAA,KAAK,EAAEsB,mBAAUC,MAAV,CAAiBC,UADA;AAExB7B,EAAAA,QAAQ,EAAE2B,mBAAUG,IAFI;AAGxB7B,EAAAA,QAAQ,EAAE0B,mBAAUG,IAHI;AAIxBjC,EAAAA,OAAO,EAAE8B,mBAAUG,IAJK;AAKxB/B,EAAAA,KAAK,EAAE4B,mBAAUG,IALO;AAMxBhC,EAAAA,QAAQ,EAAE6B,mBAAUI,IANI;AAOxB5B,EAAAA,QAAQ,EAAEwB,mBAAUG,IAPI;AAQxBvB,EAAAA,cAAc,EAAEoB,mBAAUG,IARF;AASxB1B,EAAAA,KAAK,EAAEuB,mBAAUK,KAAV,CAAgB,CAAC,cAAD,EAAiB,SAAjB,CAAhB,CATiB;AAUxB9B,EAAAA,UAAU,EAAEyB,mBAAUK,KAAV,CAAgB,oBAAK3C,qBAAL,CAAhB;AAVY,CAA1B;eAaeM,a","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {NovaSolidStatusValidate as CheckIcon} from '@coorpacademy/nova-icons';\nimport {keys, noop, uniqueId} from 'lodash/fp';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst titleStylesClassNames = {\n inherit: style.inherit,\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary\n};\n\nconst InputCheckbox = props => {\n const {\n checked,\n onChange = noop,\n error,\n disabled,\n required,\n titleStyle = 'primary',\n modified = false,\n theme = 'default',\n title: propsTitle,\n noLabelMargins = false\n } = props;\n\n const titleStyleClassName = titleStylesClassNames[titleStyle];\n const idCheckbox = uniqueId('input-checkbox-');\n const title = `${propsTitle}${required ? '*' : ''}`;\n const handleChange = useMemo(() => e => onChange(e.target.checked), [onChange]);\n\n const modifiedClassName =\n theme === 'coorpmanager' ? style.coorpManagerModified : style.defaultModified;\n const errorClassName = theme === 'coorpmanager' ? style.coorpManagerError : style.defaultError;\n const defaultContainerClassName = theme === 'coorpmanager' ? style.coorpManager : style.default;\n\n const className = getClassState(\n defaultContainerClassName,\n modifiedClassName,\n errorClassName,\n modified,\n error\n );\n\n return (\n <div className={className}>\n <input\n type=\"checkbox\"\n className={style.checkbox}\n name={title}\n id={idCheckbox}\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n />\n <label className={noLabelMargins ? style.noLabelMargins : undefined} htmlFor={idCheckbox}>\n <CheckIcon className={style.icon} />\n </label>\n <span className={titleStyleClassName} title={title}>\n {title}\n </span>\n </div>\n );\n};\n\nInputCheckbox.propTypes = {\n title: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n checked: PropTypes.bool,\n error: PropTypes.bool,\n onChange: PropTypes.func,\n modified: PropTypes.bool,\n noLabelMargins: PropTypes.bool,\n theme: PropTypes.oneOf(['coorpmanager', 'default']),\n titleStyle: PropTypes.oneOf(keys(titleStylesClassNames))\n};\n\nexport default InputCheckbox;\n"],"file":"index.js"}
@@ -143,3 +143,18 @@
143
143
  .coorpManagerModified .checkbox:checked + label {
144
144
  outline: 2px solid battle;
145
145
  }
146
+
147
+ .default .inherit,
148
+ .coorpManager .inherit {
149
+ color: inherit;
150
+ text-overflow: ellipsis;
151
+ white-space: nowrap;
152
+ overflow: hidden;
153
+ width: 100%;
154
+ }
155
+
156
+ .coorpManager .noLabelMargins,
157
+ .default .noLabelMargins {
158
+ margin-right: 0;
159
+ margin-left: 0;
160
+ }
@@ -12,9 +12,11 @@ var _archived = _interopRequireDefault(require("./fixtures/archived"));
12
12
 
13
13
  var _default = _interopRequireDefault(require("./fixtures/default"));
14
14
 
15
+ var _draft = _interopRequireDefault(require("./fixtures/draft"));
16
+
15
17
  var _published = _interopRequireDefault(require("./fixtures/published"));
16
18
 
17
- var _revision = _interopRequireDefault(require("./fixtures/revision"));
19
+ var _revised = _interopRequireDefault(require("./fixtures/revised"));
18
20
 
19
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
22
 
@@ -26,6 +28,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
26
28
  });
27
29
  (0, _ava.default)('Atom › AtomTag › Archived › should be rendered', _renderComponent.default, _.default, _archived.default);
28
30
  (0, _ava.default)('Atom › AtomTag › Default › should be rendered', _renderComponent.default, _.default, _default.default);
31
+ (0, _ava.default)('Atom › AtomTag › Draft › should be rendered', _renderComponent.default, _.default, _draft.default);
29
32
  (0, _ava.default)('Atom › AtomTag › Published › should be rendered', _renderComponent.default, _.default, _published.default);
30
- (0, _ava.default)('Atom › AtomTag › Revision › should be rendered', _renderComponent.default, _.default, _revision.default);
33
+ (0, _ava.default)('Atom › AtomTag › Revised › should be rendered', _renderComponent.default, _.default, _revised.default);
31
34
  //# sourceMappingURL=fixtures.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/atom/tag/test/fixtures.js"],"names":["t","pass","AtomTag","propTypes","value","key","not","undefined","renderComponentMacro","fixtureArchived","fixtureDefault","fixturePublished","fixtureRevision"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,kBAAK,8CAAL,EAAqDA,CAAC,IAAI;AACxDA,EAAAA,CAAC,CAACC,IAAF;AACA,wBAAQC,UAAQC,SAAhB,EAA2B,CAACC,KAAD,EAAQC,GAAR,KAAgB;AACzCL,IAAAA,CAAC,CAACM,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,wCAAuCF,GAAI,mEAApE;AACD,GAFD;AAGD,CALD;AAOA,kBAAK,gDAAL,EAAuDG,wBAAvD,EAA6EN,SAA7E,EAAsFO,iBAAtF;AACA,kBAAK,+CAAL,EAAsDD,wBAAtD,EAA4EN,SAA5E,EAAqFQ,gBAArF;AACA,kBAAK,iDAAL,EAAwDF,wBAAxD,EAA8EN,SAA9E,EAAuFS,kBAAvF;AACA,kBAAK,gDAAL,EAAuDH,wBAAvD,EAA6EN,SAA7E,EAAsFU,iBAAtF","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport AtomTag from '..';\nimport fixtureArchived from './fixtures/archived';\nimport fixtureDefault from './fixtures/default';\nimport fixturePublished from './fixtures/published';\nimport fixtureRevision from './fixtures/revision';\n\ntest('Atom › AtomTag > should have valid propTypes', t => {\n t.pass();\n forEach(AtomTag.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Atom.AtomTag.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Atom › AtomTag › Archived › should be rendered', renderComponentMacro, AtomTag, fixtureArchived);\ntest('Atom › AtomTag › Default › should be rendered', renderComponentMacro, AtomTag, fixtureDefault);\ntest('Atom › AtomTag › Published › should be rendered', renderComponentMacro, AtomTag, fixturePublished);\ntest('Atom › AtomTag › Revision › should be rendered', renderComponentMacro, AtomTag, fixtureRevision);\n"],"file":"fixtures.js"}
1
+ {"version":3,"sources":["../../../../src/atom/tag/test/fixtures.js"],"names":["t","pass","AtomTag","propTypes","value","key","not","undefined","renderComponentMacro","fixtureArchived","fixtureDefault","fixtureDraft","fixturePublished","fixtureRevised"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,kBAAK,8CAAL,EAAqDA,CAAC,IAAI;AACxDA,EAAAA,CAAC,CAACC,IAAF;AACA,wBAAQC,UAAQC,SAAhB,EAA2B,CAACC,KAAD,EAAQC,GAAR,KAAgB;AACzCL,IAAAA,CAAC,CAACM,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,wCAAuCF,GAAI,mEAApE;AACD,GAFD;AAGD,CALD;AAOA,kBAAK,gDAAL,EAAuDG,wBAAvD,EAA6EN,SAA7E,EAAsFO,iBAAtF;AACA,kBAAK,+CAAL,EAAsDD,wBAAtD,EAA4EN,SAA5E,EAAqFQ,gBAArF;AACA,kBAAK,6CAAL,EAAoDF,wBAApD,EAA0EN,SAA1E,EAAmFS,cAAnF;AACA,kBAAK,iDAAL,EAAwDH,wBAAxD,EAA8EN,SAA9E,EAAuFU,kBAAvF;AACA,kBAAK,+CAAL,EAAsDJ,wBAAtD,EAA4EN,SAA5E,EAAqFW,gBAArF","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport AtomTag from '..';\nimport fixtureArchived from './fixtures/archived';\nimport fixtureDefault from './fixtures/default';\nimport fixtureDraft from './fixtures/draft';\nimport fixturePublished from './fixtures/published';\nimport fixtureRevised from './fixtures/revised';\n\ntest('Atom › AtomTag > should have valid propTypes', t => {\n t.pass();\n forEach(AtomTag.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Atom.AtomTag.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Atom › AtomTag › Archived › should be rendered', renderComponentMacro, AtomTag, fixtureArchived);\ntest('Atom › AtomTag › Default › should be rendered', renderComponentMacro, AtomTag, fixtureDefault);\ntest('Atom › AtomTag › Draft › should be rendered', renderComponentMacro, AtomTag, fixtureDraft);\ntest('Atom › AtomTag › Published › should be rendered', renderComponentMacro, AtomTag, fixturePublished);\ntest('Atom › AtomTag › Revised › should be rendered', renderComponentMacro, AtomTag, fixtureRevised);\n"],"file":"fixtures.js"}
@@ -56,7 +56,7 @@ const Banner = props => {
56
56
  };
57
57
 
58
58
  Banner.propTypes = process.env.NODE_ENV !== "production" ? {
59
- type: _propTypes.default.oneOf(['information', 'error']),
59
+ type: _propTypes.default.oneOf(['information', 'error', 'success']),
60
60
  message: _propTypes.default.string.isRequired,
61
61
  firstCTA: _propTypes.default.func,
62
62
  firstCTALabel: _propTypes.default.string,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/banner/index.js"],"names":["Banner","props","type","message","firstCTA","firstCTALabel","secondCTALabel","secondCTA","style","banner","errorBanner","icon","button","buttonsBar","propTypes","PropTypes","oneOf","string","isRequired","func"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,MAAM,GAAGC,KAAK,IAAI;AACtB,QAAM;AAACC,IAAAA,IAAD;AAAOC,IAAAA,OAAP;AAAgBC,IAAAA,QAAhB;AAA0BC,IAAAA,aAA1B;AAAyCC,IAAAA,cAAzC;AAAyDC,IAAAA;AAAzD,MAAsEN,KAA5E;AACA,sBACE;AACE,IAAA,SAAS,EAAE,yBAAWO,eAAMC,MAAjB,EAAyBP,IAAI,KAAK,OAAT,IAAoBM,eAAME,WAAnD,CADb;AAEE,IAAA,KAAK,EAAEP;AAFT,kBAIE;AAAK,iBAAY,GAAED,IAAK,iBAAxB;AAA0C,IAAA,SAAS,EAAEM,eAAML;AAA3D,kBACE,6BAAC,0DAAD;AAAc,IAAA,SAAS,EAAEK,eAAMG;AAA/B,IADF,EAEGR,OAFH,CAJF,EAQGE,aAAa,gBACZ;AAAK,IAAA,SAAS,EAAEG,eAAMI;AAAtB,kBACE,6BAAC,mBAAD;AACE,iBAAU,kBADZ;AAEE,kBAAYP,aAFd;AAGE,IAAA,KAAK,EAAEA,aAHT;AAIE,IAAA,OAAO,EAAED,QAJX;AAKE,IAAA,IAAI,EAAC;AALP,IADF,CADY,GAUV,IAlBN,EAmBGC,aAAa,IAAIC,cAAjB,gBAAkC;AAAK,IAAA,SAAS,EAAEE,eAAMK;AAAtB,IAAlC,GAAyE,IAnB5E,EAoBGP,cAAc,gBACb;AAAK,IAAA,SAAS,EAAEE,eAAMI;AAAtB,kBACE,6BAAC,mBAAD;AACE,iBAAU,mBADZ;AAEE,IAAA,OAAO,EAAEL,SAFX;AAGE,kBAAYD,cAHd;AAIE,IAAA,KAAK,EAAEA,cAJT;AAKE,IAAA,IAAI,EAAC;AALP,IADF,CADa,GAUX,IA9BN,CADF;AAkCD,CApCD;;AAsCAN,MAAM,CAACc,SAAP,2CAAmB;AACjBZ,EAAAA,IAAI,EAAEa,mBAAUC,KAAV,CAAgB,CAAC,aAAD,EAAgB,OAAhB,CAAhB,CADW;AAEjBb,EAAAA,OAAO,EAAEY,mBAAUE,MAAV,CAAiBC,UAFT;AAGjBd,EAAAA,QAAQ,EAAEW,mBAAUI,IAHH;AAIjBd,EAAAA,aAAa,EAAEU,mBAAUE,MAJR;AAKjBX,EAAAA,cAAc,EAAES,mBAAUE,MALT;AAMjBV,EAAAA,SAAS,EAAEQ,mBAAUI;AANJ,CAAnB;eASenB,M","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {NovaSolidInterfaceFeedbackInterfaceAlertDiamond as QuestionIcon} from '@coorpacademy/nova-icons';\nimport Link from '../../atom/button-link';\nimport style from './style.css';\n\nconst Banner = props => {\n const {type, message, firstCTA, firstCTALabel, secondCTALabel, secondCTA} = props;\n return (\n <div\n className={classnames(style.banner, type === 'error' && style.errorBanner)}\n title={message}\n >\n <div data-name={`${type}-banner-message`} className={style.message}>\n <QuestionIcon className={style.icon} />\n {message}\n </div>\n {firstCTALabel ? (\n <div className={style.button}>\n <Link\n data-name=\"first-banner-cta\"\n aria-label={firstCTALabel}\n label={firstCTALabel}\n onClick={firstCTA}\n type=\"text\"\n />\n </div>\n ) : null}\n {firstCTALabel && secondCTALabel ? <div className={style.buttonsBar} /> : null}\n {secondCTALabel ? (\n <div className={style.button}>\n <Link\n data-name=\"second-banner-cta\"\n onClick={secondCTA}\n aria-label={secondCTALabel}\n label={secondCTALabel}\n type=\"text\"\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nBanner.propTypes = {\n type: PropTypes.oneOf(['information', 'error']),\n message: PropTypes.string.isRequired,\n firstCTA: PropTypes.func,\n firstCTALabel: PropTypes.string,\n secondCTALabel: PropTypes.string,\n secondCTA: PropTypes.func\n};\n\nexport default Banner;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/banner/index.js"],"names":["Banner","props","type","message","firstCTA","firstCTALabel","secondCTALabel","secondCTA","style","banner","errorBanner","icon","button","buttonsBar","propTypes","PropTypes","oneOf","string","isRequired","func"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,MAAM,GAAGC,KAAK,IAAI;AACtB,QAAM;AAACC,IAAAA,IAAD;AAAOC,IAAAA,OAAP;AAAgBC,IAAAA,QAAhB;AAA0BC,IAAAA,aAA1B;AAAyCC,IAAAA,cAAzC;AAAyDC,IAAAA;AAAzD,MAAsEN,KAA5E;AACA,sBACE;AACE,IAAA,SAAS,EAAE,yBAAWO,eAAMC,MAAjB,EAAyBP,IAAI,KAAK,OAAT,IAAoBM,eAAME,WAAnD,CADb;AAEE,IAAA,KAAK,EAAEP;AAFT,kBAIE;AAAK,iBAAY,GAAED,IAAK,iBAAxB;AAA0C,IAAA,SAAS,EAAEM,eAAML;AAA3D,kBACE,6BAAC,0DAAD;AAAc,IAAA,SAAS,EAAEK,eAAMG;AAA/B,IADF,EAEGR,OAFH,CAJF,EAQGE,aAAa,gBACZ;AAAK,IAAA,SAAS,EAAEG,eAAMI;AAAtB,kBACE,6BAAC,mBAAD;AACE,iBAAU,kBADZ;AAEE,kBAAYP,aAFd;AAGE,IAAA,KAAK,EAAEA,aAHT;AAIE,IAAA,OAAO,EAAED,QAJX;AAKE,IAAA,IAAI,EAAC;AALP,IADF,CADY,GAUV,IAlBN,EAmBGC,aAAa,IAAIC,cAAjB,gBAAkC;AAAK,IAAA,SAAS,EAAEE,eAAMK;AAAtB,IAAlC,GAAyE,IAnB5E,EAoBGP,cAAc,gBACb;AAAK,IAAA,SAAS,EAAEE,eAAMI;AAAtB,kBACE,6BAAC,mBAAD;AACE,iBAAU,mBADZ;AAEE,IAAA,OAAO,EAAEL,SAFX;AAGE,kBAAYD,cAHd;AAIE,IAAA,KAAK,EAAEA,cAJT;AAKE,IAAA,IAAI,EAAC;AALP,IADF,CADa,GAUX,IA9BN,CADF;AAkCD,CApCD;;AAsCAN,MAAM,CAACc,SAAP,2CAAmB;AACjBZ,EAAAA,IAAI,EAAEa,mBAAUC,KAAV,CAAgB,CAAC,aAAD,EAAgB,OAAhB,EAAyB,SAAzB,CAAhB,CADW;AAEjBb,EAAAA,OAAO,EAAEY,mBAAUE,MAAV,CAAiBC,UAFT;AAGjBd,EAAAA,QAAQ,EAAEW,mBAAUI,IAHH;AAIjBd,EAAAA,aAAa,EAAEU,mBAAUE,MAJR;AAKjBX,EAAAA,cAAc,EAAES,mBAAUE,MALT;AAMjBV,EAAAA,SAAS,EAAEQ,mBAAUI;AANJ,CAAnB;eASenB,M","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {NovaSolidInterfaceFeedbackInterfaceAlertDiamond as QuestionIcon} from '@coorpacademy/nova-icons';\nimport Link from '../../atom/button-link';\nimport style from './style.css';\n\nconst Banner = props => {\n const {type, message, firstCTA, firstCTALabel, secondCTALabel, secondCTA} = props;\n return (\n <div\n className={classnames(style.banner, type === 'error' && style.errorBanner)}\n title={message}\n >\n <div data-name={`${type}-banner-message`} className={style.message}>\n <QuestionIcon className={style.icon} />\n {message}\n </div>\n {firstCTALabel ? (\n <div className={style.button}>\n <Link\n data-name=\"first-banner-cta\"\n aria-label={firstCTALabel}\n label={firstCTALabel}\n onClick={firstCTA}\n type=\"text\"\n />\n </div>\n ) : null}\n {firstCTALabel && secondCTALabel ? <div className={style.buttonsBar} /> : null}\n {secondCTALabel ? (\n <div className={style.button}>\n <Link\n data-name=\"second-banner-cta\"\n onClick={secondCTA}\n aria-label={secondCTALabel}\n label={secondCTALabel}\n type=\"text\"\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nBanner.propTypes = {\n type: PropTypes.oneOf(['information', 'error', 'success']),\n message: PropTypes.string.isRequired,\n firstCTA: PropTypes.func,\n firstCTALabel: PropTypes.string,\n secondCTALabel: PropTypes.string,\n secondCTA: PropTypes.func\n};\n\nexport default Banner;\n"],"file":"index.js"}
@@ -11,6 +11,11 @@
11
11
  margin-bottom: 20px;
12
12
  }
13
13
 
14
+ .titleWrapper:first-child {
15
+ margin-top: 0;
16
+ margin-bottom: 20px;
17
+ }
18
+
14
19
  .grid {
15
20
  display: flex;
16
21
  flex-wrap: wrap;
@@ -8,7 +8,6 @@
8
8
 
9
9
  .wrapper {
10
10
  width: 100%;
11
- height: 72px;
12
11
  background-color: white;
13
12
  display: flex;
14
13
  }
@@ -19,8 +19,6 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
19
19
 
20
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
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
22
  const BulletPointMenuButton = props => {
25
23
  const {
26
24
  disabled = false,
@@ -52,9 +50,7 @@ const BulletPointMenuButton = props => {
52
50
  return /*#__PURE__*/_react.default.createElement("div", {
53
51
  className: _style.default.bulletPointWrapper,
54
52
  "data-name": "bullet-point-wrapper"
55
- }, /*#__PURE__*/_react.default.createElement(_buttonLinkIconOnly.default, _extends({}, bulletPointButtonProps, {
56
- className: _style.default.bulletPointButton
57
- })), menu);
53
+ }, /*#__PURE__*/_react.default.createElement(_buttonLinkIconOnly.default, bulletPointButtonProps), menu);
58
54
  };
59
55
 
60
56
  BulletPointMenuButton.propTypes = process.env.NODE_ENV !== "production" ? {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/bullet-point-menu-button/index.js"],"names":["BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","buttons","handleOnClick","menuProps","menu","style","bulletPointMenu","bulletPointButtonProps","size","icon","bulletPointWrapper","bulletPointButton","propTypes","PropTypes","bool","string","ButtonMenu","func"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,qBAAqB,GAAGC,KAAK,IAAI;AACrC,QAAM;AAACC,IAAAA,QAAQ,GAAG,KAAZ;AAAmBC,IAAAA,eAAnB;AAAoCC,IAAAA,aAApC;AAAmDC,IAAAA,OAAnD;AAA4DC,IAAAA;AAA5D,MAAuEL,KAA7E;AACA,QAAMM,aAAa,GAAG,wBAAY,MAAMF,OAAO,EAAzB,EAA6B,CAACA,OAAD,CAA7B,CAAtB;AAEA,QAAMG,SAAS,GAAG;AAChB,iBAAa,aADG;AAEhBF,IAAAA;AAFgB,GAAlB;;AAKA,QAAMG,IAAI,gBACR;AAAK,IAAA,SAAS,EAAEC,eAAMC,eAAtB;AAAuC,iBAAU,cAAjD;AAAgE,kBAAYP;AAA5E,kBACE,6BAAC,mBAAD,EAAgBI,SAAhB,CADF,CADF;;AAKA,QAAMI,sBAAsB,GAAG;AAC7BC,IAAAA,IAAI,EAAE,SADuB;AAE7B,kBAAcV,eAFe;AAG7B,iBAAa,qBAHgB;AAI7BW,IAAAA,IAAI,EAAE,cAJuB;AAK7BT,IAAAA,OAAO,EAAEE,aALoB;AAM7BL,IAAAA;AAN6B,GAA/B;AASA,sBACE;AAAK,IAAA,SAAS,EAAEQ,eAAMK,kBAAtB;AAA0C,iBAAU;AAApD,kBACE,6BAAC,2BAAD,eAAwBH,sBAAxB;AAAgD,IAAA,SAAS,EAAEF,eAAMM;AAAjE,KADF,EAEGP,IAFH,CADF;AAMD,CA7BD;;AA+BAT,qBAAqB,CAACiB,SAAtB,2CAAkC;AAChCf,EAAAA,QAAQ,EAAEgB,mBAAUC,IADY;AAEhChB,EAAAA,eAAe,EAAEe,mBAAUE,MAFK;AAGhChB,EAAAA,aAAa,EAAEc,mBAAUE,MAHO;AAIhCd,EAAAA,OAAO,EAAEe,oBAAWJ,SAAX,CAAqBX,OAJE;AAKhCD,EAAAA,OAAO,EAAEa,mBAAUI;AALa,CAAlC;eAQetB,qB","sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport ButtonMenu from '../../atom/button-menu';\nimport style from './style.css';\n\nconst BulletPointMenuButton = props => {\n const {disabled = false, buttonAriaLabel, menuAriaLabel, onClick, buttons} = props;\n const handleOnClick = useCallback(() => onClick(), [onClick]);\n\n const menuProps = {\n 'data-name': 'button-menu',\n buttons\n };\n\n const menu = (\n <div className={style.bulletPointMenu} data-name=\"menu-wrapper\" aria-label={menuAriaLabel}>\n <ButtonMenu {...menuProps} />\n </div>\n );\n const bulletPointButtonProps = {\n size: 'default',\n 'aria-label': buttonAriaLabel,\n 'data-name': 'bullet-point-button',\n icon: 'bullet-point',\n onClick: handleOnClick,\n disabled\n };\n\n return (\n <div className={style.bulletPointWrapper} data-name=\"bullet-point-wrapper\">\n <ButtonLinkIconOnly {...bulletPointButtonProps} className={style.bulletPointButton} />\n {menu}\n </div>\n );\n};\n\nBulletPointMenuButton.propTypes = {\n disabled: PropTypes.bool,\n buttonAriaLabel: PropTypes.string,\n menuAriaLabel: PropTypes.string,\n buttons: ButtonMenu.propTypes.buttons,\n onClick: PropTypes.func\n};\n\nexport default BulletPointMenuButton;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/bullet-point-menu-button/index.js"],"names":["BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","buttons","handleOnClick","menuProps","menu","style","bulletPointMenu","bulletPointButtonProps","size","icon","bulletPointWrapper","propTypes","PropTypes","bool","string","ButtonMenu","func"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,qBAAqB,GAAGC,KAAK,IAAI;AACrC,QAAM;AAACC,IAAAA,QAAQ,GAAG,KAAZ;AAAmBC,IAAAA,eAAnB;AAAoCC,IAAAA,aAApC;AAAmDC,IAAAA,OAAnD;AAA4DC,IAAAA;AAA5D,MAAuEL,KAA7E;AACA,QAAMM,aAAa,GAAG,wBAAY,MAAMF,OAAO,EAAzB,EAA6B,CAACA,OAAD,CAA7B,CAAtB;AAEA,QAAMG,SAAS,GAAG;AAChB,iBAAa,aADG;AAEhBF,IAAAA;AAFgB,GAAlB;;AAKA,QAAMG,IAAI,gBACR;AAAK,IAAA,SAAS,EAAEC,eAAMC,eAAtB;AAAuC,iBAAU,cAAjD;AAAgE,kBAAYP;AAA5E,kBACE,6BAAC,mBAAD,EAAgBI,SAAhB,CADF,CADF;;AAKA,QAAMI,sBAAsB,GAAG;AAC7BC,IAAAA,IAAI,EAAE,SADuB;AAE7B,kBAAcV,eAFe;AAG7B,iBAAa,qBAHgB;AAI7BW,IAAAA,IAAI,EAAE,cAJuB;AAK7BT,IAAAA,OAAO,EAAEE,aALoB;AAM7BL,IAAAA;AAN6B,GAA/B;AASA,sBACE;AAAK,IAAA,SAAS,EAAEQ,eAAMK,kBAAtB;AAA0C,iBAAU;AAApD,kBACE,6BAAC,2BAAD,EAAwBH,sBAAxB,CADF,EAEGH,IAFH,CADF;AAMD,CA7BD;;AA+BAT,qBAAqB,CAACgB,SAAtB,2CAAkC;AAChCd,EAAAA,QAAQ,EAAEe,mBAAUC,IADY;AAEhCf,EAAAA,eAAe,EAAEc,mBAAUE,MAFK;AAGhCf,EAAAA,aAAa,EAAEa,mBAAUE,MAHO;AAIhCb,EAAAA,OAAO,EAAEc,oBAAWJ,SAAX,CAAqBV,OAJE;AAKhCD,EAAAA,OAAO,EAAEY,mBAAUI;AALa,CAAlC;eAQerB,qB","sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport ButtonMenu from '../../atom/button-menu';\nimport style from './style.css';\n\nconst BulletPointMenuButton = props => {\n const {disabled = false, buttonAriaLabel, menuAriaLabel, onClick, buttons} = props;\n const handleOnClick = useCallback(() => onClick(), [onClick]);\n\n const menuProps = {\n 'data-name': 'button-menu',\n buttons\n };\n\n const menu = (\n <div className={style.bulletPointMenu} data-name=\"menu-wrapper\" aria-label={menuAriaLabel}>\n <ButtonMenu {...menuProps} />\n </div>\n );\n const bulletPointButtonProps = {\n size: 'default',\n 'aria-label': buttonAriaLabel,\n 'data-name': 'bullet-point-button',\n icon: 'bullet-point',\n onClick: handleOnClick,\n disabled\n };\n\n return (\n <div className={style.bulletPointWrapper} data-name=\"bullet-point-wrapper\">\n <ButtonLinkIconOnly {...bulletPointButtonProps} />\n {menu}\n </div>\n );\n};\n\nBulletPointMenuButton.propTypes = {\n disabled: PropTypes.bool,\n buttonAriaLabel: PropTypes.string,\n menuAriaLabel: PropTypes.string,\n buttons: ButtonMenu.propTypes.buttons,\n onClick: PropTypes.func\n};\n\nexport default BulletPointMenuButton;\n"],"file":"index.js"}
@@ -10,7 +10,7 @@
10
10
  position: relative;
11
11
  }
12
12
 
13
- .bulletPointButton {
13
+ .bulletPointWrapper > button {
14
14
  position: relative;
15
15
  cursor: pointer;
16
16
  }
@@ -31,8 +31,8 @@
31
31
  background-color: cm_grey_100;
32
32
  }
33
33
 
34
- /* Fade-in - Fade-out */
35
- .bulletPointButton,button + .bulletPointMenu {
34
+ /* Fade-in - Fade-out, does target button class but bulletPointMenu only */
35
+ button + .bulletPointMenu {
36
36
  max-height: 0;
37
37
  /* fade out combo */
38
38
  visibility: hidden;
@@ -40,13 +40,17 @@
40
40
  transition:visibility 0.5s ease,opacity 0.5s ease;
41
41
  }
42
42
 
43
- .bulletPointButton,button:focus + .bulletPointMenu {
43
+ /* Does target button class but bulletPointMenu only */
44
+ button:focus + .bulletPointMenu {
44
45
  /* fade in combo */
45
46
  max-height: max-content;
46
47
  visibility:visible;
47
48
  opacity:1;
48
49
  }
49
50
 
50
- /* Recover - unset pointer-events */
51
- .bulletPointButton,button:focus { pointer-events: none; }
52
- .bulletPointButton,button:not(:focus) { pointer-events: auto; }
51
+ /*
52
+ Recover - unset pointer-events,
53
+ to be able to click on the button when the menu is open to close it
54
+ */
55
+ .bulletPointWrapper > button:focus { pointer-events: none; }
56
+ .bulletPointWrapper > button:not(:focus) { pointer-events: auto; }
@@ -3,6 +3,10 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = exports.useChoices = void 0;
5
5
 
6
+ var _isEmpty2 = _interopRequireDefault(require("lodash/fp/isEmpty"));
7
+
8
+ var _keys2 = _interopRequireDefault(require("lodash/fp/keys"));
9
+
6
10
  var _set2 = _interopRequireDefault(require("lodash/fp/set"));
7
11
 
8
12
  var _get2 = _interopRequireDefault(require("lodash/fp/get"));
@@ -27,6 +31,8 @@ var _titledCheckbox = _interopRequireDefault(require("../titled-checkbox"));
27
31
 
28
32
  var _provider = _interopRequireDefault(require("../../atom/provider"));
29
33
 
34
+ var _inputCheckbox = _interopRequireDefault(require("../../atom/input-checkbox"));
35
+
30
36
  var _getClassState = _interopRequireDefault(require("../../util/get-class-state"));
31
37
 
32
38
  var _style = _interopRequireDefault(require("./style.css"));
@@ -42,7 +48,8 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
42
48
  const themeStyle = {
43
49
  setup: _style.default.setup,
44
50
  cockpit: _style.default.cockpit,
45
- sidebar: _style.default.sidebar
51
+ sidebar: _style.default.sidebar,
52
+ coorpmanager: _style.default.coorpmanager
46
53
  };
47
54
 
48
55
  const useChoices = options => {
@@ -62,17 +69,49 @@ const useChoices = options => {
62
69
 
63
70
  exports.useChoices = useChoices;
64
71
 
72
+ const CMMultipleView = ({
73
+ multiple,
74
+ choice,
75
+ onChange
76
+ }) => {
77
+ const handleChange = (0, _react.useCallback)(checked => {
78
+ if (!multiple) {
79
+ return onChange(choice);
80
+ }
81
+
82
+ return onChange(_extends(_extends({}, choice), {}, {
83
+ selected: checked
84
+ }));
85
+ }, [onChange, choice]);
86
+ return multiple ? /*#__PURE__*/_react.default.createElement("div", {
87
+ className: _style.default.item
88
+ }, /*#__PURE__*/_react.default.createElement(_inputCheckbox.default, {
89
+ titleStyle: "inherit",
90
+ checked: choice.selected,
91
+ onChange: handleChange,
92
+ noLabelMargins: true,
93
+ title: choice.name
94
+ })) : /*#__PURE__*/_react.default.createElement("span", {
95
+ className: _style.default.item,
96
+ onClick: handleChange,
97
+ title: choice.name
98
+ }, choice.name);
99
+ };
100
+
65
101
  const SelectMultiple = ({
66
102
  title,
67
103
  options,
68
104
  theme,
69
105
  placeholder,
70
106
  description,
107
+ hint,
71
108
  multiple,
72
109
  onChange,
110
+ onError,
73
111
  modified = false,
74
112
  required = false,
75
- error = false
113
+ error = '',
114
+ disabled = false
76
115
  }, {
77
116
  skin
78
117
  }) => {
@@ -84,7 +123,10 @@ const SelectMultiple = ({
84
123
  const handleOnClick = (0, _react.useCallback)(e => {
85
124
  e.preventDefault();
86
125
  e.stopPropagation();
87
- updateIsOpened(prev => !prev);
126
+
127
+ if (!disabled) {
128
+ updateIsOpened(prev => !prev);
129
+ }
88
130
  }, []);
89
131
  const closeHandle = (0, _react.useCallback)(e => {
90
132
  if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {
@@ -109,6 +151,7 @@ const SelectMultiple = ({
109
151
  document.removeEventListener('touchstart', closeHandle);
110
152
  };
111
153
  }, [closeHandle]);
154
+ const isCMTheme = theme === 'coorpmanager';
112
155
 
113
156
  const lines = _map2.default.convert({
114
157
  cap: false
@@ -116,7 +159,13 @@ const SelectMultiple = ({
116
159
  return /*#__PURE__*/_react.default.createElement("li", {
117
160
  key: i,
118
161
  className: _style.default.choice
119
- }, /*#__PURE__*/_react.default.createElement(_titledCheckbox.default, {
162
+ }, isCMTheme ? /*#__PURE__*/_react.default.createElement(CMMultipleView, {
163
+ multiple: multiple,
164
+ choice: _extends(_extends({}, choice), {}, {
165
+ i
166
+ }),
167
+ onChange: handleChange
168
+ }) : /*#__PURE__*/_react.default.createElement(_titledCheckbox.default, {
120
169
  onToggle: handleChange,
121
170
  choice: _extends(_extends({}, choice), {}, {
122
171
  i
@@ -131,47 +180,86 @@ const SelectMultiple = ({
131
180
 
132
181
  const _title = title && `${title}${required ? ' *' : ''}`;
133
182
 
134
- const titleView = title ? /*#__PURE__*/_react.default.createElement("span", {
135
- className: _style.default.title
136
- }, _title, " ") : null;
137
183
  const isActive = isOpened === true;
184
+ const titleView = title ? /*#__PURE__*/_react.default.createElement("span", {
185
+ className: (0, _classnames.default)(_style.default.title, isCMTheme && selection && _style.default.titleWithSelection, isCMTheme && (0, _isEmpty2.default)(selection) && _style.default.noValue, isActive && _style.default.active)
186
+ }, _title, isCMTheme ? /*#__PURE__*/_react.default.createElement("div", {
187
+ className: _style.default.infoIconWrapper
188
+ }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyInformationIcon, {
189
+ className: _style.default.infoIcon
190
+ }), /*#__PURE__*/_react.default.createElement("div", {
191
+ className: _style.default.descriptionLabel
192
+ }, description)) : null) : null;
193
+ const hintView = isCMTheme && !isActive ? /*#__PURE__*/_react.default.createElement("div", {
194
+ className: _style.default.hint // eslint-disable-next-line react/no-danger
195
+ ,
196
+ dangerouslySetInnerHTML: {
197
+ __html: error || hint
198
+ }
199
+ }) : null;
138
200
  const mainClass = theme ? themeStyle[theme] : _style.default.default;
201
+ const showPlaceholder = isCMTheme && isActive;
139
202
  const behaviourClassName = (0, _getClassState.default)(_style.default.default, _style.default.modified, _style.default.error, modified, error);
203
+ const errorIconView = error ? /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidStatusClose, {
204
+ onClick: onError,
205
+ className: _style.default.errorIcon
206
+ }) : null;
140
207
  return /*#__PURE__*/_react.default.createElement("div", {
141
- className: (0, _classnames.default)(mainClass, behaviourClassName),
208
+ className: (0, _classnames.default)(mainClass, behaviourClassName, disabled && _style.default.disabled),
142
209
  ref: nodeRef
143
- }, /*#__PURE__*/_react.default.createElement("label", null, titleView, /*#__PURE__*/_react.default.createElement("div", {
210
+ }, /*#__PURE__*/_react.default.createElement("label", null, !isCMTheme && titleView, /*#__PURE__*/_react.default.createElement("div", {
144
211
  className: _style.default.select,
145
212
  title: selection || placeholder,
146
213
  onClick: handleOnClick
147
- }, selection || placeholder, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowDown, {
214
+ }, isCMTheme && titleView, /*#__PURE__*/_react.default.createElement("span", {
215
+ className: (0, _classnames.default)(_style.default.selection, isCMTheme && (0, _isEmpty2.default)(selection) && _style.default.noselection)
216
+ }, selection || !isCMTheme || showPlaceholder && placeholder || null), isCMTheme ? /*#__PURE__*/_react.default.createElement("div", {
217
+ className: _style.default.iconsWrapper
218
+ }, /*#__PURE__*/_react.default.createElement("div", {
219
+ className: _style.default.flex
220
+ }, errorIconView), /*#__PURE__*/_react.default.createElement("div", {
221
+ className: (0, _classnames.default)(_style.default.flex, isActive && _style.default.clicked)
222
+ }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowDown, {
223
+ color: black,
224
+ className: (0, _classnames.default)(_style.default.arrow, {
225
+ [_style.default.down]: isActive
226
+ })
227
+ }))) : /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowDown, {
148
228
  color: black,
149
229
  className: (0, _classnames.default)(_style.default.arrow, {
150
230
  [_style.default.down]: isActive
151
231
  })
152
232
  })), /*#__PURE__*/_react.default.createElement("div", {
153
- className: isActive ? _style.default.activeChoices : _style.default.choices
233
+ className: (0, _classnames.default)(_style.default.choices, isActive && _style.default.activeChoices)
154
234
  }, /*#__PURE__*/_react.default.createElement("ul", {
155
235
  className: _style.default.list
156
- }, lines))), /*#__PURE__*/_react.default.createElement("div", {
236
+ }, lines))), !isCMTheme ? /*#__PURE__*/_react.default.createElement("div", {
157
237
  className: _style.default.description
158
- }, description));
238
+ }, description) : null, hintView);
159
239
  };
160
240
 
161
241
  SelectMultiple.contextTypes = {
162
242
  skin: _provider.default.childContextTypes.skin
163
243
  };
244
+ CMMultipleView.propTypes = process.env.NODE_ENV !== "production" ? {
245
+ multiple: _propTypes.default.bool,
246
+ choice: _titledCheckbox.default.propTypes.choice,
247
+ onChange: _propTypes.default.func
248
+ } : {};
164
249
  SelectMultiple.propTypes = process.env.NODE_ENV !== "production" ? {
165
250
  title: _propTypes.default.string,
166
251
  placeholder: _propTypes.default.string,
167
252
  description: _propTypes.default.string,
253
+ hint: _propTypes.default.string,
168
254
  options: _propTypes.default.arrayOf(_titledCheckbox.default.propTypes.choice),
169
255
  onChange: _propTypes.default.func,
256
+ onError: _propTypes.default.func,
170
257
  multiple: _propTypes.default.bool,
171
- theme: _propTypes.default.string,
172
258
  modified: _propTypes.default.bool,
259
+ disabled: _propTypes.default.bool,
173
260
  required: _propTypes.default.bool,
174
- error: _propTypes.default.bool
261
+ error: _propTypes.default.string,
262
+ theme: _propTypes.default.oneOf((0, _keys2.default)(themeStyle))
175
263
  } : {};
176
264
  var _default = SelectMultiple;
177
265
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/select-multiple/index.js"],"names":["themeStyle","setup","style","cockpit","sidebar","useChoices","options","choicesRef","getChoices","current","setChoices","choice","choices","i","selected","filter","c","SelectMultiple","title","theme","placeholder","description","multiple","onChange","modified","required","error","skin","isOpened","updateIsOpened","nodeRef","defaultColor","black","handleOnClick","e","preventDefault","stopPropagation","prev","closeHandle","contains","target","handleChange","document","addEventListener","removeEventListener","lines","convert","cap","selection","_title","titleView","isActive","mainClass","default","behaviourClassName","select","arrow","down","activeChoices","list","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","arrayOf","TitledCheckbox","func","bool"],"mappings":"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","sourcesContent":["import React, {useState, useEffect, useRef, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {map, pipe, join, filter, get, set} from 'lodash/fp';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport TitledCheckbox from '../titled-checkbox';\nimport Provider from '../../atom/provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setup,\n cockpit: style.cockpit,\n sidebar: style.sidebar\n};\n\nexport const useChoices = options => {\n const choicesRef = useRef(options);\n\n const getChoices = () => {\n return choicesRef.current;\n };\n\n const setChoices = choice => {\n const choices = set(`[${choice.i}].selected`, !choice.selected, getChoices());\n\n choicesRef.current = choices.filter(c => c.selected);\n };\n\n return [getChoices, setChoices];\n};\n\nconst SelectMultiple = (\n {\n title,\n options,\n theme,\n placeholder,\n description,\n multiple,\n onChange,\n modified = false,\n required = false,\n error = false\n },\n {skin}\n) => {\n const [isOpened, updateIsOpened] = useState(false);\n const [getChoices, setChoices] = useChoices(options);\n const nodeRef = useRef(null);\n\n const defaultColor = get('common.primary', skin);\n const black = get('common.black', skin);\n\n const handleOnClick = useCallback(e => {\n e.preventDefault();\n e.stopPropagation();\n\n updateIsOpened(prev => !prev);\n }, []);\n\n const closeHandle = useCallback(e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n updateIsOpened(false);\n }\n }, []);\n\n const handleChange = useCallback(\n choice => {\n // if multiple prop is turned on\n // we return all selected choices\n if (multiple) {\n setChoices(choice);\n\n return onChange(getChoices());\n }\n\n return onChange(choice);\n },\n [setChoices, multiple, onChange]\n );\n\n useEffect(() => {\n document.addEventListener('click', closeHandle);\n document.addEventListener('touchstart', closeHandle);\n\n return () => {\n document.removeEventListener('click', closeHandle);\n document.removeEventListener('touchstart', closeHandle);\n };\n }, [closeHandle]);\n\n const lines = map.convert({cap: false})((choice, i) => {\n return (\n <li key={i} className={style.choice}>\n <TitledCheckbox onToggle={handleChange} choice={{...choice, i}} background={defaultColor} />\n </li>\n );\n }, options);\n\n const selection = pipe(filter({selected: true}), map('name'), join(', '))(options);\n\n const _title = title && `${title}${required ? ' *' : ''}`;\n\n const titleView = title ? <span className={style.title}>{_title} </span> : null;\n const isActive = isOpened === true;\n const mainClass = theme ? themeStyle[theme] : style.default;\n const behaviourClassName = getClassState(\n style.default,\n style.modified,\n style.error,\n modified,\n error\n );\n\n return (\n <div className={classnames(mainClass, behaviourClassName)} ref={nodeRef}>\n <label>\n {titleView}\n <div className={style.select} title={selection || placeholder} onClick={handleOnClick}>\n {selection || placeholder}\n <ArrowDown color={black} className={classnames(style.arrow, {[style.down]: isActive})} />\n </div>\n <div className={isActive ? style.activeChoices : style.choices}>\n <ul className={style.list}>{lines}</ul>\n </div>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nSelectMultiple.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelectMultiple.propTypes = {\n title: PropTypes.string,\n placeholder: PropTypes.string,\n description: PropTypes.string,\n options: PropTypes.arrayOf(TitledCheckbox.propTypes.choice),\n onChange: PropTypes.func,\n multiple: PropTypes.bool,\n theme: PropTypes.string,\n modified: PropTypes.bool,\n required: PropTypes.bool,\n error: PropTypes.bool\n};\n\nexport default SelectMultiple;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/select-multiple/index.js"],"names":["themeStyle","setup","style","cockpit","sidebar","coorpmanager","useChoices","options","choicesRef","getChoices","current","setChoices","choice","choices","i","selected","filter","c","CMMultipleView","multiple","onChange","handleChange","checked","item","name","SelectMultiple","title","theme","placeholder","description","hint","onError","modified","required","error","disabled","skin","isOpened","updateIsOpened","nodeRef","defaultColor","black","handleOnClick","e","preventDefault","stopPropagation","prev","closeHandle","contains","target","document","addEventListener","removeEventListener","isCMTheme","lines","convert","cap","selection","_title","isActive","titleView","titleWithSelection","noValue","active","infoIconWrapper","infoIcon","descriptionLabel","hintView","__html","mainClass","default","showPlaceholder","behaviourClassName","errorIconView","errorIcon","select","noselection","iconsWrapper","flex","clicked","arrow","down","activeChoices","list","contextTypes","Provider","childContextTypes","propTypes","PropTypes","bool","TitledCheckbox","func","string","arrayOf","oneOf"],"mappings":"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","sourcesContent":["import React, {useState, useEffect, useRef, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {map, pipe, join, filter, get, set, keys, isEmpty} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaSolidStatusClose as ErrorIcon,\n NovaCompositionCoorpacademyInformationIcon as InfoIcon\n} from '@coorpacademy/nova-icons';\nimport TitledCheckbox from '../titled-checkbox';\nimport Provider from '../../atom/provider';\nimport Checkbox from '../../atom/input-checkbox';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setup,\n cockpit: style.cockpit,\n sidebar: style.sidebar,\n coorpmanager: style.coorpmanager\n};\n\nexport const useChoices = options => {\n const choicesRef = useRef(options);\n\n const getChoices = () => {\n return choicesRef.current;\n };\n\n const setChoices = choice => {\n const choices = set(`[${choice.i}].selected`, !choice.selected, getChoices());\n\n choicesRef.current = choices.filter(c => c.selected);\n };\n\n return [getChoices, setChoices];\n};\n\nconst CMMultipleView = ({multiple, choice, onChange}) => {\n const handleChange = useCallback(\n checked => {\n if (!multiple) {\n return onChange(choice);\n }\n return onChange({...choice, selected: checked});\n },\n [onChange, choice]\n );\n\n return multiple ? (\n <div className={style.item}>\n <Checkbox\n titleStyle=\"inherit\"\n checked={choice.selected}\n onChange={handleChange}\n noLabelMargins\n title={choice.name}\n />\n </div>\n ) : (\n <span className={style.item} onClick={handleChange} title={choice.name}>\n {choice.name}\n </span>\n );\n};\n\nconst SelectMultiple = (\n {\n title,\n options,\n theme,\n placeholder,\n description,\n hint,\n multiple,\n onChange,\n onError,\n modified = false,\n required = false,\n error = '',\n disabled = false\n },\n {skin}\n) => {\n const [isOpened, updateIsOpened] = useState(false);\n const [getChoices, setChoices] = useChoices(options);\n const nodeRef = useRef(null);\n\n const defaultColor = get('common.primary', skin);\n const black = get('common.black', skin);\n\n const handleOnClick = useCallback(e => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!disabled) {\n updateIsOpened(prev => !prev);\n }\n }, []);\n\n const closeHandle = useCallback(e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n updateIsOpened(false);\n }\n }, []);\n\n const handleChange = useCallback(\n choice => {\n // if multiple prop is turned on\n // we return all selected choices\n if (multiple) {\n setChoices(choice);\n\n return onChange(getChoices());\n }\n\n return onChange(choice);\n },\n [setChoices, multiple, onChange]\n );\n\n useEffect(() => {\n document.addEventListener('click', closeHandle);\n document.addEventListener('touchstart', closeHandle);\n\n return () => {\n document.removeEventListener('click', closeHandle);\n document.removeEventListener('touchstart', closeHandle);\n };\n }, [closeHandle]);\n\n const isCMTheme = theme === 'coorpmanager';\n\n const lines = map.convert({cap: false})((choice, i) => {\n return (\n <li key={i} className={style.choice}>\n {isCMTheme ? (\n <CMMultipleView multiple={multiple} choice={{...choice, i}} onChange={handleChange} />\n ) : (\n <TitledCheckbox\n onToggle={handleChange}\n choice={{...choice, i}}\n background={defaultColor}\n />\n )}\n </li>\n );\n }, options);\n\n const selection = pipe(filter({selected: true}), map('name'), join(', '))(options);\n\n const _title = title && `${title}${required ? ' *' : ''}`;\n\n const isActive = isOpened === true;\n\n const titleView = title ? (\n <span\n className={classnames(\n style.title,\n isCMTheme && selection && style.titleWithSelection,\n isCMTheme && isEmpty(selection) && style.noValue,\n isActive && style.active\n )}\n >\n {_title}\n {isCMTheme ? (\n <div className={style.infoIconWrapper}>\n <InfoIcon className={style.infoIcon} />\n <div className={style.descriptionLabel}>{description}</div>\n </div>\n ) : null}\n </span>\n ) : null;\n\n const hintView =\n isCMTheme && !isActive ? (\n <div\n className={style.hint}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: error || hint}}\n />\n ) : null;\n\n const mainClass = theme ? themeStyle[theme] : style.default;\n const showPlaceholder = isCMTheme && isActive;\n const behaviourClassName = getClassState(\n style.default,\n style.modified,\n style.error,\n modified,\n error\n );\n\n const errorIconView = error ? <ErrorIcon onClick={onError} className={style.errorIcon} /> : null;\n\n return (\n <div\n className={classnames(mainClass, behaviourClassName, disabled && style.disabled)}\n ref={nodeRef}\n >\n <label>\n {!isCMTheme && titleView}\n <div className={style.select} title={selection || placeholder} onClick={handleOnClick}>\n {isCMTheme && titleView}\n <span\n className={classnames(\n style.selection,\n isCMTheme && isEmpty(selection) && style.noselection\n )}\n >\n {selection || !isCMTheme || (showPlaceholder && placeholder) || null}\n </span>\n {isCMTheme ? (\n <div className={style.iconsWrapper}>\n <div className={style.flex}>{errorIconView}</div>\n <div className={classnames(style.flex, isActive && style.clicked)}>\n <ArrowDown\n color={black}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n </div>\n </div>\n ) : (\n <ArrowDown\n color={black}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n )}\n </div>\n <div className={classnames(style.choices, isActive && style.activeChoices)}>\n <ul className={style.list}>{lines}</ul>\n </div>\n </label>\n {!isCMTheme ? <div className={style.description}>{description}</div> : null}\n {hintView}\n </div>\n );\n};\n\nSelectMultiple.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCMMultipleView.propTypes = {\n multiple: PropTypes.bool,\n choice: TitledCheckbox.propTypes.choice,\n onChange: PropTypes.func\n};\n\nSelectMultiple.propTypes = {\n title: PropTypes.string,\n placeholder: PropTypes.string,\n description: PropTypes.string,\n hint: PropTypes.string,\n options: PropTypes.arrayOf(TitledCheckbox.propTypes.choice),\n onChange: PropTypes.func,\n onError: PropTypes.func,\n multiple: PropTypes.bool,\n modified: PropTypes.bool,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n error: PropTypes.string,\n theme: PropTypes.oneOf(keys(themeStyle))\n};\n\nexport default SelectMultiple;\n"],"file":"index.js"}