@coorpacademy/components 10.22.4 → 10.22.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +11 -5
  2. package/es/atom/choice/index.native.js +132 -0
  3. package/es/atom/choice/index.native.js.map +1 -0
  4. package/es/atom/gradient/index.native.js +46 -0
  5. package/es/atom/gradient/index.native.js.map +1 -0
  6. package/es/atom/html/index.native.js +9 -16
  7. package/es/atom/html/index.native.js.map +1 -1
  8. package/es/atom/image-background/index.native.js +90 -0
  9. package/es/atom/image-background/index.native.js.map +1 -0
  10. package/es/atom/input-switch/index.js +43 -6
  11. package/es/atom/input-switch/index.js.map +1 -1
  12. package/es/atom/input-switch/style.css +56 -6
  13. package/es/atom/select-modal/index.native.js +6 -6
  14. package/es/atom/select-modal/index.native.js.map +1 -1
  15. package/es/atom/text/index.native.js +3 -1
  16. package/es/atom/text/index.native.js.map +1 -1
  17. package/es/hoc/modal/select/index.native.js +4 -3
  18. package/es/hoc/modal/select/index.native.js.map +1 -1
  19. package/es/molecule/answer/index.js +39 -32
  20. package/es/molecule/answer/index.js.map +1 -1
  21. package/es/molecule/cm-popin/index.js +101 -14
  22. package/es/molecule/cm-popin/index.js.map +1 -1
  23. package/es/molecule/cm-popin/style.css +153 -9
  24. package/es/molecule/questions/free-text/index.native.js +8 -8
  25. package/es/molecule/questions/free-text/index.native.js.map +1 -1
  26. package/es/molecule/questions/mobile/template/index.native.js +222 -0
  27. package/es/molecule/questions/mobile/template/index.native.js.map +1 -0
  28. package/es/template/app-review/template-context.js +1 -0
  29. package/es/template/app-review/template-context.js.map +1 -1
  30. package/es/template/common/dashboard/index.js +6 -3
  31. package/es/template/common/dashboard/index.js.map +1 -1
  32. package/es/types/app-review.d.js +2 -0
  33. package/es/types/app-review.d.js.map +1 -0
  34. package/es/types/translations.js +2 -0
  35. package/es/types/translations.js.map +1 -0
  36. package/es/util/build-query-string.js +9 -0
  37. package/es/util/build-query-string.js.map +1 -0
  38. package/es/util/get-clean-uri.js +4 -0
  39. package/es/util/get-clean-uri.js.map +1 -0
  40. package/es/util/get-resized-image.js +39 -0
  41. package/es/util/get-resized-image.js.map +1 -0
  42. package/es/util/parse-template-string.js +4 -2
  43. package/es/util/parse-template-string.js.map +1 -1
  44. package/es/variables/colors.css +1 -0
  45. package/es/variables/theme.native.js.map +1 -1
  46. package/lib/atom/choice/index.native.js +150 -0
  47. package/lib/atom/choice/index.native.js.map +1 -0
  48. package/lib/atom/gradient/index.native.js +56 -0
  49. package/lib/atom/gradient/index.native.js.map +1 -0
  50. package/lib/atom/html/index.native.js +8 -15
  51. package/lib/atom/html/index.native.js.map +1 -1
  52. package/lib/atom/image-background/index.native.js +105 -0
  53. package/lib/atom/image-background/index.native.js.map +1 -0
  54. package/lib/atom/input-switch/index.js +43 -6
  55. package/lib/atom/input-switch/index.js.map +1 -1
  56. package/lib/atom/input-switch/style.css +56 -6
  57. package/lib/atom/select-modal/index.native.js +5 -5
  58. package/lib/atom/select-modal/index.native.js.map +1 -1
  59. package/lib/atom/text/index.native.js +3 -1
  60. package/lib/atom/text/index.native.js.map +1 -1
  61. package/lib/hoc/modal/select/index.native.js +7 -5
  62. package/lib/hoc/modal/select/index.native.js.map +1 -1
  63. package/lib/molecule/answer/index.js +39 -32
  64. package/lib/molecule/answer/index.js.map +1 -1
  65. package/lib/molecule/cm-popin/index.js +102 -13
  66. package/lib/molecule/cm-popin/index.js.map +1 -1
  67. package/lib/molecule/cm-popin/style.css +153 -9
  68. package/lib/molecule/questions/free-text/index.native.js +7 -7
  69. package/lib/molecule/questions/free-text/index.native.js.map +1 -1
  70. package/lib/molecule/questions/mobile/template/index.native.js +243 -0
  71. package/lib/molecule/questions/mobile/template/index.native.js.map +1 -0
  72. package/lib/template/app-review/template-context.js +1 -0
  73. package/lib/template/app-review/template-context.js.map +1 -1
  74. package/lib/template/common/dashboard/index.js +7 -3
  75. package/lib/template/common/dashboard/index.js.map +1 -1
  76. package/lib/types/app-review.d.js +2 -0
  77. package/lib/types/app-review.d.js.map +1 -0
  78. package/lib/types/translations.js +2 -0
  79. package/lib/types/translations.js.map +1 -0
  80. package/lib/util/build-query-string.js +17 -0
  81. package/lib/util/build-query-string.js.map +1 -0
  82. package/lib/util/get-clean-uri.js +10 -0
  83. package/lib/util/get-clean-uri.js.map +1 -0
  84. package/lib/util/get-resized-image.js +49 -0
  85. package/lib/util/get-resized-image.js.map +1 -0
  86. package/lib/util/parse-template-string.js +4 -2
  87. package/lib/util/parse-template-string.js.map +1 -1
  88. package/lib/variables/colors.css +1 -0
  89. package/lib/variables/theme.native.js.map +1 -1
  90. package/package.json +5 -3
@@ -8,11 +8,10 @@
8
8
  @value cm_grey_200 from colors;
9
9
  @value black from colors;
10
10
  @value cm_primary_blue from colors;
11
+ @value light_blue from colors;
11
12
 
12
13
  .default {
13
14
  display: flex;
14
- align-items: center;
15
- align-content: center;
16
15
  }
17
16
 
18
17
  .modified {
@@ -27,6 +26,10 @@
27
26
  composes: modified;
28
27
  }
29
28
 
29
+ .partielUncheck {
30
+ composes: coorpmanager;
31
+ }
32
+
30
33
  .default label {
31
34
  height: 30px;
32
35
  position: relative;
@@ -97,12 +100,11 @@
97
100
  font-size: 15px;
98
101
  text-transform: none;
99
102
  color: dark;
100
- width: 180px;
101
103
  margin-right: 20px;
102
- min-height: 50px;
103
104
  display: flex;
104
105
  align-items: center;
105
106
  align-content: center;
107
+ min-height: 24px;
106
108
  }
107
109
 
108
110
  .description {
@@ -118,7 +120,7 @@
118
120
  width: 48px;
119
121
  height: 24px;
120
122
  border: solid 2px cm_grey_200;
121
- margin-right: 8px;
123
+ margin-right: 16px;
122
124
  background: cm_grey_200;
123
125
  }
124
126
 
@@ -148,4 +150,52 @@
148
150
 
