@coorpacademy/components 10.22.3 → 10.22.4
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/drag-and-drop/index.js +2 -1
- package/es/atom/drag-and-drop/index.js.map +1 -1
- package/es/atom/header-back-button/index.native.js +3 -4
- package/es/atom/header-back-button/index.native.js.map +1 -1
- package/es/atom/html/index.native.js +153 -0
- package/es/atom/html/index.native.js.map +1 -0
- package/es/atom/input-checkbox/index.js +3 -2
- package/es/atom/input-checkbox/index.js.map +1 -1
- package/es/atom/input-switch/index.js +2 -1
- package/es/atom/input-switch/index.js.map +1 -1
- package/es/atom/select-modal/index.native.js +113 -0
- package/es/atom/select-modal/index.native.js.map +1 -0
- package/es/atom/space/index.native.js +21 -0
- package/es/atom/space/index.native.js.map +1 -0
- package/es/atom/text/index.native.js +29 -0
- package/es/atom/text/index.native.js.map +1 -0
- package/es/hoc/modal/index.native.js +97 -0
- package/es/hoc/modal/index.native.js.map +1 -0
- package/es/hoc/modal/select/index.native.js +85 -0
- package/es/hoc/modal/select/index.native.js.map +1 -0
- package/es/hoc/modal/select-item/index.native.js +54 -0
- package/es/hoc/modal/select-item/index.native.js.map +1 -0
- package/es/hoc/touchable/index.native.js.map +1 -1
- package/es/index.js +2 -1
- package/es/index.js.map +1 -1
- package/es/molecule/cm-popin/index.js +27 -8
- package/es/molecule/cm-popin/index.js.map +1 -1
- package/es/molecule/cm-popin/style.css +24 -1
- package/es/molecule/feedback/index.js +7 -3
- package/es/molecule/feedback/index.js.map +1 -1
- package/es/molecule/feedback/style.css +24 -0
- package/es/template/app-player/player/index.js +6 -3
- package/es/template/app-player/player/index.js.map +1 -1
- package/es/template/app-player/popin-end/index.js +21 -6
- package/es/template/app-player/popin-end/index.js.map +1 -1
- package/es/template/app-player/popin-end/style.css +1 -1
- package/es/template/app-player/popin-end/summary.css +65 -0
- package/es/template/app-player/popin-end/summary.js +57 -7
- package/es/template/app-player/popin-end/summary.js.map +1 -1
- package/es/template/app-player/popin-header/index.js +33 -12
- package/es/template/app-player/popin-header/index.js.map +1 -1
- package/es/template/app-player/popin-header/style.css +93 -0
- package/es/template/app-player/popin-no-access/index.js +27 -0
- package/es/template/app-player/popin-no-access/index.js.map +1 -0
- package/es/template/app-review/prop-types.js +2 -1
- package/es/template/app-review/prop-types.js.map +1 -1
- package/es/template/app-review/slides/index.js +2 -2
- package/es/template/app-review/slides/index.js.map +1 -1
- package/es/types/progression-engine.d.js +2 -0
- package/es/types/progression-engine.d.js.map +1 -0
- package/es/variables/theme.native.js +1 -0
- package/es/variables/theme.native.js.map +1 -1
- package/lib/atom/drag-and-drop/index.js +2 -1
- package/lib/atom/drag-and-drop/index.js.map +1 -1
- package/lib/atom/header-back-button/index.native.js +3 -4
- package/lib/atom/header-back-button/index.native.js.map +1 -1
- package/lib/atom/html/index.native.js +170 -0
- package/lib/atom/html/index.native.js.map +1 -0
- package/lib/atom/input-checkbox/index.js +2 -1
- package/lib/atom/input-checkbox/index.js.map +1 -1
- package/lib/atom/input-switch/index.js +2 -1
- package/lib/atom/input-switch/index.js.map +1 -1
- package/lib/atom/select-modal/index.native.js +135 -0
- package/lib/atom/select-modal/index.native.js.map +1 -0
- package/lib/atom/space/index.native.js +33 -0
- package/lib/atom/space/index.native.js.map +1 -0
- package/lib/atom/text/index.native.js +44 -0
- package/lib/atom/text/index.native.js.map +1 -0
- package/lib/hoc/modal/index.native.js +114 -0
- package/lib/hoc/modal/index.native.js.map +1 -0
- package/lib/hoc/modal/select/index.native.js +101 -0
- package/lib/hoc/modal/select/index.native.js.map +1 -0
- package/lib/hoc/modal/select-item/index.native.js +70 -0
- package/lib/hoc/modal/select-item/index.native.js.map +1 -0
- package/lib/hoc/touchable/index.native.js.map +1 -1
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/molecule/cm-popin/index.js +27 -8
- package/lib/molecule/cm-popin/index.js.map +1 -1
- package/lib/molecule/cm-popin/style.css +24 -1
- package/lib/molecule/feedback/index.js +7 -3
- package/lib/molecule/feedback/index.js.map +1 -1
- package/lib/molecule/feedback/style.css +24 -0
- package/lib/template/app-player/player/index.js +7 -3
- package/lib/template/app-player/player/index.js.map +1 -1
- package/lib/template/app-player/popin-end/index.js +21 -6
- package/lib/template/app-player/popin-end/index.js.map +1 -1
- package/lib/template/app-player/popin-end/style.css +1 -1
- package/lib/template/app-player/popin-end/summary.css +65 -0
- package/lib/template/app-player/popin-end/summary.js +58 -7
- package/lib/template/app-player/popin-end/summary.js.map +1 -1
- package/lib/template/app-player/popin-header/index.js +32 -11
- package/lib/template/app-player/popin-header/index.js.map +1 -1
- package/lib/template/app-player/popin-header/style.css +93 -0
- package/lib/template/app-player/popin-no-access/index.js +37 -0
- package/lib/template/app-player/popin-no-access/index.js.map +1 -0
- package/lib/template/app-review/prop-types.js +2 -1
- package/lib/template/app-review/prop-types.js.map +1 -1
- package/lib/template/app-review/slides/index.js +2 -2
- package/lib/template/app-review/slides/index.js.map +1 -1
- package/lib/types/progression-engine.d.js +2 -0
- package/lib/types/progression-engine.d.js.map +1 -0
- package/lib/variables/theme.native.js +3 -1
- package/lib/variables/theme.native.js.map +1 -1
- package/package.json +6 -4
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
@value dark from colors;
|
|
11
11
|
@value black from colors;
|
|
12
12
|
@value transparent from colors;
|
|
13
|
+
@value cm_grey_75 from colors;
|
|
14
|
+
@value lightGreen from colors;
|
|
15
|
+
@value cm_green_50 from colors;
|
|
16
|
+
@value cm_negative_100 from colors;
|
|
17
|
+
@value cm_negative_50 from colors;
|
|
18
|
+
@value white from colors;
|
|
13
19
|
|
|
14
20
|
.header {
|
|
15
21
|
display: flex;
|
|
@@ -86,6 +92,14 @@
|
|
|
86
92
|
color: white;
|
|
87
93
|
}
|
|
88
94
|
|
|
95
|
+
.titlesWrapperScorm {
|
|
96
|
+
display: flex;
|
|
97
|
+
justify-content: center;
|
|
98
|
+
flex-direction: column-reverse;
|
|
99
|
+
color: white;
|
|
100
|
+
height: 20px;
|
|
101
|
+
}
|
|
102
|
+
|
|
89
103
|
.titleElement {
|
|
90
104
|
margin: 0;
|
|
91
105
|
font-weight: normal;
|
|
@@ -185,6 +199,78 @@
|
|
|
185
199
|
padding: 0 20px 0 10px;
|
|
186
200
|
}
|
|
187
201
|
|
|
202
|
+
.resultContenantContainerScorm {
|
|
203
|
+
width: 884px;
|
|
204
|
+
height: 158px;
|
|
205
|
+
border: 1px solid cm_grey_75;
|
|
206
|
+
display: flex;
|
|
207
|
+
align-items: center;
|
|
208
|
+
background-color: white;
|
|
209
|
+
position: relative;
|
|
210
|
+
z-index: 2;
|
|
211
|
+
flex-wrap: wrap;
|
|
212
|
+
}
|
|
213
|
+
.resultSubtitleScorm {
|
|
214
|
+
font-family: "Gilroy";
|
|
215
|
+
font-style: normal;
|
|
216
|
+
font-weight: 700;
|
|
217
|
+
font-size: 42px;
|
|
218
|
+
line-height: 52px;
|
|
219
|
+
color: lightGreen;
|
|
220
|
+
margin-bottom: 0px;
|
|
221
|
+
margin-top: 0px;
|
|
222
|
+
}
|
|
223
|
+
.resultTitleScorm {
|
|
224
|
+
font-family: "Gilroy";
|
|
225
|
+
font-style: normal;
|
|
226
|
+
font-weight: 500;
|
|
227
|
+
font-size: 16px;
|
|
228
|
+
line-height: 22px;
|
|
229
|
+
color: dark;
|
|
230
|
+
margin-top: 4px;
|
|
231
|
+
}
|
|
232
|
+
.statusPlayerResultFailScorm {
|
|
233
|
+
font-family: "Gilroy";
|
|
234
|
+
font-style: normal;
|
|
235
|
+
font-weight: 700;
|
|
236
|
+
font-size: 42px;
|
|
237
|
+
line-height: 52px;
|
|
238
|
+
color: cm_negative_100;
|
|
239
|
+
margin-top: 0px;
|
|
240
|
+
margin-bottom: 0px;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.iconCloseContainer {
|
|
244
|
+
height: 60px;
|
|
245
|
+
width: 60px;
|
|
246
|
+
border-radius: 50%;
|
|
247
|
+
background-color: cm_negative_50;
|
|
248
|
+
display: flex;
|
|
249
|
+
justify-content: center;
|
|
250
|
+
align-items: center;
|
|
251
|
+
margin: 0 24px 0 40px
|
|
252
|
+
}
|
|
253
|
+
.iconSuccessContainer {
|
|
254
|
+
height: 60px;
|
|
255
|
+
width: 60px;
|
|
256
|
+
border-radius: 50%;
|
|
257
|
+
background-color: cm_green_50;
|
|
258
|
+
display: flex;
|
|
259
|
+
justify-content: center;
|
|
260
|
+
align-items: center;
|
|
261
|
+
margin: 0 24px 0 40px
|
|
262
|
+
}
|
|
263
|
+
.failIcon {
|
|
264
|
+
color: cm_negative_100;
|
|
265
|
+
height: 22px;
|
|
266
|
+
width: 22px;
|
|
267
|
+
}
|
|
268
|
+
.checkIcon {
|
|
269
|
+
color: lightGreen;
|
|
270
|
+
height: 22px;
|
|
271
|
+
width: 22px;
|
|
272
|
+
}
|
|
273
|
+
|
|
188
274
|
/*
|
|
189
275
|
* Next Question Part
|
|
190
276
|
*/
|
|
@@ -351,6 +437,9 @@
|
|
|
351
437
|
.correctionSectionEndSuccess .titleElement {
|
|
352
438
|
padding-right: 130px;
|
|
353
439
|
}
|
|
440
|
+
.resultContenantContainerScorm {
|
|
441
|
+
width: 100vw
|
|
442
|
+
}
|
|
354
443
|
}
|
|
355
444
|
|
|
356
445
|
@media mobile {
|
|
@@ -400,4 +489,8 @@
|
|
|
400
489
|
.nextStepTitle {
|
|
401
490
|
width: 177px;
|
|
402
491
|
}
|
|
492
|
+
.iconCloseContainer,
|
|
493
|
+
.iconSuccessContainer {
|
|
494
|
+
margin: auto;
|
|
495
|
+
}
|
|
403
496
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = void 0;
|
|
5
|
+
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
|
|
10
|
+
var _cmPopin = _interopRequireDefault(require("../../../molecule/cm-popin"));
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
const PopinNoAccess = props => {
|
|
15
|
+
const {
|
|
16
|
+
content,
|
|
17
|
+
icon,
|
|
18
|
+
backgroundImageUrl,
|
|
19
|
+
descriptionText
|
|
20
|
+
} = props;
|
|
21
|
+
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_cmPopin.default, {
|
|
22
|
+
content: content,
|
|
23
|
+
icon: icon,
|
|
24
|
+
backgroundImageUrl: backgroundImageUrl,
|
|
25
|
+
descriptionText: descriptionText
|
|
26
|
+
}));
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
PopinNoAccess.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
30
|
+
content: _propTypes.default.string,
|
|
31
|
+
icon: _propTypes.default.string,
|
|
32
|
+
backgroundImageUrl: _propTypes.default.string,
|
|
33
|
+
descriptionText: _propTypes.default.string
|
|
34
|
+
} : {};
|
|
35
|
+
var _default = PopinNoAccess;
|
|
36
|
+
exports.default = _default;
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/template/app-player/popin-no-access/index.js"],"names":["PopinNoAccess","props","content","icon","backgroundImageUrl","descriptionText","propTypes","PropTypes","string"],"mappings":";;;;;AAAA;;AACA;;AACA;;;;AAEA,MAAMA,aAAa,GAAGC,KAAK,IAAI;AAC7B,QAAM;AAACC,IAAAA,OAAD;AAAUC,IAAAA,IAAV;AAAgBC,IAAAA,kBAAhB;AAAoCC,IAAAA;AAApC,MAAuDJ,KAA7D;AACA,sBACE,uDACE,6BAAC,gBAAD;AACE,IAAA,OAAO,EAAEC,OADX;AAEE,IAAA,IAAI,EAAEC,IAFR;AAGE,IAAA,kBAAkB,EAAEC,kBAHtB;AAIE,IAAA,eAAe,EAAEC;AAJnB,IADF,CADF;AAUD,CAZD;;AAcAL,aAAa,CAACM,SAAd,2CAA0B;AACxBJ,EAAAA,OAAO,EAAEK,mBAAUC,MADK;AAExBL,EAAAA,IAAI,EAAEI,mBAAUC,MAFQ;AAGxBJ,EAAAA,kBAAkB,EAAEG,mBAAUC,MAHN;AAIxBH,EAAAA,eAAe,EAAEE,mBAAUC;AAJH,CAA1B;eAOeR,a","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CMPopin from '../../../molecule/cm-popin';\n\nconst PopinNoAccess = props => {\n const {content, icon, backgroundImageUrl, descriptionText} = props;\n return (\n <div>\n <CMPopin\n content={content}\n icon={icon}\n backgroundImageUrl={backgroundImageUrl}\n descriptionText={descriptionText}\n />\n </div>\n );\n};\n\nPopinNoAccess.propTypes = {\n content: PropTypes.string,\n icon: PropTypes.string,\n backgroundImageUrl: PropTypes.string,\n descriptionText: PropTypes.string\n};\n\nexport default PopinNoAccess;\n"],"file":"index.js"}
|
|
@@ -20,7 +20,8 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
20
20
|
const ViewNames = {
|
|
21
21
|
skills: 'skills',
|
|
22
22
|
onboarding: 'onboarding',
|
|
23
|
-
slides: 'slides'
|
|
23
|
+
slides: 'slides',
|
|
24
|
+
default: 'loader'
|
|
24
25
|
};
|
|
25
26
|
exports.ViewNames = ViewNames;
|
|
26
27
|
var _default = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/template/app-review/prop-types.js"],"names":["ViewNames","skills","onboarding","slides","viewName","PropTypes","oneOf","shape","Onboarding","propTypes","Skills","Slides"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEO,MAAMA,SAAS,GAAG;AACvBC,EAAAA,MAAM,EAAE,QADe;AAEvBC,EAAAA,UAAU,EAAE,YAFW;AAGvBC,EAAAA,MAAM,EAAE;
|
|
1
|
+
{"version":3,"sources":["../../../src/template/app-review/prop-types.js"],"names":["ViewNames","skills","onboarding","slides","default","viewName","PropTypes","oneOf","shape","Onboarding","propTypes","Skills","Slides"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEO,MAAMA,SAAS,GAAG;AACvBC,EAAAA,MAAM,EAAE,QADe;AAEvBC,EAAAA,UAAU,EAAE,YAFW;AAGvBC,EAAAA,MAAM,EAAE,QAHe;AAIvBC,EAAAA,OAAO,EAAE;AAJc,CAAlB;;eAOQ;AACbC,EAAAA,QAAQ,EAAEC,mBAAUC,KAAV,CAAgB,mBAAKP,SAAL,CAAhB,CADG;AAEbE,EAAAA,UAAU,EAAEI,mBAAUE,KAAV,cAAoBC,oBAAWC,SAA/B,EAFC;AAGbT,EAAAA,MAAM,EAAEK,mBAAUE,KAAV,cAAoBG,gBAAOD,SAA3B,EAHK;AAIbP,EAAAA,MAAM,EAAEG,mBAAUE,KAAV,cAAoBI,gBAAOF,SAA3B;AAJK,C","sourcesContent":["import PropTypes from 'prop-types';\nimport keys from 'lodash/fp/keys';\nimport Onboarding from './onboarding';\nimport Skills from './skills';\nimport Slides from './slides';\n\nexport const ViewNames = {\n skills: 'skills',\n onboarding: 'onboarding',\n slides: 'slides',\n default: 'loader'\n};\n\nexport default {\n viewName: PropTypes.oneOf(keys(ViewNames)),\n onboarding: PropTypes.shape({...Onboarding.propTypes}),\n skills: PropTypes.shape({...Skills.propTypes}),\n slides: PropTypes.shape({...Slides.propTypes})\n};\n"],"file":"prop-types.js"}
|
|
@@ -289,9 +289,9 @@ const SlidesReview = ({
|
|
|
289
289
|
(0, _react.useEffect)(
|
|
290
290
|
/* istanbul ignore next */
|
|
291
291
|
() => {
|
|
292
|
-
const slideNumber = (0, _get.default)('slideNumber', progression);
|
|
292
|
+
const slideNumber = (0, _get.default)('slideNumber', progression); // temporal fix, should check for new slides in the state && then update
|
|
293
293
|
|
|
294
|
-
if (progression) {
|
|
294
|
+
if (progression && slideNumber !== 0) {
|
|
295
295
|
const hidden = (0, _getOr.default)(false, `${slideNumber}.hidden`, slides);
|
|
296
296
|
const endReview = (0, _getOr.default)(false, `${slideNumber}.endReview`, slides);
|
|
297
297
|
const position = (0, _get.default)(`${slideNumber}.position`, slides);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/template/app-review/slides/index.js"],"names":["stylesByPosition","style","position0","position1","position2","position3","position4","TOTAL_SLIDES_STACK","HIGHEST_INDEX","getSlideAnimation","action","position","hidden","slideOutHideAndIn","slideOutAndIn","hiddenSlide","Slide","slideNumber","slides","primarySkinColor","validate","validateSlide","finishedSlides","finishedSlidesSize","updateSlidesOnNext","updateReviewStatus","updateStepItemsOnNext","progression","correctionPopinProps","endReview","animationType","isSlideCorrect","questionText","answerUI","validateLabel","validateButtonProps","customStyle","backgroundColor","onClick","label","className","validateButton","disabled","klf","information","message","next","successLabel","failureLabel","_correctionPopinProps","exitNode","newSlideContent","isCorrect","numberOfFinishedSlides","stepNumber","current","type","resultLabel","questionOrigin","answerProps","model","answers","choices","slideBase","slideContentContainer","question","help","answerContainer","validateButtonWrapper","correctionPopinWrapper","hiddenCorrectionPopinWrapper","display","propTypes","SlidePropTypes","StackedSlides","stackedSlides","slide","push","StackedSlidesPropTypes","SlidesReview","headerProps","reviewBackgroundAriaLabel","stepItems","reviewStatus","congratsProps","updateSlidesOnValidation","updateStepItemsOnValidation","updateFinishedSlides","context","skin","size","shouldMountSlides","updateShouldMountSlides","nextContent","icon","ICON_VALUES","right","wrong","value","setTimeout","stepItemsArray","stepItem","_headerProps","steps","key","hiddenSteps","slidesRevisionContainer","playerBackground","reviewHeaderContainer","stackedSlidesYAxisOverflowContainer","stackedSlidesContainer","congrats","SlidesReviewPropTypes"],"mappings":"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","sourcesContent":["import React, {useState, useMemo, useEffect} from 'react';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport isNil from 'lodash/fp/isNil';\nimport map from 'lodash/fp/map';\nimport omit from 'lodash/fp/omit';\nimport pipe from 'lodash/fp/pipe';\nimport size from 'lodash/fp/size';\nimport {ICON_VALUES} from '../../../atom/review-header-step-item';\nimport ReviewBackground from '../../../atom/review-background';\nimport ReviewCongrats from '../../../organism/review-congrats';\nimport ReviewHeader from '../../../organism/review-header';\nimport ReviewCorrectionPopin from '../../../molecule/review-correction-popin';\nimport Answer from '../../../molecule/answer';\nimport ButtonLink from '../../../atom/button-link';\nimport style from './style.css';\nimport {SlidesReviewPropTypes, SlidePropTypes, StackedSlidesPropTypes} from './prop-types';\n\nconst stylesByPosition = {\n 0: style.position0,\n 1: style.position1,\n 2: style.position2,\n 3: style.position3,\n 4: style.position4\n};\n\nexport const TOTAL_SLIDES_STACK = 5;\nexport const HIGHEST_INDEX = TOTAL_SLIDES_STACK - 1;\n\nconst getSlideAnimation = (action, position, hidden) => {\n switch (action) {\n /* istanbul ignore next */\n case 'unstack':\n return style.slideOutHideAndIn;\n /* istanbul ignore next */\n case 'restack':\n return style.slideOutAndIn;\n default:\n return hidden ? style.hiddenSlide : stylesByPosition[position];\n }\n};\n\nconst Slide = ({\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n}) => {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const animationType = getOr(false, `${slideNumber}.animationType`, slides);\n const isSlideCorrect = getOr(null, `${slideNumber}.isCorrect`, slides);\n const questionText = get(`${slideNumber}.questionText`, slides);\n const answerUI = get(`${slideNumber}.answerUI`, slides);\n\n const validateLabel = getOr('', 'label', validate);\n\n const validateButtonProps = {\n customStyle: {\n backgroundColor: primarySkinColor\n },\n /*\n slide validation action, this will trigger the correction popin\n (with the useEffect that fires the dispatchers, if there is a nextContent content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slides will disappear, also fired in a useEffect),\n\n if it is the last slide and the content needs to be different, then that update will\n be handled on the next slide logic but the content will be carried from here.\n */\n onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\n 'aria-label': validateLabel,\n label: validateLabel,\n 'data-name': `slide-validate-button-${slideNumber}`,\n className: style.validateButton,\n disabled: !isNil(isSlideCorrect)\n };\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const successLabel = getOr('', 'successLabel', correctionPopinProps);\n const failureLabel = getOr('', 'failureLabel', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n /*\n next slide action, this will trigger the slides animations\n if it is the last slide AND the content needs to be different, then that update\n of the content will be handled here (and in the validate as it happens normally )\n from the content carried from the validate action.\n */\n onClick: () => {\n const exitNode = get('exitNode', progression);\n\n updateSlidesOnNext({\n slideNumber,\n newSlideContent: {\n hidden: !!isSlideCorrect,\n position: HIGHEST_INDEX - finishedSlidesSize, // to restack the slide\n animationType: isSlideCorrect ? 'unstack' : 'restack',\n isCorrect: isSlideCorrect,\n endReview: !!exitNode,\n answerUI,\n questionText\n },\n numberOfFinishedSlides: finishedSlidesSize\n });\n updateStepItemsOnNext({\n stepNumber: slideNumber,\n finishedSlides,\n current:\n finishedSlidesSize === HIGHEST_INDEX && /* istanbul ignore next */ !isSlideCorrect\n });\n\n if (finishedSlidesSize === TOTAL_SLIDES_STACK) updateReviewStatus('finished');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideNumber}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: isSlideCorrect ? 'right' : 'wrong',\n resultLabel: isSlideCorrect ? successLabel : failureLabel\n };\n\n const questionOrigin = 'From \"Master Design Thinking to become more agile\" course';\n const answerProps = get(['model', 'choices'], answerUI)\n ? /* istanbul ignore next */ {\n ...answerUI,\n model: {\n ...answerUI.model,\n answers: answerUI.model.choices\n }\n }\n : answerUI;\n\n return (\n <div\n key={`slide-${slideNumber}`}\n data-name={`slide-${slideNumber}`}\n className={classnames(\n style.slideBase,\n getSlideAnimation(animationType, position, hidden),\n endReview ? style.endReview : null\n )}\n >\n {answerUI && questionText ? (\n <div key=\"content-container\" className={style.slideContentContainer}>\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div key=\"title\" className={style.question}>\n {questionText}\n </div>\n <div key=\"help\" className={style.help}>\n {answerUI.help}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} key=\"answer\" />\n </div>\n </div>\n ) : null}\n\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n <div\n className={\n isSlideCorrect ? style.correctionPopinWrapper : style.hiddenCorrectionPopinWrapper\n }\n style={{\n ...(finishedSlidesSize !== HIGHEST_INDEX &&\n !isSlideCorrect && {\n display: 'none'\n })\n }}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n </div>\n );\n};\n\nSlide.propTypes = SlidePropTypes;\n\nconst StackedSlides = ({\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n}) => {\n const stackedSlides = [];\n // eslint-disable-next-line fp/no-loops\n for (let slideNumber = 0; slideNumber < TOTAL_SLIDES_STACK; slideNumber++) {\n const slide = (\n <Slide\n {...{\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n }}\n key={slideNumber}\n />\n );\n stackedSlides.push(slide);\n }\n\n return stackedSlides;\n};\n\nStackedSlides.propTypes = StackedSlidesPropTypes;\n\nconst SlidesReview = (\n {\n headerProps,\n reviewBackgroundAriaLabel,\n validate,\n correctionPopinProps,\n slides,\n finishedSlides,\n stepItems,\n reviewStatus,\n congratsProps,\n validateSlide,\n updateSlidesOnValidation,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnValidation,\n updateStepItemsOnNext,\n updateFinishedSlides,\n progression\n },\n context\n) => {\n const {skin} = context;\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n\n const finishedSlidesSize = useMemo(() => pipe(omit('slideNumbers'), size)(finishedSlides), [\n finishedSlides\n ]);\n\n /*\n ||-------> the slides have an slightly longer lifespan than the \"ongoing\" review State,\n after reviewState changes to \"finished\" the slides don't have to unmount until the last\n slide-out animation is finished, the slides have to be unmounted to be RGAA complaint.\n (if they are only invisible -but- still mounted, then they will be found by the assisting\n tools & clutter them)\n */\n const [shouldMountSlides, updateShouldMountSlides] = useState(true);\n\n useEffect(\n /* istanbul ignore next */ () => {\n const slideNumber = get('slideNumber', progression);\n if (progression) {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const isCorrect = get('isCorrect', progression);\n const exitNode = get('exitNode', progression);\n const nextContent = get('nextContent', progression);\n updateSlidesOnValidation({\n slideNumber,\n newSlideContent: {\n hidden,\n position,\n isCorrect,\n endReview: !!exitNode\n },\n numberOfFinishedSlides: finishedSlidesSize,\n nextContent\n });\n updateStepItemsOnValidation({\n stepNumber: slideNumber,\n icon: isCorrect ? ICON_VALUES.right : ICON_VALUES.wrong\n });\n if (isCorrect) updateFinishedSlides({slideNumber, value: true});\n if (endReview) {\n updateReviewStatus('finished');\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [progression]\n );\n\n useEffect(\n /* istanbul ignore next */ () => {\n if (reviewStatus === 'finished') {\n setTimeout(() => updateShouldMountSlides(false), 2000);\n }\n },\n [finishedSlidesSize, reviewStatus, updateReviewStatus]\n );\n\n // ||-------> transform the step items state to Array\n const stepItemsArray = useMemo(\n () =>\n pipe(\n omit('slideNumbers'),\n map(stepItem => stepItem)\n )(stepItems),\n [stepItems]\n );\n\n const _headerProps = {\n ...headerProps,\n steps: stepItemsArray,\n key: 'review-header',\n hiddenSteps: reviewStatus !== 'ongoing'\n };\n\n return (\n <div\n key=\"slides-revision-container\"\n data-name=\"slides-revision-container\"\n className={style.slidesRevisionContainer}\n >\n <div key=\"player-background-container\" className={style.playerBackground}>\n <ReviewBackground aria-label={reviewBackgroundAriaLabel} />\n </div>\n\n <div key=\"review-header-wrapper\" className={style.reviewHeaderContainer}>\n <ReviewHeader {..._headerProps} />\n </div>\n\n {shouldMountSlides ? (\n <div\n key=\"stacked-slides-container-y-overflow\"\n className={style.stackedSlidesYAxisOverflowContainer}\n >\n <div\n key=\"stacked-slides-container\"\n data-name=\"stacked-slides-container\"\n className={style.stackedSlidesContainer}\n >\n <StackedSlides\n {...{\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n }}\n />\n </div>\n </div>\n ) : /* istanbul ignore next */ null}\n\n {reviewStatus === 'finished' ? (\n <div className={style.congrats} data-name=\"congrats-container\">\n <ReviewCongrats {...congratsProps} />\n </div>\n ) : null}\n </div>\n );\n};\n\nSlidesReview.propTypes = SlidesReviewPropTypes;\n\nexport default SlidesReview;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/template/app-review/slides/index.js"],"names":["stylesByPosition","style","position0","position1","position2","position3","position4","TOTAL_SLIDES_STACK","HIGHEST_INDEX","getSlideAnimation","action","position","hidden","slideOutHideAndIn","slideOutAndIn","hiddenSlide","Slide","slideNumber","slides","primarySkinColor","validate","validateSlide","finishedSlides","finishedSlidesSize","updateSlidesOnNext","updateReviewStatus","updateStepItemsOnNext","progression","correctionPopinProps","endReview","animationType","isSlideCorrect","questionText","answerUI","validateLabel","validateButtonProps","customStyle","backgroundColor","onClick","label","className","validateButton","disabled","klf","information","message","next","successLabel","failureLabel","_correctionPopinProps","exitNode","newSlideContent","isCorrect","numberOfFinishedSlides","stepNumber","current","type","resultLabel","questionOrigin","answerProps","model","answers","choices","slideBase","slideContentContainer","question","help","answerContainer","validateButtonWrapper","correctionPopinWrapper","hiddenCorrectionPopinWrapper","display","propTypes","SlidePropTypes","StackedSlides","stackedSlides","slide","push","StackedSlidesPropTypes","SlidesReview","headerProps","reviewBackgroundAriaLabel","stepItems","reviewStatus","congratsProps","updateSlidesOnValidation","updateStepItemsOnValidation","updateFinishedSlides","context","skin","size","shouldMountSlides","updateShouldMountSlides","nextContent","icon","ICON_VALUES","right","wrong","value","setTimeout","stepItemsArray","stepItem","_headerProps","steps","key","hiddenSteps","slidesRevisionContainer","playerBackground","reviewHeaderContainer","stackedSlidesYAxisOverflowContainer","stackedSlidesContainer","congrats","SlidesReviewPropTypes"],"mappings":"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","sourcesContent":["import React, {useState, useMemo, useEffect} from 'react';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport isNil from 'lodash/fp/isNil';\nimport map from 'lodash/fp/map';\nimport omit from 'lodash/fp/omit';\nimport pipe from 'lodash/fp/pipe';\nimport size from 'lodash/fp/size';\nimport {ICON_VALUES} from '../../../atom/review-header-step-item';\nimport ReviewBackground from '../../../atom/review-background';\nimport ReviewCongrats from '../../../organism/review-congrats';\nimport ReviewHeader from '../../../organism/review-header';\nimport ReviewCorrectionPopin from '../../../molecule/review-correction-popin';\nimport Answer from '../../../molecule/answer';\nimport ButtonLink from '../../../atom/button-link';\nimport style from './style.css';\nimport {SlidesReviewPropTypes, SlidePropTypes, StackedSlidesPropTypes} from './prop-types';\n\nconst stylesByPosition = {\n 0: style.position0,\n 1: style.position1,\n 2: style.position2,\n 3: style.position3,\n 4: style.position4\n};\n\nexport const TOTAL_SLIDES_STACK = 5;\nexport const HIGHEST_INDEX = TOTAL_SLIDES_STACK - 1;\n\nconst getSlideAnimation = (action, position, hidden) => {\n switch (action) {\n /* istanbul ignore next */\n case 'unstack':\n return style.slideOutHideAndIn;\n /* istanbul ignore next */\n case 'restack':\n return style.slideOutAndIn;\n default:\n return hidden ? style.hiddenSlide : stylesByPosition[position];\n }\n};\n\nconst Slide = ({\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n}) => {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const animationType = getOr(false, `${slideNumber}.animationType`, slides);\n const isSlideCorrect = getOr(null, `${slideNumber}.isCorrect`, slides);\n const questionText = get(`${slideNumber}.questionText`, slides);\n const answerUI = get(`${slideNumber}.answerUI`, slides);\n\n const validateLabel = getOr('', 'label', validate);\n\n const validateButtonProps = {\n customStyle: {\n backgroundColor: primarySkinColor\n },\n /*\n slide validation action, this will trigger the correction popin\n (with the useEffect that fires the dispatchers, if there is a nextContent content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slides will disappear, also fired in a useEffect),\n\n if it is the last slide and the content needs to be different, then that update will\n be handled on the next slide logic but the content will be carried from here.\n */\n onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\n 'aria-label': validateLabel,\n label: validateLabel,\n 'data-name': `slide-validate-button-${slideNumber}`,\n className: style.validateButton,\n disabled: !isNil(isSlideCorrect)\n };\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const successLabel = getOr('', 'successLabel', correctionPopinProps);\n const failureLabel = getOr('', 'failureLabel', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n /*\n next slide action, this will trigger the slides animations\n if it is the last slide AND the content needs to be different, then that update\n of the content will be handled here (and in the validate as it happens normally )\n from the content carried from the validate action.\n */\n onClick: () => {\n const exitNode = get('exitNode', progression);\n\n updateSlidesOnNext({\n slideNumber,\n newSlideContent: {\n hidden: !!isSlideCorrect,\n position: HIGHEST_INDEX - finishedSlidesSize, // to restack the slide\n animationType: isSlideCorrect ? 'unstack' : 'restack',\n isCorrect: isSlideCorrect,\n endReview: !!exitNode,\n answerUI,\n questionText\n },\n numberOfFinishedSlides: finishedSlidesSize\n });\n updateStepItemsOnNext({\n stepNumber: slideNumber,\n finishedSlides,\n current:\n finishedSlidesSize === HIGHEST_INDEX && /* istanbul ignore next */ !isSlideCorrect\n });\n\n if (finishedSlidesSize === TOTAL_SLIDES_STACK) updateReviewStatus('finished');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideNumber}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: isSlideCorrect ? 'right' : 'wrong',\n resultLabel: isSlideCorrect ? successLabel : failureLabel\n };\n\n const questionOrigin = 'From \"Master Design Thinking to become more agile\" course';\n const answerProps = get(['model', 'choices'], answerUI)\n ? /* istanbul ignore next */ {\n ...answerUI,\n model: {\n ...answerUI.model,\n answers: answerUI.model.choices\n }\n }\n : answerUI;\n\n return (\n <div\n key={`slide-${slideNumber}`}\n data-name={`slide-${slideNumber}`}\n className={classnames(\n style.slideBase,\n getSlideAnimation(animationType, position, hidden),\n endReview ? style.endReview : null\n )}\n >\n {answerUI && questionText ? (\n <div key=\"content-container\" className={style.slideContentContainer}>\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div key=\"title\" className={style.question}>\n {questionText}\n </div>\n <div key=\"help\" className={style.help}>\n {answerUI.help}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} key=\"answer\" />\n </div>\n </div>\n ) : null}\n\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n <div\n className={\n isSlideCorrect ? style.correctionPopinWrapper : style.hiddenCorrectionPopinWrapper\n }\n style={{\n ...(finishedSlidesSize !== HIGHEST_INDEX &&\n !isSlideCorrect && {\n display: 'none'\n })\n }}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n </div>\n );\n};\n\nSlide.propTypes = SlidePropTypes;\n\nconst StackedSlides = ({\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n}) => {\n const stackedSlides = [];\n // eslint-disable-next-line fp/no-loops\n for (let slideNumber = 0; slideNumber < TOTAL_SLIDES_STACK; slideNumber++) {\n const slide = (\n <Slide\n {...{\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n }}\n key={slideNumber}\n />\n );\n stackedSlides.push(slide);\n }\n\n return stackedSlides;\n};\n\nStackedSlides.propTypes = StackedSlidesPropTypes;\n\nconst SlidesReview = (\n {\n headerProps,\n reviewBackgroundAriaLabel,\n validate,\n correctionPopinProps,\n slides,\n finishedSlides,\n stepItems,\n reviewStatus,\n congratsProps,\n validateSlide,\n updateSlidesOnValidation,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnValidation,\n updateStepItemsOnNext,\n updateFinishedSlides,\n progression\n },\n context\n) => {\n const {skin} = context;\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n\n const finishedSlidesSize = useMemo(() => pipe(omit('slideNumbers'), size)(finishedSlides), [\n finishedSlides\n ]);\n\n /*\n ||-------> the slides have an slightly longer lifespan than the \"ongoing\" review State,\n after reviewState changes to \"finished\" the slides don't have to unmount until the last\n slide-out animation is finished, the slides have to be unmounted to be RGAA complaint.\n (if they are only invisible -but- still mounted, then they will be found by the assisting\n tools & clutter them)\n */\n const [shouldMountSlides, updateShouldMountSlides] = useState(true);\n\n useEffect(\n /* istanbul ignore next */ () => {\n const slideNumber = get('slideNumber', progression);\n // temporal fix, should check for new slides in the state && then update\n if (progression && slideNumber !== 0) {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const isCorrect = get('isCorrect', progression);\n const exitNode = get('exitNode', progression);\n const nextContent = get('nextContent', progression);\n updateSlidesOnValidation({\n slideNumber,\n newSlideContent: {\n hidden,\n position,\n isCorrect,\n endReview: !!exitNode\n },\n numberOfFinishedSlides: finishedSlidesSize,\n nextContent\n });\n updateStepItemsOnValidation({\n stepNumber: slideNumber,\n icon: isCorrect ? ICON_VALUES.right : ICON_VALUES.wrong\n });\n if (isCorrect) updateFinishedSlides({slideNumber, value: true});\n if (endReview) {\n updateReviewStatus('finished');\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [progression]\n );\n\n useEffect(\n /* istanbul ignore next */ () => {\n if (reviewStatus === 'finished') {\n setTimeout(() => updateShouldMountSlides(false), 2000);\n }\n },\n [finishedSlidesSize, reviewStatus, updateReviewStatus]\n );\n\n // ||-------> transform the step items state to Array\n const stepItemsArray = useMemo(\n () =>\n pipe(\n omit('slideNumbers'),\n map(stepItem => stepItem)\n )(stepItems),\n [stepItems]\n );\n\n const _headerProps = {\n ...headerProps,\n steps: stepItemsArray,\n key: 'review-header',\n hiddenSteps: reviewStatus !== 'ongoing'\n };\n\n return (\n <div\n key=\"slides-revision-container\"\n data-name=\"slides-revision-container\"\n className={style.slidesRevisionContainer}\n >\n <div key=\"player-background-container\" className={style.playerBackground}>\n <ReviewBackground aria-label={reviewBackgroundAriaLabel} />\n </div>\n\n <div key=\"review-header-wrapper\" className={style.reviewHeaderContainer}>\n <ReviewHeader {..._headerProps} />\n </div>\n\n {shouldMountSlides ? (\n <div\n key=\"stacked-slides-container-y-overflow\"\n className={style.stackedSlidesYAxisOverflowContainer}\n >\n <div\n key=\"stacked-slides-container\"\n data-name=\"stacked-slides-container\"\n className={style.stackedSlidesContainer}\n >\n <StackedSlides\n {...{\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n }}\n />\n </div>\n </div>\n ) : /* istanbul ignore next */ null}\n\n {reviewStatus === 'finished' ? (\n <div className={style.congrats} data-name=\"congrats-container\">\n <ReviewCongrats {...congratsProps} />\n </div>\n ) : null}\n </div>\n );\n};\n\nSlidesReview.propTypes = SlidesReviewPropTypes;\n\nexport default SlidesReview;\n"],"file":"index.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"progression-engine.d.js"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
4
|
+
exports.default = exports.HTML_ANCHOR_TEXT_COLOR = void 0;
|
|
5
|
+
const HTML_ANCHOR_TEXT_COLOR = '#002BDB';
|
|
6
|
+
exports.HTML_ANCHOR_TEXT_COLOR = HTML_ANCHOR_TEXT_COLOR;
|
|
5
7
|
const defaultTheme = {
|
|
6
8
|
colors: {
|
|
7
9
|
border: 'rgba(0, 0, 0, 0.1)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/variables/theme.native.ts"],"names":["defaultTheme","colors","border","gray","extra","lighter","light","lightMedium","medium","dark","extraDark","text","primary","background","cta","negative","positive","white","black","battle","notification","salmon","spacing","micro","tiny","small","base","large","xlarge","radius","common","card","regular","search","button","thumbnail","fontWeight","semiBold","bold","extraBold","fontSize","extraSmall","xxlarge","xxxlarge","letterSpacing","header"],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../../src/variables/theme.native.ts"],"names":["HTML_ANCHOR_TEXT_COLOR","defaultTheme","colors","border","gray","extra","lighter","light","lightMedium","medium","dark","extraDark","text","primary","background","cta","negative","positive","white","black","battle","notification","salmon","spacing","micro","tiny","small","base","large","xlarge","radius","common","card","regular","search","button","thumbnail","fontWeight","semiBold","bold","extraBold","fontSize","extraSmall","xxlarge","xxxlarge","letterSpacing","header"],"mappings":";;;;AAEO,MAAMA,sBAAsB,GAAG,SAA/B;;AAuDP,MAAMC,YAAmB,GAAG;AAC1BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,MAAM,EAAE,oBADF;AAENC,IAAAA,IAAI,EAAE;AACJC,MAAAA,KAAK,EAAE,SADH;AAEJC,MAAAA,OAAO,EAAE,SAFL;AAGJC,MAAAA,KAAK,EAAE,SAHH;AAIJC,MAAAA,WAAW,EAAE,SAJT;AAKJC,MAAAA,MAAM,EAAE,SALJ;AAMJC,MAAAA,IAAI,EAAE,SANF;AAOJC,MAAAA,SAAS,EAAE;AAPP,KAFA;AAWNC,IAAAA,IAAI,EAAE;AACJC,MAAAA,OAAO,EAAE;AADL,KAXA;AAcNC,IAAAA,UAAU,EAAE,EAdN;AAeNC,IAAAA,GAAG,EAAE,SAfC;AAgBNC,IAAAA,QAAQ,EAAE,SAhBJ;AAiBNC,IAAAA,QAAQ,EAAE,SAjBJ;AAkBNC,IAAAA,KAAK,EAAE,SAlBD;AAmBNC,IAAAA,KAAK,EAAE,SAnBD;AAoBNC,IAAAA,MAAM,EAAE,SApBF;AAqBNC,IAAAA,YAAY,EAAE,SArBR;AAsBNC,IAAAA,MAAM,EAAE;AAtBF,GADkB;AAyB1BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,KAAK,EAAE,CADA;AAEPC,IAAAA,IAAI,EAAE,CAFC;AAGPC,IAAAA,KAAK,EAAE,EAHA;AAIPC,IAAAA,IAAI,EAAE,EAJC;AAKPlB,IAAAA,MAAM,EAAE,EALD;AAMPmB,IAAAA,KAAK,EAAE,EANA;AAOPC,IAAAA,MAAM,EAAE;AAPD,GAzBiB;AAkC1BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,MAAM,EAAE,CADF;AAENC,IAAAA,IAAI,EAAE,CAFA;AAGNC,IAAAA,OAAO,EAAE,CAHH;AAINxB,IAAAA,MAAM,EAAE,EAJF;AAKNyB,IAAAA,MAAM,EAAE,EALF;AAMNC,IAAAA,MAAM,EAAE,EANF;AAONC,IAAAA,SAAS,EAAE;AAPL,GAlCkB;AA2C1BC,EAAAA,UAAU,EAAE;AACVJ,IAAAA,OAAO,EAAE,KADC;AAEVK,IAAAA,QAAQ,EAAE,KAFA;AAGVC,IAAAA,IAAI,EAAE,KAHI;AAIVC,IAAAA,SAAS,EAAE;AAJD,GA3Cc;AAiD1BC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,UAAU,EAAE,EADJ;AAERhB,IAAAA,KAAK,EAAE,EAFC;AAGRjB,IAAAA,MAAM,EAAE,EAHA;AAIRwB,IAAAA,OAAO,EAAE,EAJD;AAKRL,IAAAA,KAAK,EAAE,EALC;AAMRC,IAAAA,MAAM,EAAE,EANA;AAORc,IAAAA,OAAO,EAAE,EAPD;AAQRC,IAAAA,QAAQ,EAAE;AARF,GAjDgB;AA2D1BC,EAAAA,aAAa,EAAE;AACbC,IAAAA,MAAM,EAAE;AADK;AA3DW,CAA5B;eAgEe7C,Y","sourcesContent":["export type SpaceType = 'micro' | 'tiny' | 'small' | 'base' | 'medium' | 'large' | 'xlarge';\n\nexport const HTML_ANCHOR_TEXT_COLOR = '#002BDB';\n\nexport type Colors = {\n border: string;\n gray: {\n extra: string;\n light: string;\n lighter: string;\n lightMedium: string;\n medium: string;\n dark: string;\n extraDark: string;\n };\n text: {\n primary: '#06265B';\n };\n negative: string;\n positive: string;\n white: string;\n black: string;\n battle: string;\n notification: string;\n salmon: string;\n};\n\nexport type FontWeightType = 'extraBold' | 'bold' | 'semiBold' | 'regular';\n\nexport type FontSizeType =\n | 'extraSmall'\n | 'small'\n | 'medium'\n | 'regular'\n | 'large'\n | 'xlarge'\n | 'xxlarge'\n | 'xxxlarge';\n\nexport type Theme = {\n colors: Colors;\n spacing: {[key in SpaceType]: number};\n radius: {\n common: number;\n card: number;\n medium: number;\n search: number;\n button: number;\n thumbnail: number;\n };\n fontWeight: {[key in FontWeightType]: string};\n fontSize: {[key in FontSizeType]: string};\n letterSpacing: {\n header: number;\n };\n};\n\nconst defaultTheme: Theme = {\n colors: {\n border: 'rgba(0, 0, 0, 0.1)',\n gray: {\n extra: '#FAFAFA',\n lighter: '#F4F4F5',\n light: '#ededed',\n lightMedium: '#CFD8DC',\n medium: '#90A4AE',\n dark: '#546E7A',\n extraDark: '#323232'\n },\n text: {\n primary: '#06265B'\n },\n background: {},\n cta: '#0061FF',\n negative: '#F73F52',\n positive: '#3EC483',\n white: '#FFFFFF',\n black: '#14171A',\n battle: '#FFDE03',\n notification: '#FF7043',\n salmon: '#FDE2E5'\n },\n spacing: {\n micro: 4,\n tiny: 8,\n small: 16,\n base: 24,\n medium: 32,\n large: 48,\n xlarge: 64\n },\n radius: {\n common: 3,\n card: 5,\n regular: 8,\n medium: 12,\n search: 24,\n button: 32,\n thumbnail: 1000\n },\n fontWeight: {\n regular: '400',\n semiBold: '500',\n bold: '700',\n extraBold: '900'\n },\n fontSize: {\n extraSmall: 10,\n small: 12,\n medium: 13,\n regular: 15,\n large: 17,\n xlarge: 22,\n xxlarge: 28,\n xxxlarge: 40\n },\n letterSpacing: {\n header: 5\n }\n};\n\nexport default defaultTheme;\n"],"file":"theme.native.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "10.22.
|
|
3
|
+
"version": "10.22.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"Soualmi Djamel <djamel.soualmi@coorpacademy.com>"
|
|
52
52
|
],
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@coorpacademy/nova-icons": "3.11.
|
|
54
|
+
"@coorpacademy/nova-icons": "3.11.8",
|
|
55
55
|
"@types/react": "^17.0.47",
|
|
56
56
|
"@types/react-dom": "^17.0.17",
|
|
57
57
|
"autoprefixer": "^9.8.0",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"@babel/types": "^7.9.6",
|
|
97
97
|
"@coorpacademy/css-modules-require-hook": "2.1.5",
|
|
98
98
|
"@coorpacademy/eslint-plugin-coorpacademy": "^10.0.0",
|
|
99
|
-
"@coorpacademy/react-native-mock-render": "^0.
|
|
99
|
+
"@coorpacademy/react-native-mock-render": "^0.2.3",
|
|
100
100
|
"@coorpacademy/translate": "6.1.5",
|
|
101
101
|
"@coorpacademy/webpack-config": "10.0.4",
|
|
102
102
|
"@storybook/addon-knobs": "^5.3.18",
|
|
@@ -126,6 +126,8 @@
|
|
|
126
126
|
"react": "^17.0.2",
|
|
127
127
|
"react-dom": "^17.0.2",
|
|
128
128
|
"react-native": "^0.68.2",
|
|
129
|
+
"react-native-modal": "11.5.6",
|
|
130
|
+
"react-native-render-html": "^6.3.4",
|
|
129
131
|
"rxjs": "^6.5.5",
|
|
130
132
|
"style-loader": "^1.2.1",
|
|
131
133
|
"stylelint-config-standard": "^20.0.0",
|
|
@@ -134,5 +136,5 @@
|
|
|
134
136
|
"webpack": "^4.43.0"
|
|
135
137
|
},
|
|
136
138
|
"author": "CoorpAcademy",
|
|
137
|
-
"gitHead": "
|
|
139
|
+
"gitHead": "6a95baa03c98973afdd8d95d1b6959b21c7bb8ee"
|
|
138
140
|
}
|