@coorpacademy/components 10.22.12 → 10.22.15-alpha.12

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 (73) hide show
  1. package/es/atom/provider/index.js +15 -0
  2. package/es/atom/provider/index.js.map +1 -1
  3. package/es/atom/provider/web-context.js +27 -0
  4. package/es/atom/provider/web-context.js.map +1 -0
  5. package/es/atom/range/handle.js +59 -59
  6. package/es/atom/range/handle.js.map +1 -1
  7. package/es/atom/range/index.js +55 -43
  8. package/es/atom/range/index.js.map +1 -1
  9. package/es/atom/select/index.js +3 -5
  10. package/es/atom/select/index.js.map +1 -1
  11. package/es/atom/text/index.native.js.map +1 -1
  12. package/es/hoc/modal/select/index.native.js.map +1 -1
  13. package/es/molecule/discipline-partners/index.js +1 -1
  14. package/es/molecule/discipline-partners/index.js.map +1 -1
  15. package/es/molecule/questions/free-text/index.js +4 -3
  16. package/es/molecule/questions/free-text/index.js.map +1 -1
  17. package/es/molecule/questions/free-text/index.native.js +3 -3
  18. package/es/molecule/questions/free-text/index.native.js.map +1 -1
  19. package/es/molecule/questions/mobile/{slide → slider}/index.native.js +17 -14
  20. package/es/molecule/questions/mobile/slider/index.native.js.map +1 -0
  21. package/es/molecule/questions/mobile/switch/index.native.js +171 -0
  22. package/es/molecule/questions/mobile/switch/index.native.js.map +1 -0
  23. package/es/molecule/questions/qcm/index.js +3 -5
  24. package/es/molecule/questions/qcm/index.js.map +1 -1
  25. package/es/molecule/questions/qcm-drag/index.js +3 -8
  26. package/es/molecule/questions/qcm-drag/index.js.map +1 -1
  27. package/es/molecule/questions/qcm-graphic/index.js +3 -5
  28. package/es/molecule/questions/qcm-graphic/index.js.map +1 -1
  29. package/es/molecule/questions/question-range/index.js +3 -5
  30. package/es/molecule/questions/question-range/index.js.map +1 -1
  31. package/es/organism/review-slide/index.js +5 -10
  32. package/es/organism/review-slide/index.js.map +1 -1
  33. package/es/template/app-review/template-context.js +3 -7
  34. package/es/template/app-review/template-context.js.map +1 -1
  35. package/es/variables/theme.native.js.map +1 -1
  36. package/lib/atom/provider/index.js +23 -1
  37. package/lib/atom/provider/index.js.map +1 -1
  38. package/lib/atom/provider/web-context.js +40 -0
  39. package/lib/atom/provider/web-context.js.map +1 -0
  40. package/lib/atom/range/handle.js +61 -57
  41. package/lib/atom/range/handle.js.map +1 -1
  42. package/lib/atom/range/index.js +55 -43
  43. package/lib/atom/range/index.js.map +1 -1
  44. package/lib/atom/select/index.js +3 -5
  45. package/lib/atom/select/index.js.map +1 -1
  46. package/lib/atom/text/index.native.js.map +1 -1
  47. package/lib/hoc/modal/select/index.native.js.map +1 -1
  48. package/lib/molecule/discipline-partners/index.js +1 -1
  49. package/lib/molecule/discipline-partners/index.js.map +1 -1
  50. package/lib/molecule/questions/free-text/index.js +4 -3
  51. package/lib/molecule/questions/free-text/index.js.map +1 -1
  52. package/lib/molecule/questions/free-text/index.native.js +3 -3
  53. package/lib/molecule/questions/free-text/index.native.js.map +1 -1
  54. package/lib/molecule/questions/mobile/{slide → slider}/index.native.js +16 -13
  55. package/lib/molecule/questions/mobile/slider/index.native.js.map +1 -0
  56. package/lib/molecule/questions/mobile/switch/index.native.js +193 -0
  57. package/lib/molecule/questions/mobile/switch/index.native.js.map +1 -0
  58. package/lib/molecule/questions/qcm/index.js +3 -5
  59. package/lib/molecule/questions/qcm/index.js.map +1 -1
  60. package/lib/molecule/questions/qcm-drag/index.js +7 -8
  61. package/lib/molecule/questions/qcm-drag/index.js.map +1 -1
  62. package/lib/molecule/questions/qcm-graphic/index.js +7 -5
  63. package/lib/molecule/questions/qcm-graphic/index.js.map +1 -1
  64. package/lib/molecule/questions/question-range/index.js +7 -5
  65. package/lib/molecule/questions/question-range/index.js.map +1 -1
  66. package/lib/organism/review-slide/index.js +6 -11
  67. package/lib/organism/review-slide/index.js.map +1 -1
  68. package/lib/template/app-review/template-context.js +3 -6
  69. package/lib/template/app-review/template-context.js.map +1 -1
  70. package/lib/variables/theme.native.js.map +1 -1
  71. package/package.json +2 -2
  72. package/es/molecule/questions/mobile/slide/index.native.js.map +0 -1
  73. package/lib/molecule/questions/mobile/slide/index.native.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/range/handle.js"],"names":["Hammer","window","require","undefined","Handle","React","Component","constructor","props","context","setHandle","bind","componentDidMount","onPanStart","onPanEnd","onPan","hammer","handle","on","componentWillUnmount","stop","destroy","el","render","skin","primaryColor","backgroundColor","style","wrapper","boxShadow","default","Provider","childContextTypes","propTypes","PropTypes","func"],"mappings":";;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,MAAM,GACV;AACA,OAAOC,MAAP,KAAkB,WAAlB,GAAgCC,OAAO,CAAC,UAAD,CAAvC;AAAsD;AAA2BC,SAFnF;;AAIA,MAAMC,MAAN,SAAqBC,eAAMC,SAA3B,CAAqC;AAWnCC,EAAAA,WAAW,CAACC,KAAD,EAAQC,OAAR,EAAiB;AAC1B,UAAMD,KAAN,EAAaC,OAAb;AAEA,SAAKC,SAAL,GAAiB,KAAKA,SAAL,CAAeC,IAAf,CAAoB,IAApB,CAAjB;AACD;;AAEDC,EAAAA,iBAAiB,GAAG;AAClB;AACA,QAAIZ,MAAJ,EAAY;AACV,YAAM;AAACa,QAAAA,UAAU,iBAAX;AAAoBC,QAAAA,QAAQ,iBAA5B;AAAqCC,QAAAA,KAAK;AAA1C,UAAqD,KAAKP,KAAhE;AAEA,WAAKQ,MAAL,GAAc,IAAIhB,MAAJ,CAAW,KAAKiB,MAAhB,CAAd;AACA,WAAKD,MAAL,CAAYE,EAAZ,CAAe,UAAf,EAA2BL,UAA3B;AACA,WAAKG,MAAL,CAAYE,EAAZ,CAAe,QAAf,EAAyBJ,QAAzB;AAEA,WAAKE,MAAL,CAAYE,EAAZ,CAAe,kBAAf,EAAmCH,KAAnC;AACD;AACF;;AAEDI,EAAAA,oBAAoB,GAAG;AACrB,QAAI,KAAKH,MAAT,EAAiB;AACf,WAAKA,MAAL,CAAYI,IAAZ;AACA,WAAKJ,MAAL,CAAYK,OAAZ;AACD;;AACD,SAAKL,MAAL,GAAc,IAAd;AACD;;AAEDN,EAAAA,SAAS,CAACY,EAAD,EAAK;AACZ,SAAKL,MAAL,GAAcK,EAAd;AACD;;AAEDC,EAAAA,MAAM,GAAG;AACP,UAAM;AAACC,MAAAA;AAAD,QAAS,KAAKf,OAApB;AACA,UAAMgB,YAAY,GAAG,qBAAM,SAAN,EAAiB,gBAAjB,EAAmCD,IAAnC,CAArB;AACA,UAAME,eAAe,GAAGD,YAAxB;AAEA,wBACE;AAAK,MAAA,SAAS,EAAEE,gBAAMC;AAAtB,oBACE;AACE,MAAA,KAAK,EAAE;AACLF,QAAAA,eADK;AAELG,QAAAA,SAAS,EAAG,gBAAe,gEAA6BJ,YAA7B,CAA2C;AAFjE,OADT;AAKE,MAAA,SAAS,EAAEE,gBAAMG,OALnB;AAME,MAAA,GAAG,EAAE,KAAKpB,SANZ;AAOE,mBAAW;AAPb,MADF,CADF;AAaD;;AA5DkC;;gBAA/BN,M,kBAOkB;AACpBoB,EAAAA,IAAI,EAAEO,kBAASC,iBAAT,CAA2BR;AADb,C;;AAPlBpB,M,CACG6B,S,2CAAY;AACjBlB,EAAAA,KAAK,EAAEmB,mBAAUC,IADA;AAEjBtB,EAAAA,UAAU,EAAEqB,mBAAUC,IAFL;AAGjBrB,EAAAA,QAAQ,EAAEoB,mBAAUC;AAHH,C;eA8DN/B,M","sourcesContent":["import {noop, getOr} from 'lodash/fp';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Provider from '../provider';\nimport {getShadowBoxColorFromPrimary} from '../../util/get-shadow-box-color-from-primary';\nimport style from './handle.css';\n\nconst Hammer =\n // eslint-disable-next-line no-undef\n typeof window !== 'undefined' ? require('hammerjs') : /* istanbul ignore next */ undefined;\n\nclass Handle extends React.Component {\n static propTypes = {\n onPan: PropTypes.func,\n onPanStart: PropTypes.func,\n onPanEnd: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props, context) {\n super(props, context);\n\n this.setHandle = this.setHandle.bind(this);\n }\n\n componentDidMount() {\n /* istanbul ignore else */\n if (Hammer) {\n const {onPanStart = noop, onPanEnd = noop, onPan = noop} = this.props;\n\n this.hammer = new Hammer(this.handle);\n this.hammer.on('panstart', onPanStart);\n this.hammer.on('panend', onPanEnd);\n\n this.hammer.on('panleft panright', onPan);\n }\n }\n\n componentWillUnmount() {\n if (this.hammer) {\n this.hammer.stop();\n this.hammer.destroy();\n }\n this.hammer = null;\n }\n\n setHandle(el) {\n this.handle = el;\n }\n\n render() {\n const {skin} = this.context;\n const primaryColor = getOr('#00B0FF', 'common.primary', skin);\n const backgroundColor = primaryColor;\n\n return (\n <div className={style.wrapper}>\n <div\n style={{\n backgroundColor,\n boxShadow: `0px 0px 20px ${getShadowBoxColorFromPrimary(primaryColor)}`\n }}\n className={style.default}\n ref={this.setHandle}\n data-name={'handle'}\n />\n </div>\n );\n }\n}\n\nexport default Handle;\n"],"file":"handle.js"}
