quiz-interactions
Version:
A React UI component Library for quiz interaction types.
172 lines (138 loc) • 5.03 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _quizI18n = require("@instructure/quiz-i18n");
var _uiLayout = require("@instructure/ui-layout");
var _quizNumberInput = require("@instructure/quiz-number-input");
var _NumericTypeSelect = _interopRequireDefault(require("./NumericTypeSelect"));
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/lib/format-message"));
var _constants = require("./constants");
var WithinARange =
/*#__PURE__*/
function (_Component) {
(0, _inherits2.default)(WithinARange, _Component);
function WithinARange() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2.default)(this, WithinARange);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(WithinARange)).call.apply(_getPrototypeOf2, [this].concat(args)));
_this.state = {
start: '',
end: '',
onClickHelp: null
};
_this.handleStartChange = function (event, value, normalized) {
_this.setState({
start: value
});
_this.props.onChange(event, {
id: _this.props.id,
start: normalized
});
};
_this.handleEndChange = function (event, value, normalized) {
_this.setState({
end: value
});
_this.props.onChange(event, {
id: _this.props.id,
end: normalized
});
};
return _this;
}
(0, _createClass2.default)(WithinARange, [{
key: "componentWillMount",
value: function componentWillMount() {
if (this.props.start) {
var start;
try {
start = _quizI18n.Decimal.toLocaleString(this.props.start, this.props.locale);
} catch (e) {
start = this.props.start;
}
this.setState({
start: start
});
}
if (this.props.end) {
var end;
try {
end = _quizI18n.Decimal.toLocaleString(this.props.end, this.props.locale);
} catch (e) {
end = this.props.end;
}
this.setState({
end: end
});
}
}
}, {
key: "render",
value: function render() {
return _react.default.createElement(_uiLayout.Flex, {
alignItems: "start"
}, _react.default.createElement(_uiLayout.Flex.Item, {
grow: true,
shrink: true,
margin: "0 xx-small"
}, _react.default.createElement(_NumericTypeSelect.default, {
id: this.props.id,
onChange: this.props.onChangeType,
onClickHelp: this.props.onClickHelp,
value: _constants.WITHIN_A_RANGE
})), _react.default.createElement(_uiLayout.Flex.Item, {
grow: true,
shrink: true,
margin: "0 xx-small"
}, _react.default.createElement(_quizNumberInput.ScientificNumberInput, {
label: (0, _formatMessage.default)('Range start'),
messages: this.props.messages.start,
onChange: this.handleStartChange,
value: this.state.start
})), _react.default.createElement(_uiLayout.Flex.Item, {
grow: true,
shrink: true,
margin: "0 xx-small"
}, _react.default.createElement(_quizNumberInput.ScientificNumberInput, {
label: (0, _formatMessage.default)('Range end'),
messages: this.props.messages.end,
onChange: this.handleEndChange,
value: this.state.end
})));
}
}]);
WithinARange.displayName = "WithinARange";
return WithinARange;
}(_react.Component);
exports.default = WithinARange;
WithinARange.propTypes = {
end: _propTypes.default.string,
id: _propTypes.default.string.isRequired,
locale: _propTypes.default.string.isRequired,
messages: _propTypes.default.objectOf(_propTypes.default.array),
onChange: _propTypes.default.func.isRequired,
onChangeType: _propTypes.default.func.isRequired,
onClickHelp: _propTypes.default.func,
start: _propTypes.default.string
};
WithinARange.defaultProps = {
end: void 0,
messages: void 0,
onClickHelp: void 0,
start: void 0
};