@pie-lib/config-ui 11.10.0-beta.2 → 11.10.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/lib/alert-dialog.js +75 -0
  3. package/lib/alert-dialog.js.map +1 -0
  4. package/lib/checkbox.js +99 -0
  5. package/lib/checkbox.js.map +1 -0
  6. package/lib/choice-configuration/feedback-menu.js +164 -0
  7. package/lib/choice-configuration/feedback-menu.js.map +1 -0
  8. package/lib/choice-configuration/index.js +445 -0
  9. package/lib/choice-configuration/index.js.map +1 -0
  10. package/lib/choice-utils.js +54 -0
  11. package/lib/choice-utils.js.map +1 -0
  12. package/lib/feedback-config/feedback-selector.js +195 -0
  13. package/lib/feedback-config/feedback-selector.js.map +1 -0
  14. package/lib/feedback-config/group.js +75 -0
  15. package/lib/feedback-config/group.js.map +1 -0
  16. package/lib/feedback-config/index.js +189 -0
  17. package/lib/feedback-config/index.js.map +1 -0
  18. package/lib/form-section.js +46 -0
  19. package/lib/form-section.js.map +1 -0
  20. package/lib/help.js +147 -0
  21. package/lib/help.js.map +1 -0
  22. package/lib/index.js +216 -0
  23. package/lib/index.js.map +1 -0
  24. package/lib/input.js +139 -0
  25. package/lib/input.js.map +1 -0
  26. package/lib/inputs.js +139 -0
  27. package/lib/inputs.js.map +1 -0
  28. package/lib/langs.js +179 -0
  29. package/lib/langs.js.map +1 -0
  30. package/lib/layout/config-layout.js +143 -0
  31. package/lib/layout/config-layout.js.map +1 -0
  32. package/lib/layout/index.js +24 -0
  33. package/lib/layout/index.js.map +1 -0
  34. package/lib/layout/layout-contents.js +191 -0
  35. package/lib/layout/layout-contents.js.map +1 -0
  36. package/lib/layout/settings-box.js +86 -0
  37. package/lib/layout/settings-box.js.map +1 -0
  38. package/lib/mui-box/index.js +79 -0
  39. package/lib/mui-box/index.js.map +1 -0
  40. package/lib/number-text-field-custom.js +458 -0
  41. package/lib/number-text-field-custom.js.map +1 -0
  42. package/lib/number-text-field.js +267 -0
  43. package/lib/number-text-field.js.map +1 -0
  44. package/lib/radio-with-label.js +49 -0
  45. package/lib/radio-with-label.js.map +1 -0
  46. package/lib/settings/display-size.js +77 -0
  47. package/lib/settings/display-size.js.map +1 -0
  48. package/lib/settings/index.js +143 -0
  49. package/lib/settings/index.js.map +1 -0
  50. package/lib/settings/panel.js +463 -0
  51. package/lib/settings/panel.js.map +1 -0
  52. package/lib/settings/settings-radio-label.js +53 -0
  53. package/lib/settings/settings-radio-label.js.map +1 -0
  54. package/lib/settings/toggle.js +74 -0
  55. package/lib/settings/toggle.js.map +1 -0
  56. package/lib/tabs/index.js +110 -0
  57. package/lib/tabs/index.js.map +1 -0
  58. package/lib/tags-input/index.js +198 -0
  59. package/lib/tags-input/index.js.map +1 -0
  60. package/lib/two-choice.js +180 -0
  61. package/lib/two-choice.js.map +1 -0
  62. package/lib/with-stateful-model.js +84 -0
  63. package/lib/with-stateful-model.js.map +1 -0
  64. package/package.json +1 -1
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.FeedbackType = exports.FeedbackSelector = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
25
+
26
+ var _renderUi = require("@pie-lib/render-ui");
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _react = _interopRequireDefault(require("react"));
31
+
32
+ var _styles = require("@material-ui/core/styles");
33
+
34
+ var _group = _interopRequireDefault(require("./group"));
35
+
36
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
37
+
38
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
39
+
40
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
41
+
42
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
43
+
44
+ var feedbackLabels = {
45
+ "default": 'Simple Feedback',
46
+ none: 'No Feedback',
47
+ custom: 'Customized Feedback'
48
+ };
49
+
50
+ var holder = function holder(theme, extras) {
51
+ return _objectSpread({
52
+ marginTop: '0px',
53
+ background: theme.palette.grey[300],
54
+ padding: theme.spacing.unit,
55
+ marginBottom: theme.spacing.unit * 2,
56
+ borderRadius: '4px'
57
+ }, extras);
58
+ };
59
+
60
+ var style = function style(theme) {
61
+ return {
62
+ feedbackSelector: {
63
+ marginBottom: theme.spacing.unit
64
+ },
65
+ label: {
66
+ cursor: 'pointer'
67
+ },
68
+ inputContainerLabel: {
69
+ transform: 'translateY(-20%)'
70
+ },
71
+ feedbackInputContainer: {
72
+ paddingBottom: 0
73
+ },
74
+ customHolder: holder(theme, {
75
+ background: theme.palette.grey[300],
76
+ padding: 0
77
+ }),
78
+ defaultHolder: holder(theme, {
79
+ fontFamily: theme.typography.fontFamily,
80
+ padding: theme.spacing.unit * 2,
81
+ cursor: 'default'
82
+ }),
83
+ editor: {
84
+ fontFamily: theme.typography.fontFamily
85
+ },
86
+ group: {
87
+ paddingTop: theme.spacing.unit
88
+ }
89
+ };
90
+ };
91
+
92
+ var FeedbackType = {
93
+ type: _propTypes["default"].oneOf(['default', 'custom', 'none']),
94
+ "default": _propTypes["default"].string,
95
+ custom: _propTypes["default"].string
96
+ };
97
+ exports.FeedbackType = FeedbackType;
98
+
99
+ var FeedbackSelector = /*#__PURE__*/function (_React$Component) {
100
+ (0, _inherits2["default"])(FeedbackSelector, _React$Component);
101
+
102
+ var _super = _createSuper(FeedbackSelector);
103
+
104
+ function FeedbackSelector() {
105
+ var _this;
106
+
107
+ (0, _classCallCheck2["default"])(this, FeedbackSelector);
108
+
109
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
110
+ args[_key] = arguments[_key];
111
+ }
112
+
113
+ _this = _super.call.apply(_super, [this].concat(args));
114
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeType", function (type) {
115
+ var _this$props = _this.props,
116
+ onChange = _this$props.onChange,
117
+ feedback = _this$props.feedback;
118
+ onChange(_objectSpread(_objectSpread({}, feedback), {}, {
119
+ type: type
120
+ }));
121
+ });
122
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeCustom", function (custom) {
123
+ var _this$props2 = _this.props,
124
+ onChange = _this$props2.onChange,
125
+ feedback = _this$props2.feedback;
126
+ onChange(_objectSpread(_objectSpread({}, feedback), {}, {
127
+ type: 'custom',
128
+ custom: custom
129
+ }));
130
+ });
131
+ return _this;
132
+ }
133
+
134
+ (0, _createClass2["default"])(FeedbackSelector, [{
135
+ key: "render",
136
+ value: function render() {
137
+ var _this$props3 = this.props,
138
+ keys = _this$props3.keys,
139
+ classes = _this$props3.classes,
140
+ label = _this$props3.label,
141
+ feedback = _this$props3.feedback,
142
+ toolbarOpts = _this$props3.toolbarOpts,
143
+ _this$props3$mathMlOp = _this$props3.mathMlOptions,
144
+ mathMlOptions = _this$props3$mathMlOp === void 0 ? {} : _this$props3$mathMlOp;
145
+ var feedbackKeys = keys || Object.keys(feedbackLabels);
146
+ return /*#__PURE__*/_react["default"].createElement("div", {
147
+ className: classes.feedbackSelector
148
+ }, /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
149
+ label: label,
150
+ className: classes.feedbackInputContainer,
151
+ extraClasses: {
152
+ label: classes.inputContainerLabel
153
+ }
154
+ }, /*#__PURE__*/_react["default"].createElement(_group["default"], {
155
+ className: classes.group,
156
+ keys: feedbackKeys,
157
+ label: label,
158
+ value: feedback.type,
159
+ onChange: this.changeType,
160
+ feedbackLabels: feedbackLabels
161
+ })), feedback.type === 'custom' && /*#__PURE__*/_react["default"].createElement("div", {
162
+ className: classes.customHolder
163
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
164
+ className: classes.editor,
165
+ onChange: this.changeCustom,
166
+ markup: feedback.custom || '',
167
+ toolbarOpts: toolbarOpts,
168
+ languageCharactersProps: [{
169
+ language: 'spanish'
170
+ }, {
171
+ language: 'special'
172
+ }],
173
+ mathMlOptions: mathMlOptions
174
+ })), feedback.type === 'default' && /*#__PURE__*/_react["default"].createElement("div", {
175
+ className: classes.defaultHolder
176
+ }, " ", feedback["default"]));
177
+ }
178
+ }]);
179
+ return FeedbackSelector;
180
+ }(_react["default"].Component);
181
+
182
+ exports.FeedbackSelector = FeedbackSelector;
183
+ (0, _defineProperty2["default"])(FeedbackSelector, "propTypes", {
184
+ keys: _propTypes["default"].arrayOf(_propTypes["default"].string),
185
+ classes: _propTypes["default"].object.isRequired,
186
+ label: _propTypes["default"].string.isRequired,
187
+ feedback: _propTypes["default"].shape(FeedbackType).isRequired,
188
+ onChange: _propTypes["default"].func.isRequired,
189
+ toolbarOpts: _propTypes["default"].object
190
+ });
191
+
192
+ var _default = (0, _styles.withStyles)(style)(FeedbackSelector);
193
+
194
+ exports["default"] = _default;
195
+ //# sourceMappingURL=feedback-selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/feedback-config/feedback-selector.jsx"],"names":["feedbackLabels","none","custom","holder","theme","extras","marginTop","background","palette","grey","padding","spacing","unit","marginBottom","borderRadius","style","feedbackSelector","label","cursor","inputContainerLabel","transform","feedbackInputContainer","paddingBottom","customHolder","defaultHolder","fontFamily","typography","editor","group","paddingTop","FeedbackType","type","PropTypes","oneOf","string","FeedbackSelector","props","onChange","feedback","keys","classes","toolbarOpts","mathMlOptions","feedbackKeys","Object","changeType","changeCustom","language","React","Component","arrayOf","object","isRequired","shape","func"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,cAAc,GAAG;AACrB,aAAS,iBADY;AAErBC,EAAAA,IAAI,EAAE,aAFe;AAGrBC,EAAAA,MAAM,EAAE;AAHa,CAAvB;;AAMA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD,EAAQC,MAAR;AAAA;AACbC,IAAAA,SAAS,EAAE,KADE;AAEbC,IAAAA,UAAU,EAAEH,KAAK,CAACI,OAAN,CAAcC,IAAd,CAAmB,GAAnB,CAFC;AAGbC,IAAAA,OAAO,EAAEN,KAAK,CAACO,OAAN,CAAcC,IAHV;AAIbC,IAAAA,YAAY,EAAET,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAJtB;AAKbE,IAAAA,YAAY,EAAE;AALD,KAMVT,MANU;AAAA,CAAf;;AASA,IAAMU,KAAK,GAAG,SAARA,KAAQ,CAACX,KAAD;AAAA,SAAY;AACxBY,IAAAA,gBAAgB,EAAE;AAChBH,MAAAA,YAAY,EAAET,KAAK,CAACO,OAAN,CAAcC;AADZ,KADM;AAIxBK,IAAAA,KAAK,EAAE;AACLC,MAAAA,MAAM,EAAE;AADH,KAJiB;AAOxBC,IAAAA,mBAAmB,EAAE;AACnBC,MAAAA,SAAS,EAAE;AADQ,KAPG;AAUxBC,IAAAA,sBAAsB,EAAE;AACtBC,MAAAA,aAAa,EAAE;AADO,KAVA;AAaxBC,IAAAA,YAAY,EAAEpB,MAAM,CAACC,KAAD,EAAQ;AAC1BG,MAAAA,UAAU,EAAEH,KAAK,CAACI,OAAN,CAAcC,IAAd,CAAmB,GAAnB,CADc;AAE1BC,MAAAA,OAAO,EAAE;AAFiB,KAAR,CAbI;AAiBxBc,IAAAA,aAAa,EAAErB,MAAM,CAACC,KAAD,EAAQ;AAC3BqB,MAAAA,UAAU,EAAErB,KAAK,CAACsB,UAAN,CAAiBD,UADF;AAE3Bf,MAAAA,OAAO,EAAEN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAFH;AAG3BM,MAAAA,MAAM,EAAE;AAHmB,KAAR,CAjBG;AAsBxBS,IAAAA,MAAM,EAAE;AACNF,MAAAA,UAAU,EAAErB,KAAK,CAACsB,UAAN,CAAiBD;AADvB,KAtBgB;AAyBxBG,IAAAA,KAAK,EAAE;AACLC,MAAAA,UAAU,EAAEzB,KAAK,CAACO,OAAN,CAAcC;AADrB;AAzBiB,GAAZ;AAAA,CAAd;;AA8BO,IAAMkB,YAAY,GAAG;AAC1BC,EAAAA,IAAI,EAAEC,sBAAUC,KAAV,CAAgB,CAAC,SAAD,EAAY,QAAZ,EAAsB,MAAtB,CAAhB,CADoB;AAE1B,aAASD,sBAAUE,MAFO;AAG1BhC,EAAAA,MAAM,EAAE8B,sBAAUE;AAHQ,CAArB;;;IAMMC,gB;;;;;;;;;;;;;;;mGAUE,UAACJ,IAAD,EAAU;AACrB,wBAA+B,MAAKK,KAApC;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,QAAlB,eAAkBA,QAAlB;AAEAD,MAAAA,QAAQ,iCAAMC,QAAN;AAAgBP,QAAAA,IAAI,EAAJA;AAAhB,SAAR;AACD,K;qGAEc,UAAC7B,MAAD,EAAY;AACzB,yBAA+B,MAAKkC,KAApC;AAAA,UAAQC,QAAR,gBAAQA,QAAR;AAAA,UAAkBC,QAAlB,gBAAkBA,QAAlB;AAEAD,MAAAA,QAAQ,iCAAMC,QAAN;AAAgBP,QAAAA,IAAI,EAAE,QAAtB;AAAgC7B,QAAAA,MAAM,EAANA;AAAhC,SAAR;AACD,K;;;;;;WAED,kBAAS;AACP,yBAA4E,KAAKkC,KAAjF;AAAA,UAAQG,IAAR,gBAAQA,IAAR;AAAA,UAAcC,OAAd,gBAAcA,OAAd;AAAA,UAAuBvB,KAAvB,gBAAuBA,KAAvB;AAAA,UAA8BqB,QAA9B,gBAA8BA,QAA9B;AAAA,UAAwCG,WAAxC,gBAAwCA,WAAxC;AAAA,+CAAqDC,aAArD;AAAA,UAAqDA,aAArD,sCAAqE,EAArE;AAEA,UAAMC,YAAY,GAAGJ,IAAI,IAAIK,MAAM,CAACL,IAAP,CAAYvC,cAAZ,CAA7B;AAEA,0BACE;AAAK,QAAA,SAAS,EAAEwC,OAAO,CAACxB;AAAxB,sBACE,gCAAC,wBAAD;AACE,QAAA,KAAK,EAAEC,KADT;AAEE,QAAA,SAAS,EAAEuB,OAAO,CAACnB,sBAFrB;AAGE,QAAA,YAAY,EAAE;AAAEJ,UAAAA,KAAK,EAAEuB,OAAO,CAACrB;AAAjB;AAHhB,sBAKE,gCAAC,iBAAD;AACE,QAAA,SAAS,EAAEqB,OAAO,CAACZ,KADrB;AAEE,QAAA,IAAI,EAAEe,YAFR;AAGE,QAAA,KAAK,EAAE1B,KAHT;AAIE,QAAA,KAAK,EAAEqB,QAAQ,CAACP,IAJlB;AAKE,QAAA,QAAQ,EAAE,KAAKc,UALjB;AAME,QAAA,cAAc,EAAE7C;AANlB,QALF,CADF,EAgBGsC,QAAQ,CAACP,IAAT,KAAkB,QAAlB,iBACC;AAAK,QAAA,SAAS,EAAES,OAAO,CAACjB;AAAxB,sBACE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAEiB,OAAO,CAACb,MADrB;AAEE,QAAA,QAAQ,EAAE,KAAKmB,YAFjB;AAGE,QAAA,MAAM,EAAER,QAAQ,CAACpC,MAAT,IAAmB,EAH7B;AAIE,QAAA,WAAW,EAAEuC,WAJf;AAKE,QAAA,uBAAuB,EAAE,CAAC;AAAEM,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B,CAL3B;AAME,QAAA,aAAa,EAAEL;AANjB,QADF,CAjBJ,EA6BGJ,QAAQ,CAACP,IAAT,KAAkB,SAAlB,iBAA+B;AAAK,QAAA,SAAS,EAAES,OAAO,CAAChB;AAAxB,cAAyCc,QAAQ,WAAjD,CA7BlC,CADF;AAiCD;;;EA5DmCU,kBAAMC,S;;;iCAA/Bd,gB,eACQ;AACjBI,EAAAA,IAAI,EAAEP,sBAAUkB,OAAV,CAAkBlB,sBAAUE,MAA5B,CADW;AAEjBM,EAAAA,OAAO,EAAER,sBAAUmB,MAAV,CAAiBC,UAFT;AAGjBnC,EAAAA,KAAK,EAAEe,sBAAUE,MAAV,CAAiBkB,UAHP;AAIjBd,EAAAA,QAAQ,EAAEN,sBAAUqB,KAAV,CAAgBvB,YAAhB,EAA8BsB,UAJvB;AAKjBf,EAAAA,QAAQ,EAAEL,sBAAUsB,IAAV,CAAeF,UALR;AAMjBX,EAAAA,WAAW,EAAET,sBAAUmB;AANN,C;;eA8DN,wBAAWpC,KAAX,EAAkBoB,gBAAlB,C","sourcesContent":["import EditableHTML from '@pie-lib/editable-html';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Group from './group';\n\nconst feedbackLabels = {\n default: 'Simple Feedback',\n none: 'No Feedback',\n custom: 'Customized Feedback',\n};\n\nconst holder = (theme, extras) => ({\n marginTop: '0px',\n background: theme.palette.grey[300],\n padding: theme.spacing.unit,\n marginBottom: theme.spacing.unit * 2,\n borderRadius: '4px',\n ...extras,\n});\n\nconst style = (theme) => ({\n feedbackSelector: {\n marginBottom: theme.spacing.unit,\n },\n label: {\n cursor: 'pointer',\n },\n inputContainerLabel: {\n transform: 'translateY(-20%)',\n },\n feedbackInputContainer: {\n paddingBottom: 0,\n },\n customHolder: holder(theme, {\n background: theme.palette.grey[300],\n padding: 0,\n }),\n defaultHolder: holder(theme, {\n fontFamily: theme.typography.fontFamily,\n padding: theme.spacing.unit * 2,\n cursor: 'default',\n }),\n editor: {\n fontFamily: theme.typography.fontFamily,\n },\n group: {\n paddingTop: theme.spacing.unit,\n },\n});\n\nexport const FeedbackType = {\n type: PropTypes.oneOf(['default', 'custom', 'none']),\n default: PropTypes.string,\n custom: PropTypes.string,\n};\n\nexport class FeedbackSelector extends React.Component {\n static propTypes = {\n keys: PropTypes.arrayOf(PropTypes.string),\n classes: PropTypes.object.isRequired,\n label: PropTypes.string.isRequired,\n feedback: PropTypes.shape(FeedbackType).isRequired,\n onChange: PropTypes.func.isRequired,\n toolbarOpts: PropTypes.object,\n };\n\n changeType = (type) => {\n const { onChange, feedback } = this.props;\n\n onChange({ ...feedback, type });\n };\n\n changeCustom = (custom) => {\n const { onChange, feedback } = this.props;\n\n onChange({ ...feedback, type: 'custom', custom });\n };\n\n render() {\n const { keys, classes, label, feedback, toolbarOpts, mathMlOptions = {} } = this.props;\n\n const feedbackKeys = keys || Object.keys(feedbackLabels);\n\n return (\n <div className={classes.feedbackSelector}>\n <InputContainer\n label={label}\n className={classes.feedbackInputContainer}\n extraClasses={{ label: classes.inputContainerLabel }}\n >\n <Group\n className={classes.group}\n keys={feedbackKeys}\n label={label}\n value={feedback.type}\n onChange={this.changeType}\n feedbackLabels={feedbackLabels}\n />\n </InputContainer>\n\n {feedback.type === 'custom' && (\n <div className={classes.customHolder}>\n <EditableHTML\n className={classes.editor}\n onChange={this.changeCustom}\n markup={feedback.custom || ''}\n toolbarOpts={toolbarOpts}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </div>\n )}\n\n {feedback.type === 'default' && <div className={classes.defaultHolder}> {feedback.default}</div>}\n </div>\n );\n }\n}\n\nexport default withStyles(style)(FeedbackSelector);\n"],"file":"feedback-selector.js"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _radioWithLabel = _interopRequireDefault(require("../radio-with-label"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _styles = require("@material-ui/core/styles");
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var styles = function styles(theme) {
21
+ return {
22
+ radioLabel: {
23
+ fontSize: theme.typography.fontSize - 2
24
+ },
25
+ choice: {
26
+ display: 'flex',
27
+ alignItems: 'center'
28
+ },
29
+ choiceHolder: {
30
+ display: 'flex',
31
+ alignItems: 'center'
32
+ }
33
+ };
34
+ };
35
+
36
+ var Group = function Group(props) {
37
+ var feedbackLabels = props.feedbackLabels,
38
+ value = props.value,
39
+ classes = props.classes,
40
+ className = props.className,
41
+ _onChange = props.onChange,
42
+ keys = props.keys;
43
+ return /*#__PURE__*/_react["default"].createElement("div", {
44
+ className: (0, _classnames["default"])(classes.choiceHolder, className)
45
+ }, keys.map(function (key) {
46
+ return /*#__PURE__*/_react["default"].createElement("div", {
47
+ className: classes.choice,
48
+ key: key
49
+ }, /*#__PURE__*/_react["default"].createElement(_radioWithLabel["default"], {
50
+ value: key,
51
+ checked: value === key,
52
+ classes: {
53
+ label: classes.radioLabel
54
+ },
55
+ onChange: function onChange(e) {
56
+ return _onChange(e.currentTarget.value);
57
+ },
58
+ label: feedbackLabels[key]
59
+ }));
60
+ }));
61
+ };
62
+
63
+ Group.propTypes = {
64
+ className: _propTypes["default"].string,
65
+ feedbackLabels: _propTypes["default"].object.isRequired,
66
+ value: _propTypes["default"].string.isRequired,
67
+ classes: _propTypes["default"].object.isRequired,
68
+ keys: _propTypes["default"].arrayOf(_propTypes["default"].string),
69
+ onChange: _propTypes["default"].func
70
+ };
71
+
72
+ var _default = (0, _styles.withStyles)(styles)(Group);
73
+
74
+ exports["default"] = _default;
75
+ //# sourceMappingURL=group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/feedback-config/group.jsx"],"names":["styles","theme","radioLabel","fontSize","typography","choice","display","alignItems","choiceHolder","Group","props","feedbackLabels","value","classes","className","onChange","keys","map","key","label","e","currentTarget","propTypes","PropTypes","string","object","isRequired","arrayOf","func"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,UAAU,EAAE;AACVC,MAAAA,QAAQ,EAAEF,KAAK,CAACG,UAAN,CAAiBD,QAAjB,GAA4B;AAD5B,KADa;AAIzBE,IAAAA,MAAM,EAAE;AACNC,MAAAA,OAAO,EAAE,MADH;AAENC,MAAAA,UAAU,EAAE;AAFN,KAJiB;AAQzBC,IAAAA,YAAY,EAAE;AACZF,MAAAA,OAAO,EAAE,MADG;AAEZC,MAAAA,UAAU,EAAE;AAFA;AARW,GAAZ;AAAA,CAAf;;AAcA,IAAME,KAAK,GAAG,SAARA,KAAQ,CAACC,KAAD,EAAW;AACvB,MAAQC,cAAR,GAAsED,KAAtE,CAAQC,cAAR;AAAA,MAAwBC,KAAxB,GAAsEF,KAAtE,CAAwBE,KAAxB;AAAA,MAA+BC,OAA/B,GAAsEH,KAAtE,CAA+BG,OAA/B;AAAA,MAAwCC,SAAxC,GAAsEJ,KAAtE,CAAwCI,SAAxC;AAAA,MAAmDC,SAAnD,GAAsEL,KAAtE,CAAmDK,QAAnD;AAAA,MAA6DC,IAA7D,GAAsEN,KAAtE,CAA6DM,IAA7D;AAEA,sBACE;AAAK,IAAA,SAAS,EAAE,4BAAWH,OAAO,CAACL,YAAnB,EAAiCM,SAAjC;AAAhB,KACGE,IAAI,CAACC,GAAL,CAAS,UAACC,GAAD,EAAS;AACjB,wBACE;AAAK,MAAA,SAAS,EAAEL,OAAO,CAACR,MAAxB;AAAgC,MAAA,GAAG,EAAEa;AAArC,oBACE,gCAAC,0BAAD;AACE,MAAA,KAAK,EAAEA,GADT;AAEE,MAAA,OAAO,EAAEN,KAAK,KAAKM,GAFrB;AAGE,MAAA,OAAO,EAAE;AAAEC,QAAAA,KAAK,EAAEN,OAAO,CAACX;AAAjB,OAHX;AAIE,MAAA,QAAQ,EAAE,kBAACkB,CAAD;AAAA,eAAOL,SAAQ,CAACK,CAAC,CAACC,aAAF,CAAgBT,KAAjB,CAAf;AAAA,OAJZ;AAKE,MAAA,KAAK,EAAED,cAAc,CAACO,GAAD;AALvB,MADF,CADF;AAWD,GAZA,CADH,CADF;AAiBD,CApBD;;AAsBAT,KAAK,CAACa,SAAN,GAAkB;AAChBR,EAAAA,SAAS,EAAES,sBAAUC,MADL;AAEhBb,EAAAA,cAAc,EAAEY,sBAAUE,MAAV,CAAiBC,UAFjB;AAGhBd,EAAAA,KAAK,EAAEW,sBAAUC,MAAV,CAAiBE,UAHR;AAIhBb,EAAAA,OAAO,EAAEU,sBAAUE,MAAV,CAAiBC,UAJV;AAKhBV,EAAAA,IAAI,EAAEO,sBAAUI,OAAV,CAAkBJ,sBAAUC,MAA5B,CALU;AAMhBT,EAAAA,QAAQ,EAAEQ,sBAAUK;AANJ,CAAlB;;eASe,wBAAW5B,MAAX,EAAmBS,KAAnB,C","sourcesContent":["import PropTypes from 'prop-types';\nimport RadioWithLabel from '../radio-with-label';\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst styles = (theme) => ({\n radioLabel: {\n fontSize: theme.typography.fontSize - 2,\n },\n choice: {\n display: 'flex',\n alignItems: 'center',\n },\n choiceHolder: {\n display: 'flex',\n alignItems: 'center',\n },\n});\n\nconst Group = (props) => {\n const { feedbackLabels, value, classes, className, onChange, keys } = props;\n\n return (\n <div className={classNames(classes.choiceHolder, className)}>\n {keys.map((key) => {\n return (\n <div className={classes.choice} key={key}>\n <RadioWithLabel\n value={key}\n checked={value === key}\n classes={{ label: classes.radioLabel }}\n onChange={(e) => onChange(e.currentTarget.value)}\n label={feedbackLabels[key]}\n />\n </div>\n );\n })}\n </div>\n );\n};\n\nGroup.propTypes = {\n className: PropTypes.string,\n feedbackLabels: PropTypes.object.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object.isRequired,\n keys: PropTypes.arrayOf(PropTypes.string),\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(Group);\n"],"file":"group.js"}
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.FeedbackConfig = void 0;
11
+ Object.defineProperty(exports, "FeedbackSelector", {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return _feedbackSelector["default"];
15
+ }
16
+ });
17
+ exports["default"] = exports.buildDefaults = void 0;
18
+
19
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
20
+
21
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
22
+
23
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
24
+
25
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
26
+
27
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
28
+
29
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
30
+
31
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
32
+
33
+ var _feedbackSelector = _interopRequireWildcard(require("./feedback-selector"));
34
+
35
+ var _propTypes = _interopRequireDefault(require("prop-types"));
36
+
37
+ var _react = _interopRequireDefault(require("react"));
38
+
39
+ var _styles = require("@material-ui/core/styles");
40
+
41
+ var _ExpansionPanel = _interopRequireDefault(require("@material-ui/core/ExpansionPanel"));
42
+
43
+ var _ExpansionPanelSummary = _interopRequireDefault(require("@material-ui/core/ExpansionPanelSummary"));
44
+
45
+ var _ExpansionPanelDetails = _interopRequireDefault(require("@material-ui/core/ExpansionPanelDetails"));
46
+
47
+ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
48
+
49
+ var _ExpandMore = _interopRequireDefault(require("@material-ui/icons/ExpandMore"));
50
+
51
+ var _merge = _interopRequireDefault(require("lodash/merge"));
52
+
53
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
54
+
55
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
56
+
57
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
58
+
59
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
60
+
61
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
62
+
63
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
64
+
65
+ var style = {
66
+ feedbackContainer: {
67
+ display: 'flex',
68
+ flex: 1,
69
+ flexDirection: 'column'
70
+ },
71
+ panelDetails: {
72
+ paddingTop: 0,
73
+ paddingBottom: 0
74
+ }
75
+ };
76
+
77
+ var buildDefaults = function buildDefaults(input) {
78
+ return (0, _merge["default"])({}, {
79
+ correct: {
80
+ type: 'default',
81
+ "default": 'Correct'
82
+ },
83
+ incorrect: {
84
+ type: 'default',
85
+ "default": 'Incorrect'
86
+ },
87
+ partial: {
88
+ type: 'default',
89
+ "default": 'Nearly'
90
+ }
91
+ }, input);
92
+ };
93
+
94
+ exports.buildDefaults = buildDefaults;
95
+
96
+ var FeedbackConfig = /*#__PURE__*/function (_React$Component) {
97
+ (0, _inherits2["default"])(FeedbackConfig, _React$Component);
98
+
99
+ var _super = _createSuper(FeedbackConfig);
100
+
101
+ function FeedbackConfig() {
102
+ var _this;
103
+
104
+ (0, _classCallCheck2["default"])(this, FeedbackConfig);
105
+
106
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
107
+ args[_key] = arguments[_key];
108
+ }
109
+
110
+ _this = _super.call.apply(_super, [this].concat(args));
111
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onCorrectChange", _this.onChange.bind((0, _assertThisInitialized2["default"])(_this), 'correct'));
112
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onIncorrectChange", _this.onChange.bind((0, _assertThisInitialized2["default"])(_this), 'incorrect'));
113
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPartialChange", _this.onChange.bind((0, _assertThisInitialized2["default"])(_this), 'partial'));
114
+ return _this;
115
+ }
116
+
117
+ (0, _createClass2["default"])(FeedbackConfig, [{
118
+ key: "onChange",
119
+ value: function onChange(key, config) {
120
+ var _this$props = this.props,
121
+ feedback = _this$props.feedback,
122
+ onChange = _this$props.onChange;
123
+
124
+ var update = _objectSpread(_objectSpread({}, feedback), {}, (0, _defineProperty2["default"])({}, key, config));
125
+
126
+ onChange(update);
127
+ }
128
+ }, {
129
+ key: "render",
130
+ value: function render() {
131
+ var _this$props2 = this.props,
132
+ classes = _this$props2.classes,
133
+ className = _this$props2.className,
134
+ allowPartial = _this$props2.allowPartial,
135
+ feedback = _this$props2.feedback,
136
+ toolbarOpts = _this$props2.toolbarOpts;
137
+ return /*#__PURE__*/_react["default"].createElement("div", {
138
+ className: className
139
+ }, /*#__PURE__*/_react["default"].createElement(_ExpansionPanel["default"], null, /*#__PURE__*/_react["default"].createElement(_ExpansionPanelSummary["default"], {
140
+ expandIcon: /*#__PURE__*/_react["default"].createElement(_ExpandMore["default"], null)
141
+ }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
142
+ className: classes.heading
143
+ }, "Feedback")), /*#__PURE__*/_react["default"].createElement(_ExpansionPanelDetails["default"], {
144
+ className: classes.panelDetails
145
+ }, /*#__PURE__*/_react["default"].createElement("div", {
146
+ className: classes.feedbackContainer
147
+ }, /*#__PURE__*/_react["default"].createElement(_feedbackSelector["default"], {
148
+ label: "If correct, show",
149
+ feedback: feedback.correct,
150
+ onChange: this.onCorrectChange,
151
+ toolbarOpts: toolbarOpts
152
+ }), allowPartial && /*#__PURE__*/_react["default"].createElement(_feedbackSelector["default"], {
153
+ label: "If partially correct, show",
154
+ feedback: feedback.partial,
155
+ onChange: this.onPartialChange,
156
+ toolbarOpts: toolbarOpts
157
+ }), /*#__PURE__*/_react["default"].createElement(_feedbackSelector["default"], {
158
+ label: "If incorrect, show",
159
+ feedback: feedback.incorrect,
160
+ onChange: this.onIncorrectChange,
161
+ toolbarOpts: toolbarOpts
162
+ })))));
163
+ }
164
+ }]);
165
+ return FeedbackConfig;
166
+ }(_react["default"].Component);
167
+
168
+ exports.FeedbackConfig = FeedbackConfig;
169
+ (0, _defineProperty2["default"])(FeedbackConfig, "propTypes", {
170
+ allowPartial: _propTypes["default"].bool,
171
+ className: _propTypes["default"].string,
172
+ feedback: _propTypes["default"].shape({
173
+ correct: _propTypes["default"].shape(_feedbackSelector.FeedbackType),
174
+ incorrect: _propTypes["default"].shape(_feedbackSelector.FeedbackType),
175
+ partial: _propTypes["default"].shape(_feedbackSelector.FeedbackType)
176
+ }),
177
+ onChange: _propTypes["default"].func.isRequired,
178
+ classes: _propTypes["default"].object.isRequired,
179
+ toolbarOpts: _propTypes["default"].object
180
+ });
181
+ (0, _defineProperty2["default"])(FeedbackConfig, "defaultProps", {
182
+ allowPartial: true,
183
+ feedback: buildDefaults()
184
+ });
185
+
186
+ var _default = (0, _styles.withStyles)(style)(FeedbackConfig);
187
+
188
+ exports["default"] = _default;
189
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/feedback-config/index.jsx"],"names":["style","feedbackContainer","display","flex","flexDirection","panelDetails","paddingTop","paddingBottom","buildDefaults","input","correct","type","incorrect","partial","FeedbackConfig","onChange","bind","key","config","props","feedback","update","classes","className","allowPartial","toolbarOpts","heading","onCorrectChange","onPartialChange","onIncorrectChange","React","Component","PropTypes","bool","string","shape","FeedbackType","func","isRequired","object"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAIA,IAAMA,KAAK,GAAG;AACZC,EAAAA,iBAAiB,EAAE;AACjBC,IAAAA,OAAO,EAAE,MADQ;AAEjBC,IAAAA,IAAI,EAAE,CAFW;AAGjBC,IAAAA,aAAa,EAAE;AAHE,GADP;AAMZC,EAAAA,YAAY,EAAE;AACZC,IAAAA,UAAU,EAAE,CADA;AAEZC,IAAAA,aAAa,EAAE;AAFH;AANF,CAAd;;AAYO,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAW;AACtC,SAAO,uBACL,EADK,EAEL;AACEC,IAAAA,OAAO,EAAE;AAAEC,MAAAA,IAAI,EAAE,SAAR;AAAmB,iBAAS;AAA5B,KADX;AAEEC,IAAAA,SAAS,EAAE;AAAED,MAAAA,IAAI,EAAE,SAAR;AAAmB,iBAAS;AAA5B,KAFb;AAGEE,IAAAA,OAAO,EAAE;AAAEF,MAAAA,IAAI,EAAE,SAAR;AAAmB,iBAAS;AAA5B;AAHX,GAFK,EAOLF,KAPK,CAAP;AASD,CAVM;;;;IAYMK,c;;;;;;;;;;;;;;;wGA0BO,MAAKC,QAAL,CAAcC,IAAd,iDAAyB,SAAzB,C;0GAEE,MAAKD,QAAL,CAAcC,IAAd,iDAAyB,WAAzB,C;wGAEF,MAAKD,QAAL,CAAcC,IAAd,iDAAyB,SAAzB,C;;;;;;WAXlB,kBAASC,GAAT,EAAcC,MAAd,EAAsB;AACpB,wBAA+B,KAAKC,KAApC;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBL,QAAlB,eAAkBA,QAAlB;;AACA,UAAMM,MAAM,mCAAQD,QAAR,4CAAmBH,GAAnB,EAAyBC,MAAzB,EAAZ;;AAEAH,MAAAA,QAAQ,CAACM,MAAD,CAAR;AACD;;;WAQD,kBAAS;AACP,yBAAoE,KAAKF,KAAzE;AAAA,UAAQG,OAAR,gBAAQA,OAAR;AAAA,UAAiBC,SAAjB,gBAAiBA,SAAjB;AAAA,UAA4BC,YAA5B,gBAA4BA,YAA5B;AAAA,UAA0CJ,QAA1C,gBAA0CA,QAA1C;AAAA,UAAoDK,WAApD,gBAAoDA,WAApD;AAEA,0BACE;AAAK,QAAA,SAAS,EAAEF;AAAhB,sBACE,gCAAC,0BAAD,qBACE,gCAAC,iCAAD;AAAuB,QAAA,UAAU,eAAE,gCAAC,sBAAD;AAAnC,sBACE,gCAAC,sBAAD;AAAY,QAAA,SAAS,EAAED,OAAO,CAACI;AAA/B,oBADF,CADF,eAKE,gCAAC,iCAAD;AAAuB,QAAA,SAAS,EAAEJ,OAAO,CAACjB;AAA1C,sBACE;AAAK,QAAA,SAAS,EAAEiB,OAAO,CAACrB;AAAxB,sBACE,gCAAC,4BAAD;AACE,QAAA,KAAK,EAAC,kBADR;AAEE,QAAA,QAAQ,EAAEmB,QAAQ,CAACV,OAFrB;AAGE,QAAA,QAAQ,EAAE,KAAKiB,eAHjB;AAIE,QAAA,WAAW,EAAEF;AAJf,QADF,EAQGD,YAAY,iBACX,gCAAC,4BAAD;AACE,QAAA,KAAK,EAAC,4BADR;AAEE,QAAA,QAAQ,EAAEJ,QAAQ,CAACP,OAFrB;AAGE,QAAA,QAAQ,EAAE,KAAKe,eAHjB;AAIE,QAAA,WAAW,EAAEH;AAJf,QATJ,eAiBE,gCAAC,4BAAD;AACE,QAAA,KAAK,EAAC,oBADR;AAEE,QAAA,QAAQ,EAAEL,QAAQ,CAACR,SAFrB;AAGE,QAAA,QAAQ,EAAE,KAAKiB,iBAHjB;AAIE,QAAA,WAAW,EAAEJ;AAJf,QAjBF,CADF,CALF,CADF,CADF;AAoCD;;;EAvEiCK,kBAAMC,S;;;iCAA7BjB,c,eACQ;AACjBU,EAAAA,YAAY,EAAEQ,sBAAUC,IADP;AAEjBV,EAAAA,SAAS,EAAES,sBAAUE,MAFJ;AAGjBd,EAAAA,QAAQ,EAAEY,sBAAUG,KAAV,CAAgB;AACxBzB,IAAAA,OAAO,EAAEsB,sBAAUG,KAAV,CAAgBC,8BAAhB,CADe;AAExBxB,IAAAA,SAAS,EAAEoB,sBAAUG,KAAV,CAAgBC,8BAAhB,CAFa;AAGxBvB,IAAAA,OAAO,EAAEmB,sBAAUG,KAAV,CAAgBC,8BAAhB;AAHe,GAAhB,CAHO;AAQjBrB,EAAAA,QAAQ,EAAEiB,sBAAUK,IAAV,CAAeC,UARR;AASjBhB,EAAAA,OAAO,EAAEU,sBAAUO,MAAV,CAAiBD,UATT;AAUjBb,EAAAA,WAAW,EAAEO,sBAAUO;AAVN,C;iCADRzB,c,kBAcW;AACpBU,EAAAA,YAAY,EAAE,IADM;AAEpBJ,EAAAA,QAAQ,EAAEZ,aAAa;AAFH,C;;eA4DT,wBAAWR,KAAX,EAAkBc,cAAlB,C","sourcesContent":["import FeedbackSelector, { FeedbackType } from './feedback-selector';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport Typography from '@material-ui/core/Typography';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport merge from 'lodash/merge';\n\nexport { FeedbackSelector };\n\nconst style = {\n feedbackContainer: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n },\n panelDetails: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n};\n\nexport const buildDefaults = (input) => {\n return merge(\n {},\n {\n correct: { type: 'default', default: 'Correct' },\n incorrect: { type: 'default', default: 'Incorrect' },\n partial: { type: 'default', default: 'Nearly' },\n },\n input,\n );\n};\n\nexport class FeedbackConfig extends React.Component {\n static propTypes = {\n allowPartial: PropTypes.bool,\n className: PropTypes.string,\n feedback: PropTypes.shape({\n correct: PropTypes.shape(FeedbackType),\n incorrect: PropTypes.shape(FeedbackType),\n partial: PropTypes.shape(FeedbackType),\n }),\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object,\n };\n\n static defaultProps = {\n allowPartial: true,\n feedback: buildDefaults(),\n };\n\n onChange(key, config) {\n const { feedback, onChange } = this.props;\n const update = { ...feedback, [key]: config };\n\n onChange(update);\n }\n\n onCorrectChange = this.onChange.bind(this, 'correct');\n\n onIncorrectChange = this.onChange.bind(this, 'incorrect');\n\n onPartialChange = this.onChange.bind(this, 'partial');\n\n render() {\n const { classes, className, allowPartial, feedback, toolbarOpts } = this.props;\n\n return (\n <div className={className}>\n <ExpansionPanel>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>\n <Typography className={classes.heading}>Feedback</Typography>\n </ExpansionPanelSummary>\n\n <ExpansionPanelDetails className={classes.panelDetails}>\n <div className={classes.feedbackContainer}>\n <FeedbackSelector\n label=\"If correct, show\"\n feedback={feedback.correct}\n onChange={this.onCorrectChange}\n toolbarOpts={toolbarOpts}\n />\n\n {allowPartial && (\n <FeedbackSelector\n label=\"If partially correct, show\"\n feedback={feedback.partial}\n onChange={this.onPartialChange}\n toolbarOpts={toolbarOpts}\n />\n )}\n\n <FeedbackSelector\n label=\"If incorrect, show\"\n feedback={feedback.incorrect}\n onChange={this.onIncorrectChange}\n toolbarOpts={toolbarOpts}\n />\n </div>\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n );\n }\n}\n\nexport default withStyles(style)(FeedbackConfig);\n"],"file":"index.js"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
13
+
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
16
+ var _styles = require("@material-ui/core/styles");
17
+
18
+ var styles = function styles(theme) {
19
+ return {
20
+ formSection: {
21
+ marginTop: theme.spacing.unit * 2,
22
+ marginBottom: theme.spacing.unit * 2
23
+ },
24
+ label: {
25
+ marginBottom: theme.spacing.unit
26
+ }
27
+ };
28
+ };
29
+
30
+ var _default = (0, _styles.withStyles)(styles)(function (_ref) {
31
+ var className = _ref.className,
32
+ classes = _ref.classes,
33
+ label = _ref.label,
34
+ children = _ref.children,
35
+ labelExtraStyle = _ref.labelExtraStyle;
36
+ return /*#__PURE__*/_react["default"].createElement("div", {
37
+ className: (0, _classnames["default"])(classes.formSection, className)
38
+ }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
39
+ className: classes.label,
40
+ type: "subheading",
41
+ style: labelExtraStyle
42
+ }, label), children);
43
+ });
44
+
45
+ exports["default"] = _default;
46
+ //# sourceMappingURL=form-section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/form-section.jsx"],"names":["styles","theme","formSection","marginTop","spacing","unit","marginBottom","label","className","classes","children","labelExtraStyle"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,WAAW,EAAE;AACXC,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADrB;AAEXC,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AAFxB,KADY;AAKzBE,IAAAA,KAAK,EAAE;AACLD,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC;AADvB;AALkB,GAAZ;AAAA,CAAf;;eAUe,wBAAWL,MAAX,EAAmB;AAAA,MAAGQ,SAAH,QAAGA,SAAH;AAAA,MAAcC,OAAd,QAAcA,OAAd;AAAA,MAAuBF,KAAvB,QAAuBA,KAAvB;AAAA,MAA8BG,QAA9B,QAA8BA,QAA9B;AAAA,MAAwCC,eAAxC,QAAwCA,eAAxC;AAAA,sBAChC;AAAK,IAAA,SAAS,EAAE,4BAAWF,OAAO,CAACP,WAAnB,EAAgCM,SAAhC;AAAhB,kBACE,gCAAC,sBAAD;AAAY,IAAA,SAAS,EAAEC,OAAO,CAACF,KAA/B;AAAsC,IAAA,IAAI,EAAC,YAA3C;AAAwD,IAAA,KAAK,EAAEI;AAA/D,KACGJ,KADH,CADF,EAIGG,QAJH,CADgC;AAAA,CAAnB,C","sourcesContent":["import React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = (theme) => ({\n formSection: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n label: {\n marginBottom: theme.spacing.unit,\n },\n});\n\nexport default withStyles(styles)(({ className, classes, label, children, labelExtraStyle }) => (\n <div className={classNames(classes.formSection, className)}>\n <Typography className={classes.label} type=\"subheading\" style={labelExtraStyle}>\n {label}\n </Typography>\n {children}\n </div>\n));\n"],"file":"form-section.js"}