quiz-interactions
Version:
A React UI component Library for quiz interaction types.
125 lines (95 loc) • 4.46 kB
JavaScript
;
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 _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 _uiThemeable = require("@instructure/ui-themeable");
var _uiButtons = require("@instructure/ui-buttons");
var _uiIcons = require("@instructure/ui-icons");
var _uiA11y = require("@instructure/ui-a11y");
var _DraggableBlankChoice = _interopRequireDefault(require("../DraggableBlankChoice"));
var _theme = _interopRequireDefault(require("./theme"));
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/lib/format-message"));
var _dec, _class, _class2, _temp;
var styles = {
componentId: 'fghAI',
template: function template(theme) {
return "\n\n.fghAI_deIr{align-items:center;border:".concat(theme.answerOptionWrapperBorder || 'inherit', " solid ").concat(theme.answerOptionWrapperColor || 'inherit', ";border-radius:").concat(theme.answerOptionWrapperBorderRadius || 'inherit', ";display:flex;flex:1}\n\n.fghAI_deIr div{border:none}\n\n.fghAI_CzvX{float:right;margin:0;padding:0}\n\n[dir=ltr] .fghAI_CzvX,[dir=rtl] .fghAI_CzvX{float:right}");
},
'answerOptionWrapper': 'fghAI_deIr',
'xIcon': 'fghAI_CzvX'
};
var BlankAnswer = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 =
/*#__PURE__*/
function (_Component) {
(0, _inherits2.default)(BlankAnswer, _Component);
function BlankAnswer() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2.default)(this, BlankAnswer);
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)(BlankAnswer)).call.apply(_getPrototypeOf2, [this].concat(_args)));
_this.button = null;
_this.handleClick = function (event) {
var _this$props;
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
args[_key2 - 1] = arguments[_key2];
}
(_this$props = _this.props).onRemoveAnswer.apply(_this$props, [event].concat(args));
};
_this.handleRef = function (node) {
_this.button = node;
};
return _this;
}
(0, _createClass2.default)(BlankAnswer, [{
key: "focus",
value: function focus() {
this.button.focus();
}
}, {
key: "render",
value: function render() {
var itemBody = this.props.itemBody;
return _react.default.createElement("div", {
tabIndex: "-1",
className: styles.answerOptionWrapper
}, _react.default.createElement(_DraggableBlankChoice.default, {
key: this.props.choiceId,
id: this.props.choiceId,
text: itemBody
}), _react.default.createElement(_uiButtons.Button, {
ref: this.handleRef,
size: "small",
variant: "icon",
onClick: this.handleClick,
readOnly: this.props.readOnly
}, _react.default.createElement(_uiIcons.IconXLine, {
className: styles.xIcon
}), _react.default.createElement(_uiA11y.ScreenReaderContent, null, (0, _formatMessage.default)('Remove Choice {itemBody}', {
itemBody: itemBody
}))));
}
}]);
BlankAnswer.displayName = "BlankAnswer";
return BlankAnswer;
}(_react.Component), _class2.propTypes = {
choiceId: _propTypes.default.string.isRequired,
itemBody: _propTypes.default.string.isRequired,
onRemoveAnswer: _propTypes.default.func.isRequired,
readOnly: _propTypes.default.bool
}, _class2.defaultProps = {
readOnly: false
}, _temp)) || _class);
exports.default = BlankAnswer;