149
151
  .coorpmanager .checkbox:disabled ~ label::after {
150
152
  background: white;
151
- }
153
+ }
154
+
155
+ .partielUncheck label::after {
156
+ width: 19px;
157
+ height: 19px;
158
+ border: 3px solid cm_primary_blue;
159
+ margin-left: 8px;
160
+ }
161
+ .partielUncheck label {
162
+ width: 50px;
163
+ height: 26px;
164
+ background: light_blue;
165
+ border: 0px;
166
+ }
167
+ .partielUncheck .checkbox:checked ~ label {
168
+ background-color: cm_primary_blue;
169
+ border: 0px;
170
+ width: 50px;
171
+ height: 26px;
172
+ }
173
+
174
+ .partielUncheck .checkbox:checked ~ label::after {
175
+ margin-left: 0px;
176
+ }
177
+
178
+ .btnSwitchContainer {
179
+ display: flex;
180
+ align-items: center;
181
+ }
182
+ .alignedTextContainer {
183
+ display: flex;
184
+ align-items: center;
185
+ align-content: center;
186
+ }
187
+ .detailsTxt {
188
+ font-family: Gilroy;
189
+ font-weight: 500;
190
+ font-size: 14px;
191
+ line-height: 22px;
192
+ color: black;
193
+ font-style: normal;
194
+ white-space: pre-line;
195
+ margin-right: 24px;
196
+ }
197
+ .requiredSelection label, .requiredSelection .checkbox:disabled ~ label {
198
+ background-color: cm_primary_blue;
199
+ border-color: cm_primary_blue;
200
+ opacity: 0.4;
201
+ }
@@ -1,4 +1,4 @@
1
- import React, { useState, useEffect, useMemo } from 'react';
1
+ import React, { useState, useEffect, useCallback } from 'react';
2
2
  import { View, StyleSheet } from 'react-native';
3
3
  import { NovaCompositionNavigationArrowDown as ArrowDown } from '@coorpacademy/nova-icons';
4
4
  import Modal from 'react-native-modal';
@@ -57,20 +57,20 @@ const Select = props => {
57
57
  isDisabled = false,
58
58
  testID = 'select'
59
59
  } = props;
