UNPKG

quiz-interactions

Version:

A React UI component Library for quiz interaction types.

113 lines (89 loc) 4.09 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); 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 _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _partial = _interopRequireDefault(require("lodash/partial")); var _map = _interopRequireDefault(require("lodash/map")); var _find = _interopRequireDefault(require("lodash/find")); var _filter = _interopRequireDefault(require("lodash/filter")); var _uiThemeable = require("@instructure/ui-themeable"); var _DraggableBlankChoice = _interopRequireDefault(require("../DraggableBlankChoice")); var _theme = _interopRequireDefault(require("./theme")); var _dec, _class, _class2, _temp; var styles = { componentId: 'enitJ', template: function template(theme) { return "\n\n.enitJ_cXfo{background-color:".concat(theme.wordbankWrapperColor || 'inherit', ";border:").concat(theme.wordbankWrapperBorder || 'inherit', " solid ").concat(theme.wordbankWrapperBorderColor || 'inherit', ";border-radius:").concat(theme.wordbankWrapperBorderRadius || 'inherit', ";display:flex;flex-wrap:wrap;min-height:60px}\n\n.enitJ_cXfo>div{margin:").concat(theme.wordbankWrapperMargin || 'inherit', "}"); }, 'wordbankWrapper': 'enitJ_cXfo' }; var Wordbank = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/ function (_Component) { (0, _inherits2.default)(Wordbank, _Component); function Wordbank() { (0, _classCallCheck2.default)(this, Wordbank); return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Wordbank).apply(this, arguments)); } (0, _createClass2.default)(Wordbank, [{ key: "renderChoice", value: function renderChoice(choice, blankId) { var blank = (0, _find.default)(this.props.response, { id: blankId }); var alreadyChosen = blank && blank.value === choice.id; if (!alreadyChosen) { return _react.default.createElement(_DraggableBlankChoice.default, { key: choice.id, id: choice.id, text: choice.itemBody, returnChoiceToWordbank: (0, _partial.default)(this.props.returnChoiceToWordbank, blankId) }); } } }, { key: "renderWordbank", value: function renderWordbank() { var _this = this; var wordbankBlanks = (0, _filter.default)(this.props.blanks, function (blank) { return blank.answerType === 'wordbank'; }); return (0, _map.default)(wordbankBlanks, function (blank) { return (0, _map.default)(blank.choices, function (choice) { return _this.renderChoice(choice, blank.id); }); }); } }, { key: "render", value: function render() { // Screenreaders don't even need to know about the wordBank return _react.default.createElement("div", { className: styles.wordbankWrapper, "aria-hidden": true }, this.renderWordbank()); } }]); Wordbank.displayName = "Wordbank"; return Wordbank; }(_react.Component), _class2.propTypes = { blanks: _propTypes.default.array.isRequired, response: _propTypes.default.array, returnChoiceToWordbank: _propTypes.default.func }, _class2.defaultProps = { response: void 0, returnChoiceToWordbank: void 0 // ============= // RENDERING // ============= }, _temp)) || _class); exports.default = Wordbank;