@pie-element/explicit-constructed-response 3.10.1 → 3.10.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/configure/CHANGELOG.md +29 -0
- package/configure/lib/alternateResponses.js +38 -5
- package/configure/lib/alternateResponses.js.map +1 -1
- package/configure/lib/alternateSection.js +76 -7
- package/configure/lib/alternateSection.js.map +1 -1
- package/configure/lib/defaults.js +5 -0
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/ecr-toolbar.js +5 -2
- package/configure/lib/ecr-toolbar.js.map +1 -1
- package/configure/lib/index.js +2 -2
- package/configure/lib/main.js +80 -29
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +3 -3
- package/controller/CHANGELOG.md +8 -0
- package/controller/lib/index.js +14 -3
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/docs/config-schema.json +16 -0
- package/docs/config-schema.json.md +12 -0
- package/docs/demo/generate.js +1 -0
- package/docs/pie-schema.json +8 -0
- package/docs/pie-schema.json.md +6 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/main.js +48 -19
- package/lib/main.js.map +1 -1
- package/lib/print.js +114 -0
- package/lib/print.js.map +1 -0
- package/package.json +11 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,43 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.10.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response@3.10.4...@pie-element/explicit-constructed-response@3.10.5) (2021-11-01)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/explicit-constructed-response
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [3.10.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response@3.10.3...@pie-element/explicit-constructed-response@3.10.4) (2021-10-18)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-element/explicit-constructed-response
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [3.10.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response@3.10.2...@pie-element/explicit-constructed-response@3.10.3) (2021-10-04)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-element/explicit-constructed-response
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## [3.10.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response@3.10.1...@pie-element/explicit-constructed-response@3.10.2) (2021-09-20)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Bug Fixes
|
|
34
|
+
|
|
35
|
+
* pie-lib updates ([e521c2f](https://github.com/pie-framework/pie-elements/commit/e521c2f1a44aa7f3e14f82a1cee05ceb484ed0a6))
|
|
36
|
+
* Updated pie-lib versions ([2fe4c5d](https://github.com/pie-framework/pie-elements/commit/2fe4c5d0be2d40f5fdb34815855695a7f1087f56))
|
|
37
|
+
* Updated pie-lib versions ([1c23830](https://github.com/pie-framework/pie-elements/commit/1c23830fc75d1de5f7bb3bb16de3c665ae5fa350))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
6
43
|
## [3.10.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response@3.10.0...@pie-element/explicit-constructed-response@3.10.1) (2021-09-01)
|
|
7
44
|
|
|
8
45
|
**Note:** Version bump only for package @pie-element/explicit-constructed-response
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,35 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.5.31](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response-configure@3.5.30...@pie-element/explicit-constructed-response-configure@3.5.31) (2021-10-18)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/explicit-constructed-response-configure
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [3.5.30](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response-configure@3.5.29...@pie-element/explicit-constructed-response-configure@3.5.30) (2021-10-04)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-element/explicit-constructed-response-configure
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [3.5.29](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response-configure@3.5.28...@pie-element/explicit-constructed-response-configure@3.5.29) (2021-09-20)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* pie-lib updates ([e521c2f](https://github.com/pie-framework/pie-elements/commit/e521c2f1a44aa7f3e14f82a1cee05ceb484ed0a6))
|
|
28
|
+
* Updated pie-lib versions ([2fe4c5d](https://github.com/pie-framework/pie-elements/commit/2fe4c5d0be2d40f5fdb34815855695a7f1087f56))
|
|
29
|
+
* Updated pie-lib versions ([1c23830](https://github.com/pie-framework/pie-elements/commit/1c23830fc75d1de5f7bb3bb16de3c665ae5fa350))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
6
35
|
## [3.5.28](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response-configure@3.5.27...@pie-element/explicit-constructed-response-configure@3.5.28) (2021-08-05)
|
|
7
36
|
|
|
8
37
|
**Note:** Version bump only for package @pie-element/explicit-constructed-response-configure
|
|
@@ -33,15 +33,17 @@ var _map = _interopRequireDefault(require("lodash/map"));
|
|
|
33
33
|
|
|
34
34
|
var _reduce = _interopRequireDefault(require("lodash/reduce"));
|
|
35
35
|
|
|
36
|
+
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
37
|
+
|
|
36
38
|
var _alternateSection = _interopRequireDefault(require("./alternateSection"));
|
|
37
39
|
|
|
38
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
40
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
39
41
|
|
|
40
42
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
41
43
|
|
|
42
44
|
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); }; }
|
|
43
45
|
|
|
44
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
46
|
+
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; } }
|
|
45
47
|
|
|
46
48
|
var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
47
49
|
(0, _inherits2["default"])(AlternateResponses, _React$Component);
|
|
@@ -58,8 +60,22 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
61
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
63
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
64
|
+
maxLengthPerChoice: (0, _cloneDeep["default"])(_this.props.model.maxLengthPerChoice)
|
|
65
|
+
});
|
|
62
66
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateChoicesIfNeeded", function (props) {
|
|
67
|
+
var maxLengthPerChoice = props.model.maxLengthPerChoice;
|
|
68
|
+
var maxLengthPerChoiceState = _this.state.maxLengthPerChoice;
|
|
69
|
+
var lengthChanged = maxLengthPerChoiceState.length && !(0, _isEqual["default"])(maxLengthPerChoice, maxLengthPerChoiceState);
|
|
70
|
+
|
|
71
|
+
if (lengthChanged) {
|
|
72
|
+
_this.setState({
|
|
73
|
+
maxLengthPerChoice: (0, _cloneDeep["default"])(maxLengthPerChoice)
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
|
|
63
79
|
if (!_this.state.choices || !(0, _isEqual["default"])(_this.state.choices, props.model.choices) || !(0, _isEqual["default"])(props.model.choices, _this.props.model.choices)) {
|
|
64
80
|
var choices = props.model.choices;
|
|
65
81
|
var selectedValues = (0, _reduce["default"])(choices, function (obj, c, key) {
|
|
@@ -142,6 +158,14 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
142
158
|
});
|
|
143
159
|
}
|
|
144
160
|
});
|
|
161
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onLengthChanged", function (value, key) {
|
|
162
|
+
var _this$props = _this.props,
|
|
163
|
+
model = _this$props.model,
|
|
164
|
+
onLengthChange = _this$props.onLengthChange;
|
|
165
|
+
var maxLengthPerChoice = model.maxLengthPerChoice;
|
|
166
|
+
maxLengthPerChoice[key] = value;
|
|
167
|
+
onLengthChange(maxLengthPerChoice);
|
|
168
|
+
});
|
|
145
169
|
return _this;
|
|
146
170
|
}
|
|
147
171
|
|
|
@@ -161,6 +185,9 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
161
185
|
var _this2 = this;
|
|
162
186
|
|
|
163
187
|
var choices = this.state.choices;
|
|
188
|
+
var _this$props$model = this.props.model,
|
|
189
|
+
maxLengthPerChoice = _this$props$model.maxLengthPerChoice,
|
|
190
|
+
maxLengthPerChoiceEnabled = _this$props$model.maxLengthPerChoiceEnabled;
|
|
164
191
|
return /*#__PURE__*/_react["default"].createElement("div", null, (0, _map["default"])(choices, function (c, key) {
|
|
165
192
|
if (c && c.length > 1) {
|
|
166
193
|
var selected = _this2.state.values[key];
|
|
@@ -176,8 +203,13 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
176
203
|
choiceRemoved: function choiceRemoved(value) {
|
|
177
204
|
return _this2.onChoiceRemoved(value, key);
|
|
178
205
|
},
|
|
206
|
+
lengthChanged: function lengthChanged(value) {
|
|
207
|
+
return _this2.onLengthChanged(value, key);
|
|
208
|
+
},
|
|
179
209
|
selectChoices: [selected],
|
|
180
|
-
choices: c
|
|
210
|
+
choices: c,
|
|
211
|
+
maxLength: maxLengthPerChoice[key],
|
|
212
|
+
showMaxLength: maxLengthPerChoiceEnabled
|
|
181
213
|
});
|
|
182
214
|
}
|
|
183
215
|
}), choices && Object.keys(this.state.values).length !== Object.keys(choices).length && /*#__PURE__*/_react["default"].createElement(_alternateSection["default"], {
|
|
@@ -201,7 +233,8 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
201
233
|
exports.AlternateResponses = AlternateResponses;
|
|
202
234
|
(0, _defineProperty2["default"])(AlternateResponses, "propTypes", {
|
|
203
235
|
model: _propTypes["default"].object.isRequired,
|
|
204
|
-
onChange: _propTypes["default"].func.isRequired
|
|
236
|
+
onChange: _propTypes["default"].func.isRequired,
|
|
237
|
+
onLengthChange: _propTypes["default"].func.isRequired
|
|
205
238
|
});
|
|
206
239
|
var _default = AlternateResponses;
|
|
207
240
|
exports["default"] = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/alternateResponses.jsx"],"names":["AlternateResponses","props","state","choices","model","selectedValues","obj","c","key","length","setState","values","valueKey","arr","push","label","value","choice","onChange","sectionChoices","isNew","find","newChoices","reduce","newVal","section","nextProps","updateChoicesIfNeeded","selected","onSectionSelect","onChoiceChanged","onChoiceRemoved","Object","keys","getRemainingChoices","React","Component","PropTypes","object","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport map from 'lodash/map';\nimport reduce from 'lodash/reduce';\n\nimport AlternateSection from './alternateSection';\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired\n };\n\n state = {};\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.updateChoicesIfNeeded(nextProps);\n }\n\n componentDidMount() {\n this.updateChoicesIfNeeded(this.props);\n }\n\n updateChoicesIfNeeded = props => {\n if (!this.state.choices\n || !isEqual(this.state.choices, props.model.choices)\n || !isEqual(props.model.choices, this.props.model.choices)\n ) {\n const { choices } = props.model;\n\n const selectedValues = reduce(choices, (obj, c, key) => {\n if (c && c.length > 1) {\n obj[key] = c[0];\n }\n\n return obj;\n }, {});\n\n this.setState({\n choices: props.model.choices,\n values: selectedValues\n });\n }\n };\n\n getRemainingChoices = valueKey => {\n const { choices } = this.state;\n\n return reduce(choices, (arr, c, key) => {\n if (c && c.length === 1 && !valueKey) {\n arr.push({\n label: c[0].label,\n value: key\n });\n }\n\n return arr;\n }, []);\n };\n\n onChoiceChanged = (choice, key) => {\n const { onChange } = this.props;\n const { choices } = this.state;\n const sectionChoices = (choices[key] || []);\n\n const isNew = !sectionChoices.find(c => c.value === choice.value);\n\n const newChoices = sectionChoices.reduce((arr, c) => {\n const newVal = c.value === choice.value ? choice : c;\n\n arr.push(newVal);\n\n return arr;\n }, []);\n\n if (isNew) {\n newChoices.push(choice);\n }\n\n onChange({\n ...choices,\n [key]: newChoices\n });\n };\n\n onChoiceRemoved = (value, section) => {\n const { onChange } = this.props;\n const { choices } = this.state;\n const sectionChoices = (choices[section] || []);\n\n const newChoices = sectionChoices.reduce((arr, c) => {\n if (c.value === value) {\n return arr;\n }\n\n arr.push(c);\n\n return arr;\n }, []);\n\n onChange({\n ...choices,\n [section]: newChoices\n });\n };\n\n onSectionSelect = (choice, key) => {\n const { onChange } = this.props;\n const { choices, values } = this.state;\n\n if (choices[key] && choices[key].length > 1) {\n if (!choice) {\n onChange({\n ...choices,\n [key]: [choices[key][0]]\n });\n }\n } else {\n this.setState({\n choices: {\n ...choices,\n [key]: [\n ...choices[key],\n {\n label: '',\n value: '1'\n }\n ]\n },\n values: {\n ...values,\n [key]: choices[key][0]\n }\n });\n }\n };\n\n render() {\n const { choices } = this.state;\n\n return (\n <div>\n {map(choices, (c, key) => {\n if (c && c.length > 1) {\n const selected = this.state.values[key];\n\n return (\n <AlternateSection\n key={key}\n value={selected && selected.value}\n onSelect={choice => this.onSectionSelect(choice, key)}\n choiceChanged={choice => this.onChoiceChanged(choice, key)}\n choiceRemoved={value => this.onChoiceRemoved(value, key)}\n selectChoices={[selected]}\n choices={c}\n />\n );\n }\n })}\n {\n choices &&\n Object.keys(this.state.values).length !== Object.keys(choices).length &&\n <AlternateSection\n value=\"\"\n onSelect={choice => this.onSectionSelect(choice, choice.value)}\n choiceChanged={choice => this.onChoiceChanged(choice)}\n choiceRemoved={value => this.onChoiceRemoved(value)}\n selectChoices={this.getRemainingChoices()}\n />\n }\n </div>\n );\n }\n}\n\nexport default AlternateResponses;\n"],"file":"alternateResponses.js"}
|
|
1
|
+
{"version":3,"sources":["../src/alternateResponses.jsx"],"names":["AlternateResponses","maxLengthPerChoice","props","model","maxLengthPerChoiceState","state","lengthChanged","length","setState","choices","selectedValues","obj","c","key","values","valueKey","arr","push","label","value","choice","onChange","sectionChoices","isNew","find","newChoices","reduce","newVal","section","onLengthChange","nextProps","updateChoicesIfNeeded","maxLengthPerChoiceEnabled","selected","onSectionSelect","onChoiceChanged","onChoiceRemoved","onLengthChanged","Object","keys","getRemainingChoices","React","Component","PropTypes","object","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport map from 'lodash/map';\nimport reduce from 'lodash/reduce';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport AlternateSection from './alternateSection';\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onLengthChange: PropTypes.func.isRequired\n };\n\n state = { maxLengthPerChoice: cloneDeep(this.props.model.maxLengthPerChoice) };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.updateChoicesIfNeeded(nextProps);\n }\n\n componentDidMount() {\n this.updateChoicesIfNeeded(this.props);\n }\n\n updateChoicesIfNeeded = props => {\n const { maxLengthPerChoice } = props.model;\n const { maxLengthPerChoice: maxLengthPerChoiceState } = this.state;\n const lengthChanged = maxLengthPerChoiceState.length && !isEqual(maxLengthPerChoice, maxLengthPerChoiceState);\n\n if (lengthChanged) {\n this.setState({\n maxLengthPerChoice: cloneDeep(maxLengthPerChoice)\n });\n\n return;\n }\n\n if (!this.state.choices\n || !isEqual(this.state.choices, props.model.choices)\n || !isEqual(props.model.choices, this.props.model.choices)\n ) {\n const { choices } = props.model;\n\n const selectedValues = reduce(choices, (obj, c, key) => {\n if (c && c.length > 1) {\n obj[key] = c[0];\n }\n\n return obj;\n }, {});\n\n this.setState({\n choices: props.model.choices,\n values: selectedValues\n });\n }\n };\n\n getRemainingChoices = valueKey => {\n const { choices } = this.state;\n\n return reduce(choices, (arr, c, key) => {\n if (c && c.length === 1 && !valueKey) {\n arr.push({\n label: c[0].label,\n value: key\n });\n }\n\n return arr;\n }, []);\n };\n\n onChoiceChanged = (choice, key) => {\n const { onChange } = this.props;\n const { choices } = this.state;\n const sectionChoices = (choices[key] || []);\n\n const isNew = !sectionChoices.find(c => c.value === choice.value);\n\n const newChoices = sectionChoices.reduce((arr, c) => {\n const newVal = c.value === choice.value ? choice : c;\n\n arr.push(newVal);\n\n return arr;\n }, []);\n\n if (isNew) {\n newChoices.push(choice);\n }\n\n onChange({\n ...choices,\n [key]: newChoices\n });\n };\n\n onChoiceRemoved = (value, section) => {\n const { onChange } = this.props;\n const { choices } = this.state;\n const sectionChoices = (choices[section] || []);\n\n const newChoices = sectionChoices.reduce((arr, c) => {\n if (c.value === value) {\n return arr;\n }\n\n arr.push(c);\n\n return arr;\n }, []);\n\n onChange({\n ...choices,\n [section]: newChoices\n });\n };\n\n onSectionSelect = (choice, key) => {\n const { onChange } = this.props;\n const { choices, values } = this.state;\n\n if (choices[key] && choices[key].length > 1) {\n if (!choice) {\n onChange({\n ...choices,\n [key]: [choices[key][0]]\n });\n }\n } else {\n this.setState({\n choices: {\n ...choices,\n [key]: [\n ...choices[key],\n {\n label: '',\n value: '1'\n }\n ]\n },\n values: {\n ...values,\n [key]: choices[key][0]\n }\n });\n }\n };\n\n onLengthChanged = (value, key) => {\n const { model, onLengthChange } = this.props;\n const { maxLengthPerChoice } = model;\n\n maxLengthPerChoice[key] = value;\n onLengthChange(maxLengthPerChoice);\n }\n\n render() {\n const { choices } = this.state;\n const { model: { maxLengthPerChoice, maxLengthPerChoiceEnabled }} = this.props\n\n return (\n <div>\n {map(choices, (c, key) => {\n if (c && c.length > 1) {\n const selected = this.state.values[key];\n\n return (\n <AlternateSection\n key={key}\n value={selected && selected.value}\n onSelect={choice => this.onSectionSelect(choice, key)}\n choiceChanged={choice => this.onChoiceChanged(choice, key)}\n choiceRemoved={value => this.onChoiceRemoved(value, key)}\n lengthChanged={value => this.onLengthChanged(value, key)}\n selectChoices={[selected]}\n choices={c}\n maxLength={maxLengthPerChoice[key]}\n showMaxLength={maxLengthPerChoiceEnabled}\n />\n );\n }\n })}\n {\n choices &&\n Object.keys(this.state.values).length !== Object.keys(choices).length &&\n <AlternateSection\n value=\"\"\n onSelect={choice => this.onSectionSelect(choice, choice.value)}\n choiceChanged={choice => this.onChoiceChanged(choice)}\n choiceRemoved={value => this.onChoiceRemoved(value)}\n selectChoices={this.getRemainingChoices()}\n />\n }\n </div>\n );\n }\n}\n\nexport default AlternateResponses;\n"],"file":"alternateResponses.js"}
|
|
@@ -43,17 +43,19 @@ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
|
43
43
|
|
|
44
44
|
var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
|
|
45
45
|
|
|
46
|
+
var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
|
|
47
|
+
|
|
46
48
|
var _styles = require("@material-ui/core/styles");
|
|
47
49
|
|
|
48
50
|
var _max = _interopRequireDefault(require("lodash/max"));
|
|
49
51
|
|
|
50
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
52
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
51
53
|
|
|
52
54
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
53
55
|
|
|
54
56
|
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); }; }
|
|
55
57
|
|
|
56
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
58
|
+
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; } }
|
|
57
59
|
|
|
58
60
|
var styles = function styles() {
|
|
59
61
|
return {
|
|
@@ -75,10 +77,18 @@ var styles = function styles() {
|
|
|
75
77
|
fill: 'gray'
|
|
76
78
|
},
|
|
77
79
|
selectContainer: {
|
|
78
|
-
alignItems: '
|
|
80
|
+
alignItems: 'flex-end',
|
|
79
81
|
display: 'flex',
|
|
80
82
|
justifyContent: 'space-between',
|
|
81
83
|
width: '100%'
|
|
84
|
+
},
|
|
85
|
+
rightContainer: {
|
|
86
|
+
alignItems: 'center',
|
|
87
|
+
display: 'flex'
|
|
88
|
+
},
|
|
89
|
+
lengthField: {
|
|
90
|
+
width: '230px',
|
|
91
|
+
marginRight: '20px'
|
|
82
92
|
}
|
|
83
93
|
};
|
|
84
94
|
};
|
|
@@ -115,6 +125,15 @@ var Choice = /*#__PURE__*/function (_React$Component) {
|
|
|
115
125
|
}
|
|
116
126
|
|
|
117
127
|
(0, _createClass2["default"])(Choice, [{
|
|
128
|
+
key: "UNSAFE_componentWillReceiveProps",
|
|
129
|
+
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
130
|
+
if (nextProps.markup) {
|
|
131
|
+
this.setState({
|
|
132
|
+
value: nextProps.markup
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}, {
|
|
118
137
|
key: "render",
|
|
119
138
|
value: function render() {
|
|
120
139
|
var value = this.state.value;
|
|
@@ -203,7 +222,17 @@ var AlternateSection = /*#__PURE__*/function (_React$Component2) {
|
|
|
203
222
|
}
|
|
204
223
|
});
|
|
205
224
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "onChoiceChanged", function (choice, value) {
|
|
206
|
-
var
|
|
225
|
+
var _this2$props2 = _this2.props,
|
|
226
|
+
choiceChanged = _this2$props2.choiceChanged,
|
|
227
|
+
lengthChanged = _this2$props2.lengthChanged,
|
|
228
|
+
maxLength = _this2$props2.maxLength;
|
|
229
|
+
var newMaxLength = Math.max(_this2.getChoicesMaxLength(), maxLength);
|
|
230
|
+
var newLength = value.length;
|
|
231
|
+
|
|
232
|
+
if (newLength > newMaxLength) {
|
|
233
|
+
lengthChanged(newLength);
|
|
234
|
+
}
|
|
235
|
+
|
|
207
236
|
choiceChanged(_objectSpread(_objectSpread({}, choice), {}, {
|
|
208
237
|
label: value
|
|
209
238
|
}));
|
|
@@ -212,6 +241,28 @@ var AlternateSection = /*#__PURE__*/function (_React$Component2) {
|
|
|
212
241
|
var choiceRemoved = _this2.props.choiceRemoved;
|
|
213
242
|
choiceRemoved(choice.value);
|
|
214
243
|
});
|
|
244
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "getChoicesMaxLength", function () {
|
|
245
|
+
var choices = _this2.props.choices;
|
|
246
|
+
|
|
247
|
+
if (!choices) {
|
|
248
|
+
return 1;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
var labelLengthsArr = choices.map(function (choice) {
|
|
252
|
+
return (choice.label || '').length;
|
|
253
|
+
});
|
|
254
|
+
return Math.max.apply(Math, (0, _toConsumableArray2["default"])(labelLengthsArr));
|
|
255
|
+
});
|
|
256
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "changeLength", function (event) {
|
|
257
|
+
var lengthChanged = _this2.props.lengthChanged;
|
|
258
|
+
var numberValue = parseInt(event.target.value, 10);
|
|
259
|
+
|
|
260
|
+
var minLength = _this2.getChoicesMaxLength();
|
|
261
|
+
|
|
262
|
+
if (numberValue && numberValue >= minLength && numberValue <= minLength + 10) {
|
|
263
|
+
lengthChanged(numberValue);
|
|
264
|
+
}
|
|
265
|
+
});
|
|
215
266
|
return _this2;
|
|
216
267
|
}
|
|
217
268
|
|
|
@@ -233,8 +284,11 @@ var AlternateSection = /*#__PURE__*/function (_React$Component2) {
|
|
|
233
284
|
var _this$props2 = this.props,
|
|
234
285
|
classes = _this$props2.classes,
|
|
235
286
|
selectChoices = _this$props2.selectChoices,
|
|
287
|
+
maxLength = _this$props2.maxLength,
|
|
288
|
+
showMaxLength = _this$props2.showMaxLength,
|
|
236
289
|
value = _this$props2.value;
|
|
237
290
|
var choices = this.state.choices;
|
|
291
|
+
var minLength = this.getChoicesMaxLength();
|
|
238
292
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
239
293
|
className: classes.design
|
|
240
294
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -251,12 +305,24 @@ var AlternateSection = /*#__PURE__*/function (_React$Component2) {
|
|
|
251
305
|
key: index,
|
|
252
306
|
value: c.value
|
|
253
307
|
}, c.label);
|
|
254
|
-
})), choices && choices.length > 0 && /*#__PURE__*/_react["default"].createElement(
|
|
308
|
+
})), choices && choices.length > 0 && /*#__PURE__*/_react["default"].createElement("div", {
|
|
309
|
+
className: classes.rightContainer
|
|
310
|
+
}, maxLength && showMaxLength && /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
311
|
+
className: classes.lengthField,
|
|
312
|
+
label: "Maximum length (characters)",
|
|
313
|
+
type: "number",
|
|
314
|
+
inputProps: {
|
|
315
|
+
min: minLength,
|
|
316
|
+
max: minLength + 10
|
|
317
|
+
},
|
|
318
|
+
value: maxLength,
|
|
319
|
+
onChange: this.changeLength
|
|
320
|
+
}), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
255
321
|
className: classes.addButton,
|
|
256
322
|
variant: "contained",
|
|
257
323
|
color: "primary",
|
|
258
324
|
onClick: this.onAddChoice
|
|
259
|
-
}, "Add")), /*#__PURE__*/_react["default"].createElement("div", {
|
|
325
|
+
}, "Add"))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
260
326
|
className: classes.altChoices
|
|
261
327
|
}, choices && choices.map(function (c, index) {
|
|
262
328
|
return index > 0 && /*#__PURE__*/_react["default"].createElement(Choice, {
|
|
@@ -283,8 +349,11 @@ exports.AlternateSection = AlternateSection;
|
|
|
283
349
|
classes: _propTypes["default"].object.isRequired,
|
|
284
350
|
onSelect: _propTypes["default"].func.isRequired,
|
|
285
351
|
choiceChanged: _propTypes["default"].func.isRequired,
|
|
352
|
+
lengthChanged: _propTypes["default"].func,
|
|
286
353
|
choiceRemoved: _propTypes["default"].func.isRequired,
|
|
287
|
-
value: _propTypes["default"].string
|
|
354
|
+
value: _propTypes["default"].string,
|
|
355
|
+
maxLength: _propTypes["default"].number,
|
|
356
|
+
showMaxLength: _propTypes["default"].bool
|
|
288
357
|
});
|
|
289
358
|
var Styled = (0, _styles.withStyles)(styles)(AlternateSection);
|
|
290
359
|
var _default = Styled;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/alternateSection.jsx"],"names":["styles","altChoices","alignItems","flexDirection","display","padding","marginBottom","width","choice","flex","marginRight","deleteBtn","fill","selectContainer","justifyContent","Choice","value","props","markup","onChange","e","target","setState","updateText","state","classes","onDelete","React","Component","PropTypes","object","string","func","isRequired","AlternateSection","choices","onSelect","selectChoices","find","c","length","label","map","parseInt","filter","id","isNaN","choiceChanged","choiceRemoved","nextProps","updateChoicesIfNeeded","design","select","handleSelect","index","addButton","onAddChoice","val","onChoiceChanged","onRemoveChoice","array","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEqual from 'lodash/isEqual';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport Button from '@material-ui/core/Button';\nimport Delete from '@material-ui/icons/Delete';\nimport IconButton from '@material-ui/core/IconButton';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport { withStyles } from '@material-ui/core/styles';\nimport max from 'lodash/max';\n\nconst styles = () => ({\n altChoices: {\n alignItems: 'flex-start',\n flexDirection: 'column',\n display: 'flex',\n padding: '20px 0 0 0',\n '& > *': {\n marginBottom: '20px',\n width: '100%'\n }\n },\n choice: {\n flex: '1',\n marginRight: '20px'\n },\n deleteBtn: {\n fill: 'gray'\n },\n selectContainer: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%'\n }\n});\n\nexport class Choice extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n markup: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n value: PropTypes.string\n };\n\n state = {\n value: this.props.markup\n };\n\n updateText = debounce(this.props.onChange, 300);\n\n onChange = (e) => {\n const { value } = e.target;\n\n this.setState({ value });\n this.updateText(value);\n };\n\n render() {\n const { value } = this.state;\n const { classes, onDelete } = this.props;\n\n return (\n <div\n style={{\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between'\n }}\n >\n <OutlinedInput\n className={classes.choice}\n value={value}\n onChange={this.onChange}\n labelWidth={0}\n disableUnderline\n />\n <IconButton\n aria-label=\"delete\"\n className={classes.deleteBtn}\n onClick={onDelete}\n >\n <Delete />\n </IconButton>\n </div>\n );\n }\n}\n\nexport class AlternateSection extends React.Component {\n static propTypes = {\n choices: PropTypes.array,\n selectChoices: PropTypes.array.isRequired,\n classes: PropTypes.object.isRequired,\n onSelect: PropTypes.func.isRequired,\n choiceChanged: PropTypes.func.isRequired,\n choiceRemoved: PropTypes.func.isRequired,\n value: PropTypes.string\n };\n\n state = {};\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.updateChoicesIfNeeded(nextProps);\n }\n\n componentDidMount() {\n this.updateChoicesIfNeeded(this.props);\n }\n\n updateChoicesIfNeeded = props => {\n if (!this.state.choices\n || !isEqual(props.choices, this.state.choices)\n || !isEqual(props.choices, this.props.choices)\n ) {\n this.setState({\n choices: props.choices\n });\n }\n };\n\n handleSelect = e => {\n const { onSelect, selectChoices } = this.props;\n const { value } = e.target;\n\n onSelect(selectChoices.find(c => c.value === value));\n };\n\n onAddChoice = () => {\n const { choices } = this.state;\n\n if (choices.length && choices[choices.length - 1].label !== '') {\n const value = max(choices.map(c => parseInt(c.value)).filter(id => !isNaN(id))) || 0;\n\n this.setState({\n choices: [\n ...choices,\n {\n value: `${value + 1}`,\n label: ''\n }\n ]\n });\n }\n };\n\n onChoiceChanged = (choice, value) => {\n const { choiceChanged } = this.props;\n\n choiceChanged({\n ...choice,\n label: value\n });\n };\n\n onRemoveChoice = choice => {\n const { choiceRemoved } = this.props;\n\n choiceRemoved(choice.value);\n };\n\n render() {\n const {\n classes,\n selectChoices,\n value\n } = this.props;\n const { choices } = this.state;\n\n return (\n <div className={classes.design}>\n <div\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n displayEmpty\n onChange={this.handleSelect}\n value={value || ''}\n >\n <MenuItem value=\"\">\n <em>\n {value ? 'Remove selection' : 'Select a response'}\n </em>\n </MenuItem>\n {selectChoices.map((c, index) => <MenuItem key={index} value={c.value}>{c.label}</MenuItem>)}\n </Select>\n {\n choices && choices.length > 0 &&\n <Button\n className={classes.addButton}\n variant=\"contained\"\n color=\"primary\"\n onClick={this.onAddChoice}\n >\n Add\n </Button>\n }\n </div>\n <div\n className={classes.altChoices}\n >\n {\n choices &&\n choices.map((c, index) => index > 0 && (\n <Choice\n key={index}\n classes={classes}\n markup={c.label}\n onChange={val => this.onChoiceChanged(c, val)}\n onDelete={() => this.onRemoveChoice(c)}\n />\n ))\n }\n </div>\n </div>\n );\n }\n}\n\nconst Styled = withStyles(styles)(AlternateSection);\n\nexport default Styled;\n"],"file":"alternateSection.js"}
|
|
1
|
+
{"version":3,"sources":["../src/alternateSection.jsx"],"names":["styles","altChoices","alignItems","flexDirection","display","padding","marginBottom","width","choice","flex","marginRight","deleteBtn","fill","selectContainer","justifyContent","rightContainer","lengthField","Choice","value","props","markup","onChange","e","target","setState","updateText","nextProps","state","classes","onDelete","React","Component","PropTypes","object","string","func","isRequired","AlternateSection","choices","onSelect","selectChoices","find","c","length","label","map","parseInt","filter","id","isNaN","choiceChanged","lengthChanged","maxLength","newMaxLength","Math","max","getChoicesMaxLength","newLength","choiceRemoved","labelLengthsArr","event","numberValue","minLength","updateChoicesIfNeeded","showMaxLength","design","select","handleSelect","index","min","changeLength","addButton","onAddChoice","val","onChoiceChanged","onRemoveChoice","array","number","bool","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEqual from 'lodash/isEqual';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport Button from '@material-ui/core/Button';\nimport Delete from '@material-ui/icons/Delete';\nimport IconButton from '@material-ui/core/IconButton';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport TextField from '@material-ui/core/TextField';\nimport {withStyles} from '@material-ui/core/styles';\nimport max from 'lodash/max';\n\nconst styles = () => ({\n altChoices: {\n alignItems: 'flex-start',\n flexDirection: 'column',\n display: 'flex',\n padding: '20px 0 0 0',\n '& > *': {\n marginBottom: '20px',\n width: '100%'\n }\n },\n choice: {\n flex: '1',\n marginRight: '20px'\n },\n deleteBtn: {\n fill: 'gray'\n },\n selectContainer: {\n alignItems: 'flex-end',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%'\n },\n rightContainer: {\n alignItems: 'center',\n display: 'flex',\n },\n lengthField: {\n width: '230px',\n marginRight: '20px'\n }\n});\n\nexport class Choice extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n markup: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n value: PropTypes.string\n };\n\n state = {\n value: this.props.markup\n };\n\n updateText = debounce(this.props.onChange, 300);\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.markup) {\n this.setState({ value: nextProps.markup });\n }\n }\n\n onChange = (e) => {\n const { value } = e.target;\n\n this.setState({ value });\n this.updateText(value);\n };\n\n render() {\n const { value } = this.state;\n const { classes, onDelete } = this.props;\n\n return (\n <div\n style={{\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between'\n }}\n >\n <OutlinedInput\n className={classes.choice}\n value={value}\n onChange={this.onChange}\n labelWidth={0}\n disableUnderline\n />\n <IconButton\n aria-label=\"delete\"\n className={classes.deleteBtn}\n onClick={onDelete}\n >\n <Delete />\n </IconButton>\n </div>\n );\n }\n}\n\nexport class AlternateSection extends React.Component {\n static propTypes = {\n choices: PropTypes.array,\n selectChoices: PropTypes.array.isRequired,\n classes: PropTypes.object.isRequired,\n onSelect: PropTypes.func.isRequired,\n choiceChanged: PropTypes.func.isRequired,\n lengthChanged: PropTypes.func,\n choiceRemoved: PropTypes.func.isRequired,\n value: PropTypes.string,\n maxLength: PropTypes.number,\n showMaxLength: PropTypes.bool\n };\n\n state = {};\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.updateChoicesIfNeeded(nextProps);\n }\n\n componentDidMount() {\n this.updateChoicesIfNeeded(this.props);\n }\n\n updateChoicesIfNeeded = props => {\n if (!this.state.choices\n || !isEqual(props.choices, this.state.choices)\n || !isEqual(props.choices, this.props.choices)\n ) {\n this.setState({\n choices: props.choices\n });\n }\n };\n\n handleSelect = e => {\n const { onSelect, selectChoices } = this.props;\n const { value } = e.target;\n\n onSelect(selectChoices.find(c => c.value === value));\n };\n\n onAddChoice = () => {\n const { choices } = this.state;\n\n if (choices.length && choices[choices.length - 1].label !== '') {\n const value = max(choices.map(c => parseInt(c.value)).filter(id => !isNaN(id))) || 0;\n\n this.setState({\n choices: [\n ...choices,\n {\n value: `${value + 1}`,\n label: ''\n }\n ]\n });\n }\n };\n\n onChoiceChanged = (choice, value) => {\n const { choiceChanged, lengthChanged, maxLength } = this.props;\n const newMaxLength = Math.max(this.getChoicesMaxLength(), maxLength);\n const newLength = value.length;\n\n if (newLength > newMaxLength) {\n lengthChanged(newLength);\n }\n\n choiceChanged({\n ...choice,\n label: value\n });\n };\n\n onRemoveChoice = choice => {\n const { choiceRemoved } = this.props;\n\n choiceRemoved(choice.value);\n };\n\n getChoicesMaxLength = () => {\n const { choices } = this.props;\n\n if (!choices) {\n return 1;\n }\n\n const labelLengthsArr = choices.map(choice => (choice.label || '').length);\n return Math.max(...labelLengthsArr);\n };\n\n changeLength = event => {\n const { lengthChanged } = this.props;\n const numberValue = parseInt(event.target.value, 10);\n const minLength = this.getChoicesMaxLength();\n\n if (numberValue && numberValue >= minLength && numberValue <= minLength + 10) {\n lengthChanged(numberValue);\n }\n };\n\n render() {\n const {\n classes,\n selectChoices,\n maxLength,\n showMaxLength,\n value\n } = this.props;\n const { choices } = this.state;\n const minLength = this.getChoicesMaxLength();\n\n return (\n <div className={classes.design}>\n <div\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n displayEmpty\n onChange={this.handleSelect}\n value={value || ''}\n >\n <MenuItem value=\"\">\n <em>\n {value ? 'Remove selection' : 'Select a response'}\n </em>\n </MenuItem>\n {selectChoices.map((c, index) => <MenuItem key={index} value={c.value}>{c.label}</MenuItem>)}\n </Select>\n {\n choices && choices.length > 0 &&\n <div className={classes.rightContainer}>\n {maxLength && showMaxLength && (\n <TextField\n className={classes.lengthField}\n label=\"Maximum length (characters)\"\n type=\"number\"\n inputProps={{\n min: minLength,\n max: minLength + 10\n }}\n value={maxLength}\n onChange={this.changeLength}\n />\n )}\n <Button\n className={classes.addButton}\n variant=\"contained\"\n color=\"primary\"\n onClick={this.onAddChoice}\n >\n Add\n </Button>\n </div>\n }\n </div>\n <div\n className={classes.altChoices}\n >\n {\n choices &&\n choices.map((c, index) => index > 0 && (\n <Choice\n key={index}\n classes={classes}\n markup={c.label}\n onChange={val => this.onChoiceChanged(c, val)}\n onDelete={() => this.onRemoveChoice(c)}\n />\n ))\n }\n </div>\n </div>\n );\n }\n}\n\nconst Styled = withStyles(styles)(AlternateSection);\n\nexport default Styled;\n"],"file":"alternateSection.js"}
|
|
@@ -45,6 +45,7 @@ var _default = {
|
|
|
45
45
|
value: '3'
|
|
46
46
|
}]
|
|
47
47
|
},
|
|
48
|
+
maxLengthPerChoiceEnabled: true,
|
|
48
49
|
rationaleEnabled: true,
|
|
49
50
|
promptEnabled: true,
|
|
50
51
|
teacherInstructionsEnabled: true,
|
|
@@ -66,6 +67,10 @@ var _default = {
|
|
|
66
67
|
teacherInstructions: {
|
|
67
68
|
settings: true,
|
|
68
69
|
label: 'Teacher Instructions'
|
|
70
|
+
},
|
|
71
|
+
maxLengthPerChoice: {
|
|
72
|
+
settings: true,
|
|
73
|
+
label: 'Maximum Length Per Choice'
|
|
69
74
|
}
|
|
70
75
|
}
|
|
71
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","shuffle","markup","toolbarEditorPosition","choices","label","value","correct","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","settings","partialScoring","rationale","teacherInstructions"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,KADL;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,MAAM,EAAE,yCAHH;AAILC,IAAAA,OAAO,EAAE,IAJJ;AAKLC,IAAAA,MAAM,EAAE,yCALH;AAMLC,IAAAA,qBAAqB,EAAE,QANlB;AAOLC,IAAAA,OAAO,EAAE;AACP,SAAG,CACD;AACEC,QAAAA,KAAK,EAAE,KADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OADC,EAKD;AACED,QAAAA,KAAK,EAAE,QADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OALC,EASD;AACED,QAAAA,KAAK,EAAE,MADT;AAEEC,QAAAA,KAAK,EAAE,GAFT;AAGEC,QAAAA,OAAO,EAAE;AAHX,OATC,CADI;AAgBP,SAAG,CACD;AACEF,QAAAA,KAAK,EAAE,MADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OADC,EAKD;AACED,QAAAA,KAAK,EAAE,MADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OALC,EASD;AACED,QAAAA,KAAK,EAAE,QADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OATC,CAhBI;AA8BP,SAAG,CACD;AACED,QAAAA,KAAK,EAAE,MADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OADC,EAKD;AACED,QAAAA,KAAK,EAAE,WADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OALC,EASD;AACED,QAAAA,KAAK,EAAE,QADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OATC;AA9BI,KAPJ;AAoDLE,IAAAA,
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","shuffle","markup","toolbarEditorPosition","choices","label","value","correct","maxLengthPerChoiceEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","settings","partialScoring","rationale","teacherInstructions","maxLengthPerChoice"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,KADL;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,MAAM,EAAE,yCAHH;AAILC,IAAAA,OAAO,EAAE,IAJJ;AAKLC,IAAAA,MAAM,EAAE,yCALH;AAMLC,IAAAA,qBAAqB,EAAE,QANlB;AAOLC,IAAAA,OAAO,EAAE;AACP,SAAG,CACD;AACEC,QAAAA,KAAK,EAAE,KADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OADC,EAKD;AACED,QAAAA,KAAK,EAAE,QADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OALC,EASD;AACED,QAAAA,KAAK,EAAE,MADT;AAEEC,QAAAA,KAAK,EAAE,GAFT;AAGEC,QAAAA,OAAO,EAAE;AAHX,OATC,CADI;AAgBP,SAAG,CACD;AACEF,QAAAA,KAAK,EAAE,MADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OADC,EAKD;AACED,QAAAA,KAAK,EAAE,MADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OALC,EASD;AACED,QAAAA,KAAK,EAAE,QADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OATC,CAhBI;AA8BP,SAAG,CACD;AACED,QAAAA,KAAK,EAAE,MADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OADC,EAKD;AACED,QAAAA,KAAK,EAAE,WADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OALC,EASD;AACED,QAAAA,KAAK,EAAE,QADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OATC;AA9BI,KAPJ;AAoDLE,IAAAA,yBAAyB,EAAE,IApDtB;AAqDLC,IAAAA,gBAAgB,EAAE,IArDb;AAsDLC,IAAAA,aAAa,EAAE,IAtDV;AAuDLC,IAAAA,0BAA0B,EAAE,IAvDvB;AAwDLC,IAAAA,0BAA0B,EAAE;AAxDvB,GADM;AA2DbC,EAAAA,aAAa,EAAE;AACbb,IAAAA,MAAM,EAAE;AACNc,MAAAA,QAAQ,EAAE,IADJ;AAENT,MAAAA,KAAK,EAAE;AAFD,KADK;AAKbU,IAAAA,cAAc,EAAE;AACdD,MAAAA,QAAQ,EAAE,KADI;AAEdT,MAAAA,KAAK,EAAE;AAFO,KALH;AASbW,IAAAA,SAAS,EAAE;AACTF,MAAAA,QAAQ,EAAE,IADD;AAETT,MAAAA,KAAK,EAAE;AAFE,KATE;AAabY,IAAAA,mBAAmB,EAAE;AACnBH,MAAAA,QAAQ,EAAE,IADS;AAEnBT,MAAAA,KAAK,EAAE;AAFY,KAbR;AAiBba,IAAAA,kBAAkB,EAAE;AAClBJ,MAAAA,QAAQ,EAAE,IADQ;AAElBT,MAAAA,KAAK,EAAE;AAFW;AAjBP;AA3DF,C","sourcesContent":["export default {\n model: {\n disabled: false,\n mode: 'gather',\n prompt: 'Use the inputs to complete the sentence',\n shuffle: true,\n markup: '<p>The {{0}} jumped {{1}} the {{2}}</p>',\n toolbarEditorPosition: 'bottom',\n choices: {\n 0: [\n {\n label: 'cow',\n value: '0'\n },\n {\n label: 'cattle',\n value: '1'\n },\n {\n label: 'calf',\n value: '2',\n correct: false\n }\n ],\n 1: [\n {\n label: 'over',\n value: '0'\n },\n {\n label: 'past',\n value: '1'\n },\n {\n label: 'beyond',\n value: '2'\n }\n ],\n 2: [\n {\n label: 'moon',\n value: '0'\n },\n {\n label: 'satellite',\n value: '2'\n },\n {\n label: 'house ',\n value: '3'\n }\n ]\n },\n maxLengthPerChoiceEnabled: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true\n },\n configuration: {\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n maxLengthPerChoice: {\n settings: true,\n label: 'Maximum Length Per Choice'\n }\n }\n};\n"],"file":"defaults.js"}
|
|
@@ -29,13 +29,13 @@ var _styles = require("@material-ui/core/styles");
|
|
|
29
29
|
|
|
30
30
|
var _OutlinedInput = _interopRequireDefault(require("@material-ui/core/OutlinedInput"));
|
|
31
31
|
|
|
32
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
32
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
33
33
|
|
|
34
34
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
35
35
|
|
|
36
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
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 {
|
|
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
39
|
|
|
40
40
|
var findSlateNode = function findSlateNode(key) {
|
|
41
41
|
return window.document.querySelector('[data-key="' + key + '"]');
|
|
@@ -124,6 +124,9 @@ var ECRToolbar = /*#__PURE__*/function (_React$Component) {
|
|
|
124
124
|
backgroundColor: '#E0E1E6'
|
|
125
125
|
})
|
|
126
126
|
}, /*#__PURE__*/_react["default"].createElement(_OutlinedInput["default"], {
|
|
127
|
+
style: {
|
|
128
|
+
width: '100%'
|
|
129
|
+
},
|
|
127
130
|
autoFocus: true,
|
|
128
131
|
labelWidth: 0,
|
|
129
132
|
classes: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ecr-toolbar.jsx"],"names":["findSlateNode","key","window","document","querySelector","ECRToolbar","newValue","state","markup","props","node","value","onToolbarDone","onChangeResponse","update","data","toJSON","change","setNodeByKey","nextText","getNextText","moveFocusTo","moveAnchorTo","e","setState","target","correctChoice","choice","domNode","domNodeRect","getBoundingClientRect","editor","closest","editorRect","top","left","label","toolbarStyle","position","height","width","classes","backgroundColor","input","onChange","onDone","React","Component","PropTypes","object","func","isRequired","shape","StyledECRToolbar","respArea","padding"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,GAAG,EAAI;AAC3B,SAAOC,MAAM,CAACC,QAAP,CAAgBC,aAAhB,CAA8B,gBAAgBH,GAAhB,GAAsB,IAApD,CAAP;AACD,CAFD;;IAIaI,U;;;;;;;;;;;;;;;8FAgBH,E;+FA4BC,YAAM;
|
|
1
|
+
{"version":3,"sources":["../src/ecr-toolbar.jsx"],"names":["findSlateNode","key","window","document","querySelector","ECRToolbar","newValue","state","markup","props","node","value","onToolbarDone","onChangeResponse","update","data","toJSON","change","setNodeByKey","nextText","getNextText","moveFocusTo","moveAnchorTo","e","setState","target","correctChoice","choice","domNode","domNodeRect","getBoundingClientRect","editor","closest","editorRect","top","left","label","toolbarStyle","position","height","width","classes","backgroundColor","input","onChange","onDone","React","Component","PropTypes","object","func","isRequired","shape","StyledECRToolbar","respArea","padding"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\n\nconst findSlateNode = key => {\n return window.document.querySelector('[data-key=\"' + key + '\"]');\n};\n\nexport class ECRToolbar extends React.Component {\n static propTypes = {\n correctChoice: PropTypes.object,\n classes: PropTypes.object,\n node: PropTypes.object,\n onDone: PropTypes.func,\n onChangeResponse: PropTypes.func.isRequired,\n onToolbarDone: PropTypes.func.isRequired,\n value: PropTypes.shape({\n change: PropTypes.func.isRequired,\n document: PropTypes.shape({\n getNextText: PropTypes.func.isRequired\n })\n })\n };\n\n state = {};\n\n componentDidMount() {\n const { correctChoice, node } = this.props;\n const choice = correctChoice || {};\n\n const domNode = findSlateNode(node.key);\n\n if (domNode) {\n //eslint-disable-next-line\n const domNodeRect = domNode.getBoundingClientRect();\n const editor = domNode.closest('[data-slate-editor]');\n const editorRect = editor.getBoundingClientRect();\n const top = domNodeRect.top - editorRect.top;\n const left = domNodeRect.left - editorRect.left;\n\n this.setState({\n markup: choice.label,\n toolbarStyle: {\n position: 'absolute',\n top: `${top + domNodeRect.height + 20}px`,\n left: `${left + 20}px`,\n width: domNodeRect.width\n }\n });\n }\n }\n\n onDone = () => {\n const { markup: newValue } = this.state;\n const { node, value, onToolbarDone, onChangeResponse } = this.props;\n const update = { ...node.data.toJSON(), value: newValue };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n\n onToolbarDone(change, false);\n onChangeResponse(newValue);\n };\n\n onChange = e => this.setState({ markup: e.target.value });\n\n render() {\n const { classes } = this.props;\n const { markup, toolbarStyle } = this.state;\n\n return (\n <div\n style={{\n ...toolbarStyle,\n backgroundColor: '#E0E1E6'\n }}\n >\n <OutlinedInput\n style={{ width: '100%' }}\n autoFocus\n labelWidth={0}\n classes={{\n input: classes.input\n }}\n onChange={this.onChange}\n onBlur={this.onDone}\n value={markup}\n />\n </div>\n );\n }\n}\n\nconst StyledECRToolbar = withStyles({\n respArea: {\n backgroundColor: '#fff'\n },\n input: {\n backgroundColor: '#fff',\n padding: '10px 20px 10px 10px'\n }\n})(ECRToolbar);\n\nexport default StyledECRToolbar;\n"],"file":"ecr-toolbar.js"}
|
package/configure/lib/index.js
CHANGED
|
@@ -41,13 +41,13 @@ var _defaults2 = _interopRequireDefault(require("./defaults"));
|
|
|
41
41
|
|
|
42
42
|
var _markupUtils = require("./markupUtils");
|
|
43
43
|
|
|
44
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
44
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
45
45
|
|
|
46
46
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
47
47
|
|
|
48
48
|
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); }; }
|
|
49
49
|
|
|
50
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
50
|
+
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; } }
|
|
51
51
|
|
|
52
52
|
var log = (0, _debug["default"])('explicit-constructed-response:configure');
|
|
53
53
|
|