@coorpacademy/components 11.11.1-alpha.0 → 11.11.2
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.
- package/es/atom/input-search/index.d.ts.map +1 -1
- package/es/atom/input-search/index.js +1 -0
- package/es/atom/input-search/index.js.map +1 -1
- package/es/atom/input-switch/index.d.ts +2 -0
- package/es/atom/input-switch/index.d.ts.map +1 -1
- package/es/atom/input-switch/index.js +23 -11
- package/es/atom/input-switch/index.js.map +1 -1
- package/es/atom/select/index.d.ts +1 -0
- package/es/atom/select/index.d.ts.map +1 -1
- package/es/atom/select/index.js +13 -8
- package/es/atom/select/index.js.map +1 -1
- package/es/atom/tooltip/index.d.ts +1 -3
- package/es/atom/tooltip/index.d.ts.map +1 -1
- package/es/atom/tooltip/index.js +7 -17
- package/es/atom/tooltip/index.js.map +1 -1
- package/es/atom/tooltip/style.css +2 -10
- package/es/globals.d.js.map +1 -1
- package/es/molecule/brand-form-group/index.d.ts +8 -0
- package/es/molecule/cm-popin/types.d.ts +2 -0
- package/es/molecule/cm-popin/types.d.ts.map +1 -1
- package/es/molecule/draggable-list/index.d.ts +2 -0
- package/es/molecule/filters/filters-wrapper.d.ts.map +1 -1
- package/es/molecule/filters/filters-wrapper.js +4 -1
- package/es/molecule/filters/filters-wrapper.js.map +1 -1
- package/es/molecule/filters/index.d.ts +2 -0
- package/es/molecule/filters/index.d.ts.map +1 -1
- package/es/molecule/filters/index.js +10 -3
- package/es/molecule/filters/index.js.map +1 -1
- package/es/molecule/setup-section/index.d.ts +2 -0
- package/es/molecule/setup-section/index.d.ts.map +1 -1
- package/es/molecule/setup-sections/index.d.ts +2 -0
- package/es/molecule/setup-slide/index.d.ts +3 -0
- package/es/molecule/setup-slider/index.d.ts +3 -0
- package/es/molecule/video-player-mobile/index.native.d.ts +1 -1
- package/es/molecule/video-player-mobile/index.native.d.ts.map +1 -1
- package/es/molecule/video-player-mobile/index.native.js +26 -9
- package/es/molecule/video-player-mobile/index.native.js.map +1 -1
- package/es/organism/brand-form/index.d.ts +8 -0
- package/es/organism/mooc-header/index.d.ts.map +1 -1
- package/es/organism/mooc-header/index.js +4 -1
- package/es/organism/mooc-header/index.js.map +1 -1
- package/es/organism/review-slide/index.native.d.ts.map +1 -1
- package/es/organism/review-slide/index.native.js +32 -15
- package/es/organism/review-slide/index.native.js.map +1 -1
- package/es/organism/user-preferences/index.d.ts +2 -0
- package/es/organism/wizard-contents/index.d.ts +8 -0
- package/es/template/activity/index.d.ts +12 -11
- package/es/template/activity/index.d.ts.map +1 -1
- package/es/template/activity/index.js +6 -3
- package/es/template/activity/index.js.map +1 -1
- package/es/template/app-player/loading/index.d.ts +2 -0
- package/es/template/app-player/player/index.d.ts +4 -0
- package/es/template/app-player/player/slides/index.d.ts +2 -0
- package/es/template/app-player/player/slides/index.d.ts.map +1 -1
- package/es/template/app-player/popin-correction/index.d.ts +2 -0
- package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
- package/es/template/app-player/popin-end/index.d.ts +2 -0
- package/es/template/app-review/index.d.ts +2 -0
- package/es/template/app-review/index.d.ts.map +1 -1
- package/es/template/app-review/player/prop-types.d.ts +2 -0
- package/es/template/app-review/player/prop-types.d.ts.map +1 -1
- package/es/template/app-review/prop-types.d.ts +2 -0
- package/es/template/app-review/prop-types.d.ts.map +1 -1
- package/es/template/back-office/brand-update/index.d.ts +18 -0
- package/es/template/common/dashboard/index.d.ts +2 -0
- package/es/template/common/search-page/index.d.ts +3 -0
- package/es/template/common/search-page/index.d.ts.map +1 -1
- package/es/template/common/search-page/index.js +6 -3
- package/es/template/common/search-page/index.js.map +1 -1
- package/lib/atom/input-search/index.d.ts.map +1 -1
- package/lib/atom/input-search/index.js +1 -0
- package/lib/atom/input-search/index.js.map +1 -1
- package/lib/atom/input-switch/index.d.ts +2 -0
- package/lib/atom/input-switch/index.d.ts.map +1 -1
- package/lib/atom/input-switch/index.js +22 -11
- package/lib/atom/input-switch/index.js.map +1 -1
- package/lib/atom/select/index.d.ts +1 -0
- package/lib/atom/select/index.d.ts.map +1 -1
- package/lib/atom/select/index.js +13 -8
- package/lib/atom/select/index.js.map +1 -1
- package/lib/atom/tooltip/index.d.ts +1 -3
- package/lib/atom/tooltip/index.d.ts.map +1 -1
- package/lib/atom/tooltip/index.js +7 -18
- package/lib/atom/tooltip/index.js.map +1 -1
- package/lib/atom/tooltip/style.css +2 -10
- package/lib/globals.d.js.map +1 -1
- package/lib/molecule/brand-form-group/index.d.ts +8 -0
- package/lib/molecule/cm-popin/types.d.ts +2 -0
- package/lib/molecule/cm-popin/types.d.ts.map +1 -1
- package/lib/molecule/draggable-list/index.d.ts +2 -0
- package/lib/molecule/filters/filters-wrapper.d.ts.map +1 -1
- package/lib/molecule/filters/filters-wrapper.js +4 -1
- package/lib/molecule/filters/filters-wrapper.js.map +1 -1
- package/lib/molecule/filters/index.d.ts +2 -0
- package/lib/molecule/filters/index.d.ts.map +1 -1
- package/lib/molecule/filters/index.js +9 -3
- package/lib/molecule/filters/index.js.map +1 -1
- package/lib/molecule/setup-section/index.d.ts +2 -0
- package/lib/molecule/setup-section/index.d.ts.map +1 -1
- package/lib/molecule/setup-sections/index.d.ts +2 -0
- package/lib/molecule/setup-slide/index.d.ts +3 -0
- package/lib/molecule/setup-slider/index.d.ts +3 -0
- package/lib/molecule/video-player-mobile/index.native.d.ts +1 -1
- package/lib/molecule/video-player-mobile/index.native.d.ts.map +1 -1
- package/lib/molecule/video-player-mobile/index.native.js +29 -9
- package/lib/molecule/video-player-mobile/index.native.js.map +1 -1
- package/lib/organism/brand-form/index.d.ts +8 -0
- package/lib/organism/mooc-header/index.d.ts.map +1 -1
- package/lib/organism/mooc-header/index.js +4 -1
- package/lib/organism/mooc-header/index.js.map +1 -1
- package/lib/organism/review-slide/index.native.d.ts.map +1 -1
- package/lib/organism/review-slide/index.native.js +31 -13
- package/lib/organism/review-slide/index.native.js.map +1 -1
- package/lib/organism/user-preferences/index.d.ts +2 -0
- package/lib/organism/wizard-contents/index.d.ts +8 -0
- package/lib/template/activity/index.d.ts +12 -11
- package/lib/template/activity/index.d.ts.map +1 -1
- package/lib/template/activity/index.js +6 -3
- package/lib/template/activity/index.js.map +1 -1
- package/lib/template/app-player/loading/index.d.ts +2 -0
- package/lib/template/app-player/player/index.d.ts +4 -0
- package/lib/template/app-player/player/slides/index.d.ts +2 -0
- package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
- package/lib/template/app-player/popin-correction/index.d.ts +2 -0
- package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
- package/lib/template/app-player/popin-end/index.d.ts +2 -0
- package/lib/template/app-review/index.d.ts +2 -0
- package/lib/template/app-review/index.d.ts.map +1 -1
- package/lib/template/app-review/player/prop-types.d.ts +2 -0
- package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
- package/lib/template/app-review/prop-types.d.ts +2 -0
- package/lib/template/app-review/prop-types.d.ts.map +1 -1
- package/lib/template/back-office/brand-update/index.d.ts +18 -0
- package/lib/template/common/dashboard/index.d.ts +2 -0
- package/lib/template/common/search-page/index.d.ts +3 -0
- package/lib/template/common/search-page/index.d.ts.map +1 -1
- package/lib/template/common/search-page/index.js +6 -3
- package/lib/template/common/search-page/index.js.map +1 -1
- package/locales/.mtslconfig.json +1 -0
- package/package.json +4 -2
- package/es/atom/battle-opponent/index.d.ts +0 -19
- package/es/atom/battle-opponent/index.d.ts.map +0 -1
- package/es/atom/battle-opponent/index.js +0 -52
- package/es/atom/battle-opponent/index.js.map +0 -1
- package/es/atom/battle-opponent/prop-types.d.ts +0 -19
- package/es/atom/battle-opponent/prop-types.d.ts.map +0 -1
- package/es/atom/battle-opponent/prop-types.js +0 -11
- package/es/atom/battle-opponent/prop-types.js.map +0 -1
- package/es/atom/battle-opponent/style.css +0 -126
- package/lib/atom/battle-opponent/index.d.ts +0 -19
- package/lib/atom/battle-opponent/index.d.ts.map +0 -1
- package/lib/atom/battle-opponent/index.js +0 -70
- package/lib/atom/battle-opponent/index.js.map +0 -1
- package/lib/atom/battle-opponent/prop-types.d.ts +0 -19
- package/lib/atom/battle-opponent/prop-types.d.ts.map +0 -1
- package/lib/atom/battle-opponent/prop-types.js +0 -20
- package/lib/atom/battle-opponent/prop-types.js.map +0 -1
- package/lib/atom/battle-opponent/style.css +0 -126
|
@@ -30,6 +30,8 @@ declare namespace SetupSlide {
|
|
|
30
30
|
disabled: PropTypes.Requireable<boolean>;
|
|
31
31
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
32
32
|
description: PropTypes.Requireable<string>;
|
|
33
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
34
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
33
35
|
modified: PropTypes.Requireable<boolean>;
|
|
34
36
|
titlePosition: PropTypes.Requireable<string>;
|
|
35
37
|
theme: PropTypes.Requireable<string>;
|
|
@@ -66,6 +68,7 @@ declare namespace SetupSlide {
|
|
|
66
68
|
modified: PropTypes.Requireable<boolean>;
|
|
67
69
|
error: PropTypes.Requireable<boolean>;
|
|
68
70
|
'aria-label': PropTypes.Requireable<string>;
|
|
71
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
69
72
|
}> | PropTypes.InferProps<{
|
|
70
73
|
type: PropTypes.Requireable<string>;
|
|
71
74
|
title: PropTypes.Validator<string>;
|
|
@@ -43,6 +43,8 @@ declare namespace SetupSlider {
|
|
|
43
43
|
disabled: PropTypes.Requireable<boolean>;
|
|
44
44
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
45
45
|
description: PropTypes.Requireable<string>;
|
|
46
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
47
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
46
48
|
modified: PropTypes.Requireable<boolean>;
|
|
47
49
|
titlePosition: PropTypes.Requireable<string>;
|
|
48
50
|
theme: PropTypes.Requireable<string>;
|
|
@@ -79,6 +81,7 @@ declare namespace SetupSlider {
|
|
|
79
81
|
modified: PropTypes.Requireable<boolean>;
|
|
80
82
|
error: PropTypes.Requireable<boolean>;
|
|
81
83
|
'aria-label': PropTypes.Requireable<string>;
|
|
84
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
82
85
|
}> | PropTypes.InferProps<{
|
|
83
86
|
type: PropTypes.Requireable<string>;
|
|
84
87
|
title: PropTypes.Validator<string>;
|
|
@@ -3,6 +3,6 @@ import { Media } from '../questions/types';
|
|
|
3
3
|
export declare type Props = {
|
|
4
4
|
media: Media;
|
|
5
5
|
};
|
|
6
|
-
declare const Video: ({ media }: Props) => JSX.Element;
|
|
6
|
+
declare const Video: ({ media }: Props) => JSX.Element | null;
|
|
7
7
|
export default Video;
|
|
8
8
|
//# sourceMappingURL=index.native.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/molecule/video-player-mobile/index.native.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/molecule/video-player-mobile/index.native.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAEzC,oBAAY,KAAK,GAAG;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,CAAC;AAwCnC,QAAA,MAAM,KAAK,cAAa,KAAK,uBAE5B,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -9,33 +9,55 @@ var _reactNative = require("react-native");
|
|
|
9
9
|
|
|
10
10
|
var _reactNativeJwMediaPlayer = _interopRequireDefault(require("react-native-jw-media-player"));
|
|
11
11
|
|
|
12
|
+
var _reactNativeYoutube = _interopRequireDefault(require("react-native-youtube"));
|
|
13
|
+
|
|
14
|
+
var _reactNativeVimeoIframe = require("react-native-vimeo-iframe");
|
|
15
|
+
|
|
16
|
+
var _templateContext = require("../../template/app-review/template-context");
|
|
17
|
+
|
|
12
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
19
|
|
|
14
20
|
const styleSheet = _reactNative.StyleSheet.create({
|
|
15
21
|
container: {
|
|
16
22
|
flex: 1,
|
|
17
23
|
width: '100%'
|
|
18
|
-
},
|
|
19
|
-
video: {
|
|
20
|
-
flex: 1,
|
|
21
|
-
width: '100%'
|
|
22
24
|
}
|
|
23
25
|
});
|
|
24
26
|
|
|
25
27
|
const VideoSwitch = ({
|
|
26
28
|
media
|
|
27
29
|
}) => {
|
|
30
|
+
const {
|
|
31
|
+
brandTheme
|
|
32
|
+
} = (0, _templateContext.useTemplateContext)();
|
|
33
|
+
|
|
28
34
|
switch (media.mimeType) {
|
|
35
|
+
case 'application/kontiki':
|
|
29
36
|
case 'application/jwplayer':
|
|
37
|
+
case 'video/mp4':
|
|
30
38
|
if (!media.jwpOptions?.config) {
|
|
31
39
|
return null;
|
|
32
40
|
}
|
|
33
41
|
|
|
34
42
|
return /*#__PURE__*/_react.default.createElement(_reactNativeJwMediaPlayer.default, {
|
|
35
|
-
style: styleSheet.
|
|
43
|
+
style: styleSheet.container,
|
|
36
44
|
config: media.jwpOptions.config
|
|
37
45
|
});
|
|
38
46
|
|
|
47
|
+
case 'application/vimeo':
|
|
48
|
+
return media.videoId ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
49
|
+
style: styleSheet.container
|
|
50
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNativeVimeoIframe.Vimeo, {
|
|
51
|
+
videoId: media.videoId
|
|
52
|
+
})) : null;
|
|
53
|
+
|
|
54
|
+
case 'application/youtube':
|
|
55
|
+
return /*#__PURE__*/_react.default.createElement(_reactNativeYoutube.default, {
|
|
56
|
+
apiKey: brandTheme.youtube?.apiKey || '',
|
|
57
|
+
style: styleSheet.container,
|
|
58
|
+
videoId: media.videoId
|
|
59
|
+
});
|
|
60
|
+
|
|
39
61
|
default:
|
|
40
62
|
return /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, `video mimeType ${media.mimeType} is not handled`);
|
|
41
63
|
}
|
|
@@ -44,11 +66,9 @@ const VideoSwitch = ({
|
|
|
44
66
|
const Video = ({
|
|
45
67
|
media
|
|
46
68
|
}) => {
|
|
47
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
48
|
-
style: styleSheet.container
|
|
49
|
-
}, media ? /*#__PURE__*/_react.default.createElement(VideoSwitch, {
|
|
69
|
+
return media ? /*#__PURE__*/_react.default.createElement(VideoSwitch, {
|
|
50
70
|
media: media
|
|
51
|
-
}) : null
|
|
71
|
+
}) : null;
|
|
52
72
|
};
|
|
53
73
|
|
|
54
74
|
var _default = Video;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","names":["styleSheet","StyleSheet","create","container","flex","width","
|
|
1
|
+
{"version":3,"file":"index.native.js","names":["styleSheet","StyleSheet","create","container","flex","width","VideoSwitch","media","brandTheme","useTemplateContext","mimeType","jwpOptions","config","videoId","youtube","apiKey","Video"],"sources":["../../../src/molecule/video-player-mobile/index.native.tsx"],"sourcesContent":["import React from 'react';\nimport {StyleSheet, Text, View} from 'react-native';\nimport JWPlayer from 'react-native-jw-media-player';\nimport Youtube from 'react-native-youtube';\nimport {Vimeo} from 'react-native-vimeo-iframe';\nimport {useTemplateContext} from '../../template/app-review/template-context';\n\nimport {Media} from '../questions/types';\n\nexport type Props = {media: Media};\n\nconst styleSheet = StyleSheet.create({\n container: {\n flex: 1,\n width: '100%'\n }\n});\n\nconst VideoSwitch = ({media}: Props) => {\n const {brandTheme} = useTemplateContext();\n\n switch (media.mimeType) {\n case 'application/kontiki':\n case 'application/jwplayer':\n case 'video/mp4':\n if (!media.jwpOptions?.config) {\n return null;\n }\n\n return <JWPlayer style={styleSheet.container} config={media.jwpOptions.config} />;\n case 'application/vimeo':\n return media.videoId ? (\n <View style={styleSheet.container}>\n <Vimeo videoId={media.videoId} />\n </View>\n ) : null;\n case 'application/youtube':\n return (\n <Youtube\n apiKey={brandTheme.youtube?.apiKey || ''}\n style={styleSheet.container}\n videoId={media.videoId}\n />\n );\n default:\n return <Text>{`video mimeType ${media.mimeType} is not handled`}</Text>;\n }\n};\n\nconst Video = ({media}: Props) => {\n return media ? <VideoSwitch media={media} /> : null;\n};\n\nexport default Video;\n"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAMA,MAAMA,UAAU,GAAGC,uBAAA,CAAWC,MAAX,CAAkB;EACnCC,SAAS,EAAE;IACTC,IAAI,EAAE,CADG;IAETC,KAAK,EAAE;EAFE;AADwB,CAAlB,CAAnB;;AAOA,MAAMC,WAAW,GAAG,CAAC;EAACC;AAAD,CAAD,KAAoB;EACtC,MAAM;IAACC;EAAD,IAAe,IAAAC,mCAAA,GAArB;;EAEA,QAAQF,KAAK,CAACG,QAAd;IACE,KAAK,qBAAL;IACA,KAAK,sBAAL;IACA,KAAK,WAAL;MACE,IAAI,CAACH,KAAK,CAACI,UAAN,EAAkBC,MAAvB,EAA+B;QAC7B,OAAO,IAAP;MACD;;MAED,oBAAO,6BAAC,iCAAD;QAAU,KAAK,EAAEZ,UAAU,CAACG,SAA5B;QAAuC,MAAM,EAAEI,KAAK,CAACI,UAAN,CAAiBC;MAAhE,EAAP;;IACF,KAAK,mBAAL;MACE,OAAOL,KAAK,CAACM,OAAN,gBACL,6BAAC,iBAAD;QAAM,KAAK,EAAEb,UAAU,CAACG;MAAxB,gBACE,6BAAC,6BAAD;QAAO,OAAO,EAAEI,KAAK,CAACM;MAAtB,EADF,CADK,GAIH,IAJJ;;IAKF,KAAK,qBAAL;MACE,oBACE,6BAAC,2BAAD;QACE,MAAM,EAAEL,UAAU,CAACM,OAAX,EAAoBC,MAApB,IAA8B,EADxC;QAEE,KAAK,EAAEf,UAAU,CAACG,SAFpB;QAGE,OAAO,EAAEI,KAAK,CAACM;MAHjB,EADF;;IAOF;MACE,oBAAO,6BAAC,iBAAD,QAAQ,kBAAiBN,KAAK,CAACG,QAAS,iBAAxC,CAAP;EAxBJ;AA0BD,CA7BD;;AA+BA,MAAMM,KAAK,GAAG,CAAC;EAACT;AAAD,CAAD,KAAoB;EAChC,OAAOA,KAAK,gBAAG,6BAAC,WAAD;IAAa,KAAK,EAAEA;EAApB,EAAH,GAAmC,IAA/C;AACD,CAFD;;eAIeS,K"}
|
|
@@ -86,6 +86,8 @@ declare namespace BrandForm {
|
|
|
86
86
|
disabled: PropTypes.Requireable<boolean>;
|
|
87
87
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
88
88
|
description: PropTypes.Requireable<string>;
|
|
89
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
90
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
89
91
|
modified: PropTypes.Requireable<boolean>;
|
|
90
92
|
titlePosition: PropTypes.Requireable<string>;
|
|
91
93
|
theme: PropTypes.Requireable<string>;
|
|
@@ -139,6 +141,7 @@ declare namespace BrandForm {
|
|
|
139
141
|
modified: PropTypes.Requireable<boolean>;
|
|
140
142
|
error: PropTypes.Requireable<boolean>;
|
|
141
143
|
'aria-label': PropTypes.Requireable<string>;
|
|
144
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
142
145
|
}> | PropTypes.InferProps<{
|
|
143
146
|
type: PropTypes.Requireable<string>;
|
|
144
147
|
title: PropTypes.Validator<string>;
|
|
@@ -218,6 +221,8 @@ declare namespace BrandForm {
|
|
|
218
221
|
disabled: PropTypes.Requireable<boolean>;
|
|
219
222
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
220
223
|
description: PropTypes.Requireable<string>;
|
|
224
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
225
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
221
226
|
modified: PropTypes.Requireable<boolean>;
|
|
222
227
|
titlePosition: PropTypes.Requireable<string>;
|
|
223
228
|
theme: PropTypes.Requireable<string>;
|
|
@@ -254,6 +259,7 @@ declare namespace BrandForm {
|
|
|
254
259
|
modified: PropTypes.Requireable<boolean>;
|
|
255
260
|
error: PropTypes.Requireable<boolean>;
|
|
256
261
|
'aria-label': PropTypes.Requireable<string>;
|
|
262
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
257
263
|
}> | PropTypes.InferProps<{
|
|
258
264
|
type: PropTypes.Requireable<string>;
|
|
259
265
|
title: PropTypes.Validator<string>;
|
|
@@ -358,6 +364,8 @@ declare namespace BrandForm {
|
|
|
358
364
|
disabled: PropTypes.Requireable<boolean>;
|
|
359
365
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
360
366
|
description: PropTypes.Requireable<string>;
|
|
367
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
368
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
361
369
|
modified: PropTypes.Requireable<boolean>;
|
|
362
370
|
titlePosition: PropTypes.Requireable<string>;
|
|
363
371
|
theme: PropTypes.Requireable<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-header/index.js"],"names":[],"mappings":";AAyBA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6FE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAuBC;IArBC;;;;;MAKC;IAgDH,6BAIC;IAED,yBAGC;IAxBD,qCAQC;IAED,wBAGC;IAjBD,+BAEC;IA4BD,2BAKC;IAED,0BAKC;IAED,sBAIC;IAED,qBAIC;IAED,yBAQC;IAED,0BAQC;IAED,0BAIC;IAED,2BAIC;IAED,iCAUC;IA7GD,2EASC;IAGC,kBAAsB;IAmGxB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-header/index.js"],"names":[],"mappings":";AAyBA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6FE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAuBC;IArBC;;;;;MAKC;IAgDH,6BAIC;IAED,yBAGC;IAxBD,qCAQC;IAED,wBAGC;IAjBD,+BAEC;IA4BD,2BAKC;IAED,0BAKC;IAED,sBAIC;IAED,qBAIC;IAED,yBAQC;IAED,0BAQC;IAED,0BAIC;IAED,2BAIC;IAED,iCAUC;IA7GD,2EASC;IAGC,kBAAsB;IAmGxB,6BA4aC;CACF"}
|
|
@@ -490,8 +490,11 @@ class MoocHeader extends _react.default.Component {
|
|
|
490
490
|
key: settingName,
|
|
491
491
|
"aria-label": ariaLabel || title
|
|
492
492
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
493
|
+
id: `title-id-${settingName}`,
|
|
493
494
|
className: _style.default.label
|
|
494
|
-
}, title), /*#__PURE__*/_react.default.createElement(_inputSwitch.default, switchProps
|
|
495
|
+
}, title), /*#__PURE__*/_react.default.createElement(_inputSwitch.default, _extends({}, switchProps, {
|
|
496
|
+
"aria-labelledby": `title-id-${settingName}`
|
|
497
|
+
})));
|
|
495
498
|
break;
|
|
496
499
|
}
|
|
497
500
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["MoocHeader","React","Component","constructor","props","state","isSettingsOpen","isMenuOpen","isFocus","isToolTipOpen","handleSettingsToggle","bind","handleMenuToggle","_checkOnClose","handleLinkClick","setMenuSettings","handleSubmitSearch","handleResetSearch","handleOnFocus","handleOnBlur","handleOnMenuOpen","handleOnMenuClose","handleOnMouseOver","handleOnMouseLeave","handleKeyPress","componentDidUpdate","prevProps","prevState","prevContext","document","addEventListener","removeEventListener","el","menuSettings","clickEvent","menu","contains","target","setState","onSubmitSearch","onResetSearch","onMenuOpen","onMenuClose","event","key","render","logo","pages","items","settings","user","links","search","searchResetAriaLabel","settingsAriaLabel","closeSettingsAriaLabel","activePageAriaLabel","translate","skin","context","logoAriaLabel","closeMenuAriaLabel","openMenuAriaLabel","toolTipText","closeToolTipInformationTextAriaLabel","logoUrl","logoMobileUrl","pagesView","linksView","userView","settingsView","notificationsView","searchFormView","moreAriaLabel","closeLabel","primaryColor","mediumColor","darkColor","white","iconWrapperStyle","backgroundColor","displayedPages","displayed","map","item","index","activeColor","selected","color","pageCountAriaLabel","itemLabel","title","pageBadge","counter","href","style","itemBadge","name","itemName","activePage","bar","optionsView","more","option","value","noItems","currentOption","caret","optionsGroup","ctas","cta","length","ctaLink","nbNotifications","notificationsAriaLabel","notifications","notificationPageView","classnames","notification","active","stats","stat","stars","iconWrapper","label","ranking","badge","avatarWrapper","avatar","userLink","picture","profileAvatarAlt","settingsElements","setting","settingView","options","type","settingName","hoverColor","ariaLabel","link","selectProps","values","theme","onChange","switchProps","id","settingsToggle","settingsWrapper","settingsWrapperHidden","settingsGroup","closeSettings","hiddenSearchBar","searchBar","wrapper","open","header","logoWrapper","navMobile","burgerHidden","burger","close","closeHidden","tooltipIconContainer","homeIcon","__html","menuWrapper","hiddenMenuWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","shape","src","string","srcMobile","Search","func","arrayOf","oneOf","bool","number","Cta"],"sources":["../../../src/organism/mooc-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, get, isEmpty} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionNavigationBurger as BurgerIcon,\n NovaCompositionNavigationClose as CloseIcon,\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyCharts as ChartsIcon,\n NovaSolidVoteRewardsRewardsTrophy5 as TrophyIcon,\n NovaCompositionCoorpacademyCog as CogIcon,\n NovaCompositionCoorpacademyPlacesHome24 as HomeIcon,\n NovaSolidTimeAlarm as AlarmIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport Cta from '../../atom/cta';\nimport Select from '../../atom/select';\nimport Picture from '../../atom/picture';\nimport InputSwitch from '../../atom/input-switch';\nimport Link from '../../atom/link';\nimport Search from '../../atom/input-search';\nimport SearchForm from '../../molecule/search-form';\nimport style from './style.css';\n\nclass MoocHeader extends React.Component {\n static propTypes = {\n logo: PropTypes.shape({\n src: PropTypes.string,\n srcMobile: PropTypes.string,\n href: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'button-aria-label': PropTypes.string,\n toolTipText: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string\n }),\n search: PropTypes.shape(Search.propTypes),\n 'search-reset-aria-label': PropTypes.string,\n onSubmitSearch: PropTypes.func,\n onResetSearch: PropTypes.func,\n pages: PropTypes.shape({\n displayed: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number,\n 'page-count-aria-label': PropTypes.string\n })\n ),\n more: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number\n })\n )\n }),\n links: PropTypes.arrayOf(PropTypes.shape(Cta.propTypes)),\n user: PropTypes.shape({\n picture: PropTypes.string,\n 'picture-aria-label': PropTypes.string,\n profileAvatarAlt: PropTypes.string,\n href: PropTypes.string,\n notifications: PropTypes.shape({\n href: PropTypes.string,\n value: PropTypes.number,\n 'aria-label': PropTypes.string\n }),\n stats: PropTypes.shape({\n stars: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n ranking: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n badge: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n })\n })\n }),\n 'settings-aria-label': PropTypes.string,\n 'close-settings-aria-label': PropTypes.string,\n 'active-page-aria-label': PropTypes.string,\n settings: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.oneOf(['select', 'switch', 'link']),\n color: PropTypes.string,\n 'aria-label': PropTypes.string,\n options: PropTypes.shape({\n href: PropTypes.string,\n onChange: PropTypes.func,\n value: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n values: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n name: PropTypes.string,\n selected: PropTypes.bool\n })\n )\n })\n })\n ),\n onMenuOpen: PropTypes.func,\n onMenuClose: PropTypes.func\n };\n\n static contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isSettingsOpen: false,\n isMenuOpen: false,\n isFocus: false,\n isToolTipOpen: false\n };\n\n this.handleSettingsToggle = this.handleSettingsToggle.bind(this);\n this.handleMenuToggle = this.handleMenuToggle.bind(this);\n this._checkOnClose = this._checkOnClose.bind(this);\n this.handleLinkClick = this.handleLinkClick.bind(this);\n this.setMenuSettings = this.setMenuSettings.bind(this);\n this.handleSubmitSearch = this.handleSubmitSearch.bind(this);\n this.handleResetSearch = this.handleResetSearch.bind(this);\n this.handleOnFocus = this.handleOnFocus.bind(this);\n this.handleOnBlur = this.handleOnBlur.bind(this);\n this.handleOnMenuOpen = this.handleOnMenuOpen.bind(this);\n this.handleOnMenuClose = this.handleOnMenuClose.bind(this);\n this.handleOnMouseOver = this.handleOnMouseOver.bind(this);\n this.handleOnMouseLeave = this.handleOnMouseLeave.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, prevContext) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n document.addEventListener('click', this._checkOnClose);\n document.addEventListener('touchstart', this._checkOnClose);\n } else {\n document.removeEventListener('click', this._checkOnClose);\n document.removeEventListener('touchstart', this._checkOnClose);\n }\n }\n\n setMenuSettings(el) {\n this.menuSettings = el;\n }\n\n _checkOnClose(clickEvent) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n const menu = this.menuSettings;\n if (menu && !menu.contains(clickEvent.target)) {\n this.handleSettingsToggle();\n }\n }\n }\n\n handleLinkClick() {\n const {isMenuOpen} = this.state;\n isMenuOpen && this.handleMenuToggle();\n }\n\n handleSettingsToggle() {\n this.setState(prevState => ({\n isSettingsOpen: !prevState.isSettingsOpen\n }));\n }\n\n handleMenuToggle() {\n const {isMenuOpen} = this.state;\n isMenuOpen ? this.handleOnMenuClose() : this.handleOnMenuOpen();\n }\n\n handleSubmitSearch() {\n const {onSubmitSearch} = this.props;\n if (onSubmitSearch) {\n onSubmitSearch();\n }\n }\n\n handleResetSearch() {\n const {onResetSearch} = this.props;\n if (onResetSearch) {\n onResetSearch();\n }\n }\n\n handleOnFocus() {\n this.setState(prevState => ({\n isFocus: true\n }));\n }\n\n handleOnBlur() {\n this.setState(prevState => ({\n isFocus: false\n }));\n }\n\n handleOnMenuOpen() {\n const {onMenuOpen} = this.props;\n if (onMenuOpen) {\n onMenuOpen();\n }\n this.setState(() => ({\n isMenuOpen: true\n }));\n }\n\n handleOnMenuClose() {\n const {onMenuClose} = this.props;\n if (onMenuClose) {\n onMenuClose();\n }\n this.setState(() => ({\n isMenuOpen: false\n }));\n }\n\n handleOnMouseOver() {\n this.setState(() => ({\n isToolTipOpen: true\n }));\n }\n\n handleOnMouseLeave() {\n this.setState(() => ({\n isToolTipOpen: false\n }));\n }\n\n handleKeyPress(event) {\n if (event.key === 'Enter') {\n this.setState(() => ({\n isToolTipOpen: true\n }));\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n this.setState(() => ({\n isToolTipOpen: false\n }));\n }\n }\n\n render() {\n if (isEmpty(this.props)) return null;\n const {\n logo = {},\n pages: items,\n settings,\n user,\n links,\n search,\n 'search-reset-aria-label': searchResetAriaLabel,\n 'settings-aria-label': settingsAriaLabel,\n 'close-settings-aria-label': closeSettingsAriaLabel,\n 'active-page-aria-label': activePageAriaLabel\n } = this.props;\n const {isFocus, isSettingsOpen, isMenuOpen, isToolTipOpen} = this.state;\n const {translate, skin} = this.context;\n const {\n 'aria-label': logoAriaLabel,\n closeMenuAriaLabel,\n openMenuAriaLabel,\n toolTipText,\n closeToolTipInformationTextAriaLabel\n } = logo;\n const logoUrl = get('src', logo) || get('images.logo', skin);\n const logoMobileUrl = get('srcMobile', logo) || getOr(logoUrl, 'images.logo-mobile', skin);\n let pagesView = null;\n let linksView = null;\n let userView = null;\n let settingsView = null;\n let notificationsView = null;\n let searchFormView = null;\n\n const moreAriaLabel = translate('More');\n const closeLabel = translate('Close');\n const primaryColor = get('common.primary', skin);\n const mediumColor = get('common.medium', skin);\n const darkColor = get('common.dark', skin);\n const white = get('common.white', skin);\n const iconWrapperStyle = {backgroundColor: primaryColor};\n\n if (items) {\n const displayedPages = items.displayed.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {'page-count-aria-label': pageCountAriaLabel} = item;\n const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;\n const pageBadge =\n item.counter > 0 ? (\n <Link\n href={item.href}\n data-name=\"item-badge\"\n className={style.itemBadge}\n aria-label={pageCountAriaLabel}\n >\n {item.counter}\n </Link>\n ) : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n key={itemName}\n data-name={`item-${itemName}`}\n href={item.href}\n className={item.selected ? style.activePage : style.item}\n skinHover\n onClick={this.handleLinkClick}\n target={item.target || null}\n aria-label={itemLabel}\n style={{\n ...activeColor\n }}\n >\n {item.title}\n {pageBadge}\n <span\n className={style.bar}\n style={{\n backgroundColor: primaryColor\n }}\n />\n </Link>\n );\n });\n\n const optionsView = items.more.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;\n const {name: itemName = index} = item;\n return (\n <Link\n href={item.href}\n key={itemName}\n className={style.option}\n data-name={`item-more-${itemName}`}\n target={item.target || null}\n aria-label={itemLabel}\n onClick={this.handleLinkClick}\n skinHover\n style={{\n ...activeColor\n }}\n >\n {item.title}\n </Link>\n );\n });\n\n pagesView = (\n <div className={search.value || isFocus ? style.noItems : style.items}>\n {displayedPages}\n <div className={style.more}>\n <div className={style.currentOption} aria-haspopup=\"true\" data-name=\"item-more\">\n {moreAriaLabel}\n <ArrowDown\n style={{color: mediumColor}}\n className={style.caret}\n aria-label={moreAriaLabel}\n />\n </div>\n <div className={style.optionsGroup}>{optionsView}</div>\n </div>\n </div>\n );\n }\n\n if (links) {\n const ctas = links.map((cta, index) => {\n return (\n <Cta {...cta} key={index} className={index + 1 === links.length ? null : style.ctaLink} />\n );\n });\n\n linksView = <div className={style.links}>{ctas}</div>;\n }\n\n if (user) {\n const nbNotifications = getOr(0, 'notifications.value', user);\n const notificationsAriaLabel = getOr('', 'notifications.aria-label', user);\n\n notificationsView =\n nbNotifications > 0 ? (\n <Link\n href={user.notifications.href}\n data-name=\"user-notifications\"\n className={style.notifications}\n >\n {nbNotifications}\n </Link>\n ) : null;\n const notificationPageView = (\n <Link\n className={classnames(style.notification, nbNotifications > 0 ? style.active : null)}\n data-name=\"stat-notifications\"\n href={user.notifications.href}\n aria-label={notificationsAriaLabel}\n >\n <div>\n <AlarmIcon width={16} height={16} />\n </div>\n {notificationsView}\n </Link>\n );\n userView = (\n <div className={style.user}>\n <div className={style.stats}>\n <Link\n className={style.stat}\n data-name=\"stat-stars\"\n href={user.stats.stars.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.stars['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <StarIcon className={style.stars} style={{color: white}} />\n </div>\n <div data-name=\"value\" className={style.label}>\n {user.stats.stars.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-ranking\"\n href={user.stats.ranking.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.ranking['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <ChartsIcon className={style.ranking} style={{color: white}} />\n </div>\n\n <div data-name=\"value\" className={style.label}>\n {user.stats.ranking.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-badge\"\n href={user.stats.badge.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.badge['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <TrophyIcon className={style.badge} style={{color: white}} />\n </div>\n <div className={style.label}>{user.stats.badge.label}</div>\n </Link>\n </div>\n <div className={style.avatarWrapper}>\n {notificationPageView}\n <div className={style.avatar} data-name=\"user-avatar\">\n <Link\n href={user.href}\n className={style.userLink}\n onClick={this.handleLinkClick}\n aria-label={user['picture-aria-label']}\n >\n <Picture src={user.picture} alt={user.profileAvatarAlt} />\n </Link>\n </div>\n </div>\n </div>\n );\n }\n\n if (settings) {\n const settingsElements = settings.map((setting, index) => {\n let settingView = null;\n const {\n options,\n type,\n title,\n name: settingName = index,\n color,\n hoverColor,\n 'aria-label': ariaLabel\n } = setting;\n\n switch (type) {\n case 'link': {\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <Link\n className={style.link}\n href={options.href}\n skinHover\n hoverColor={hoverColor}\n onClick={this.handleLinkClick}\n target={options.target || null}\n aria-label={ariaLabel || title}\n style={{\n color\n }}\n >\n {title}\n </Link>\n </div>\n );\n break;\n }\n case 'select': {\n const selectProps = {};\n selectProps.options = options.values;\n selectProps.title = '';\n selectProps.theme = 'header';\n selectProps.onChange = options.onChange;\n\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <span className={style.label}>{title}</span>\n <Select {...selectProps} aria-label={ariaLabel || title} />\n </div>\n );\n break;\n }\n case 'switch': {\n const switchProps = {};\n switchProps.value = options.value;\n switchProps.id = `input-switch-${index}`;\n switchProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span className={style.label}>{title}</span>\n <InputSwitch {...switchProps} />\n </div>\n );\n break;\n }\n }\n\n return settingView;\n });\n\n settingsView = (\n <div className={style.settings} ref={this.setMenuSettings}>\n <CogIcon\n data-name=\"settings-toggle\"\n style={{color: darkColor}}\n className={style.settingsToggle}\n onClick={this.handleSettingsToggle}\n aria-expanded={isSettingsOpen}\n aria-label={settingsAriaLabel}\n />\n <div className={isSettingsOpen ? style.settingsWrapper : style.settingsWrapperHidden}>\n <div data-name=\"settings\" className={style.settingsGroup}>\n {settingsElements}\n </div>\n <div\n className={style.closeSettings}\n onClick={this.handleSettingsToggle}\n aria-label={closeSettingsAriaLabel}\n >\n {closeLabel}\n </div>\n </div>\n </div>\n );\n }\n\n if (search) {\n searchFormView = (\n <div\n data-name=\"Search-Bar\"\n className={isMenuOpen ? style.hiddenSearchBar : style.searchBar}\n >\n <SearchForm\n search={search}\n onSubmit={this.handleSubmitSearch}\n onReset={this.handleResetSearch}\n onSearchFocus={this.handleOnFocus}\n onSearchBlur={this.handleOnBlur}\n search-reset-aria-label={searchResetAriaLabel}\n />\n </div>\n );\n }\n\n return (\n <header className={style.wrapper}>\n <div\n data-name=\"moocHeader\"\n data-open={isMenuOpen}\n className={isMenuOpen ? style.open : style.header}\n >\n <div\n className={style.logoWrapper}\n aria-label={toolTipText}\n onMouseOver={this.handleOnMouseOver}\n onMouseLeave={this.handleOnMouseLeave}\n >\n <div className={style.navMobile} data-name=\"nav-mobile\">\n <BurgerIcon\n role=\"button\"\n data-name=\"nav-mobile-open\"\n style={{color: mediumColor}}\n className={isMenuOpen ? style.burgerHidden : style.burger}\n onClick={this.handleOnMenuOpen}\n aria-label={openMenuAriaLabel}\n />\n <CloseIcon\n data-name=\"nav-mobile-close\"\n style={{color: mediumColor}}\n className={isMenuOpen ? style.close : style.closeHidden}\n onClick={this.handleOnMenuClose}\n aria-label={closeMenuAriaLabel}\n />\n <Link data-name=\"logo-mobile\" href={logo.href}>\n <Picture src={logoMobileUrl} alt={logoAriaLabel} />\n </Link>\n </div>\n <Link\n className={style.logo}\n data-name=\"logo\"\n href={logo.href}\n onKeyDown={this.handleKeyPress}\n tabIndex={0}\n data-testid=\"brand-logo\"\n >\n <Picture src={logoUrl} alt={logoAriaLabel} />\n {isToolTipOpen ? (\n <div aria-label={toolTipText} tabIndex={0} data-testid=\"home-tooltip\">\n <div\n aria-label={`${toolTipText} ${closeToolTipInformationTextAriaLabel}`}\n role=\"tooltip\"\n className={style.tooltipIconContainer}\n tabIndex={0}\n >\n <HomeIcon className={style.homeIcon} style={{color: primaryColor}} />\n <p\n className={style.toolTipText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: toolTipText}}\n style={{color: primaryColor}}\n />\n </div>\n </div>\n ) : null}\n </Link>\n </div>\n {searchFormView}\n <div\n className={isMenuOpen ? style.menuWrapper : style.hiddenMenuWrapper}\n data-name=\"menu-wrapper\"\n >\n {pagesView}\n {userView || linksView}\n {settingsView}\n </div>\n </div>\n </header>\n );\n }\n}\n\nexport default MoocHeader;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAWA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,UAAN,SAAyBC,cAAA,CAAMC,SAA/B,CAAyC;EAqGvCC,WAAW,CAACC,KAAD,EAAQ;IACjB,MAAMA,KAAN;IACA,KAAKC,KAAL,GAAa;MACXC,cAAc,EAAE,KADL;MAEXC,UAAU,EAAE,KAFD;MAGXC,OAAO,EAAE,KAHE;MAIXC,aAAa,EAAE;IAJJ,CAAb;IAOA,KAAKC,oBAAL,GAA4B,KAAKA,oBAAL,CAA0BC,IAA1B,CAA+B,IAA/B,CAA5B;IACA,KAAKC,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBD,IAAtB,CAA2B,IAA3B,CAAxB;IACA,KAAKE,aAAL,GAAqB,KAAKA,aAAL,CAAmBF,IAAnB,CAAwB,IAAxB,CAArB;IACA,KAAKG,eAAL,GAAuB,KAAKA,eAAL,CAAqBH,IAArB,CAA0B,IAA1B,CAAvB;IACA,KAAKI,eAAL,GAAuB,KAAKA,eAAL,CAAqBJ,IAArB,CAA0B,IAA1B,CAAvB;IACA,KAAKK,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBL,IAAxB,CAA6B,IAA7B,CAA1B;IACA,KAAKM,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBN,IAAvB,CAA4B,IAA5B,CAAzB;IACA,KAAKO,aAAL,GAAqB,KAAKA,aAAL,CAAmBP,IAAnB,CAAwB,IAAxB,CAArB;IACA,KAAKQ,YAAL,GAAoB,KAAKA,YAAL,CAAkBR,IAAlB,CAAuB,IAAvB,CAApB;IACA,KAAKS,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBT,IAAtB,CAA2B,IAA3B,CAAxB;IACA,KAAKU,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBV,IAAvB,CAA4B,IAA5B,CAAzB;IACA,KAAKW,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBX,IAAvB,CAA4B,IAA5B,CAAzB;IACA,KAAKY,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBZ,IAAxB,CAA6B,IAA7B,CAA1B;IACA,KAAKa,cAAL,GAAsB,KAAKA,cAAL,CAAoBb,IAApB,CAAyB,IAAzB,CAAtB;EACD;;EAEDc,kBAAkB,CAACC,SAAD,EAAYC,SAAZ,EAAuBC,WAAvB,EAAoC;IACpD,MAAM;MAACtB;IAAD,IAAmB,KAAKD,KAA9B;;IACA,IAAIC,cAAJ,EAAoB;MAClBuB,QAAQ,CAACC,gBAAT,CAA0B,OAA1B,EAAmC,KAAKjB,aAAxC;MACAgB,QAAQ,CAACC,gBAAT,CAA0B,YAA1B,EAAwC,KAAKjB,aAA7C;IACD,CAHD,MAGO;MACLgB,QAAQ,CAACE,mBAAT,CAA6B,OAA7B,EAAsC,KAAKlB,aAA3C;MACAgB,QAAQ,CAACE,mBAAT,CAA6B,YAA7B,EAA2C,KAAKlB,aAAhD;IACD;EACF;;EAEDE,eAAe,CAACiB,EAAD,EAAK;IAClB,KAAKC,YAAL,GAAoBD,EAApB;EACD;;EAEDnB,aAAa,CAACqB,UAAD,EAAa;IACxB,MAAM;MAAC5B;IAAD,IAAmB,KAAKD,KAA9B;;IACA,IAAIC,cAAJ,EAAoB;MAClB,MAAM6B,IAAI,GAAG,KAAKF,YAAlB;;MACA,IAAIE,IAAI,IAAI,CAACA,IAAI,CAACC,QAAL,CAAcF,UAAU,CAACG,MAAzB,CAAb,EAA+C;QAC7C,KAAK3B,oBAAL;MACD;IACF;EACF;;EAEDI,eAAe,GAAG;IAChB,MAAM;MAACP;IAAD,IAAe,KAAKF,KAA1B;IACAE,UAAU,IAAI,KAAKK,gBAAL,EAAd;EACD;;EAEDF,oBAAoB,GAAG;IACrB,KAAK4B,QAAL,CAAcX,SAAS,KAAK;MAC1BrB,cAAc,EAAE,CAACqB,SAAS,CAACrB;IADD,CAAL,CAAvB;EAGD;;EAEDM,gBAAgB,GAAG;IACjB,MAAM;MAACL;IAAD,IAAe,KAAKF,KAA1B;IACAE,UAAU,GAAG,KAAKc,iBAAL,EAAH,GAA8B,KAAKD,gBAAL,EAAxC;EACD;;EAEDJ,kBAAkB,GAAG;IACnB,MAAM;MAACuB;IAAD,IAAmB,KAAKnC,KAA9B;;IACA,IAAImC,cAAJ,EAAoB;MAClBA,cAAc;IACf;EACF;;EAEDtB,iBAAiB,GAAG;IAClB,MAAM;MAACuB;IAAD,IAAkB,KAAKpC,KAA7B;;IACA,IAAIoC,aAAJ,EAAmB;MACjBA,aAAa;IACd;EACF;;EAEDtB,aAAa,GAAG;IACd,KAAKoB,QAAL,CAAcX,SAAS,KAAK;MAC1BnB,OAAO,EAAE;IADiB,CAAL,CAAvB;EAGD;;EAEDW,YAAY,GAAG;IACb,KAAKmB,QAAL,CAAcX,SAAS,KAAK;MAC1BnB,OAAO,EAAE;IADiB,CAAL,CAAvB;EAGD;;EAEDY,gBAAgB,GAAG;IACjB,MAAM;MAACqB;IAAD,IAAe,KAAKrC,KAA1B;;IACA,IAAIqC,UAAJ,EAAgB;MACdA,UAAU;IACX;;IACD,KAAKH,QAAL,CAAc,OAAO;MACnB/B,UAAU,EAAE;IADO,CAAP,CAAd;EAGD;;EAEDc,iBAAiB,GAAG;IAClB,MAAM;MAACqB;IAAD,IAAgB,KAAKtC,KAA3B;;IACA,IAAIsC,WAAJ,EAAiB;MACfA,WAAW;IACZ;;IACD,KAAKJ,QAAL,CAAc,OAAO;MACnB/B,UAAU,EAAE;IADO,CAAP,CAAd;EAGD;;EAEDe,iBAAiB,GAAG;IAClB,KAAKgB,QAAL,CAAc,OAAO;MACnB7B,aAAa,EAAE;IADI,CAAP,CAAd;EAGD;;EAEDc,kBAAkB,GAAG;IACnB,KAAKe,QAAL,CAAc,OAAO;MACnB7B,aAAa,EAAE;IADI,CAAP,CAAd;EAGD;;EAEDe,cAAc,CAACmB,KAAD,EAAQ;IACpB,IAAIA,KAAK,CAACC,GAAN,KAAc,OAAlB,EAA2B;MACzB,KAAKN,QAAL,CAAc,OAAO;QACnB7B,aAAa,EAAE;MADI,CAAP,CAAd;IAGD,CAJD,MAIO,IAAIkC,KAAK,CAACC,GAAN,KAAc,KAAd,IAAuBD,KAAK,CAACC,GAAN,KAAc,QAAzC,EAAmD;MACxD,KAAKN,QAAL,CAAc,OAAO;QACnB7B,aAAa,EAAE;MADI,CAAP,CAAd;IAGD;EACF;;EAEDoC,MAAM,GAAG;IACP,IAAI,uBAAQ,KAAKzC,KAAb,CAAJ,EAAyB,OAAO,IAAP;IACzB,MAAM;MACJ0C,IAAI,GAAG,EADH;MAEJC,KAAK,EAAEC,KAFH;MAGJC,QAHI;MAIJC,IAJI;MAKJC,KALI;MAMJC,MANI;MAOJ,2BAA2BC,oBAPvB;MAQJ,uBAAuBC,iBARnB;MASJ,6BAA6BC,sBATzB;MAUJ,0BAA0BC;IAVtB,IAWF,KAAKpD,KAXT;IAYA,MAAM;MAACI,OAAD;MAAUF,cAAV;MAA0BC,UAA1B;MAAsCE;IAAtC,IAAuD,KAAKJ,KAAlE;IACA,MAAM;MAACoD,SAAD;MAAYC;IAAZ,IAAoB,KAAKC,OAA/B;IACA,MAAM;MACJ,cAAcC,aADV;MAEJC,kBAFI;MAGJC,iBAHI;MAIJC,WAJI;MAKJC;IALI,IAMFlB,IANJ;IAOA,MAAMmB,OAAO,GAAG,mBAAI,KAAJ,EAAWnB,IAAX,KAAoB,mBAAI,aAAJ,EAAmBY,IAAnB,CAApC;IACA,MAAMQ,aAAa,GAAG,mBAAI,WAAJ,EAAiBpB,IAAjB,KAA0B,qBAAMmB,OAAN,EAAe,oBAAf,EAAqCP,IAArC,CAAhD;IACA,IAAIS,SAAS,GAAG,IAAhB;IACA,IAAIC,SAAS,GAAG,IAAhB;IACA,IAAIC,QAAQ,GAAG,IAAf;IACA,IAAIC,YAAY,GAAG,IAAnB;IACA,IAAIC,iBAAiB,GAAG,IAAxB;IACA,IAAIC,cAAc,GAAG,IAArB;IAEA,MAAMC,aAAa,GAAGhB,SAAS,CAAC,MAAD,CAA/B;IACA,MAAMiB,UAAU,GAAGjB,SAAS,CAAC,OAAD,CAA5B;IACA,MAAMkB,YAAY,GAAG,mBAAI,gBAAJ,EAAsBjB,IAAtB,CAArB;IACA,MAAMkB,WAAW,GAAG,mBAAI,eAAJ,EAAqBlB,IAArB,CAApB;IACA,MAAMmB,SAAS,GAAG,mBAAI,aAAJ,EAAmBnB,IAAnB,CAAlB;IACA,MAAMoB,KAAK,GAAG,mBAAI,cAAJ,EAAoBpB,IAApB,CAAd;IACA,MAAMqB,gBAAgB,GAAG;MAACC,eAAe,EAAEL;IAAlB,CAAzB;;IAEA,IAAI3B,KAAJ,EAAW;MACT,MAAMiC,cAAc,GAAGjC,KAAK,CAACkC,SAAN,CAAgBC,GAAhB,CAAoB,CAACC,IAAD,EAAOC,KAAP,KAAiB;QAC1D,MAAMC,WAAW,GAAGF,IAAI,CAACG,QAAL,GAChB;UACEC,KAAK,EAAEb;QADT,CADgB,GAIhB,IAJJ;QAMA,MAAM;UAAC,yBAAyBc;QAA1B,IAAgDL,IAAtD;QACA,MAAMM,SAAS,GAAGN,IAAI,CAACG,QAAL,GAAiB,GAAEH,IAAI,CAACO,KAAM,KAAInC,mBAAoB,EAAtD,GAA0D4B,IAAI,CAACO,KAAjF;QACA,MAAMC,SAAS,GACbR,IAAI,CAACS,OAAL,GAAe,CAAf,gBACE,6BAAC,aAAD;UACE,IAAI,EAAET,IAAI,CAACU,IADb;UAEE,aAAU,YAFZ;UAGE,SAAS,EAAEC,cAAA,CAAMC,SAHnB;UAIE,cAAYP;QAJd,GAMGL,IAAI,CAACS,OANR,CADF,GASI,IAVN;QAYA,MAAM;UAACI,IAAI,EAAEC,QAAQ,GAAGb;QAAlB,IAA2BD,IAAjC;QAEA,oBACE,6BAAC,aAAD;UACE,GAAG,EAAEc,QADP;UAEE,aAAY,QAAOA,QAAS,EAF9B;UAGE,IAAI,EAAEd,IAAI,CAACU,IAHb;UAIE,SAAS,EAAEV,IAAI,CAACG,QAAL,GAAgBQ,cAAA,CAAMI,UAAtB,GAAmCJ,cAAA,CAAMX,IAJtD;UAKE,SAAS,MALX;UAME,OAAO,EAAE,KAAKtE,eANhB;UAOE,MAAM,EAAEsE,IAAI,CAAC/C,MAAL,IAAe,IAPzB;UAQE,cAAYqD,SARd;UASE,KAAK,eACAJ,WADA;QATP,GAaGF,IAAI,CAACO,KAbR,EAcGC,SAdH,eAeE;UACE,SAAS,EAAEG,cAAA,CAAMK,GADnB;UAEE,KAAK,EAAE;YACLpB,eAAe,EAAEL;UADZ;QAFT,EAfF,CADF;MAwBD,CA/CsB,CAAvB;MAiDA,MAAM0B,WAAW,GAAGrD,KAAK,CAACsD,IAAN,CAAWnB,GAAX,CAAe,CAACC,IAAD,EAAOC,KAAP,KAAiB;QAClD,MAAMC,WAAW,GAAGF,IAAI,CAACG,QAAL,GAChB;UACEC,KAAK,EAAEb;QADT,CADgB,GAIhB,IAJJ;QAKA,MAAMe,SAAS,GAAGN,IAAI,CAACG,QAAL,GAAiB,GAAEH,IAAI,CAACO,KAAM,KAAInC,mBAAoB,EAAtD,GAA0D4B,IAAI,CAACO,KAAjF;QACA,MAAM;UAACM,IAAI,EAAEC,QAAQ,GAAGb;QAAlB,IAA2BD,IAAjC;QACA,oBACE,6BAAC,aAAD;UACE,IAAI,EAAEA,IAAI,CAACU,IADb;UAEE,GAAG,EAAEI,QAFP;UAGE,SAAS,EAAEH,cAAA,CAAMQ,MAHnB;UAIE,aAAY,aAAYL,QAAS,EAJnC;UAKE,MAAM,EAAEd,IAAI,CAAC/C,MAAL,IAAe,IALzB;UAME,cAAYqD,SANd;UAOE,OAAO,EAAE,KAAK5E,eAPhB;UAQE,SAAS,MARX;UASE,KAAK,eACAwE,WADA;QATP,GAaGF,IAAI,CAACO,KAbR,CADF;MAiBD,CAzBmB,CAApB;MA2BAxB,SAAS,gBACP;QAAK,SAAS,EAAEf,MAAM,CAACoD,KAAP,IAAgBhG,OAAhB,GAA0BuF,cAAA,CAAMU,OAAhC,GAA0CV,cAAA,CAAM/C;MAAhE,GACGiC,cADH,eAEE;QAAK,SAAS,EAAEc,cAAA,CAAMO;MAAtB,gBACE;QAAK,SAAS,EAAEP,cAAA,CAAMW,aAAtB;QAAqC,iBAAc,MAAnD;QAA0D,aAAU;MAApE,GACGjC,aADH,eAEE,6BAAC,6CAAD;QACE,KAAK,EAAE;UAACe,KAAK,EAAEZ;QAAR,CADT;QAEE,SAAS,EAAEmB,cAAA,CAAMY,KAFnB;QAGE,cAAYlC;MAHd,EAFF,CADF,eASE;QAAK,SAAS,EAAEsB,cAAA,CAAMa;MAAtB,GAAqCP,WAArC,CATF,CAFF,CADF;IAgBD;;IAED,IAAIlD,KAAJ,EAAW;MACT,MAAM0D,IAAI,GAAG1D,KAAK,CAACgC,GAAN,CAAU,CAAC2B,GAAD,EAAMzB,KAAN,KAAgB;QACrC,oBACE,6BAAC,YAAD,eAASyB,GAAT;UAAc,GAAG,EAAEzB,KAAnB;UAA0B,SAAS,EAAEA,KAAK,GAAG,CAAR,KAAclC,KAAK,CAAC4D,MAApB,GAA6B,IAA7B,GAAoChB,cAAA,CAAMiB;QAA/E,GADF;MAGD,CAJY,CAAb;MAMA5C,SAAS,gBAAG;QAAK,SAAS,EAAE2B,cAAA,CAAM5C;MAAtB,GAA8B0D,IAA9B,CAAZ;IACD;;IAED,IAAI3D,IAAJ,EAAU;MACR,MAAM+D,eAAe,GAAG,qBAAM,CAAN,EAAS,qBAAT,EAAgC/D,IAAhC,CAAxB;MACA,MAAMgE,sBAAsB,GAAG,qBAAM,EAAN,EAAU,0BAAV,EAAsChE,IAAtC,CAA/B;MAEAqB,iBAAiB,GACf0C,eAAe,GAAG,CAAlB,gBACE,6BAAC,aAAD;QACE,IAAI,EAAE/D,IAAI,CAACiE,aAAL,CAAmBrB,IAD3B;QAEE,aAAU,oBAFZ;QAGE,SAAS,EAAEC,cAAA,CAAMoB;MAHnB,GAKGF,eALH,CADF,GAQI,IATN;;MAUA,MAAMG,oBAAoB,gBACxB,6BAAC,aAAD;QACE,SAAS,EAAE,IAAAC,mBAAA,EAAWtB,cAAA,CAAMuB,YAAjB,EAA+BL,eAAe,GAAG,CAAlB,GAAsBlB,cAAA,CAAMwB,MAA5B,GAAqC,IAApE,CADb;QAEE,aAAU,oBAFZ;QAGE,IAAI,EAAErE,IAAI,CAACiE,aAAL,CAAmBrB,IAH3B;QAIE,cAAYoB;MAJd,gBAME,uDACE,6BAAC,6BAAD;QAAW,KAAK,EAAE,EAAlB;QAAsB,MAAM,EAAE;MAA9B,EADF,CANF,EASG3C,iBATH,CADF;;MAaAF,QAAQ,gBACN;QAAK,SAAS,EAAE0B,cAAA,CAAM7C;MAAtB,gBACE;QAAK,SAAS,EAAE6C,cAAA,CAAMyB;MAAtB,gBACE,6BAAC,aAAD;QACE,SAAS,EAAEzB,cAAA,CAAM0B,IADnB;QAEE,aAAU,YAFZ;QAGE,IAAI,EAAEvE,IAAI,CAACsE,KAAL,CAAWE,KAAX,CAAiB5B,IAHzB;QAIE,OAAO,EAAE,KAAKhF,eAJhB;QAKE,cAAYoC,IAAI,CAACsE,KAAL,CAAWE,KAAX,CAAiB,YAAjB;MALd,gBAOE;QAAK,SAAS,EAAE3B,cAAA,CAAM4B,WAAtB;QAAmC,KAAK,EAAE5C;MAA1C,gBACE,6BAAC,0CAAD;QAAU,SAAS,EAAEgB,cAAA,CAAM2B,KAA3B;QAAkC,KAAK,EAAE;UAAClC,KAAK,EAAEV;QAAR;MAAzC,EADF,CAPF,eAUE;QAAK,aAAU,OAAf;QAAuB,SAAS,EAAEiB,cAAA,CAAM6B;MAAxC,GACG1E,IAAI,CAACsE,KAAL,CAAWE,KAAX,CAAiBE,KADpB,CAVF,CADF,eAeE,6BAAC,aAAD;QACE,SAAS,EAAE7B,cAAA,CAAM0B,IADnB;QAEE,aAAU,cAFZ;QAGE,IAAI,EAAEvE,IAAI,CAACsE,KAAL,CAAWK,OAAX,CAAmB/B,IAH3B;QAIE,OAAO,EAAE,KAAKhF,eAJhB;QAKE,cAAYoC,IAAI,CAACsE,KAAL,CAAWK,OAAX,CAAmB,YAAnB;MALd,gBAOE;QAAK,SAAS,EAAE9B,cAAA,CAAM4B,WAAtB;QAAmC,KAAK,EAAE5C;MAA1C,gBACE,6BAAC,4CAAD;QAAY,SAAS,EAAEgB,cAAA,CAAM8B,OAA7B;QAAsC,KAAK,EAAE;UAACrC,KAAK,EAAEV;QAAR;MAA7C,EADF,CAPF,eAWE;QAAK,aAAU,OAAf;QAAuB,SAAS,EAAEiB,cAAA,CAAM6B;MAAxC,GACG1E,IAAI,CAACsE,KAAL,CAAWK,OAAX,CAAmBD,KADtB,CAXF,CAfF,eA8BE,6BAAC,aAAD;QACE,SAAS,EAAE7B,cAAA,CAAM0B,IADnB;QAEE,aAAU,YAFZ;QAGE,IAAI,EAAEvE,IAAI,CAACsE,KAAL,CAAWM,KAAX,CAAiBhC,IAHzB;QAIE,OAAO,EAAE,KAAKhF,eAJhB;QAKE,cAAYoC,IAAI,CAACsE,KAAL,CAAWM,KAAX,CAAiB,YAAjB;MALd,gBAOE;QAAK,SAAS,EAAE/B,cAAA,CAAM4B,WAAtB;QAAmC,KAAK,EAAE5C;MAA1C,gBACE,6BAAC,6CAAD;QAAY,SAAS,EAAEgB,cAAA,CAAM+B,KAA7B;QAAoC,KAAK,EAAE;UAACtC,KAAK,EAAEV;QAAR;MAA3C,EADF,CAPF,eAUE;QAAK,SAAS,EAAEiB,cAAA,CAAM6B;MAAtB,GAA8B1E,IAAI,CAACsE,KAAL,CAAWM,KAAX,CAAiBF,KAA/C,CAVF,CA9BF,CADF,eA4CE;QAAK,SAAS,EAAE7B,cAAA,CAAMgC;MAAtB,GACGX,oBADH,eAEE;QAAK,SAAS,EAAErB,cAAA,CAAMiC,MAAtB;QAA8B,aAAU;MAAxC,gBACE,6BAAC,aAAD;QACE,IAAI,EAAE9E,IAAI,CAAC4C,IADb;QAEE,SAAS,EAAEC,cAAA,CAAMkC,QAFnB;QAGE,OAAO,EAAE,KAAKnH,eAHhB;QAIE,cAAYoC,IAAI,CAAC,oBAAD;MAJlB,gBAME,6BAAC,gBAAD;QAAS,GAAG,EAAEA,IAAI,CAACgF,OAAnB;QAA4B,GAAG,EAAEhF,IAAI,CAACiF;MAAtC,EANF,CADF,CAFF,CA5CF,CADF;IA4DD;;IAED,IAAIlF,QAAJ,EAAc;MACZ,MAAMmF,gBAAgB,GAAGnF,QAAQ,CAACkC,GAAT,CAAa,CAACkD,OAAD,EAAUhD,KAAV,KAAoB;QACxD,IAAIiD,WAAW,GAAG,IAAlB;QACA,MAAM;UACJC,OADI;UAEJC,IAFI;UAGJ7C,KAHI;UAIJM,IAAI,EAAEwC,WAAW,GAAGpD,KAJhB;UAKJG,KALI;UAMJkD,UANI;UAOJ,cAAcC;QAPV,IAQFN,OARJ;;QAUA,QAAQG,IAAR;UACE,KAAK,MAAL;YAAa;cACXF,WAAW,gBACT;gBAAK,aAAY,WAAUG,WAAY,EAAvC;gBAA0C,SAAS,EAAE1C,cAAA,CAAMsC,OAA3D;gBAAoE,GAAG,EAAEI;cAAzE,gBACE,6BAAC,aAAD;gBACE,SAAS,EAAE1C,cAAA,CAAM6C,IADnB;gBAEE,IAAI,EAAEL,OAAO,CAACzC,IAFhB;gBAGE,SAAS,MAHX;gBAIE,UAAU,EAAE4C,UAJd;gBAKE,OAAO,EAAE,KAAK5H,eALhB;gBAME,MAAM,EAAEyH,OAAO,CAAClG,MAAR,IAAkB,IAN5B;gBAOE,cAAYsG,SAAS,IAAIhD,KAP3B;gBAQE,KAAK,EAAE;kBACLH;gBADK;cART,GAYGG,KAZH,CADF,CADF;cAkBA;YACD;;UACD,KAAK,QAAL;YAAe;cACb,MAAMkD,WAAW,GAAG,EAApB;cACAA,WAAW,CAACN,OAAZ,GAAsBA,OAAO,CAACO,MAA9B;cACAD,WAAW,CAAClD,KAAZ,GAAoB,EAApB;cACAkD,WAAW,CAACE,KAAZ,GAAoB,QAApB;cACAF,WAAW,CAACG,QAAZ,GAAuBT,OAAO,CAACS,QAA/B;cAEAV,WAAW,gBACT;gBAAK,aAAY,WAAUG,WAAY,EAAvC;gBAA0C,SAAS,EAAE1C,cAAA,CAAMsC,OAA3D;gBAAoE,GAAG,EAAEI;cAAzE,gBACE;gBAAM,SAAS,EAAE1C,cAAA,CAAM6B;cAAvB,GAA+BjC,KAA/B,CADF,eAEE,6BAAC,eAAD,eAAYkD,WAAZ;gBAAyB,cAAYF,SAAS,IAAIhD;cAAlD,GAFF,CADF;cAMA;YACD;;UACD,KAAK,QAAL;YAAe;cACb,MAAMsD,WAAW,GAAG,EAApB;cACAA,WAAW,CAACzC,KAAZ,GAAoB+B,OAAO,CAAC/B,KAA5B;cACAyC,WAAW,CAACC,EAAZ,GAAkB,gBAAe7D,KAAM,EAAvC;cACA4D,WAAW,CAACD,QAAZ,GAAuBT,OAAO,CAACS,QAA/B;cAEAV,WAAW,gBACT;gBACE,aAAY,WAAUG,WAAY,EADpC;gBAEE,SAAS,EAAE1C,cAAA,CAAMsC,OAFnB;gBAGE,GAAG,EAAEI,WAHP;gBAIE,cAAYE,SAAS,IAAIhD;cAJ3B,gBAME;gBAAM,SAAS,EAAEI,cAAA,CAAM6B;cAAvB,GAA+BjC,KAA/B,CANF,eAOE,6BAAC,oBAAD,EAAiBsD,WAAjB,CAPF,CADF;cAWA;YACD;QAvDH;;QA0DA,OAAOX,WAAP;MACD,CAvEwB,CAAzB;MAyEAhE,YAAY,gBACV;QAAK,SAAS,EAAEyB,cAAA,CAAM9C,QAAtB;QAAgC,GAAG,EAAE,KAAKlC;MAA1C,gBACE,6BAAC,yCAAD;QACE,aAAU,iBADZ;QAEE,KAAK,EAAE;UAACyE,KAAK,EAAEX;QAAR,CAFT;QAGE,SAAS,EAAEkB,cAAA,CAAMoD,cAHnB;QAIE,OAAO,EAAE,KAAKzI,oBAJhB;QAKE,iBAAeJ,cALjB;QAME,cAAYgD;MANd,EADF,eASE;QAAK,SAAS,EAAEhD,cAAc,GAAGyF,cAAA,CAAMqD,eAAT,GAA2BrD,cAAA,CAAMsD;MAA/D,gBACE;QAAK,aAAU,UAAf;QAA0B,SAAS,EAAEtD,cAAA,CAAMuD;MAA3C,GACGlB,gBADH,CADF,eAIE;QACE,SAAS,EAAErC,cAAA,CAAMwD,aADnB;QAEE,OAAO,EAAE,KAAK7I,oBAFhB;QAGE,cAAY6C;MAHd,GAKGmB,UALH,CAJF,CATF,CADF;IAwBD;;IAED,IAAItB,MAAJ,EAAY;MACVoB,cAAc,gBACZ;QACE,aAAU,YADZ;QAEE,SAAS,EAAEjE,UAAU,GAAGwF,cAAA,CAAMyD,eAAT,GAA2BzD,cAAA,CAAM0D;MAFxD,gBAIE,6BAAC,mBAAD;QACE,MAAM,EAAErG,MADV;QAEE,QAAQ,EAAE,KAAKpC,kBAFjB;QAGE,OAAO,EAAE,KAAKC,iBAHhB;QAIE,aAAa,EAAE,KAAKC,aAJtB;QAKE,YAAY,EAAE,KAAKC,YALrB;QAME,2BAAyBkC;MAN3B,EAJF,CADF;IAeD;;IAED,oBACE;MAAQ,SAAS,EAAE0C,cAAA,CAAM2D;IAAzB,gBACE;MACE,aAAU,YADZ;MAEE,aAAWnJ,UAFb;MAGE,SAAS,EAAEA,UAAU,GAAGwF,cAAA,CAAM4D,IAAT,GAAgB5D,cAAA,CAAM6D;IAH7C,gBAKE;MACE,SAAS,EAAE7D,cAAA,CAAM8D,WADnB;MAEE,cAAY9F,WAFd;MAGE,WAAW,EAAE,KAAKzC,iBAHpB;MAIE,YAAY,EAAE,KAAKC;IAJrB,gBAME;MAAK,SAAS,EAAEwE,cAAA,CAAM+D,SAAtB;MAAiC,aAAU;IAA3C,gBACE,6BAAC,0CAAD;MACE,IAAI,EAAC,QADP;MAEE,aAAU,iBAFZ;MAGE,KAAK,EAAE;QAACtE,KAAK,EAAEZ;MAAR,CAHT;MAIE,SAAS,EAAErE,UAAU,GAAGwF,cAAA,CAAMgE,YAAT,GAAwBhE,cAAA,CAAMiE,MAJrD;MAKE,OAAO,EAAE,KAAK5I,gBALhB;MAME,cAAY0C;IANd,EADF,eASE,6BAAC,yCAAD;MACE,aAAU,kBADZ;MAEE,KAAK,EAAE;QAAC0B,KAAK,EAAEZ;MAAR,CAFT;MAGE,SAAS,EAAErE,UAAU,GAAGwF,cAAA,CAAMkE,KAAT,GAAiBlE,cAAA,CAAMmE,WAH9C;MAIE,OAAO,EAAE,KAAK7I,iBAJhB;MAKE,cAAYwC;IALd,EATF,eAgBE,6BAAC,aAAD;MAAM,aAAU,aAAhB;MAA8B,IAAI,EAAEf,IAAI,CAACgD;IAAzC,gBACE,6BAAC,gBAAD;MAAS,GAAG,EAAE5B,aAAd;MAA6B,GAAG,EAAEN;IAAlC,EADF,CAhBF,CANF,eA0BE,6BAAC,aAAD;MACE,SAAS,EAAEmC,cAAA,CAAMjD,IADnB;MAEE,aAAU,MAFZ;MAGE,IAAI,EAAEA,IAAI,CAACgD,IAHb;MAIE,SAAS,EAAE,KAAKtE,cAJlB;MAKE,QAAQ,EAAE,CALZ;MAME,eAAY;IANd,gBAQE,6BAAC,gBAAD;MAAS,GAAG,EAAEyC,OAAd;MAAuB,GAAG,EAAEL;IAA5B,EARF,EASGnD,aAAa,gBACZ;MAAK,cAAYsD,WAAjB;MAA8B,QAAQ,EAAE,CAAxC;MAA2C,eAAY;IAAvD,gBACE;MACE,cAAa,GAAEA,WAAY,IAAGC,oCAAqC,EADrE;MAEE,IAAI,EAAC,SAFP;MAGE,SAAS,EAAE+B,cAAA,CAAMoE,oBAHnB;MAIE,QAAQ,EAAE;IAJZ,gBAME,6BAAC,kDAAD;MAAU,SAAS,EAAEpE,cAAA,CAAMqE,QAA3B;MAAqC,KAAK,EAAE;QAAC5E,KAAK,EAAEb;MAAR;IAA5C,EANF,eAOE;MACE,SAAS,EAAEoB,cAAA,CAAMhC,WADnB,CAEE;MAFF;MAGE,uBAAuB,EAAE;QAACsG,MAAM,EAAEtG;MAAT,CAH3B;MAIE,KAAK,EAAE;QAACyB,KAAK,EAAEb;MAAR;IAJT,EAPF,CADF,CADY,GAiBV,IA1BN,CA1BF,CALF,EA4DGH,cA5DH,eA6DE;MACE,SAAS,EAAEjE,UAAU,GAAGwF,cAAA,CAAMuE,WAAT,GAAuBvE,cAAA,CAAMwE,iBADpD;MAEE,aAAU;IAFZ,GAIGpG,SAJH,EAKGE,QAAQ,IAAID,SALf,EAMGE,YANH,CA7DF,CADF,CADF;EA0ED;;AAvpBsC;;AAAnCtE,U,CAgGGwK,Y,GAAe;EACpB/G,SAAS,EAAEgH,iBAAA,CAASC,iBAAT,CAA2BjH,SADlB;EAEpBC,IAAI,EAAE+G,iBAAA,CAASC,iBAAT,CAA2BhH;AAFb,C;AAhGlB1D,U,CACG2K,S,2CAAY;EACjB7H,IAAI,EAAE8H,kBAAA,CAAUC,KAAV,CAAgB;IACpBC,GAAG,EAAEF,kBAAA,CAAUG,MADK;IAEpBC,SAAS,EAAEJ,kBAAA,CAAUG,MAFD;IAGpBjF,IAAI,EAAE8E,kBAAA,CAAUG,MAHI;IAIpB,cAAcH,kBAAA,CAAUG,MAJJ;IAKpB,qBAAqBH,kBAAA,CAAUG,MALX;IAMpBhH,WAAW,EAAE6G,kBAAA,CAAUG,MANH;IAOpB/G,oCAAoC,EAAE4G,kBAAA,CAAUG;EAP5B,CAAhB,CADW;EAUjB3H,MAAM,EAAEwH,kBAAA,CAAUC,KAAV,CAAgBI,oBAAA,CAAON,SAAvB,CAVS;EAWjB,2BAA2BC,kBAAA,CAAUG,MAXpB;EAYjBxI,cAAc,EAAEqI,kBAAA,CAAUM,IAZT;EAajB1I,aAAa,EAAEoI,kBAAA,CAAUM,IAbR;EAcjBnI,KAAK,EAAE6H,kBAAA,CAAUC,KAAV,CAAgB;IACrB3F,SAAS,EAAE0F,kBAAA,CAAUO,OAAV,CACTP,kBAAA,CAAUC,KAAV,CAAgB;MACdxI,MAAM,EAAEuI,kBAAA,CAAUQ,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB,CADM;MAEdzF,KAAK,EAAEiF,kBAAA,CAAUG,MAFH;MAGd9E,IAAI,EAAE2E,kBAAA,CAAUG,MAHF;MAIdjF,IAAI,EAAE8E,kBAAA,CAAUG,MAJF;MAKdxF,QAAQ,EAAEqF,kBAAA,CAAUS,IALN;MAMdxF,OAAO,EAAE+E,kBAAA,CAAUU,MANL;MAOd,yBAAyBV,kBAAA,CAAUG;IAPrB,CAAhB,CADS,CADU;IAYrBzE,IAAI,EAAEsE,kBAAA,CAAUO,OAAV,CACJP,kBAAA,CAAUC,KAAV,CAAgB;MACdxI,MAAM,EAAEuI,kBAAA,CAAUQ,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB,CADM;MAEdzF,KAAK,EAAEiF,kBAAA,CAAUG,MAFH;MAGd9E,IAAI,EAAE2E,kBAAA,CAAUG,MAHF;MAIdjF,IAAI,EAAE8E,kBAAA,CAAUG,MAJF;MAKdxF,QAAQ,EAAEqF,kBAAA,CAAUS,IALN;MAMdxF,OAAO,EAAE+E,kBAAA,CAAUU;IANL,CAAhB,CADI;EAZe,CAAhB,CAdU;EAqCjBnI,KAAK,EAAEyH,kBAAA,CAAUO,OAAV,CAAkBP,kBAAA,CAAUC,KAAV,CAAgBU,YAAA,CAAIZ,SAApB,CAAlB,CArCU;EAsCjBzH,IAAI,EAAE0H,kBAAA,CAAUC,KAAV,CAAgB;IACpB3C,OAAO,EAAE0C,kBAAA,CAAUG,MADC;IAEpB,sBAAsBH,kBAAA,CAAUG,MAFZ;IAGpB5C,gBAAgB,EAAEyC,kBAAA,CAAUG,MAHR;IAIpBjF,IAAI,EAAE8E,kBAAA,CAAUG,MAJI;IAKpB5D,aAAa,EAAEyD,kBAAA,CAAUC,KAAV,CAAgB;MAC7B/E,IAAI,EAAE8E,kBAAA,CAAUG,MADa;MAE7BvE,KAAK,EAAEoE,kBAAA,CAAUU,MAFY;MAG7B,cAAcV,kBAAA,CAAUG;IAHK,CAAhB,CALK;IAUpBvD,KAAK,EAAEoD,kBAAA,CAAUC,KAAV,CAAgB;MACrBnD,KAAK,EAAEkD,kBAAA,CAAUC,KAAV,CAAgB;QACrB/E,IAAI,EAAE8E,kBAAA,CAAUG,MADK;QAErBnD,KAAK,EAAEgD,kBAAA,CAAUG,MAFI;QAGrB,cAAcH,kBAAA,CAAUG;MAHH,CAAhB,CADc;MAMrBlD,OAAO,EAAE+C,kBAAA,CAAUC,KAAV,CAAgB;QACvB/E,IAAI,EAAE8E,kBAAA,CAAUG,MADO;QAEvBnD,KAAK,EAAEgD,kBAAA,CAAUG,MAFM;QAGvB,cAAcH,kBAAA,CAAUG;MAHD,CAAhB,CANY;MAWrBjD,KAAK,EAAE8C,kBAAA,CAAUC,KAAV,CAAgB;QACrB/E,IAAI,EAAE8E,kBAAA,CAAUG,MADK;QAErBnD,KAAK,EAAEgD,kBAAA,CAAUG,MAFI;QAGrB,cAAcH,kBAAA,CAAUG;MAHH,CAAhB;IAXc,CAAhB;EAVa,CAAhB,CAtCW;EAkEjB,uBAAuBH,kBAAA,CAAUG,MAlEhB;EAmEjB,6BAA6BH,kBAAA,CAAUG,MAnEtB;EAoEjB,0BAA0BH,kBAAA,CAAUG,MApEnB;EAqEjB9H,QAAQ,EAAE2H,kBAAA,CAAUO,OAAV,CACRP,kBAAA,CAAUC,KAAV,CAAgB;IACdlF,KAAK,EAAEiF,kBAAA,CAAUG,MADH;IAEd9E,IAAI,EAAE2E,kBAAA,CAAUG,MAFF;IAGdvC,IAAI,EAAEoC,kBAAA,CAAUQ,KAAV,CAAgB,CAAC,QAAD,EAAW,QAAX,EAAqB,MAArB,CAAhB,CAHQ;IAId5F,KAAK,EAAEoF,kBAAA,CAAUG,MAJH;IAKd,cAAcH,kBAAA,CAAUG,MALV;IAMdxC,OAAO,EAAEqC,kBAAA,CAAUC,KAAV,CAAgB;MACvB/E,IAAI,EAAE8E,kBAAA,CAAUG,MADO;MAEvB/B,QAAQ,EAAE4B,kBAAA,CAAUM,IAFG;MAGvB1E,KAAK,EAAEoE,kBAAA,CAAUS,IAHM;MAIvBhJ,MAAM,EAAEuI,kBAAA,CAAUQ,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB,CAJe;MAKvBtC,MAAM,EAAE8B,kBAAA,CAAUO,OAAV,CACNP,kBAAA,CAAUC,KAAV,CAAgB;QACdrE,KAAK,EAAEoE,kBAAA,CAAUG,MADH;QAEd9E,IAAI,EAAE2E,kBAAA,CAAUG,MAFF;QAGdxF,QAAQ,EAAEqF,kBAAA,CAAUS;MAHN,CAAhB,CADM;IALe,CAAhB;EANK,CAAhB,CADQ,CArEO;EA2FjB5I,UAAU,EAAEmI,kBAAA,CAAUM,IA3FL;EA4FjBxI,WAAW,EAAEkI,kBAAA,CAAUM;AA5FN,C;eAypBNlL,U"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["MoocHeader","React","Component","constructor","props","state","isSettingsOpen","isMenuOpen","isFocus","isToolTipOpen","handleSettingsToggle","bind","handleMenuToggle","_checkOnClose","handleLinkClick","setMenuSettings","handleSubmitSearch","handleResetSearch","handleOnFocus","handleOnBlur","handleOnMenuOpen","handleOnMenuClose","handleOnMouseOver","handleOnMouseLeave","handleKeyPress","componentDidUpdate","prevProps","prevState","prevContext","document","addEventListener","removeEventListener","el","menuSettings","clickEvent","menu","contains","target","setState","onSubmitSearch","onResetSearch","onMenuOpen","onMenuClose","event","key","render","logo","pages","items","settings","user","links","search","searchResetAriaLabel","settingsAriaLabel","closeSettingsAriaLabel","activePageAriaLabel","translate","skin","context","logoAriaLabel","closeMenuAriaLabel","openMenuAriaLabel","toolTipText","closeToolTipInformationTextAriaLabel","logoUrl","logoMobileUrl","pagesView","linksView","userView","settingsView","notificationsView","searchFormView","moreAriaLabel","closeLabel","primaryColor","mediumColor","darkColor","white","iconWrapperStyle","backgroundColor","displayedPages","displayed","map","item","index","activeColor","selected","color","pageCountAriaLabel","itemLabel","title","pageBadge","counter","href","style","itemBadge","name","itemName","activePage","bar","optionsView","more","option","value","noItems","currentOption","caret","optionsGroup","ctas","cta","length","ctaLink","nbNotifications","notificationsAriaLabel","notifications","notificationPageView","classnames","notification","active","stats","stat","stars","iconWrapper","label","ranking","badge","avatarWrapper","avatar","userLink","picture","profileAvatarAlt","settingsElements","setting","settingView","options","type","settingName","hoverColor","ariaLabel","link","selectProps","values","theme","onChange","switchProps","id","settingsToggle","settingsWrapper","settingsWrapperHidden","settingsGroup","closeSettings","hiddenSearchBar","searchBar","wrapper","open","header","logoWrapper","navMobile","burgerHidden","burger","close","closeHidden","tooltipIconContainer","homeIcon","__html","menuWrapper","hiddenMenuWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","shape","src","string","srcMobile","Search","func","arrayOf","oneOf","bool","number","Cta"],"sources":["../../../src/organism/mooc-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, get, isEmpty} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionNavigationBurger as BurgerIcon,\n NovaCompositionNavigationClose as CloseIcon,\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyCharts as ChartsIcon,\n NovaSolidVoteRewardsRewardsTrophy5 as TrophyIcon,\n NovaCompositionCoorpacademyCog as CogIcon,\n NovaCompositionCoorpacademyPlacesHome24 as HomeIcon,\n NovaSolidTimeAlarm as AlarmIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport Cta from '../../atom/cta';\nimport Select from '../../atom/select';\nimport Picture from '../../atom/picture';\nimport InputSwitch from '../../atom/input-switch';\nimport Link from '../../atom/link';\nimport Search from '../../atom/input-search';\nimport SearchForm from '../../molecule/search-form';\nimport style from './style.css';\n\nclass MoocHeader extends React.Component {\n static propTypes = {\n logo: PropTypes.shape({\n src: PropTypes.string,\n srcMobile: PropTypes.string,\n href: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'button-aria-label': PropTypes.string,\n toolTipText: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string\n }),\n search: PropTypes.shape(Search.propTypes),\n 'search-reset-aria-label': PropTypes.string,\n onSubmitSearch: PropTypes.func,\n onResetSearch: PropTypes.func,\n pages: PropTypes.shape({\n displayed: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number,\n 'page-count-aria-label': PropTypes.string\n })\n ),\n more: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number\n })\n )\n }),\n links: PropTypes.arrayOf(PropTypes.shape(Cta.propTypes)),\n user: PropTypes.shape({\n picture: PropTypes.string,\n 'picture-aria-label': PropTypes.string,\n profileAvatarAlt: PropTypes.string,\n href: PropTypes.string,\n notifications: PropTypes.shape({\n href: PropTypes.string,\n value: PropTypes.number,\n 'aria-label': PropTypes.string\n }),\n stats: PropTypes.shape({\n stars: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n ranking: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n badge: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n })\n })\n }),\n 'settings-aria-label': PropTypes.string,\n 'close-settings-aria-label': PropTypes.string,\n 'active-page-aria-label': PropTypes.string,\n settings: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.oneOf(['select', 'switch', 'link']),\n color: PropTypes.string,\n 'aria-label': PropTypes.string,\n options: PropTypes.shape({\n href: PropTypes.string,\n onChange: PropTypes.func,\n value: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n values: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n name: PropTypes.string,\n selected: PropTypes.bool\n })\n )\n })\n })\n ),\n onMenuOpen: PropTypes.func,\n onMenuClose: PropTypes.func\n };\n\n static contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isSettingsOpen: false,\n isMenuOpen: false,\n isFocus: false,\n isToolTipOpen: false\n };\n\n this.handleSettingsToggle = this.handleSettingsToggle.bind(this);\n this.handleMenuToggle = this.handleMenuToggle.bind(this);\n this._checkOnClose = this._checkOnClose.bind(this);\n this.handleLinkClick = this.handleLinkClick.bind(this);\n this.setMenuSettings = this.setMenuSettings.bind(this);\n this.handleSubmitSearch = this.handleSubmitSearch.bind(this);\n this.handleResetSearch = this.handleResetSearch.bind(this);\n this.handleOnFocus = this.handleOnFocus.bind(this);\n this.handleOnBlur = this.handleOnBlur.bind(this);\n this.handleOnMenuOpen = this.handleOnMenuOpen.bind(this);\n this.handleOnMenuClose = this.handleOnMenuClose.bind(this);\n this.handleOnMouseOver = this.handleOnMouseOver.bind(this);\n this.handleOnMouseLeave = this.handleOnMouseLeave.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, prevContext) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n document.addEventListener('click', this._checkOnClose);\n document.addEventListener('touchstart', this._checkOnClose);\n } else {\n document.removeEventListener('click', this._checkOnClose);\n document.removeEventListener('touchstart', this._checkOnClose);\n }\n }\n\n setMenuSettings(el) {\n this.menuSettings = el;\n }\n\n _checkOnClose(clickEvent) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n const menu = this.menuSettings;\n if (menu && !menu.contains(clickEvent.target)) {\n this.handleSettingsToggle();\n }\n }\n }\n\n handleLinkClick() {\n const {isMenuOpen} = this.state;\n isMenuOpen && this.handleMenuToggle();\n }\n\n handleSettingsToggle() {\n this.setState(prevState => ({\n isSettingsOpen: !prevState.isSettingsOpen\n }));\n }\n\n handleMenuToggle() {\n const {isMenuOpen} = this.state;\n isMenuOpen ? this.handleOnMenuClose() : this.handleOnMenuOpen();\n }\n\n handleSubmitSearch() {\n const {onSubmitSearch} = this.props;\n if (onSubmitSearch) {\n onSubmitSearch();\n }\n }\n\n handleResetSearch() {\n const {onResetSearch} = this.props;\n if (onResetSearch) {\n onResetSearch();\n }\n }\n\n handleOnFocus() {\n this.setState(prevState => ({\n isFocus: true\n }));\n }\n\n handleOnBlur() {\n this.setState(prevState => ({\n isFocus: false\n }));\n }\n\n handleOnMenuOpen() {\n const {onMenuOpen} = this.props;\n if (onMenuOpen) {\n onMenuOpen();\n }\n this.setState(() => ({\n isMenuOpen: true\n }));\n }\n\n handleOnMenuClose() {\n const {onMenuClose} = this.props;\n if (onMenuClose) {\n onMenuClose();\n }\n this.setState(() => ({\n isMenuOpen: false\n }));\n }\n\n handleOnMouseOver() {\n this.setState(() => ({\n isToolTipOpen: true\n }));\n }\n\n handleOnMouseLeave() {\n this.setState(() => ({\n isToolTipOpen: false\n }));\n }\n\n handleKeyPress(event) {\n if (event.key === 'Enter') {\n this.setState(() => ({\n isToolTipOpen: true\n }));\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n this.setState(() => ({\n isToolTipOpen: false\n }));\n }\n }\n\n render() {\n if (isEmpty(this.props)) return null;\n const {\n logo = {},\n pages: items,\n settings,\n user,\n links,\n search,\n 'search-reset-aria-label': searchResetAriaLabel,\n 'settings-aria-label': settingsAriaLabel,\n 'close-settings-aria-label': closeSettingsAriaLabel,\n 'active-page-aria-label': activePageAriaLabel\n } = this.props;\n const {isFocus, isSettingsOpen, isMenuOpen, isToolTipOpen} = this.state;\n const {translate, skin} = this.context;\n const {\n 'aria-label': logoAriaLabel,\n closeMenuAriaLabel,\n openMenuAriaLabel,\n toolTipText,\n closeToolTipInformationTextAriaLabel\n } = logo;\n const logoUrl = get('src', logo) || get('images.logo', skin);\n const logoMobileUrl = get('srcMobile', logo) || getOr(logoUrl, 'images.logo-mobile', skin);\n let pagesView = null;\n let linksView = null;\n let userView = null;\n let settingsView = null;\n let notificationsView = null;\n let searchFormView = null;\n\n const moreAriaLabel = translate('More');\n const closeLabel = translate('Close');\n const primaryColor = get('common.primary', skin);\n const mediumColor = get('common.medium', skin);\n const darkColor = get('common.dark', skin);\n const white = get('common.white', skin);\n const iconWrapperStyle = {backgroundColor: primaryColor};\n\n if (items) {\n const displayedPages = items.displayed.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {'page-count-aria-label': pageCountAriaLabel} = item;\n const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;\n const pageBadge =\n item.counter > 0 ? (\n <Link\n href={item.href}\n data-name=\"item-badge\"\n className={style.itemBadge}\n aria-label={pageCountAriaLabel}\n >\n {item.counter}\n </Link>\n ) : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n key={itemName}\n data-name={`item-${itemName}`}\n href={item.href}\n className={item.selected ? style.activePage : style.item}\n skinHover\n onClick={this.handleLinkClick}\n target={item.target || null}\n aria-label={itemLabel}\n style={{\n ...activeColor\n }}\n >\n {item.title}\n {pageBadge}\n <span\n className={style.bar}\n style={{\n backgroundColor: primaryColor\n }}\n />\n </Link>\n );\n });\n\n const optionsView = items.more.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;\n const {name: itemName = index} = item;\n return (\n <Link\n href={item.href}\n key={itemName}\n className={style.option}\n data-name={`item-more-${itemName}`}\n target={item.target || null}\n aria-label={itemLabel}\n onClick={this.handleLinkClick}\n skinHover\n style={{\n ...activeColor\n }}\n >\n {item.title}\n </Link>\n );\n });\n\n pagesView = (\n <div className={search.value || isFocus ? style.noItems : style.items}>\n {displayedPages}\n <div className={style.more}>\n <div className={style.currentOption} aria-haspopup=\"true\" data-name=\"item-more\">\n {moreAriaLabel}\n <ArrowDown\n style={{color: mediumColor}}\n className={style.caret}\n aria-label={moreAriaLabel}\n />\n </div>\n <div className={style.optionsGroup}>{optionsView}</div>\n </div>\n </div>\n );\n }\n\n if (links) {\n const ctas = links.map((cta, index) => {\n return (\n <Cta {...cta} key={index} className={index + 1 === links.length ? null : style.ctaLink} />\n );\n });\n\n linksView = <div className={style.links}>{ctas}</div>;\n }\n\n if (user) {\n const nbNotifications = getOr(0, 'notifications.value', user);\n const notificationsAriaLabel = getOr('', 'notifications.aria-label', user);\n\n notificationsView =\n nbNotifications > 0 ? (\n <Link\n href={user.notifications.href}\n data-name=\"user-notifications\"\n className={style.notifications}\n >\n {nbNotifications}\n </Link>\n ) : null;\n const notificationPageView = (\n <Link\n className={classnames(style.notification, nbNotifications > 0 ? style.active : null)}\n data-name=\"stat-notifications\"\n href={user.notifications.href}\n aria-label={notificationsAriaLabel}\n >\n <div>\n <AlarmIcon width={16} height={16} />\n </div>\n {notificationsView}\n </Link>\n );\n userView = (\n <div className={style.user}>\n <div className={style.stats}>\n <Link\n className={style.stat}\n data-name=\"stat-stars\"\n href={user.stats.stars.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.stars['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <StarIcon className={style.stars} style={{color: white}} />\n </div>\n <div data-name=\"value\" className={style.label}>\n {user.stats.stars.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-ranking\"\n href={user.stats.ranking.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.ranking['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <ChartsIcon className={style.ranking} style={{color: white}} />\n </div>\n\n <div data-name=\"value\" className={style.label}>\n {user.stats.ranking.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-badge\"\n href={user.stats.badge.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.badge['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <TrophyIcon className={style.badge} style={{color: white}} />\n </div>\n <div className={style.label}>{user.stats.badge.label}</div>\n </Link>\n </div>\n <div className={style.avatarWrapper}>\n {notificationPageView}\n <div className={style.avatar} data-name=\"user-avatar\">\n <Link\n href={user.href}\n className={style.userLink}\n onClick={this.handleLinkClick}\n aria-label={user['picture-aria-label']}\n >\n <Picture src={user.picture} alt={user.profileAvatarAlt} />\n </Link>\n </div>\n </div>\n </div>\n );\n }\n\n if (settings) {\n const settingsElements = settings.map((setting, index) => {\n let settingView = null;\n const {\n options,\n type,\n title,\n name: settingName = index,\n color,\n hoverColor,\n 'aria-label': ariaLabel\n } = setting;\n\n switch (type) {\n case 'link': {\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <Link\n className={style.link}\n href={options.href}\n skinHover\n hoverColor={hoverColor}\n onClick={this.handleLinkClick}\n target={options.target || null}\n aria-label={ariaLabel || title}\n style={{\n color\n }}\n >\n {title}\n </Link>\n </div>\n );\n break;\n }\n case 'select': {\n const selectProps = {};\n selectProps.options = options.values;\n selectProps.title = '';\n selectProps.theme = 'header';\n selectProps.onChange = options.onChange;\n\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <span className={style.label}>{title}</span>\n <Select {...selectProps} aria-label={ariaLabel || title} />\n </div>\n );\n break;\n }\n case 'switch': {\n const switchProps = {};\n switchProps.value = options.value;\n switchProps.id = `input-switch-${index}`;\n switchProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span id={`title-id-${settingName}`} className={style.label}>\n {title}\n </span>\n <InputSwitch {...switchProps} aria-labelledby={`title-id-${settingName}`} />\n </div>\n );\n break;\n }\n }\n\n return settingView;\n });\n\n settingsView = (\n <div className={style.settings} ref={this.setMenuSettings}>\n <CogIcon\n data-name=\"settings-toggle\"\n style={{color: darkColor}}\n className={style.settingsToggle}\n onClick={this.handleSettingsToggle}\n aria-expanded={isSettingsOpen}\n aria-label={settingsAriaLabel}\n />\n <div className={isSettingsOpen ? style.settingsWrapper : style.settingsWrapperHidden}>\n <div data-name=\"settings\" className={style.settingsGroup}>\n {settingsElements}\n </div>\n <div\n className={style.closeSettings}\n onClick={this.handleSettingsToggle}\n aria-label={closeSettingsAriaLabel}\n >\n {closeLabel}\n </div>\n </div>\n </div>\n );\n }\n\n if (search) {\n searchFormView = (\n <div\n data-name=\"Search-Bar\"\n className={isMenuOpen ? style.hiddenSearchBar : style.searchBar}\n >\n <SearchForm\n search={search}\n onSubmit={this.handleSubmitSearch}\n onReset={this.handleResetSearch}\n onSearchFocus={this.handleOnFocus}\n onSearchBlur={this.handleOnBlur}\n search-reset-aria-label={searchResetAriaLabel}\n />\n </div>\n );\n }\n\n return (\n <header className={style.wrapper}>\n <div\n data-name=\"moocHeader\"\n data-open={isMenuOpen}\n className={isMenuOpen ? style.open : style.header}\n >\n <div\n className={style.logoWrapper}\n aria-label={toolTipText}\n onMouseOver={this.handleOnMouseOver}\n onMouseLeave={this.handleOnMouseLeave}\n >\n <div className={style.navMobile} data-name=\"nav-mobile\">\n <BurgerIcon\n role=\"button\"\n data-name=\"nav-mobile-open\"\n style={{color: mediumColor}}\n className={isMenuOpen ? style.burgerHidden : style.burger}\n onClick={this.handleOnMenuOpen}\n aria-label={openMenuAriaLabel}\n />\n <CloseIcon\n data-name=\"nav-mobile-close\"\n style={{color: mediumColor}}\n className={isMenuOpen ? style.close : style.closeHidden}\n onClick={this.handleOnMenuClose}\n aria-label={closeMenuAriaLabel}\n />\n <Link data-name=\"logo-mobile\" href={logo.href}>\n <Picture src={logoMobileUrl} alt={logoAriaLabel} />\n </Link>\n </div>\n <Link\n className={style.logo}\n data-name=\"logo\"\n href={logo.href}\n onKeyDown={this.handleKeyPress}\n tabIndex={0}\n data-testid=\"brand-logo\"\n >\n <Picture src={logoUrl} alt={logoAriaLabel} />\n {isToolTipOpen ? (\n <div aria-label={toolTipText} tabIndex={0} data-testid=\"home-tooltip\">\n <div\n aria-label={`${toolTipText} ${closeToolTipInformationTextAriaLabel}`}\n role=\"tooltip\"\n className={style.tooltipIconContainer}\n tabIndex={0}\n >\n <HomeIcon className={style.homeIcon} style={{color: primaryColor}} />\n <p\n className={style.toolTipText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: toolTipText}}\n style={{color: primaryColor}}\n />\n </div>\n </div>\n ) : null}\n </Link>\n </div>\n {searchFormView}\n <div\n className={isMenuOpen ? style.menuWrapper : style.hiddenMenuWrapper}\n data-name=\"menu-wrapper\"\n >\n {pagesView}\n {userView || linksView}\n {settingsView}\n </div>\n </div>\n </header>\n );\n }\n}\n\nexport default MoocHeader;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/index.native.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/index.native.tsx"],"names":[],"mappings":";AA0BA,OAAO,EAAa,gBAAgB,EAAa,MAAM,cAAc,CAAC;AAoNtE,QAAA,MAAM,KAAK,UAAW,gBAAgB,gBA2DrC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -60,15 +60,17 @@ const MediaView = ({
|
|
|
60
60
|
}) => {
|
|
61
61
|
switch (media.type) {
|
|
62
62
|
case _propTypes.TYPE_VIDEO:
|
|
63
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
63
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
64
|
+
style: styles.mediaContainer
|
|
65
|
+
}, /*#__PURE__*/_react.default.createElement(_index5.default, {
|
|
64
66
|
media: media
|
|
65
|
-
});
|
|
67
|
+
}));
|
|
66
68
|
|
|
67
69
|
case _propTypes.TYPE_IMAGE:
|
|
68
70
|
{
|
|
69
71
|
const uri = `https://${media.url?.split('//')[1]}`;
|
|
70
72
|
return /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
|
|
71
|
-
style: styles.image,
|
|
73
|
+
style: [styles.mediaContainer, styles.image],
|
|
72
74
|
source: {
|
|
73
75
|
uri
|
|
74
76
|
}
|
|
@@ -77,7 +79,7 @@ const MediaView = ({
|
|
|
77
79
|
|
|
78
80
|
case _propTypes.TYPE_AUDIO:
|
|
79
81
|
default:
|
|
80
|
-
return
|
|
82
|
+
return null;
|
|
81
83
|
}
|
|
82
84
|
};
|
|
83
85
|
|
|
@@ -181,11 +183,9 @@ const Question = props => {
|
|
|
181
183
|
style: style.questionText
|
|
182
184
|
}, questionText), /*#__PURE__*/_react.default.createElement(_index.default, {
|
|
183
185
|
style: style.questionHelp
|
|
184
|
-
}, (0, _get.default)('help', answerUI))), answerUI.media ? /*#__PURE__*/_react.default.createElement(
|
|
185
|
-
style: styles.mediaContainer
|
|
186
|
-
}, /*#__PURE__*/_react.default.createElement(MediaView, {
|
|
186
|
+
}, (0, _get.default)('help', answerUI))), answerUI.media ? /*#__PURE__*/_react.default.createElement(MediaView, {
|
|
187
187
|
media: answerUI.media
|
|
188
|
-
})
|
|
188
|
+
}) : null, /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
|
|
189
189
|
style: style.choicesScrollView,
|
|
190
190
|
contentContainerStyle: style.choicesScrollContent,
|
|
191
191
|
centerContent: true,
|
|
@@ -197,6 +197,14 @@ const Question = props => {
|
|
|
197
197
|
const createSlideStyle = (num, screenWidth) => {
|
|
198
198
|
const slideWidth = screenWidth - 40 - num * 8;
|
|
199
199
|
return _reactNative.StyleSheet.create({
|
|
200
|
+
hiddenBackgroundToLockActions: {
|
|
201
|
+
position: 'absolute',
|
|
202
|
+
left: 0,
|
|
203
|
+
right: 0,
|
|
204
|
+
top: 0,
|
|
205
|
+
bottom: 0,
|
|
206
|
+
backgroundColor: '#00000000'
|
|
207
|
+
},
|
|
200
208
|
slide: {
|
|
201
209
|
position: 'absolute',
|
|
202
210
|
left: 20 + num * 4,
|
|
@@ -230,6 +238,17 @@ const Slide = props => {
|
|
|
230
238
|
num,
|
|
231
239
|
slideIndex = '0'
|
|
232
240
|
} = props;
|
|
241
|
+
const [isValidated, setValidated] = (0, _react.useState)(false);
|
|
242
|
+
const handleValidatePress = (0, _react.useCallback)(() => {
|
|
243
|
+
_reactNative.Keyboard.dismiss();
|
|
244
|
+
|
|
245
|
+
setValidated(true); // calling the onclick later, after react has rerendered, to display the locking BG as soon as possible
|
|
246
|
+
|
|
247
|
+
setTimeout(() => {
|
|
248
|
+
validateButton.onClick();
|
|
249
|
+
}, 20); // only to create on mount
|
|
250
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
251
|
+
}, []);
|
|
233
252
|
const {
|
|
234
253
|
width
|
|
235
254
|
} = (0, _reactNative.useWindowDimensions)();
|
|
@@ -249,9 +268,6 @@ const Slide = props => {
|
|
|
249
268
|
});
|
|
250
269
|
}
|
|
251
270
|
|
|
252
|
-
const {
|
|
253
|
-
onClick: handleValidatePress
|
|
254
|
-
} = validateButton;
|
|
255
271
|
return /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
|
|
256
272
|
style: [slideStyle.slide, animatedStyle]
|
|
257
273
|
}, /*#__PURE__*/_react.default.createElement(Question, {
|
|
@@ -260,11 +276,13 @@ const Slide = props => {
|
|
|
260
276
|
answerUI: answerUI,
|
|
261
277
|
key: "question-container"
|
|
262
278
|
}), /*#__PURE__*/_react.default.createElement(_index4.default, {
|
|
263
|
-
disabled: validateButton.disabled,
|
|
279
|
+
disabled: isValidated || validateButton.disabled,
|
|
264
280
|
submitValue: validateButton.label,
|
|
265
281
|
onPress: handleValidatePress,
|
|
266
282
|
testID: `slide-validate-button-${slideIndex}`
|
|
267
|
-
}),
|
|
283
|
+
}), isValidated ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
284
|
+
style: slideStyle.hiddenBackgroundToLockActions
|
|
285
|
+
}) : null, correctionPopinProps ? /*#__PURE__*/_react.default.createElement(CorrectionPopin, {
|
|
268
286
|
correctionPopinProps: correctionPopinProps,
|
|
269
287
|
slideIndex: slideIndex,
|
|
270
288
|
showCorrectionPopin: showCorrectionPopin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","names":["styles","StyleSheet","create","mediaContainer","flex","alignItems","justifyContent","marginTop","width","minHeight","borderRadius","overflow","image","correctionPopinWrapper","position","bottom","MediaView","media","type","TYPE_VIDEO","TYPE_IMAGE","uri","url","split","TYPE_AUDIO","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateUp","useTranslateY","fromValue","toValue","duration","easing","Easing","bezier","useEffect","start","klf","getOr","undefined","information","label","message","next","get","onClick","_correctionPopinProps","resultLabel","style","animatedStyle","createQuestionStyle","theme","questionHeading","questionOrigin","fontSize","lineHeight","color","colors","text","primary","marginBottom","spacing","tiny","small","textAlign","questionText","fontWeight","questionHelp","gray","medium","choicesScrollView","marginVertical","choicesScrollContent","padding","Question","props","answerUI","useTemplateContext","setStyle","useState","questionStyle","createSlideStyle","num","screenWidth","slideWidth","slide","left","backgroundColor","height","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","Slide","validateButton","useWindowDimensions","slideStyle","loading","parentContentTitle","handleValidatePress","disabled"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\n\nimport {\n Animated,\n Easing,\n Image,\n ScrollView,\n StyleSheet,\n TextStyle,\n useWindowDimensions,\n View,\n ViewStyle\n} from 'react-native';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Text from '../../atom/text/index.native';\nimport Answer from '../../molecule/answer/index.native';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\nimport Button from '../../atom/button/index.native';\nimport {TYPE_AUDIO, TYPE_IMAGE, TYPE_VIDEO} from '../../molecule/answer/prop-types';\nimport Video from '../../molecule/video-player-mobile/index.native';\nimport {Media} from '../../molecule/questions/types';\nimport {PopinProps, ReviewSlideProps, SlideProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n mediaContainer: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: 20,\n width: '100%',\n minHeight: 150,\n borderRadius: 10,\n overflow: 'hidden'\n },\n image: {\n flex: 1,\n width: '100%'\n },\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst MediaView = ({media}: {media: Media}) => {\n switch (media.type) {\n case TYPE_VIDEO:\n return <Video media={media} />;\n case TYPE_IMAGE: {\n const uri = `https://${media.url?.split('//')[1]}`;\n return <Image style={styles.image} source={{uri}} />;\n }\n case TYPE_AUDIO:\n default:\n return <Text>{`media type ${media.type} is not handled`}</Text>;\n }\n};\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateUp = useTranslateY({\n fromValue: 500,\n toValue: 0,\n duration: 500,\n easing: Easing.bezier(0.34, 1.36, 0.64, 1)\n });\n\n // the translation is required only once on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => translateUp.start(), []);\n\n if (!showCorrectionPopin) return null;\n\n const klf = getOr(undefined, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const onClick = get(['next', 'onClick'], correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick,\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n const style = animateCorrectionPopin\n ? [styles.correctionPopinWrapper, translateUp.animatedStyle]\n : styles.correctionPopinWrapper;\n\n return (\n <Animated.View style={style}>\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </Animated.View>\n );\n};\n\ntype StyleSheetType = {\n questionHeading: ViewStyle;\n questionOrigin: ViewStyle;\n questionText: TextStyle;\n questionHelp: ViewStyle;\n choicesScrollView: ViewStyle;\n choicesScrollContent: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between'\n },\n questionOrigin: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.text.primary,\n marginBottom: theme.spacing.tiny,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n questionText: {\n fontSize: 16,\n lineHeight: 22,\n fontWeight: '700',\n color: theme.colors.text.primary,\n textAlign: 'center'\n },\n questionHelp: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.gray.medium,\n marginBottom: 0,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n choicesScrollView: {\n marginVertical: 20,\n width: '100%'\n },\n choicesScrollContent: {\n padding: 10\n }\n });\n\ntype QuestionProps = {\n answerUI: SlideProps['answerUI'];\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {answerUI, questionText, questionOrigin} = props;\n const {theme} = useTemplateContext();\n const [style, setStyle] = useState<StyleSheetType>();\n\n useEffect(() => {\n const questionStyle = createQuestionStyle(theme);\n setStyle(questionStyle);\n }, [theme]);\n\n if (!answerUI || !questionText || !style) return null;\n\n return (\n <>\n <View style={style.questionHeading}>\n <Text style={style.questionOrigin}>{questionOrigin}</Text>\n <Text style={style.questionText}>{questionText}</Text>\n <Text style={style.questionHelp}>{get('help', answerUI)}</Text>\n </View>\n {answerUI.media ? (\n <View style={styles.mediaContainer}>\n <MediaView media={answerUI.media} />\n </View>\n ) : null}\n <ScrollView\n style={style.choicesScrollView}\n contentContainerStyle={style.choicesScrollContent}\n centerContent\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n >\n <Answer {...answerUI} />\n </ScrollView>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n};\n\nconst createSlideStyle = (num: number, screenWidth: number): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: 34 + num * 5,\n backgroundColor: '#fff', // theme.colors.white\n height: '90%',\n width: slideWidth,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 25,\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.05,\n shadowRadius: 16,\n elevation: 10 - num * 1,\n borderRadius: 16\n }\n });\n};\n\nconst Slide = (props: ReviewSlideProps) => {\n const {animatedStyle, slide, correctionPopinProps, validateButton, num, slideIndex = '0'} = props;\n\n const {width} = useWindowDimensions();\n const slideStyle = createSlideStyle(num, width);\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n if (loading) {\n return <View style={slideStyle.slide} />;\n }\n\n const {onClick: handleValidatePress} = validateButton;\n\n return (\n <Animated.View style={[slideStyle.slide, animatedStyle]}>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />\n <Button\n disabled={validateButton.disabled}\n submitValue={validateButton.label}\n onPress={handleValidatePress}\n testID={`slide-validate-button-${slideIndex}`}\n />\n {correctionPopinProps ? (\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ) : null}\n </Animated.View>\n );\n};\n\nexport default Slide;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.native.js","names":["styles","StyleSheet","create","mediaContainer","flex","alignItems","justifyContent","marginTop","width","minHeight","borderRadius","overflow","image","correctionPopinWrapper","position","bottom","MediaView","media","type","TYPE_VIDEO","TYPE_IMAGE","uri","url","split","TYPE_AUDIO","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateUp","useTranslateY","fromValue","toValue","duration","easing","Easing","bezier","useEffect","start","klf","getOr","undefined","information","label","message","next","get","onClick","_correctionPopinProps","resultLabel","style","animatedStyle","createQuestionStyle","theme","questionHeading","questionOrigin","fontSize","lineHeight","color","colors","text","primary","marginBottom","spacing","tiny","small","textAlign","questionText","fontWeight","questionHelp","gray","medium","choicesScrollView","marginVertical","choicesScrollContent","padding","Question","props","answerUI","useTemplateContext","setStyle","useState","questionStyle","createSlideStyle","num","screenWidth","slideWidth","hiddenBackgroundToLockActions","left","right","top","backgroundColor","slide","height","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","Slide","validateButton","isValidated","setValidated","handleValidatePress","useCallback","Keyboard","dismiss","setTimeout","useWindowDimensions","slideStyle","loading","parentContentTitle","disabled"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useState} from 'react';\n\nimport {\n Animated,\n Easing,\n Image,\n Keyboard,\n ScrollView,\n StyleSheet,\n TextStyle,\n useWindowDimensions,\n View,\n ViewStyle\n} from 'react-native';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Text from '../../atom/text/index.native';\nimport Answer from '../../molecule/answer/index.native';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\nimport Button from '../../atom/button/index.native';\nimport {TYPE_AUDIO, TYPE_IMAGE, TYPE_VIDEO} from '../../molecule/answer/prop-types';\nimport Video from '../../molecule/video-player-mobile/index.native';\nimport {Media} from '../../molecule/questions/types';\nimport {PopinProps, ReviewSlideProps, SlideProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n mediaContainer: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: 20,\n width: '100%',\n minHeight: 150,\n borderRadius: 10,\n overflow: 'hidden'\n },\n image: {\n flex: 1,\n width: '100%'\n },\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst MediaView = ({media}: {media: Media}) => {\n switch (media.type) {\n case TYPE_VIDEO:\n return (\n <View style={styles.mediaContainer}>\n <Video media={media} />\n </View>\n );\n case TYPE_IMAGE: {\n const uri = `https://${media.url?.split('//')[1]}`;\n return <Image style={[styles.mediaContainer, styles.image]} source={{uri}} />;\n }\n case TYPE_AUDIO:\n default:\n return null;\n }\n};\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateUp = useTranslateY({\n fromValue: 500,\n toValue: 0,\n duration: 500,\n easing: Easing.bezier(0.34, 1.36, 0.64, 1)\n });\n\n // the translation is required only once on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => translateUp.start(), []);\n\n if (!showCorrectionPopin) return null;\n\n const klf = getOr(undefined, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const onClick = get(['next', 'onClick'], correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick,\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n const style = animateCorrectionPopin\n ? [styles.correctionPopinWrapper, translateUp.animatedStyle]\n : styles.correctionPopinWrapper;\n\n return (\n <Animated.View style={style}>\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </Animated.View>\n );\n};\n\ntype StyleSheetType = {\n questionHeading: ViewStyle;\n questionOrigin: ViewStyle;\n questionText: TextStyle;\n questionHelp: ViewStyle;\n choicesScrollView: ViewStyle;\n choicesScrollContent: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between'\n },\n questionOrigin: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.text.primary,\n marginBottom: theme.spacing.tiny,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n questionText: {\n fontSize: 16,\n lineHeight: 22,\n fontWeight: '700',\n color: theme.colors.text.primary,\n textAlign: 'center'\n },\n questionHelp: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.gray.medium,\n marginBottom: 0,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n choicesScrollView: {\n marginVertical: 20,\n width: '100%'\n },\n choicesScrollContent: {\n padding: 10\n }\n });\n\ntype QuestionProps = {\n answerUI: SlideProps['answerUI'];\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {answerUI, questionText, questionOrigin} = props;\n const {theme} = useTemplateContext();\n const [style, setStyle] = useState<StyleSheetType>();\n\n useEffect(() => {\n const questionStyle = createQuestionStyle(theme);\n setStyle(questionStyle);\n }, [theme]);\n\n if (!answerUI || !questionText || !style) return null;\n\n return (\n <>\n <View style={style.questionHeading}>\n <Text style={style.questionOrigin}>{questionOrigin}</Text>\n <Text style={style.questionText}>{questionText}</Text>\n <Text style={style.questionHelp}>{get('help', answerUI)}</Text>\n </View>\n {answerUI.media ? <MediaView media={answerUI.media} /> : null}\n <ScrollView\n style={style.choicesScrollView}\n contentContainerStyle={style.choicesScrollContent}\n centerContent\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n >\n <Answer {...answerUI} />\n </ScrollView>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n hiddenBackgroundToLockActions: ViewStyle;\n};\n\nconst createSlideStyle = (num: number, screenWidth: number): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n hiddenBackgroundToLockActions: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundColor: '#00000000'\n },\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: 34 + num * 5,\n backgroundColor: '#fff', // theme.colors.white\n height: '90%',\n width: slideWidth,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 25,\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.05,\n shadowRadius: 16,\n elevation: 10 - num * 1,\n borderRadius: 16\n }\n });\n};\n\nconst Slide = (props: ReviewSlideProps) => {\n const {animatedStyle, slide, correctionPopinProps, validateButton, num, slideIndex = '0'} = props;\n const [isValidated, setValidated] = useState<boolean>(false);\n\n const handleValidatePress = useCallback(() => {\n Keyboard.dismiss();\n setValidated(true);\n\n // calling the onclick later, after react has rerendered, to display the locking BG as soon as possible\n setTimeout(() => {\n validateButton.onClick();\n }, 20);\n\n // only to create on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const {width} = useWindowDimensions();\n const slideStyle = createSlideStyle(num, width);\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n if (loading) {\n return <View style={slideStyle.slide} />;\n }\n\n return (\n <Animated.View style={[slideStyle.slide, animatedStyle]}>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />\n <Button\n disabled={isValidated || validateButton.disabled}\n submitValue={validateButton.label}\n onPress={handleValidatePress}\n testID={`slide-validate-button-${slideIndex}`}\n />\n {isValidated ? <View style={slideStyle.hiddenBackgroundToLockActions} /> : null}\n {correctionPopinProps ? (\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ) : null}\n </Animated.View>\n );\n};\n\nexport default Slide;\n"],"mappings":"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"}
|