@coorpacademy/components 11.38.8-alpha.7 → 11.39.1-alpha.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 (164) hide show
  1. package/es/atom/chip/index.d.ts.map +1 -1
  2. package/es/atom/chip/index.js +0 -3
  3. package/es/atom/chip/index.js.map +1 -1
  4. package/es/atom/input-text/index.d.ts +0 -1
  5. package/es/atom/input-text/index.d.ts.map +1 -1
  6. package/es/atom/input-text/index.js +1 -4
  7. package/es/atom/input-text/index.js.map +1 -1
  8. package/es/atom/input-text/style.css +1 -13
  9. package/es/atom/input-text-with-title/index.d.ts +0 -1
  10. package/es/atom/input-textarea/index.d.ts +0 -1
  11. package/es/atom/input-textarea/index.d.ts.map +1 -1
  12. package/es/atom/input-textarea/index.js +1 -4
  13. package/es/atom/input-textarea/index.js.map +1 -1
  14. package/es/atom/input-textarea/style.css +0 -22
  15. package/es/atom/select/index.d.ts +0 -1
  16. package/es/atom/select/index.d.ts.map +1 -1
  17. package/es/atom/select/index.js +11 -26
  18. package/es/atom/select/index.js.map +1 -1
  19. package/es/atom/select/style.css +0 -61
  20. package/es/atom/status-item/index.d.ts.map +1 -1
  21. package/es/atom/status-item/index.js +15 -15
  22. package/es/atom/status-item/index.js.map +1 -1
  23. package/es/molecule/bullet-point-menu-button/index.d.ts.map +1 -1
  24. package/es/molecule/bullet-point-menu-button/index.js +2 -42
  25. package/es/molecule/bullet-point-menu-button/index.js.map +1 -1
  26. package/es/molecule/card/favorite.d.ts.map +1 -1
  27. package/es/molecule/card/favorite.js +0 -13
  28. package/es/molecule/card/favorite.js.map +1 -1
  29. package/es/molecule/course-sections/index.d.ts +0 -1
  30. package/es/molecule/drag-and-drop/index.d.ts +0 -1
  31. package/es/molecule/drag-and-drop/upload-report.d.ts +0 -1
  32. package/es/molecule/filters/index.d.ts +0 -1
  33. package/es/molecule/filters/index.d.ts.map +1 -1
  34. package/es/molecule/skill-picker-modal/index.js +1 -1
  35. package/es/molecule/skill-picker-modal/index.js.map +1 -1
  36. package/es/molecule/title-and-checkbox-wrapper/index.d.ts +0 -1
  37. package/es/molecule/translation-modal/index.d.ts +0 -4
  38. package/es/molecule/translation-modal/index.js +6 -6
  39. package/es/molecule/translation-modal/index.js.map +1 -1
  40. package/es/organism/content-translation/index.d.ts +0 -2
  41. package/es/organism/header-with-actions/index.d.ts +2 -1
  42. package/es/organism/header-with-actions/index.d.ts.map +1 -1
  43. package/es/organism/header-with-actions/index.js +4 -3
  44. package/es/organism/header-with-actions/index.js.map +1 -1
  45. package/es/organism/header-with-actions/types.d.ts +2 -0
  46. package/es/organism/header-with-actions/types.d.ts.map +1 -1
  47. package/es/organism/header-with-actions/types.js +2 -1
  48. package/es/organism/header-with-actions/types.js.map +1 -1
  49. package/es/organism/icon-editor/index.d.ts +0 -1
  50. package/es/organism/icon-editor/index.d.ts.map +1 -1
  51. package/es/organism/icon-editor/types.d.ts +0 -1
  52. package/es/organism/icon-editor/types.d.ts.map +1 -1
  53. package/es/organism/rewards-form/index.d.ts +0 -1
  54. package/es/organism/select-opponents/index.d.ts +0 -1
  55. package/es/organism/select-opponents/index.d.ts.map +1 -1
  56. package/es/organism/select-opponents/types.d.ts +0 -1
  57. package/es/organism/select-opponents/types.d.ts.map +1 -1
  58. package/es/organism/skill-edition/index.d.ts +2 -22
  59. package/es/organism/skill-edition/index.d.ts.map +1 -1
  60. package/es/organism/skill-edition/index.js +47 -63
  61. package/es/organism/skill-edition/index.js.map +1 -1
  62. package/es/organism/skill-edition/style.css +13 -0
  63. package/es/organism/skill-edition/types.d.ts +5 -27
  64. package/es/organism/skill-edition/types.d.ts.map +1 -1
  65. package/es/organism/skill-edition/types.js +5 -22
  66. package/es/organism/skill-edition/types.js.map +1 -1
  67. package/es/organism/title-and-input/index.d.ts +0 -5
  68. package/es/organism/title-and-input/index.d.ts.map +1 -1
  69. package/es/organism/title-and-input/types.d.ts +0 -5
  70. package/es/organism/title-and-input/types.d.ts.map +1 -1
  71. package/es/organism/wizard-contents/index.d.ts +0 -4
  72. package/es/template/back-office/brand-update/index.d.ts +3 -22
  73. package/es/template/back-office/brand-update/index.d.ts.map +1 -1
  74. package/es/template/back-office/brand-update/index.js +3 -6
  75. package/es/template/back-office/brand-update/index.js.map +1 -1
  76. package/es/template/certifications/index.d.ts +0 -1
  77. package/es/template/common/search-page/index.d.ts +0 -1
  78. package/es/template/playlist-detail/index.d.ts +0 -1
  79. package/es/util/render-with-context.d.ts.map +1 -1
  80. package/es/util/render-with-context.js +2 -3
  81. package/es/util/render-with-context.js.map +1 -1
  82. package/lib/atom/chip/index.d.ts.map +1 -1
  83. package/lib/atom/chip/index.js +0 -3
  84. package/lib/atom/chip/index.js.map +1 -1
  85. package/lib/atom/input-text/index.d.ts +0 -1
  86. package/lib/atom/input-text/index.d.ts.map +1 -1
  87. package/lib/atom/input-text/index.js +1 -4
  88. package/lib/atom/input-text/index.js.map +1 -1
  89. package/lib/atom/input-text/style.css +1 -13
  90. package/lib/atom/input-text-with-title/index.d.ts +0 -1
  91. package/lib/atom/input-textarea/index.d.ts +0 -1
  92. package/lib/atom/input-textarea/index.d.ts.map +1 -1
  93. package/lib/atom/input-textarea/index.js +1 -4
  94. package/lib/atom/input-textarea/index.js.map +1 -1
  95. package/lib/atom/input-textarea/style.css +0 -22
  96. package/lib/atom/select/index.d.ts +0 -1
  97. package/lib/atom/select/index.d.ts.map +1 -1
  98. package/lib/atom/select/index.js +11 -26
  99. package/lib/atom/select/index.js.map +1 -1
  100. package/lib/atom/select/style.css +0 -61
  101. package/lib/atom/status-item/index.d.ts.map +1 -1
  102. package/lib/atom/status-item/index.js +17 -15
  103. package/lib/atom/status-item/index.js.map +1 -1
  104. package/lib/molecule/bullet-point-menu-button/index.d.ts.map +1 -1
  105. package/lib/molecule/bullet-point-menu-button/index.js +2 -41
  106. package/lib/molecule/bullet-point-menu-button/index.js.map +1 -1
  107. package/lib/molecule/card/favorite.d.ts.map +1 -1
  108. package/lib/molecule/card/favorite.js +0 -13
  109. package/lib/molecule/card/favorite.js.map +1 -1
  110. package/lib/molecule/course-sections/index.d.ts +0 -1
  111. package/lib/molecule/drag-and-drop/index.d.ts +0 -1
  112. package/lib/molecule/drag-and-drop/upload-report.d.ts +0 -1
  113. package/lib/molecule/filters/index.d.ts +0 -1
  114. package/lib/molecule/filters/index.d.ts.map +1 -1
  115. package/lib/molecule/skill-picker-modal/index.js +1 -1
  116. package/lib/molecule/skill-picker-modal/index.js.map +1 -1
  117. package/lib/molecule/title-and-checkbox-wrapper/index.d.ts +0 -1
  118. package/lib/molecule/translation-modal/index.d.ts +0 -4
  119. package/lib/molecule/translation-modal/index.js +6 -6
  120. package/lib/molecule/translation-modal/index.js.map +1 -1
  121. package/lib/organism/content-translation/index.d.ts +0 -2
  122. package/lib/organism/header-with-actions/index.d.ts +2 -1
  123. package/lib/organism/header-with-actions/index.d.ts.map +1 -1
  124. package/lib/organism/header-with-actions/index.js +4 -3
  125. package/lib/organism/header-with-actions/index.js.map +1 -1
  126. package/lib/organism/header-with-actions/types.d.ts +2 -0
  127. package/lib/organism/header-with-actions/types.d.ts.map +1 -1
  128. package/lib/organism/header-with-actions/types.js +2 -1
  129. package/lib/organism/header-with-actions/types.js.map +1 -1
  130. package/lib/organism/icon-editor/index.d.ts +0 -1
  131. package/lib/organism/icon-editor/index.d.ts.map +1 -1
  132. package/lib/organism/icon-editor/types.d.ts +0 -1
  133. package/lib/organism/icon-editor/types.d.ts.map +1 -1
  134. package/lib/organism/rewards-form/index.d.ts +0 -1
  135. package/lib/organism/select-opponents/index.d.ts +0 -1
  136. package/lib/organism/select-opponents/index.d.ts.map +1 -1
  137. package/lib/organism/select-opponents/types.d.ts +0 -1
  138. package/lib/organism/select-opponents/types.d.ts.map +1 -1
  139. package/lib/organism/skill-edition/index.d.ts +2 -22
  140. package/lib/organism/skill-edition/index.d.ts.map +1 -1
  141. package/lib/organism/skill-edition/index.js +47 -63
  142. package/lib/organism/skill-edition/index.js.map +1 -1
  143. package/lib/organism/skill-edition/style.css +13 -0
  144. package/lib/organism/skill-edition/types.d.ts +5 -27
  145. package/lib/organism/skill-edition/types.d.ts.map +1 -1
  146. package/lib/organism/skill-edition/types.js +5 -22
  147. package/lib/organism/skill-edition/types.js.map +1 -1
  148. package/lib/organism/title-and-input/index.d.ts +0 -5
  149. package/lib/organism/title-and-input/index.d.ts.map +1 -1
  150. package/lib/organism/title-and-input/types.d.ts +0 -5
  151. package/lib/organism/title-and-input/types.d.ts.map +1 -1
  152. package/lib/organism/wizard-contents/index.d.ts +0 -4
  153. package/lib/template/back-office/brand-update/index.d.ts +3 -22
  154. package/lib/template/back-office/brand-update/index.d.ts.map +1 -1
  155. package/lib/template/back-office/brand-update/index.js +3 -6
  156. package/lib/template/back-office/brand-update/index.js.map +1 -1
  157. package/lib/template/certifications/index.d.ts +0 -1
  158. package/lib/template/common/search-page/index.d.ts +0 -1
  159. package/lib/template/playlist-detail/index.d.ts +0 -1
  160. package/lib/util/render-with-context.d.ts.map +1 -1
  161. package/lib/util/render-with-context.js +2 -3
  162. package/lib/util/render-with-context.js.map +1 -1
  163. package/locales/.mtslconfig.json +1 -0
  164. package/package.json +2 -2