1
+ {"version":3,"sources":["../../../src/atom/range/handle.js"],"names":["NoopHammer","constructor","on","stop","destroy","Hammer","window","require","Handle","props","legacyContext","skin","primaryColor","backgroundColor","onPanStart","onPanEnd","onPan","handle","hammer","setHammer","current","style","wrapper","boxShadow","default","propTypes","PropTypes","func","contextTypes","Provider","childContextTypes"],"mappings":";;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,UAAN,CAAiB;AACfC,EAAAA,WAAW,GAAG,CAAE,CADD,CAGf;;;AACAC,EAAAA,EAAE,GAAG;AACH;AACD,GANc,CAQf;;;AACAC,EAAAA,IAAI,GAAG;AACL;AACD,GAXc,CAaf;;;AACAC,EAAAA,OAAO,GAAG;AACR;AACD;;AAhBc;;AAmBjB,MAAMC,MAAM,GAAG;AACb,OAAOC,MAAP,KAAkB,WAAlB;AAAgC;AAA2BC,OAAO,CAAC,UAAD,CAAlE,GAAiFP,UADnF;;AAGA,MAAMQ,MAAM,GAAG,CAACC,KAAD,EAAQC,aAAR,KAA0B;AACvC,QAAMC,IAAI,GAAG,kCAAmBD,aAAnB,CAAb;AACA,QAAME,YAAY,GAAG,qBAAM,SAAN,EAAiB,gBAAjB,EAAmCD,IAAnC,CAArB;AACA,QAAME,eAAe,GAAGD,YAAxB;AACA,QAAM;AAACE,IAAAA,UAAU,iBAAX;AAAoBC,IAAAA,QAAQ,iBAA5B;AAAqCC,IAAAA,KAAK;AAA1C,MAAqDP,KAA3D;AAEA,QAAMQ,MAAM,GAAG,oBAAf;AACA,QAAM,CAACC,MAAD,EAASC,SAAT,IAAsB,sBAA5B;AAEA,wBAAU,MAAM;AACdA,IAAAA,SAAS,CAAC,IAAId,MAAJ,CAAWY,MAAM,CAACG,OAAlB,CAAD,CAAT;AACD,GAFD,EAEG,CAACH,MAAD,CAFH;AAIA,wBAAU,MAAM;AACd,QAAI,CAACC,MAAL,EAAa;AACbA,IAAAA,MAAM,CAAChB,EAAP,CAAU,UAAV,EAAsBY,UAAtB;AACAI,IAAAA,MAAM,CAAChB,EAAP,CAAU,QAAV,EAAoBa,QAApB;AAEAG,IAAAA,MAAM,CAAChB,EAAP,CAAU,kBAAV,EAA8Bc,KAA9B;AAEA,WAAO,MAAM;AACXE,MAAAA,MAAM,CAACf,IAAP;AACAe,MAAAA,MAAM,CAACd,OAAP;AACAe,MAAAA,SAAS,CAAC,IAAD,CAAT;AACD,KAJD;AAKD,GAZD,EAYG,CAACD,MAAD,EAASJ,UAAT,EAAqBC,QAArB,EAA+BC,KAA/B,CAZH;AAcA,sBACE;AAAK,IAAA,SAAS,EAAEK,gBAAMC;AAAtB,kBACE;AACE,IAAA,KAAK,EAAE;AACLT,MAAAA,eADK;AAELU,MAAAA,SAAS,EAAG,gBAAe,gEAA6BX,YAA7B,CAA2C;AAFjE,KADT;AAKE,IAAA,SAAS,EAAES,gBAAMG,OALnB;AAME,IAAA,GAAG,EAAEP,MANP;AAOE,iBAAW;AAPb,IADF,CADF;AAaD,CAxCD;;AA0CAT,MAAM,CAACiB,SAAP,2CAAmB;AACjBT,EAAAA,KAAK,EAAEU,mBAAUC,IADA;AAEjBb,EAAAA,UAAU,EAAEY,mBAAUC,IAFL;AAGjBZ,EAAAA,QAAQ,EAAEW,mBAAUC;AAHH,CAAnB;AAMAnB,MAAM,CAACoB,YAAP,GAAsB;AACpBjB,EAAAA,IAAI,EAAEkB,kBAASC,iBAAT,CAA2BnB;AADb,CAAtB;eAIeH,M","sourcesContent":["import {noop, getOr} from 'lodash/fp';\nimport React, {useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport Provider, {GetSkinFromContext} from '../provider';\nimport {getShadowBoxColorFromPrimary} from '../../util/get-shadow-box-color-from-primary';\nimport style from './handle.css';\n\nclass NoopHammer {\n constructor() {}\n\n // eslint-disable-next-line class-methods-use-this\n on() {\n return;\n }\n\n // eslint-disable-next-line class-methods-use-this\n stop() {\n return;\n }\n\n // eslint-disable-next-line class-methods-use-this\n destroy() {\n return;\n }\n}\n\nconst Hammer = // eslint-disable-next-line no-undef\n typeof window !== 'undefined' ? /* istanbul ignore next */ require('hammerjs') : NoopHammer;\n\nconst Handle = (props, legacyContext) => {\n const skin = GetSkinFromContext(legacyContext);\n const primaryColor = getOr('#00B0FF', 'common.primary', skin);\n const backgroundColor = primaryColor;\n const {onPanStart = noop, onPanEnd = noop, onPan = noop} = props;\n\n const handle = useRef();\n const [hammer, setHammer] = useState();\n\n useEffect(() => {\n setHammer(new Hammer(handle.current));\n }, [handle]);\n\n useEffect(() => {\n if (!hammer) return;\n hammer.on('panstart', onPanStart);\n hammer.on('panend', onPanEnd);\n\n hammer.on('panleft panright', onPan);\n\n return () => {\n hammer.stop();\n hammer.destroy();\n setHammer(null);\n };\n }, [hammer, onPanStart, onPanEnd, onPan]);\n\n return (\n <div className={style.wrapper}>\n <div\n style={{\n backgroundColor,\n boxShadow: `0px 0px 20px ${getShadowBoxColorFromPrimary(primaryColor)}`\n }}\n className={style.default}\n ref={handle}\n data-name={'handle'}\n />\n </div>\n );\n};\n\nHandle.propTypes = {\n onPan: PropTypes.func,\n onPanStart: PropTypes.func,\n onPanEnd: PropTypes.func\n};\n\nHandle.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport default Handle;\n"],"file":"handle.js"}
@@ -9,14 +9,10 @@ var _set2 = _interopRequireDefault(require("lodash/fp/set"));
9
9
 
10
10
  var _noop2 = _interopRequireDefault(require("lodash/fp/noop"));
11
11
 
12
- var _getOr2 = _interopRequireDefault(require("lodash/fp/getOr"));
13
-
14
12
  var _react = _interopRequireDefault(require("react"));
15
13
 
16
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
15
 
18
- var _provider = _interopRequireDefault(require("../provider"));
19
-
20
16
  var _handle = _interopRequireDefault(require("./handle"));
21
17
 
22
18
  var _style = _interopRequireDefault(require("./style.css"));
@@ -25,8 +21,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
25
21
 
26
22
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
27
23
 
