@pie-element/explicit-constructed-response 6.10.2-next.1 → 6.10.2-next.15

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 (38) hide show
  1. package/configure/lib/alternateResponses.js +243 -0
  2. package/configure/lib/alternateResponses.js.map +1 -0
  3. package/configure/lib/alternateSection.js +403 -0
  4. package/configure/lib/alternateSection.js.map +1 -0
  5. package/configure/lib/defaults.js +188 -0
  6. package/configure/lib/defaults.js.map +1 -0
  7. package/configure/lib/ecr-toolbar.js +184 -0
  8. package/configure/lib/ecr-toolbar.js.map +1 -0
  9. package/configure/lib/index.js +228 -0
  10. package/configure/lib/index.js.map +1 -0
  11. package/configure/lib/main.js +611 -0
  12. package/configure/lib/main.js.map +1 -0
  13. package/configure/lib/markupUtils.js +77 -0
  14. package/configure/lib/markupUtils.js.map +1 -0
  15. package/configure/lib/utils.js +15 -0
  16. package/configure/lib/utils.js.map +1 -0
  17. package/configure/package.json +1 -1
  18. package/controller/lib/defaults.js +20 -0
  19. package/controller/lib/defaults.js.map +1 -0
  20. package/controller/lib/index.js +387 -0
  21. package/controller/lib/index.js.map +1 -0
  22. package/controller/package.json +1 -1
  23. package/lib/index.js +124 -0
  24. package/lib/index.js.map +1 -0
  25. package/lib/main.js +279 -0
  26. package/lib/main.js.map +1 -0
  27. package/lib/print.js +115 -0
  28. package/lib/print.js.map +1 -0
  29. package/module/configure.js +17141 -0
  30. package/module/controller.js +24955 -0
  31. package/module/demo.js +45 -0
  32. package/module/element.js +129047 -0
  33. package/module/index.html +21 -0
  34. package/module/manifest.json +14 -0
  35. package/module/print-demo.js +83 -0
  36. package/module/print.html +18 -0
  37. package/module/print.js +128990 -0
  38. package/package.json +3 -3