@@ -2,22 +2,22 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
2
2
  import React from 'react';
3
3
  import classnames from 'classnames';
4
4
  import { NovaCompositionCoorpacademyCheck as RightIcon, NovaSolidStatusClose as WrongIcon } from '@coorpacademy/nova-icons';
5
- import { useWebContext } from '../provider';
5
+ import Provider, { GetTranslateFromContext } from '../provider';
6
6
  import style from './style.css';
7
7
  import propTypes from './types';
8
- const Content = props => {
8
+ const Content = (props, legacyContext) => {
9
9
  const {
10
10
  icon,
11
11
  current,
12
- value,
13
- translate
12
+ value
14
13
  } = props;
14
+ const translate = GetTranslateFromContext(legacyContext);
15
15
  let child;
16
16
  let contentAriaLabel;
17
17
  switch (icon) {
18
18
  case 'no-answer':
19
19
  child = value;
20
- contentAriaLabel = translate?.('review_header_step_item.not_answered_question', {
20
+ contentAriaLabel = translate('review_header_step_item.not_answered_question', {
21
21
  current: current ? 'current ' : '',
22
22
  headerStepValue: value
23
23
  });
@@ -26,7 +26,7 @@ const Content = props => {
26
26
  child = /*#__PURE__*/React.createElement(RightIcon, {
27
27
  className: classnames(style.rightIcon, current && style.currentRightIcon),
28
28
  role: "status",
29
- "aria-label": translate?.('review_header_step_item.correct_question', {
29
+ "aria-label": translate('review_header_step_item.correct_question', {
30
30
  current: current ? 'current ' : '',
31
31
  headerStepValue: value
32
32
  })
@@ -36,7 +36,7 @@ const Content = props => {
36
36
  child = /*#__PURE__*/React.createElement(WrongIcon, {
37
37
  className: classnames(style.wrongIcon, current && style.currentWrongIcon),
38
38
  role: "alert",
39
- "aria-label": translate?.('review_header_step_item.incorrect_question', {
39
+ "aria-label": translate('review_header_step_item.incorrect_question', {
40
40
  current: current ? 'current ' : '',
41
41
  headerStepValue: value
42
42
  })
@@ -44,7 +44,7 @@ const Content = props => {
44
44
  break;
45
45
  case 'errors-number':
46
46
  child = value;
47
- contentAriaLabel = translate?.('bulk_import.errors_number', {
47
+ contentAriaLabel = translate('bulk_import.errors_number', {
48
48
  bulkImportErrorsNumber: value
49
49
  });
50
50
  break;
@@ -52,14 +52,14 @@ const Content = props => {
52
52
  child = /*#__PURE__*/React.createElement(RightIcon, {
53
53
  className: classnames(style.validIcon),
54
54
  role: "status",
55
- "aria-label": translate?.('bulk_import.valid_scorm')
55
+ "aria-label": translate('bulk_import.valid_scorm')
56
56
  });
57
57
  break;
58
58
  case 'invalid':
59
59
  child = /*#__PURE__*/React.createElement(WrongIcon, {
60
60
  className: classnames(style.invalidIcon),
61
61
  role: "alert",
62
- "aria-label": translate?.('bulk_import.invalid_scorm')
62
+ "aria-label": translate('bulk_import.invalid_scorm')
63
63
  });
64
64
  break;
65
65
  default:
@@ -78,16 +78,16 @@ const StatusItem = props => {
78
78
  current,
79
79
  selected
80
80
  } = props;
81
- const context = useWebContext();
82
- const translate = context.translate || (key => key);
83
81
  return /*#__PURE__*/React.createElement("div", {
84
82
  className: classnames(style.defaultStyle, icon === 'right' && style.right, icon === 'wrong' && style.wrong, current && style.current, icon === 'valid' && style.valid, icon === 'invalid' && style.invalid, icon === 'errors-number' && style.errorsNumber, selected && style.selected),
85
83
  "data-name": "status-item"
86
- }, /*#__PURE__*/React.createElement(Content, _extends({}, props, {
87
- translate: translate
88
- })));
84
+ }, /*#__PURE__*/React.createElement(Content, props));
89
85
  };
90
86
  Content.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {};
87
+ Content.contextTypes = {
88
+ skin: Provider.childContextTypes.skin,
89
+ translate: Provider.childContextTypes.translate
90
+ };
91
91
  StatusItem.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {};
92
92
  export default StatusItem;
93
93
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","classnames","NovaCompositionCoorpacademyCheck","RightIcon","NovaSolidStatusClose","WrongIcon","useWebContext","style","propTypes","Content","props","icon","current","value","translate","child","contentAriaLabel","headerStepValue","createElement","className","rightIcon","currentRightIcon","role","wrongIcon","currentWrongIcon","bulkImportErrorsNumber","validIcon","invalidIcon","_extends","StatusItem","selected","context","key","defaultStyle","right","wrong","valid","invalid","errorsNumber","process","env","NODE_ENV"],"sources":["../../../src/atom/status-item/index.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport {\n NovaCompositionCoorpacademyCheck as RightIcon,\n NovaSolidStatusClose as WrongIcon\n} from '@coorpacademy/nova-icons';\nimport {useWebContext} from '../provider';\nimport {WebContextValues} from '../provider/web-context';\nimport style from './style.css';\nimport propTypes, {StatusItemProps} from './types';\n\nconst Content = (props: StatusItemProps & {translate: WebContextValues['translate']}) => {\n const {icon, current, value, translate} = props;\n let child;\n let contentAriaLabel;\n switch (icon) {\n case 'no-answer':\n child = value;\n contentAriaLabel = translate?.('review_header_step_item.not_answered_question', {\n current: current ? 'current ' : '',\n headerStepValue: value as string\n });\n break;\n\n case 'right':\n child = (\n <RightIcon\n className={classnames(style.rightIcon, current && style.currentRightIcon)}\n role=\"status\"\n aria-label={translate?.('review_header_step_item.correct_question', {\n current: current ? 'current ' : '',\n headerStepValue: value as string\n })}\n />\n );\n break;\n\n case 'wrong':\n child = (\n <WrongIcon\n className={classnames(style.wrongIcon, current && style.currentWrongIcon)}\n role=\"alert\"\n aria-label={translate?.('review_header_step_item.incorrect_question', {\n current: current ? 'current ' : '',\n headerStepValue: value as string\n })}\n />\n );\n break;\n\n case 'errors-number':\n child = value;\n contentAriaLabel = translate?.('bulk_import.errors_number', {\n bulkImportErrorsNumber: value as string\n });\n break;\n\n case 'valid':\n child = (\n <RightIcon\n className={classnames(style.validIcon)}\n role=\"status\"\n aria-label={translate?.('bulk_import.valid_scorm')}\n />\n );\n break;\n\n case 'invalid':\n child = (\n <WrongIcon\n className={classnames(style.invalidIcon)}\n role=\"alert\"\n aria-label={translate?.('bulk_import.invalid_scorm')}\n />\n );\n break;\n\n default:\n return null;\n }\n\n return (\n <span\n {...(icon === 'no-answer' || icon === 'errors-number'\n ? {'aria-label': contentAriaLabel, role: 'status'}\n : {})}\n className={style.value}\n >\n {child}\n </span>\n );\n};\n\nconst StatusItem = (props: StatusItemProps) => {\n const {icon, current, selected} = props;\n const context = useWebContext();\n const translate = context.translate || ((key: string) => key);\n\n return (\n <div\n className={classnames(\n style.defaultStyle,\n icon === 'right' && style.right,\n icon === 'wrong' && style.wrong,\n current && style.current,\n icon === 'valid' && style.valid,\n icon === 'invalid' && style.invalid,\n icon === 'errors-number' && style.errorsNumber,\n selected && style.selected\n )}\n data-name=\"status-item\"\n >\n <Content {...props} translate={translate} />\n </div>\n );\n};\n\nContent.propTypes = propTypes;\n\nStatusItem.propTypes = propTypes;\n\nexport default StatusItem;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","classnames","NovaCompositionCoorpacademyCheck","RightIcon","NovaSolidStatusClose","WrongIcon","Provider","GetTranslateFromContext","style","propTypes","Content","props","legacyContext","icon","current","value","translate","child","contentAriaLabel","headerStepValue","createElement","className","rightIcon","currentRightIcon","role","wrongIcon","currentWrongIcon","bulkImportErrorsNumber","validIcon","invalidIcon","_extends","StatusItem","selected","defaultStyle","right","wrong","valid","invalid","errorsNumber","process","env","NODE_ENV","contextTypes","skin","childContextTypes"],"sources":["../../../src/atom/status-item/index.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport {\n NovaCompositionCoorpacademyCheck as RightIcon,\n NovaSolidStatusClose as WrongIcon\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetTranslateFromContext} from '../provider';\nimport {WebContextValues} from '../provider/web-context';\nimport style from './style.css';\nimport propTypes, {StatusItemProps} from './types';\n\nconst Content = (props: StatusItemProps, legacyContext: WebContextValues) => {\n const {icon, current, value} = props;\n const translate = GetTranslateFromContext(legacyContext);\n let child;\n let contentAriaLabel;\n switch (icon) {\n case 'no-answer':\n child = value;\n contentAriaLabel = translate('review_header_step_item.not_answered_question', {\n current: current ? 'current ' : '',\n headerStepValue: value\n });\n break;\n\n case 'right':\n child = (\n <RightIcon\n className={classnames(style.rightIcon, current && style.currentRightIcon)}\n role=\"status\"\n aria-label={translate('review_header_step_item.correct_question', {\n current: current ? 'current ' : '',\n headerStepValue: value\n })}\n />\n );\n break;\n\n case 'wrong':\n child = (\n <WrongIcon\n className={classnames(style.wrongIcon, current && style.currentWrongIcon)}\n role=\"alert\"\n aria-label={translate('review_header_step_item.incorrect_question', {\n current: current ? 'current ' : '',\n headerStepValue: value\n })}\n />\n );\n break;\n\n case 'errors-number':\n child = value;\n contentAriaLabel = translate('bulk_import.errors_number', {\n bulkImportErrorsNumber: value\n });\n break;\n\n case 'valid':\n child = (\n <RightIcon\n className={classnames(style.validIcon)}\n role=\"status\"\n aria-label={translate('bulk_import.valid_scorm')}\n />\n );\n break;\n\n case 'invalid':\n child = (\n <WrongIcon\n className={classnames(style.invalidIcon)}\n role=\"alert\"\n aria-label={translate('bulk_import.invalid_scorm')}\n />\n );\n break;\n\n default:\n return null;\n }\n\n return (\n <span\n {...(icon === 'no-answer' || icon === 'errors-number'\n ? {'aria-label': contentAriaLabel, role: 'status'}\n : {})}\n className={style.value}\n >\n {child}\n </span>\n );\n};\n\nconst StatusItem = (props: StatusItemProps) => {\n const {icon, current, selected} = props;\n return (\n <div\n className={classnames(\n style.defaultStyle,\n icon === 'right' && style.right,\n icon === 'wrong' && style.wrong,\n current && style.current,\n icon === 'valid' && style.valid,\n icon === 'invalid' && style.invalid,\n icon === 'errors-number' && style.errorsNumber,\n selected && style.selected\n )}\n data-name=\"status-item\"\n >\n <Content {...props} />\n </div>\n );\n};\n\nContent.propTypes = propTypes;\n\nContent.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nStatusItem.propTypes = propTypes;\n\nexport default StatusItem;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"names":[],"mappings":";AAKA,OAAkB,EAAC,0BAA0B,EAAC,MAAM,SAAS,CAAC;AAM9D,QAAA,MAAM,qBAAqB;YAAW,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsH/D,CAAC;AAIF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"names":[],"mappings":";AAKA,OAAkB,EAAC,0BAA0B,EAAC,MAAM,SAAS,CAAC;AAG9D,QAAA,MAAM,qBAAqB;YAAW,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgF/D,CAAC;AAIF,eAAe,qBAAqB,CAAC"}
@@ -5,9 +5,6 @@ import ButtonLinkIcon from '../../atom/button-link-icon';
5
5
  import ButtonMenu from '../../atom/button-menu';
6
6
  import propTypes from './types';
7
7
  import style from './style.css';
8
-
9
- // Global event for menu coordination
10
- const MENU_TOGGLE_EVENT = 'bulletPointMenuToggle';
11
8
  const BulletPointMenuButton = props => {
12
9
  const {
13
10
  disabled = false,
@@ -21,36 +18,12 @@ const BulletPointMenuButton = props => {
21
18
  } = props;
22
19
  const [visible, setVisible] = useState(false);
23
20
  const wrapperRef = useRef(null);
24
- const menuIdRef = useRef(`menu-${Date.now()}-${Math.random()}`);
25
21
  const handleOnClick = useCallback(event => {
26
22
  event.stopPropagation();
27
23
  event.preventDefault();
28
24
  onClick();
29
- // Emit event to close other menus
30
- // had to do it this way because state is handled per item.
31
- // meaning > item has no knowledge of other items state.
32
- const customEvent = new CustomEvent(MENU_TOGGLE_EVENT, {
33
- detail: {
34
- menuId: menuIdRef.current
35
- }
36
- });
37
- window.dispatchEvent(customEvent);
38
25
  setVisible(!visible);
39
26
  }, [onClick, visible]);
40
- useEffect(() => {
41
- const handleMenuToggle = event => {
42
- const customEvent = event;
43
- if (customEvent.detail.menuId !== menuIdRef.current && visible) {
44
- setVisible(false);
45
- }
46
- };
47
- window.addEventListener(MENU_TOGGLE_EVENT, handleMenuToggle);
48
- return () => {
49
- window.removeEventListener(MENU_TOGGLE_EVENT, handleMenuToggle);
50
- };
51
- }, [visible]);
52
-
53
- // Handle clicks outside the menu
54
27
  useEffect(() => {
55
28
  const handleClick = clickEvent => {
56
29
  if (wrapperRef && wrapperRef.current && !wrapperRef.current.contains(clickEvent.target)) {
@@ -80,27 +53,14 @@ const BulletPointMenuButton = props => {
80
53
  "aria-label": menuAriaLabel,
81
54
  ref: wrapperRef
82
55
  }, /*#__PURE__*/React.createElement(ButtonMenu, menuProps)) : null;
83
-
84
- // Conditionally show tooltip - hide it when menu is open or just closed
85
- const [tooltipDisabled, setTooltipDisabled] = useState(false);
86
- useEffect(() => {
87
- if (visible) {
88
- setTooltipDisabled(true);
89
- } else {
90
- // Delay re-enabling tooltip after menu closes
91
- const timer = setTimeout(() => setTooltipDisabled(false), 500);
92
- return () => clearTimeout(timer);
93
- }
94
- }, [visible]);
95
56
  const bulletPointButtonProps = {
96
57
  size: 'default',
97
- 'aria-label': tooltipDisabled ? undefined : buttonAriaLabel,
58
+ 'aria-label': buttonAriaLabel,
98
59
  'data-name': dataName,
99
60
  icon: 'bullet-point',
100
61
  onClick: handleOnClick,
101
62
  disabled,
102
- className: menuButtonClassName,
103
- tooltipPlacement: 'top'
63
+ className: menuButtonClassName
104
64
  };
105
65
  return /*#__PURE__*/React.createElement("div", {
106
66
  className: style.bulletPointWrapper,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useState","useEffect","useRef","classnames","ButtonLinkIcon","ButtonMenu","propTypes","style","MENU_TOGGLE_EVENT","BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","_noop","buttons","menuButtonClassName","isBulkMenu","dataName","visible","setVisible","wrapperRef","menuIdRef","Date","now","Math","random","handleOnClick","event","stopPropagation","preventDefault","customEvent","CustomEvent","detail","menuId","current","window","dispatchEvent","handleMenuToggle","addEventListener","removeEventListener","handleClick","clickEvent","contains","target","document","menuProps","menuStyle","bulletPointMenu","bulkBulletPointMenu","menu","createElement","className","ref","tooltipDisabled","setTooltipDisabled","timer","setTimeout","clearTimeout","bulletPointButtonProps","size","undefined","icon","tooltipPlacement","bulletPointWrapper","process","env","NODE_ENV"],"sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"sourcesContent":["import React, {useCallback, useState, useEffect, useRef} from 'react';\nimport classnames from 'classnames';\nimport {noop} from 'lodash/fp';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport ButtonMenu from '../../atom/button-menu';\nimport propTypes, {BulletPointMenuButtonProps} from './types';\nimport style from './style.css';\n\n// Global event for menu coordination\nconst MENU_TOGGLE_EVENT = 'bulletPointMenuToggle';\n\nconst BulletPointMenuButton = (props: BulletPointMenuButtonProps) => {\n const {\n disabled = false,\n buttonAriaLabel,\n menuAriaLabel,\n onClick = noop,\n buttons,\n menuButtonClassName,\n isBulkMenu,\n 'data-name': dataName = 'bullet-point-button'\n } = props;\n const [visible, setVisible] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const menuIdRef = useRef<string>(`menu-${Date.now()}-${Math.random()}`);\n\n const handleOnClick = useCallback(\n (event: React.MouseEvent | React.TouchEvent) => {\n event.stopPropagation();\n event.preventDefault();\n onClick();\n // Emit event to close other menus\n // had to do it this way because state is handled per item.\n // meaning > item has no knowledge of other items state.\n const customEvent = new CustomEvent(MENU_TOGGLE_EVENT, {\n detail: {menuId: menuIdRef.current}\n });\n window.dispatchEvent(customEvent);\n\n setVisible(!visible);\n },\n [onClick, visible]\n );\n\n useEffect(() => {\n const handleMenuToggle = (event: Event) => {\n const customEvent = event as CustomEvent;\n if (customEvent.detail.menuId !== menuIdRef.current && visible) {\n setVisible(false);\n }\n };\n\n window.addEventListener(MENU_TOGGLE_EVENT, handleMenuToggle);\n return () => {\n window.removeEventListener(MENU_TOGGLE_EVENT, handleMenuToggle);\n };\n }, [visible]);\n\n // Handle clicks outside the menu\n useEffect(() => {\n const handleClick = (clickEvent: MouseEvent | TouchEvent) => {\n if (\n wrapperRef &&\n wrapperRef.current &&\n !wrapperRef.current.contains(clickEvent.target as Node)\n ) {\n setVisible(false);\n }\n };\n if (visible) {\n document.addEventListener('click', handleClick);\n document.addEventListener('touchstart', handleClick);\n } else {\n document.removeEventListener('click', handleClick);\n document.removeEventListener('touchstart', handleClick);\n }\n return () => {\n document.removeEventListener('click', handleClick);\n document.removeEventListener('touchstart', handleClick);\n };\n }, [visible]);\n\n const menuProps = {\n 'data-name': 'button-menu',\n buttons\n };\n\n const menuStyle = classnames(\n style.bulletPointMenu,\n isBulkMenu && style.bulkBulletPointMenu,\n style.visible\n );\n\n const menu = visible ? (\n <div className={menuStyle} data-name=\"menu-wrapper\" aria-label={menuAriaLabel} ref={wrapperRef}>\n <ButtonMenu {...menuProps} />\n </div>\n ) : null;\n\n // Conditionally show tooltip - hide it when menu is open or just closed\n const [tooltipDisabled, setTooltipDisabled] = useState(false);\n\n useEffect(() => {\n if (visible) {\n setTooltipDisabled(true);\n } else {\n // Delay re-enabling tooltip after menu closes\n const timer = setTimeout(() => setTooltipDisabled(false), 500);\n return () => clearTimeout(timer);\n }\n }, [visible]);\n\n const bulletPointButtonProps = {\n size: 'default',\n 'aria-label': tooltipDisabled ? undefined : buttonAriaLabel,\n 'data-name': dataName,\n icon: 'bullet-point',\n onClick: handleOnClick,\n disabled,\n className: menuButtonClassName,\n tooltipPlacement: 'top' as const\n };\n\n return (\n <div className={style.bulletPointWrapper} data-name=\"bullet-point-wrapper\">\n <ButtonLinkIcon {...bulletPointButtonProps} />\n {menu}\n </div>\n );\n};\n\nBulletPointMenuButton.propTypes = propTypes;\n\nexport default BulletPointMenuButton;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useState","useEffect","useRef","classnames","ButtonLinkIcon","ButtonMenu","propTypes","style","BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","_noop","buttons","menuButtonClassName","isBulkMenu","dataName","visible","setVisible","wrapperRef","handleOnClick","event","stopPropagation","preventDefault","handleClick","clickEvent","current","contains","target","document","addEventListener","removeEventListener","menuProps","menuStyle","bulletPointMenu","bulkBulletPointMenu","menu","createElement","className","ref","bulletPointButtonProps","size","icon","bulletPointWrapper","process","env","NODE_ENV"],"sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"sourcesContent":["import React, {useCallback, useState, useEffect, useRef} from 'react';\nimport classnames from 'classnames';\nimport {noop} from 'lodash/fp';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport ButtonMenu from '../../atom/button-menu';\nimport propTypes, {BulletPointMenuButtonProps} from './types';\nimport style from './style.css';\n\nconst BulletPointMenuButton = (props: BulletPointMenuButtonProps) => {\n const {\n disabled = false,\n buttonAriaLabel,\n menuAriaLabel,\n onClick = noop,\n buttons,\n menuButtonClassName,\n isBulkMenu,\n 'data-name': dataName = 'bullet-point-button'\n } = props;\n const [visible, setVisible] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const handleOnClick = useCallback(\n (event: React.MouseEvent | React.TouchEvent) => {\n event.stopPropagation();\n event.preventDefault();\n onClick();\n setVisible(!visible);\n },\n [onClick, visible]\n );\n\n useEffect(() => {\n const handleClick = (clickEvent: MouseEvent | TouchEvent) => {\n if (\n wrapperRef &&\n wrapperRef.current &&\n !wrapperRef.current.contains(clickEvent.target as Node)\n ) {\n setVisible(false);\n }\n };\n if (visible) {\n document.addEventListener('click', handleClick);\n document.addEventListener('touchstart', handleClick);\n } else {\n document.removeEventListener('click', handleClick);\n document.removeEventListener('touchstart', handleClick);\n }\n return () => {\n document.removeEventListener('click', handleClick);\n document.removeEventListener('touchstart', handleClick);\n };\n }, [visible]);\n\n const menuProps = {\n 'data-name': 'button-menu',\n buttons\n };\n\n const menuStyle = classnames(\n style.bulletPointMenu,\n isBulkMenu && style.bulkBulletPointMenu,\n style.visible\n );\n\n const menu = visible ? (\n <div className={menuStyle} data-name=\"menu-wrapper\" aria-label={menuAriaLabel} ref={wrapperRef}>\n <ButtonMenu {...menuProps} />\n </div>\n ) : null;\n\n const bulletPointButtonProps = {\n size: 'default',\n 'aria-label': buttonAriaLabel,\n 'data-name': dataName,\n icon: 'bullet-point',\n onClick: handleOnClick,\n disabled,\n className: menuButtonClassName\n };\n\n return (\n <div className={style.bulletPointWrapper} data-name=\"bullet-point-wrapper\">\n <ButtonLinkIcon {...bulletPointButtonProps} />\n {menu}\n </div>\n );\n};\n\nBulletPointMenuButton.propTypes = propTypes;\n\nexport default BulletPointMenuButton;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"favorite.d.ts","sourceRoot":"","sources":["../../../src/molecule/card/favorite.js"],"names":[],"mappings":";AAcA;;;;;;;;oCA+JC"}
1
+ {"version":3,"file":"favorite.d.ts","sourceRoot":"","sources":["../../../src/molecule/card/favorite.js"],"names":[],"mappings":";AAcA;;;;;;;;oCAkJC"}
@@ -65,19 +65,6 @@ const Favorite = ({
65
65
  });
66
66
  return () => window.removeEventListener('scroll', hide);
67
67
  }, [toolTipIsVisible]);
68
-
69
- // Hide tooltip when favorite state changes
70
- // This prevents showing stale tooltip content
71
- useEffect(() => {
72
- if (toolTipIsVisible) {
73
- setToolTipIsVisible(false);
74
- }
75
- if (mouseLeaveTimer) {
76
- clearTimeout(mouseLeaveTimer);
77
- setMouseLeaveTimer(undefined);
78
- }
79
- // eslint-disable-next-line react-hooks/exhaustive-deps
80
- }, [favorite]);
81
68
  const handleKeyPress = useCallback(event => {
82
69
  toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);
83
70
  }, [toolTipIsVisible]);
@@ -1 +1 @@
1
- {"version":3,"file":"favorite.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","PropTypes","classnames","v5","uuidV5","NovaCompositionNavigationMore","MoreIcon","NovaCompositionCoorpacademyCheck","CheckIcon","Provider","GetSkinFromContext","GetTranslateFromContext","ToolTip","toggleStateOnKeyPress","Button","style","Favorite","favorite","addFavoriteToolTip","removeFavoriteToolTip","className","ariaLabel","onFavoriteClick","_noop","disabled","legacyContext","skin","translate","handleFavoriteClick","e","stopPropagation","preventDefault","primaryColor","_get","darkColor","brandColor","buttonRef","allowToolTip","_isEmpty","favoriteButtonAnchorId","URL","undefined","toolTipContent","mouseLeaveTimer","setMouseLeaveTimer","toolTipIsVisible","setToolTipIsVisible","handleMouseOver","clearTimeout","_has","current","focus","handleMouseLeave","setTimeout","blur","hide","window","addEventListener","passive","removeEventListener","handleKeyPress","event","iconWrapperClassName","selected","icon","createElement","checkIcon","color","width","height","removeFromFavorite","moreIcon","addToFavorite","favoriteWrapper","type","buttonContentClassName","onClick","onKeyDown","onMouseLeave","onMouseOver","tabIndex","useButtonTag","useWrapper","fontSize","anchorId","TooltipContent","closeToolTipInformationTextAriaLabel","stickyOnKeyboardNavigation","propTypes","process","env","NODE_ENV","string","bool","func","shape","contextTypes","childContextTypes"],"sources":["../../../src/molecule/card/favorite.js"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {v5 as uuidV5} from 'uuid';\nimport {get, has, isEmpty, noop} from 'lodash/fp';\nimport {\n NovaCompositionNavigationMore as MoreIcon,\n NovaCompositionCoorpacademyCheck as CheckIcon\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext, GetTranslateFromContext} from '../../atom/provider';\nimport ToolTip, {toggleStateOnKeyPress} from '../../atom/tooltip';\nimport Button from '../../atom/button';\nimport style from './favorite.css';\n\nconst Favorite = (\n {\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n className,\n 'aria-label': ariaLabel = {},\n onFavoriteClick = noop,\n disabled\n },\n legacyContext\n) => {\n const skin = GetSkinFromContext(legacyContext);\n const translate = GetTranslateFromContext(legacyContext);\n const handleFavoriteClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n if (!disabled) onFavoriteClick(e);\n },\n [disabled, onFavoriteClick]\n );\n\n const primaryColor = get('common.primary', skin);\n const darkColor = get('common.dark', skin);\n const brandColor = get('common.brand', skin);\n\n const buttonRef = useRef(null);\n\n const allowToolTip = useMemo(\n () => !isEmpty(removeFavoriteToolTip) && !isEmpty(addFavoriteToolTip),\n [addFavoriteToolTip, removeFavoriteToolTip]\n );\n\n // to be replaced by useId when React17 is bumped to React18\n const [favoriteButtonAnchorId] = useState(\n allowToolTip ? uuidV5('engaged-battle-', uuidV5.URL) : undefined\n );\n\n const toolTipContent = useMemo(\n // eslint-disable-next-line no-nested-ternary\n () => (allowToolTip ? (favorite ? removeFavoriteToolTip : addFavoriteToolTip) : null),\n [addFavoriteToolTip, favorite, removeFavoriteToolTip, allowToolTip]\n );\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n /* istanbul ignore next */ has(['current', 'focus'], buttonRef) && buttonRef.current.focus();\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(\n setTimeout(() => {\n setToolTipIsVisible(false);\n // @ts-expect-error (error: blur does not exists on type never)\n /* istanbul ignore next */ has(['current', 'blur'], buttonRef) && buttonRef.current.blur();\n }, 500)\n );\n }, []);\n\n useEffect(() => {\n if (!toolTipIsVisible) return;\n const hide = () => setToolTipIsVisible(false);\n if (typeof window === 'undefined') {\n return;\n }\n window.addEventListener('scroll', hide, {passive: true});\n return () => window.removeEventListener('scroll', hide);\n }, [toolTipIsVisible]);\n\n // Hide tooltip when favorite state changes\n // This prevents showing stale tooltip content\n useEffect(() => {\n if (toolTipIsVisible) {\n setToolTipIsVisible(false);\n }\n if (mouseLeaveTimer) {\n clearTimeout(mouseLeaveTimer);\n setMouseLeaveTimer(undefined);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [favorite]);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);\n },\n [toolTipIsVisible]\n );\n\n const iconWrapperClassName = useMemo(\n () => classnames(style.favorite, className, favorite && style.selected),\n [className, favorite]\n );\n const icon = useMemo(\n () =>\n favorite ? (\n <CheckIcon\n // eslint-disable-next-line css-modules/no-undef-class\n className={style.checkIcon}\n style={{color: brandColor}}\n width={13}\n height={13}\n data-testid=\"favorite-check-icon\"\n aria-label={ariaLabel.removeFromFavorite}\n />\n ) : (\n <MoreIcon\n className={style.moreIcon}\n style={{color: darkColor}}\n width={13}\n height={13}\n data-testid=\"favorite-add-icon\"\n aria-label={ariaLabel.addToFavorite}\n />\n ),\n [ariaLabel.addToFavorite, ariaLabel.removeFromFavorite, brandColor, darkColor, favorite]\n );\n\n return (\n <div className={style.favoriteWrapper} data-testid=\"favorite-wrapper\">\n <Button\n buttonRef={buttonRef}\n type=\"button\"\n data-for={favoriteButtonAnchorId}\n data-tooltip-place=\"left\"\n data-tip={allowToolTip}\n data-name=\"favorite\"\n data-testid=\"favorite-button\"\n aria-label={ariaLabel.favorite}\n buttonContentClassName={iconWrapperClassName}\n onClick={handleFavoriteClick}\n style={{\n color: primaryColor\n }}\n onKeyDown={handleKeyPress}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n tabIndex={0}\n useButtonTag\n useWrapper={false}\n >\n {icon}\n </Button>\n <ToolTip\n fontSize={12}\n anchorId={favoriteButtonAnchorId}\n toolTipIsVisible={toolTipIsVisible}\n TooltipContent={toolTipContent}\n closeToolTipInformationTextAriaLabel={translate('close_tooltip_information')}\n stickyOnKeyboardNavigation\n />\n </div>\n );\n};\n\nFavorite.propTypes = {\n className: PropTypes.string,\n favorite: PropTypes.bool,\n disabled: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onFavoriteClick: PropTypes.func,\n 'aria-label': PropTypes.shape({\n favorite: PropTypes.string,\n addToFavorite: PropTypes.string,\n removeFromFavorite: PropTypes.string\n })\n};\n\nFavorite.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nexport default Favorite;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"favorite.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","PropTypes","classnames","v5","uuidV5","NovaCompositionNavigationMore","MoreIcon","NovaCompositionCoorpacademyCheck","CheckIcon","Provider","GetSkinFromContext","GetTranslateFromContext","ToolTip","toggleStateOnKeyPress","Button","style","Favorite","favorite","addFavoriteToolTip","removeFavoriteToolTip","className","ariaLabel","onFavoriteClick","_noop","disabled","legacyContext","skin","translate","handleFavoriteClick","e","stopPropagation","preventDefault","primaryColor","_get","darkColor","brandColor","buttonRef","allowToolTip","_isEmpty","favoriteButtonAnchorId","URL","undefined","toolTipContent","mouseLeaveTimer","setMouseLeaveTimer","toolTipIsVisible","setToolTipIsVisible","handleMouseOver","clearTimeout","_has","current","focus","handleMouseLeave","setTimeout","blur","hide","window","addEventListener","passive","removeEventListener","handleKeyPress","event","iconWrapperClassName","selected","icon","createElement","checkIcon","color","width","height","removeFromFavorite","moreIcon","addToFavorite","favoriteWrapper","type","buttonContentClassName","onClick","onKeyDown","onMouseLeave","onMouseOver","tabIndex","useButtonTag","useWrapper","fontSize","anchorId","TooltipContent","closeToolTipInformationTextAriaLabel","stickyOnKeyboardNavigation","propTypes","process","env","NODE_ENV","string","bool","func","shape","contextTypes","childContextTypes"],"sources":["../../../src/molecule/card/favorite.js"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {v5 as uuidV5} from 'uuid';\nimport {get, has, isEmpty, noop} from 'lodash/fp';\nimport {\n NovaCompositionNavigationMore as MoreIcon,\n NovaCompositionCoorpacademyCheck as CheckIcon\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext, GetTranslateFromContext} from '../../atom/provider';\nimport ToolTip, {toggleStateOnKeyPress} from '../../atom/tooltip';\nimport Button from '../../atom/button';\nimport style from './favorite.css';\n\nconst Favorite = (\n {\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n className,\n 'aria-label': ariaLabel = {},\n onFavoriteClick = noop,\n disabled\n },\n legacyContext\n) => {\n const skin = GetSkinFromContext(legacyContext);\n const translate = GetTranslateFromContext(legacyContext);\n const handleFavoriteClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n if (!disabled) onFavoriteClick(e);\n },\n [disabled, onFavoriteClick]\n );\n\n const primaryColor = get('common.primary', skin);\n const darkColor = get('common.dark', skin);\n const brandColor = get('common.brand', skin);\n\n const buttonRef = useRef(null);\n\n const allowToolTip = useMemo(\n () => !isEmpty(removeFavoriteToolTip) && !isEmpty(addFavoriteToolTip),\n [addFavoriteToolTip, removeFavoriteToolTip]\n );\n\n // to be replaced by useId when React17 is bumped to React18\n const [favoriteButtonAnchorId] = useState(\n allowToolTip ? uuidV5('engaged-battle-', uuidV5.URL) : undefined\n );\n\n const toolTipContent = useMemo(\n // eslint-disable-next-line no-nested-ternary\n () => (allowToolTip ? (favorite ? removeFavoriteToolTip : addFavoriteToolTip) : null),\n [addFavoriteToolTip, favorite, removeFavoriteToolTip, allowToolTip]\n );\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n /* istanbul ignore next */ has(['current', 'focus'], buttonRef) && buttonRef.current.focus();\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(\n setTimeout(() => {\n setToolTipIsVisible(false);\n // @ts-expect-error (error: blur does not exists on type never)\n /* istanbul ignore next */ has(['current', 'blur'], buttonRef) && buttonRef.current.blur();\n }, 500)\n );\n }, []);\n\n useEffect(() => {\n if (!toolTipIsVisible) return;\n const hide = () => setToolTipIsVisible(false);\n if (typeof window === 'undefined') {\n return;\n }\n window.addEventListener('scroll', hide, {passive: true});\n return () => window.removeEventListener('scroll', hide);\n }, [toolTipIsVisible]);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);\n },\n [toolTipIsVisible]\n );\n\n const iconWrapperClassName = useMemo(\n () => classnames(style.favorite, className, favorite && style.selected),\n [className, favorite]\n );\n const icon = useMemo(\n () =>\n favorite ? (\n <CheckIcon\n // eslint-disable-next-line css-modules/no-undef-class\n className={style.checkIcon}\n style={{color: brandColor}}\n width={13}\n height={13}\n data-testid=\"favorite-check-icon\"\n aria-label={ariaLabel.removeFromFavorite}\n />\n ) : (\n <MoreIcon\n className={style.moreIcon}\n style={{color: darkColor}}\n width={13}\n height={13}\n data-testid=\"favorite-add-icon\"\n aria-label={ariaLabel.addToFavorite}\n />\n ),\n [ariaLabel.addToFavorite, ariaLabel.removeFromFavorite, brandColor, darkColor, favorite]\n );\n\n return (\n <div className={style.favoriteWrapper} data-testid=\"favorite-wrapper\">\n <Button\n buttonRef={buttonRef}\n type=\"button\"\n data-for={favoriteButtonAnchorId}\n data-tooltip-place=\"left\"\n data-tip={allowToolTip}\n data-name=\"favorite\"\n data-testid=\"favorite-button\"\n aria-label={ariaLabel.favorite}\n buttonContentClassName={iconWrapperClassName}\n onClick={handleFavoriteClick}\n style={{\n color: primaryColor\n }}\n onKeyDown={handleKeyPress}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n tabIndex={0}\n useButtonTag\n useWrapper={false}\n >\n {icon}\n </Button>\n <ToolTip\n fontSize={12}\n anchorId={favoriteButtonAnchorId}\n toolTipIsVisible={toolTipIsVisible}\n TooltipContent={toolTipContent}\n closeToolTipInformationTextAriaLabel={translate('close_tooltip_information')}\n stickyOnKeyboardNavigation\n />\n </div>\n );\n};\n\nFavorite.propTypes = {\n className: PropTypes.string,\n favorite: PropTypes.bool,\n disabled: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onFavoriteClick: PropTypes.func,\n 'aria-label': PropTypes.shape({\n favorite: PropTypes.string,\n addToFavorite: PropTypes.string,\n removeFromFavorite: PropTypes.string\n })\n};\n\nFavorite.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nexport default Favorite;\n"],"mappings":"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","ignoreList":[]}
@@ -41,7 +41,6 @@ declare namespace CourseSections {
41
41
  placeholder: PropTypes.Requireable<string>;
42
42
  defaultValue: PropTypes.Requireable<string>;
43
43
  disabled: PropTypes.Requireable<boolean>;
44
- readOnly: PropTypes.Requireable<boolean>;
45
44
  value: PropTypes.Requireable<string>;
46
45
  hint: PropTypes.Requireable<string>;
47
46
  error: PropTypes.Requireable<string>;
@@ -44,7 +44,6 @@ export namespace DragAndDrop {
44
44
  defaultValue: PropTypes.Requireable<string>;
45
45
  theme: PropTypes.Requireable<string>;
46
46
  disabled: PropTypes.Requireable<boolean>;
47
- readOnly: PropTypes.Requireable<boolean>;
48
47
  value: PropTypes.Requireable<string>;
49
48
  hint: PropTypes.Requireable<string>;
50
49
  error: PropTypes.Requireable<string>;
@@ -25,7 +25,6 @@ export namespace UploadReport {
25
25
  defaultValue: PropTypes.Requireable<string>;
26
26
  theme: PropTypes.Requireable<string>;
27
27
  disabled: PropTypes.Requireable<boolean>;
28
- readOnly: PropTypes.Requireable<boolean>;
29
28
  value: PropTypes.Requireable<string>;
30
29
  hint: PropTypes.Requireable<string>;
31
30
  error: PropTypes.Requireable<string>;
@@ -17,7 +17,6 @@ declare class Filters extends React.Component<any, any, any> {
17
17
  className: PropTypes.Requireable<string>;
18
18
  borderClassName: PropTypes.Requireable<string>;
19
19
  disabled: PropTypes.Requireable<boolean>;
20
- readOnly: PropTypes.Requireable<boolean>;
21
20
  multiple: PropTypes.Requireable<boolean>;
22
21
  description: PropTypes.Requireable<string>;
23
22
  required: PropTypes.Requireable<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/filters/index.js"],"names":[],"mappings":";AASA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgBE;IAEF;;;;;;;;;;;;;;;;;;;;;;MAEE;IAEF,wBASC;IAPC;;;MAGC;IAMH,yBAcC;IAED,uBAYC;IAED,qBAOC;IAED,sBA4FC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/filters/index.js"],"names":[],"mappings":";AASA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgBE;IAEF;;;;;;;;;;;;;;;;;;;;;;MAEE;IAEF,wBASC;IAPC;;;MAGC;IAMH,yBAcC;IAED,uBAYC;IAED,qBAOC;IAED,sBA4FC;CACF"}
@@ -30,7 +30,7 @@ const SkillPickerModal = (props, context) => {
30
30
  const detectScrollbar = true;
31
31
  const [sortedSkills, setSortedSkills] = useState(_sortBy(skill => skillsLocales[skill], skills));
32
32
  const [currentSort, setCurrentSort] = useState('alphabetical');
33
- const [selectedSkillList, setSelectedSkillList] = useState(selectedSkills || []);
33
+ const [selectedSkillList, setSelectedSkillList] = useState(selectedSkills);
34
34
  const handleCancel = useCallback(() => {
35
35
  setSelectedSkillList(selectedSkills);
36
36
  onCancel();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useMemo","useState","useCallback","useEffect","PropTypes","BaseModal","Chip","Loader","Select","Provider","style","SkillPickerModal","props","context","skills","selectedSkills","skillsLocales","skillsScore","isOpen","isLoading","maxSelectedSkills","minSelectedSkills","onCancel","onConfirm","onClose","translate","detectScrollbar","sortedSkills","setSortedSkills","_sortBy","skill","currentSort","setCurrentSort","selectedSkillList","setSelectedSkillList","handleCancel","handleClose","skillProgressAvailable","_some","skillList","map","skillTitle","skillRef","focus","includes","score","isError","length","footer","footerDescription","skillNumber","text","cancelButton","label","disabled","confirmButton","iconName","sorting","theme","options","value","name","selected","onChange","prev","createElement","title","description","headerIcon","backgroundColor","className","skillPickerContainer","loaderContainer","loader","Fragment","ctaWrapper","sortWrapper","_extends","display","gap","flexWrap","index","handleChipClick","newSelectedSkillList","_filter","selectedSkill","subText","toFixed","onClick","key","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","arrayOf","string","objectOf","number","bool","func"],"sources":["../../../src/molecule/skill-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport {filter, some, sortBy} from 'lodash/fp';\nimport BaseModal from '../base-modal';\nimport Chip from '../../atom/chip';\nimport Loader from '../../atom/loader';\nimport Select from '../../atom/select';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst SkillPickerModal = (props, context) => {\n const {\n skills,\n selectedSkills,\n skillsLocales,\n skillsScore,\n isOpen,\n isLoading,\n maxSelectedSkills = 6,\n minSelectedSkills = 3,\n onCancel,\n onConfirm,\n onClose\n } = props;\n const {translate} = context;\n\n const detectScrollbar = true;\n const [sortedSkills, setSortedSkills] = useState(sortBy(skill => skillsLocales[skill], skills));\n const [currentSort, setCurrentSort] = useState('alphabetical');\n const [selectedSkillList, setSelectedSkillList] = useState(selectedSkills || []);\n\n const handleCancel = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onCancel();\n }, [setSelectedSkillList, selectedSkills, onCancel]);\n\n const handleClose = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onClose();\n }, [setSelectedSkillList, selectedSkills, onClose]);\n\n const skillProgressAvailable = some(skill => skillsScore[skill] > 0, skills);\n\n const skillList = useMemo(() => {\n return sortedSkills.map(skill => {\n return {\n skillTitle: skillsLocales[skill],\n skillRef: skill,\n focus: selectedSkillList.includes(skill),\n score: skillsScore[skill]\n };\n });\n }, [sortedSkills, selectedSkillList, skillsLocales, skillsScore]);\n\n const isError = useMemo(\n () =>\n selectedSkillList.length > maxSelectedSkills || selectedSkillList.length < minSelectedSkills,\n [selectedSkillList, maxSelectedSkills, minSelectedSkills]\n );\n\n const footer = useMemo(() => {\n const footerDescription =\n selectedSkillList.length > maxSelectedSkills\n ? translate('skill_focus_footer_error_description', {\n skillNumber: selectedSkillList.length - maxSelectedSkills\n })\n : translate('skill_focus_footer_description', {\n skillNumber: minSelectedSkills - selectedSkillList.length\n });\n return {\n text: isLoading || !isError ? '' : footerDescription,\n isError,\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel'),\n disabled: isLoading || isError\n },\n confirmButton: {\n onConfirm: () => onConfirm(selectedSkillList),\n label: translate('confirm'),\n iconName: 'circle-check',\n disabled: isLoading || isError\n }\n };\n }, [\n isError,\n handleCancel,\n onConfirm,\n translate,\n selectedSkillList,\n isLoading,\n maxSelectedSkills,\n minSelectedSkills\n ]);\n\n const sorting = useMemo(\n () => ({\n theme: 'skillDetail',\n options: ['alphabetical', 'progress'].map(value => ({\n name: value === 'progress' ? translate('progress') : translate('alphabetical'),\n value,\n selected: currentSort === value\n })),\n onChange: value => setCurrentSort(value)\n }),\n [currentSort, translate]\n );\n\n useEffect(() => {\n // eslint-disable-next-line lodash-fp/no-extraneous-function-wrapping\n setSortedSkills(prev =>\n sortBy(\n skill => (currentSort === 'progress' ? -skillsScore[skill] : skillsLocales[skill]),\n prev\n )\n );\n }, [currentSort, skillsScore, skillsLocales, setSortedSkills]);\n\n if ((!isLoading && !skills) || !isOpen) return null;\n\n return (\n <BaseModal\n title={translate('skill_focus')}\n description={translate('skill_focus_description')}\n isOpen={isOpen}\n onClose={handleClose}\n footer={footer}\n headerIcon={{\n name: 'bullseye-arrow',\n backgroundColor: '#DDD1FF'\n }}\n detectScrollbar={detectScrollbar}\n >\n <div className={style.skillPickerContainer}>\n {isLoading ? (\n <div className={style.loaderContainer}>\n <Loader className={style.loader} theme=\"coorpmanager\" />\n </div>\n ) : (\n <>\n <div className={style.ctaWrapper}>\n <div>{`${selectedSkillList.length} ${translate('selected')}`}</div>\n {skillProgressAvailable ? (\n <div className={style.sortWrapper}>\n {translate('sort_by')}\n <Select {...sorting} aria-label=\"All courses sort\" />\n </div>\n ) : null}\n </div>\n <div style={{display: 'flex', gap: '16px', flexWrap: 'wrap'}}>\n {skillList.map((skill, index) => {\n const {skillTitle, skillRef, focus, score} = skill;\n function handleChipClick() {\n const newSelectedSkillList = focus\n ? filter(selectedSkill => selectedSkill !== skillRef, selectedSkillList)\n : [...selectedSkillList, skill.skillRef];\n setSelectedSkillList(newSelectedSkillList);\n }\n\n return (\n <Chip\n {...(skillProgressAvailable ? {subText: `${score.toFixed(1)}%`} : {})}\n text={skillTitle}\n selected={focus}\n onClick={handleChipClick}\n key={index}\n backgroundColor=\"skin\"\n />\n );\n })}\n </div>\n </>\n )}\n </div>\n </BaseModal>\n );\n};\n\nSkillPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nSkillPickerModal.propTypes = {\n skills: PropTypes.arrayOf(PropTypes.string),\n selectedSkills: PropTypes.arrayOf(PropTypes.string),\n skillsLocales: PropTypes.objectOf(PropTypes.string),\n skillsScore: PropTypes.objectOf(PropTypes.number),\n isOpen: PropTypes.bool,\n isLoading: PropTypes.bool,\n minSelectedSkills: PropTypes.number,\n maxSelectedSkills: PropTypes.number,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default SkillPickerModal;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useMemo","useState","useCallback","useEffect","PropTypes","BaseModal","Chip","Loader","Select","Provider","style","SkillPickerModal","props","context","skills","selectedSkills","skillsLocales","skillsScore","isOpen","isLoading","maxSelectedSkills","minSelectedSkills","onCancel","onConfirm","onClose","translate","detectScrollbar","sortedSkills","setSortedSkills","_sortBy","skill","currentSort","setCurrentSort","selectedSkillList","setSelectedSkillList","handleCancel","handleClose","skillProgressAvailable","_some","skillList","map","skillTitle","skillRef","focus","includes","score","isError","length","footer","footerDescription","skillNumber","text","cancelButton","label","disabled","confirmButton","iconName","sorting","theme","options","value","name","selected","onChange","prev","createElement","title","description","headerIcon","backgroundColor","className","skillPickerContainer","loaderContainer","loader","Fragment","ctaWrapper","sortWrapper","_extends","display","gap","flexWrap","index","handleChipClick","newSelectedSkillList","_filter","selectedSkill","subText","toFixed","onClick","key","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","arrayOf","string","objectOf","number","bool","func"],"sources":["../../../src/molecule/skill-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport {filter, some, sortBy} from 'lodash/fp';\nimport BaseModal from '../base-modal';\nimport Chip from '../../atom/chip';\nimport Loader from '../../atom/loader';\nimport Select from '../../atom/select';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst SkillPickerModal = (props, context) => {\n const {\n skills,\n selectedSkills,\n skillsLocales,\n skillsScore,\n isOpen,\n isLoading,\n maxSelectedSkills = 6,\n minSelectedSkills = 3,\n onCancel,\n onConfirm,\n onClose\n } = props;\n const {translate} = context;\n\n const detectScrollbar = true;\n const [sortedSkills, setSortedSkills] = useState(sortBy(skill => skillsLocales[skill], skills));\n const [currentSort, setCurrentSort] = useState('alphabetical');\n const [selectedSkillList, setSelectedSkillList] = useState(selectedSkills);\n\n const handleCancel = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onCancel();\n }, [setSelectedSkillList, selectedSkills, onCancel]);\n\n const handleClose = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onClose();\n }, [setSelectedSkillList, selectedSkills, onClose]);\n\n const skillProgressAvailable = some(skill => skillsScore[skill] > 0, skills);\n\n const skillList = useMemo(() => {\n return sortedSkills.map(skill => {\n return {\n skillTitle: skillsLocales[skill],\n skillRef: skill,\n focus: selectedSkillList.includes(skill),\n score: skillsScore[skill]\n };\n });\n }, [sortedSkills, selectedSkillList, skillsLocales, skillsScore]);\n\n const isError = useMemo(\n () =>\n selectedSkillList.length > maxSelectedSkills || selectedSkillList.length < minSelectedSkills,\n [selectedSkillList, maxSelectedSkills, minSelectedSkills]\n );\n\n const footer = useMemo(() => {\n const footerDescription =\n selectedSkillList.length > maxSelectedSkills\n ? translate('skill_focus_footer_error_description', {\n skillNumber: selectedSkillList.length - maxSelectedSkills\n })\n : translate('skill_focus_footer_description', {\n skillNumber: minSelectedSkills - selectedSkillList.length\n });\n return {\n text: isLoading || !isError ? '' : footerDescription,\n isError,\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel'),\n disabled: isLoading || isError\n },\n confirmButton: {\n onConfirm: () => onConfirm(selectedSkillList),\n label: translate('confirm'),\n iconName: 'circle-check',\n disabled: isLoading || isError\n }\n };\n }, [\n isError,\n handleCancel,\n onConfirm,\n translate,\n selectedSkillList,\n isLoading,\n maxSelectedSkills,\n minSelectedSkills\n ]);\n\n const sorting = useMemo(\n () => ({\n theme: 'skillDetail',\n options: ['alphabetical', 'progress'].map(value => ({\n name: value === 'progress' ? translate('progress') : translate('alphabetical'),\n value,\n selected: currentSort === value\n })),\n onChange: value => setCurrentSort(value)\n }),\n [currentSort, translate]\n );\n\n useEffect(() => {\n // eslint-disable-next-line lodash-fp/no-extraneous-function-wrapping\n setSortedSkills(prev =>\n sortBy(\n skill => (currentSort === 'progress' ? -skillsScore[skill] : skillsLocales[skill]),\n prev\n )\n );\n }, [currentSort, skillsScore, skillsLocales, setSortedSkills]);\n\n if ((!isLoading && !skills) || !isOpen) return null;\n\n return (\n <BaseModal\n title={translate('skill_focus')}\n description={translate('skill_focus_description')}\n isOpen={isOpen}\n onClose={handleClose}\n footer={footer}\n headerIcon={{\n name: 'bullseye-arrow',\n backgroundColor: '#DDD1FF'\n }}\n detectScrollbar={detectScrollbar}\n >\n <div className={style.skillPickerContainer}>\n {isLoading ? (\n <div className={style.loaderContainer}>\n <Loader className={style.loader} theme=\"coorpmanager\" />\n </div>\n ) : (\n <>\n <div className={style.ctaWrapper}>\n <div>{`${selectedSkillList.length} ${translate('selected')}`}</div>\n {skillProgressAvailable ? (\n <div className={style.sortWrapper}>\n {translate('sort_by')}\n <Select {...sorting} aria-label=\"All courses sort\" />\n </div>\n ) : null}\n </div>\n <div style={{display: 'flex', gap: '16px', flexWrap: 'wrap'}}>\n {skillList.map((skill, index) => {\n const {skillTitle, skillRef, focus, score} = skill;\n function handleChipClick() {\n const newSelectedSkillList = focus\n ? filter(selectedSkill => selectedSkill !== skillRef, selectedSkillList)\n : [...selectedSkillList, skill.skillRef];\n setSelectedSkillList(newSelectedSkillList);\n }\n\n return (\n <Chip\n {...(skillProgressAvailable ? {subText: `${score.toFixed(1)}%`} : {})}\n text={skillTitle}\n selected={focus}\n onClick={handleChipClick}\n key={index}\n backgroundColor=\"skin\"\n />\n );\n })}\n </div>\n </>\n )}\n </div>\n </BaseModal>\n );\n};\n\nSkillPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nSkillPickerModal.propTypes = {\n skills: PropTypes.arrayOf(PropTypes.string),\n selectedSkills: PropTypes.arrayOf(PropTypes.string),\n skillsLocales: PropTypes.objectOf(PropTypes.string),\n skillsScore: PropTypes.objectOf(PropTypes.number),\n isOpen: PropTypes.bool,\n isLoading: PropTypes.bool,\n minSelectedSkills: PropTypes.number,\n maxSelectedSkills: PropTypes.number,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default SkillPickerModal;\n"],"mappings":"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","ignoreList":[]}
@@ -97,7 +97,6 @@ declare namespace TitleAndCheckBoxWrapper {
97
97
  placeholder: PropTypes.Requireable<string>;
98
98
  defaultValue: PropTypes.Requireable<string>;
99
99
  disabled: PropTypes.Requireable<boolean>;
100
- readOnly: PropTypes.Requireable<boolean>;
101
100
  value: PropTypes.Requireable<string>;
102
101
  hint: PropTypes.Requireable<string>;
103
102
  error: PropTypes.Requireable<string>;
@@ -18,7 +18,6 @@ declare namespace TranslationModal {
18
18
  placeholder: PropTypes.Requireable<string>;
19
19
  defaultValue: PropTypes.Requireable<string>;
20
20
  disabled: PropTypes.Requireable<boolean>;
21
- readOnly: PropTypes.Requireable<boolean>;
22
21
  value: PropTypes.Requireable<string>;
23
22
  hint: PropTypes.Requireable<string>;
24
23
  error: PropTypes.Requireable<string>;
@@ -37,7 +36,6 @@ declare namespace TranslationModal {
37
36
  title: PropTypes.Requireable<string>;
38
37
  name: PropTypes.Requireable<string>;
39
38
  disabled: PropTypes.Requireable<boolean>;
40
- readOnly: PropTypes.Requireable<boolean>;
41
39
  value: PropTypes.Requireable<string>;
42
40
  hint: PropTypes.Requireable<string>;
43
41
  error: PropTypes.Requireable<string>;
@@ -56,7 +54,6 @@ declare namespace TranslationModal {
56
54
  placeholder: PropTypes.Requireable<string>;
57
55
  defaultValue: PropTypes.Requireable<string>;
58
56
  disabled: PropTypes.Requireable<boolean>;
59
- readOnly: PropTypes.Requireable<boolean>;
60
57
  value: PropTypes.Requireable<string>;
61
58
  hint: PropTypes.Requireable<string>;
62
59
  error: PropTypes.Requireable<string>;
@@ -75,7 +72,6 @@ declare namespace TranslationModal {
75
72
  title: PropTypes.Requireable<string>;
76
73
  name: PropTypes.Requireable<string>;
77
74
  disabled: PropTypes.Requireable<boolean>;
78
- readOnly: PropTypes.Requireable<boolean>;
79
75
  value: PropTypes.Requireable<string>;
80
76
  hint: PropTypes.Requireable<string>;
81
77
  error: PropTypes.Requireable<string>;
@@ -11,16 +11,16 @@ const renderInputGroup = ({
11
11
  title,
12
12
  inputProps,
13
13
  textAreaProps,
14
- readOnly
14
+ disabled
15
15
  }) => {
16
16
  return /*#__PURE__*/React.createElement("div", {
17
17
  className: style.inputGroup
18
18
  }, /*#__PURE__*/React.createElement("div", {
19
19
  className: style.title
20
20
  }, title), /*#__PURE__*/React.createElement(InputText, _extends({}, inputProps, {
21
- readOnly: readOnly
21
+ disabled: disabled
22
22
  })), /*#__PURE__*/React.createElement(TextArea, _extends({}, textAreaProps, {
23
- readOnly: readOnly
23
+ disabled: disabled
24
24
  })));
25
25
  };
26
26
  const TranslationModal = (props, context) => {
@@ -63,7 +63,7 @@ const TranslationModal = (props, context) => {
63
63
  confirmButton: {
64
64
  onConfirm,
65
65
  label: translate('confirm'),
66
- iconName: 'check',
66
+ iconName: 'plus',
67
67
  disabled,
68
68
  color: COLORS.cm_primary_blue
69
69
  }
@@ -90,14 +90,14 @@ const TranslationModal = (props, context) => {
90
90
  title: inputLanguage,
91
91
  inputProps: sourceInputText,
92
92
  textAreaProps: sourceTextArea,
93
- readOnly: true
93
+ disabled: true
94
94
  }), /*#__PURE__*/React.createElement("div", {
95
95
  className: style.separator
96
96
  }), renderInputGroup({
97
97
  title: outputLanguage,
98
98
  inputProps: targetInputText,
99
99
  textAreaProps: targetTextArea,
100
- readOnly: readOnly
100
+ disabled: readOnly
101
101
  }))));
102
102
  };
103
103
  TranslationModal.contextTypes = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useMemo","useCallback","PropTypes","BaseModal","Provider","COLORS","InputText","TextArea","style","renderInputGroup","title","inputProps","textAreaProps","readOnly","createElement","className","inputGroup","_extends","TranslationModal","props","context","isOpen","onCancel","onConfirm","onClose","disabled","source","inputText","sourceInputText","textArea","sourceTextArea","inputLanguage","target","targetInputText","targetTextArea","language","outputLanguage","translate","detectScrollbar","handleCancel","handleClose","footer","cancelButton","label","confirmButton","iconName","color","cm_primary_blue","description","headerIcon","name","backgroundColor","translationModal","horizontalSection","separator","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","bool","func","shape","theme","string"],"sources":["../../../src/molecule/translation-modal/index.js"],"sourcesContent":["import React, {useMemo, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport BaseModal from '../base-modal';\nimport Provider from '../../atom/provider';\nimport {COLORS} from '../../variables/colors';\nimport InputText from '../../atom/input-text';\nimport TextArea from '../../atom/input-textarea';\nimport style from './style.css';\n\nconst renderInputGroup = ({title, inputProps, textAreaProps, readOnly}) => {\n return (\n <div className={style.inputGroup}>\n <div className={style.title}>{title}</div>\n <InputText {...inputProps} readOnly={readOnly} />\n <TextArea {...textAreaProps} readOnly={readOnly} />\n </div>\n );\n};\n\nconst TranslationModal = (props, context) => {\n const {\n isOpen,\n onCancel,\n onConfirm,\n onClose,\n disabled = false,\n source: {inputText: sourceInputText, textArea: sourceTextArea, inputLanguage},\n target: {inputText: targetInputText, textArea: targetTextArea, language: outputLanguage},\n readOnly = false\n } = props;\n const {translate} = context;\n\n const detectScrollbar = true;\n\n const handleCancel = useCallback(() => {\n onCancel();\n }, [onCancel]);\n\n const handleClose = useCallback(() => {\n onClose();\n }, [onClose]);\n\n const footer = useMemo(() => {\n const cancelButton = {\n onCancel: handleCancel,\n label: translate(readOnly ? 'close' : 'cancel')\n };\n return {\n cancelButton,\n ...(!readOnly && {\n confirmButton: {\n onConfirm,\n label: translate('confirm'),\n iconName: 'check',\n disabled,\n color: COLORS.cm_primary_blue\n }\n })\n };\n }, [handleCancel, onConfirm, translate, readOnly, disabled]);\n\n if (!isOpen) return null;\n\n return (\n <BaseModal\n title={translate('translation_title')}\n description={translate('translation_description')}\n isOpen={isOpen}\n onClose={handleClose}\n footer={footer}\n headerIcon={{\n name: 'language',\n backgroundColor: '#D6E6FF'\n }}\n detectScrollbar={detectScrollbar}\n >\n <div className={style.translationModal}>\n <div className={style.horizontalSection}>\n {renderInputGroup({\n title: inputLanguage,\n inputProps: sourceInputText,\n textAreaProps: sourceTextArea,\n readOnly: true\n })}\n\n <div className={style.separator} />\n\n {renderInputGroup({\n title: outputLanguage,\n inputProps: targetInputText,\n textAreaProps: targetTextArea,\n readOnly: readOnly\n })}\n </div>\n </div>\n </BaseModal>\n );\n};\n\nTranslationModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nTranslationModal.propTypes = {\n isOpen: PropTypes.bool,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func,\n disabled: PropTypes.bool,\n source: PropTypes.shape({\n inputText: PropTypes.shape({\n ...InputText.propTypes,\n theme: PropTypes.string\n }),\n textArea: PropTypes.shape({\n ...TextArea.propTypes,\n theme: PropTypes.string\n }),\n inputLanguage: PropTypes.string\n }),\n target: PropTypes.shape({\n inputText: PropTypes.shape({\n ...InputText.propTypes,\n theme: PropTypes.string\n }),\n textArea: PropTypes.shape({\n ...TextArea.propTypes,\n theme: PropTypes.string\n }),\n language: PropTypes.string\n }),\n readOnly: PropTypes.bool\n};\n\nexport default TranslationModal;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useMemo","useCallback","PropTypes","BaseModal","Provider","COLORS","InputText","TextArea","style","renderInputGroup","title","inputProps","textAreaProps","disabled","createElement","className","inputGroup","_extends","TranslationModal","props","context","isOpen","onCancel","onConfirm","onClose","source","inputText","sourceInputText","textArea","sourceTextArea","inputLanguage","target","targetInputText","targetTextArea","language","outputLanguage","readOnly","translate","detectScrollbar","handleCancel","handleClose","footer","cancelButton","label","confirmButton","iconName","color","cm_primary_blue","description","headerIcon","name","backgroundColor","translationModal","horizontalSection","separator","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","bool","func","shape","theme","string"],"sources":["../../../src/molecule/translation-modal/index.js"],"sourcesContent":["import React, {useMemo, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport BaseModal from '../base-modal';\nimport Provider from '../../atom/provider';\nimport {COLORS} from '../../variables/colors';\nimport InputText from '../../atom/input-text';\nimport TextArea from '../../atom/input-textarea';\nimport style from './style.css';\n\nconst renderInputGroup = ({title, inputProps, textAreaProps, disabled}) => {\n return (\n <div className={style.inputGroup}>\n <div className={style.title}>{title}</div>\n <InputText {...inputProps} disabled={disabled} />\n <TextArea {...textAreaProps} disabled={disabled} />\n </div>\n );\n};\n\nconst TranslationModal = (props, context) => {\n const {\n isOpen,\n onCancel,\n onConfirm,\n onClose,\n disabled = false,\n source: {inputText: sourceInputText, textArea: sourceTextArea, inputLanguage},\n target: {inputText: targetInputText, textArea: targetTextArea, language: outputLanguage},\n readOnly = false\n } = props;\n const {translate} = context;\n\n const detectScrollbar = true;\n\n const handleCancel = useCallback(() => {\n onCancel();\n }, [onCancel]);\n\n const handleClose = useCallback(() => {\n onClose();\n }, [onClose]);\n\n const footer = useMemo(() => {\n const cancelButton = {\n onCancel: handleCancel,\n label: translate(readOnly ? 'close' : 'cancel')\n };\n return {\n cancelButton,\n ...(!readOnly && {\n confirmButton: {\n onConfirm,\n label: translate('confirm'),\n iconName: 'plus',\n disabled,\n color: COLORS.cm_primary_blue\n }\n })\n };\n }, [handleCancel, onConfirm, translate, readOnly, disabled]);\n\n if (!isOpen) return null;\n\n return (\n <BaseModal\n title={translate('translation_title')}\n description={translate('translation_description')}\n isOpen={isOpen}\n onClose={handleClose}\n footer={footer}\n headerIcon={{\n name: 'language',\n backgroundColor: '#D6E6FF'\n }}\n detectScrollbar={detectScrollbar}\n >\n <div className={style.translationModal}>\n <div className={style.horizontalSection}>\n {renderInputGroup({\n title: inputLanguage,\n inputProps: sourceInputText,\n textAreaProps: sourceTextArea,\n disabled: true\n })}\n\n <div className={style.separator} />\n\n {renderInputGroup({\n title: outputLanguage,\n inputProps: targetInputText,\n textAreaProps: targetTextArea,\n disabled: readOnly\n })}\n </div>\n </div>\n </BaseModal>\n );\n};\n\nTranslationModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nTranslationModal.propTypes = {\n isOpen: PropTypes.bool,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func,\n disabled: PropTypes.bool,\n source: PropTypes.shape({\n inputText: PropTypes.shape({\n ...InputText.propTypes,\n theme: PropTypes.string\n }),\n textArea: PropTypes.shape({\n ...TextArea.propTypes,\n theme: PropTypes.string\n }),\n inputLanguage: PropTypes.string\n }),\n target: PropTypes.shape({\n inputText: PropTypes.shape({\n ...InputText.propTypes,\n theme: PropTypes.string\n }),\n textArea: PropTypes.shape({\n ...TextArea.propTypes,\n theme: PropTypes.string\n }),\n language: PropTypes.string\n }),\n readOnly: PropTypes.bool\n};\n\nexport default TranslationModal;\n"],"mappings":"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","ignoreList":[]}