UNPKG

@instructure/quiz-interactions

Version:

A React UI component Library for quiz interaction types.

115 lines (113 loc) 4.94 kB
"use strict"; 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);