@coorpacademy/components 10.1.12 → 10.2.0

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 (171) hide show
  1. package/es/atom/button-link/index.js +1 -1
  2. package/es/atom/button-link/index.js.map +1 -1
  3. package/es/atom/button-link-icon-only/index.js +1 -1
  4. package/es/atom/button-link-icon-only/index.js.map +1 -1
  5. package/es/atom/button-menu/index.js +2 -4
  6. package/es/atom/button-menu/index.js.map +1 -1
  7. package/es/atom/chips/style.css +1 -2
  8. package/es/atom/image-upload/index.js +5 -3
  9. package/es/atom/image-upload/index.js.map +1 -1
  10. package/es/atom/input-checkbox/index.js +9 -3
  11. package/es/atom/input-checkbox/index.js.map +1 -1
  12. package/es/atom/input-checkbox/style.css +15 -0
  13. package/es/atom/input-color/style.css +1 -1
  14. package/es/hoc/transition/index.js +10 -3
  15. package/es/hoc/transition/index.js.map +1 -1
  16. package/es/molecule/banner/index.js +16 -7
  17. package/es/molecule/banner/index.js.map +1 -1
  18. package/es/molecule/banner/style.css +47 -0
  19. package/es/molecule/banner/test/fixtures/default.js +1 -1
  20. package/es/molecule/banner/test/fixtures/default.js.map +1 -1
  21. package/es/molecule/banner/test/fixtures/error-temporary-banner.js +8 -0
  22. package/es/molecule/banner/test/fixtures/error-temporary-banner.js.map +1 -0
  23. package/es/molecule/banner/test/fixtures/success-banner.js +7 -0
  24. package/es/molecule/banner/test/fixtures/success-banner.js.map +1 -0
  25. package/es/molecule/banner/test/fixtures/success-temporary-banner.js +8 -0
  26. package/es/molecule/banner/test/fixtures/success-temporary-banner.js.map +1 -0
  27. package/es/molecule/banner/test/fixtures/warning-temporary-banner.js +8 -0
  28. package/es/molecule/banner/test/fixtures/warning-temporary-banner.js.map +1 -0
  29. package/es/molecule/banner/test/fixtures.js +4 -0
  30. package/es/molecule/banner/test/fixtures.js.map +1 -1
  31. package/es/molecule/brand-create-form/index.js +4 -1
  32. package/es/molecule/brand-create-form/index.js.map +1 -1
  33. package/es/molecule/bullet-point-menu-button/index.js +1 -5
  34. package/es/molecule/bullet-point-menu-button/index.js.map +1 -1
  35. package/es/molecule/bullet-point-menu-button/style.css +11 -7
  36. package/es/molecule/card/index.js +1 -1
  37. package/es/molecule/card/index.js.map +1 -1
  38. package/es/molecule/cockpit-popin/test/fixtures.js +17 -0
  39. package/es/molecule/cockpit-popin/test/fixtures.js.map +1 -0
  40. package/es/molecule/search/test/fixtures.js +15 -0
  41. package/es/molecule/search/test/fixtures.js.map +1 -0
  42. package/es/molecule/select-multiple/index.js +100 -17
  43. package/es/molecule/select-multiple/index.js.map +1 -1
  44. package/es/molecule/select-multiple/style.css +293 -11
  45. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme-disabled.js +32 -0
  46. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme-disabled.js.map +1 -0
  47. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme-error.js +32 -0
  48. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme-error.js.map +1 -0
  49. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme-multiple.js +32 -0
  50. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme-multiple.js.map +1 -0
  51. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme.js +32 -0
  52. package/es/molecule/select-multiple/test/fixtures/checked-cm-theme.js.map +1 -0
  53. package/es/molecule/select-multiple/test/fixtures/setup-theme-error.js +1 -1
  54. package/es/molecule/select-multiple/test/fixtures/setup-theme-error.js.map +1 -1
  55. package/es/molecule/select-multiple/test/fixtures.js +8 -0
  56. package/es/molecule/select-multiple/test/fixtures.js.map +1 -1
  57. package/es/molecule/share/index.js +3 -2
  58. package/es/molecule/share/index.js.map +1 -1
  59. package/es/molecule/wizard-summary/index.js +16 -10
  60. package/es/molecule/wizard-summary/index.js.map +1 -1
  61. package/es/organism/accordion/container/index.js +1 -1
  62. package/es/organism/accordion/container/index.js.map +1 -1
  63. package/es/organism/accordion/coorp-manager/index.js +6 -3
  64. package/es/organism/accordion/coorp-manager/index.js.map +1 -1
  65. package/es/organism/brand-form/test/fixtures/wizard-playlists.js +26 -0
  66. package/es/organism/brand-form/test/fixtures/wizard-playlists.js.map +1 -1
  67. package/es/organism/list-item/index.js +3 -3
  68. package/es/organism/list-item/index.js.map +1 -1
  69. package/es/organism/list-item/style.css +14 -10
  70. package/es/organism/list-items/index.js +40 -0
  71. package/es/organism/list-items/index.js.map +1 -0
  72. package/es/organism/list-items/style.css +39 -0
  73. package/es/organism/list-items/test/fixtures/archived.js +24 -0
  74. package/es/organism/list-items/test/fixtures/archived.js.map +1 -0
  75. package/es/organism/list-items/test/fixtures/draft.js +24 -0
  76. package/es/organism/list-items/test/fixtures/draft.js.map +1 -0
  77. package/es/organism/list-items/test/fixtures/published.js +26 -0
  78. package/es/organism/list-items/test/fixtures/published.js.map +1 -0
  79. package/es/template/back-office/brand-update/index.js +13 -6
  80. package/es/template/back-office/brand-update/index.js.map +1 -1
  81. package/es/template/back-office/brand-update/style.css +57 -13
  82. package/es/template/teams-dashboard/index.js +4 -6
  83. package/es/template/teams-dashboard/index.js.map +1 -1
  84. package/lib/atom/button-link/index.js +1 -1
  85. package/lib/atom/button-link/index.js.map +1 -1
  86. package/lib/atom/button-link-icon-only/index.js +1 -1
  87. package/lib/atom/button-link-icon-only/index.js.map +1 -1
  88. package/lib/atom/button-menu/index.js +2 -4
  89. package/lib/atom/button-menu/index.js.map +1 -1
  90. package/lib/atom/chips/style.css +1 -2
  91. package/lib/atom/image-upload/index.js +5 -2
  92. package/lib/atom/image-upload/index.js.map +1 -1
  93. package/lib/atom/input-checkbox/index.js +10 -3
  94. package/lib/atom/input-checkbox/index.js.map +1 -1
  95. package/lib/atom/input-checkbox/style.css +15 -0
  96. package/lib/atom/input-color/style.css +1 -1
  97. package/lib/hoc/transition/index.js +10 -3
  98. package/lib/hoc/transition/index.js.map +1 -1
  99. package/lib/molecule/banner/index.js +17 -6
  100. package/lib/molecule/banner/index.js.map +1 -1
  101. package/lib/molecule/banner/style.css +47 -0
  102. package/lib/molecule/banner/test/fixtures/default.js +1 -1
  103. package/lib/molecule/banner/test/fixtures/default.js.map +1 -1
  104. package/lib/molecule/banner/test/fixtures/error-temporary-banner.js +13 -0
  105. package/lib/molecule/banner/test/fixtures/error-temporary-banner.js.map +1 -0
  106. package/lib/molecule/banner/test/fixtures/success-banner.js +12 -0
  107. package/lib/molecule/banner/test/fixtures/success-banner.js.map +1 -0
  108. package/lib/molecule/banner/test/fixtures/success-temporary-banner.js +13 -0
  109. package/lib/molecule/banner/test/fixtures/success-temporary-banner.js.map +1 -0
  110. package/lib/molecule/banner/test/fixtures/warning-temporary-banner.js +13 -0
  111. package/lib/molecule/banner/test/fixtures/warning-temporary-banner.js.map +1 -0
  112. package/lib/molecule/banner/test/fixtures.js +6 -0
  113. package/lib/molecule/banner/test/fixtures.js.map +1 -1
  114. package/lib/molecule/brand-create-form/index.js +4 -1
  115. package/lib/molecule/brand-create-form/index.js.map +1 -1
  116. package/lib/molecule/bullet-point-menu-button/index.js +1 -5
  117. package/lib/molecule/bullet-point-menu-button/index.js.map +1 -1
  118. package/lib/molecule/bullet-point-menu-button/style.css +11 -7
  119. package/lib/molecule/card/index.js +1 -1
  120. package/lib/molecule/card/index.js.map +1 -1
  121. package/lib/molecule/cockpit-popin/test/fixtures.js +28 -0
  122. package/lib/molecule/cockpit-popin/test/fixtures.js.map +1 -0
  123. package/lib/molecule/search/test/fixtures.js +25 -0
  124. package/lib/molecule/search/test/fixtures.js.map +1 -0
  125. package/lib/molecule/select-multiple/index.js +102 -16
  126. package/lib/molecule/select-multiple/index.js.map +1 -1
  127. package/lib/molecule/select-multiple/style.css +293 -11
  128. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme-disabled.js +37 -0
  129. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme-disabled.js.map +1 -0
  130. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme-error.js +37 -0
  131. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme-error.js.map +1 -0
  132. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme-multiple.js +37 -0
  133. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme-multiple.js.map +1 -0
  134. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme.js +37 -0
  135. package/lib/molecule/select-multiple/test/fixtures/checked-cm-theme.js.map +1 -0
  136. package/lib/molecule/select-multiple/test/fixtures/setup-theme-error.js +1 -1
  137. package/lib/molecule/select-multiple/test/fixtures/setup-theme-error.js.map +1 -1
  138. package/lib/molecule/select-multiple/test/fixtures.js +12 -0
  139. package/lib/molecule/select-multiple/test/fixtures.js.map +1 -1
  140. package/lib/molecule/share/index.js +2 -1
  141. package/lib/molecule/share/index.js.map +1 -1
  142. package/lib/molecule/wizard-summary/index.js +16 -10
  143. package/lib/molecule/wizard-summary/index.js.map +1 -1
  144. package/lib/organism/accordion/container/index.js +1 -1
  145. package/lib/organism/accordion/container/index.js.map +1 -1
  146. package/lib/organism/accordion/coorp-manager/index.js +5 -3
  147. package/lib/organism/accordion/coorp-manager/index.js.map +1 -1
  148. package/lib/organism/brand-form/test/fixtures/wizard-playlists.js +26 -0
  149. package/lib/organism/brand-form/test/fixtures/wizard-playlists.js.map +1 -1
  150. package/lib/organism/list-item/index.js +3 -3
  151. package/lib/organism/list-item/index.js.map +1 -1
  152. package/lib/organism/list-item/style.css +14 -10
  153. package/lib/organism/list-items/index.js +53 -0
  154. package/lib/organism/list-items/index.js.map +1 -0
  155. package/lib/organism/list-items/style.css +39 -0
  156. package/lib/organism/list-items/test/fixtures/archived.js +33 -0
  157. package/lib/organism/list-items/test/fixtures/archived.js.map +1 -0
  158. package/lib/organism/list-items/test/fixtures/draft.js +33 -0
  159. package/lib/organism/list-items/test/fixtures/draft.js.map +1 -0
  160. package/lib/organism/list-items/test/fixtures/published.js +36 -0
  161. package/lib/organism/list-items/test/fixtures/published.js.map +1 -0
  162. package/lib/template/back-office/brand-update/index.js +14 -6
  163. package/lib/template/back-office/brand-update/index.js.map +1 -1
  164. package/lib/template/back-office/brand-update/style.css +57 -13
  165. package/lib/template/teams-dashboard/index.js +4 -6
  166. package/lib/template/teams-dashboard/index.js.map +1 -1
  167. package/package.json +3 -2
  168. package/es/molecule/short-lived-banner/test/fixtures.js +0 -15
  169. package/es/molecule/short-lived-banner/test/fixtures.js.map +0 -1
  170. package/lib/molecule/short-lived-banner/test/fixtures.js +0 -25
  171. package/lib/molecule/short-lived-banner/test/fixtures.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/molecule/banner/test/fixtures.js"],"names":["test","forEach","renderComponentMacro","MoleculeBanner","fixtureDefault","fixtureErrorBanner","fixtureErrorTemporaryBanner","fixtureSuccessTemporaryBanner","t","pass","propTypes","value","key","not","undefined"],"mappings":"AAAA,OAAOA,IAAP,MAAiB,KAAjB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,OAAOC,oBAAP,MAAiC,wCAAjC;AACA,OAAOC,cAAP,MAA2B,IAA3B;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AACA,OAAOC,kBAAP,MAA+B,yBAA/B;AACA,OAAOC,2BAAP,MAAwC,mCAAxC;AACA,OAAOC,6BAAP,MAA0C,qCAA1C;AAEAP,IAAI,CAAC,yDAAD,EAA4DQ,CAAC,IAAI;AACnEA,EAAAA,CAAC,CAACC,IAAF;AACAR,EAAAA,OAAO,CAACE,cAAc,CAACO,SAAhB,EAA2B,CAACC,KAAD,EAAQC,GAAR,KAAgB;AAChDJ,IAAAA,CAAC,CAACK,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,mDAAkDF,GAAI,mEAA/E;AACD,GAFM,CAAP;AAGD,CALG,CAAJ;AAOAZ,IAAI,CAAC,0DAAD,EAA6DE,oBAA7D,EAAmFC,cAAnF,EAAmGC,cAAnG,CAAJ;AACAJ,IAAI,CAAC,8DAAD,EAAiEE,oBAAjE,EAAuFC,cAAvF,EAAuGE,kBAAvG,CAAJ;AACAL,IAAI,CAAC,uEAAD,EAA0EE,oBAA1E,EAAgGC,cAAhG,EAAgHG,2BAAhH,CAAJ;AACAN,IAAI,CAAC,yEAAD,EAA4EE,oBAA5E,EAAkGC,cAAlG,EAAkHI,6BAAlH,CAAJ","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport MoleculeBanner from '..';\nimport fixtureDefault from './fixtures/default';\nimport fixtureErrorBanner from './fixtures/error-banner';\nimport fixtureErrorTemporaryBanner from './fixtures/error-temporary-banner';\nimport fixtureSuccessTemporaryBanner from './fixtures/success-temporary-banner';\n\ntest('Molecule › MoleculeBanner > should have valid propTypes', t => {\n t.pass();\n forEach(MoleculeBanner.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Molecule.MoleculeBanner.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Molecule › MoleculeBanner › Default › should be rendered', renderComponentMacro, MoleculeBanner, fixtureDefault);\ntest('Molecule › MoleculeBanner › ErrorBanner › should be rendered', renderComponentMacro, MoleculeBanner, fixtureErrorBanner);\ntest('Molecule › MoleculeBanner › ErrorTemporaryBanner › should be rendered', renderComponentMacro, MoleculeBanner, fixtureErrorTemporaryBanner);\ntest('Molecule › MoleculeBanner › SuccessTemporaryBanner › should be rendered', renderComponentMacro, MoleculeBanner, fixtureSuccessTemporaryBanner);\n"],"file":"fixtures.js"}
1
+ {"version":3,"sources":["../../../../src/molecule/banner/test/fixtures.js"],"names":["test","forEach","renderComponentMacro","MoleculeBanner","fixtureDefault","fixtureErrorBanner","fixtureErrorTemporaryBanner","fixtureSuccessBanner","fixtureSuccessTemporaryBanner","fixtureWarningTemporaryBanner","t","pass","propTypes","value","key","not","undefined"],"mappings":"AAAA,OAAOA,IAAP,MAAiB,KAAjB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,OAAOC,oBAAP,MAAiC,wCAAjC;AACA,OAAOC,cAAP,MAA2B,IAA3B;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AACA,OAAOC,kBAAP,MAA+B,yBAA/B;AACA,OAAOC,2BAAP,MAAwC,mCAAxC;AACA,OAAOC,oBAAP,MAAiC,2BAAjC;AACA,OAAOC,6BAAP,MAA0C,qCAA1C;AACA,OAAOC,6BAAP,MAA0C,qCAA1C;AAEAT,IAAI,CAAC,yDAAD,EAA4DU,CAAC,IAAI;AACnEA,EAAAA,CAAC,CAACC,IAAF;AACAV,EAAAA,OAAO,CAACE,cAAc,CAACS,SAAhB,EAA2B,CAACC,KAAD,EAAQC,GAAR,KAAgB;AAChDJ,IAAAA,CAAC,CAACK,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,mDAAkDF,GAAI,mEAA/E;AACD,GAFM,CAAP;AAGD,CALG,CAAJ;AAOAd,IAAI,CAAC,0DAAD,EAA6DE,oBAA7D,EAAmFC,cAAnF,EAAmGC,cAAnG,CAAJ;AACAJ,IAAI,CAAC,8DAAD,EAAiEE,oBAAjE,EAAuFC,cAAvF,EAAuGE,kBAAvG,CAAJ;AACAL,IAAI,CAAC,uEAAD,EAA0EE,oBAA1E,EAAgGC,cAAhG,EAAgHG,2BAAhH,CAAJ;AACAN,IAAI,CAAC,gEAAD,EAAmEE,oBAAnE,EAAyFC,cAAzF,EAAyGI,oBAAzG,CAAJ;AACAP,IAAI,CAAC,yEAAD,EAA4EE,oBAA5E,EAAkGC,cAAlG,EAAkHK,6BAAlH,CAAJ;AACAR,IAAI,CAAC,yEAAD,EAA4EE,oBAA5E,EAAkGC,cAAlG,EAAkHM,6BAAlH,CAAJ","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport MoleculeBanner from '..';\nimport fixtureDefault from './fixtures/default';\nimport fixtureErrorBanner from './fixtures/error-banner';\nimport fixtureErrorTemporaryBanner from './fixtures/error-temporary-banner';\nimport fixtureSuccessBanner from './fixtures/success-banner';\nimport fixtureSuccessTemporaryBanner from './fixtures/success-temporary-banner';\nimport fixtureWarningTemporaryBanner from './fixtures/warning-temporary-banner';\n\ntest('Molecule › MoleculeBanner > should have valid propTypes', t => {\n t.pass();\n forEach(MoleculeBanner.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Molecule.MoleculeBanner.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Molecule › MoleculeBanner › Default › should be rendered', renderComponentMacro, MoleculeBanner, fixtureDefault);\ntest('Molecule › MoleculeBanner › ErrorBanner › should be rendered', renderComponentMacro, MoleculeBanner, fixtureErrorBanner);\ntest('Molecule › MoleculeBanner › ErrorTemporaryBanner › should be rendered', renderComponentMacro, MoleculeBanner, fixtureErrorTemporaryBanner);\ntest('Molecule › MoleculeBanner › SuccessBanner › should be rendered', renderComponentMacro, MoleculeBanner, fixtureSuccessBanner);\ntest('Molecule › MoleculeBanner › SuccessTemporaryBanner › should be rendered', renderComponentMacro, MoleculeBanner, fixtureSuccessTemporaryBanner);\ntest('Molecule › MoleculeBanner › WarningTemporaryBanner › should be rendered', renderComponentMacro, MoleculeBanner, fixtureWarningTemporaryBanner);\n"],"file":"fixtures.js"}
@@ -23,7 +23,10 @@ const BrandCreateForm = (props, context) => {
23
23
  const wrapperClass = isModified || isPending || field.error ? style.modifiedWrapper : style.wrapper;
24
24
  const fieldClass = field.error ? style.error : style.default;
25
25
  const disabled = isPending || !isModified;
26
- const handleChange = useMemo(() => e => field.onChange(e.target.value), [field.onChange]);
26
+ const {
27
+ onChange
28
+ } = field;
29
+ const handleChange = useMemo(() => e => onChange(e.target.value), [onChange]);
27
30
  const actionView = isPending ? /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
28
31
  className: style.wait
29
32
  }, waitMessage), /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/brand-create-form/index.js"],"names":["React","useMemo","PropTypes","Button","Loader","Provider","style","BrandCreateForm","props","context","title","subtitle","description","field","onSubmit","submitValue","isPending","isModified","translate","waitMessage","wrapperClass","error","modifiedWrapper","wrapper","fieldClass","default","disabled","handleChange","e","onChange","target","value","actionView","wait","loading","header","content","placeholder","label","contextTypes","childContextTypes","propTypes","string","isRequired","shape","func","bool"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../atom/button';\nimport Loader from '../../atom/loader';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst BrandCreateForm = (props, context) => {\n const {title, subtitle, description, field, onSubmit, submitValue, isPending, isModified} = props;\n const {translate} = context;\n const waitMessage = translate('Wait_creation');\n\n const wrapperClass =\n isModified || isPending || field.error ? style.modifiedWrapper : style.wrapper;\n const fieldClass = field.error ? style.error : style.default;\n const disabled = isPending || !isModified;\n const handleChange = useMemo(() => e => field.onChange(e.target.value), [field.onChange]);\n\n const actionView = isPending ? (\n <div>\n <div className={style.wait}>{waitMessage}</div>\n <div className={style.loading}>\n <Loader />\n </div>\n </div>\n ) : (\n <div>\n <Button\n data-name=\"brand_create_submit_button\"\n type=\"submit\"\n disabled={disabled}\n submitValue={submitValue}\n />\n </div>\n );\n\n return (\n <div className={wrapperClass}>\n <div className={style.header}>\n <h1>{title}</h1>\n </div>\n <form className={style.content} onSubmit={onSubmit}>\n <h2>{subtitle}</h2>\n <div className={style.description}>{description}</div>\n <div className={fieldClass}>\n <label>\n <input\n type=\"text\"\n data-name=\"brand_create_text_input\"\n placeholder={field.placeholder}\n defaultValue={field.value}\n onInput={handleChange}\n />\n {field.label}\n </label>\n </div>\n {actionView}\n </form>\n </div>\n );\n};\n\nBrandCreateForm.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nBrandCreateForm.propTypes = {\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n field: PropTypes.shape({\n placeholder: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.string,\n value: PropTypes.string\n }).isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitValue: PropTypes.string.isRequired,\n isPending: PropTypes.bool,\n isModified: PropTypes.bool\n};\n\nexport default BrandCreateForm;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/brand-create-form/index.js"],"names":["React","useMemo","PropTypes","Button","Loader","Provider","style","BrandCreateForm","props","context","title","subtitle","description","field","onSubmit","submitValue","isPending","isModified","translate","waitMessage","wrapperClass","error","modifiedWrapper","wrapper","fieldClass","default","disabled","onChange","handleChange","e","target","value","actionView","wait","loading","header","content","placeholder","label","contextTypes","childContextTypes","propTypes","string","isRequired","shape","func","bool"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../atom/button';\nimport Loader from '../../atom/loader';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst BrandCreateForm = (props, context) => {\n const {title, subtitle, description, field, onSubmit, submitValue, isPending, isModified} = props;\n const {translate} = context;\n const waitMessage = translate('Wait_creation');\n\n const wrapperClass =\n isModified || isPending || field.error ? style.modifiedWrapper : style.wrapper;\n const fieldClass = field.error ? style.error : style.default;\n const disabled = isPending || !isModified;\n const {onChange} = field;\n const handleChange = useMemo(() => e => onChange(e.target.value), [onChange]);\n\n const actionView = isPending ? (\n <div>\n <div className={style.wait}>{waitMessage}</div>\n <div className={style.loading}>\n <Loader />\n </div>\n </div>\n ) : (\n <div>\n <Button\n data-name=\"brand_create_submit_button\"\n type=\"submit\"\n disabled={disabled}\n submitValue={submitValue}\n />\n </div>\n );\n\n return (\n <div className={wrapperClass}>\n <div className={style.header}>\n <h1>{title}</h1>\n </div>\n <form className={style.content} onSubmit={onSubmit}>\n <h2>{subtitle}</h2>\n <div className={style.description}>{description}</div>\n <div className={fieldClass}>\n <label>\n <input\n type=\"text\"\n data-name=\"brand_create_text_input\"\n placeholder={field.placeholder}\n defaultValue={field.value}\n onInput={handleChange}\n />\n {field.label}\n </label>\n </div>\n {actionView}\n </form>\n </div>\n );\n};\n\nBrandCreateForm.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nBrandCreateForm.propTypes = {\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n field: PropTypes.shape({\n placeholder: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.string,\n value: PropTypes.string\n }).isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitValue: PropTypes.string.isRequired,\n isPending: PropTypes.bool,\n isModified: PropTypes.bool\n};\n\nexport default BrandCreateForm;\n"],"file":"index.js"}
@@ -1,5 +1,3 @@
1
- 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); }
2
-
3
1
  import React, { useCallback } from 'react';