@@ -0,0 +1,243 @@
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.AlternateResponses = void 0;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _react = _interopRequireDefault(require("react"));
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
31
+
32
+ var _map = _interopRequireDefault(require("lodash/map"));
33
+
34
+ var _reduce = _interopRequireDefault(require("lodash/reduce"));
35
+
36
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
37
+
38
+ var _alternateSection = _interopRequireDefault(require("./alternateSection"));
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
+ 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); }; }
45
+
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; } }
47
+
48
+ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
49
+ (0, _inherits2["default"])(AlternateResponses, _React$Component);
50
+
51
+ var _super = _createSuper(AlternateResponses);
52
+
53
+ function AlternateResponses() {
54
+ var _this;
55
+
56
+ (0, _classCallCheck2["default"])(this, AlternateResponses);
57
+
58
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
59
+ args[_key] = arguments[_key];
60
+ }
61
+
62
+ _this = _super.call.apply(_super, [this].concat(args));
63
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
64
+ maxLengthPerChoice: (0, _cloneDeep["default"])(_this.props.model.maxLengthPerChoice)
65
+ });
66
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateChoicesIfNeeded", function (props) {
67
+ if (!_this.state.choices || !(0, _isEqual["default"])(_this.state.choices, props.model.choices) || !(0, _isEqual["default"])(props.model.choices, _this.props.model.choices) || _this.state.values && Object.keys(_this.state.values).length !== Object.keys(_this.props.model.choices).length || props.maxLengthPerChoiceEnabled !== _this.props.maxLengthPerChoiceEnabled) {
68
+ var _props$model = props.model,
69
+ choices = _props$model.choices,
70
+ maxLengthPerChoice = _props$model.maxLengthPerChoice;
71
+ var selectedValues = (0, _reduce["default"])(choices, function (obj, c, key) {
72
+ // if maxLengthPerChoiceEnabled is true, we display all the choices
73
+ if (c && (props.maxLengthPerChoiceEnabled || c.length > 1)) {
74
+ obj[key] = c[0];
75
+ }
76
+
77
+ return obj;
78
+ }, {});
79
+
80
+ _this.setState({
81
+ choices: props.model.choices,
82
+ values: selectedValues,
83
+ maxLengthPerChoice: (0, _cloneDeep["default"])(maxLengthPerChoice)
84
+ });
85
+ }
86
+ });
87
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getRemainingChoices", function (valueKey) {
88
+ var choices = _this.state.choices;
89
+ return (0, _reduce["default"])(choices, function (arr, c, key) {
90
+ if (c && c.length === 1 && !valueKey) {
91
+ arr.push({
92
+ label: c[0].label,
93
+ value: key
94
+ });
95
+ }
96
+
97
+ return arr;
98
+ }, []);
99
+ });
100
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChoiceChanged", function (choice, key) {
101
+ var onChange = _this.props.onChange;
102
+ var choices = _this.state.choices;
103
+ var sectionChoices = choices[key] || [];
104
+ var isNew = !sectionChoices.find(function (c) {
105
+ return c.value === choice.value;
106
+ });
107
+ var newChoices = sectionChoices.reduce(function (arr, c) {
108
+ var newVal = c.value === choice.value ? choice : c;
109
+ arr.push(newVal);
110
+ return arr;
111
+ }, []);
112
+
113
+ if (isNew) {
114
+ newChoices.push(choice);
115
+ }
116
+
117
+ onChange(_objectSpread(_objectSpread({}, choices), {}, (0, _defineProperty2["default"])({}, key, newChoices)));
118
+ });
119
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChoiceRemoved", function (value, section) {
120
+ var onChange = _this.props.onChange;
121
+ var choices = _this.state.choices;
122
+ var sectionChoices = choices[section] || [];
123
+ var newChoices = sectionChoices.reduce(function (arr, c) {
124
+ if (c.value === value) {
125
+ return arr;
126
+ }
127
+
128
+ arr.push(c);
129
+ return arr;
130
+ }, []);
131
+ onChange(_objectSpread(_objectSpread({}, choices), {}, (0, _defineProperty2["default"])({}, section, newChoices)));
132
+ });
133
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onSectionSelect", function (choice, key) {
134
+ var onChange = _this.props.onChange;
135
+ var _this$state = _this.state,
136
+ choices = _this$state.choices,
137
+ values = _this$state.values;
138
+
139
+ if (choices[key] && choices[key].length > 1) {
140
+ if (!choice) {
141
+ onChange(_objectSpread(_objectSpread({}, choices), {}, (0, _defineProperty2["default"])({}, key, [choices[key][0]])));
142
+ }
143
+ } else {
144
+ _this.setState({
145
+ choices: _objectSpread(_objectSpread({}, choices), {}, (0, _defineProperty2["default"])({}, key, [].concat((0, _toConsumableArray2["default"])(choices[key]), [{
146
+ label: '',
147
+ value: '1'
148
+ }]))),
149
+ values: _objectSpread(_objectSpread({}, values), {}, (0, _defineProperty2["default"])({}, key, choices[key][0]))
150
+ });
151
+ }
152
+ });
153
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onLengthChanged", function (value, key) {
154
+ var _this$props = _this.props,
155
+ model = _this$props.model,
156
+ onLengthChange = _this$props.onLengthChange;
157
+ var maxLengthPerChoice = model.maxLengthPerChoice;
158
+ maxLengthPerChoice[key] = value;
159
+ onLengthChange(maxLengthPerChoice);
160
+ });
161
+ return _this;
162
+ }
163
+
164
+ (0, _createClass2["default"])(AlternateResponses, [{
165
+ key: "UNSAFE_componentWillReceiveProps",
166
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
167
+ this.updateChoicesIfNeeded(nextProps);
168
+ }
169
+ }, {
170
+ key: "componentDidMount",
171
+ value: function componentDidMount() {
172
+ this.updateChoicesIfNeeded(this.props);
173
+ }
174
+ }, {
175
+ key: "render",
176
+ value: function render() {
177
+ var _this2 = this;
178
+
179
+ var choices = this.state.choices;
180
+ var _this$props2 = this.props,
181
+ _this$props2$model = _this$props2.model,
182
+ maxLengthPerChoice = _this$props2$model.maxLengthPerChoice,
183
+ maxLengthPerChoiceEnabled = _this$props2$model.maxLengthPerChoiceEnabled,
184
+ spellCheck = _this$props2.spellCheck,
185
+ choicesErrors = _this$props2.choicesErrors;
186
+ return /*#__PURE__*/_react["default"].createElement("div", null, (0, _map["default"])(choices, function (c, key) {
187
+ // if maxLengthPerChoiceEnabled is true, we display all the choices
188
+ if (c && (maxLengthPerChoiceEnabled || c.length > 1)) {
189
+ var selected = _this2.state.values[key];
190
+ return /*#__PURE__*/_react["default"].createElement(_alternateSection["default"], {
191
+ key: key,
192
+ value: selected && selected.value,
193
+ errors: choicesErrors && choicesErrors[key],
194
+ onSelect: function onSelect(choice) {
195
+ return _this2.onSectionSelect(choice, key);
196
+ },
197
+ choiceChanged: function choiceChanged(choice) {
198
+ return _this2.onChoiceChanged(choice, key);
199
+ },
200
+ choiceRemoved: function choiceRemoved(value) {
201
+ return _this2.onChoiceRemoved(value, key);
202
+ },
203
+ lengthChanged: function lengthChanged(value) {
204
+ return _this2.onLengthChanged(value, key);
205
+ },
206
+ selectChoices: [selected],
207
+ choices: c,
208
+ maxLength: maxLengthPerChoice[key],
209
+ showMaxLength: maxLengthPerChoiceEnabled,
210
+ spellCheck: spellCheck
211
+ });
212
+ }
213
+ }), choices && Object.keys(this.state.values).length !== Object.keys(choices).length && /*#__PURE__*/_react["default"].createElement(_alternateSection["default"], {
214
+ value: "",
215
+ onSelect: function onSelect(choice) {
216
+ return _this2.onSectionSelect(choice, choice.value);
217
+ },
218
+ choiceChanged: function choiceChanged(choice) {
219
+ return _this2.onChoiceChanged(choice);
220
+ },
221
+ choiceRemoved: function choiceRemoved(value) {
222
+ return _this2.onChoiceRemoved(value);
223
+ },
224
+ selectChoices: this.getRemainingChoices(),
225
+ spellCheck: spellCheck
226
+ }));
227
+ }
228
+ }]);
229
+ return AlternateResponses;
230
+ }(_react["default"].Component);
231
+
232
+ exports.AlternateResponses = AlternateResponses;
233
+ (0, _defineProperty2["default"])(AlternateResponses, "propTypes", {
234
+ choicesErrors: _propTypes["default"].object,
235
+ model: _propTypes["default"].object.isRequired,
236
+ onChange: _propTypes["default"].func.isRequired,
237
+ onLengthChange: _propTypes["default"].func.isRequired,
238
+ maxLengthPerChoiceEnabled: _propTypes["default"].bool.isRequired,
239
+ spellCheck: _propTypes["default"].bool
240
+ });
241
+ var _default = AlternateResponses;
242
+ exports["default"] = _default;
243
+ //# sourceMappingURL=alternateResponses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/alternateResponses.jsx"],"names":["AlternateResponses","maxLengthPerChoice","props","model","state","choices","values","Object","keys","length","maxLengthPerChoiceEnabled","selectedValues","obj","c","key","setState","valueKey","arr","push","label","value","choice","onChange","sectionChoices","isNew","find","newChoices","reduce","newVal","section","onLengthChange","nextProps","updateChoicesIfNeeded","spellCheck","choicesErrors","selected","onSectionSelect","onChoiceChanged","onChoiceRemoved","onLengthChanged","getRemainingChoices","React","Component","PropTypes","object","isRequired","func","bool"],"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 choicesErrors: PropTypes.object,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onLengthChange: PropTypes.func.isRequired,\n maxLengthPerChoiceEnabled: PropTypes.bool.isRequired,\n spellCheck: PropTypes.bool,\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 if (\n !this.state.choices ||\n !isEqual(this.state.choices, props.model.choices) ||\n !isEqual(props.model.choices, this.props.model.choices) ||\n (this.state.values && Object.keys(this.state.values).length !== Object.keys(this.props.model.choices).length) ||\n props.maxLengthPerChoiceEnabled !== this.props.maxLengthPerChoiceEnabled\n ) {\n const { choices, maxLengthPerChoice } = props.model;\n\n const selectedValues = reduce(\n choices,\n (obj, c, key) => {\n // if maxLengthPerChoiceEnabled is true, we display all the choices\n if (c && (props.maxLengthPerChoiceEnabled || c.length > 1)) {\n obj[key] = c[0];\n }\n\n return obj;\n },\n {},\n );\n\n this.setState({\n choices: props.model.choices,\n values: selectedValues,\n maxLengthPerChoice: cloneDeep(maxLengthPerChoice),\n });\n }\n };\n\n getRemainingChoices = (valueKey) => {\n const { choices } = this.state;\n\n return reduce(\n choices,\n (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 };\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 {\n model: { maxLengthPerChoice, maxLengthPerChoiceEnabled },\n spellCheck,\n choicesErrors,\n } = this.props;\n\n return (\n <div>\n {map(choices, (c, key) => {\n // if maxLengthPerChoiceEnabled is true, we display all the choices\n if (c && (maxLengthPerChoiceEnabled || c.length > 1)) {\n const selected = this.state.values[key];\n\n return (\n <AlternateSection\n key={key}\n value={selected && selected.value}\n errors={choicesErrors && choicesErrors[key]}\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 spellCheck={spellCheck}\n />\n );\n }\n })}\n\n {choices && 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 spellCheck={spellCheck}\n />\n )}\n </div>\n );\n }\n}\n\nexport default AlternateResponses;\n"],"file":"alternateResponses.js"}
@@ -0,0 +1,403 @@
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.Choice = exports.AlternateSection = void 0;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _react = _interopRequireDefault(require("react"));
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
31
+
32
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
33
+
34
+ var _OutlinedInput = _interopRequireDefault(require("@material-ui/core/OutlinedInput"));
35
+
36
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
37
+
38
+ var _Delete = _interopRequireDefault(require("@material-ui/icons/Delete"));
39
+
40
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
41
+
42
+ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
43
+
44
+ var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
45
+
46
+ var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
47
+
48
+ var _styles = require("@material-ui/core/styles");
49
+
50
+ var _max = _interopRequireDefault(require("lodash/max"));
51
+
52
+ var _classnames = _interopRequireDefault(require("classnames"));
53
+
54
+ var _markupUtils = require("./markupUtils");
55
+
56
+ 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; }
57
+
58
+ 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; }
59
+
60
+ 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); }; }
61
+
62
+ 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; } }
63
+
64
+ var styles = function styles(theme) {
65
+ return {
66
+ design: {
67
+ marginBottom: theme.spacing.unit / 2
68
+ },
69
+ altChoices: {
70
+ alignItems: 'flex-start',
71
+ flexDirection: 'column',
72
+ display: 'flex',
73
+ paddingTop: theme.spacing.unit * 2.5,
74
+ '& > *': {
75
+ marginBottom: theme.spacing.unit * 2.5,
76
+ width: '100%'
77
+ }
78
+ },
79
+ choice: {
80
+ flex: '1',
81
+ marginRight: theme.spacing.unit * 2.5
82
+ },
83
+ deleteBtn: {
84
+ fill: theme.palette.grey[600]
85
+ },
86
+ selectContainer: {
87
+ alignItems: 'flex-end',
88
+ display: 'flex',
89
+ justifyContent: 'space-between',
90
+ width: '100%'
91
+ },
92
+ rightContainer: {
93
+ alignItems: 'center',
94
+ display: 'flex'
95
+ },
96
+ lengthField: {
97
+ width: '230px',
98
+ marginRight: theme.spacing.unit * 2.5
99
+ },
100
+ errorText: {
101
+ fontSize: theme.typography.fontSize - 2,
102
+ color: theme.palette.error.main,
103
+ paddingTop: theme.spacing.unit / 2
104
+ },
105
+ inputError: {
106
+ border: "2px solid ".concat(theme.palette.error.main),
107
+ borderRadius: '6px'
108
+ }
109
+ };
110
+ };
111
+
112
+ var Choice = /*#__PURE__*/function (_React$Component) {
113
+ (0, _inherits2["default"])(Choice, _React$Component);
114
+
115
+ var _super = _createSuper(Choice);
116
+
117
+ function Choice() {
118
+ var _this;
119
+
120
+ (0, _classCallCheck2["default"])(this, Choice);
121
+
122
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
123
+ args[_key] = arguments[_key];
124
+ }
125
+
126
+ _this = _super.call.apply(_super, [this].concat(args));
127
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
128
+ value: _this.props.markup
129
+ });
130
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateText", (0, _debounce["default"])(_this.props.onChange, 300));
131
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (e) {
132
+ var value = e.target.value;
133
+
134
+ _this.setState({
135
+ value: value
136
+ });
137
+
138
+ _this.updateText(value);
139
+ });
140
+ return _this;
141
+ }
142
+
143
+ (0, _createClass2["default"])(Choice, [{
144
+ key: "UNSAFE_componentWillReceiveProps",
145
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
146
+ if (nextProps.markup) {
147
+ this.setState({
148
+ value: nextProps.markup
149
+ });
150
+ }
151
+ }
152
+ }, {
153
+ key: "render",
154
+ value: function render() {
155
+ var value = this.state.value;
156
+ var _this$props = this.props,
157
+ classes = _this$props.classes,
158
+ onDelete = _this$props.onDelete,
159
+ spellCheck = _this$props.spellCheck,
160
+ error = _this$props.error,
161
+ showMaxLength = _this$props.showMaxLength;
162
+ var inputProps = showMaxLength ? {} : {
163
+ maxLength: 25
164
+ };
165
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
166
+ style: {
167
+ alignItems: 'center',
168
+ display: 'flex',
169
+ justifyContent: 'space-between'
170
+ }
171
+ }, /*#__PURE__*/_react["default"].createElement(_OutlinedInput["default"], {
172
+ className: (0, _classnames["default"])(classes.choice, error && classes.inputError),
173
+ value: value,
174
+ onChange: this.onChange,
175
+ labelWidth: 0,
176
+ disableUnderline: true,
177
+ spellCheck: spellCheck,
178
+ inputProps: inputProps
179
+ }), /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
180
+ "aria-label": "delete",
181
+ className: classes.deleteBtn,
182
+ onClick: onDelete
183
+ }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null))), error && /*#__PURE__*/_react["default"].createElement("div", {
184
+ className: classes.errorText
185
+ }, error));
186
+ }
187
+ }]);
188
+ return Choice;
189
+ }(_react["default"].Component);
190
+
191
+ exports.Choice = Choice;
192
+ (0, _defineProperty2["default"])(Choice, "propTypes", {
193
+ classes: _propTypes["default"].object,
194
+ error: _propTypes["default"].string,
195
+ markup: _propTypes["default"].string,
196
+ onChange: _propTypes["default"].func.isRequired,
197
+ onDelete: _propTypes["default"].func.isRequired,
198
+ value: _propTypes["default"].string,
199
+ spellCheck: _propTypes["default"].bool,
200
+ showMaxLength: _propTypes["default"].bool
201
+ });
202
+
203
+ var AlternateSection = /*#__PURE__*/function (_React$Component2) {
204
+ (0, _inherits2["default"])(AlternateSection, _React$Component2);
205
+
206
+ var _super2 = _createSuper(AlternateSection);
207
+
208
+ function AlternateSection() {
209
+ var _this2;
210
+
211
+ (0, _classCallCheck2["default"])(this, AlternateSection);
212
+
213
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
214
+ args[_key2] = arguments[_key2];
215
+ }
216
+
217
+ _this2 = _super2.call.apply(_super2, [this].concat(args));
218
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "state", {});
219
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "updateChoicesIfNeeded", function (props) {
220
+ if (!_this2.state.choices || !(0, _isEqual["default"])(props.choices, _this2.state.choices) || !(0, _isEqual["default"])(props.choices, _this2.props.choices)) {
221
+ _this2.setState({
222
+ choices: props.choices
223
+ });
224
+ }
225
+ });
226
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handleSelect", function (e) {
227
+ var _this2$props = _this2.props,
228
+ onSelect = _this2$props.onSelect,
229
+ selectChoices = _this2$props.selectChoices;
230
+ var value = e.target.value;
231
+ onSelect(selectChoices.find(function (c) {
232
+ return c.value === value;
233
+ }));
234
+ });
235
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "onAddChoice", function () {
236
+ var choices = _this2.state.choices;
237
+
238
+ if (choices.length && choices[choices.length - 1].label !== '') {
239
+ var value = (0, _max["default"])(choices.map(function (c) {
240
+ return parseInt(c.value);
241
+ }).filter(function (id) {
242
+ return !isNaN(id);
243
+ })) || 0;
244
+
245
+ _this2.setState({
246
+ choices: [].concat((0, _toConsumableArray2["default"])(choices), [{
247
+ value: "".concat(value + 1),
248
+ label: ''
249
+ }])
250
+ });
251
+ }
252
+ });
253
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "onChoiceChanged", function (choice, value, index) {
254
+ var _this2$props2 = _this2.props,
255
+ choiceChanged = _this2$props2.choiceChanged,
256
+ lengthChanged = _this2$props2.lengthChanged,
257
+ maxLength = _this2$props2.maxLength,
258
+ choices = _this2$props2.choices;
259
+ var labelLengthsArr = choices.map(function (choice) {
260
+ return (choice.label || '').length;
261
+ });
262
+ labelLengthsArr[index] = value.length;
263
+ var newLength = Math.max.apply(Math, (0, _toConsumableArray2["default"])(labelLengthsArr));
264
+ choiceChanged(_objectSpread(_objectSpread({}, choice), {}, {
265
+ label: value
266
+ }));
267
+
268
+ if (newLength > maxLength || newLength + 10 <= maxLength) {
269
+ lengthChanged((0, _markupUtils.getAdjustedLength)(newLength));
270
+ }
271
+ });
272
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "onRemoveChoice", function (choice) {
273
+ var choiceRemoved = _this2.props.choiceRemoved;
274
+ choiceRemoved(choice.value);
275
+ });
276
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "getChoicesMaxLength", function () {
277
+ var choices = _this2.state.choices;
278
+
279
+ if (!choices) {
280
+ return 1;
281
+ }
282
+
283
+ var labelLengthsArr = choices.map(function (choice) {
284
+ return (choice.label || '').length;
285
+ });
286
+ return Math.max.apply(Math, (0, _toConsumableArray2["default"])(labelLengthsArr));
287
+ });
288
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "changeLength", function (event) {
289
+ var lengthChanged = _this2.props.lengthChanged;
290
+ var numberValue = parseInt(event.target.value, 10);
291
+
292
+ var minLength = _this2.getChoicesMaxLength();
293
+
294
+ if (numberValue && numberValue >= minLength && numberValue <= minLength + 10) {
295
+ lengthChanged(numberValue);
296
+ }
297
+ });
298
+ return _this2;
299
+ }
300
+
301
+ (0, _createClass2["default"])(AlternateSection, [{
302
+ key: "UNSAFE_componentWillReceiveProps",
303
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
304
+ this.updateChoicesIfNeeded(nextProps);
305
+ }
306
+ }, {
307
+ key: "componentDidMount",
308
+ value: function componentDidMount() {
309
+ this.updateChoicesIfNeeded(this.props);
310
+ }
311
+ }, {
312
+ key: "render",
313
+ value: function render() {
314
+ var _this3 = this;
315
+
316
+ var _this$props2 = this.props,
317
+ classes = _this$props2.classes,
318
+ selectChoices = _this$props2.selectChoices,
319
+ maxLength = _this$props2.maxLength,
320
+ showMaxLength = _this$props2.showMaxLength,
321
+ value = _this$props2.value,
322
+ spellCheck = _this$props2.spellCheck,
323
+ errors = _this$props2.errors;
324
+ var choices = this.state.choices;
325
+ var minLength = this.getChoicesMaxLength();
326
+ return /*#__PURE__*/_react["default"].createElement("div", {
327
+ className: classes.design
328
+ }, /*#__PURE__*/_react["default"].createElement("div", {
329
+ className: classes.selectContainer
330
+ }, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
331
+ className: classes.select,
332
+ displayEmpty: true,
333
+ onChange: this.handleSelect,
334
+ value: value || '',
335
+ readOnly: showMaxLength
336
+ }, /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
337
+ value: ""
338
+ }, /*#__PURE__*/_react["default"].createElement("em", null, value ? 'Remove selection' : 'Select a response')), selectChoices.map(function (c, index) {
339
+ return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
340
+ key: index,
341
+ value: c === null || c === void 0 ? void 0 : c.value
342
+ }, c === null || c === void 0 ? void 0 : c.label);
343
+ })), choices && choices.length > 0 && /*#__PURE__*/_react["default"].createElement("div", {
344
+ className: classes.rightContainer
345
+ }, maxLength && showMaxLength && /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
346
+ className: classes.lengthField,
347
+ label: "Maximum length (characters)",
348
+ type: "number",
349
+ inputProps: {
350
+ min: minLength,
351
+ max: minLength + 10
352
+ },
353
+ value: maxLength,
354
+ onChange: this.changeLength
355
+ }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
356
+ className: classes.addButton,
357
+ variant: "contained",
358
+ color: "primary",
359
+ onClick: this.onAddChoice
360
+ }, "Add"))), errors && errors[0] && /*#__PURE__*/_react["default"].createElement("div", {
361
+ className: classes.errorText
362
+ }, errors[0]), /*#__PURE__*/_react["default"].createElement("div", {
363
+ className: classes.altChoices
364
+ }, choices && choices.map(function (c, index) {
365
+ return index > 0 && /*#__PURE__*/_react["default"].createElement(Choice, {
366
+ key: index,
367
+ classes: classes,
368
+ markup: c.label,
369
+ onChange: function onChange(val) {
370
+ return _this3.onChoiceChanged(c, val, index);
371
+ },
372
+ onDelete: function onDelete() {
373
+ return _this3.onRemoveChoice(c);
374
+ },
375
+ spellCheck: spellCheck,
376
+ error: errors && errors[index],
377
+ showMaxLength: showMaxLength
378
+ });
379
+ })));
380
+ }
381
+ }]);
382
+ return AlternateSection;
383
+ }(_react["default"].Component);
384
+
385
+ exports.AlternateSection = AlternateSection;
386
+ (0, _defineProperty2["default"])(AlternateSection, "propTypes", {
387
+ choices: _propTypes["default"].array,
388
+ selectChoices: _propTypes["default"].array.isRequired,
389
+ classes: _propTypes["default"].object.isRequired,
390
+ errors: _propTypes["default"].object,
391
+ onSelect: _propTypes["default"].func.isRequired,
392
+ choiceChanged: _propTypes["default"].func.isRequired,
393
+ lengthChanged: _propTypes["default"].func,
394
+ choiceRemoved: _propTypes["default"].func.isRequired,
395
+ value: _propTypes["default"].string,
396
+ maxLength: _propTypes["default"].number,
397
+ showMaxLength: _propTypes["default"].bool,
398
+ spellCheck: _propTypes["default"].bool
399
+ });
400
+ var Styled = (0, _styles.withStyles)(styles)(AlternateSection);
401
+ var _default = Styled;
402
+ exports["default"] = _default;
403
+ //# sourceMappingURL=alternateSection.js.map