60
- const handleFocus = useMemo(() => () => {
60
+ const handleFocus = useCallback(() => {
61
61
  if (!onFocus) return;
62
62
  analytics && logEvent(ANALYTICS_EVENT_TYPE.OPEN_SELECT, analyticsID, analytics, questionType);
63
63
  onFocus();
64
64
  }, [analytics, analyticsID, onFocus, questionType]);
65
- const handleBlur = useMemo(() => () => {
65
+ const handleBlur = useCallback(() => {
66
66
  if (!onBlur) return;
67
67
  analytics && logEvent(ANALYTICS_EVENT_TYPE.CLOSE_SELECT, analyticsID, analytics, questionType);
68
68
  onBlur();
69
69
  }, [analytics, analyticsID, onBlur, questionType]);
70
- const handleChange = useMemo(() => () => {
71
- onChange(value);
70
+ const handleChange = useCallback(_value => {
71
+ onChange(_value);
72
72
  handleBlur();
73
- }, [value, onChange, handleBlur]);
73
+ }, [onChange, handleBlur]);
74
74
 
75
75
  if (!styleSheet) {
76
76
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/select-modal/index.native.tsx"],"names":["React","useState","useEffect","useMemo","View","StyleSheet","NovaCompositionNavigationArrowDown","ArrowDown","Modal","Touchable","ANALYTICS_EVENT_TYPE","Space","Text","ModalSelect","useTemplateContext","ICON_WIDTH","createStyleSheet","theme","create","container","alignItems","flexDirection","text","flex","color","colors","gray","medium","textAlign","logEvent","eventName","analyticsID","analytics","questionType","id","Select","props","templateContext","styleSheet","setStylesheet","_stylesheet","onBlur","onFocus","onChange","values","placeholder","value","style","textStyle","isFocused","isDisabled","testID","handleFocus","OPEN_SELECT","handleBlur","CLOSE_SELECT","handleChange","selectedItem","find","item","dark"],"mappings":"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","sourcesContent":["import React, {useState, useEffect, useMemo} from 'react';\nimport {View, StyleSheet, ViewStyle, TextStyle, FlexAlignType, FlexStyle} from 'react-native';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport Modal from 'react-native-modal';\nimport Touchable from '../../hoc/touchable/index.native';\nimport type {QuestionType} from '../../types/progression-engine';\nimport {Theme} from '../../variables/theme.native';\n\nimport {ANALYTICS_EVENT_TYPE, Analytics} from '../../variables/analytics';\nimport Space from '../space/index.native';\nimport Text from '../text/index.native';\nimport ModalSelect, {OnChangeFunction} from '../../hoc/modal/select/index.native';\nimport type {Props as ModalSelectProps} from '../../hoc/modal/select/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\n\nexport type Props = {\n analyticsID: string;\n questionType: QuestionType;\n isDisabled?: boolean;\n isFocused?: boolean;\n values: Pick<ModalSelectProps, 'values'>;\n value?: Pick<ModalSelectProps, 'value'>;\n placeholder?: string;\n color?: string;\n onChange: OnChangeFunction;\n onFocus: () => void;\n onBlur: () => void;\n style?: ViewStyle;\n textStyle?: ViewStyle;\n testID?: string;\n};\n\ntype StyleSheetType = {\n container: {\n alignItems: FlexAlignType;\n flexDirection: 'row' | 'column' | 'row-reverse' | 'column-reverse' | undefined;\n };\n text: {\n flex: number;\n color: string;\n textAlign: string;\n };\n};\n\nconst ICON_WIDTH = 15;\n\nconst createStyleSheet = (theme: Theme) =>\n StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row'\n },\n text: {\n flex: 1,\n color: theme.colors.gray.medium,\n textAlign: 'center'\n }\n });\n\nconst logEvent = (\n eventName: string,\n analyticsID: String,\n analytics: Analytics,\n questionType: QuestionType\n) => {\n analytics &&\n analytics.logEvent(eventName, {\n id: analyticsID,\n questionType\n });\n};\n\nconst Select = (props: Props) => {\n const templateContext = useTemplateContext();\n const {theme, analytics} = templateContext;\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n const {\n analyticsID,\n onBlur,\n onFocus,\n onChange,\n values,\n placeholder,\n value,\n style,\n textStyle,\n color,\n questionType,\n isFocused = false,\n isDisabled = false,\n testID = 'select'\n } = props;\n\n const handleFocus = useMemo(\n () => () => {\n if (!onFocus) return;\n\n analytics && logEvent(ANALYTICS_EVENT_TYPE.OPEN_SELECT, analyticsID, analytics, questionType);\n onFocus();\n },\n [analytics, analyticsID, onFocus, questionType]\n );\n\n const handleBlur = useMemo(\n () => () => {\n if (!onBlur) return;\n\n analytics &&\n logEvent(ANALYTICS_EVENT_TYPE.CLOSE_SELECT, analyticsID, analytics, questionType);\n onBlur();\n },\n [analytics, analyticsID, onBlur, questionType]\n );\n\n const handleChange = useMemo(\n () => () => {\n onChange(value);\n handleBlur();\n },\n [value, onChange, handleBlur]\n );\n\n if (!styleSheet) {\n return null;\n }\n\n const selectedItem = values.find(item => item.text === value);\n const text = (selectedItem && selectedItem.text) || placeholder || null;\n\n return (\n <>\n <Touchable\n disabled={isDisabled}\n onPress={handleFocus}\n analyticsID={analyticsID}\n testID={`${testID}-input`}\n >\n <View style={[styleSheet.container, style]}>\n <Text style={[styleSheet.text, textStyle, color && {color}]}>{text}</Text>\n <Space type=\"tiny\" />\n <ArrowDown\n color={color || theme.colors.gray.dark}\n height={ICON_WIDTH}\n width={ICON_WIDTH}\n />\n </View>\n </Touchable>\n <Modal\n isVisible={isFocused}\n onSwipeComplete={handleBlur}\n onBackdropPress={handleBlur}\n testID={testID}\n >\n <ModalSelect\n value={value}\n values={values}\n onChange={handleChange}\n onClose={handleBlur}\n testID={`${testID}-modal`}\n />\n </Modal>\n </>\n );\n};\n\nexport default Select;\n"],"file":"index.native.js"}
1
+ {"version":3,"sources":["../../../src/atom/select-modal/index.native.tsx"],"names":["React","useState","useEffect","useCallback","View","StyleSheet","NovaCompositionNavigationArrowDown","ArrowDown","Modal","Touchable","ANALYTICS_EVENT_TYPE","Space","Text","ModalSelect","useTemplateContext","ICON_WIDTH","createStyleSheet","theme","create","container","alignItems","flexDirection","text","flex","color","colors","gray","medium","textAlign","logEvent","eventName","analyticsID","analytics","questionType","id","Select","props","templateContext","styleSheet","setStylesheet","_stylesheet","onBlur","onFocus","onChange","values","placeholder","value","style","textStyle","isFocused","isDisabled","testID","handleFocus","OPEN_SELECT","handleBlur","CLOSE_SELECT","handleChange","_value","selectedItem","find","item","dark"],"mappings":"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","sourcesContent":["import React, {useState, useEffect, useCallback} from 'react';\nimport {View, StyleSheet, ViewStyle, FlexAlignType} from 'react-native';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport Modal from 'react-native-modal';\nimport Touchable from '../../hoc/touchable/index.native';\nimport type {ChoiceItem, QuestionType} from '../../types/progression-engine.d';\nimport {Theme} from '../../variables/theme.native';\n\nimport {ANALYTICS_EVENT_TYPE, Analytics} from '../../variables/analytics';\nimport Space from '../space/index.native';\nimport Text from '../text/index.native';\nimport ModalSelect, {OnChangeFunction} from '../../hoc/modal/select/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\n\nexport type Props = {\n analyticsID: string;\n questionType: QuestionType;\n isDisabled?: boolean;\n isFocused?: boolean;\n values: Array<ChoiceItem>;\n value?: string;\n placeholder?: string;\n color?: string;\n onChange: OnChangeFunction;\n onFocus: () => void;\n onBlur: () => void;\n style?: ViewStyle;\n textStyle?: ViewStyle;\n testID?: string;\n};\n\ntype StyleSheetType = {\n container: {\n alignItems: FlexAlignType;\n flexDirection: 'row' | 'column' | 'row-reverse' | 'column-reverse' | undefined;\n };\n text: {\n flex: number;\n color: string;\n textAlign: string;\n };\n};\n\nconst ICON_WIDTH = 15;\n\nconst createStyleSheet = (theme: Theme) =>\n StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row'\n },\n text: {\n flex: 1,\n color: theme.colors.gray.medium,\n textAlign: 'center'\n }\n });\n\nconst logEvent = (\n eventName: string,\n analyticsID: String,\n analytics: Analytics,\n questionType: QuestionType\n) => {\n analytics &&\n analytics.logEvent(eventName, {\n id: analyticsID,\n questionType\n });\n};\n\nconst Select = (props: Props) => {\n const templateContext = useTemplateContext();\n const {theme, analytics} = templateContext;\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n const {\n analyticsID,\n onBlur,\n onFocus,\n onChange,\n values,\n placeholder,\n value,\n style,\n textStyle,\n color,\n questionType,\n isFocused = false,\n isDisabled = false,\n testID = 'select'\n } = props;\n\n const handleFocus = useCallback(() => {\n if (!onFocus) return;\n\n analytics && logEvent(ANALYTICS_EVENT_TYPE.OPEN_SELECT, analyticsID, analytics, questionType);\n onFocus();\n }, [analytics, analyticsID, onFocus, questionType]);\n\n const handleBlur = useCallback(() => {\n if (!onBlur) return;\n\n analytics && logEvent(ANALYTICS_EVENT_TYPE.CLOSE_SELECT, analyticsID, analytics, questionType);\n onBlur();\n }, [analytics, analyticsID, onBlur, questionType]);\n\n const handleChange = useCallback(\n _value => {\n onChange(_value);\n handleBlur();\n },\n [onChange, handleBlur]\n );\n\n if (!styleSheet) {\n return null;\n }\n\n const selectedItem = values.find(item => item.text === value);\n const text = (selectedItem && selectedItem.text) || placeholder || null;\n\n return (\n <>\n <Touchable\n disabled={isDisabled}\n onPress={handleFocus}\n analyticsID={analyticsID}\n testID={`${testID}-input`}\n >\n <View style={[styleSheet.container, style]}>\n <Text style={[styleSheet.text, textStyle, color && {color}]}>{text}</Text>\n <Space type=\"tiny\" />\n <ArrowDown\n color={color || theme.colors.gray.dark}\n height={ICON_WIDTH}\n width={ICON_WIDTH}\n />\n </View>\n </Touchable>\n <Modal\n isVisible={isFocused}\n onSwipeComplete={handleBlur}\n onBackdropPress={handleBlur}\n testID={testID}\n >\n <ModalSelect\n value={value}\n values={values}\n onChange={handleChange}\n onClose={handleBlur}\n testID={`${testID}-modal`}\n />\n </Modal>\n </>\n );\n};\n\nexport default Select;\n"],"file":"index.native.js"}
@@ -16,9 +16,11 @@ const Text = props => {
16
16
  children,
17
17
  style,
18
18
  testID,
19
- numberOfLines
19
+ numberOfLines,
20
+ allowFontScaling = true
20
21
  } = props;
21
22
  return /*#__PURE__*/React.createElement(TextBase, {
23
+ allowFontScaling: allowFontScaling,
22
24
  style: [styles.text, style],
23
25
  testID: testID,
24
26
  numberOfLines: numberOfLines
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/text/index.native.tsx"],"names":["React","Text","TextBase","Platform","StyleSheet","DEFAULT_STYLE","select","android","fontFamily","styles","create","text","props","children","style","testID","numberOfLines"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAAQC,IAAI,IAAIC,QAAhB,EAA0BC,QAA1B,EAAoCC,UAApC,QAAgE,cAAhE;AAUA,OAAO,MAAMC,aAAa,gBACrBF,QAAQ,CAACG,MAAT,CAAgB;AACjBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,UAAU,EAAE;AADL;AADQ,CAAhB,CADqB,CAAnB;AAQP,MAAMC,MAAM,GAAGL,UAAU,CAACM,MAAX,CAAkB;AAC/BC,EAAAA,IAAI,eACCN,aADD;AAD2B,CAAlB,CAAf;;AAMA,MAAMJ,IAAI,GAAIW,KAAD,IAAkB;AAC7B,QAAM;AAACC,IAAAA,QAAD;AAAWC,IAAAA,KAAX;AAAkBC,IAAAA,MAAlB;AAA0BC,IAAAA;AAA1B,MAA2CJ,KAAjD;AAEA,sBACE,oBAAC,QAAD;AAAU,IAAA,KAAK,EAAE,CAACH,MAAM,CAACE,IAAR,EAAcG,KAAd,CAAjB;AAAuC,IAAA,MAAM,EAAEC,MAA/C;AAAuD,IAAA,aAAa,EAAEC;AAAtE,KACGH,QADH,CADF;AAKD,CARD;;AAUA,eAAeZ,IAAf","sourcesContent":["import * as React from 'react';\nimport {Text as TextBase, Platform, StyleSheet, ViewStyle} from 'react-native';\n\nexport type Props = {\n // copied from node_modules/react-native/Libraries/Text/TextProps.js\n children: React.ReactNode;\n style?: ViewStyle | ViewStyle[];\n testID?: string;\n numberOfLines?: number;\n};\n\nexport const DEFAULT_STYLE = {\n ...Platform.select({\n android: {\n fontFamily: 'Roboto'\n }\n })\n};\n\nconst styles = StyleSheet.create({\n text: {\n ...DEFAULT_STYLE\n }\n});\n\nconst Text = (props: Props) => {\n const {children, style, testID, numberOfLines} = props;\n\n return (\n <TextBase style={[styles.text, style]} testID={testID} numberOfLines={numberOfLines}>\n {children}\n </TextBase>\n );\n};\n\nexport default Text;\n"],"file":"index.native.js"}
1
+ {"version":3,"sources":["../../../src/atom/text/index.native.tsx"],"names":["React","Text","TextBase","Platform","StyleSheet","DEFAULT_STYLE","select","android","fontFamily","styles","create","text","props","children","style","testID","numberOfLines","allowFontScaling"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAAQC,IAAI,IAAIC,QAAhB,EAA0BC,QAA1B,EAAoCC,UAApC,QAAgE,cAAhE;AAWA,OAAO,MAAMC,aAAa,gBACrBF,QAAQ,CAACG,MAAT,CAAgB;AACjBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,UAAU,EAAE;AADL;AADQ,CAAhB,CADqB,CAAnB;AAQP,MAAMC,MAAM,GAAGL,UAAU,CAACM,MAAX,CAAkB;AAC/BC,EAAAA,IAAI,eACCN,aADD;AAD2B,CAAlB,CAAf;;AAMA,MAAMJ,IAAI,GAAIW,KAAD,IAAkB;AAC7B,QAAM;AAACC,IAAAA,QAAD;AAAWC,IAAAA,KAAX;AAAkBC,IAAAA,MAAlB;AAA0BC,IAAAA,aAA1B;AAAyCC,IAAAA,gBAAgB,GAAG;AAA5D,MAAoEL,KAA1E;AAEA,sBACE,oBAAC,QAAD;AACE,IAAA,gBAAgB,EAAEK,gBADpB;AAEE,IAAA,KAAK,EAAE,CAACR,MAAM,CAACE,IAAR,EAAcG,KAAd,CAFT;AAGE,IAAA,MAAM,EAAEC,MAHV;AAIE,IAAA,aAAa,EAAEC;AAJjB,KAMGH,QANH,CADF;AAUD,CAbD;;AAeA,eAAeZ,IAAf","sourcesContent":["import * as React from 'react';\nimport {Text as TextBase, Platform, StyleSheet, ViewStyle} from 'react-native';\n\nexport type Props = {\n // copied from node_modules/react-native/Libraries/Text/TextProps.js\n children: React.ReactNode;\n style?: ViewStyle | ViewStyle[];\n testID?: string;\n numberOfLines?: number;\n allowFontScaling?: boolean;\n};\n\nexport const DEFAULT_STYLE = {\n ...Platform.select({\n android: {\n fontFamily: 'Roboto'\n }\n })\n};\n\nconst styles = StyleSheet.create({\n text: {\n ...DEFAULT_STYLE\n }\n});\n\nconst Text = (props: Props) => {\n const {children, style, testID, numberOfLines, allowFontScaling = true} = props;\n\n return (\n <TextBase\n allowFontScaling={allowFontScaling}\n style={[styles.text, style]}\n testID={testID}\n numberOfLines={numberOfLines}\n >\n {children}\n </TextBase>\n );\n};\n\nexport default Text;\n"],"file":"index.native.js"}
@@ -1,3 +1,4 @@
1
+ import _noop from "lodash/fp/noop";
1
2
  import React, { useState, useEffect, useMemo } from 'react';
2
3
  import { View, FlatList, StyleSheet } from 'react-native';
3
4
  import { useTemplateContext } from '../../../template/app-review/template-context';
@@ -48,10 +49,10 @@ const ModalSelect = props => {
48
49
  theme
49
50
  } = templateContext;
50
51
  const {
51
- value,
52
+ value = '',
52
53
  values,
53
54
  onChange,
54
- onClose,
55
+ onClose = _noop,
55
56
  testID = 'modal-select'
56
57
  } = props;
57
58
  useEffect(() => {
@@ -60,7 +61,7 @@ const ModalSelect = props => {
60
61
  setStylesheet(_stylesheet);
61
62
  }, [theme]);
62
63
  const renderItem = useMemo(() => createRenderItem(value, testID, onChange), [value, testID, onChange]);
63
- const renderSeparator = useMemo(() => createSeparator(styleSheet), [styleSheet]);
64
+ const renderSeparator = useMemo(() => styleSheet ? createSeparator(styleSheet) : null, [styleSheet]);
64
65
 
65
66
  if (!styleSheet) {
66
67
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/hoc/modal/select/index.native.tsx"],"names":["React","useState","useEffect","useMemo","View","FlatList","StyleSheet","useTemplateContext","Modal","ModalSelectItem","createStyleSheet","theme","create","content","paddingHorizontal","separator","borderTopWidth","borderColor","colors","border","list","width","keyExtractor","item","index","createRenderItem","value","testID","onChange","handleChange","_value","text","createSeparator","styleSheet","ModalSelect","props","templateContext","setStylesheet","values","onClose","_stylesheet","renderItem","renderSeparator"],"mappings":"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","sourcesContent":["import React, {useState, useEffect, useMemo} from 'react';\nimport {View, FlatList, StyleSheet} from 'react-native';\nimport type {Choice} from '../../../types/progression-engine.d';\n\nimport {Theme} from '../../../variables/theme.native';\nimport {useTemplateContext} from '../../../template/app-review/template-context';\n\nimport Modal from '../index.native';\nimport ModalSelectItem from '../select-item/index.native';\n\ntype ChoiceValue = Pick<Choice, 'value'>;\ntype ChoiceItem = Pick<Choice, 'items'>;\nexport type OnChangeFunction = (value: ChoiceValue) => void;\n\nexport type Props = {\n value?: ChoiceValue;\n values: Array<ChoiceItem>;\n onChange: OnChangeFunction;\n onClose?: () => void;\n testID?: string;\n};\n\ntype StyleSheetType = {\n content: {\n paddingHorizontal: number;\n };\n separator: {\n borderTopWidth: number;\n borderColor: string;\n };\n list: {\n width: string;\n };\n};\n\nconst createStyleSheet = (theme: Theme) =>\n StyleSheet.create({\n content: {\n paddingHorizontal: 0\n },\n separator: {\n borderTopWidth: 1,\n borderColor: theme.colors.border\n },\n list: {\n width: '100%'\n }\n });\n\nconst keyExtractor = (item: ChoiceItem, index: number): string => {\n return `modal-select-item-${index + 1}`;\n};\n\nconst createRenderItem = (value: ChoiceValue, testID: String, onChange: OnChangeFunction) => ({\n item,\n index\n}: {\n item: ChoiceItem;\n index: number;\n}) => {\n // eslint-disable-next-line unicorn/consistent-function-scoping\n const handleChange = (_value: ChoiceValue | void) => () => onChange(_value);\n\n return (\n <ModalSelectItem\n onPress={handleChange(item.text)}\n isSelected={value === item.text}\n testID={`${testID}-item-${index + 1}`}\n >\n {item.text}\n </ModalSelectItem>\n );\n};\n\nconst createSeparator = (styleSheet: StyleSheetType) => () => {\n return <View style={styleSheet?.separator} />;\n};\n\nconst ModalSelect = (props: Props) => {\n const templateContext = useTemplateContext();\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n const {theme} = templateContext;\n const {value, values, onChange, onClose, testID = 'modal-select'} = props;\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n const renderItem = useMemo(() => createRenderItem(value, testID, onChange), [\n value,\n testID,\n onChange\n ]);\n const renderSeparator = useMemo(() => createSeparator(styleSheet), [styleSheet]);\n\n if (!styleSheet) {\n return null;\n }\n\n return (\n <Modal onClose={onClose} contentStyle={styleSheet?.content} testID={testID}>\n <FlatList\n data={values}\n renderItem={renderItem}\n keyExtractor={keyExtractor}\n showsVerticalScrollIndicator={false}\n ItemSeparatorComponent={renderSeparator}\n style={styleSheet?.list}\n testID={`${testID}-items`}\n />\n </Modal>\n );\n};\n\nexport default ModalSelect;\n"],"file":"index.native.js"}
1
+ {"version":3,"sources":["../../../../src/hoc/modal/select/index.native.tsx"],"names":["React","useState","useEffect","useMemo","View","FlatList","StyleSheet","useTemplateContext","Modal","ModalSelectItem","createStyleSheet","theme","create","content","paddingHorizontal","separator","borderTopWidth","borderColor","colors","border","list","width","keyExtractor","item","index","createRenderItem","value","testID","onChange","handleChange","_value","text","createSeparator","styleSheet","ModalSelect","props","templateContext","setStylesheet","values","onClose","_stylesheet","renderItem","renderSeparator"],"mappings":"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","sourcesContent":["import React, {useState, useEffect, useMemo} from 'react';\nimport {View, FlatList, StyleSheet} from 'react-native';\nimport {noop} from 'lodash/fp';\nimport type {PressEvent} from 'react-native/Libraries/Types/CoreEventTypes';\n\nimport type {ChoiceItem} from '../../../types/progression-engine.d';\nimport {Theme} from '../../../variables/theme.native';\nimport {useTemplateContext} from '../../../template/app-review/template-context';\n\nimport Modal from '../index.native';\nimport ModalSelectItem from '../select-item/index.native';\n\nexport type OnChangeFunction = (value: string) => void;\n\nexport type Props = {\n value?: string;\n values: Array<ChoiceItem>;\n onChange: OnChangeFunction;\n onClose?: (event: PressEvent) => void;\n testID?: string;\n};\n\ntype StyleSheetType = {\n content: {\n paddingHorizontal: number;\n };\n separator: {\n borderTopWidth: number;\n borderColor: string;\n };\n list: {\n width: string;\n };\n};\n\nconst createStyleSheet = (theme: Theme) =>\n StyleSheet.create({\n content: {\n paddingHorizontal: 0\n },\n separator: {\n borderTopWidth: 1,\n borderColor: theme.colors.border\n },\n list: {\n width: '100%'\n }\n });\n\nconst keyExtractor = (item: ChoiceItem, index: number): string => {\n return `modal-select-item-${index + 1}`;\n};\n\nconst createRenderItem = (value: string, testID: String, onChange: OnChangeFunction) => ({\n item,\n index\n}: {\n item: ChoiceItem;\n index: number;\n}) => {\n // eslint-disable-next-line unicorn/consistent-function-scoping\n const handleChange = (_value: string) => () => onChange(_value);\n\n return (\n <ModalSelectItem\n onPress={handleChange(item.text)}\n isSelected={value === item.text}\n testID={`${testID}-item-${index + 1}`}\n >\n {item.text}\n </ModalSelectItem>\n );\n};\n\nconst createSeparator = (styleSheet: StyleSheetType) => () => {\n return <View style={styleSheet?.separator} />;\n};\n\nconst ModalSelect = (props: Props) => {\n const templateContext = useTemplateContext();\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n const {theme} = templateContext;\n const {value = '', values, onChange, onClose = noop, testID = 'modal-select'} = props;\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n const renderItem = useMemo(() => createRenderItem(value, testID, onChange), [\n value,\n testID,\n onChange\n ]);\n\n const renderSeparator = useMemo(() => (styleSheet ? createSeparator(styleSheet) : null), [\n styleSheet\n ]);\n\n if (!styleSheet) {\n return null;\n }\n\n return (\n <Modal onClose={onClose} contentStyle={styleSheet?.content} testID={testID}>\n <FlatList\n data={values}\n renderItem={renderItem}\n keyExtractor={keyExtractor}\n showsVerticalScrollIndicator={false}\n ItemSeparatorComponent={renderSeparator}\n style={styleSheet?.list}\n testID={`${testID}-items`}\n />\n </Modal>\n );\n};\n\nexport default ModalSelect;\n"],"file":"index.native.js"}
@@ -59,53 +59,60 @@ const MediaView = ({
59
59
 
60
60
  MediaView.propTypes = process.env.NODE_ENV !== "production" ? MediaViewPropTypes : {};
61
61
 
62
- const Answer = props => {
62
+ const Switch = ({
63
+ model,
64
+ help
65
+ }) => {
63
66
  const {
64
- model,
65
- media,
66
- help
67
- } = props;
67
+ type
68
+ } = model;
68
69
 
69
- const buildAnswer = () => {
70
- // (propTypes model.type is properly defined)
71
- // eslint-disable-next-line react/prop-types
72
- const {
73
- type
74
- } = model;
70
+ switch (type) {
71
+ case 'qcmDrag':
72
+ return /*#__PURE__*/React.createElement(QcmDrag, _extends({}, model, {
73
+ help: help
74
+ }));
75
75
 
76
- switch (type) {
77
- case 'qcmDrag':
78
- return /*#__PURE__*/React.createElement(QcmDrag, _extends({}, model, {
79
- help: help
80
- }));
76
+ case 'qcm':
77
+ return /*#__PURE__*/React.createElement(Qcm, model);
81
78
 
82
- case 'qcm':
83
- return /*#__PURE__*/React.createElement(Qcm, model);
79
+ case 'qcmGraphic':
80
+ return /*#__PURE__*/React.createElement(QcmGraphic, model);
84
81
 
85
- case 'qcmGraphic':
86
- return /*#__PURE__*/React.createElement(QcmGraphic, model);
82
+ case 'freeText':
83
+ return /*#__PURE__*/React.createElement(FreeText, model);
87
84
 
88
- case 'freeText':
89
- return /*#__PURE__*/React.createElement(FreeText, model);
85
+ case 'dropDown':
86
+ return /*#__PURE__*/React.createElement(DropDown, model);
90
87
 
91
- case 'dropDown':
92
- return /*#__PURE__*/React.createElement(DropDown, model);
88
+ case 'slider':
89
+ return /*#__PURE__*/React.createElement(QuestionRange, model);
93
90
 
94
- case 'slider':
95
- return /*#__PURE__*/React.createElement(QuestionRange, model);
91
+ case 'template':
92
+ return /*#__PURE__*/React.createElement(Template, model);
93
+ }
94
+ };
96
95
 
97
- case 'template':
98
- return /*#__PURE__*/React.createElement(Template, model);
99
- }
100
- };
96
+ Switch.propTypes = process.env.NODE_ENV !== "production" ? {
97
+ model: propTypes.model,
98
+ help: propTypes.help
99
+ } : {};
101
100
 
102
- const answerView = buildAnswer(model);
101
+ const Answer = props => {
102
+ const {
103
+ model,
104
+ media,
105
+ help
106
+ } = props;
103
107
  return /*#__PURE__*/React.createElement("div", {
104
108
  "data-name": "answer",
105
109
  className: style.wrapper
106
110
  }, media ? /*#__PURE__*/React.createElement(MediaView, {
107
111
  media: media
108
- }) : null, answerView);
112
+ }) : null, /*#__PURE__*/React.createElement(Switch, {
113
+ model: model,
114
+ help: help
115
+ }));
109
116
  };
110
117
 
111
118
  Answer.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/answer/index.js"],"names":["React","VideoPlayer","DropDown","FreeText","QcmDrag","Qcm","QcmGraphic","QuestionRange","Template","Audio","style","propTypes","MediaViewPropTypes","TYPE_AUDIO","TYPE_IMAGE","TYPE_VIDEO","MediaView","media","videoId","type","childProps","backgroundImage","url","video","audio","Answer","props","model","help","buildAnswer","answerView","wrapper"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {omit} from 'lodash/fp';\nimport VideoPlayer from '../video-player';\nimport DropDown from '../questions/drop-down';\nimport FreeText from '../questions/free-text';\nimport QcmDrag from '../questions/qcm-drag';\nimport Qcm from '../questions/qcm';\nimport QcmGraphic from '../questions/qcm-graphic';\nimport QuestionRange from '../questions/question-range';\nimport Template from '../questions/template';\nimport Audio from '../audio';\nimport style from './style.css';\nimport propTypes, {MediaViewPropTypes, TYPE_AUDIO, TYPE_IMAGE, TYPE_VIDEO} from './prop-types';\n\nconst MediaView = ({media}) => {\n const {videoId, type, ...childProps} = media;\n switch (type) {\n case TYPE_IMAGE:\n return (\n <div\n className={style.media}\n style={{\n backgroundImage: `url(${media.url})`\n }}\n />\n );\n case TYPE_VIDEO:\n return (\n <div className={style.video}>\n <VideoPlayer {...omit('id', childProps)} id={videoId} height=\"100%\" width=\"100%\" />\n </div>\n );\n case TYPE_AUDIO:\n return (\n <div className={style.audio}>\n <Audio {...omit('id', childProps)} height=\"100%\" width=\"100%\" />\n </div>\n );\n default:\n return null;\n }\n};\n\nMediaView.propTypes = MediaViewPropTypes;\n\nconst Answer = props => {\n const {model, media, help} = props;\n const buildAnswer = () => {\n // (propTypes model.type is properly defined)\n // eslint-disable-next-line react/prop-types\n const {type} = model;\n\n switch (type) {\n case 'qcmDrag':\n return <QcmDrag {...model} help={help} />;\n case 'qcm':\n return <Qcm {...model} />;\n case 'qcmGraphic':\n return <QcmGraphic {...model} />;\n case 'freeText':\n return <FreeText {...model} />;\n case 'dropDown':\n return <DropDown {...model} />;\n case 'slider':\n return <QuestionRange {...model} />;\n case 'template':\n return <Template {...model} />;\n }\n };\n const answerView = buildAnswer(model);\n\n return (\n <div data-name=\"answer\" className={style.wrapper}>\n {media ? <MediaView media={media} /> : null}\n {answerView}\n </div>\n );\n};\n\nAnswer.propTypes = propTypes;\n\nexport default Answer;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/answer/index.js"],"names":["React","VideoPlayer","DropDown","FreeText","QcmDrag","Qcm","QcmGraphic","QuestionRange","Template","Audio","style","propTypes","MediaViewPropTypes","TYPE_AUDIO","TYPE_IMAGE","TYPE_VIDEO","MediaView","media","videoId","type","childProps","backgroundImage","url","video","audio","Switch","model","help","Answer","props","wrapper"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {omit} from 'lodash/fp';\nimport VideoPlayer from '../video-player';\nimport DropDown from '../questions/drop-down';\nimport FreeText from '../questions/free-text';\nimport QcmDrag from '../questions/qcm-drag';\nimport Qcm from '../questions/qcm';\nimport QcmGraphic from '../questions/qcm-graphic';\nimport QuestionRange from '../questions/question-range';\nimport Template from '../questions/template';\nimport Audio from '../audio';\nimport style from './style.css';\nimport propTypes, {MediaViewPropTypes, TYPE_AUDIO, TYPE_IMAGE, TYPE_VIDEO} from './prop-types';\n\nconst MediaView = ({media}) => {\n const {videoId, type, ...childProps} = media;\n switch (type) {\n case TYPE_IMAGE:\n return (\n <div\n className={style.media}\n style={{\n backgroundImage: `url(${media.url})`\n }}\n />\n );\n case TYPE_VIDEO:\n return (\n <div className={style.video}>\n <VideoPlayer {...omit('id', childProps)} id={videoId} height=\"100%\" width=\"100%\" />\n </div>\n );\n case TYPE_AUDIO:\n return (\n <div className={style.audio}>\n <Audio {...omit('id', childProps)} height=\"100%\" width=\"100%\" />\n </div>\n );\n default:\n return null;\n }\n};\n\nMediaView.propTypes = MediaViewPropTypes;\n\nconst Switch = ({model, help}) => {\n const {type} = model;\n\n switch (type) {\n case 'qcmDrag':\n return <QcmDrag {...model} help={help} />;\n case 'qcm':\n return <Qcm {...model} />;\n case 'qcmGraphic':\n return <QcmGraphic {...model} />;\n case 'freeText':\n return <FreeText {...model} />;\n case 'dropDown':\n return <DropDown {...model} />;\n case 'slider':\n return <QuestionRange {...model} />;\n case 'template':\n return <Template {...model} />;\n }\n};\n\nSwitch.propTypes = {\n model: propTypes.model,\n help: propTypes.help\n};\n\nconst Answer = props => {\n const {model, media, help} = props;\n\n return (\n <div data-name=\"answer\" className={style.wrapper}>\n {media ? <MediaView media={media} /> : null}\n <Switch model={model} help={help} />\n </div>\n );\n};\n\nAnswer.propTypes = propTypes;\n\nexport default Answer;\n"],"file":"index.js"}
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond, NovaSolidApplicationsWindowUpload3 as WindowUpload } from '@coorpacademy/nova-icons';
3
+ import { NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond, NovaSolidApplicationsWindowUpload3 as WindowUpload, NovaLineSettingsCookie as Cookie } from '@coorpacademy/nova-icons';
4
+ import map from 'lodash/fp/map';
4
5
  import Cta from '../../atom/button-link';
5
6
  import ButtonLinkIconOnly from '../../atom/button-link-icon-only';
7
+ import InputSwitch from '../../atom/input-switch';
6
8
  import style from './style.css';
7
9
 
8
10
  const CMPopin = props => {
@@ -15,7 +17,11 @@ const CMPopin = props => {
15
17
  header,
16
18
  icon,
17
19
  backgroundImageUrl,
18
- descriptionText
20
+ descriptionText,
21
+ thirdButton,
22
+ cookieTitle,
23
+ descriptionBtnTxt,
24
+ listBtnSwicth
19
25
  } = props;
20
26
  const logo = {
21
27
  AlertDiamond,
@@ -26,18 +32,78 @@ const CMPopin = props => {
26
32
  backgroundImage: `url(${backgroundImageUrl})`,
27
33
  backgroundSize: 'cover'
28
34
  } : null;
35
+
36
+ const renderHeader = () => {
37
+ if (header) return /*#__PURE__*/React.createElement("img", {
38
+ className: style.headerBackground,
39
+ src: header
40
+ });
41
+ if (mode === 'cookie') return /*#__PURE__*/React.createElement("div", {
42
+ className: style.cookieHeader
43
+ }, /*#__PURE__*/React.createElement("div", {
44
+ className: style.cookieIconContainer
45
+ }, /*#__PURE__*/React.createElement(Cookie, {
46
+ className: style.cookieIcon
47
+ })), /*#__PURE__*/React.createElement("div", {
48
+ className: style.cookieTitle
49
+ }, cookieTitle));
50
+ return null;
51
+ };
52
+
53
+ const getClassBtnSwitch = (index, btnList) => {
54
+ switch (index) {
55
+ case 0:
56
+ return style.firstBtnSwitchContainer;
57
+
58
+ case btnList.length - 1:
59
+ return style.lastBtnSwitchContainer;
60
+
61
+ default:
62
+ return style.singleSwitchContainer;
63
+ }
64
+ };
65
+
66
+ const renderBtnSwitch = () => {
67
+ return map.convert({
68
+ cap: false
69
+ })((el, index) => {
70
+ const {
71
+ type,
72
+ title,
73
+ value,
74
+ onChange,
75
+ titlePosition,
76
+ theme,
77
+ details,
78
+ requiredSelection,
79
+ disabled
80
+ } = el;
81
+ return /*#__PURE__*/React.createElement("div", {
82
+ key: index,
83
+ className: getClassBtnSwitch(index, listBtnSwicth)
84
+ }, /*#__PURE__*/React.createElement(InputSwitch, {
85
+ type,
86
+ title,
87
+ value,
88
+ onChange,
89
+ titlePosition,
90
+ theme,
91
+ details,
92
+ requiredSelection,
93
+ disabled
94
+ }));
95
+ })(listBtnSwicth);
96
+ };
97
+
29
98
  return /*#__PURE__*/React.createElement("div", {
30
- className: style.background,
99
+ className: mode !== 'cookie' ? style.background : null,
31
100
  style: backgroundImageStyle,
32
101
  "data-name": 'cm-popin-container'
33
102
  }, /*#__PURE__*/React.createElement("div", {
34
- className: style.popin
103
+ className: mode === 'cookie' ? style.popinCookie : style.popin
35
104
  }, /*#__PURE__*/React.createElement("header", {
36
105
  className: style.popinHeader
37
- }, header ? /*#__PURE__*/React.createElement("img", {
38
- className: style.headerBackground,
39
- src: header
40
- }) : null, onClose ? /*#__PURE__*/React.createElement(ButtonLinkIconOnly, {
106
+ }, renderHeader(), onClose ? /*#__PURE__*/React.createElement(ButtonLinkIconOnly, {
41
107
  onClick: onClose,
42
108
  "data-name": 'close-icon',
43
109
  "aria-label": 'close-icon',
@@ -62,10 +128,12 @@ const CMPopin = props => {
62
128
  dangerouslySetInnerHTML: {
63
129
  __html: descriptionText
64
130
  }
65
- }) : null), /*#__PURE__*/React.createElement("div", {
131
+ }) : null), descriptionBtnTxt ? /*#__PURE__*/React.createElement("div", {
132
+ className: style.descriptionBtn
133
+ }, descriptionBtnTxt) : null, renderBtnSwitch(), /*#__PURE__*/React.createElement("div", {
66
134
  className: style.buttonContainer
67
135
  }, firstButton ? /*#__PURE__*/React.createElement("div", {
68
- className: style.button
136
+ className: firstButton.largeButton ? style.largeButton : style.button
69
137
  }, /*#__PURE__*/React.createElement(Cta, {
70
138
  label: firstButton.label,
71
139
  onClick: firstButton.handleOnclick,
@@ -80,30 +148,49 @@ const CMPopin = props => {
80
148
  "data-name": `cm-popin-cta-${secondButton.type}`,
81
149
  "aria-label": secondButton['aria-label'],
82
150
  type: secondButton.type
151
+ })) : null, thirdButton ? /*#__PURE__*/React.createElement("div", {
152
+ className: thirdButton.largeButton ? style.largeButton : style.button
153
+ }, /*#__PURE__*/React.createElement(Cta, {
154
+ label: thirdButton.label,
155
+ onClick: thirdButton.handleOnclick,
156
+ "data-name": `cm-popin-cta-${thirdButton.type}`,
157
+ "aria-label": thirdButton['aria-label'],
158
+ type: thirdButton.type
83
159
  })) : null)));
84
160
  };
85
161
 
86
162
  CMPopin.propTypes = process.env.NODE_ENV !== "production" ? {
87
163
  content: PropTypes.string,
88
- mode: PropTypes.oneOf(['alert', 'information']),
164
+ mode: PropTypes.oneOf(['alert', 'information', 'cookie']),
89
165
  header: PropTypes.string,
90
166
  firstButton: PropTypes.shape({
91
167
  label: PropTypes.string,
92
168
  handleOnclick: PropTypes.func,
93
169
  'aria-label': PropTypes.string,
94
- type: PropTypes.string
170
+ largeButton: PropTypes.bool,
171
+ type: PropTypes.oneOf(['dangerous', 'primary', 'secondary'])
95
172
  }),
96
173
  secondButton: PropTypes.shape({
97
174
  label: PropTypes.string,
98
175
  handleOnclick: PropTypes.func,
99
- type: PropTypes.oneOf(['dangerous', 'primary']),
176
+ type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),
177
+ 'aria-label': PropTypes.string,
178
+ largeButton: PropTypes.boolean
179
+ }),
180
+ thirdButton: PropTypes.shape({
181
+ label: PropTypes.string,
182
+ handleOnclick: PropTypes.func,
183
+ type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),
100
184
  'aria-label': PropTypes.string,
101
185
  largeButton: PropTypes.boolean
102
186
  }),
103
187
  onClose: PropTypes.func,
104
188
  icon: PropTypes.string,
105
189
  backgroundImageUrl: PropTypes.string,
106
- descriptionText: PropTypes.string
190
+ descriptionText: PropTypes.string,
191
+ cookieTitle: PropTypes.string,
192
+ descriptionBtnTxt: PropTypes.string,
193
+ listBtnSwicth: PropTypes.arrayOf(PropTypes.shape(InputSwitch.propTypes))
107
194
  } : {};
108
195
  export default CMPopin;
109
196
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/cm-popin/index.js"],"names":["React","PropTypes","NovaSolidInterfaceFeedbackInterfaceAlertDiamond","AlertDiamond","NovaSolidApplicationsWindowUpload3","WindowUpload","Cta","ButtonLinkIconOnly","style","CMPopin","props","content","mode","firstButton","secondButton","onClose","header","icon","backgroundImageUrl","descriptionText","logo","LogoComponent","backgroundImageStyle","backgroundImage","backgroundSize","background","popin","popinHeader","headerBackground","titleContainer","contentSection","message","__html","buttonContainer","button","label","handleOnclick","type","largeButton","propTypes","string","oneOf","shape","func","boolean"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond,\n NovaSolidApplicationsWindowUpload3 as WindowUpload\n} from '@coorpacademy/nova-icons';\nimport Cta from '../../atom/button-link';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport style from './style.css';\n\nconst CMPopin = props => {\n const {\n content,\n mode = 'alert',\n firstButton,\n secondButton,\n onClose,\n header,\n icon,\n backgroundImageUrl,\n descriptionText\n } = props;\n\n const logo = {\n AlertDiamond,\n WindowUpload\n };\n const LogoComponent = logo[icon];\n\n const backgroundImageStyle = backgroundImageUrl\n ? {\n backgroundImage: `url(${backgroundImageUrl})`,\n backgroundSize: 'cover'\n }\n : null;\n\n return (\n <div className={style.background} style={backgroundImageStyle} data-name={'cm-popin-container'}>\n <div className={style.popin}>\n <header className={style.popinHeader}>\n {header ? <img className={style.headerBackground} src={header} /> : null}\n {onClose ? (\n <ButtonLinkIconOnly\n onClick={onClose}\n data-name={'close-icon'}\n aria-label={'close-icon'}\n size=\"small\"\n icon=\"close\"\n />\n ) : null}\n </header>\n <div className={style.titleContainer}>\n <div className={style.contentSection}>\n {LogoComponent ? <LogoComponent className={style.icon} /> : null}\n {content ? (\n <p\n className={mode === 'alert' ? style.content : style.message}\n data-name={'cm-popin-content'}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: content}}\n />\n ) : null}\n </div>\n {descriptionText ? (\n <p\n className={style.descriptionText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: descriptionText}}\n />\n ) : null}\n </div>\n <div className={style.buttonContainer}>\n {firstButton ? (\n <div className={style.button}>\n <Cta\n label={firstButton.label}\n onClick={firstButton.handleOnclick}\n data-name={'cm-popin-cta'}\n aria-label={firstButton['aria-label']}\n type={firstButton.type}\n />\n </div>\n ) : null}\n {secondButton ? (\n <div className={secondButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={secondButton.label}\n onClick={secondButton.handleOnclick}\n data-name={`cm-popin-cta-${secondButton.type}`}\n aria-label={secondButton['aria-label']}\n type={secondButton.type}\n />\n </div>\n ) : null}\n </div>\n </div>\n </div>\n );\n};\n\nCMPopin.propTypes = {\n content: PropTypes.string,\n mode: PropTypes.oneOf(['alert', 'information']),\n header: PropTypes.string,\n firstButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n 'aria-label': PropTypes.string,\n type: PropTypes.string\n }),\n secondButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary']),\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.boolean\n }),\n onClose: PropTypes.func,\n icon: PropTypes.string,\n backgroundImageUrl: PropTypes.string,\n descriptionText: PropTypes.string\n};\n\nexport default CMPopin;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/cm-popin/index.js"],"names":["React","PropTypes","NovaSolidInterfaceFeedbackInterfaceAlertDiamond","AlertDiamond","NovaSolidApplicationsWindowUpload3","WindowUpload","NovaLineSettingsCookie","Cookie","map","Cta","ButtonLinkIconOnly","InputSwitch","style","CMPopin","props","content","mode","firstButton","secondButton","onClose","header","icon","backgroundImageUrl","descriptionText","thirdButton","cookieTitle","descriptionBtnTxt","listBtnSwicth","logo","LogoComponent","backgroundImageStyle","backgroundImage","backgroundSize","renderHeader","headerBackground","cookieHeader","cookieIconContainer","cookieIcon","getClassBtnSwitch","index","btnList","firstBtnSwitchContainer","length","lastBtnSwitchContainer","singleSwitchContainer","renderBtnSwitch","convert","cap","el","type","title","value","onChange","titlePosition","theme","details","requiredSelection","disabled","background","popinCookie","popin","popinHeader","titleContainer","contentSection","message","__html","descriptionBtn","buttonContainer","largeButton","button","label","handleOnclick","propTypes","string","oneOf","shape","func","bool","boolean","arrayOf"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond,\n NovaSolidApplicationsWindowUpload3 as WindowUpload,\n NovaLineSettingsCookie as Cookie\n} from '@coorpacademy/nova-icons';\nimport map from 'lodash/fp/map';\nimport Cta from '../../atom/button-link';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport InputSwitch from '../../atom/input-switch';\nimport style from './style.css';\n\nconst CMPopin = props => {\n const {\n content,\n mode = 'alert',\n firstButton,\n secondButton,\n onClose,\n header,\n icon,\n backgroundImageUrl,\n descriptionText,\n thirdButton,\n cookieTitle,\n descriptionBtnTxt,\n listBtnSwicth\n } = props;\n\n const logo = {\n AlertDiamond,\n WindowUpload\n };\n const LogoComponent = logo[icon];\n\n const backgroundImageStyle = backgroundImageUrl\n ? {\n backgroundImage: `url(${backgroundImageUrl})`,\n backgroundSize: 'cover'\n }\n : null;\n const renderHeader = () => {\n if (header) return <img className={style.headerBackground} src={header} />;\n if (mode === 'cookie')\n return (\n <div className={style.cookieHeader}>\n <div className={style.cookieIconContainer}>\n <Cookie className={style.cookieIcon} />\n </div>\n <div className={style.cookieTitle}>{cookieTitle}</div>\n </div>\n );\n return null;\n };\n const getClassBtnSwitch = (index, btnList) => {\n switch (index) {\n case 0:\n return style.firstBtnSwitchContainer;\n case btnList.length - 1:\n return style.lastBtnSwitchContainer;\n default:\n return style.singleSwitchContainer;\n }\n };\n const renderBtnSwitch = () => {\n return map.convert({cap: false})((el, index) => {\n const {\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled\n } = el;\n return (\n <div key={index} className={getClassBtnSwitch(index, listBtnSwicth)}>\n <InputSwitch\n {...{\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled\n }}\n />\n </div>\n );\n })(listBtnSwicth);\n };\n return (\n <div\n className={mode !== 'cookie' ? style.background : null}\n style={backgroundImageStyle}\n data-name={'cm-popin-container'}\n >\n <div className={mode === 'cookie' ? style.popinCookie : style.popin}>\n <header className={style.popinHeader}>\n {renderHeader()}\n {onClose ? (\n <ButtonLinkIconOnly\n onClick={onClose}\n data-name={'close-icon'}\n aria-label={'close-icon'}\n size=\"small\"\n icon=\"close\"\n />\n ) : null}\n </header>\n <div className={style.titleContainer}>\n <div className={style.contentSection}>\n {LogoComponent ? <LogoComponent className={style.icon} /> : null}\n {content ? (\n <p\n className={mode === 'alert' ? style.content : style.message}\n data-name={'cm-popin-content'}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: content}}\n />\n ) : null}\n </div>\n {descriptionText ? (\n <p\n className={style.descriptionText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: descriptionText}}\n />\n ) : null}\n </div>\n {descriptionBtnTxt ? <div className={style.descriptionBtn}>{descriptionBtnTxt}</div> : null}\n {renderBtnSwitch()}\n <div className={style.buttonContainer}>\n {firstButton ? (\n <div className={firstButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={firstButton.label}\n onClick={firstButton.handleOnclick}\n data-name={'cm-popin-cta'}\n aria-label={firstButton['aria-label']}\n type={firstButton.type}\n />\n </div>\n ) : null}\n {secondButton ? (\n <div className={secondButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={secondButton.label}\n onClick={secondButton.handleOnclick}\n data-name={`cm-popin-cta-${secondButton.type}`}\n aria-label={secondButton['aria-label']}\n type={secondButton.type}\n />\n </div>\n ) : null}\n {thirdButton ? (\n <div className={thirdButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={thirdButton.label}\n onClick={thirdButton.handleOnclick}\n data-name={`cm-popin-cta-${thirdButton.type}`}\n aria-label={thirdButton['aria-label']}\n type={thirdButton.type}\n />\n </div>\n ) : null}\n </div>\n </div>\n </div>\n );\n};\n\nCMPopin.propTypes = {\n content: PropTypes.string,\n mode: PropTypes.oneOf(['alert', 'information', 'cookie']),\n header: PropTypes.string,\n firstButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.bool,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary'])\n }),\n secondButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.boolean\n }),\n thirdButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.boolean\n }),\n onClose: PropTypes.func,\n icon: PropTypes.string,\n backgroundImageUrl: PropTypes.string,\n descriptionText: PropTypes.string,\n cookieTitle: PropTypes.string,\n descriptionBtnTxt: PropTypes.string,\n listBtnSwicth: PropTypes.arrayOf(PropTypes.shape(InputSwitch.propTypes))\n};\n\nexport default CMPopin;\n"],"file":"index.js"}