@pie-element/multiple-choice 7.6.1-beta.1 → 7.6.1-beta.3

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.
@@ -1,298 +0,0 @@
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.StyledRadio = exports.StyledFormControlLabel = exports.StyledCheckbox = exports.ChoiceInput = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
27
-
28
- var _react = _interopRequireDefault(require("react"));
29
-
30
- var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
- var _styles = require("@material-ui/core/styles");
33
-
34
- var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
35
-
36
- var _renderUi = require("@pie-lib/render-ui");
37
-
38
- var _feedbackTick = _interopRequireDefault(require("./feedback-tick"));
39
-
40
- var _Radio = _interopRequireDefault(require("@material-ui/core/Radio"));
41
-
42
- var _classnames = _interopRequireDefault(require("classnames"));
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
- 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; }
49
-
50
- 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; }
51
-
52
- var CLASS_NAME = 'multiple-choice-component';
53
-
54
- var styleSheet = function styleSheet() {
55
- return {
56
- row: {
57
- display: 'flex',
58
- alignItems: 'center',
59
- backgroundColor: _renderUi.color.background()
60
- },
61
- checkboxHolder: {
62
- display: 'flex',
63
- alignItems: 'center',
64
- backgroundColor: _renderUi.color.background(),
65
- flex: 1,
66
- '& label': {
67
- color: _renderUi.color.text()
68
- }
69
- },
70
- horizontalLayout: (0, _defineProperty2["default"])({}, "& .".concat(CLASS_NAME), {
71
- paddingRight: '8px'
72
- })
73
- };
74
- };
75
-
76
- var formStyleSheet = {
77
- label: {
78
- color: "".concat(_renderUi.color.text(), " !important"),
79
- //'var(--choice-input-color, black)'
80
- backgroundColor: _renderUi.color.background()
81
- }
82
- };
83
- var StyledFormControlLabel = (0, _styles.withStyles)(formStyleSheet, {
84
- name: 'FormControlLabel'
85
- })(function (props) {
86
- return /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], (0, _extends2["default"])({}, props, {
87
- classes: {
88
- label: props.classes.label
89
- }
90
- }));
91
- });
92
- exports.StyledFormControlLabel = StyledFormControlLabel;
93
-
94
- var colorStyle = function colorStyle(varName, fallback) {
95
- return (0, _defineProperty2["default"])({}, "&.".concat(CLASS_NAME), {
96
- color: "var(--choice-input-".concat(varName, ", ").concat(fallback, ") !important")
97
- });
98
- };
99
-
100
- var inputStyles = {
101
- 'correct-root': colorStyle('correct-color', _renderUi.color.text()),
102
- 'correct-checked': colorStyle('correct-selected-color', _renderUi.color.correct()),
103
- //green[500]),
104
- 'correct-disabled': colorStyle('correct-disabled-color', _renderUi.color.disabled()),
105
- //'grey'),
106
- 'incorrect-root': colorStyle('incorrect-color', _renderUi.color.incorrect()),
107
- 'incorrect-checked': colorStyle('incorrect-checked', _renderUi.color.incorrect()),
108
- //orange[500]),
109
- 'incorrect-disabled': colorStyle('incorrect-disabled-color', _renderUi.color.disabled()),
110
- root: _objectSpread(_objectSpread({}, colorStyle('color', _renderUi.color.text())), {}, {
111
- '&:hover': {
112
- color: "".concat(_renderUi.color.primaryLight(), " !important")
113
- }
114
- }),
115
- checked: colorStyle('selected-color', _renderUi.color.primary()),
116
- disabled: _objectSpread(_objectSpread({}, colorStyle('disabled-color', _renderUi.color.text())), {}, {
117
- opacity: 0.6,
118
- cursor: 'not-allowed !important',
119
- pointerEvents: 'initial !important'
120
- })
121
- };
122
- var StyledCheckbox = (0, _styles.withStyles)(inputStyles)(function (props) {
123
- var correctness = props.correctness,
124
- classes = props.classes,
125
- checked = props.checked,
126
- onChange = props.onChange,
127
- disabled = props.disabled,
128
- accessibility = props.accessibility;
129
-
130
- var key = function key(k) {
131
- return correctness ? "".concat(correctness, "-").concat(k) : k;
132
- };
133
-
134
- var resolved = {
135
- root: classes[key('root')],
136
- checked: classes[key('checked')],
137
- disabled: classes[key('disabled')]
138
- };
139
- var miniProps = {
140
- checked: checked,
141
- onChange: onChange,
142
- disabled: disabled
143
- };
144
- return /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], (0, _extends2["default"])({
145
- "aria-label": accessibility
146
- }, miniProps, {
147
- className: CLASS_NAME,
148
- classes: {
149
- root: resolved.root,
150
- checked: resolved.checked,
151
- disabled: "".concat(correctness ? '' : resolved.disabled)
152
- }
153
- }));
154
- });
155
- exports.StyledCheckbox = StyledCheckbox;
156
- var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
157
- var correctness = props.correctness,
158
- classes = props.classes,
159
- checked = props.checked,
160
- onChange = props.onChange,
161
- disabled = props.disabled,
162
- accessibility = props.accessibility;
163
-
164
- var key = function key(k) {
165
- return correctness ? "".concat(correctness, "-").concat(k) : k;
166
- };
167
-
168
- var resolved = {
169
- root: classes[key('root')],
170
- checked: classes[key('checked')],
171
- disabled: classes[key('disabled')]
172
- };
173
- var miniProps = {
174
- checked: checked,
175
- onChange: onChange,
176
- disabled: disabled
177
- };
178
- return /*#__PURE__*/_react["default"].createElement(_Radio["default"], (0, _extends2["default"])({
179
- "aria-label": accessibility
180
- }, miniProps, {
181
- className: CLASS_NAME,
182
- classes: {
183
- root: resolved.root,
184
- checked: resolved.checked,
185
- disabled: "".concat(correctness ? '' : resolved.disabled)
186
- }
187
- }));
188
- });
189
- exports.StyledRadio = StyledRadio;
190
-
191
- var ChoiceInput = /*#__PURE__*/function (_React$Component) {
192
- (0, _inherits2["default"])(ChoiceInput, _React$Component);
193
-
194
- var _super = _createSuper(ChoiceInput);
195
-
196
- function ChoiceInput(props) {
197
- var _this;
198
-
199
- (0, _classCallCheck2["default"])(this, ChoiceInput);
200
- _this = _super.call(this, props);
201
- _this.onToggleChoice = _this.onToggleChoice.bind((0, _assertThisInitialized2["default"])(_this));
202
- return _this;
203
- }
204
-
205
- (0, _createClass2["default"])(ChoiceInput, [{
206
- key: "onToggleChoice",
207
- value: function onToggleChoice() {
208
- this.props.onChange({
209
- value: this.props.value,
210
- selected: !this.props.checked
211
- });
212
- }
213
- }, {
214
- key: "render",
215
- value: function render() {
216
- var _this$props = this.props,
217
- choiceMode = _this$props.choiceMode,
218
- disabled = _this$props.disabled,
219
- displayKey = _this$props.displayKey,
220
- feedback = _this$props.feedback,
221
- label = _this$props.label,
222
- checked = _this$props.checked,
223
- correctness = _this$props.correctness,
224
- classes = _this$props.classes,
225
- className = _this$props.className,
226
- rationale = _this$props.rationale,
227
- accessibility = _this$props.accessibility,
228
- hideTick = _this$props.hideTick,
229
- isEvaluateMode = _this$props.isEvaluateMode,
230
- choicesLayout = _this$props.choicesLayout;
231
- var Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;
232
- var classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';
233
- var holderClassNames = (0, _classnames["default"])(classes.checkboxHolder, (0, _defineProperty2["default"])({}, classes.horizontalLayout, choicesLayout === 'horizontal'));
234
- return /*#__PURE__*/_react["default"].createElement("div", {
235
- className: (0, _classnames["default"])(className, 'corespring-' + classSuffix, 'choice-input')
236
- }, /*#__PURE__*/_react["default"].createElement("div", {
237
- className: classes.row
238
- }, !hideTick && isEvaluateMode && /*#__PURE__*/_react["default"].createElement(_feedbackTick["default"], {
239
- correctness: correctness
240
- }), /*#__PURE__*/_react["default"].createElement("div", {
241
- className: (0, _classnames["default"])(holderClassNames, 'checkbox-holder')
242
- }, /*#__PURE__*/_react["default"].createElement(StyledFormControlLabel, {
243
- disabled: disabled,
244
- label: displayKey ? displayKey + '. ' : '',
245
- control: /*#__PURE__*/_react["default"].createElement(Tag, {
246
- accessibility: accessibility,
247
- checked: checked,
248
- correctness: correctness,
249
- onChange: this.onToggleChoice
250
- })
251
- }), /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
252
- className: "label",
253
- onClick: this.onToggleChoice,
254
- prompt: label,
255
- tagName: "span"
256
- }))), rationale && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
257
- className: "rationale",
258
- defaultClassName: "rationale",
259
- prompt: rationale
260
- }), /*#__PURE__*/_react["default"].createElement(_renderUi.Feedback, {
261
- feedback: feedback,
262
- correctness: correctness
263
- }));
264
- }
265
- }]);
266
- return ChoiceInput;
267
- }(_react["default"].Component);
268
-
269
- exports.ChoiceInput = ChoiceInput;
270
- (0, _defineProperty2["default"])(ChoiceInput, "propTypes", {
271
- choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
272
- displayKey: _propTypes["default"].string.isRequired,
273
- checked: _propTypes["default"].bool.isRequired,
274
- correctness: _propTypes["default"].string,
275
- disabled: _propTypes["default"].bool.isRequired,
276
- feedback: _propTypes["default"].string,
277
- label: _propTypes["default"].string.isRequired,
278
- rationale: _propTypes["default"].string,
279
- accessibility: _propTypes["default"].string,
280
- onChange: _propTypes["default"].func.isRequired,
281
- value: _propTypes["default"].string.isRequired,
282
- classes: _propTypes["default"].object,
283
- className: _propTypes["default"].string,
284
- hideTick: _propTypes["default"].bool,
285
- isEvaluateMode: _propTypes["default"].bool,
286
- choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal'])
287
- });
288
- (0, _defineProperty2["default"])(ChoiceInput, "defaultProps", {
289
- rationale: null,
290
- accessibility: null,
291
- checked: false,
292
- isEvaluateMode: false
293
- });
294
-
295
- var _default = (0, _styles.withStyles)(styleSheet)(ChoiceInput);
296
-
297
- exports["default"] = _default;
298
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaG9pY2UtaW5wdXQuanN4Il0sIm5hbWVzIjpbIkNMQVNTX05BTUUiLCJzdHlsZVNoZWV0Iiwicm93IiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjb2xvciIsImJhY2tncm91bmQiLCJjaGVja2JveEhvbGRlciIsImZsZXgiLCJ0ZXh0IiwiaG9yaXpvbnRhbExheW91dCIsInBhZGRpbmdSaWdodCIsImZvcm1TdHlsZVNoZWV0IiwibGFiZWwiLCJTdHlsZWRGb3JtQ29udHJvbExhYmVsIiwibmFtZSIsInByb3BzIiwiY2xhc3NlcyIsImNvbG9yU3R5bGUiLCJ2YXJOYW1lIiwiZmFsbGJhY2siLCJpbnB1dFN0eWxlcyIsImNvcnJlY3QiLCJkaXNhYmxlZCIsImluY29ycmVjdCIsInJvb3QiLCJwcmltYXJ5TGlnaHQiLCJjaGVja2VkIiwicHJpbWFyeSIsIm9wYWNpdHkiLCJjdXJzb3IiLCJwb2ludGVyRXZlbnRzIiwiU3R5bGVkQ2hlY2tib3giLCJjb3JyZWN0bmVzcyIsIm9uQ2hhbmdlIiwiYWNjZXNzaWJpbGl0eSIsImtleSIsImsiLCJyZXNvbHZlZCIsIm1pbmlQcm9wcyIsIlN0eWxlZFJhZGlvIiwiQ2hvaWNlSW5wdXQiLCJvblRvZ2dsZUNob2ljZSIsImJpbmQiLCJ2YWx1ZSIsInNlbGVjdGVkIiwiY2hvaWNlTW9kZSIsImRpc3BsYXlLZXkiLCJmZWVkYmFjayIsImNsYXNzTmFtZSIsInJhdGlvbmFsZSIsImhpZGVUaWNrIiwiaXNFdmFsdWF0ZU1vZGUiLCJjaG9pY2VzTGF5b3V0IiwiVGFnIiwiY2xhc3NTdWZmaXgiLCJob2xkZXJDbGFzc05hbWVzIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvbmVPZiIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJib29sIiwiZnVuYyIsIm9iamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztB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YWpCaEIsRUFBQUEsU0FBUyxFQUFFVSxzQkFBVUUsTUFiSjtBQWNqQlYsRUFBQUEsUUFBUSxFQUFFUSxzQkFBVUksSUFkSDtBQWVqQlgsRUFBQUEsY0FBYyxFQUFFTyxzQkFBVUksSUFmVDtBQWdCakJWLEVBQUFBLGFBQWEsRUFBRU0sc0JBQVVDLEtBQVYsQ0FBZ0IsQ0FBQyxVQUFELEVBQWEsTUFBYixFQUFxQixZQUFyQixDQUFoQjtBQWhCRSxDO2lDQURSbkIsVyxrQkFvQlc7QUFDcEJTLEVBQUFBLFNBQVMsRUFBRSxJQURTO0FBRXBCZixFQUFBQSxhQUFhLEVBQUUsSUFGSztBQUdwQlIsRUFBQUEsT0FBTyxFQUFFLEtBSFc7QUFJcEJ5QixFQUFBQSxjQUFjLEVBQUU7QUFKSSxDOztlQXVFVCx3QkFBV3BELFVBQVgsRUFBdUJ5QyxXQUF2QixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZvcm1Db250cm9sTGFiZWwgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvRm9ybUNvbnRyb2xMYWJlbCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuXG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQ2hlY2tib3gnO1xuaW1wb3J0IHsgRmVlZGJhY2ssIGNvbG9yLCBQcmV2aWV3UHJvbXB0IH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCBGZWVkYmFja1RpY2sgZnJvbSAnLi9mZWVkYmFjay10aWNrJztcbmltcG9ydCBSYWRpbyBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9SYWRpbyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuY29uc3QgQ0xBU1NfTkFNRSA9ICdtdWx0aXBsZS1jaG9pY2UtY29tcG9uZW50JztcblxuY29uc3Qgc3R5bGVTaGVldCA9ICgpID0+ICh7XG4gIHJvdzoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmJhY2tncm91bmQoKSxcbiAgfSxcbiAgY2hlY2tib3hIb2xkZXI6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5iYWNrZ3JvdW5kKCksXG4gICAgZmxleDogMSxcbiAgICAnJiBsYWJlbCc6IHtcbiAgICAgIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gICAgfSxcbiAgfSxcbiAgaG9yaXpvbnRhbExheW91dDoge1xuICAgIFtgJiAuJHtDTEFTU19OQU1FfWBdOiB7XG4gICAgICBwYWRkaW5nUmlnaHQ6ICc4cHgnLFxuICAgIH0sXG4gIH0sXG59KTtcblxuY29uc3QgZm9ybVN0eWxlU2hlZXQgPSB7XG4gIGxhYmVsOiB7XG4gICAgY29sb3I6IGAke2NvbG9yLnRleHQoKX0gIWltcG9ydGFudGAsIC8vJ3ZhcigtLWNob2ljZS1pbnB1dC1jb2xvciwgYmxhY2spJ1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEZvcm1Db250cm9sTGFiZWwgPSB3aXRoU3R5bGVzKGZvcm1TdHlsZVNoZWV0LCB7XG4gIG5hbWU6ICdGb3JtQ29udHJvbExhYmVsJyxcbn0pKChwcm9wcykgPT4gPEZvcm1Db250cm9sTGFiZWwgey4uLnByb3BzfSBjbGFzc2VzPXt7IGxhYmVsOiBwcm9wcy5jbGFzc2VzLmxhYmVsIH19IC8+KTtcblxuY29uc3QgY29sb3JTdHlsZSA9ICh2YXJOYW1lLCBmYWxsYmFjaykgPT4gKHtcbiAgW2AmLiR7Q0xBU1NfTkFNRX1gXToge1xuICAgIGNvbG9yOiBgdmFyKC0tY2hvaWNlLWlucHV0LSR7dmFyTmFtZX0sICR7ZmFsbGJhY2t9KSAhaW1wb3J0YW50YCxcbiAgfSxcbn0pO1xuXG5jb25zdCBpbnB1dFN0eWxlcyA9IHtcbiAgJ2NvcnJlY3Qtcm9vdCc6IGNvbG9yU3R5bGUoJ2NvcnJlY3QtY29sb3InLCBjb2xvci50ZXh0KCkpLFxuICAnY29ycmVjdC1jaGVja2VkJzogY29sb3JTdHlsZSgnY29ycmVjdC1zZWxlY3RlZC1jb2xvcicsIGNvbG9yLmNvcnJlY3QoKSksIC8vZ3JlZW5bNTAwXSksXG4gICdjb3JyZWN0LWRpc2FibGVkJzogY29sb3JTdHlsZSgnY29ycmVjdC1kaXNhYmxlZC1jb2xvcicsIGNvbG9yLmRpc2FibGVkKCkpLCAvLydncmV5JyksXG4gICdpbmNvcnJlY3Qtcm9vdCc6IGNvbG9yU3R5bGUoJ2luY29ycmVjdC1jb2xvcicsIGNvbG9yLmluY29ycmVjdCgpKSxcbiAgJ2luY29ycmVjdC1jaGVja2VkJzogY29sb3JTdHlsZSgnaW5jb3JyZWN0LWNoZWNrZWQnLCBjb2xvci5pbmNvcnJlY3QoKSksIC8vb3JhbmdlWzUwMF0pLFxuICAnaW5jb3JyZWN0LWRpc2FibGVkJzogY29sb3JTdHlsZSgnaW5jb3JyZWN0LWRpc2FibGVkLWNvbG9yJywgY29sb3IuZGlzYWJsZWQoKSksXG4gIHJvb3Q6IHtcbiAgICAuLi5jb2xvclN0eWxlKCdjb2xvcicsIGNvbG9yLnRleHQoKSksXG4gICAgJyY6aG92ZXInOiB7IGNvbG9yOiBgJHtjb2xvci5wcmltYXJ5TGlnaHQoKX0gIWltcG9ydGFudGAgfSxcbiAgfSxcbiAgY2hlY2tlZDogY29sb3JTdHlsZSgnc2VsZWN0ZWQtY29sb3InLCBjb2xvci5wcmltYXJ5KCkpLFxuICBkaXNhYmxlZDoge1xuICAgIC4uLmNvbG9yU3R5bGUoJ2Rpc2FibGVkLWNvbG9yJywgY29sb3IudGV4dCgpKSxcbiAgICBvcGFjaXR5OiAwLjYsXG4gICAgY3Vyc29yOiAnbm90LWFsbG93ZWQgIWltcG9ydGFudCcsXG4gICAgcG9pbnRlckV2ZW50czogJ2luaXRpYWwgIWltcG9ydGFudCcsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgU3R5bGVkQ2hlY2tib3ggPSB3aXRoU3R5bGVzKGlucHV0U3R5bGVzKSgocHJvcHMpID0+IHtcbiAgY29uc3QgeyBjb3JyZWN0bmVzcywgY2xhc3NlcywgY2hlY2tlZCwgb25DaGFuZ2UsIGRpc2FibGVkLCBhY2Nlc3NpYmlsaXR5IH0gPSBwcm9wcztcbiAgY29uc3Qga2V5ID0gKGspID0+IChjb3JyZWN0bmVzcyA/IGAke2NvcnJlY3RuZXNzfS0ke2t9YCA6IGspO1xuXG4gIGNvbnN0IHJlc29sdmVkID0ge1xuICAgIHJvb3Q6IGNsYXNzZXNba2V5KCdyb290JyldLFxuICAgIGNoZWNrZWQ6IGNsYXNzZXNba2V5KCdjaGVja2VkJyldLFxuICAgIGRpc2FibGVkOiBjbGFzc2VzW2tleSgnZGlzYWJsZWQnKV0sXG4gIH07XG5cbiAgY29uc3QgbWluaVByb3BzID0geyBjaGVja2VkLCBvbkNoYW5nZSwgZGlzYWJsZWQgfTtcbiAgcmV0dXJuIChcbiAgICA8Q2hlY2tib3hcbiAgICAgIGFyaWEtbGFiZWw9e2FjY2Vzc2liaWxpdHl9XG4gICAgICB7Li4ubWluaVByb3BzfVxuICAgICAgY2xhc3NOYW1lPXtDTEFTU19OQU1FfVxuICAgICAgY2xhc3Nlcz17e1xuICAgICAgICByb290OiByZXNvbHZlZC5yb290LFxuICAgICAgICBjaGVja2VkOiByZXNvbHZlZC5jaGVja2VkLFxuICAgICAgICBkaXNhYmxlZDogYCR7Y29ycmVjdG5lc3MgPyAnJyA6IHJlc29sdmVkLmRpc2FibGVkfWAsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFJhZGlvID0gd2l0aFN0eWxlcyhpbnB1dFN0eWxlcykoKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29ycmVjdG5lc3MsIGNsYXNzZXMsIGNoZWNrZWQsIG9uQ2hhbmdlLCBkaXNhYmxlZCwgYWNjZXNzaWJpbGl0eSB9ID0gcHJvcHM7XG4gIGNvbnN0IGtleSA9IChrKSA9PiAoY29ycmVjdG5lc3MgPyBgJHtjb3JyZWN0bmVzc30tJHtrfWAgOiBrKTtcblxuICBjb25zdCByZXNvbHZlZCA9IHtcbiAgICByb290OiBjbGFzc2VzW2tleSgncm9vdCcpXSxcbiAgICBjaGVja2VkOiBjbGFzc2VzW2tleSgnY2hlY2tlZCcpXSxcbiAgICBkaXNhYmxlZDogY2xhc3Nlc1trZXkoJ2Rpc2FibGVkJyldLFxuICB9O1xuXG4gIGNvbnN0IG1pbmlQcm9wcyA9IHsgY2hlY2tlZCwgb25DaGFuZ2UsIGRpc2FibGVkIH07XG5cbiAgcmV0dXJuIChcbiAgICA8UmFkaW9cbiAgICAgIGFyaWEtbGFiZWw9e2FjY2Vzc2liaWxpdHl9XG4gICAgICB7Li4ubWluaVByb3BzfVxuICAgICAgY2xhc3NOYW1lPXtDTEFTU19OQU1FfVxuICAgICAgY2xhc3Nlcz17e1xuICAgICAgICByb290OiByZXNvbHZlZC5yb290LFxuICAgICAgICBjaGVja2VkOiByZXNvbHZlZC5jaGVja2VkLFxuICAgICAgICBkaXNhYmxlZDogYCR7Y29ycmVjdG5lc3MgPyAnJyA6IHJlc29sdmVkLmRpc2FibGVkfWAsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59KTtcblxuZXhwb3J0IGNsYXNzIENob2ljZUlucHV0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjaG9pY2VNb2RlOiBQcm9wVHlwZXMub25lT2YoWydyYWRpbycsICdjaGVja2JveCddKSxcbiAgICBkaXNwbGF5S2V5OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgY2hlY2tlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBjb3JyZWN0bmVzczogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBmZWVkYmFjazogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIHJhdGlvbmFsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBhY2Nlc3NpYmlsaXR5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaGlkZVRpY2s6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRXZhbHVhdGVNb2RlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjaG9pY2VzTGF5b3V0OiBQcm9wVHlwZXMub25lT2YoWyd2ZXJ0aWNhbCcsICdncmlkJywgJ2hvcml6b250YWwnXSksXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICByYXRpb25hbGU6IG51bGwsXG4gICAgYWNjZXNzaWJpbGl0eTogbnVsbCxcbiAgICBjaGVja2VkOiBmYWxzZSxcbiAgICBpc0V2YWx1YXRlTW9kZTogZmFsc2UsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5vblRvZ2dsZUNob2ljZSA9IHRoaXMub25Ub2dnbGVDaG9pY2UuYmluZCh0aGlzKTtcbiAgfVxuXG4gIG9uVG9nZ2xlQ2hvaWNlKCkge1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2Uoe1xuICAgICAgdmFsdWU6IHRoaXMucHJvcHMudmFsdWUsXG4gICAgICBzZWxlY3RlZDogIXRoaXMucHJvcHMuY2hlY2tlZCxcbiAgICB9KTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjaG9pY2VNb2RlLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBkaXNwbGF5S2V5LFxuICAgICAgZmVlZGJhY2ssXG4gICAgICBsYWJlbCxcbiAgICAgIGNoZWNrZWQsXG4gICAgICBjb3JyZWN0bmVzcyxcbiAgICAgIGNsYXNzZXMsXG4gICAgICBjbGFzc05hbWUsXG4gICAgICByYXRpb25hbGUsXG4gICAgICBhY2Nlc3NpYmlsaXR5LFxuICAgICAgaGlkZVRpY2ssXG4gICAgICBpc0V2YWx1YXRlTW9kZSxcbiAgICAgIGNob2ljZXNMYXlvdXQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBUYWcgPSBjaG9pY2VNb2RlID09PSAnY2hlY2tib3gnID8gU3R5bGVkQ2hlY2tib3ggOiBTdHlsZWRSYWRpbztcbiAgICBjb25zdCBjbGFzc1N1ZmZpeCA9IGNob2ljZU1vZGUgPT09ICdjaGVja2JveCcgPyAnY2hlY2tib3gnIDogJ3JhZGlvLWJ1dHRvbic7XG5cbiAgICBjb25zdCBob2xkZXJDbGFzc05hbWVzID0gY2xhc3NOYW1lcyhjbGFzc2VzLmNoZWNrYm94SG9sZGVyLCB7XG4gICAgICBbY2xhc3Nlcy5ob3Jpem9udGFsTGF5b3V0XTogY2hvaWNlc0xheW91dCA9PT0gJ2hvcml6b250YWwnLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTmFtZSwgJ2NvcmVzcHJpbmctJyArIGNsYXNzU3VmZml4LCAnY2hvaWNlLWlucHV0Jyl9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5yb3d9PlxuICAgICAgICAgIHshaGlkZVRpY2sgJiYgaXNFdmFsdWF0ZU1vZGUgJiYgPEZlZWRiYWNrVGljayBjb3JyZWN0bmVzcz17Y29ycmVjdG5lc3N9IC8+fVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGhvbGRlckNsYXNzTmFtZXMsICdjaGVja2JveC1ob2xkZXInKX0+XG4gICAgICAgICAgICA8U3R5bGVkRm9ybUNvbnRyb2xMYWJlbFxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIGxhYmVsPXtkaXNwbGF5S2V5ID8gZGlzcGxheUtleSArICcuICcgOiAnJ31cbiAgICAgICAgICAgICAgY29udHJvbD17XG4gICAgICAgICAgICAgICAgPFRhZ1xuICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eT17YWNjZXNzaWJpbGl0eX1cbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2NoZWNrZWR9XG4gICAgICAgICAgICAgICAgICBjb3JyZWN0bmVzcz17Y29ycmVjdG5lc3N9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblRvZ2dsZUNob2ljZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFByZXZpZXdQcm9tcHQgY2xhc3NOYW1lPVwibGFiZWxcIiBvbkNsaWNrPXt0aGlzLm9uVG9nZ2xlQ2hvaWNlfSBwcm9tcHQ9e2xhYmVsfSB0YWdOYW1lPVwic3BhblwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7cmF0aW9uYWxlICYmIDxQcmV2aWV3UHJvbXB0IGNsYXNzTmFtZT1cInJhdGlvbmFsZVwiIGRlZmF1bHRDbGFzc05hbWU9XCJyYXRpb25hbGVcIiBwcm9tcHQ9e3JhdGlvbmFsZX0gLz59XG4gICAgICAgIDxGZWVkYmFjayBmZWVkYmFjaz17ZmVlZGJhY2t9IGNvcnJlY3RuZXNzPXtjb3JyZWN0bmVzc30gLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZVNoZWV0KShDaG9pY2VJbnB1dCk7XG4iXX0=
package/lib/choice.js DELETED
@@ -1,157 +0,0 @@
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 = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
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 _styles = require("@material-ui/core/styles");
31
-
32
- var _classnames = _interopRequireDefault(require("classnames"));
33
-
34
- var _choiceInput = _interopRequireDefault(require("./choice-input"));
35
-
36
- 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; }
37
-
38
- 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; }
39
-
40
- 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); }; }
41
-
42
- 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; } }
43
-
44
- var Choice = /*#__PURE__*/function (_React$Component) {
45
- (0, _inherits2["default"])(Choice, _React$Component);
46
-
47
- var _super = _createSuper(Choice);
48
-
49
- function Choice() {
50
- var _this;
51
-
52
- (0, _classCallCheck2["default"])(this, Choice);
53
-
54
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
55
- args[_key] = arguments[_key];
56
- }
57
-
58
- _this = _super.call.apply(_super, [this].concat(args));
59
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (choice) {
60
- var _this$props = _this.props,
61
- disabled = _this$props.disabled,
62
- onChoiceChanged = _this$props.onChoiceChanged;
63
-
64
- if (!disabled) {
65
- onChoiceChanged(choice);
66
- }
67
- });
68
- return _this;
69
- }
70
-
71
- (0, _createClass2["default"])(Choice, [{
72
- key: "render",
73
- value: function render() {
74
- var _classNames;
75
-
76
- var _this$props2 = this.props,
77
- choice = _this$props2.choice,
78
- index = _this$props2.index,
79
- choicesLength = _this$props2.choicesLength,
80
- showCorrect = _this$props2.showCorrect,
81
- isEvaluateMode = _this$props2.isEvaluateMode,
82
- choiceMode = _this$props2.choiceMode,
83
- disabled = _this$props2.disabled,
84
- checked = _this$props2.checked,
85
- correctness = _this$props2.correctness,
86
- displayKey = _this$props2.displayKey,
87
- classes = _this$props2.classes,
88
- choicesLayout = _this$props2.choicesLayout,
89
- gridColumns = _this$props2.gridColumns;
90
- var choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');
91
- var feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;
92
-
93
- var choiceProps = _objectSpread(_objectSpread({}, choice), {}, {
94
- checked: checked,
95
- choiceMode: choiceMode,
96
- disabled: disabled,
97
- feedback: feedback,
98
- correctness: correctness,
99
- displayKey: displayKey,
100
- choicesLayout: choicesLayout,
101
- gridColumns: gridColumns,
102
- onChange: this.onChange,
103
- isEvaluateMode: isEvaluateMode
104
- });
105
-
106
- var names = (0, _classnames["default"])(classes.choice, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.noBorder, index === choicesLength - 1 || choicesLayout !== 'vertical'), (0, _defineProperty2["default"])(_classNames, classes.horizontalLayout, choicesLayout === 'horizontal'), _classNames));
107
- return /*#__PURE__*/_react["default"].createElement("div", {
108
- className: choiceClass,
109
- key: index
110
- }, /*#__PURE__*/_react["default"].createElement(_choiceInput["default"], (0, _extends2["default"])({}, choiceProps, {
111
- className: names
112
- })));
113
- }
114
- }]);
115
- return Choice;
116
- }(_react["default"].Component);
117
-
118
- exports.Choice = Choice;
119
- Choice.propTypes = {
120
- choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
121
- choice: _propTypes["default"].object,
122
- disabled: _propTypes["default"].bool.isRequired,
123
- onChoiceChanged: _propTypes["default"].func,
124
- classes: _propTypes["default"].object.isRequired,
125
- index: _propTypes["default"].number,
126
- choicesLength: _propTypes["default"].number,
127
- showCorrect: _propTypes["default"].bool,
128
- isEvaluateMode: _propTypes["default"].bool,
129
- checked: _propTypes["default"].bool,
130
- correctness: _propTypes["default"].string,
131
- displayKey: _propTypes["default"].string,
132
- choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal']),
133
- gridColumns: _propTypes["default"].string
134
- };
135
-
136
- var _default = (0, _styles.withStyles)({
137
- choice: {
138
- paddingTop: '20px',
139
- paddingBottom: '10px',
140
- borderBottom: '1px solid #E0DEE0'
141
- },
142
- noBorder: {
143
- borderBottom: 'none'
144
- },
145
- horizontalLayout: {
146
- paddingRight: '20px',
147
- '& label': {
148
- marginRight: '8px' // '& span:first-child': {
149
- // paddingRight: 0
150
- // }
151
-
152
- }
153
- }
154
- })(Choice);
155
-
156
- exports["default"] = _default;
157
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaG9pY2UuanN4Il0sIm5hbWVzIjpbIkNob2ljZSIsImNob2ljZSIsInByb3BzIiwiZGlzYWJsZWQiLCJvbkNob2ljZUNoYW5nZWQiLCJpbmRleCIsImNob2ljZXNMZW5ndGgiLCJzaG93Q29ycmVjdCIsImlzRXZhbHVhdGVNb2RlIiwiY2hvaWNlTW9kZSIsImNoZWNrZWQiLCJjb3JyZWN0bmVzcyIsImRpc3BsYXlLZXkiLCJjbGFzc2VzIiwiY2hvaWNlc0xheW91dCIsImdyaWRDb2x1bW5zIiwiY2hvaWNlQ2xhc3MiLCJmZWVkYmFjayIsImNob2ljZVByb3BzIiwib25DaGFuZ2UiLCJuYW1lcyIsIm5vQm9yZGVyIiwiaG9yaXpvbnRhbExheW91dCIsIlJlYWN0IiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib25lT2YiLCJvYmplY3QiLCJib29sIiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJudW1iZXIiLCJzdHJpbmciLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSIsImJvcmRlckJvdHRvbSIsInBhZGRpbmdSaWdodCIsIm1hcmdpblJpZ2h0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7SUFFYUEsTTs7Ozs7Ozs7Ozs7Ozs7O2lHQUNBLFVBQUNDLE1BQUQsRUFBWTtBQUNyQix3QkFBc0MsTUFBS0MsS0FBM0M7QUFBQSxVQUFRQyxRQUFSLGVBQVFBLFFBQVI7QUFBQSxVQUFrQkMsZUFBbEIsZUFBa0JBLGVBQWxCOztBQUVBLFVBQUksQ0FBQ0QsUUFBTCxFQUFlO0FBQ2JDLFFBQUFBLGVBQWUsQ0FBQ0gsTUFBRCxDQUFmO0FBQ0Q7QUFDRixLOzs7Ozs7V0FFRCxrQkFBUztBQUFBOztBQUNQLHlCQWNJLEtBQUtDLEtBZFQ7QUFBQSxVQUNFRCxNQURGLGdCQUNFQSxNQURGO0FBQUEsVUFFRUksS0FGRixnQkFFRUEsS0FGRjtBQUFB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QUFuQjs7ZUFpQmUsd0JBQVc7QUFDeEJoQyxFQUFBQSxNQUFNLEVBQUU7QUFDTmlDLElBQUFBLFVBQVUsRUFBRSxNQUROO0FBRU5DLElBQUFBLGFBQWEsRUFBRSxNQUZUO0FBR05DLElBQUFBLFlBQVksRUFBRTtBQUhSLEdBRGdCO0FBTXhCZixFQUFBQSxRQUFRLEVBQUU7QUFDUmUsSUFBQUEsWUFBWSxFQUFFO0FBRE4sR0FOYztBQVN4QmQsRUFBQUEsZ0JBQWdCLEVBQUU7QUFDaEJlLElBQUFBLFlBQVksRUFBRSxNQURFO0FBRWhCLGVBQVc7QUFDVEMsTUFBQUEsV0FBVyxFQUFFLEtBREosQ0FFVDtBQUNBO0FBQ0E7O0FBSlM7QUFGSztBQVRNLENBQVgsRUFrQlp0QyxNQWxCWSxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IENob2ljZUlucHV0IGZyb20gJy4vY2hvaWNlLWlucHV0JztcblxuZXhwb3J0IGNsYXNzIENob2ljZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIG9uQ2hhbmdlID0gKGNob2ljZSkgPT4ge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQsIG9uQ2hvaWNlQ2hhbmdlZCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIG9uQ2hvaWNlQ2hhbmdlZChjaG9pY2UpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY2hvaWNlLFxuICAgICAgaW5kZXgsXG4gICAgICBjaG9pY2VzTGVuZ3RoLFxuICAgICAgc2hvd0NvcnJlY3QsXG4gICAgICBpc0V2YWx1YXRlTW9kZSxcbiAgICAgIGNob2ljZU1vZGUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGNoZWNrZWQsXG4gICAgICBjb3JyZWN0bmVzcyxcbiAgICAgIGRpc3BsYXlLZXksXG4gICAgICBjbGFzc2VzLFxuICAgICAgY2hvaWNlc0xheW91dCxcbiAgICAgIGdyaWRDb2x1bW5zLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNob2ljZUNsYXNzID0gJ2Nob2ljZScgKyAoaW5kZXggPT09IGNob2ljZXNMZW5ndGggLSAxID8gJyBsYXN0JyA6ICcnKTtcblxuICAgIGNvbnN0IGZlZWRiYWNrID0gIWlzRXZhbHVhdGVNb2RlIHx8IHNob3dDb3JyZWN0ID8gJycgOiBjaG9pY2UuZmVlZGJhY2s7XG5cbiAgICBjb25zdCBjaG9pY2VQcm9wcyA9IHtcbiAgICAgIC4uLmNob2ljZSxcbiAgICAgIGNoZWNrZWQsXG4gICAgICBjaG9pY2VNb2RlLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBmZWVkYmFjayxcbiAgICAgIGNvcnJlY3RuZXNzLFxuICAgICAgZGlzcGxheUtleSxcbiAgICAgIGNob2ljZXNMYXlvdXQsXG4gICAgICBncmlkQ29sdW1ucyxcbiAgICAgIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLFxuICAgICAgaXNFdmFsdWF0ZU1vZGUsXG4gICAgfTtcblxuICAgIGNvbnN0IG5hbWVzID0gY2xhc3NOYW1lcyhjbGFzc2VzLmNob2ljZSwge1xuICAgICAgW2NsYXNzZXMubm9Cb3JkZXJdOiBpbmRleCA9PT0gY2hvaWNlc0xlbmd0aCAtIDEgfHwgY2hvaWNlc0xheW91dCAhPT0gJ3ZlcnRpY2FsJyxcbiAgICAgIFtjbGFzc2VzLmhvcml6b250YWxMYXlvdXRdOiBjaG9pY2VzTGF5b3V0ID09PSAnaG9yaXpvbnRhbCcsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Nob2ljZUNsYXNzfSBrZXk9e2luZGV4fT5cbiAgICAgICAgPENob2ljZUlucHV0IHsuLi5jaG9pY2VQcm9wc30gY2xhc3NOYW1lPXtuYW1lc30gLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuQ2hvaWNlLnByb3BUeXBlcyA9IHtcbiAgY2hvaWNlTW9kZTogUHJvcFR5cGVzLm9uZU9mKFsncmFkaW8nLCAnY2hlY2tib3gnXSksXG4gIGNob2ljZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG9uQ2hvaWNlQ2hhbmdlZDogUHJvcFR5cGVzLmZ1bmMsXG4gIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgaW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gIGNob2ljZXNMZW5ndGg6IFByb3BUeXBlcy5udW1iZXIsXG4gIHNob3dDb3JyZWN0OiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNFdmFsdWF0ZU1vZGU6IFByb3BUeXBlcy5ib29sLFxuICBjaGVja2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgY29ycmVjdG5lc3M6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRpc3BsYXlLZXk6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNob2ljZXNMYXlvdXQ6IFByb3BUeXBlcy5vbmVPZihbJ3ZlcnRpY2FsJywgJ2dyaWQnLCAnaG9yaXpvbnRhbCddKSxcbiAgZ3JpZENvbHVtbnM6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHtcbiAgY2hvaWNlOiB7XG4gICAgcGFkZGluZ1RvcDogJzIwcHgnLFxuICAgIHBhZGRpbmdCb3R0b206ICcxMHB4JyxcbiAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQgI0UwREVFMCcsXG4gIH0sXG4gIG5vQm9yZGVyOiB7XG4gICAgYm9yZGVyQm90dG9tOiAnbm9uZScsXG4gIH0sXG4gIGhvcml6b250YWxMYXlvdXQ6IHtcbiAgICBwYWRkaW5nUmlnaHQ6ICcyMHB4JyxcbiAgICAnJiBsYWJlbCc6IHtcbiAgICAgIG1hcmdpblJpZ2h0OiAnOHB4JyxcbiAgICAgIC8vICcmIHNwYW46Zmlyc3QtY2hpbGQnOiB7XG4gICAgICAvLyAgIHBhZGRpbmdSaWdodDogMFxuICAgICAgLy8gfVxuICAgIH0sXG4gIH0sXG59KShDaG9pY2UpO1xuIl19