28
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
-
30
24
  const valueOnTrack = (track, x) => {
31
25
  const {
32
26
  left,
@@ -46,6 +40,49 @@ const extractStateFromProps = props => {
46
40
  };
47
41
  };
48
42
 
43
+ const RenderHandles = props => {
44
+ const {
45
+ left,
46
+ right,
47
+ multi = false,
48
+ pending,
49
+ onHandleMinChange,
50
+ onHandleMinChangeEnd,
51
+ onHandleMaxChange,
52
+ onHandleMaxChangeEnd
53
+ } = props;
54
+ return /*#__PURE__*/_react.default.createElement("div", null, multi ? /*#__PURE__*/_react.default.createElement("span", {
55
+ className: pending ? _style.default.handle : _style.default.animatedHandle,
56
+ style: {
57
+ left: `${left * 100}%`
58
+ }
59
+ }, /*#__PURE__*/_react.default.createElement(_handle.default, {
60
+ axis: "x",
61
+ onPan: onHandleMinChange,
62
+ onPanEnd: onHandleMinChangeEnd
63
+ })) : null, /*#__PURE__*/_react.default.createElement("span", {
64
+ className: pending ? _style.default.handle : _style.default.animatedHandle,
65
+ style: {
66
+ left: `${right * 100}%`
67
+ }
68
+ }, /*#__PURE__*/_react.default.createElement(_handle.default, {
69
+ axis: "x",
70
+ onPan: onHandleMaxChange,
71
+ onPanEnd: onHandleMaxChangeEnd
72
+ })));
73
+ };
74
+
75
+ RenderHandles.propTypes = process.env.NODE_ENV !== "production" ? {
76
+ left: _propTypes.default.number,
77
+ right: _propTypes.default.number,
78
+ multi: _propTypes.default.bool,
79
+ pending: _propTypes.default.bool,
80
+ onHandleMinChange: _propTypes.default.func,
81
+ onHandleMinChangeEnd: _propTypes.default.func,
82
+ onHandleMaxChange: _propTypes.default.func,
83
+ onHandleMaxChangeEnd: _propTypes.default.func
84
+ } : {};
85
+
49
86
  class Range extends _react.default.Component {
50
87
  static getDerivedStateFromProps(props, state) {
51
88
  const {
@@ -144,46 +181,16 @@ class Range extends _react.default.Component {
144
181
  return this.handleChange(newValue, closestHandle, false);
145
182
  }
146
183
 
147
- renderHandles() {
148
- const {
149
- value: [left, right],
150
- multi,
151
- pending
152
- } = this.state;
153
- return /*#__PURE__*/_react.default.createElement("div", null, multi ? /*#__PURE__*/_react.default.createElement("span", {
154
- className: pending ? _style.default.handle : _style.default.animatedHandle,
155
- style: {
156
- left: `${left * 100}%`
157
- }
158
- }, /*#__PURE__*/_react.default.createElement(_handle.default, {
159
- axis: "x",
160
- onPan: this.handleMinChange,
161
- onPanEnd: this.handleMinChangeEnd
162
- })) : null, /*#__PURE__*/_react.default.createElement("span", {
163
- className: pending ? _style.default.handle : _style.default.animatedHandle,
164
- style: {
165
- left: `${right * 100}%`
166
- }
167
- }, /*#__PURE__*/_react.default.createElement(_handle.default, {
168
- axis: "x",
169
- onPan: this.handleMaxChange,
170
- onPanEnd: this.handleMaxChangeEnd
171
- })));
172
- }
173
-
174
184
  render() {
175
185
  const {
176
- skin
177
- } = this.context;
178
- const defaultColor = (0, _getOr2.default)('#00B0FF', 'common.primary', skin);
179
- const {
186
+ multi = false,
180
187
  value: [left, right],
181
188
  pending
182
189
  } = this.state;
183
190
  const railWidth = right - left;
184
191
  const railLeft = left;
185
192
  const railStyle = {
186
- backgroundColor: defaultColor,
193
+ backgroundColor: '#9999A8',
187
194
  width: `${railWidth * 100}%`,
188
195
  left: `${railLeft * 100}%`
189
196
  };
@@ -199,15 +206,20 @@ class Range extends _react.default.Component {
199
206
  }), /*#__PURE__*/_react.default.createElement("div", {
200
207
  className: pending ? _style.default.rail : _style.default.animatedRail,
201
208
  style: railStyle
202
- }), this.renderHandles()));
209
+ }), /*#__PURE__*/_react.default.createElement(RenderHandles, {
210
+ left: left,
211
+ right: right,
212
+ pending: pending,
213
+ multi: multi,
214
+ onHandleMinChange: this.handleMinChange,
215
+ onHandleMinChangeEnd: this.handleMinChangeEnd,
216
+ onHandleMaxChange: this.handleMaxChange,
217
+ onHandleMaxChangeEnd: this.handleMaxChangeEnd
218
+ })));
203
219
  }
204
220
 
205
221
  }
206
222
 
