@instructure/quiz-interactions
Version:
A React UI component Library for quiz interaction types.
115 lines (113 loc) • 4.94 kB
JavaScript
;
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 _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = require("react");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _partial = _interopRequireDefault(require("lodash/partial"));
var _emotion = require("@instructure/emotion");
var _DraggableBlankChoice = _interopRequireDefault(require("../DraggableBlankChoice"));
var _styles = _interopRequireDefault(require("./styles"));
var _theme = _interopRequireDefault(require("./theme"));
var _quizCommon = require("@instructure/quiz-common");
var _dec, _class, _Wordbank;
/** @jsx jsx */
function _callSuper(_this, derived, args) {
function isNativeReflectConstruct() {
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
if (Reflect.construct.sham) return false;
if (typeof Proxy === "function") return true;
try {
return !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
} catch (e) {
return false;
}
}
derived = (0, _getPrototypeOf2["default"])(derived);
return (0, _possibleConstructorReturn2["default"])(_this, isNativeReflectConstruct() ? Reflect.construct(derived, args || [], (0, _getPrototypeOf2["default"])(_this).constructor) : derived.apply(_this, args));
}
var Wordbank = exports["default"] = (_dec = (0, _quizCommon.withStyleOverrides)(_styles["default"], _theme["default"]), _dec(_class = (_Wordbank = /*#__PURE__*/function (_Component) {
function Wordbank() {
(0, _classCallCheck2["default"])(this, Wordbank);
return _callSuper(this, Wordbank, arguments);
}
(0, _inherits2["default"])(Wordbank, _Component);
return (0, _createClass2["default"])(Wordbank, [{
key: "componentDidMount",
value: function componentDidMount() {
this.props.makeStyles();
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate() {
this.props.makeStyles();
}
// =============
// RENDERING
// =============
}, {
key: "renderChoice",
value: function renderChoice(choice) {
var printOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
return (0, _emotion.jsx)(_DraggableBlankChoice["default"], {
key: choice.id,
id: choice.id,
itemBody: choice.itemBody,
returnChoiceToWordbank: (0, _partial["default"])(this.props.returnChoiceToWordbank, null),
printOnly: printOnly
});
}
}, {
key: "renderWordbankChoices",
value: function renderWordbankChoices() {
var _this2 = this;
return this.props.wordBankChoices.map(function (choice) {
return _this2.renderChoice(choice);
});
}
}, {
key: "renderDropdownChoices",
value: function renderDropdownChoices() {
var _this3 = this;
var dropdownBlanks = this.props.blanks.filter(function (blank) {
return blank.answerType === 'dropdown';
});
return dropdownBlanks.map(function (blank) {
return blank.choices.map(function (choice) {
return _this3.renderChoice(choice, true);
});
});
}
}, {
key: "render",
value: function render() {
// Screenreaders don't even need to know about the wordBank
return (0, _emotion.jsx)("div", {
className: "fs-mask",
css: this.props.styles.wordbankWrapper,
"aria-hidden": true
}, this.renderWordbankChoices(), this.renderDropdownChoices());
}
}]);
}(_react.Component), (0, _defineProperty2["default"])(_Wordbank, "displayName", 'Wordbank'), (0, _defineProperty2["default"])(_Wordbank, "componentId", "Quizzes".concat(_Wordbank.displayName)), (0, _defineProperty2["default"])(_Wordbank, "propTypes", {
blanks: _propTypes["default"].array.isRequired,
returnChoiceToWordbank: _propTypes["default"].func,
wordBankChoices: _propTypes["default"].arrayOf(_propTypes["default"].shape({
id: _propTypes["default"].string,
itemBody: _propTypes["default"].string
})),
makeStyles: _propTypes["default"].func,
styles: _propTypes["default"].object
}), (0, _defineProperty2["default"])(_Wordbank, "defaultProps", {
response: void 0,
returnChoiceToWordbank: void 0,
wordBankChoices: void 0
}), _Wordbank)) || _class);