4
2
  import PropTypes from 'prop-types';
5
3
  import ButtonLinkIconOnly from '../../atom/button-link-icon-only';
@@ -35,9 +33,7 @@ const BulletPointMenuButton = props => {
35
33
  return /*#__PURE__*/React.createElement("div", {
36
34
  className: style.bulletPointWrapper,
37
35
  "data-name": "bullet-point-wrapper"
38
- }, /*#__PURE__*/React.createElement(ButtonLinkIconOnly, _extends({}, bulletPointButtonProps, {
39
- className: style.bulletPointButton
40
- })), menu);
36
+ }, /*#__PURE__*/React.createElement(ButtonLinkIconOnly, bulletPointButtonProps), menu);
41
37
  };
42
38
 
43
39
  BulletPointMenuButton.propTypes = process.env.NODE_ENV !== "production" ? {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/bullet-point-menu-button/index.js"],"names":["React","useCallback","PropTypes","ButtonLinkIconOnly","ButtonMenu","style","BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","buttons","handleOnClick","menuProps","menu","bulletPointMenu","bulletPointButtonProps","size","icon","bulletPointWrapper","bulletPointButton","propTypes","bool","string","func"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,WAAf,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,kBAAP,MAA+B,kCAA/B;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,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,GAAGZ,WAAW,CAAC,MAAMU,OAAO,EAAd,EAAkB,CAACA,OAAD,CAAlB,CAAjC;AAEA,QAAMG,SAAS,GAAG;AAChB,iBAAa,aADG;AAEhBF,IAAAA;AAFgB,GAAlB;AAKA,QAAMG,IAAI,gBACR;AAAK,IAAA,SAAS,EAAEV,KAAK,CAACW,eAAtB;AAAuC,iBAAU,cAAjD;AAAgE,kBAAYN;AAA5E,kBACE,oBAAC,UAAD,EAAgBI,SAAhB,CADF,CADF;AAKA,QAAMG,sBAAsB,GAAG;AAC7BC,IAAAA,IAAI,EAAE,SADuB;AAE7B,kBAAcT,eAFe;AAG7B,iBAAa,qBAHgB;AAI7BU,IAAAA,IAAI,EAAE,cAJuB;AAK7BR,IAAAA,OAAO,EAAEE,aALoB;AAM7BL,IAAAA;AAN6B,GAA/B;AASA,sBACE;AAAK,IAAA,SAAS,EAAEH,KAAK,CAACe,kBAAtB;AAA0C,iBAAU;AAApD,kBACE,oBAAC,kBAAD,eAAwBH,sBAAxB;AAAgD,IAAA,SAAS,EAAEZ,KAAK,CAACgB;AAAjE,KADF,EAEGN,IAFH,CADF;AAMD,CA7BD;;AA+BAT,qBAAqB,CAACgB,SAAtB,2CAAkC;AAChCd,EAAAA,QAAQ,EAAEN,SAAS,CAACqB,IADY;AAEhCd,EAAAA,eAAe,EAAEP,SAAS,CAACsB,MAFK;AAGhCd,EAAAA,aAAa,EAAER,SAAS,CAACsB,MAHO;AAIhCZ,EAAAA,OAAO,EAAER,UAAU,CAACkB,SAAX,CAAqBV,OAJE;AAKhCD,EAAAA,OAAO,EAAET,SAAS,CAACuB;AALa,CAAlC;AAQA,eAAenB,qBAAf","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":["React","useCallback","PropTypes","ButtonLinkIconOnly","ButtonMenu","style","BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","buttons","handleOnClick","menuProps","menu","bulletPointMenu","bulletPointButtonProps","size","icon","bulletPointWrapper","propTypes","bool","string","func"],"mappings":"AAAA,OAAOA,KAAP,IAAeC,WAAf,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,kBAAP,MAA+B,kCAA/B;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,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,GAAGZ,WAAW,CAAC,MAAMU,OAAO,EAAd,EAAkB,CAACA,OAAD,CAAlB,CAAjC;AAEA,QAAMG,SAAS,GAAG;AAChB,iBAAa,aADG;AAEhBF,IAAAA;AAFgB,GAAlB;AAKA,QAAMG,IAAI,gBACR;AAAK,IAAA,SAAS,EAAEV,KAAK,CAACW,eAAtB;AAAuC,iBAAU,cAAjD;AAAgE,kBAAYN;AAA5E,kBACE,oBAAC,UAAD,EAAgBI,SAAhB,CADF,CADF;AAKA,QAAMG,sBAAsB,GAAG;AAC7BC,IAAAA,IAAI,EAAE,SADuB;AAE7B,kBAAcT,eAFe;AAG7B,iBAAa,qBAHgB;AAI7BU,IAAAA,IAAI,EAAE,cAJuB;AAK7BR,IAAAA,OAAO,EAAEE,aALoB;AAM7BL,IAAAA;AAN6B,GAA/B;AASA,sBACE;AAAK,IAAA,SAAS,EAAEH,KAAK,CAACe,kBAAtB;AAA0C,iBAAU;AAApD,kBACE,oBAAC,kBAAD,EAAwBH,sBAAxB,CADF,EAEGF,IAFH,CADF;AAMD,CA7BD;;AA+BAT,qBAAqB,CAACe,SAAtB,2CAAkC;AAChCb,EAAAA,QAAQ,EAAEN,SAAS,CAACoB,IADY;AAEhCb,EAAAA,eAAe,EAAEP,SAAS,CAACqB,MAFK;AAGhCb,EAAAA,aAAa,EAAER,SAAS,CAACqB,MAHO;AAIhCX,EAAAA,OAAO,EAAER,UAAU,CAACiB,SAAX,CAAqBT,OAJE;AAKhCD,EAAAA,OAAO,EAAET,SAAS,CAACsB;AALa,CAAlC;AAQA,eAAelB,qBAAf","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; }
@@ -130,7 +130,7 @@ const Card = memo(function Card(props, context) {
130
130
  const whiteColor = _get('common.white', skin);
131
131
 
132
132
  const cardStyle = classnames(type === 'chapter' ? style.chapter : style.course, title ? null : style.lazy, style.grid, empty ? style.empty : null);
133
- const handleClick = useMemo(() => e => !disabled && onClick(e), [onClick]);
133
+ const handleClick = useMemo(() => e => !disabled && onClick(e), [disabled, onClick]);
134
134
  const lock = disabled ? /*#__PURE__*/React.createElement(LockIcon, {
135
135
  className: style.lockIcon,
136
136
  color: whiteColor,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/card/index.js"],"names":["React","useMemo","memo","PropTypes","classnames","NovaSolidLoginLocked","LockIcon","NovaCompositionCoorpacademyPictures","PicturesIcon","isExternalContent","EXTERNAL_CONTENT_ICONS","Provider","CardContentInfo","MODES","Customer","Favorite","Selectable","Notification","style","CardBackground","type","image","empty","skin","externalContent","primaryColor","whiteColor","IconType","icon","iconColor","color","backgroundIcon","externalIconCircleWrapper","externalIcon","_backgroundIcon","externalIconCircleWithImageWrapper","backgroundColor","externalIconWithImage","imageWrapper","backgroundImage","externalContentHeader","externalBackground","emptyIcon","chapterImageWrapper","contextTypes","childContextTypes","propTypes","string","bool","Card","props","context","badge","adaptiv","disabled","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","cardStyle","chapter","course","lazy","grid","handleClick","e","lock","lockIcon","inlineBadgeStyle","getType","contentType","chapterCustomer","CARD","lockWrapper","shape","number","func"],"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} 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\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 } = 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 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), [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 ? (\n <Customer\n {...customer}\n className={classnames(style.customer, type === 'chapter' ? style.chapterCustomer : null)}\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 />\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};\nexport default Card;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/card/index.js"],"names":["React","useMemo","memo","PropTypes","classnames","NovaSolidLoginLocked","LockIcon","NovaCompositionCoorpacademyPictures","PicturesIcon","isExternalContent","EXTERNAL_CONTENT_ICONS","Provider","CardContentInfo","MODES","Customer","Favorite","Selectable","Notification","style","CardBackground","type","image","empty","skin","externalContent","primaryColor","whiteColor","IconType","icon","iconColor","color","backgroundIcon","externalIconCircleWrapper","externalIcon","_backgroundIcon","externalIconCircleWithImageWrapper","backgroundColor","externalIconWithImage","imageWrapper","backgroundImage","externalContentHeader","externalBackground","emptyIcon","chapterImageWrapper","contextTypes","childContextTypes","propTypes","string","bool","Card","props","context","badge","adaptiv","disabled","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","cardStyle","chapter","course","lazy","grid","handleClick","e","lock","lockIcon","inlineBadgeStyle","getType","contentType","chapterCustomer","CARD","lockWrapper","shape","number","func"],"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} 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\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 } = 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 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 ? (\n <Customer\n {...customer}\n className={classnames(style.customer, type === 'chapter' ? style.chapterCustomer : null)}\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 />\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};\nexport default Card;\n"],"file":"index.js"}
@@ -0,0 +1,17 @@
1
+ import test from 'ava';
2
+ import forEach from 'lodash/forEach';
3
+ import renderComponentMacro from '../../../test/helpers/render-component';
4
+ import MoleculeCockpitPopin from '..';
5
+ import fixtureDefault from './fixtures/default';
6
+ import fixtureLoading from './fixtures/loading';
7
+ import fixtureVideoTranslate from './fixtures/video-translate';
8
+ test('Molecule › MoleculeCockpitPopin > should have valid propTypes', t => {
9
+ t.pass();
10
+ forEach(MoleculeCockpitPopin.propTypes, (value, key) => {
11
+ t.not(value, undefined, `PropType for "Molecule.MoleculeCockpitPopin.propTypes.${key}" may not be undefined. Did you mistype the propTypes definition?`);
12
+ });
13
+ });
14
+ test('Molecule › MoleculeCockpitPopin › Default › should be rendered', renderComponentMacro, MoleculeCockpitPopin, fixtureDefault);
15
+ test('Molecule › MoleculeCockpitPopin › Loading › should be rendered', renderComponentMacro, MoleculeCockpitPopin, fixtureLoading);
16
+ test('Molecule › MoleculeCockpitPopin › VideoTranslate › should be rendered', renderComponentMacro, MoleculeCockpitPopin, fixtureVideoTranslate);
17
+ //# sourceMappingURL=fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/molecule/cockpit-popin/test/fixtures.js"],"names":["test","forEach","renderComponentMacro","MoleculeCockpitPopin","fixtureDefault","fixtureLoading","fixtureVideoTranslate","t","pass","propTypes","value","key","not","undefined"],"mappings":"AAAA,OAAOA,IAAP,MAAiB,KAAjB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,OAAOC,oBAAP,MAAiC,wCAAjC;AACA,OAAOC,oBAAP,MAAiC,IAAjC;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AAEAN,IAAI,CAAC,+DAAD,EAAkEO,CAAC,IAAI;AACzEA,EAAAA,CAAC,CAACC,IAAF;AACAP,EAAAA,OAAO,CAACE,oBAAoB,CAACM,SAAtB,EAAiC,CAACC,KAAD,EAAQC,GAAR,KAAgB;AACtDJ,IAAAA,CAAC,CAACK,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,yDAAwDF,GAAI,mEAArF;AACD,GAFM,CAAP;AAGD,CALG,CAAJ;AAOAX,IAAI,CAAC,gEAAD,EAAmEE,oBAAnE,EAAyFC,oBAAzF,EAA+GC,cAA/G,CAAJ;AACAJ,IAAI,CAAC,gEAAD,EAAmEE,oBAAnE,EAAyFC,oBAAzF,EAA+GE,cAA/G,CAAJ;AACAL,IAAI,CAAC,uEAAD,EAA0EE,oBAA1E,EAAgGC,oBAAhG,EAAsHG,qBAAtH,CAAJ","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport MoleculeCockpitPopin from '..';\nimport fixtureDefault from './fixtures/default';\nimport fixtureLoading from './fixtures/loading';\nimport fixtureVideoTranslate from './fixtures/video-translate';\n\ntest('Molecule › MoleculeCockpitPopin > should have valid propTypes', t => {\n t.pass();\n forEach(MoleculeCockpitPopin.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Molecule.MoleculeCockpitPopin.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Molecule › MoleculeCockpitPopin › Default › should be rendered', renderComponentMacro, MoleculeCockpitPopin, fixtureDefault);\ntest('Molecule › MoleculeCockpitPopin › Loading › should be rendered', renderComponentMacro, MoleculeCockpitPopin, fixtureLoading);\ntest('Molecule › MoleculeCockpitPopin › VideoTranslate › should be rendered', renderComponentMacro, MoleculeCockpitPopin, fixtureVideoTranslate);\n"],"file":"fixtures.js"}
@@ -0,0 +1,15 @@
1
+ import test from 'ava';
2
+ import forEach from 'lodash/forEach';
3
+ import renderComponentMacro from '../../../test/helpers/render-component';
4
+ import MoleculeSearch from '..';
5
+ import fixtureDefault from './fixtures/default';
6
+ import fixtureWithValue from './fixtures/with-value';
7
+ test('Molecule › MoleculeSearch > should have valid propTypes', t => {
8
+ t.pass();
9
+ forEach(MoleculeSearch.propTypes, (value, key) => {
10
+ t.not(value, undefined, `PropType for "Molecule.MoleculeSearch.propTypes.${key}" may not be undefined. Did you mistype the propTypes definition?`);
11
+ });
12
+ });
13
+ test('Molecule › MoleculeSearch › Default › should be rendered', renderComponentMacro, MoleculeSearch, fixtureDefault);
14
+ test('Molecule › MoleculeSearch › WithValue › should be rendered', renderComponentMacro, MoleculeSearch, fixtureWithValue);
15
+ //# sourceMappingURL=fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/molecule/search/test/fixtures.js"],"names":["test","forEach","renderComponentMacro","MoleculeSearch","fixtureDefault","fixtureWithValue","t","pass","propTypes","value","key","not","undefined"],"mappings":"AAAA,OAAOA,IAAP,MAAiB,KAAjB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,OAAOC,oBAAP,MAAiC,wCAAjC;AACA,OAAOC,cAAP,MAA2B,IAA3B;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AACA,OAAOC,gBAAP,MAA6B,uBAA7B;AAEAL,IAAI,CAAC,yDAAD,EAA4DM,CAAC,IAAI;AACnEA,EAAAA,CAAC,CAACC,IAAF;AACAN,EAAAA,OAAO,CAACE,cAAc,CAACK,SAAhB,EAA2B,CAACC,KAAD,EAAQC,GAAR,KAAgB;AAChDJ,IAAAA,CAAC,CAACK,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,mDAAkDF,GAAI,mEAA/E;AACD,GAFM,CAAP;AAGD,CALG,CAAJ;AAOAV,IAAI,CAAC,0DAAD,EAA6DE,oBAA7D,EAAmFC,cAAnF,EAAmGC,cAAnG,CAAJ;AACAJ,IAAI,CAAC,4DAAD,EAA+DE,oBAA/D,EAAqFC,cAArF,EAAqGE,gBAArG,CAAJ","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport MoleculeSearch from '..';\nimport fixtureDefault from './fixtures/default';\nimport fixtureWithValue from './fixtures/with-value';\n\ntest('Molecule › MoleculeSearch > should have valid propTypes', t => {\n t.pass();\n forEach(MoleculeSearch.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Molecule.MoleculeSearch.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Molecule › MoleculeSearch › Default › should be rendered', renderComponentMacro, MoleculeSearch, fixtureDefault);\ntest('Molecule › MoleculeSearch › WithValue › should be rendered', renderComponentMacro, MoleculeSearch, fixtureWithValue);\n"],"file":"fixtures.js"}
@@ -1,3 +1,5 @@
1
+ import _isEmpty from "lodash/fp/isEmpty";
2
+ import _keys from "lodash/fp/keys";
1
3
  import _set from "lodash/fp/set";
2
4
  import _get from "lodash/fp/get";
3
5
  import _filter from "lodash/fp/filter";
@@ -10,15 +12,17 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
10
12
  import React, { useState, useEffect, useRef, useCallback } from 'react';
11
13
  import PropTypes from 'prop-types';
12
14
  import classnames from 'classnames';
13
- import { NovaCompositionNavigationArrowDown as ArrowDown } from '@coorpacademy/nova-icons';
15
+ import { NovaCompositionNavigationArrowDown as ArrowDown, NovaSolidStatusClose as ErrorIcon, NovaCompositionCoorpacademyInformationIcon as InfoIcon } from '@coorpacademy/nova-icons';
14
16
  import TitledCheckbox from '../titled-checkbox';
15
17
  import Provider from '../../atom/provider';
18
+ import Checkbox from '../../atom/input-checkbox';
16
19
  import getClassState from '../../util/get-class-state';
17
20
  import style from './style.css';
18
21
  const themeStyle = {
19
22
  setup: style.setup,
20
23
  cockpit: style.cockpit,
21
- sidebar: style.sidebar
24
+ sidebar: style.sidebar,
25
+ coorpmanager: style.coorpmanager
22
26
  };
23
27
  export const useChoices = options => {
24
28
  const choicesRef = useRef(options);
@@ -36,17 +40,49 @@ export const useChoices = options => {
36
40
  return [getChoices, setChoices];
37
41
  };
38
42
 
43
+ const CMMultipleView = ({
44
+ multiple,
45
+ choice,
46
+ onChange
47
+ }) => {
48
+ const handleChange = useCallback(checked => {
49
+ if (!multiple) {
50
+ return onChange(choice);
51
+ }
52
+
53
+ return onChange(_extends(_extends({}, choice), {}, {
54
+ selected: checked
55
+ }));
56
+ }, [onChange, choice, multiple]);
57
+ return multiple ? /*#__PURE__*/React.createElement("div", {
58
+ className: style.item
59
+ }, /*#__PURE__*/React.createElement(Checkbox, {
60
+ titleStyle: "inherit",
61
+ checked: choice.selected,
62
+ onChange: handleChange,
63
+ noLabelMargins: true,
64
+ title: choice.name
65
+ })) : /*#__PURE__*/React.createElement("span", {
66
+ className: style.item,
67
+ onClick: handleChange,
68
+ title: choice.name
69
+ }, choice.name);
70
+ };
71
+
39
72
  const SelectMultiple = ({
40
73
  title,
41
74
  options,
42
75
  theme,
43
76
  placeholder,
44
77
  description,
78
+ hint,
45
79
  multiple,
46
80
  onChange,
81
+ onError,
47
82
  modified = false,
48
83
  required = false,
49
- error = false
84
+ error = '',
85
+ disabled = false
50
86
  }, {
51
87
  skin
52
88
  }) => {
@@ -59,10 +95,11 @@ const SelectMultiple = ({
59
95
  const black = _get('common.black', skin);
60
96
 
61
97
  const handleOnClick = useCallback(e => {
98
+ if (disabled) return;
62
99
  e.preventDefault();
63
100
  e.stopPropagation();
64
101
  updateIsOpened(prev => !prev);
65
- }, []);
102
+ }, [disabled]);
66
103
  const closeHandle = useCallback(e => {
67
104
  if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {
68
105
  updateIsOpened(false);
@@ -77,7 +114,7 @@ const SelectMultiple = ({
77
114
  }
78
115
 
79
116
  return onChange(choice);
80
- }, [setChoices, multiple, onChange]);
117
+ }, [multiple, onChange, setChoices, getChoices]);
81
118
  useEffect(() => {
82
119
  document.addEventListener('click', closeHandle);
83
120
  document.addEventListener('touchstart', closeHandle);
@@ -86,6 +123,7 @@ const SelectMultiple = ({
86
123
  document.removeEventListener('touchstart', closeHandle);
87
124
  };
88
125
  }, [closeHandle]);
126
+ const isCMTheme = theme === 'coorpmanager';
89
127
 
90
128
  const lines = _map.convert({
91
129
  cap: false
@@ -93,7 +131,13 @@ const SelectMultiple = ({
93
131
  return /*#__PURE__*/React.createElement("li", {
94
132
  key: i,
95
133
  className: style.choice
96
- }, /*#__PURE__*/React.createElement(TitledCheckbox, {
134
+ }, isCMTheme ? /*#__PURE__*/React.createElement(CMMultipleView, {
135
+ multiple: multiple,
136
+ choice: _extends(_extends({}, choice), {}, {
137
+ i
138
+ }),
139
+ onChange: handleChange
140
+ }) : /*#__PURE__*/React.createElement(TitledCheckbox, {
97
141
  onToggle: handleChange,
98
142
  choice: _extends(_extends({}, choice), {}, {
99
143
  i
@@ -108,47 +152,86 @@ const SelectMultiple = ({
108
152
 
109
153
  const _title = title && `${title}${required ? ' *' : ''}`;
110
154
 
111
- const titleView = title ? /*#__PURE__*/React.createElement("span", {
112
- className: style.title
113
- }, _title, " ") : null;
114
155
  const isActive = isOpened === true;
156
+ const titleView = title ? /*#__PURE__*/React.createElement("span", {
157
+ className: classnames(style.title, isCMTheme && selection && style.titleWithSelection, isCMTheme && _isEmpty(selection) && style.noValue, isActive && style.active)
158
+ }, _title, isCMTheme ? /*#__PURE__*/React.createElement("div", {
159
+ className: style.infoIconWrapper
160
+ }, /*#__PURE__*/React.createElement(InfoIcon, {
161
+ className: style.infoIcon
162
+ }), /*#__PURE__*/React.createElement("div", {
163
+ className: style.descriptionLabel
164
+ }, description)) : null) : null;
165
+ const hintView = isCMTheme && !isActive ? /*#__PURE__*/React.createElement("div", {
166
+ className: style.hint // eslint-disable-next-line react/no-danger
167
+ ,
168
+ dangerouslySetInnerHTML: {
169
+ __html: error || hint
170
+ }
171
+ }) : null;
115
172
  const mainClass = theme ? themeStyle[theme] : style.default;
173
+ const showPlaceholder = isCMTheme && isActive;
116
174
  const behaviourClassName = getClassState(style.default, style.modified, style.error, modified, error);
175
+ const errorIconView = error ? /*#__PURE__*/React.createElement(ErrorIcon, {
176
+ onClick: onError,
177
+ className: style.errorIcon
178
+ }) : null;
117
179
  return /*#__PURE__*/React.createElement("div", {
118
- className: classnames(mainClass, behaviourClassName),
180
+ className: classnames(mainClass, behaviourClassName, disabled && style.disabled),
119
181
  ref: nodeRef
120
- }, /*#__PURE__*/React.createElement("label", null, titleView, /*#__PURE__*/React.createElement("div", {
182
+ }, /*#__PURE__*/React.createElement("label", null, !isCMTheme && titleView, /*#__PURE__*/React.createElement("div", {
121
183
  className: style.select,
122
184
  title: selection || placeholder,
123
185
  onClick: handleOnClick
124
- }, selection || placeholder, /*#__PURE__*/React.createElement(ArrowDown, {
186
+ }, isCMTheme && titleView, /*#__PURE__*/React.createElement("span", {
187
+ className: classnames(style.selection, isCMTheme && _isEmpty(selection) && style.noselection)
188
+ }, selection || !isCMTheme || showPlaceholder && placeholder || null), isCMTheme ? /*#__PURE__*/React.createElement("div", {
189
+ className: style.iconsWrapper
190
+ }, /*#__PURE__*/React.createElement("div", {
191
+ className: style.flex
192
+ }, errorIconView), /*#__PURE__*/React.createElement("div", {
193
+ className: classnames(style.flex, isActive && style.clicked)
194
+ }, /*#__PURE__*/React.createElement(ArrowDown, {
195
+ color: black,
196
+ className: classnames(style.arrow, {
197
+ [style.down]: isActive
198
+ })
199
+ }))) : /*#__PURE__*/React.createElement(ArrowDown, {
125
200
  color: black,
126
201
  className: classnames(style.arrow, {
127
202
  [style.down]: isActive
128
203
  })
129
204
  })), /*#__PURE__*/React.createElement("div", {
130
- className: isActive ? style.activeChoices : style.choices
205
+ className: classnames(style.choices, isActive && style.activeChoices)
131
206
  }, /*#__PURE__*/React.createElement("ul", {
132
207
  className: style.list
133
- }, lines))), /*#__PURE__*/React.createElement("div", {
208
+ }, lines))), !isCMTheme ? /*#__PURE__*/React.createElement("div", {
134
209
  className: style.description
135
- }, description));
210
+ }, description) : null, hintView);
136
211
  };
137
212
 
138
213
  SelectMultiple.contextTypes = {
139
214
  skin: Provider.childContextTypes.skin
140
215
  };
216
+ CMMultipleView.propTypes = process.env.NODE_ENV !== "production" ? {
217
+ multiple: PropTypes.bool,
218
+ choice: TitledCheckbox.propTypes.choice,
219
+ onChange: PropTypes.func
220
+ } : {};
141
221
  SelectMultiple.propTypes = process.env.NODE_ENV !== "production" ? {
142
222
  title: PropTypes.string,
143
223
  placeholder: PropTypes.string,
144
224
  description: PropTypes.string,
225
+ hint: PropTypes.string,
145
226
  options: PropTypes.arrayOf(TitledCheckbox.propTypes.choice),
146
227
  onChange: PropTypes.func,
228
+ onError: PropTypes.func,
147
229
  multiple: PropTypes.bool,
148
- theme: PropTypes.string,
149
230
  modified: PropTypes.bool,
231
+ disabled: PropTypes.bool,
150
232
  required: PropTypes.bool,
151
- error: PropTypes.bool
233
+ error: PropTypes.string,
234
+ theme: PropTypes.oneOf(_keys(themeStyle))
152
235
  } : {};
153
236
  export default SelectMultiple;
154
237
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/select-multiple/index.js"],"names":["React","useState","useEffect","useRef","useCallback","PropTypes","classnames","NovaCompositionNavigationArrowDown","ArrowDown","TitledCheckbox","Provider","getClassState","style","themeStyle","setup","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","childContextTypes","propTypes","string","arrayOf","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":["React","useState","useEffect","useRef","useCallback","PropTypes","classnames","NovaCompositionNavigationArrowDown","ArrowDown","NovaSolidStatusClose","ErrorIcon","NovaCompositionCoorpacademyInformationIcon","InfoIcon","TitledCheckbox","Provider","Checkbox","getClassState","style","themeStyle","setup","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","childContextTypes","propTypes","bool","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, multiple]\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(\n e => {\n if (disabled) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n updateIsOpened(prev => !prev);\n },\n [disabled]\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 [multiple, onChange, setChoices, getChoices]\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"}