207
- _defineProperty(Range, "contextTypes", {
208
- skin: _provider.default.childContextTypes.skin
209
- });
210
-
211
223
  Range.propTypes = process.env.NODE_ENV !== "production" ? {
212
224
  onChange: _propTypes.default.func,
213
225
  onChangeEnd: _propTypes.default.func,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/range/index.js"],"names":["valueOnTrack","track","x","left","right","getBoundingClientRect","extractStateFromProps","props","multi","value","Range","React","Component","getDerivedStateFromProps","state","pending","constructor","context","handleClick","bind","setRefTrack","handleMinChange","handleMaxChange","handleMinChangeEnd","handleMaxChangeEnd","e","srcEvent","stopPropagation","preventDefault","newValue","center","handleChange","valueIndex","prevValue","minValue","maxValue","nextValue","triggerChange","setState","newValues","onChange","onChangeEnd","handle","clientX","isClickToTheLeft","closestHandle","Math","abs","renderHandles","style","animatedHandle","render","skin","defaultColor","railWidth","railLeft","railStyle","backgroundColor","width","containerWrapper","container","rail","animatedRail","Provider","childContextTypes","propTypes","PropTypes","func","bool","oneOfType","number","arrayOf"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, noop, set, clamp} from 'lodash/fp';\nimport Provider from '../provider';\nimport Handle from './handle';\nimport style from './style.css';\n\nconst valueOnTrack = (track, x) => {\n const {left, right} = track.getBoundingClientRect();\n return clamp(0, 1, (x - left) / (right - left));\n};\n\nconst extractStateFromProps = props => {\n const {multi = false, value = multi ? [0, 1] : 0} = props;\n return {\n multi,\n value: multi ? value : [0, value]\n };\n};\n\nclass Range extends React.Component {\n static propTypes = {\n onChange: PropTypes.func,\n onChangeEnd: PropTypes.func,\n multi: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)])\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n static getDerivedStateFromProps(props, state) {\n const {pending} = state;\n\n if (pending) return null;\n\n return extractStateFromProps(props);\n }\n\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n ...extractStateFromProps(props),\n pending: false\n };\n\n this.handleClick = this.handleClick.bind(this);\n this.setRefTrack = this.setRefTrack.bind(this);\n this.handleMinChange = this.handleMinChange.bind(this);\n this.handleMaxChange = this.handleMaxChange.bind(this);\n this.handleMinChangeEnd = this.handleMinChangeEnd.bind(this);\n this.handleMaxChangeEnd = this.handleMaxChangeEnd.bind(this);\n }\n\n setRefTrack(track) {\n this.track = track;\n }\n\n handleMinChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, true);\n }\n\n handleMaxChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, true);\n }\n\n handleMinChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, false);\n }\n\n handleMaxChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, false);\n }\n\n handleChange(value, valueIndex, pending) {\n const {value: prevValue} = this.state;\n\n const newValue = set(valueIndex, value, prevValue);\n\n const [minValue, maxValue] = newValue;\n\n const nextValue = minValue > maxValue ? prevValue : newValue;\n\n this.triggerChange(nextValue, pending);\n return this.setState({\n pending,\n value: pending ? nextValue : extractStateFromProps(this.props).value\n });\n }\n\n triggerChange(newValues, pending) {\n const {onChange = noop, onChangeEnd = onChange, multi = false} = this.props;\n\n const handle = pending ? onChange : onChangeEnd;\n\n return handle(multi ? newValues : newValues[1]);\n }\n\n handleClick(e) {\n e.stopPropagation();\n e.preventDefault();\n const {\n value: [left, right],\n multi\n } = this.state;\n const x = e.clientX;\n const newValue = valueOnTrack(this.track, x);\n\n if (!multi) return this.handleChange(newValue, 1, false);\n\n if (left === right) {\n const isClickToTheLeft = left - newValue > 0;\n return this.handleChange(newValue, isClickToTheLeft ? 0 : 1, false);\n }\n\n const closestHandle = Math.abs(newValue - left) < Math.abs(newValue - right) ? 0 : 1;\n return this.handleChange(newValue, closestHandle, false);\n }\n\n renderHandles() {\n const {\n value: [left, right],\n multi,\n pending\n } = this.state;\n\n return (\n <div>\n {multi ? (\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${left * 100}%`}}\n >\n <Handle axis=\"x\" onPan={this.handleMinChange} onPanEnd={this.handleMinChangeEnd} />\n </span>\n ) : null}\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${right * 100}%`}}\n >\n <Handle axis=\"x\" onPan={this.handleMaxChange} onPanEnd={this.handleMaxChangeEnd} />\n </span>\n </div>\n );\n }\n\n render() {\n const {skin} = this.context;\n const defaultColor = getOr('#00B0FF', 'common.primary', skin);\n\n const {\n value: [left, right],\n pending\n } = this.state;\n const railWidth = right - left;\n const railLeft = left;\n const railStyle = {\n backgroundColor: defaultColor,\n width: `${railWidth * 100}%`,\n left: `${railLeft * 100}%`\n };\n\n return (\n <div className={style.containerWrapper} onClick={this.handleClick}>\n <div className={style.container}>\n <div className={style.track} data-name=\"sliderTrack\" ref={this.setRefTrack} />\n <div className={pending ? style.rail : style.animatedRail} style={railStyle} />\n {this.renderHandles()}\n </div>\n </div>\n );\n }\n}\n\nexport default Range;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/atom/range/index.js"],"names":["valueOnTrack","track","x","left","right","getBoundingClientRect","extractStateFromProps","props","multi","value","RenderHandles","pending","onHandleMinChange","onHandleMinChangeEnd","onHandleMaxChange","onHandleMaxChangeEnd","style","handle","animatedHandle","propTypes","PropTypes","number","bool","func","Range","React","Component","getDerivedStateFromProps","state","constructor","context","handleClick","bind","setRefTrack","handleMinChange","handleMaxChange","handleMinChangeEnd","handleMaxChangeEnd","e","srcEvent","stopPropagation","preventDefault","newValue","center","handleChange","valueIndex","prevValue","minValue","maxValue","nextValue","triggerChange","setState","newValues","onChange","onChangeEnd","clientX","isClickToTheLeft","closestHandle","Math","abs","render","railWidth","railLeft","railStyle","backgroundColor","width","containerWrapper","container","rail","animatedRail","oneOfType","arrayOf"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {noop, set, clamp} from 'lodash/fp';\nimport Handle from './handle';\nimport style from './style.css';\n\nconst valueOnTrack = (track, x) => {\n const {left, right} = track.getBoundingClientRect();\n return clamp(0, 1, (x - left) / (right - left));\n};\n\nconst extractStateFromProps = props => {\n const {multi = false, value = multi ? [0, 1] : 0} = props;\n return {\n multi,\n value: multi ? value : [0, value]\n };\n};\n\nconst RenderHandles = props => {\n const {\n left,\n right,\n multi = false,\n pending,\n onHandleMinChange,\n onHandleMinChangeEnd,\n onHandleMaxChange,\n onHandleMaxChangeEnd\n } = props;\n\n return (\n <div>\n {multi ? (\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${left * 100}%`}}\n >\n <Handle axis=\"x\" onPan={onHandleMinChange} onPanEnd={onHandleMinChangeEnd} />\n </span>\n ) : null}\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${right * 100}%`}}\n >\n <Handle axis=\"x\" onPan={onHandleMaxChange} onPanEnd={onHandleMaxChangeEnd} />\n </span>\n </div>\n );\n};\n\nRenderHandles.propTypes = {\n left: PropTypes.number,\n right: PropTypes.number,\n multi: PropTypes.bool,\n pending: PropTypes.bool,\n onHandleMinChange: PropTypes.func,\n onHandleMinChangeEnd: PropTypes.func,\n onHandleMaxChange: PropTypes.func,\n onHandleMaxChangeEnd: PropTypes.func\n};\n\nclass Range extends React.Component {\n static propTypes = {\n onChange: PropTypes.func,\n onChangeEnd: PropTypes.func,\n multi: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)])\n };\n\n static getDerivedStateFromProps(props, state) {\n const {pending} = state;\n\n if (pending) return null;\n\n return extractStateFromProps(props);\n }\n\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n ...extractStateFromProps(props),\n pending: false\n };\n\n this.handleClick = this.handleClick.bind(this);\n this.setRefTrack = this.setRefTrack.bind(this);\n this.handleMinChange = this.handleMinChange.bind(this);\n this.handleMaxChange = this.handleMaxChange.bind(this);\n this.handleMinChangeEnd = this.handleMinChangeEnd.bind(this);\n this.handleMaxChangeEnd = this.handleMaxChangeEnd.bind(this);\n }\n\n setRefTrack(track) {\n this.track = track;\n }\n\n handleMinChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, true);\n }\n\n handleMaxChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, true);\n }\n\n handleMinChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, false);\n }\n\n handleMaxChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, false);\n }\n\n handleChange(value, valueIndex, pending) {\n const {value: prevValue} = this.state;\n\n const newValue = set(valueIndex, value, prevValue);\n\n const [minValue, maxValue] = newValue;\n\n const nextValue = minValue > maxValue ? prevValue : newValue;\n\n this.triggerChange(nextValue, pending);\n return this.setState({\n pending,\n value: pending ? nextValue : extractStateFromProps(this.props).value\n });\n }\n\n triggerChange(newValues, pending) {\n const {onChange = noop, onChangeEnd = onChange, multi = false} = this.props;\n\n const handle = pending ? onChange : onChangeEnd;\n\n return handle(multi ? newValues : newValues[1]);\n }\n\n handleClick(e) {\n e.stopPropagation();\n e.preventDefault();\n const {\n value: [left, right],\n multi\n } = this.state;\n const x = e.clientX;\n const newValue = valueOnTrack(this.track, x);\n\n if (!multi) return this.handleChange(newValue, 1, false);\n\n if (left === right) {\n const isClickToTheLeft = left - newValue > 0;\n return this.handleChange(newValue, isClickToTheLeft ? 0 : 1, false);\n }\n\n const closestHandle = Math.abs(newValue - left) < Math.abs(newValue - right) ? 0 : 1;\n return this.handleChange(newValue, closestHandle, false);\n }\n\n render() {\n const {\n multi = false,\n value: [left, right],\n pending\n } = this.state;\n const railWidth = right - left;\n const railLeft = left;\n const railStyle = {\n backgroundColor: '#9999A8',\n width: `${railWidth * 100}%`,\n left: `${railLeft * 100}%`\n };\n\n return (\n <div className={style.containerWrapper} onClick={this.handleClick}>\n <div className={style.container}>\n <div className={style.track} data-name=\"sliderTrack\" ref={this.setRefTrack} />\n <div className={pending ? style.rail : style.animatedRail} style={railStyle} />\n <RenderHandles\n left={left}\n right={right}\n pending={pending}\n multi={multi}\n onHandleMinChange={this.handleMinChange}\n onHandleMinChangeEnd={this.handleMinChangeEnd}\n onHandleMaxChange={this.handleMaxChange}\n onHandleMaxChangeEnd={this.handleMaxChangeEnd}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default Range;\n"],"file":"index.js"}
@@ -27,7 +27,7 @@ var _size = _interopRequireDefault(require("lodash/fp/size"));
27
27
 
28
28
  var _novaIcons = require("@coorpacademy/nova-icons");
29
29
 
30
- var _provider = _interopRequireDefault(require("../provider"));
30
+ var _provider = _interopRequireWildcard(require("../provider"));
31
31
 
32
32
  var _getClassState = _interopRequireDefault(require("../../util/get-class-state"));
33
33
 
@@ -54,7 +54,7 @@ const themeStyle = {
54
54
  coorpmanager: null
55
55
  };
56
56
 
57
- const Select = (props, context) => {
57
+ const Select = (props, legacyContext) => {
58
58
  const {
59
59
  name,
60
60
  options = [],
@@ -70,9 +70,7 @@ const Select = (props, context) => {
70
70
  error = false,
71
71
  title: propTitle
72
72
  } = props;
73
- const {
74
- skin
75
- } = context;
73
+ const skin = (0, _provider.GetSkinFromContext)(legacyContext);
76
74
  const title = (0, _react.useMemo)(() => propTitle ? `${propTitle}${required ? '*' : ''}` : null, [propTitle, required]);
77
75
  const optionList = options && options.map((option, index) => {
78
76
  return /*#__PURE__*/_react.default.createElement("option", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/select/index.js"],"names":["themeStyle","filter","style","invalid","header","mooc","question","sort","thematiques","player","template","coorpmanager","Select","props","context","name","options","className","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","skin","optionList","map","option","index","value","selectOption","titleView","selected","selectedLabel","isSelectedInValidOption","validOption","handleChange","e","target","selectedOptions","black","color","shouldUseSkinFontColor","arrowColor","undefined","arrowView","selectedArrow","arrow","behaviourClassName","default","composedClassName","unselected","labelSize","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","selectBox","SelectOptionPropTypes","PropTypes","string","isRequired","oneOfType","number","bool","contextTypes","Provider","childContextTypes","propTypes","func","oneOf","arrayOf","shape"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport filter from 'lodash/fp/filter';\nimport find from 'lodash/fp/find';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport includes from 'lodash/fp/includes';\nimport keys from 'lodash/fp/keys';\nimport map from 'lodash/fp/map';\nimport size from 'lodash/fp/size';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport Provider from '../provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n filter: style.filter,\n invalid: style.invalid,\n header: style.header,\n mooc: style.mooc,\n question: style.question,\n sort: style.sort,\n thematiques: style.thematiques,\n player: style.player,\n template: style.template,\n coorpmanager: null\n};\n\nconst Select = (props, context) => {\n const {\n name,\n options = [],\n className,\n borderClassName,\n onChange,\n multiple = false,\n disabled,\n required,\n description,\n theme,\n modified = false,\n error = false,\n title: propTitle\n } = props;\n\n const {skin} = context;\n\n const title = useMemo(() => (propTitle ? `${propTitle}${required ? '*' : ''}` : null), [\n propTitle,\n required\n ]);\n\n const optionList =\n options &&\n options.map((option, index) => {\n return (\n <option key={index} value={option.value} className={style.selectOption}>\n {option.name}\n </option>\n );\n });\n\n const titleView = title ? <span className={style.title}>{title} </span> : null;\n\n const selected = useMemo(\n () =>\n multiple\n ? map(get('value'), filter({selected: true}, options))\n : get('value', find({selected: true}, options)),\n [multiple, options]\n );\n const selectedLabel = useMemo(\n () =>\n multiple\n ? map(get('name'), filter({selected: true}, options))\n : get('name', find({selected: true}, options)),\n [multiple, options]\n );\n\n const isSelectedInValidOption = useMemo(\n () =>\n theme === 'player' &&\n getOr(false, 'name', find({validOption: false, selected: true}, options)),\n [options, theme]\n );\n\n const handleChange = useMemo(\n () =>\n multiple\n ? e => {\n onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\n onChange(e.target.value);\n },\n [onChange, multiple]\n );\n\n const black = useMemo(() => getOr('#14171A', 'common.black', skin), [skin]);\n const color = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const shouldUseSkinFontColor = useMemo(\n () =>\n !isSelectedInValidOption && selected && includes(theme, ['question', 'template', 'player']),\n [isSelectedInValidOption, selected, theme]\n );\n const arrowColor = selected ? color : undefined;\n\n const arrowView = !multiple ? (\n <ArrowDown\n color={includes(theme, ['question', 'template', 'player']) ? arrowColor : black}\n className={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n />\n ) : null;\n const behaviourClassName = useMemo(\n () => getClassState(style.default, style.modified, style.error, modified, error),\n [error, modified]\n );\n const composedClassName = useMemo(\n () =>\n classnames(\n theme && theme !== 'coorpmanager' ? themeStyle[theme] : behaviourClassName,\n selected ? style.selected : style.unselected,\n className\n ),\n [behaviourClassName, className, selected, theme]\n );\n\n const labelSize = useMemo(() => size(selectedLabel), [selectedLabel]);\n\n const isLongLabel = useMemo(() => labelSize >= 65, [labelSize]);\n\n return (\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <label\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\n {titleView}\n <span\n data-name=\"select-span\"\n className={classnames(\n style.selectSpan,\n includes(theme, ['player', 'invalid', 'question', 'thematiques', 'template'])\n ? style.noLabelCommon\n : null,\n borderClassName,\n isLongLabel ? style.longLabel : null\n )}\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n >\n {selectedLabel}\n </span>\n {arrowView}\n <select\n data-name=\"native-select\"\n className={style.selectBox}\n title={selectedLabel}\n name={name}\n onChange={handleChange}\n value={selected}\n multiple={multiple}\n disabled={disabled}\n >\n {optionList}\n </select>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nexport const SelectOptionPropTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selected: PropTypes.bool,\n validOption: PropTypes.bool\n};\n\nSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelect.propTypes = {\n title: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n borderClassName: PropTypes.string,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n description: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n theme: PropTypes.oneOf(keys(themeStyle)),\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes)),\n modified: PropTypes.bool,\n error: PropTypes.bool\n};\n\nexport default Select;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/atom/select/index.js"],"names":["themeStyle","filter","style","invalid","header","mooc","question","sort","thematiques","player","template","coorpmanager","Select","props","legacyContext","name","options","className","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","skin","optionList","map","option","index","value","selectOption","titleView","selected","selectedLabel","isSelectedInValidOption","validOption","handleChange","e","target","selectedOptions","black","color","shouldUseSkinFontColor","arrowColor","undefined","arrowView","selectedArrow","arrow","behaviourClassName","default","composedClassName","unselected","labelSize","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","selectBox","SelectOptionPropTypes","PropTypes","string","isRequired","oneOfType","number","bool","contextTypes","Provider","childContextTypes","propTypes","func","oneOf","arrayOf","shape"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport filter from 'lodash/fp/filter';\nimport find from 'lodash/fp/find';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport includes from 'lodash/fp/includes';\nimport keys from 'lodash/fp/keys';\nimport map from 'lodash/fp/map';\nimport size from 'lodash/fp/size';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext} from '../provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n filter: style.filter,\n invalid: style.invalid,\n header: style.header,\n mooc: style.mooc,\n question: style.question,\n sort: style.sort,\n thematiques: style.thematiques,\n player: style.player,\n template: style.template,\n coorpmanager: null\n};\n\nconst Select = (props, legacyContext) => {\n const {\n name,\n options = [],\n className,\n borderClassName,\n onChange,\n multiple = false,\n disabled,\n required,\n description,\n theme,\n modified = false,\n error = false,\n title: propTitle\n } = props;\n\n const skin = GetSkinFromContext(legacyContext);\n const title = useMemo(() => (propTitle ? `${propTitle}${required ? '*' : ''}` : null), [\n propTitle,\n required\n ]);\n\n const optionList =\n options &&\n options.map((option, index) => {\n return (\n <option key={index} value={option.value} className={style.selectOption}>\n {option.name}\n </option>\n );\n });\n\n const titleView = title ? <span className={style.title}>{title} </span> : null;\n\n const selected = useMemo(\n () =>\n multiple\n ? map(get('value'), filter({selected: true}, options))\n : get('value', find({selected: true}, options)),\n [multiple, options]\n );\n const selectedLabel = useMemo(\n () =>\n multiple\n ? map(get('name'), filter({selected: true}, options))\n : get('name', find({selected: true}, options)),\n [multiple, options]\n );\n\n const isSelectedInValidOption = useMemo(\n () =>\n theme === 'player' &&\n getOr(false, 'name', find({validOption: false, selected: true}, options)),\n [options, theme]\n );\n\n const handleChange = useMemo(\n () =>\n multiple\n ? e => {\n onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\n onChange(e.target.value);\n },\n [onChange, multiple]\n );\n\n const black = useMemo(() => getOr('#14171A', 'common.black', skin), [skin]);\n const color = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const shouldUseSkinFontColor = useMemo(\n () =>\n !isSelectedInValidOption && selected && includes(theme, ['question', 'template', 'player']),\n [isSelectedInValidOption, selected, theme]\n );\n const arrowColor = selected ? color : undefined;\n\n const arrowView = !multiple ? (\n <ArrowDown\n color={includes(theme, ['question', 'template', 'player']) ? arrowColor : black}\n className={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n />\n ) : null;\n const behaviourClassName = useMemo(\n () => getClassState(style.default, style.modified, style.error, modified, error),\n [error, modified]\n );\n const composedClassName = useMemo(\n () =>\n classnames(\n theme && theme !== 'coorpmanager' ? themeStyle[theme] : behaviourClassName,\n selected ? style.selected : style.unselected,\n className\n ),\n [behaviourClassName, className, selected, theme]\n );\n\n const labelSize = useMemo(() => size(selectedLabel), [selectedLabel]);\n\n const isLongLabel = useMemo(() => labelSize >= 65, [labelSize]);\n\n return (\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <label\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\n {titleView}\n <span\n data-name=\"select-span\"\n className={classnames(\n style.selectSpan,\n includes(theme, ['player', 'invalid', 'question', 'thematiques', 'template'])\n ? style.noLabelCommon\n : null,\n borderClassName,\n isLongLabel ? style.longLabel : null\n )}\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n >\n {selectedLabel}\n </span>\n {arrowView}\n <select\n data-name=\"native-select\"\n className={style.selectBox}\n title={selectedLabel}\n name={name}\n onChange={handleChange}\n value={selected}\n multiple={multiple}\n disabled={disabled}\n >\n {optionList}\n </select>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nexport const SelectOptionPropTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selected: PropTypes.bool,\n validOption: PropTypes.bool\n};\n\nSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelect.propTypes = {\n title: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n borderClassName: PropTypes.string,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n description: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n theme: PropTypes.oneOf(keys(themeStyle)),\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes)),\n modified: PropTypes.bool,\n error: PropTypes.bool\n};\n\nexport default Select;\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/text/index.native.tsx"],"names":["DEFAULT_STYLE","Platform","select","android","fontFamily","styles","StyleSheet","create","text","Text","props","children","style","testID","numberOfLines","allowFontScaling"],"mappings":";;;;;AAAA;;AACA;;;;;;;;AAWO,MAAMA,aAAa,gBACrBC,sBAASC,MAAT,CAAgB;AACjBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,UAAU,EAAE;AADL;AADQ,CAAhB,CADqB,CAAnB;;;;AAQP,MAAMC,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,IAAI,eACCR,aADD;AAD2B,CAAlB,CAAf;;AAMA,MAAMS,IAAI,GAAIC,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,iBAAD;AACE,IAAA,gBAAgB,EAAEK,gBADpB;AAEE,IAAA,KAAK,EAAE,CAACV,MAAM,CAACG,IAAR,EAAcI,KAAd,CAFT;AAGE,IAAA,MAAM,EAAEC,MAHV;AAIE,IAAA,aAAa,EAAEC;AAJjB,KAMGH,QANH,CADF;AAUD,CAbD;;eAeeF,I","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
+ {"version":3,"sources":["../../../src/atom/text/index.native.tsx"],"names":["DEFAULT_STYLE","Platform","select","android","fontFamily","styles","StyleSheet","create","text","Text","props","children","style","testID","numberOfLines","allowFontScaling"],"mappings":";;;;;AAAA;;AACA;;;;;;;;AAWO,MAAMA,aAAa,gBACrBC,sBAASC,MAAT,CAAgB;AACjBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,UAAU,EAAE;AADL;AADQ,CAAhB,CADqB,CAAnB;;;;AAQP,MAAMC,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,IAAI,eACCR,aADD;AAD2B,CAAlB,CAAf;;AAMA,MAAMS,IAAI,GAAIC,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,iBAAD;AACE,IAAA,gBAAgB,EAAEK,gBADpB;AAEE,IAAA,KAAK,EAAE,CAACV,MAAM,CAACG,IAAR,EAAcI,KAAd,CAFT;AAGE,IAAA,MAAM,EAAEC,MAHV;AAIE,IAAA,aAAa,EAAEC;AAJjB,KAMGH,QANH,CADF;AAUD,CAbD;;eAeeF,I","sourcesContent":["import * as React from 'react';\nimport {Text as TextBase, Platform, StyleSheet, TextStyle} from 'react-native';\n\nexport type Props = {\n // copied from node_modules/react-native/Libraries/Text/TextProps.js\n children: React.ReactNode;\n style?: TextStyle | TextStyle[];\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 +1 @@
1
- {"version":3,"sources":["../../../../src/hoc/modal/select/index.native.tsx"],"names":["createStyleSheet","theme","StyleSheet","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"}
1
+ {"version":3,"sources":["../../../../src/hoc/modal/select/index.native.tsx"],"names":["createStyleSheet","theme","StyleSheet","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> | undefined;\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"}
@@ -108,7 +108,7 @@ const DisciplinePartners = (props, context) => {
108
108
  type: "checkbox",
109
109
  id: authorToggleId,
110
110
  className: _style.default.toggle,
111
- defaultChecked: authors.length === 1 ? true : null
111
+ defaultChecked: true
112
112
  }), /*#__PURE__*/_react.default.createElement("label", {
113
113
  htmlFor: authorToggleId
114
114
  }, logoView), authorContent);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/discipline-partners/index.js"],"names":["DisciplinePartners","props","context","translate","skin","authorTitle","authors","authorLabel","defaultColor","authorsView","convert","cap","author","index","socialLinks","authorLogo","authorHref","moreDetails","autName","authorToggleId","linkView","style","authorLink","color","moreInfoView","linkicon","socialView","map","social","i","link","aNameView","authorName","logoView","logoContainer","logo","src","arrowWrapper","arrow","authorContent","links","authorWrapper","toggle","length","colDetails","contextTypes","Provider","childContextTypes","propTypes","PropTypes","arrayOf","shape","name","string","href","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {get, getOr, isEmpty, map, uniqueId} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaCompositionNavigationArrowDown as ArrowDown\n} from '@coorpacademy/nova-icons';\nimport SocialLink from '../../atom/social-link';\nimport Provider from '../../atom/provider';\nimport CatalogSection from '../../atom/catalog-section';\nimport Picture from '../../atom/picture';\nimport style from './style.css';\n\nconst DisciplinePartners = (props, context) => {\n const {translate, skin} = context;\n\n const {authorTitle, authors = []} = props;\n\n const authorLabel = authorTitle || translate('author');\n const defaultColor = get('common.primary', skin);\n const authorsView = map.convert({cap: false})((author, index) => {\n const socialLinks = getOr([], 'socialLinks', author);\n const authorLogo = get('logo', author);\n const authorHref = get('href', author);\n const moreDetails = get('more', author);\n const autName = get('name', author);\n const authorToggleId = uniqueId('author-toggle-');\n const linkView = (\n <div className={style.authorLink}>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n color: defaultColor\n }}\n href={authorHref}\n >\n {authorHref}\n </a>\n </div>\n );\n const moreInfoView = (\n <div className={style.authorLink}>\n <a\n href={authorHref}\n style={{\n color: defaultColor\n }}\n >\n {moreDetails}\n <ArrowRight color={defaultColor} className={style.linkicon} />\n </a>\n </div>\n );\n\n const socialView = socialLinks.map((social, i) => (\n <div key={i} className={style.link}>\n <SocialLink {...social} />\n </div>\n ));\n\n const aNameView = autName ? (\n <div data-name=\"authorName\" className={style.authorName}>\n {autName}\n </div>\n ) : null;\n\n const logoView = authorLogo ? (\n <div className={style.logoContainer}>\n <Picture className={style.logo} src={authorLogo.src} />\n <div className={style.arrowWrapper}>\n <ArrowDown className={style.arrow} height={14} whidth={14} />\n </div>\n </div>\n ) : null;\n\n const authorContent =\n authorHref || aNameView || socialView ? (\n <div className={style.authorContent}>\n {autName ? aNameView : null}\n {moreDetails ? moreInfoView : null}\n {!moreDetails && authorHref ? linkView : null}\n <div className={style.links}>{socialView}</div>\n </div>\n ) : null;\n\n return (\n <div key={index} className={style.authorWrapper}>\n <input\n type=\"checkbox\"\n id={authorToggleId}\n className={style.toggle}\n defaultChecked={authors.length === 1 ? true : null}\n />\n <label htmlFor={authorToggleId}>{logoView}</label>\n {authorContent}\n </div>\n );\n }, authors);\n\n return !isEmpty(authors) ? (\n <div data-name=\"disciplinePartner\" className={style.colDetails}>\n <CatalogSection title={authorLabel}>{authorsView}</CatalogSection>\n </div>\n ) : null;\n};\n\nDisciplinePartners.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nDisciplinePartners.propTypes = {\n authors: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n href: PropTypes.string,\n logo: PropTypes.shape({\n src: PropTypes.string,\n href: PropTypes.string\n }),\n socialLinks: PropTypes.array\n })\n ),\n authorTitle: PropTypes.string\n};\n\nexport default DisciplinePartners;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/discipline-partners/index.js"],"names":["DisciplinePartners","props","context","translate","skin","authorTitle","authors","authorLabel","defaultColor","authorsView","convert","cap","author","index","socialLinks","authorLogo","authorHref","moreDetails","autName","authorToggleId","linkView","style","authorLink","color","moreInfoView","linkicon","socialView","map","social","i","link","aNameView","authorName","logoView","logoContainer","logo","src","arrowWrapper","arrow","authorContent","links","authorWrapper","toggle","colDetails","contextTypes","Provider","childContextTypes","propTypes","PropTypes","arrayOf","shape","name","string","href","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {get, getOr, isEmpty, map, uniqueId} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaCompositionNavigationArrowDown as ArrowDown\n} from '@coorpacademy/nova-icons';\nimport SocialLink from '../../atom/social-link';\nimport Provider from '../../atom/provider';\nimport CatalogSection from '../../atom/catalog-section';\nimport Picture from '../../atom/picture';\nimport style from './style.css';\n\nconst DisciplinePartners = (props, context) => {\n const {translate, skin} = context;\n\n const {authorTitle, authors = []} = props;\n\n const authorLabel = authorTitle || translate('author');\n const defaultColor = get('common.primary', skin);\n const authorsView = map.convert({cap: false})((author, index) => {\n const socialLinks = getOr([], 'socialLinks', author);\n const authorLogo = get('logo', author);\n const authorHref = get('href', author);\n const moreDetails = get('more', author);\n const autName = get('name', author);\n const authorToggleId = uniqueId('author-toggle-');\n const linkView = (\n <div className={style.authorLink}>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n color: defaultColor\n }}\n href={authorHref}\n >\n {authorHref}\n </a>\n </div>\n );\n const moreInfoView = (\n <div className={style.authorLink}>\n <a\n href={authorHref}\n style={{\n color: defaultColor\n }}\n >\n {moreDetails}\n <ArrowRight color={defaultColor} className={style.linkicon} />\n </a>\n </div>\n );\n\n const socialView = socialLinks.map((social, i) => (\n <div key={i} className={style.link}>\n <SocialLink {...social} />\n </div>\n ));\n\n const aNameView = autName ? (\n <div data-name=\"authorName\" className={style.authorName}>\n {autName}\n </div>\n ) : null;\n\n const logoView = authorLogo ? (\n <div className={style.logoContainer}>\n <Picture className={style.logo} src={authorLogo.src} />\n <div className={style.arrowWrapper}>\n <ArrowDown className={style.arrow} height={14} whidth={14} />\n </div>\n </div>\n ) : null;\n\n const authorContent =\n authorHref || aNameView || socialView ? (\n <div className={style.authorContent}>\n {autName ? aNameView : null}\n {moreDetails ? moreInfoView : null}\n {!moreDetails && authorHref ? linkView : null}\n <div className={style.links}>{socialView}</div>\n </div>\n ) : null;\n\n return (\n <div key={index} className={style.authorWrapper}>\n <input type=\"checkbox\" id={authorToggleId} className={style.toggle} defaultChecked />\n <label htmlFor={authorToggleId}>{logoView}</label>\n {authorContent}\n </div>\n );\n }, authors);\n\n return !isEmpty(authors) ? (\n <div data-name=\"disciplinePartner\" className={style.colDetails}>\n <CatalogSection title={authorLabel}>{authorsView}</CatalogSection>\n </div>\n ) : null;\n};\n\nDisciplinePartners.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nDisciplinePartners.propTypes = {\n authors: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n href: PropTypes.string,\n logo: PropTypes.shape({\n src: PropTypes.string,\n href: PropTypes.string\n }),\n socialLinks: PropTypes.array\n })\n ),\n authorTitle: PropTypes.string\n};\n\nexport default DisciplinePartners;\n"],"file":"index.js"}
@@ -13,7 +13,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
14
  var _cssColorFunction = require("css-color-function");
15
15
 
16
- var _provider = _interopRequireDefault(require("../../../atom/provider"));
16
+ var _provider = _interopRequireWildcard(require("../../../atom/provider"));
17
17
 
18
18
  var _style = _interopRequireDefault(require("./style.css"));
19
19
 
@@ -25,7 +25,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
25
25
 
26
26
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
27
27
 
28
- const FreeText = (props, context) => {
28
+ const FreeText = (props, legacyContext) => {
29
+ const skin = (0, _provider.GetSkinFromContext)(legacyContext);
29
30
  const {
30
31
  placeholder = '',
31
32
  value = '',
@@ -34,7 +35,7 @@ const FreeText = (props, context) => {
34
35
  } = props;
35
36
  const [hovered, setHovered] = (0, _react.useState)(false);
36
37
  const handleChange = (0, _react.useCallback)(e => onChange(e.target.value), [onChange]);
37
- const primarySkinColor = (0, _getOr2.default)('#00B0FF', 'skin.common.primary', context);
38
+ const primarySkinColor = (0, _getOr2.default)('#00B0FF', 'common.primary', skin);
38
39
  const handleMouseOver = (0, _react.useCallback)(() => setHovered(true), [setHovered]);
39
40
  const handleMouseLeave = (0, _react.useCallback)(() => setHovered(false), [setHovered]);
40
41
  const shadowBoxPrimaryColor = (0, _react.useMemo)(() => (0, _cssColorFunction.convert)(`color(${primarySkinColor} a(12%))`), [primarySkinColor]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/molecule/questions/free-text/index.js"],"names":["FreeText","props","context","placeholder","value","onChange","ariaLabel","hovered","setHovered","handleChange","e","target","primarySkinColor","handleMouseOver","handleMouseLeave","shadowBoxPrimaryColor","style","wrapper","boxShadow","freeText","color","contextTypes","skin","Provider","childContextTypes","propTypes","PropTypes","string","func"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,QAAQ,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;AACnC,QAAM;AAACC,IAAAA,WAAW,GAAG,EAAf;AAAmBC,IAAAA,KAAK,GAAG,EAA3B;AAA+BC,IAAAA,QAAQ,iBAAvC;AAAgD,kBAAcC;AAA9D,MAA2EL,KAAjF;AACA,QAAM,CAACM,OAAD,EAAUC,UAAV,IAAwB,qBAAS,KAAT,CAA9B;AAEA,QAAMC,YAAY,GAAG,wBAAYC,CAAC,IAAIL,QAAQ,CAACK,CAAC,CAACC,MAAF,CAASP,KAAV,CAAzB,EAA2C,CAACC,QAAD,CAA3C,CAArB;AACA,QAAMO,gBAAgB,GAAG,qBAAM,SAAN,EAAiB,qBAAjB,EAAwCV,OAAxC,CAAzB;AAEA,QAAMW,eAAe,GAAG,wBAAY,MAAML,UAAU,CAAC,IAAD,CAA5B,EAAoC,CAACA,UAAD,CAApC,CAAxB;AAEA,QAAMM,gBAAgB,GAAG,wBAAY,MAAMN,UAAU,CAAC,KAAD,CAA5B,EAAqC,CAACA,UAAD,CAArC,CAAzB;AAEA,QAAMO,qBAAqB,GAAG,oBAAQ,MAAM,+BAAS,SAAQH,gBAAiB,UAAlC,CAAd,EAA4D,CACxFA,gBADwF,CAA5D,CAA9B;AAIA,sBACE;AACE,iBAAU,UADZ;AAEE,IAAA,SAAS,EAAEI,eAAMC,OAFnB;AAGE,IAAA,WAAW,EAAEJ,eAHf;AAIE,IAAA,YAAY,EAAEC,gBAJhB;AAKE,IAAA,KAAK,eACCV,KAAK,IAAI;AACXc,MAAAA,SAAS,EAAEX,OAAO,GAAG,MAAH,GAAa,cAAaQ,qBAAsB;AADvD,KADV;AALP,kBAWE;AACE,iBAAU,iBADZ;AAEE,IAAA,IAAI,EAAC,MAFP;AAGE,kBAAYT,SAAS,IAAIF,KAAb,IAAsBD,WAHpC;AAIE,IAAA,SAAS,EAAEa,eAAMG,QAJnB;AAKE,IAAA,WAAW,EAAEhB,WALf;AAME,IAAA,KAAK,EAAEC,KANT;AAOE,IAAA,OAAO,EAAEK,YAPX;AAQE,IAAA,QAAQ,gBARV;AASE,IAAA,KAAK;AACHS,MAAAA,SAAS,EAAG,cAAaH,qBAAsB;AAD5C,OAECX,KAAK,IAAI;AACXc,MAAAA,SAAS,EAAG,cACVX,OAAO,GAAG,+BAAS,SAAQK,gBAAiB,UAAlC,CAAH,GAAkDG,qBAC1D;AAHU,KAFV;AAOHK,MAAAA,KAAK,EAAER;AAPJ;AATP,IAXF,CADF;AAiCD,CAhDD;;AAkDAZ,QAAQ,CAACqB,YAAT,GAAwB;AACtBC,EAAAA,IAAI,EAAEC,kBAASC,iBAAT,CAA2BF;AADX,CAAxB;AAIAtB,QAAQ,CAACyB,SAAT,2CAAqB;AACnBtB,EAAAA,WAAW,EAAEuB,mBAAUC,MADJ;AAEnBvB,EAAAA,KAAK,EAAEsB,mBAAUC,MAFE;AAGnBtB,EAAAA,QAAQ,EAAEqB,mBAAUE,IAHD;AAInB,gBAAcF,mBAAUC;AAJL,CAArB;eAOe3B,Q","sourcesContent":["import React, {useCallback, useMemo, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {noop, getOr} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider from '../../../atom/provider';\nimport style from './style.css';\n\nconst FreeText = (props, context) => {\n const {placeholder = '', value = '', onChange = noop, 'aria-label': ariaLabel} = props;\n const [hovered, setHovered] = useState(false);\n\n const handleChange = useCallback(e => onChange(e.target.value), [onChange]);\n const primarySkinColor = getOr('#00B0FF', 'skin.common.primary', context);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const shadowBoxPrimaryColor = useMemo(() => convert(`color(${primarySkinColor} a(12%))`), [\n primarySkinColor\n ]);\n\n return (\n <div\n data-name=\"freeText\"\n className={style.wrapper}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n style={{\n ...(value && {\n boxShadow: hovered ? 'none' : `0 4px 16px ${shadowBoxPrimaryColor}`\n })\n }}\n >\n <input\n data-name=\"free-text-input\"\n type=\"text\"\n aria-label={ariaLabel || value || placeholder}\n className={style.freeText}\n placeholder={placeholder}\n value={value}\n onInput={handleChange}\n onChange={noop}\n style={{\n boxShadow: `0 4px 16px ${shadowBoxPrimaryColor}`,\n ...(value && {\n boxShadow: `0 4px 16px ${\n hovered ? convert(`color(${primarySkinColor} a(20%))`) : shadowBoxPrimaryColor\n }`\n }),\n color: primarySkinColor\n }}\n />\n </div>\n );\n};\n\nFreeText.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nFreeText.propTypes = {\n placeholder: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n 'aria-label': PropTypes.string\n};\n\nexport default FreeText;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/molecule/questions/free-text/index.js"],"names":["FreeText","props","legacyContext","skin","placeholder","value","onChange","ariaLabel","hovered","setHovered","handleChange","e","target","primarySkinColor","handleMouseOver","handleMouseLeave","shadowBoxPrimaryColor","style","wrapper","boxShadow","freeText","color","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","func"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,QAAQ,GAAG,CAACC,KAAD,EAAQC,aAAR,KAA0B;AACzC,QAAMC,IAAI,GAAG,kCAAmBD,aAAnB,CAAb;AACA,QAAM;AAACE,IAAAA,WAAW,GAAG,EAAf;AAAmBC,IAAAA,KAAK,GAAG,EAA3B;AAA+BC,IAAAA,QAAQ,iBAAvC;AAAgD,kBAAcC;AAA9D,MAA2EN,KAAjF;AACA,QAAM,CAACO,OAAD,EAAUC,UAAV,IAAwB,qBAAS,KAAT,CAA9B;AAEA,QAAMC,YAAY,GAAG,wBAAYC,CAAC,IAAIL,QAAQ,CAACK,CAAC,CAACC,MAAF,CAASP,KAAV,CAAzB,EAA2C,CAACC,QAAD,CAA3C,CAArB;AACA,QAAMO,gBAAgB,GAAG,qBAAM,SAAN,EAAiB,gBAAjB,EAAmCV,IAAnC,CAAzB;AAEA,QAAMW,eAAe,GAAG,wBAAY,MAAML,UAAU,CAAC,IAAD,CAA5B,EAAoC,CAACA,UAAD,CAApC,CAAxB;AAEA,QAAMM,gBAAgB,GAAG,wBAAY,MAAMN,UAAU,CAAC,KAAD,CAA5B,EAAqC,CAACA,UAAD,CAArC,CAAzB;AAEA,QAAMO,qBAAqB,GAAG,oBAAQ,MAAM,+BAAS,SAAQH,gBAAiB,UAAlC,CAAd,EAA4D,CACxFA,gBADwF,CAA5D,CAA9B;AAIA,sBACE;AACE,iBAAU,UADZ;AAEE,IAAA,SAAS,EAAEI,eAAMC,OAFnB;AAGE,IAAA,WAAW,EAAEJ,eAHf;AAIE,IAAA,YAAY,EAAEC,gBAJhB;AAKE,IAAA,KAAK,eACCV,KAAK,IAAI;AACXc,MAAAA,SAAS,EAAEX,OAAO,GAAG,MAAH,GAAa,cAAaQ,qBAAsB;AADvD,KADV;AALP,kBAWE;AACE,iBAAU,iBADZ;AAEE,IAAA,IAAI,EAAC,MAFP;AAGE,kBAAYT,SAAS,IAAIF,KAAb,IAAsBD,WAHpC;AAIE,IAAA,SAAS,EAAEa,eAAMG,QAJnB;AAKE,IAAA,WAAW,EAAEhB,WALf;AAME,IAAA,KAAK,EAAEC,KANT;AAOE,IAAA,OAAO,EAAEK,YAPX;AAQE,IAAA,QAAQ,gBARV;AASE,IAAA,KAAK;AACHS,MAAAA,SAAS,EAAG,cAAaH,qBAAsB;AAD5C,OAECX,KAAK,IAAI;AACXc,MAAAA,SAAS,EAAG,cACVX,OAAO,GAAG,+BAAS,SAAQK,gBAAiB,UAAlC,CAAH,GAAkDG,qBAC1D;AAHU,KAFV;AAOHK,MAAAA,KAAK,EAAER;AAPJ;AATP,IAXF,CADF;AAiCD,CAjDD;;AAmDAb,QAAQ,CAACsB,YAAT,GAAwB;AACtBnB,EAAAA,IAAI,EAAEoB,kBAASC,iBAAT,CAA2BrB;AADX,CAAxB;AAIAH,QAAQ,CAACyB,SAAT,2CAAqB;AACnBrB,EAAAA,WAAW,EAAEsB,mBAAUC,MADJ;AAEnBtB,EAAAA,KAAK,EAAEqB,mBAAUC,MAFE;AAGnBrB,EAAAA,QAAQ,EAAEoB,mBAAUE,IAHD;AAInB,gBAAcF,mBAAUC;AAJL,CAArB;eAOe3B,Q","sourcesContent":["import React, {useCallback, useMemo, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {noop, getOr} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider, {GetSkinFromContext} from '../../../atom/provider';\nimport style from './style.css';\n\nconst FreeText = (props, legacyContext) => {\n const skin = GetSkinFromContext(legacyContext);\n const {placeholder = '', value = '', onChange = noop, 'aria-label': ariaLabel} = props;\n const [hovered, setHovered] = useState(false);\n\n const handleChange = useCallback(e => onChange(e.target.value), [onChange]);\n const primarySkinColor = getOr('#00B0FF', 'common.primary', skin);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const shadowBoxPrimaryColor = useMemo(() => convert(`color(${primarySkinColor} a(12%))`), [\n primarySkinColor\n ]);\n\n return (\n <div\n data-name=\"freeText\"\n className={style.wrapper}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n style={{\n ...(value && {\n boxShadow: hovered ? 'none' : `0 4px 16px ${shadowBoxPrimaryColor}`\n })\n }}\n >\n <input\n data-name=\"free-text-input\"\n type=\"text\"\n aria-label={ariaLabel || value || placeholder}\n className={style.freeText}\n placeholder={placeholder}\n value={value}\n onInput={handleChange}\n onChange={noop}\n style={{\n boxShadow: `0 4px 16px ${shadowBoxPrimaryColor}`,\n ...(value && {\n boxShadow: `0 4px 16px ${\n hovered ? convert(`color(${primarySkinColor} a(20%))`) : shadowBoxPrimaryColor\n }`\n }),\n color: primarySkinColor\n }}\n />\n </div>\n );\n};\n\nFreeText.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nFreeText.propTypes = {\n placeholder: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n 'aria-label': PropTypes.string\n};\n\nexport default FreeText;\n"],"file":"index.js"}
@@ -59,10 +59,10 @@ const FreeText = props => {
59
59
  const {
60
60
  analytics,
61
61
  questionType,
62
- fullWitdh = false,
62
+ fullWidth = false,
63
63
  testID,
64
64
  onChange,
65
- isDisabled,
65
+ isDisabled = false,
66
66
  value
67
67
  } = props; // ------------------------------------
68
68
 
@@ -80,7 +80,7 @@ const FreeText = props => {
80
80
  }
81
81
 
82
82
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
83
- style: [styleSheet.spaced, fullWitdh && styleSheet.fullWitdh]
83
+ style: [styleSheet.spaced, fullWidth && styleSheet.fullWitdh]
84
84
  }, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
85
85
  style: [styleSheet.input, styleSheet.text],
86
86
  onFocus: handleFocus,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/molecule/questions/free-text/index.native.tsx"],"names":["createStyleSheet","brandTheme","theme","StyleSheet","create","input","padding","spacing","tiny","borderWidth","borderColor","colors","gray","lightMedium","borderRadius","radius","common","backgroundColor","white","minWidth","text","primary","color","medium","fontWeight","bold","fontSize","regular","textAlign","spaced","paddingVertical","fullWitdh","width","logEvent","eventName","analytics","questionType","id","FreeText","props","templateContext","styleSheet","setStylesheet","translations","PLACEHOLDER_COLOR","testID","onChange","isDisabled","value","handleFocus","ANALYTICS_EVENT_TYPE","INPUT_FOCUS","handleBlur","INPUT_BLUR","_stylesheet","typeHere"],"mappings":"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","sourcesContent":["import {View, StyleSheet, TextInput} from 'react-native';\nimport React, {useState, useEffect, useCallback} from 'react';\nimport {useTemplateContext} from '../../../template/app-review/template-context';\nimport {ANALYTICS_EVENT_TYPE, Analytics} from '../../../variables/analytics';\n\ntype QuestionType = 'basic' | 'template';\n\ninterface Props {\n fullWitdh?: boolean;\n testID: string;\n questionType: QuestionType;\n analytics?: Analytics;\n onChange: (text: string) => void;\n isDisabled: boolean;\n value: string;\n}\n\ntype StyleSheetType = {\n input: {\n padding: string;\n borderWidth: number;\n borderColor: string;\n borderRadius: number;\n backgroundColor: string;\n minWidth: number;\n };\n text: {\n color: string;\n fontWeight:\n | 'normal'\n | 'bold'\n | '100'\n | '200'\n | '300'\n | '400'\n | '500'\n | '600'\n | '700'\n | '800'\n | '900'\n | undefined;\n fontSize: number;\n textAlign: 'auto' | 'left' | 'right' | 'center' | 'justify' | undefined;\n };\n spaced: {\n paddingVertical: number;\n };\n fullWitdh: {\n width: string;\n };\n};\n\nconst createStyleSheet = (brandTheme, theme) =>\n StyleSheet.create({\n input: {\n padding: theme.spacing.tiny,\n borderWidth: 1,\n borderColor: theme.colors.gray.lightMedium,\n borderRadius: theme.radius.common,\n backgroundColor: theme.colors.white,\n minWidth: 175\n },\n text: {\n borderColor: brandTheme?.colors.primary,\n color: brandTheme?.colors.primary || theme.colors.gray.medium,\n fontWeight: theme.fontWeight.bold,\n fontSize: theme.fontSize.regular,\n textAlign: 'center'\n },\n spaced: {\n paddingVertical: theme.spacing.tiny\n },\n fullWitdh: {\n width: '100%'\n }\n });\n\nconst logEvent = (eventName: string, analytics: Analytics, questionType: QuestionType) => {\n analytics &&\n analytics.logEvent(eventName, {\n id: `question-input-text`,\n questionType\n });\n};\n\nconst FreeText = (props: Props) => {\n const templateContext = useTemplateContext();\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n const {brandTheme, theme, translations} = templateContext;\n const PLACEHOLDER_COLOR = theme.colors.gray.medium;\n\n // ------------------------------------\n\n const {analytics, questionType, fullWitdh = false, testID, onChange, isDisabled, value} = props;\n\n // ------------------------------------\n\n const handleFocus = useCallback(\n () => analytics && logEvent(ANALYTICS_EVENT_TYPE.INPUT_FOCUS, analytics, questionType),\n [analytics, questionType]\n );\n\n const handleBlur = useCallback(\n () => analytics && logEvent(ANALYTICS_EVENT_TYPE.INPUT_BLUR, analytics, questionType),\n [analytics, questionType]\n );\n\n // ------------------------------------\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(brandTheme, theme);\n setStylesheet(_stylesheet);\n }, [brandTheme, theme]);\n\n // ------------------------------------\n\n if (!styleSheet) {\n return null;\n }\n\n return (\n <View style={[styleSheet.spaced, fullWitdh && styleSheet.fullWitdh]}>\n <TextInput\n style={[styleSheet.input, styleSheet.text]}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChangeText={onChange}\n placeholder={translations.typeHere}\n placeholderTextColor={PLACEHOLDER_COLOR}\n value={value}\n testID={testID}\n editable={!isDisabled}\n selectTextOnFocus={!isDisabled}\n />\n </View>\n );\n};\n\nexport default FreeText;\n"],"file":"index.native.js"}
1
+ {"version":3,"sources":["../../../../src/molecule/questions/free-text/index.native.tsx"],"names":["createStyleSheet","brandTheme","theme","StyleSheet","create","input","padding","spacing","tiny","borderWidth","borderColor","colors","gray","lightMedium","borderRadius","radius","common","backgroundColor","white","minWidth","text","primary","color","medium","fontWeight","bold","fontSize","regular","textAlign","spaced","paddingVertical","fullWitdh","width","logEvent","eventName","analytics","questionType","id","FreeText","props","templateContext","styleSheet","setStylesheet","translations","PLACEHOLDER_COLOR","fullWidth","testID","onChange","isDisabled","value","handleFocus","ANALYTICS_EVENT_TYPE","INPUT_FOCUS","handleBlur","INPUT_BLUR","_stylesheet","typeHere"],"mappings":"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","sourcesContent":["import {View, StyleSheet, TextInput} from 'react-native';\nimport React, {useState, useEffect, useCallback} from 'react';\nimport {useTemplateContext} from '../../../template/app-review/template-context';\nimport {ANALYTICS_EVENT_TYPE, Analytics} from '../../../variables/analytics';\nimport {Theme} from '../../../variables/theme.native';\nimport {FontSize, TextAlign} from '../../../types/styles';\n\ntype QuestionType = 'basic' | 'template';\n\ninterface Props {\n fullWidth?: boolean;\n testID: string;\n questionType: QuestionType;\n analytics?: Analytics;\n onChange: (text: string) => void;\n isDisabled?: boolean;\n value: string;\n}\n\ntype StyleSheetType = {\n input: {\n padding: number;\n borderWidth: number;\n borderColor: string;\n borderRadius: number;\n backgroundColor: string;\n minWidth: number;\n };\n text: {\n color: string;\n fontWeight:\n | 'normal'\n | 'bold'\n | '100'\n | '200'\n | '300'\n | '400'\n | '500'\n | '600'\n | '700'\n | '800'\n | '900'\n | undefined;\n fontSize: FontSize;\n textAlign: TextAlign;\n };\n spaced: {\n paddingVertical: number;\n };\n fullWitdh: {\n width: string;\n };\n};\n\nconst createStyleSheet = (brandTheme: any, theme: Theme) =>\n StyleSheet.create({\n input: {\n padding: theme.spacing.tiny,\n borderWidth: 1,\n borderColor: theme.colors.gray.lightMedium,\n borderRadius: theme.radius.common,\n backgroundColor: theme.colors.white,\n minWidth: 175\n },\n text: {\n borderColor: brandTheme?.colors.primary,\n color: brandTheme?.colors.primary || theme.colors.gray.medium,\n fontWeight: theme.fontWeight.bold,\n fontSize: theme.fontSize.regular,\n textAlign: 'center'\n },\n spaced: {\n paddingVertical: theme.spacing.tiny\n },\n fullWitdh: {\n width: '100%'\n }\n });\n\nconst logEvent = (eventName: string, analytics: Analytics, questionType: QuestionType) => {\n analytics &&\n analytics.logEvent(eventName, {\n id: `question-input-text`,\n questionType\n });\n};\n\nconst FreeText = (props: Props) => {\n const templateContext = useTemplateContext();\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n const {brandTheme, theme, translations} = templateContext;\n const PLACEHOLDER_COLOR = theme.colors.gray.medium;\n\n // ------------------------------------\n\n const {\n analytics,\n questionType,\n fullWidth = false,\n testID,\n onChange,\n isDisabled = false,\n value\n } = props;\n\n // ------------------------------------\n\n const handleFocus = useCallback(\n () => analytics && logEvent(ANALYTICS_EVENT_TYPE.INPUT_FOCUS, analytics, questionType),\n [analytics, questionType]\n );\n\n const handleBlur = useCallback(\n () => analytics && logEvent(ANALYTICS_EVENT_TYPE.INPUT_BLUR, analytics, questionType),\n [analytics, questionType]\n );\n\n // ------------------------------------\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(brandTheme, theme);\n setStylesheet(_stylesheet);\n }, [brandTheme, theme]);\n\n // ------------------------------------\n\n if (!styleSheet) {\n return null;\n }\n\n return (\n <View style={[styleSheet.spaced, fullWidth && styleSheet.fullWitdh]}>\n <TextInput\n style={[styleSheet.input, styleSheet.text]}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChangeText={onChange}\n placeholder={translations.typeHere}\n placeholderTextColor={PLACEHOLDER_COLOR}\n value={value}\n testID={testID}\n editable={!isDisabled}\n selectTextOnFocus={!isDisabled}\n />\n </View>\n );\n};\n\nexport default FreeText;\n"],"file":"index.native.js"}