If you change your mind about something you've highlighted, click, tap, or deselect the sentence again to remove the highlight.
\"\n\n if (studentHighlights.length) {\n studentHighlightsOrHighlightInstructions = studentHighlights.map(sh => (\n Read a text and highlight sentences.
,\n stepNumber: READ_PASSAGE_STEP_NUMBER\n },\n [BECAUSE_PASSAGE_STEP_NUMBER]: {\n html: {\n componentDidMount() {\n window.addEventListener('paste', (e) => {\n e.preventDefault()\n return false\n }, true);\n }\n\n render() {\n const { disabled, html, innerRef, handleTextChange, className, handleFocus, handleKeyDown } = this.props\n return (\n \n \n
\n )\n }\n}\n","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","import canUseDOM from './canUseDOM';\n\n/* https://github.com/component/raf */\nvar prev = new Date().getTime();\n\nfunction fallback(fn) {\n var curr = new Date().getTime();\n var ms = Math.max(0, 16 - (curr - prev));\n var handle = setTimeout(fn, ms);\n prev = curr;\n return handle;\n}\n\nvar vendors = ['', 'webkit', 'moz', 'o', 'ms'];\nvar cancelMethod = 'clearTimeout';\nvar rafImpl = fallback; // eslint-disable-next-line import/no-mutable-exports\n\nvar getKey = function getKey(vendor, k) {\n return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + \"AnimationFrame\";\n};\n\nif (canUseDOM) {\n vendors.some(function (vendor) {\n var rafMethod = getKey(vendor, 'request');\n\n if (rafMethod in window) {\n cancelMethod = getKey(vendor, 'cancel'); // @ts-ignore\n\n rafImpl = function rafImpl(cb) {\n return window[rafMethod](cb);\n };\n }\n\n return !!rafImpl;\n });\n}\n\nexport var cancel = function cancel(id) {\n // @ts-ignore\n if (typeof window[cancelMethod] === 'function') window[cancelMethod](id);\n};\nexport var request = rafImpl;","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n if (bubbles === void 0) {\n bubbles = false;\n }\n\n if (cancelable === void 0) {\n cancelable = true;\n }\n\n if (node) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, bubbles, cancelable);\n node.dispatchEvent(event);\n }\n}","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n var str = css(node, 'transitionDuration') || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var called = false;\n var handle = setTimeout(function () {\n if (!called) triggerEvent(element, 'transitionend', true);\n }, duration + padding);\n var remove = listen(element, 'transitionend', function () {\n called = true;\n }, {\n once: true\n });\n return function () {\n clearTimeout(handle);\n remove();\n };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n if (duration == null) duration = parseDuration(element) || 0;\n var removeEmulate = emulateTransitionEnd(element, duration, padding);\n var remove = listen(element, 'transitionend', handler);\n return function () {\n removeEmulate();\n remove();\n };\n}","import PropTypes from 'prop-types';\nexport function transitionTimeout(transitionType) {\n var timeoutPropName = 'transition' + transitionType + 'Timeout';\n var enabledPropName = 'transition' + transitionType;\n return function (props) {\n // If the transition is enabled\n if (props[enabledPropName]) {\n // If no timeout duration is provided\n if (!props[timeoutPropName]) {\n return new Error(timeoutPropName + \" wasn't supplied to CSSTransitionGroup: \" + \"this can cause unreliable animations and won't be supported in \" + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.'); // If the duration isn't a number\n } else if (typeof props[timeoutPropName] !== 'number') {\n return new Error(timeoutPropName + ' must be a number (in milliseconds)');\n }\n }\n\n return null;\n };\n}\nexport var nameShape = PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n leave: PropTypes.string,\n active: PropTypes.string,\n height: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterActive: PropTypes.string,\n leave: PropTypes.string,\n leaveActive: PropTypes.string,\n appear: PropTypes.string,\n appearActive: PropTypes.string,\n height: PropTypes.string,\n heightActive: PropTypes.string\n})]);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * From react-transition-group v1.2.1\n *\n * In addition, the first animation frame is skipped when starting new transitions since\n * entering absolutely positioned elements in Chrome does not animate otherwise.\n */\nimport addClass from 'dom-helpers/addClass';\nimport removeClass from 'dom-helpers/removeClass';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nimport { request as raf } from 'dom-helpers/animationFrame';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { findDOMNode } from 'react-dom';\nimport { nameShape } from './utils/PropTypes';\nvar events = [];\n\nif (transitionEnd) {\n events.push(transitionEnd);\n}\n\nfunction addEndListener(node, listener) {\n if (events.length) {\n events.forEach(function (e) {\n return node.addEventListener(e, listener, false);\n });\n } else {\n setTimeout(listener, 0);\n }\n\n return function () {\n if (!events.length) {\n return;\n }\n\n events.forEach(function (e) {\n return node.removeEventListener(e, listener, false);\n });\n };\n}\n\nvar propTypes = {\n children: PropTypes.node,\n name: nameShape.isRequired,\n // Once we require timeouts to be specified, we can remove the\n // boolean flags (appear etc.) and just accept a number\n // or a bool for the timeout flags (appearTimeout etc.)\n appear: PropTypes.bool,\n enter: PropTypes.bool,\n leave: PropTypes.bool,\n appearTimeout: PropTypes.number,\n enterTimeout: PropTypes.number,\n leaveTimeout: PropTypes.number\n};\n\nvar CSSTransitionGroupChild = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSTransitionGroupChild, _React$Component);\n\n var _super = _createSuper(CSSTransitionGroupChild);\n\n function CSSTransitionGroupChild(props) {\n var _this;\n\n _classCallCheck(this, CSSTransitionGroupChild);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillAppear\", function (done) {\n if (_this.props.appear) {\n _this.transition('appear', done, _this.props.appearTimeout);\n } else {\n done();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillEnter\", function (done) {\n if (_this.props.enter) {\n _this.transition('enter', done, _this.props.enterTimeout);\n } else {\n done();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillLeave\", function (done) {\n if (_this.props.leave) {\n _this.transition('leave', done, _this.props.leaveTimeout);\n } else {\n done();\n }\n });\n\n _this.classNameAndNodeQueue = [];\n _this.transitionTimeouts = [];\n return _this;\n }\n\n _createClass(CSSTransitionGroupChild, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unmounted = true;\n\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n\n this.transitionTimeouts.forEach(function (timeout) {\n clearTimeout(timeout);\n });\n this.classNameAndNodeQueue.length = 0;\n }\n }, {\n key: \"transition\",\n value: function transition(animationType, finishCallback, timeout) {\n var node = findDOMNode(this);\n\n if (!node) {\n if (finishCallback) {\n finishCallback();\n }\n\n return;\n }\n\n var className = this.props.name[animationType] || this.props.name + '-' + animationType;\n var activeClassName = this.props.name[animationType + 'Active'] || className + '-active';\n var timer = null;\n var removeListeners;\n addClass(node, className); // Need to do this to actually trigger a transition.\n\n this.queueClassAndNode(activeClassName, node); // Clean-up the animation after the specified delay\n\n var finish = function finish(e) {\n if (e && e.target !== node) {\n return;\n }\n\n clearTimeout(timer);\n\n if (removeListeners) {\n removeListeners();\n }\n\n removeClass(node, className);\n removeClass(node, activeClassName);\n\n if (removeListeners) {\n removeListeners();\n } // Usually this optional callback is used for informing an owner of\n // a leave animation and telling it to remove the child.\n\n\n if (finishCallback) {\n finishCallback();\n }\n };\n\n if (timeout) {\n timer = setTimeout(finish, timeout);\n this.transitionTimeouts.push(timer);\n } else if (transitionEnd) {\n removeListeners = addEndListener(node, finish);\n }\n }\n }, {\n key: \"queueClassAndNode\",\n value: function queueClassAndNode(className, node) {\n var _this2 = this;\n\n this.classNameAndNodeQueue.push({\n className: className,\n node: node\n });\n\n if (!this.rafHandle) {\n // The first animation frame is skipped when starting new transitions since\n // entering absolutely positioned elements in Chrome does not animate otherwise.\n this.rafHandle = raf(function () {\n return _this2.flushClassNameAndNodeQueueOnNextFrame();\n });\n }\n }\n }, {\n key: \"flushClassNameAndNodeQueueOnNextFrame\",\n value: function flushClassNameAndNodeQueueOnNextFrame() {\n var _this3 = this;\n\n this.rafHandle = raf(function () {\n return _this3.flushClassNameAndNodeQueue();\n });\n }\n }, {\n key: \"flushClassNameAndNodeQueue\",\n value: function flushClassNameAndNodeQueue() {\n if (!this.unmounted) {\n this.classNameAndNodeQueue.forEach(function (obj) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n /* eslint-disable no-unused-expressions */\n obj.node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(obj.node, obj.className);\n });\n }\n\n this.classNameAndNodeQueue.length = 0;\n this.rafHandle = null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var props = _objectSpread({}, this.props);\n\n delete props.name;\n delete props.appear;\n delete props.enter;\n delete props.leave;\n delete props.appearTimeout;\n delete props.enterTimeout;\n delete props.leaveTimeout;\n delete props.children;\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), props);\n }\n }]);\n\n return CSSTransitionGroupChild;\n}(React.Component);\n\n_defineProperty(CSSTransitionGroupChild, \"displayName\", 'CSSTransitionGroupChild');\n\nCSSTransitionGroupChild.propTypes = propTypes;\nexport default CSSTransitionGroupChild;","function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { request as raf } from 'dom-helpers/animationFrame';\nimport ReactCSSTransitionReplaceChild from './ReactCSSTransitionReplaceChild';\nimport { nameShape, transitionTimeout } from './utils/PropTypes';\n\nvar ReactCSSTransitionReplace = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactCSSTransitionReplace, _React$Component);\n\n var _super = _createSuper(ReactCSSTransitionReplace);\n\n function ReactCSSTransitionReplace(props) {\n var _this;\n\n _classCallCheck(this, ReactCSSTransitionReplace);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"handleDoneAppearing\", function (key) {\n delete _this.transitioningKeys[key];\n\n if (key !== _this.state.currentKey) {\n // This child was removed before it had fully appeared. Remove it.\n _this.performLeave(key);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"performLeave\", function (key) {\n _this.transitioningKeys[key] = true;\n\n _this.childRefs[key].componentWillLeave(_this.handleDoneLeaving.bind(_assertThisInitialized(_this), key));\n\n if (!_this.state.currentChild || !findDOMNode(_this.childRefs[_this.state.currentKey])) {\n // The enter transition dominates, but if there is no entering\n // component or it renders null the height is set to zero.\n _this.enqueueHeightTransition();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"performHeightTransition\", function () {\n if (!_this.unmounted) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n state = _assertThisInitialize.state;\n\n var currentChildNode = state.currentChild ? findDOMNode(_this.childRefs[state.currentKey]) : null;\n\n _this.setState({\n height: currentChildNode ? currentChildNode.offsetHeight : 0,\n width: _this.props.changeWidth ? currentChildNode ? currentChildNode.offsetWidth : 0 : null\n });\n }\n\n _this.rafHandle = null;\n });\n\n _this.childRefs = Object.create(null);\n _this.state = {\n currentKey: '1',\n currentChild: _this.props.children ? React.Children.only(_this.props.children) : undefined,\n prevChildren: {},\n height: null,\n width: null\n };\n _this.shouldEnterCurrent = false;\n _this.keysToLeave = [];\n _this.transitioningKeys = {};\n return _this;\n }\n\n _createClass(ReactCSSTransitionReplace, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.transitionAppear && this.state.currentChild) {\n this.performAppear(this.state.currentKey);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unmounted = true;\n }\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n var nextChild = nextProps.children ? React.Children.only(nextProps.children) : undefined;\n var currentChild = this.state.currentChild;\n\n if (currentChild && nextChild && nextChild.key === currentChild.key && !this.state.nextChild) {\n // This is the same child, but receiving new props means the child itself has re-rendered\n return this.setState({\n currentChild: nextChild\n });\n }\n\n var _this$state = this.state,\n currentKey = _this$state.currentKey,\n prevChildren = _this$state.prevChildren;\n var nextState = {\n currentKey: String(Number(currentKey) + 1),\n currentChild: nextChild,\n height: 0,\n width: this.props.changeWidth ? 0 : null\n };\n\n if (nextChild) {\n this.shouldEnterCurrent = true;\n }\n\n if (currentChild) {\n var currentChildNode = findDOMNode(this.childRefs[currentKey]);\n nextState.height = currentChildNode ? currentChildNode.offsetHeight : 0;\n nextState.width = this.props.changeWidth ? currentChildNode ? currentChildNode.offsetWidth : 0 : null;\n nextState.prevChildren = _objectSpread(_objectSpread({}, prevChildren), {}, _defineProperty({}, currentKey, currentChild));\n\n if (!this.transitioningKeys[currentKey]) {\n this.keysToLeave.push(currentKey);\n }\n }\n\n this.setState(nextState);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.shouldEnterCurrent) {\n this.shouldEnterCurrent = false; // If the current child renders null there is nothing to enter\n\n if (findDOMNode(this.childRefs[this.state.currentKey])) {\n this.performEnter(this.state.currentKey);\n }\n }\n\n var keysToLeave = this.keysToLeave;\n this.keysToLeave = [];\n keysToLeave.forEach(this.performLeave);\n }\n }, {\n key: \"performAppear\",\n value: function performAppear(key) {\n this.transitioningKeys[key] = true;\n this.childRefs[key].componentWillAppear(this.handleDoneAppearing.bind(this, key));\n }\n }, {\n key: \"performEnter\",\n value: function performEnter(key) {\n this.transitioningKeys[key] = true;\n this.childRefs[key].componentWillEnter(this.handleDoneEntering.bind(this, key));\n this.enqueueHeightTransition();\n }\n }, {\n key: \"handleDoneEntering\",\n value: function handleDoneEntering(key) {\n delete this.transitioningKeys[key];\n\n if (key === this.state.currentKey) {\n // The current child has finished entering so the height transition is also cleared.\n this.setState({\n height: null\n });\n } else {\n // This child was removed before it had fully appeared. Remove it.\n this.performLeave(key);\n }\n }\n }, {\n key: \"handleDoneLeaving\",\n value: function handleDoneLeaving(key) {\n delete this.transitioningKeys[key];\n var nextState = {\n prevChildren: _objectSpread({}, this.state.prevChildren)\n };\n delete nextState.prevChildren[key];\n delete this.childRefs[key];\n\n if (!this.state.currentChild || !findDOMNode(this.childRefs[this.state.currentKey])) {\n nextState.height = null;\n }\n\n this.setState(nextState);\n }\n }, {\n key: \"enqueueHeightTransition\",\n value: function enqueueHeightTransition() {\n if (!this.rafHandle) {\n this.rafHandle = raf(this.performHeightTransition);\n }\n }\n }, {\n key: \"wrapChild\",\n value: function wrapChild(child, moreProps) {\n var transitionName = this.props.transitionName;\n\n if (_typeof(transitionName) === 'object' && transitionName !== null) {\n transitionName = _objectSpread({}, transitionName);\n delete transitionName.height;\n }\n\n return /*#__PURE__*/React.createElement(ReactCSSTransitionReplaceChild, _objectSpread({\n name: transitionName,\n appear: this.props.transitionAppear,\n enter: this.props.transitionEnter,\n leave: this.props.transitionLeave,\n appearTimeout: this.props.transitionAppearTimeout,\n enterTimeout: this.props.transitionEnterTimeout,\n leaveTimeout: this.props.transitionLeaveTimeout\n }, moreProps), child);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$state2 = this.state,\n currentKey = _this$state2.currentKey,\n currentChild = _this$state2.currentChild,\n prevChildren = _this$state2.prevChildren,\n height = _this$state2.height,\n width = _this$state2.width;\n var childrenToRender = [];\n\n var _this$props = this.props,\n overflowHidden = _this$props.overflowHidden,\n transitionName = _this$props.transitionName,\n component = _this$props.component,\n childComponent = _this$props.childComponent,\n notifyLeaving = _this$props.notifyLeaving,\n transitionAppear = _this$props.transitionAppear,\n transitionEnter = _this$props.transitionEnter,\n transitionLeave = _this$props.transitionLeave,\n changeWidth = _this$props.changeWidth,\n transitionAppearTimeout = _this$props.transitionAppearTimeout,\n transitionEnterTimeout = _this$props.transitionEnterTimeout,\n transitionLeaveTimeout = _this$props.transitionLeaveTimeout,\n containerProps = _objectWithoutProperties(_this$props, [\"overflowHidden\", \"transitionName\", \"component\", \"childComponent\", \"notifyLeaving\", \"transitionAppear\", \"transitionEnter\", \"transitionLeave\", \"changeWidth\", \"transitionAppearTimeout\", \"transitionEnterTimeout\", \"transitionLeaveTimeout\"]);\n\n var transitioning = this.shouldEnterCurrent || this.keysToLeave.length || Object.keys(this.transitioningKeys).length;\n containerProps.style = _objectSpread({}, containerProps.style);\n\n if (transitioning) {\n containerProps.style.position = 'relative';\n\n if (overflowHidden) {\n containerProps.style.overflow = 'hidden';\n }\n }\n\n if (height !== null) {\n var heightClassName = typeof transitionName === 'string' ? \"\".concat(transitionName, \"-height\") : transitionName && transitionName.height || '';\n containerProps.className = \"\".concat(containerProps.className || '', \" \").concat(heightClassName);\n containerProps.style.height = height;\n }\n\n if (width !== null) {\n containerProps.style.width = width;\n }\n\n var positionAbsolute = {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n // In Chrome a selection on a child due to multiple clicks often transfers to the final child after\n // the transitions completes. This prevents selection of the child without other side-effects.\n userSelect: 'none'\n };\n Object.keys(prevChildren).forEach(function (key) {\n var child = prevChildren[key];\n childrenToRender.push( /*#__PURE__*/React.createElement(childComponent, {\n key: key,\n style: positionAbsolute\n }, _this2.wrapChild(notifyLeaving && typeof child.type !== 'string' ? /*#__PURE__*/React.cloneElement(child, {\n isLeaving: true\n }) : child, {\n ref: function ref(r) {\n return _this2.childRefs[key] = r;\n }\n })));\n });\n\n if (currentChild) {\n childrenToRender.push( /*#__PURE__*/React.createElement(childComponent, {\n key: currentKey,\n // While there are leaving children positioning must always be specified to keep the current\n // child on top; the current child can switch to relative positioning after entering though.\n style: this.transitioningKeys[currentKey] ? positionAbsolute : transitioning ? {\n position: 'relative'\n } : null\n }, this.wrapChild(currentChild, {\n ref: function ref(r) {\n return _this2.childRefs[currentKey] = r;\n }\n })));\n }\n\n return /*#__PURE__*/React.createElement(component, containerProps, childrenToRender);\n }\n }]);\n\n return ReactCSSTransitionReplace;\n}(React.Component);\n\n_defineProperty(ReactCSSTransitionReplace, \"displayName\", 'ReactCSSTransitionReplace');\n\n_defineProperty(ReactCSSTransitionReplace, \"propTypes\", {\n transitionName: nameShape.isRequired,\n transitionAppear: PropTypes.bool,\n transitionEnter: PropTypes.bool,\n transitionLeave: PropTypes.bool,\n transitionAppearTimeout: transitionTimeout('Appear'),\n transitionEnterTimeout: transitionTimeout('Enter'),\n transitionLeaveTimeout: transitionTimeout('Leave'),\n overflowHidden: PropTypes.bool,\n changeWidth: PropTypes.bool,\n notifyLeaving: PropTypes.bool\n});\n\n_defineProperty(ReactCSSTransitionReplace, \"defaultProps\", {\n transitionAppear: false,\n transitionEnter: true,\n transitionLeave: true,\n overflowHidden: true,\n changeWidth: false,\n notifyLeaving: false,\n component: 'div',\n childComponent: 'span'\n});\n\nexport { ReactCSSTransitionReplace as default };","import * as React from 'react';\nimport ReactCSSTransitionReplace from 'react-css-transition-replace';\nimport { stripHtml } from \"string-strip-html\";\n\nimport { GRAMMAR, RULES_BASED_3, SPELLING, EVIDENCE_SUBOPTIMAL_SPELLING_OR_GRAMMAR_FINAL_ATTEMPT_FEEDBACK, } from '../../../../constants/evidence';\nimport useFocus from '../../../Shared/hooks/useFocus';\n\nconst loopSrc = `${window.postbuildEnv.CDN_URL}/images/icons/loop.svg`\nconst smallCheckCircleSrc = `${window.postbuildEnv.CDN_URL}/images/icons/check-circle-small.svg`\nconst closeIconSrc = `${window.postbuildEnv.CDN_URL}/images/icons/clear-enabled.svg`\nconst informationSrc = `${window.postbuildEnv.CDN_URL}/images/pages/evidence/icons-information-small.svg`\nconst lightbulbSrc = `${window.postbuildEnv.CDN_URL}/images/pages/evidence/icons-lightbulb-small.svg`\n\nconst reportAProblemOptions = (optimal) => ([\n \"I don't think this feedback applies to what I wrote\",\n \"I don't understand this feedback\",\n optimal ? \"I think my answer still has an error\" : \"I think my answer is correct\"\n])\n\nconst ReportAProblemOption = ({ option, handleSelectProblem, }) => {\n function handleClick() { handleSelectProblem(option) }\n\n return {option} \n}\n\nconst madeLastAttemptAndItWasSuboptimal = (submittedResponses, prompt, lastSubmittedResponse) => {\n const madeLastAttempt = submittedResponses.length === prompt.max_attempts\n return madeLastAttempt && !lastSubmittedResponse.optimal\n}\n\nconst feedbackToShow = (lastSubmittedResponse, submittedResponses, prompt, customFeedback) => {\n\n if (customFeedback) { return customFeedback }\n\n if (!madeLastAttemptAndItWasSuboptimal(submittedResponses, prompt, lastSubmittedResponse)) { return lastSubmittedResponse.feedback }\n\n if ([GRAMMAR, SPELLING, RULES_BASED_3].includes(lastSubmittedResponse.feedback_type)) {\n return EVIDENCE_SUBOPTIMAL_SPELLING_OR_GRAMMAR_FINAL_ATTEMPT_FEEDBACK\n }\n\n return prompt.max_attempts_feedback\n}\n\nconst feedbackForInnerHTML = (feedback) => {\n return {__html: feedback}\n}\n\nconst Feedback: React.SFC = ({ lastSubmittedResponse, prompt, submittedResponses, customFeedback, customFeedbackKey, reportAProblem, }: any) => {\n const { entry, optimal, hint, highlight, } = lastSubmittedResponse\n const [reportAProblemExpanded, setReportAProblemExpanded] = React.useState(false)\n const [reportSubmitted, setReportSubmitted] = React.useState(false)\n const [containerRef, setContainerFocus] = useFocus()\n\n React.useEffect(() => {\n setReportAProblemExpanded(false)\n setReportSubmitted(false)\n setContainerFocus()\n }, [lastSubmittedResponse])\n\n React.useEffect(() => {\n if (reportAProblemExpanded) {\n const el = document.getElementsByClassName(\"report-a-problem-section\")[0]\n el.scrollIntoView(false)\n }\n }, [reportAProblemExpanded])\n\n function toggleReportAProblemExpanded() { setReportAProblemExpanded(!reportAProblemExpanded) }\n\n function handleSelectProblem(report) {\n const { text, } = prompt\n const entryWithoutStem = entry.replace(text, '').trim()\n const callback = () => setReportSubmitted(true)\n\n reportAProblem({ report, callback, entry: entryWithoutStem, })\n }\n\n let className = 'feedback'\n let imageSrc = loopSrc\n let imageAlt = 'Revise icon'\n if (optimal) {\n className += ' optimal'\n imageSrc = smallCheckCircleSrc\n imageAlt = 'Check icon'\n }\n\n const key = customFeedbackKey || submittedResponses.length\n const feedback = feedbackToShow(lastSubmittedResponse, submittedResponses, prompt, customFeedback)\n\n const reportAProblemButton = Report a problem \n let reportAProblemSection = \n if (reportAProblemExpanded) {\n const reportAProblemOptionElements = reportSubmitted ? null : {reportAProblemOptions(lastSubmittedResponse.optimal).map(opt => )}
\n const label = reportSubmitted ? 'Thank you for your feedback!' : 'What did you notice?'\n let text = ''\n if(reportSubmitted && optimal) {\n text = 'Thank you for your feedback! For now, move on to the next part of the activity.'\n } else if(reportSubmitted) {\n text = 'For now, please try your best to revise and improve your sentence.'\n }\n\n reportAProblemSection = (\n \n
{label} \n
\n \n Close \n \n
\n {text} \n {reportAProblemOptionElements}\n )\n }\n\n let headsUpSection\n\n if (madeLastAttemptAndItWasSuboptimal(submittedResponses, prompt, lastSubmittedResponse)) {\n headsUpSection = (\n \n
\n
\n
Heads up
\n
\n
Our feedback bot is not perfect, and it sometimes might be wrong. If you think the feedback is inaccurate, please click on the “Report a problem” button above.
\n
\n )\n }\n\n let hintSection\n\n if (hint && hint.id) {\n const { explanation, image_alt_text, image_link, } = hint\n hintSection = (\n \n
\n
\n
Hint
\n
\n
\n
\n
\n )\n }\n\n\n let screenreaderPassageHighlightText\n let screenreaderResponseHighlightText\n\n const passageHighlights = highlight && highlight.filter(h => h.type === 'passage').map(h => stripHtml(h.text).result)\n const responseHighlights = highlight && highlight.filter(h => h.type === 'response').map(h => stripHtml(h.text).result)\n\n if (passageHighlights && passageHighlights.length) {\n screenreaderPassageHighlightText = Screenreader users, the feedback you just heard is referring to the following section(s) of the passage: {passageHighlights.join('; ')}
\n }\n\n if (responseHighlights && responseHighlights.length) {\n screenreaderResponseHighlightText = Screenreader users, the feedback you just heard is referring to the following word(s) of your response: {responseHighlights.join('; ')}
\n }\n\n return (\n \n
\n \n \n
\n
\n
Feedback
\n
\n
\n
\n {screenreaderPassageHighlightText}\n {screenreaderResponseHighlightText}\n
\n
{reportAProblemButton}
\n
\n {reportAProblemSection}\n \n \n {headsUpSection || hintSection}\n
\n )\n}\n\nexport default Feedback\n","// code courtesy of https://stackoverflow.com/questions/13949059/persisting-the-changes-of-range-objects-after-selection-in-html/13950376#13950376\n\nconst TEXT_TYPE = 3\n\nconst saveSelection = (containerEl) => {\n if (window.getSelection && document.createRange) {\n return saveSelectionForWindowSelection(containerEl)\n } else if (document.selection && document.body.createTextRange) {\n return saveSelectionForDocumentSelection(containerEl)\n }\n}\n\nconst saveSelectionForWindowSelection = (containerEl) => {\n const range = window.getSelection().getRangeAt(0);\n const preSelectionRange = range.cloneRange();\n preSelectionRange.selectNodeContents(containerEl);\n preSelectionRange.setEnd(range.startContainer, range.startOffset);\n const start = preSelectionRange.toString().length;\n\n return {\n start: start,\n end: start + range.toString().length\n }\n};\n\nconst saveSelectionForDocumentSelection = (containerEl) => {\n const selectedTextRange = document.selection.createRange();\n const preSelectionTextRange = document.body.createTextRange();\n preSelectionTextRange.moveToElementText(containerEl);\n preSelectionTextRange.setEndPoint(\"EndToStart\", selectedTextRange);\n const start = preSelectionTextRange.text.length;\n\n return {\n start: start,\n end: start + selectedTextRange.text.length\n }\n}\n\nconst restoreSelection = (containerEl, savedSel) => {\n if (window.getSelection && document.createRange) {\n return restoreSelectionForWindowSelection(containerEl, savedSel)\n } else if (document.selection && document.body.createTextRange) {\n return restoreSelectionForDocumentSelection(containerEl, savedSel)\n }\n}\n\nconst restoreSelectionForWindowSelection = (containerEl, savedSel) => {\n let charIndex = 0\n const range = document.createRange();\n range.setStart(containerEl, 0);\n range.collapse(true);\n const nodeStack = [containerEl]\n let node\n let foundStart = false\n let stop = false;\n\n while (!stop && (node = nodeStack.pop())) {\n if (node.nodeType === TEXT_TYPE) {\n const nextCharIndex = charIndex + node.length;\n if (!foundStart && savedSel.start >= charIndex && savedSel.start <= nextCharIndex) {\n range.setStart(node, savedSel.start - charIndex);\n foundStart = true;\n }\n if (foundStart && savedSel.end >= charIndex && savedSel.end <= nextCharIndex) {\n range.setEnd(node, savedSel.end - charIndex);\n stop = true;\n }\n charIndex = nextCharIndex;\n } else {\n let i = node.childNodes.length;\n while (i--) { // eslint-disable-line no-plusplus\n nodeStack.push(node.childNodes[i]);\n }\n }\n }\n\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n}\n\nconst restoreSelectionForDocumentSelection = (containerEl, savedSel) => {\n const textRange = document.body.createTextRange();\n textRange.moveToElementText(containerEl);\n textRange.collapse(true);\n textRange.moveEnd(\"character\", savedSel.end);\n textRange.moveStart(\"character\", savedSel.start);\n textRange.select();\n};\n\nexport default { saveSelection, restoreSelection };\n","export const highlightSpelling = (str: string, wordsToFormat: string | string[]) => {\n let wordArray = [].concat(wordsToFormat)\n let newString = str\n wordArray.forEach((word) => {\n const matched = newString.match(`${word}[\\\\w\\']*`)\n if (matched && matched[0] && matched[0] !== ' ') {\n const augmentedRegex = new RegExp(`${matched[0]}`, 'g')\n newString = newString.replace(augmentedRegex, `${matched[0]} `)\n }\n })\n return newString\n}\n\nexport const highlightGrammar = (str: string, highlightArray, promptLength: number=0) => {\n if (highlightArray.length < 1) { return str }\n\n highlightArray.sort(descendingOffsetComparator)\n\n highlightArray.forEach((highlight) => {\n const offset = highlight.character - promptLength - 1\n let stringAfterOffset = str.slice(offset)\n const stringBeforeOffset = str.slice(0, offset)\n\n const phraseToFormat = stripEvidenceHtml(highlight.text)\n const matched = stringAfterOffset.match(`${phraseToFormat}[\\\\w\\']*`)\n\n if (matched && matched[0] && matched[0] !== ' ') {\n const augmentedRegex = new RegExp(`${matched[0]}`)\n stringAfterOffset = stringAfterOffset.replace(augmentedRegex, `${matched[0]} `)\n }\n\n str = stringBeforeOffset + stringAfterOffset;\n })\n\n return str\n}\n\nexport const stripEvidenceHtml = (html: string) => html.replace(/|<\\/p>||<\\/u>||<\\/b>| | /g, '').replace(/ /g, ' ')\n\nconst descendingOffsetComparator = (a, b) => {\n return (a['offset'] - b['offset']) * (-1)\n}\n","import * as React from 'react'\nimport { stripHtml } from \"string-strip-html\"\n\nimport EditorContainer from './editorContainer'\nimport Feedback from './feedback'\n\nimport EditCaretPositioning from '../../helpers/EditCaretPositioning'\nimport { highlightGrammar, highlightSpelling, stripEvidenceHtml } from '../../libs/stringFormatting'\nimport { ButtonLoadingSpinner, } from '../../../Shared/index'\n\ninterface PromptStepProps {\n currentActivity: object,\n activityIsComplete: Boolean;\n className: string,\n completionButtonCallback: () => void;\n submitResponse: Function;\n completeStep: (event: any) => void;\n stepNumber: number;\n activateStep: (event: any) => void;\n reportAProblem: ({}) => void;\n prompt: any,\n submittedResponses: Array,\n}\n\ninterface PromptStepState {\n html: string;\n numberOfSubmissions: number;\n customFeedback: string|null;\n customFeedbackKey: string|null;\n responseOverCharacterLimit: boolean;\n submissionTime: number;\n timeAtLastFeedbackSubmissionCheck: number;\n failedToLoadFeedback: boolean;\n}\n\nconst RESPONSE = 'response'\nconst PROMPT = 'prompt'\nexport const DIRECTIONS = 'Use information from the text to finish the sentence:'\nconst APPROACHING_LIMIT_MESSAGE = 'Your response is getting close to the maximum length';\nconst OVER_LIMIT_MESSAGE = 'Your response is too long for our feedback bot to understand';\nconst WARNING_THRESHOLD = 160;\nconst LIMIT_THRESHOLD = 200;\nconst MAX_ATTEMPTS = 5;\nconst SLOW_FEEDBACK_CONSTRAINT = 10000;\nconst FEEDBACK_LOADING_LIMIT = 30000;\n\nexport class PromptStep extends React.Component {\n private editor: any // eslint-disable-line react/sort-comp\n private interval: any // eslint-disable-line react/sort-comp\n private button: any // eslint-disable-line react/sort-comp\n\n\n constructor(props: PromptStepProps) {\n super(props)\n\n const { submittedResponses, } = this.props\n\n this.state = {\n html: this.formattedPrompt(submittedResponses),\n numberOfSubmissions: submittedResponses.length,\n customFeedback: null,\n customFeedbackKey: null,\n responseOverCharacterLimit: false,\n submissionTime: 0,\n failedToLoadFeedback: false,\n timeAtLastFeedbackSubmissionCheck: 0\n };\n\n this.editor = React.createRef()\n this.button = React.createRef()\n this.interval = null;\n }\n\n\n componentDidUpdate() {\n const { submittedResponses } = this.props;\n const { numberOfSubmissions, submissionTime, timeAtLastFeedbackSubmissionCheck, failedToLoadFeedback } = this.state;\n const timeLapsed = Math.abs(timeAtLastFeedbackSubmissionCheck - submissionTime)\n const awaitingFeedback = (numberOfSubmissions !== submittedResponses.length) && !failedToLoadFeedback\n\n if(submissionTime && numberOfSubmissions === submittedResponses.length) {\n this.setState({ submissionTime: 0, timeAtLastFeedbackSubmissionCheck: 0 });\n clearInterval(this.interval);\n }\n if(timeAtLastFeedbackSubmissionCheck && timeLapsed >= FEEDBACK_LOADING_LIMIT && !failedToLoadFeedback) {\n const feedbackFailedToLoadText = 'Sorry, our feedback did not load properly. Please try again or refresh the page.'\n this.setState({ failedToLoadFeedback: true, customFeedback: feedbackFailedToLoadText, customFeedbackKey: 'feedback failed' });\n }\n if(awaitingFeedback) {\n this.button.current.focus()\n }\n }\n\n componentWillUnmount() {\n clearInterval(this.interval);\n }\n\n lastSubmittedResponse = () => {\n const { submittedResponses, } = this.props\n return submittedResponses.length ? submittedResponses[submittedResponses.length - 1] : {}\n }\n\n unsubmittableResponses = () => {\n const { submittedResponses, prompt } = this.props\n const { text } = prompt;\n return submittedResponses.map(r => r.entry).concat(text)\n }\n\n formattedPrompt = (submittedResponses?: Array) => {\n if (submittedResponses && submittedResponses.length) {\n const lastSubmission = submittedResponses[submittedResponses.length - 1]\n const formattedText = this.formatHtmlForEditorContainer(lastSubmission.entry, true)\n return formattedText.htmlWithBolding\n }\n return this.formattedStem()\n }\n\n formattedStem = () => {\n const { prompt, } = this.props\n const { text } = prompt\n return `${this.allButLastWord(text)} ${this.lastWord(text)}
`\n }\n\n allButLastWord = (str: string) => str.substring(0, str.lastIndexOf(' '))\n\n lastWord = (str: string) => str.substring(str.lastIndexOf(' ') + 1)\n\n textWithoutStem = (text: string) => {\n const regex = this.promptAsRegex()\n return text.replace(regex, '')\n }\n\n highlightsAddedPrompt = (str: string) => {\n const { prompt, submittedResponses, } = this.props\n const lastSubmittedResponse = this.lastSubmittedResponse()\n\n if (!lastSubmittedResponse || !lastSubmittedResponse.highlight || !lastSubmittedResponse.entry || submittedResponses.length === prompt.max_attempts) { return str }\n\n const thereArePromptHighlights = lastSubmittedResponse.highlight.filter(hl => hl.type === PROMPT).length\n if (!thereArePromptHighlights) {\n return str\n }\n\n let wordsToFormat = lastSubmittedResponse.highlight.filter(hl => hl.type === PROMPT).map(hl => stripEvidenceHtml(hl.text))\n wordsToFormat = wordsToFormat.length === 1 ? wordsToFormat[0] : wordsToFormat\n return highlightSpelling(str, wordsToFormat)\n }\n\n formatStudentResponse = (str: string, promptLength: number) => {\n const { prompt, submittedResponses, } = this.props\n const lastSubmittedResponse = this.lastSubmittedResponse()\n\n if (!lastSubmittedResponse || !lastSubmittedResponse.highlight || !lastSubmittedResponse.entry || submittedResponses.length === prompt.max_attempts) { return str }\n\n const thereAreResponseHighlights = lastSubmittedResponse.highlight.filter(hl => hl.type === RESPONSE && hl.text.length).length\n\n if (!thereAreResponseHighlights) { return str }\n\n const filteredHighlights = lastSubmittedResponse.highlight.filter(hl => hl.type === RESPONSE)\n\n let wordsToFormat = filteredHighlights.map(hl => stripEvidenceHtml(hl.text))\n\n wordsToFormat = wordsToFormat.length === 1 ? wordsToFormat[0] : wordsToFormat\n\n if (lastSubmittedResponse.feedback_type === 'plagiarism') {\n return this.formatPlagiarismHighlight(str, wordsToFormat)\n } else if (lastSubmittedResponse.feedback_type === 'grammar') {\n return highlightGrammar(str, filteredHighlights, promptLength)\n } else {\n return highlightSpelling(str, wordsToFormat)\n }\n }\n\n formatPlagiarismHighlight = (str: string, wordsToFormat: string) => {\n let boldedString = `${wordsToFormat} `\n return str.replace(wordsToFormat, boldedString)\n }\n\n htmlStrippedPrompt = (escapeRegexCharacters=false) => {\n const strippedPrompt = this.formattedStem().replace(/|<\\/p>| /g, '')\n if (escapeRegexCharacters) {\n return strippedPrompt.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n }\n return strippedPrompt\n }\n\n promptAsRegex = () => new RegExp(`^${this.htmlStrippedPrompt(true)}`)\n\n onTextChange = (e) => {\n const { value } = e.target\n const text = value.replace(/|<\\/b>|
|<\\/p>| /g, '')\n const regex = this.promptAsRegex()\n const caretPosition = EditCaretPositioning.saveSelection(this.editor)\n if (text.match(regex)) {\n // when a user deletes the last period, a gets appended as the end of the string so we need to remove this\n const lastSpaceCorrectedValue = value.replace(/ <\\/p>/, '
')\n this.setState({ html: lastSpaceCorrectedValue, }, () => EditCaretPositioning.restoreSelection(this.editor, caretPosition))\n // if the student has deleted everything, we want to remove everything but the prompt stem\n } else if (!text.length) {\n this.resetText()\n } else {\n const htmlStrippedPrompt = this.htmlStrippedPrompt()\n const splitSubmission = text.split(' ')\n\n // handles case where change is only in the formatted prompt part\n if (splitSubmission.length > 1) {\n const newValue = `${htmlStrippedPrompt}${splitSubmission[splitSubmission.length - 1]}`\n this.setState({ html: newValue}, () => {\n this.editor.innerHTML = newValue\n })\n // student overwrote or deleted both part of their submission and the formatted prompt and the solution is much more complicated\n } else {\n const formattedPromptWordArray = htmlStrippedPrompt.split(' ')\n const textWordArray = text.replace(/ /g, ' ').split(' ')\n\n // if the user has tried to edit part of the original prompt, we find the words in their submission that are different from the original prompt\n const diffIndices: number[] = []\n formattedPromptWordArray.forEach((word: string, i: number) => {\n if ((textWordArray[i] !== word)) {\n diffIndices.push(i)\n }\n })\n\n let newTextWordArray = textWordArray.slice(0, diffIndices[0])\n const textToAddAfterPromptText: string[] = []\n\n // then we add each of the words from the original prompt that they modified or removed back in\n diffIndices.forEach((originalIndex: number) => {\n const diffWordEquivalent = formattedPromptWordArray[originalIndex]\n newTextWordArray.push(diffWordEquivalent)\n const diffWordWithoutHtmlLettersArray = textWordArray[originalIndex] ? stripEvidenceHtml(textWordArray[originalIndex]).split('') : null\n if (diffWordWithoutHtmlLettersArray) {\n const diffWordEquivalentWithoutHtmlLettersArray = stripEvidenceHtml(diffWordEquivalent)\n const indexOfLettersToKeepFromDiffWord = diffWordWithoutHtmlLettersArray.findIndex((letter: string, i: number) => letter !== diffWordEquivalentWithoutHtmlLettersArray[i])\n if (indexOfLettersToKeepFromDiffWord !== -1) {\n const partOfDiffWordToKeep = diffWordWithoutHtmlLettersArray.slice(indexOfLettersToKeepFromDiffWord).join('').replace(/( )|()|(<\\/u>)/g, '')\n // keeping track of what they'd modified it to be, so we don't lose those changes\n textToAddAfterPromptText.push(partOfDiffWordToKeep)\n }\n }\n })\n\n const restOfSubmission = textWordArray.slice(diffIndices[diffIndices.length - 1] + 1)\n\n // then we concatenate the original text, however they had changed their submission, and the rest of the submission\n newTextWordArray = newTextWordArray.concat(textToAddAfterPromptText).concat(restOfSubmission)\n\n const newValue = newTextWordArray.join(' ').replace(/ \\s/g, ' ')\n\n this.setState({ html: newValue}, () => {\n this.editor.innerHTML = newValue\n })\n }\n }\n\n this.setState({ customFeedback: null, customFeedbackKey: null })\n }\n\n resetText = () => {\n const html = this.formattedStem()\n this.setState({ html }, () => {\n this.editor.innerHTML = html\n this.placeCaretAtEnd()\n })\n }\n\n setEditorRef = (node: JSX.Element) => this.editor = node\n\n placeCaretAtEnd = () => {\n // following code ensures tabbing into editor always puts cursor at the end of the text\n const el = this.editor\n // retrieved from https://stackoverflow.com/a/4238971\n if (typeof window.getSelection != \"undefined\" && typeof document.createRange != \"undefined\") {\n const range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n const textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }\n\n handleClickReturnToEditor = () => {\n this.editor.focus()\n this.editor.scrollIntoView()\n }\n\n handleGetFeedbackClick = (e, entry: string, promptId: string, promptText: string) => {\n e.preventDefault()\n const { submitResponse, currentActivity} = this.props\n\n this.setState(prevState => ({\n numberOfSubmissions: prevState.numberOfSubmissions + 1,\n submissionTime: (new Date()).getTime(),\n failedToLoadFeedback: false,\n customFeedback: null,\n customFeedbackKey: null\n }), () => {\n const { numberOfSubmissions, } = this.state\n submitResponse(entry, promptId, promptText, numberOfSubmissions, currentActivity?.version)\n this.interval = setInterval(() => this.setState({ timeAtLastFeedbackSubmissionCheck: (new Date()).getTime() }), 1000);\n })\n }\n\n onStepInteraction = (e) => {\n const { key, ctrlKey, metaKey, } = e\n const { activateStep, stepNumber, } = this.props\n\n if (key === \"5\" && ctrlKey && metaKey) {\n this.completeStep()\n } else {\n activateStep(stepNumber)\n }\n }\n\n completeStep = () => {\n const { completeStep, stepNumber, } = this.props\n\n completeStep(stepNumber)\n }\n\n formatHtmlForEditorContainer = (html: string) => {\n const { prompt, } = this.props\n const text = html.replace(/|<\\/b>| |<\\/p>| ||<\\/u>/g, '').replace(' ', '')\n const textWithoutStem = text.replace(prompt.text, '').trim()\n const textForCharacterCount = stripHtml(textWithoutStem).result;\n const spaceAtEnd = text.match(/\\s$/m) ? ' ' : ''\n return {\n htmlWithBolding: `
${this.highlightsAddedPrompt(this.htmlStrippedPrompt())}${this.formatStudentResponse(textWithoutStem, prompt.text.length)}${spaceAtEnd}
`,\n rawTextWithoutStem: textWithoutStem,\n textForCharacterCount\n }\n }\n\n getFeedbackLoadingDetails = () => {\n const { submissionTime, timeAtLastFeedbackSubmissionCheck } = this.state\n if(!submissionTime) {\n return \n }\n const timeLapsed = Math.abs(timeAtLastFeedbackSubmissionCheck - submissionTime)\n if(timeLapsed <= SLOW_FEEDBACK_CONSTRAINT) {\n return Finding feedback...
\n } else if(timeLapsed > SLOW_FEEDBACK_CONSTRAINT && timeLapsed <= FEEDBACK_LOADING_LIMIT) {\n return Still finding feedback. Thanks for your patience!
\n }\n return \n }\n\n renderFeedbackButtonAndDetails = () => {\n const { prompt, submittedResponses, completionButtonCallback, activityIsComplete} = this.props\n const { id, text, max_attempts } = prompt\n const { html, numberOfSubmissions, responseOverCharacterLimit, failedToLoadFeedback } = this.state\n const entry = stripEvidenceHtml(html).trim()\n const awaitingFeedback = (numberOfSubmissions !== submittedResponses.length) && !failedToLoadFeedback\n const buttonLoadingSpinner = awaitingFeedback ? : null\n let buttonCopy = 'Get feedback'\n let className = 'quill-button-archived focus-on-light'\n let onClick = (e) => this.handleGetFeedbackClick(e, entry, id, text)\n let disabled = false\n let ariaLabel = buttonCopy\n\n if (activityIsComplete) {\n onClick = completionButtonCallback\n buttonCopy = 'Done'\n } else if (submittedResponses.length === max_attempts || this.lastSubmittedResponse().optimal) {\n onClick = this.completeStep\n buttonCopy = 'Next'\n } else if (this.unsubmittableResponses().includes(entry)) {\n className += ' disabled'\n disabled = true\n onClick = () => {}\n ariaLabel = submittedResponses.length ? \"You already submitted this response. You must edit it before you can submit it again.\" : buttonCopy\n } else if (awaitingFeedback) {\n className += ' disabled'\n disabled = true\n onClick = () => {}\n buttonCopy = ''\n ariaLabel = \"Waiting for feedback\"\n } else if (responseOverCharacterLimit) {\n className += ' disabled'\n disabled = true\n onClick = () => {}\n ariaLabel = OVER_LIMIT_MESSAGE\n }\n\n return(\n \n {this.getFeedbackLoadingDetails()}\n \n {buttonLoadingSpinner}\n {buttonCopy} \n \n
\n )\n }\n\n renderFeedbackSection = () => {\n const { customFeedback, customFeedbackKey, } = this.state\n const { submittedResponses, prompt, reportAProblem, } = this.props\n\n if (submittedResponses.length === 0 && !(customFeedback && customFeedbackKey)) { return }\n\n return (\n \n )\n }\n\n renderCharacterLimitWarning = (characterCount: number, characterCountClassName: string) => {\n if(characterCount < WARNING_THRESHOLD) { return }\n const message = characterCount < LIMIT_THRESHOLD ? APPROACHING_LIMIT_MESSAGE : OVER_LIMIT_MESSAGE;\n return(\n \n
{message}
\n
{`${characterCount}/${LIMIT_THRESHOLD}`}
\n
\n )\n }\n\n renderEditorContainer = () => {\n const { html, responseOverCharacterLimit } = this.state\n const { submittedResponses, prompt } = this.props\n const lastSubmittedResponse = this.lastSubmittedResponse()\n let className = 'editor'\n let disabled = false\n const outOfAttempts = submittedResponses.length === prompt.max_attempts\n if (lastSubmittedResponse.optimal) {\n className += ' optimal disabled'\n disabled = true\n } else if (outOfAttempts) {\n className += ' suboptimal disabled'\n disabled = true\n } else if (submittedResponses.length) {\n className += ' suboptimal'\n }\n\n const formattedText = this.formatHtmlForEditorContainer(html)\n const { htmlWithBolding, rawTextWithoutStem, textForCharacterCount } = formattedText\n const characterCount = textForCharacterCount && textForCharacterCount.split('').length;\n let characterCountClassName;\n if(characterCount >= WARNING_THRESHOLD && characterCount < LIMIT_THRESHOLD) {\n characterCountClassName = 'approaching-limit';\n } else if (characterCount >= LIMIT_THRESHOLD) {\n characterCountClassName = 'over-limit';\n }\n if(characterCountClassName) {\n className += ` ${characterCountClassName}`;\n }\n if(characterCount >= LIMIT_THRESHOLD && !responseOverCharacterLimit) {\n this.setState({ responseOverCharacterLimit: true });\n } else if(characterCount < LIMIT_THRESHOLD && responseOverCharacterLimit) {\n this.setState({ responseOverCharacterLimit: false });\n }\n\n return (\n \n \n {this.renderCharacterLimitWarning(characterCount, characterCountClassName)}\n
\n );\n }\n\n renderActiveContent = () => {\n const { prompt, submittedResponses } = this.props;\n const attemptsCount = submittedResponses && submittedResponses.length ? submittedResponses.length : 0;\n const maxAttemptCount = prompt && prompt.max_attempts ? prompt.max_attempts : MAX_ATTEMPTS;\n return(\n \n {this.renderEditorContainer()}\n
\n
\n
{attemptsCount}
\n
{`of ${maxAttemptCount} attempts`}
\n
\n {this.renderFeedbackButtonAndDetails()}\n
\n {this.renderFeedbackSection()}\n
Return to editor \n
\n )\n }\n\n render() {\n const { className } = this.props\n\n return (\n \n
\n {this.renderActiveContent()}\n
\n
\n )\n }\n}\n\nexport default PromptStep;\n","import * as React from \"react\"\n\nimport { onMobile, READ_PASSAGE_STEP } from './containerActionHelpers'\n\nimport DirectionsSection from '../components/studentView/directionsSection'\n\nconst bigCheckSrc = `${window.postbuildEnv.CDN_URL}/images/icons/check-circle-big.svg`\n\nexport const renderDirectionsSection = ({ className, handleReadTheDirectionsButtonClick, activeStep, doneHighlighting, showReadTheDirectionsButton, activities }) => {\n const { currentActivity, } = activities\n\n return (\n \n )\n}\n\nexport const renderDirections = ({ handleReadTheDirectionsButtonClick, activeStep, doneHighlighting, showReadTheDirectionsButton, activities, hasStartedReadPassageStep, hasStartedPromptSteps }) => {\n const { currentActivity, } = activities\n\n const DirectionsSection = renderDirectionsSection({ className: '', handleReadTheDirectionsButtonClick , activeStep, doneHighlighting, showReadTheDirectionsButton, activities })\n\n if ((!hasStartedReadPassageStep || (activeStep > READ_PASSAGE_STEP && !hasStartedPromptSteps)) && onMobile()) {\n return \n }\n\n if (!currentActivity || activeStep === READ_PASSAGE_STEP) {\n return ({DirectionsSection}
)\n }\n}\n\nexport const renderStepNumber = (number: number, activeStep, completedSteps) => {\n const active = activeStep === number\n const completed = completedSteps.includes(number)\n if (completed) {\n return \n }\n // we have to remove one step for display because there are actually four steps including read passage, but it's displayed differently\n return {number - 1}
\n}\n\nexport const renderReadPassageStep = (activeStep, activities, handleDoneReadingClick) => {\n const { currentActivity, } = activities\n if (!currentActivity || activeStep !== READ_PASSAGE_STEP) { return }\n\n return (\n \n
Read the text. \n Done reading \n
\n )\n}\n","import * as React from \"react\"\n\nimport PromptStep from './promptStep'\n\nimport useFocus from '../../../Shared/hooks/useFocus'\nimport { orderedSteps, } from '../../helpers/containerActionHelpers'\nimport { renderDirectionsSection, } from '../../helpers/containerRenderHelpers'\n\nconst PromptStepContainer = ({\n activateStep,\n activityIsComplete,\n completionButtonCallback,\n completeStep,\n submitResponse,\n activities,\n session,\n activeStep,\n doneHighlighting,\n reportAProblem,\n}) => {\n const { currentActivity, } = activities\n const { submittedResponses, hasReceivedData, } = session\n\n if (!currentActivity || !hasReceivedData) return \n\n // the first step is reading, so we will always start at 2 and therefore want to begin at the 0 index\n const stepNumber = activeStep - 2;\n const prompts = orderedSteps(activities);\n const prompt = prompts[stepNumber];\n\n const [containerRef, setContainerFocus] = useFocus()\n\n React.useEffect(() => {\n setContainerFocus()\n }, [])\n\n return (\n \n {renderDirectionsSection({ className: '', activeStep, doneHighlighting, activities })}\n
\n
\n )\n}\n\nexport default PromptStepContainer\n","import * as React from 'react';\n\nimport PromptStepContainer from './promptStepContainer';\n\nimport { renderReadPassageStep, } from '../../helpers/containerRenderHelpers';\n\nconst Steps = ({\n activeStep,\n activateStep,\n activities,\n activityIsComplete,\n handleDoneReadingClick,\n completionButtonCallback,\n completeStep,\n submitResponse,\n handleReadTheDirectionsButtonClick,\n session,\n completedSteps,\n doneHighlighting,\n resetTimers,\n showReadTheDirectionsButton,\n reportAProblem,\n}) => {\n const promptStepContainerProps = {\n activateStep,\n activityIsComplete,\n completionButtonCallback,\n completeStep,\n submitResponse,\n handleReadTheDirectionsButtonClick,\n activities,\n session,\n activeStep,\n completedSteps,\n doneHighlighting,\n showReadTheDirectionsButton,\n reportAProblem,\n }\n return(\n \n
\n {renderReadPassageStep(activeStep, activities, handleDoneReadingClick)}\n
\n
\n
\n )\n}\n\nexport default Steps;\n","import * as React from 'react';\n\nimport BottomNavigation from './bottomNavigation';\nimport ReadAndHighlightInstructions from './readAndHighlightInstructions';\nimport StepOverview from './stepOverview';\nimport Steps from './steps';\n\nimport { READ_PASSAGE_STEP } from '../../helpers/containerActionHelpers';\n\nconst RightPanel = ({\n activities,\n activateStep,\n activeStep,\n activityIsComplete,\n handleReadTheDirectionsButtonClick,\n completeStep,\n completedSteps,\n completionButtonCallback,\n doneHighlighting,\n handleClickDoneHighlighting,\n handleDoneReadingClick,\n hasStartedPromptSteps,\n hasStartedReadPassageStep,\n onStartPromptSteps,\n onStartReadPassage,\n reportAProblem,\n resetTimers,\n scrolledToEndOfPassage,\n session,\n showReadTheDirectionsButton,\n showStepsSummary,\n studentHighlights,\n submitResponse,\n toggleShowStepsSummary,\n toggleStudentHighlight,\n}) => {\n\n const bottomNavigation = ( )\n\n if (!hasStartedReadPassageStep) {\n return (\n \n \n {bottomNavigation}\n
\n )\n }\n\n if (activeStep === READ_PASSAGE_STEP) {\n return (\n \n \n {bottomNavigation}\n
\n )\n }\n\n if (!hasStartedPromptSteps) {\n return (\n \n \n {bottomNavigation}\n
\n )\n }\n\n if (showStepsSummary) {\n return (\n \n \n {bottomNavigation}\n
\n )\n }\n\n return(\n \n )\n}\n\nexport default RightPanel;\n","import { ActionTypes } from './actionTypes'\nimport { TrackAnalyticsEvent } from './analytics'\n\nimport { requestGet, } from '../../../modules/request/index'\nimport { Events } from '../modules/analytics'\n\nexport const getActivity = (sessionID: string, activityUID: string) => {\n return async (dispatch: Function) => {\n\n dispatch(TrackAnalyticsEvent(Events.EVIDENCE_ACTIVITY_STARTED, {\n activityID: activityUID,\n sessionID: sessionID\n }));\n\n const activityUrl = `${window.postbuildEnv.DEFAULT_URL}/api/v1/evidence/activities/${activityUID}`\n\n await requestGet(activityUrl, (body) => {\n if (body) {\n dispatch({ type: ActionTypes.RECEIVE_ACTIVITY_DATA, data: body, });\n } else {\n dispatch({ type: ActionTypes.NO_ACTIVITY_FOUND })\n }\n })\n }\n}\n\nexport const getTopicOptimalInfo = (activityID: number) => {\n return async (dispatch: Function) => {\n const topicOptimalInfoUrl = `${window.postbuildEnv.DEFAULT_URL}/api/v1/evidence/activities/${activityID}/topic_optimal_info`\n\n await requestGet(topicOptimalInfoUrl, (body) => {\n if (body) {\n dispatch({ type: ActionTypes.RECEIVE_TOPIC_OPTIMAL_DATA, data: body, });\n }\n })\n }\n}\n","import { DIRECTIONS, } from '../components/studentView/promptStep'\n\nexport const generateConceptResults = (currentActivity, submittedResponses, topicOptimalData) => {\n const conjunctionToQuestionNumber = {\n because: 1,\n but: 2,\n so: 3\n }\n\n const conceptResults = []\n\n for (const [promptID, responses] of Object.entries(submittedResponses)) {\n const prompt = Object.values(currentActivity.prompts).filter((prompt) => String(prompt.id) === String(promptID))[0]\n responses.forEach((response, index) => {\n const attempt = index + 1\n const conceptResultMetadata = {\n answer: response.entry,\n attemptNumber: attempt,\n correct: response.optimal ? 1 : 0,\n directions: (attempt === 1) ? DIRECTIONS : responses[index - 1].feedback,\n prompt: prompt.text,\n questionNumber: conjunctionToQuestionNumber[prompt.conjunction],\n questionScore: responses.some((r) => r.optimal) ? 1.0 : 0.0\n }\n\n if (topicOptimalData && topicOptimalData.rule_types.includes(response.feedback_type)) {\n conceptResults.push({\n concept_uid: topicOptimalData.concept_uids[prompt.id],\n question_type: 'comprehension',\n metadata: {\n ...conceptResultMetadata,\n ...{correct: 1}\n }\n })\n }\n\n conceptResults.push({\n concept_uid: response.concept_uid,\n question_type: 'comprehension',\n metadata: conceptResultMetadata\n })\n })\n }\n return conceptResults\n}\n\nexport const generatePercentageScore = (conceptResults) => {\n const questionScores: {[key:number]: number} = {};\n\n conceptResults.forEach(result => {\n const { questionNumber, questionScore } = result.metadata;\n if (!questionScores[questionNumber]) {\n questionScores[questionNumber] = questionScore;\n }\n });\n\n\n const totalScore: number = Object.values(questionScores).reduce((acc, score) => acc + score, 0);\n const totalQuestions = Object.keys(questionScores).length\n\n const percentageScore = totalQuestions ? Math.round((totalScore/totalQuestions) * 100) / 100 : null\n\n return percentageScore;\n};\n","import { requestGet, } from '../../../modules/request/index';\nimport { apiFetch, handleApiError } from '../../Staff/helpers/evidence/routingHelpers';\n\nexport const postTurkSession = async (turkingRoundID: string, activitySessionUID: string) => {\n\n const response = await apiFetch('turking_round_activity_sessions', {\n method: 'POST',\n body: JSON.stringify({\n turking_round_id: turkingRoundID,\n activity_session_uid: activitySessionUID\n })\n });\n return { error: handleApiError('Failed to create turking activity session. Please refresh the page and try again.', response) };\n}\n\nexport default function validateTurkSession(turkingRoundId, activityId, callback) {\n requestGet(\n `${window.postbuildEnv.DEFAULT_URL}/api/v1/evidence/turking_round_activity_sessions/validate?activity_id=${activityId}&turking_round_id=${turkingRoundId}`,\n (body) => callback(body),\n (body) => {\n alert(\"Failed to validate turking activity session: \" + body)\n callback(body)\n }\n )\n}\n","export const explanationData = {\n 1: {\n buttonText: \"Next\",\n header: \"All writers revise\",\n imageData: {\n imageAlt: \"An illustration of a pencil circled with a revision\",\n imageUrl: \"images/evidence/revising-pencil.svg\"\n },\n isBeta: false,\n step: 2,\n subtext: \"Your goal is to practice and improve your writing skills. We will provide you with a lot of feedback on your writing. You’ll be able to revise each sentence up to five times so that you can become a stronger writer.\"\n },\n 2: {\n buttonText: \"Next\",\n header: \"We use a feedback bot\",\n imageData: {\n imageAlt: \"An illustration of a smiling robot head\",\n imageUrl: \"images/evidence/feedback-bot.svg\"\n },\n isBeta: true,\n step: 3,\n subtext: \"We use artificial intelligence (AI) to help us give you feedback on your writing. You should know that AI isn't always correct.\"\n },\n 3: {\n buttonText: \"Start\",\n header: \"Your teacher will see your score and writing\",\n imageData: {\n imageAlt: \"An illustration of a report page with a magnifying glass over it\",\n imageUrl: \"images/evidence/evidence-report.svg\"\n },\n isBeta: false,\n step: 4,\n subtext: \"Once the activity is complete, both you and your teacher will see a report with your score and your responses for each prompt.\"\n },\n}\n","import * as React from \"react\";\n\nexport const Footer = ({ buttonText, onHandleClick, step }) => {\n\n function handleClick() {\n onHandleClick();\n }\n\n return(\n \n );\n}\n\nexport default Footer;\n","import * as React from \"react\";\n\nimport Footer from './footer';\n\nimport useFocus from '../../../Shared/hooks/useFocus';\n\nexport const ExplanationSlide = ({ slideData, onHandleClick }) => {\n const { buttonText, header, imageData, isBeta, step, subtext } = slideData;\n const { imageAlt, imageUrl } = imageData;\n\n const [containerRef, setContainerFocus] = useFocus()\n\n React.useEffect(() => {\n setContainerFocus()\n }, [slideData])\n\n return(\n \n );\n}\n\nexport default ExplanationSlide;\n","import * as React from \"react\";\n\nimport Footer from './footer';\n\nexport const WelcomeSlide = ({ onHandleClick, user }) => {\n const welcomeText = user ? `Hi, ${user}!` : 'Hi there!'\n return(\n \n );\n}\n\nexport default WelcomeSlide;\n","import * as React from 'react'\n\nconst LoadingSpinner: React.SFC = () => (\n \n
\n
\n)\n\nexport default LoadingSpinner\n","import * as React from \"react\";\nimport { convertNodeToElement } from 'react-html-parser';\nimport { connect } from \"react-redux\";\nimport { stripHtml } from \"string-strip-html\";\n\nimport ActivityFollowUp from './activityFollowUp';\nimport ReadPassageContainer from './readPassageContainer';\nimport RightPanel from './rightPanel';\n\nimport { BECAUSE, BUT, CHECKLIST, CLICK, INTRODUCTION, KEYDOWN, KEYPRESS, MOUSEDOWN, MOUSEMOVE, READ_AND_HIGHLIGHT, READ_PASSAGE_STEP_NUMBER, SO, SO_PASSAGE_STEP_NUMBER, VISIBILITYCHANGE, roundMillisecondsToSeconds } from '../../../Shared/index';\nimport { getActivity, getTopicOptimalInfo } from \"../../actions/activities\";\nimport { TrackAnalyticsEvent } from \"../../actions/analytics\";\nimport { completeActivitySession, fetchActiveActivitySession, getFeedback, processUnfetchableSession, reportAProblem, saveActiveActivitySession, saveActivitySurveyResponse, setActiveStepForSession, setActivityIsCompleteForSession, setExplanationSlidesCompletedForSession, setPreviewSessionStep } from '../../actions/session';\nimport { everyOtherStepCompleted, getCurrentStepDataForEventTracking, getLastSubmittedResponse, getStrippedPassageHighlights, getUrlParam, onMobile, outOfAttemptsForActivePrompt } from '../../helpers/containerActionHelpers';\nimport { renderDirections } from '../../helpers/containerRenderHelpers';\nimport getParameterByName from '../../helpers/getParameterByName';\nimport { generateConceptResults, generatePercentageScore, } from '../../libs/conceptResults';\nimport { Events } from '../../modules/analytics';\nimport { ActivitiesReducerState } from '../../reducers/activitiesReducer';\nimport { SessionReducerState } from '../../reducers/sessionReducer';\nimport { postTurkSession } from '../../utils/turkAPI';\nimport { explanationData } from \"../activitySlides/explanationData\";\nimport ExplanationSlide from \"../activitySlides/explanationSlide\";\nimport WelcomeSlide from \"../activitySlides/welcomeSlide\";\nimport LoadingSpinner from '../shared/loadingSpinner';\n\ninterface StudentViewContainerProps {\n dispatch: Function;\n activities: ActivitiesReducerState;\n session: SessionReducerState;\n location?: any;\n handleFinishActivity?: () => void;\n isTurk?: boolean;\n user: string;\n userRole: string;\n previewMode: boolean;\n}\n\ninterface StudentViewContainerState {\n explanationSlideStep: number;\n completedSteps: Array;\n isIdle: boolean;\n showFocusState: boolean;\n startTime: number;\n timeTracking: { [key:string]: number };\n studentHighlights: string[];\n doneHighlighting: boolean;\n showReadTheDirectionsButton: boolean;\n scrolledToEndOfPassage: boolean;\n hasStartedReadPassageStep: boolean;\n hasStartedPromptSteps: boolean;\n}\n\nconst ONBOARDING = 'onboarding'\nconst ALL_STEPS = [READ_PASSAGE_STEP_NUMBER, 2, 3, 4]\nconst MINIMUM_STUDENT_HIGHLIGHT_COUNT = 2\n\nconst STUDENT_HIGHLIGHT_STARTS_TEXT = \"(highlighted text begins here)\"\nconst STUDENT_HIGHLIGHT_ENDS_TEXT = \"(highlighted text ends here)\"\nconst PASSAGE_HIGHLIGHT_STARTS_TEXT = \"(yellow underlined text begins here)\"\nconst PASSAGE_HIGHLIGHT_ENDS_TEXT = \"(yellow underlined text ends here)\"\n\nexport const StudentViewContainer = ({ dispatch, session, isTurk, location, activities, handleFinishActivity, user, previewMode, userRole, }: StudentViewContainerProps) => {\n const skipToSpecificStep = window.location.href.includes('skipToStep')\n const shouldSkipToPrompts = window.location.href.includes('turk') || window.location.href.includes('skipToPrompts') || skipToSpecificStep\n const defaultCompletedSteps = shouldSkipToPrompts ? [READ_PASSAGE_STEP_NUMBER] : []\n const sessionFromUrl = getUrlParam('session', location, isTurk)\n const activityUID = getUrlParam('uid', location, isTurk)\n\n const refs = {\n step1: React.useRef(),\n step2: React.useRef(),\n step3: React.useRef(),\n step4: React.useRef()\n }\n\n const inactivityTimer = React.useRef(null)\n\n const [explanationSlideStep, setExplanationSlideStep] = React.useState(0)\n const [completeButtonClicked, setCompleteButtonClicked] = React.useState(false)\n const [completedSteps, setCompletedSteps] = React.useState(defaultCompletedSteps)\n const [showFocusState, setShowFocusState] = React.useState(false)\n const [showStepsSummary, setShowStepsSummary] = React.useState(false)\n const [startTime, setStartTime] = React.useState(Date.now())\n const [isIdle, setIsIdle] = React.useState(false)\n const [studentHighlights, setStudentHighlights] = React.useState([])\n const [scrolledToEndOfPassage, setScrolledToEndOfPassage] = React.useState(shouldSkipToPrompts)\n const [hasStartedReadPassageStep, setHasStartedReadPassageStep] = React.useState(shouldSkipToPrompts)\n const [hasStartedPromptSteps, setHasStartedPromptsSteps] = React.useState(skipToSpecificStep)\n const [doneHighlighting, setDoneHighlighting] = React.useState(shouldSkipToPrompts)\n const [showReadTheDirectionsButton, setShowReadTheDirectionsButton] = React.useState(false)\n const [timeTracking, setTimeTracking] = React.useState({\n [ONBOARDING]: 0,\n 1: 0,\n 2: 0,\n 3: 0,\n 4: 0\n })\n\n React.useEffect(() => {\n const { activeStep } = session;\n if (Object.keys(session.submittedResponses).length && getStrippedPassageHighlights({ activities, session, activeStep })) {\n scrollToHighlight()\n }\n }, [session.submittedResponses])\n\n React.useEffect(() => {\n if(hasStartedReadPassageStep || session.previewSessionStep === READ_AND_HIGHLIGHT) {\n const el = document.getElementById('end-of-passage')\n const observer = new IntersectionObserver(([entry]) => { entry.isIntersecting ? setScrolledToEndOfPassage(entry.isIntersecting) : null; });\n\n el && observer.observe(el);\n }\n }, [hasStartedReadPassageStep, session.previewSessionStep]);\n\n React.useEffect(() => {\n dispatch(getTopicOptimalInfo(activityUID))\n if (sessionFromUrl) {\n const fetchActiveActivitySessionArgs = {\n sessionID: sessionFromUrl,\n activityUID: activityUID,\n callback: loadPreviousSession\n }\n dispatch(getActivity(sessionFromUrl, activityUID))\n .then(() => {\n dispatch(fetchActiveActivitySession(fetchActiveActivitySessionArgs))\n })\n } else {\n if (activityUID) {\n const { sessionID, } = session\n dispatch(getActivity(sessionID, activityUID))\n dispatch(processUnfetchableSession(sessionID));\n if (isTurk) {\n isTurk && handlePostTurkSession(sessionID);\n } else if (!skipToSpecificStep) {\n window.location.href = `${window.location.href}&session=${sessionID}`\n }\n }\n }\n }, [])\n\n React.useEffect(() => {\n window.addEventListener(KEYDOWN, handleKeyDown)\n window.addEventListener(MOUSEMOVE, resetTimers)\n window.addEventListener(MOUSEDOWN, resetTimers)\n window.addEventListener(CLICK, handleClick)\n window.addEventListener(KEYPRESS, resetTimers)\n window.addEventListener(VISIBILITYCHANGE, setIdle)\n\n return function cleanup() {\n window.removeEventListener(KEYDOWN, handleKeyDown)\n window.removeEventListener(MOUSEMOVE, resetTimers)\n window.removeEventListener(MOUSEDOWN, resetTimers)\n window.removeEventListener(CLICK, handleClick)\n window.removeEventListener(KEYPRESS, resetTimers)\n window.removeEventListener(VISIBILITYCHANGE, setIdle)\n }\n }, [session, activities, hasStartedPromptSteps, inactivityTimer, isIdle])\n\n React.useEffect(() => { activities.currentActivity ? document.title = `Quill.org | ${activities.currentActivity.title}` : null }, [activities.currentActivity])\n\n React.useEffect(() => {\n const { activeStep } = session;\n if (!outOfAttemptsForActivePrompt(activeStep, session, activities)) { return }\n\n if (!everyOtherStepCompleted(activeStep, completedSteps)) { return }\n\n completeStep(activeStep)\n }, [session.submittedResponses])\n\n React.useEffect(() => {\n if (onMobile()) { window.scrollTo(0, 0) }\n }, [doneHighlighting])\n\n React.useEffect(() => {\n if (completedSteps.length === defaultCompletedSteps.length || !activities.currentActivity ) { return }\n\n const uniqueCompletedSteps = Array.from(new Set(completedSteps))\n const { activeStep } = session;\n\n // Don't go to the next step if we haven't flagged the current step as completed\n // This particular condition can occur when loading data from a partially-completed session which triggers this effect\n if (!uniqueCompletedSteps.includes(activeStep)) return\n\n let nextStep: number|undefined = activeStep + 1\n if (nextStep > ALL_STEPS.length || uniqueCompletedSteps.includes(nextStep)) {\n nextStep = ALL_STEPS.find(s => !uniqueCompletedSteps.includes(s))\n }\n\n if (nextStep) {\n // don't activate a step if it's already active\n if (activeStep === nextStep) return\n // // don't activate nextSteps before Done reading button has been clicked\n if (nextStep && nextStep > 1 && !completedSteps.includes(READ_PASSAGE_STEP_NUMBER)) return\n\n dispatch(setActiveStepForSession(nextStep))\n setStartTime(Date.now())\n trackCurrentPromptStartedEvent()\n callSaveActiveActivitySession()\n } else {\n trackActivityCompletedEvent(); // If there is no next step, the activity is done\n }\n }, [completedSteps, activities.currentActivity])\n\n React.useEffect(() => {\n const { activeStep } = session;\n activeStep !== READ_PASSAGE_STEP_NUMBER ? scrollToStep(`step${activeStep}`) : null\n }, [session.activeStep])\n\n function handleReadPassageContainerScroll(e=null) {\n if (e) { resetTimers(e) }\n }\n\n function preparePreviewIntroductionStep() {\n dispatch(setPreviewSessionStep(INTRODUCTION))\n dispatch(setActiveStepForSession(1))\n dispatch(setExplanationSlidesCompletedForSession(false))\n dispatch(setActivityIsCompleteForSession(false))\n setExplanationSlideStep(0)\n setHasStartedReadPassageStep(false)\n setShowReadTheDirectionsButton(false)\n setScrolledToEndOfPassage(false)\n setDoneHighlighting(false)\n setHasStartedPromptsSteps(false)\n setCompleteButtonClicked(false)\n setCompletedSteps([])\n }\n\n function preparePreviewChecklistStep() {\n dispatch(setPreviewSessionStep(CHECKLIST))\n dispatch(setActiveStepForSession(1))\n dispatch(setExplanationSlidesCompletedForSession(true))\n dispatch(setActivityIsCompleteForSession(false))\n setHasStartedReadPassageStep(false)\n setShowReadTheDirectionsButton(false)\n setScrolledToEndOfPassage(false)\n setDoneHighlighting(false)\n setHasStartedPromptsSteps(false)\n setCompleteButtonClicked(false)\n setCompletedSteps([])\n }\n\n function preparePreviewReadAndHighlightStep() {\n dispatch(setPreviewSessionStep(READ_AND_HIGHLIGHT))\n dispatch(setActiveStepForSession(1))\n dispatch(setExplanationSlidesCompletedForSession(true))\n dispatch(setActivityIsCompleteForSession(false))\n setHasStartedReadPassageStep(true)\n setShowReadTheDirectionsButton(true)\n setScrolledToEndOfPassage(false)\n setStudentHighlights([])\n setDoneHighlighting(false)\n setHasStartedPromptsSteps(false)\n setCompleteButtonClicked(false)\n }\n\n function preparePreviewBecauseStep() {\n dispatch(setPreviewSessionStep(BECAUSE))\n dispatch(setActiveStepForSession(2))\n dispatch(setExplanationSlidesCompletedForSession(true))\n dispatch(setActivityIsCompleteForSession(false))\n setHasStartedReadPassageStep(true)\n setShowReadTheDirectionsButton(false)\n setScrolledToEndOfPassage(true)\n setDoneHighlighting(true)\n setHasStartedPromptsSteps(true)\n setCompleteButtonClicked(false)\n setCompletedSteps([1])\n }\n\n function preparePreviewButStep() {\n dispatch(setPreviewSessionStep(BUT))\n dispatch(setActiveStepForSession(3))\n dispatch(setExplanationSlidesCompletedForSession(true))\n dispatch(setActivityIsCompleteForSession(false))\n setHasStartedReadPassageStep(true)\n setShowReadTheDirectionsButton(false)\n setScrolledToEndOfPassage(true)\n setDoneHighlighting(true)\n setHasStartedPromptsSteps(true)\n setCompleteButtonClicked(false)\n setCompletedSteps([1, 2])\n }\n\n function preparePreviewSoStep() {\n dispatch(setPreviewSessionStep(SO))\n dispatch(setActiveStepForSession(4))\n dispatch(setExplanationSlidesCompletedForSession(true))\n dispatch(setActivityIsCompleteForSession(false))\n setHasStartedReadPassageStep(true)\n setShowReadTheDirectionsButton(false)\n setScrolledToEndOfPassage(true)\n setDoneHighlighting(true)\n setHasStartedPromptsSteps(true)\n setCompleteButtonClicked(false)\n setCompletedSteps([1, 2, 3])\n }\n\n React.useEffect(() => {\n const { previewSessionStep } = session;\n\n if(previewSessionStep === INTRODUCTION) {\n preparePreviewIntroductionStep()\n } else if(previewSessionStep === CHECKLIST) {\n preparePreviewChecklistStep()\n } else if(previewSessionStep === READ_AND_HIGHLIGHT) {\n preparePreviewReadAndHighlightStep()\n } else if(previewSessionStep === BECAUSE) {\n preparePreviewBecauseStep()\n } else if (previewSessionStep === BUT) {\n preparePreviewButStep()\n } else if (previewSessionStep === SO) {\n preparePreviewSoStep()\n }\n\n }, [session.previewSessionStep])\n\n function handleReadTheDirectionsButtonClick(e) {\n // prevents firing when clicking back to read and highlight step again during preview mode\n if(!e && previewMode) { return }\n setShowReadTheDirectionsButton(false)\n }\n\n function resetTimers(e=null) {\n const now = Date.now()\n const { activeStep } = session;\n if (completedSteps.includes(activeStep)) { return } // don't want to add time if a user is revisiting a previously completed step\n if (outOfAttemptsForActivePrompt(activeStep, session, activities)) { return } // or if they are finished submitting responses for the current active step\n if (activeStep > READ_PASSAGE_STEP_NUMBER && !hasStartedPromptSteps) { return } // or if they are between the read passage step and starting the prompts\n\n let elapsedTime = now - startTime\n if (isIdle) {\n elapsedTime = 0\n }\n const { explanationSlidesCompleted } = session;\n const activeStepKey = explanationSlidesCompleted ? activeStep : ONBOARDING\n const newTimeTracking = {...timeTracking, [activeStepKey]: timeTracking[activeStepKey] + elapsedTime}\n\n setTimeTracking(newTimeTracking)\n setIsIdle(false)\n setStartTime(now)\n inactivityTimerReset()\n\n return Promise.resolve(true);\n }\n\n function inactivityTimerReset() {\n if (inactivityTimer.current) { clearTimeout(inactivityTimer.current) }\n inactivityTimer.current = setTimeout(setIdle, 30000) // time is in milliseconds (1000 is 1 second)\n }\n\n function setIdle() {\n setIsIdle(true)\n setStartTime(Date.now())\n inactivityTimerReset()\n }\n\n function handlePostTurkSession(activitySessionId: string) {\n const turkingRoundID = getParameterByName('id', window.location.href);\n postTurkSession(turkingRoundID, activitySessionId).then(response => {\n const { error } = response;\n if(error) {\n alert(`${error}`);\n }\n });\n }\n\n function defaultHandleFinishActivity() {\n const { sessionID, submittedResponses, } = session\n const { currentActivity, topicOptimalData } = activities\n const conceptResults = generateConceptResults(currentActivity, submittedResponses, topicOptimalData)\n const percentage = generatePercentageScore(conceptResults)\n const data = {\n time_tracking: {\n onboarding: roundMillisecondsToSeconds(timeTracking[ONBOARDING]),\n reading: roundMillisecondsToSeconds(timeTracking[READ_PASSAGE_STEP_NUMBER]),\n because: roundMillisecondsToSeconds(timeTracking[2]),\n but: roundMillisecondsToSeconds(timeTracking[3]),\n so: roundMillisecondsToSeconds(timeTracking[4]),\n },\n student_highlights: studentHighlights\n }\n const callback = handleFinishActivity ? handleFinishActivity : () => {}\n dispatch(completeActivitySession(sessionID, currentActivity.parent_activity_id, percentage, conceptResults, data, callback))\n }\n\n function loadPreviousSession(data) {\n const { activeStep } = session;\n const highlights = data.studentHighlights || studentHighlights\n // if the student hasn't gotten to the highlighting stage yet,\n // we don't want them to skip seeing the directions modal and reading the passage again\n const studentHasAtLeastStartedHighlighting = (highlights && highlights.length) || shouldSkipToPrompts\n dispatch(setActiveStepForSession(data.activeStep || activeStep))\n setCompletedSteps(data.completedSteps || completedSteps)\n setTimeTracking(data.timeTracking || timeTracking)\n setStudentHighlights(highlights)\n setHasStartedReadPassageStep(studentHasAtLeastStartedHighlighting)\n setScrolledToEndOfPassage(studentHasAtLeastStartedHighlighting)\n setDoneHighlighting((studentHasAtLeastStartedHighlighting && highlights.length >= MINIMUM_STUDENT_HIGHLIGHT_COUNT) || shouldSkipToPrompts)\n }\n\n function activateStep(step) { dispatch(setActiveStepForSession(step)) }\n\n function submitResponse(entry: string, promptID: string, promptText: string, attempt: number, currentActivity: object) {\n const { sessionID, } = session\n const activityUID = getUrlParam('uid', location, isTurk)\n const previousFeedback = session.submittedResponses[promptID] || [];\n // strip any HTML injected by browser extensions (such as Chrome highlight)\n const strippedEntry = stripHtml(entry).result;\n if (activityUID) {\n const args = {\n sessionID,\n activityUID,\n entry: strippedEntry,\n promptID,\n promptText,\n attempt,\n previousFeedback,\n callback: submitResponseCallback,\n activityVersion: currentActivity?.version,\n }\n dispatch(getFeedback(args))\n }\n }\n\n function trackPassageReadEvent() {\n const { sessionID, } = session\n const activityUID = getUrlParam('uid', location, isTurk)\n\n if(!previewMode) {\n dispatch(TrackAnalyticsEvent(Events.EVIDENCE_PASSAGE_READ, {\n activityID: activityUID,\n sessionID: sessionID\n }));\n }\n }\n\n function trackCurrentPromptStartedEvent() {\n const { activeStep } = session;\n const trackingParams = getCurrentStepDataForEventTracking({ activeStep, activities, session, isTurk })\n if (!trackingParams) return; // Bail if there's no data to track\n\n if(!previewMode) {\n dispatch(TrackAnalyticsEvent(Events.EVIDENCE_PROMPT_STARTED, trackingParams))\n }\n }\n\n function trackCurrentPromptCompletedEvent() {\n const { activeStep } = session;\n const trackingParams = getCurrentStepDataForEventTracking({ activeStep, activities, session, isTurk })\n if (!trackingParams) return; // Bail if there's no data to track\n\n if(!previewMode) {\n dispatch(TrackAnalyticsEvent(Events.EVIDENCE_PROMPT_COMPLETED, trackingParams))\n }\n }\n\n function trackActivityCompletedEvent() {\n const { sessionID, } = session\n const activityID = getUrlParam('uid', location, isTurk)\n if(!previewMode) {\n dispatch(TrackAnalyticsEvent(Events.EVIDENCE_ACTIVITY_COMPLETED, {\n activityID,\n sessionID\n }));\n }\n dispatch(setActivityIsCompleteForSession(true));\n if(!previewMode) {\n defaultHandleFinishActivity()\n } else if(previewMode && session.previewSessionStep === SO) {\n dispatch(setPreviewSessionStep('complete'))\n }\n }\n\n function completeStep(stepNumber: number) {\n const newCompletedSteps = completedSteps.concat(stepNumber)\n const uniqueCompletedSteps = Array.from(new Set(newCompletedSteps))\n trackCurrentPromptCompletedEvent()\n setCompletedSteps(uniqueCompletedSteps)\n // we only want to render the step summary list again after completing the because and but prompts\n if(stepNumber > READ_PASSAGE_STEP_NUMBER && stepNumber < SO_PASSAGE_STEP_NUMBER) {\n setShowStepsSummary(true);\n }\n // preview mode actions\n if(previewMode && stepNumber === 1) {\n preparePreviewBecauseStep()\n } else if(previewMode && stepNumber === 2) {\n preparePreviewButStep()\n } else if(previewMode && stepNumber === 3) {\n preparePreviewSoStep()\n }\n }\n\n function handleClick(e) {\n if (showReadTheDirectionsButton && e.target.className.indexOf('read-the-directions-modal') === -1) {\n handleReadTheDirectionsButtonClick()\n }\n\n resetTimers(e)\n }\n\n function handleKeyDown(e) {\n if (e.key !== 'Tab' || showFocusState) { return }\n\n setShowFocusState(true)\n }\n\n function handleDoneReadingClick() {\n completeStep(READ_PASSAGE_STEP_NUMBER)\n const scrollContainer = document.getElementsByClassName(\"read-passage-container\")[0]\n scrollContainer.scrollTo(0, 0)\n if(!previewMode) {\n trackPassageReadEvent();\n }\n }\n\n function onStartReadPassage(e) {\n e.stopPropagation()\n if (previewMode) {\n preparePreviewReadAndHighlightStep()\n } else {\n setHasStartedReadPassageStep(true)\n setShowReadTheDirectionsButton(true)\n }\n }\n\n function onStartPromptSteps() {\n if(previewMode) {\n preparePreviewBecauseStep()\n } else {\n setHasStartedPromptsSteps(true)\n }\n }\n\n function submitProblemReport(args) {\n const { sessionID, } = session\n const lastSubmittedResponse = getLastSubmittedResponse({ activities, session, activeStep });\n const isOptimal = lastSubmittedResponse && lastSubmittedResponse.optimal;\n reportAProblem({...args, sessionID, isOptimal})\n }\n\n function handleClickDoneHighlighting() {\n setDoneHighlighting(true)\n }\n\n function scrollToStep(ref: string) {\n if (onMobile()) {\n scrollToStepOnMobile(ref)\n } else {\n const scrollContainer = document.getElementsByClassName(\"steps-outer-container\")[0]\n const el = refs[ref]\n\n if (scrollContainer) {\n scrollContainer.scrollTo(0, el.offsetTop - 34)\n }\n }\n }\n\n function scrollToHighlight() {\n const passageHighlights = document.getElementsByClassName('passage-highlight')\n if (!passageHighlights.length) { return }\n\n const el = passageHighlights[0].parentElement\n\n // we want to scroll 24px above the top of the paragraph, but we have to use 84 because of the 60px padding set at the top of the activity-container element\n const additionalTopOffset = 84\n\n if (onMobile()) {\n el.scrollIntoView(true)\n window.scrollBy(0, -additionalTopOffset)\n } else {\n const scrollContainer = document.getElementsByClassName(\"read-passage-container\")[0]\n scrollContainer.scrollTo(0, el.offsetTop - additionalTopOffset)\n }\n }\n\n function callSaveActiveActivitySession() {\n // we don't want to save an active activity session during preview mode because it will cause inconsistent behavior if page is refreshed\n if(previewMode) { return }\n\n const args = {\n completedSteps,\n timeTracking,\n studentHighlights,\n }\n dispatch(saveActiveActivitySession(args))\n }\n\n function submitResponseCallback() {\n callSaveActiveActivitySession()\n }\n\n function scrollToStepOnMobile(ref: string) {\n refs[ref].current ? refs[ref].current.scrollIntoView(false) : null\n }\n\n function handleHighlightKeyDown(e) {\n if (e.key !== 'Enter') { return }\n toggleStudentHighlight(e.currentTarget.textContent)\n }\n\n function handleHighlightClick(e) {\n toggleStudentHighlight(e.currentTarget.textContent)\n }\n\n function toggleStudentHighlight(stringText) {\n const textWithHighlightContentRemoved = stringText.replace(STUDENT_HIGHLIGHT_STARTS_TEXT, '').replace(STUDENT_HIGHLIGHT_ENDS_TEXT, '')\n let newHighlights = []\n\n if (studentHighlights.includes(textWithHighlightContentRemoved)) {\n newHighlights = studentHighlights.filter(hl => hl !== textWithHighlightContentRemoved)\n } else {\n newHighlights = studentHighlights.concat(stringText)\n }\n\n setStudentHighlights(newHighlights)\n }\n\n function toggleShowStepsSummary() {\n setShowStepsSummary(!showStepsSummary)\n }\n\n React.useEffect(() => {\n if (studentHighlights.length === 0 ) { return }\n callSaveActiveActivitySession()\n }, [studentHighlights])\n\n function stringifiedInnerElementsHelper(node) {\n if (node.data) { return node.data }\n if (node.children.length > 0) { return node.children.map(n => stringifiedInnerElementsHelper(n)).join(''); }\n return ''\n }\n\n function transformMarkTags(node) {\n const { activeStep } = session;\n const strippedPassageHighlights = getStrippedPassageHighlights({ activities, session, activeStep });\n\n\n if (['p'].includes(node.name) && activeStep > 1 && strippedPassageHighlights && strippedPassageHighlights.length) {\n const stringifiedInnerElements = node.children.map(n => stringifiedInnerElementsHelper(n)).join('');\n\n if (!stringifiedInnerElements) { return }\n\n const highlightIncludesElement = strippedPassageHighlights.find(ph => ph.includes(stringifiedInnerElements)) // handles case where passage highlight spans more than one paragraph\n const elementIncludesHighlight = strippedPassageHighlights.find(ph => stringifiedInnerElements.includes(ph)) // handles case where passage highlight is only part of paragraph\n\n if (highlightIncludesElement) {\n return (\n \n \n {PASSAGE_HIGHLIGHT_STARTS_TEXT} \n {stringifiedInnerElements}\n {PASSAGE_HIGHLIGHT_ENDS_TEXT} \n \n
\n )\n }\n if (elementIncludesHighlight) {\n let newStringifiedInnerElements = stringifiedInnerElements\n strippedPassageHighlights.forEach(ph => newStringifiedInnerElements = newStringifiedInnerElements.replace(ph, `${PASSAGE_HIGHLIGHT_STARTS_TEXT} ${ph}${PASSAGE_HIGHLIGHT_ENDS_TEXT} `))\n return
\n }\n }\n\n if (node.name === 'mark') {\n const shouldBeHighlightable = !doneHighlighting && !showReadTheDirectionsButton && hasStartedReadPassageStep\n let innerElements = node.children.map((n, i) => convertNodeToElement(n, i, transformMarkTags))\n const stringifiedInnerElements = node.children.map(n => stringifiedInnerElementsHelper(n)).join('');\n let className = ''\n const highlighted = studentHighlights.includes(stringifiedInnerElements)\n if(activeStep === 1 && highlighted) {\n className += ' highlighted'\n const firstElement = {STUDENT_HIGHLIGHT_STARTS_TEXT} \n const lastElement = {STUDENT_HIGHLIGHT_ENDS_TEXT} \n innerElements = [firstElement, ...innerElements, lastElement]\n }\n className += shouldBeHighlightable ? ' highlightable' : ''\n if (!shouldBeHighlightable) { return {innerElements} }\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role */\n return {innerElements} \n }\n }\n\n function handleExplanationSlideClick() {\n const nextStep = explanationSlideStep + 1;\n if (nextStep > 3 && previewMode) {\n preparePreviewChecklistStep()\n } else if (nextStep > 3) {\n dispatch(setExplanationSlidesCompletedForSession(true))\n } else {\n setExplanationSlideStep(nextStep)\n }\n }\n\n const { submittedResponses, sessionID, explanationSlidesCompleted, activeStep, activityIsComplete } = session;\n\n if (!activities.hasReceivedData) { return }\n\n const className = `activity-container ${showFocusState ? '' : 'hide-focus-outline'} ${activeStep === READ_PASSAGE_STEP_NUMBER ? 'on-read-passage' : ''}`\n\n if(!explanationSlidesCompleted) {\n if (explanationSlideStep === 0) {\n return \n }\n return(\n \n );\n }\n\n if(completeButtonClicked && !window.location.href.includes('turk')) {\n return(\n \n );\n }\n\n const completionButtonCallback = () => {\n setCompleteButtonClicked(true)\n }\n\n return (\n \n {renderDirections({\n handleReadTheDirectionsButtonClick,\n activeStep,\n doneHighlighting,\n showReadTheDirectionsButton,\n activities,\n hasStartedReadPassageStep,\n hasStartedPromptSteps\n })}\n \n \n
\n )\n\n}\n\nconst mapStateToProps = (state: any) => {\n return {\n activities: state.activities,\n session: state.session\n };\n};\n\nconst mapDispatchToProps = (dispatch: any) => {\n return {\n dispatch\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StudentViewContainer);\n","import * as React from \"react\";\n\nimport { Snackbar, copyToClipboard } from '../../../Shared/index';\n\nexport const TurkCompleted = ({ code }) => {\n const [snackBarVisible, setSnackBarVisible] = React.useState(false);\n\n function handleCopyToClipboard(e: React.MouseEvent) {\n copyToClipboard(e, setSnackBarVisible);\n };\n\n return(\n \n
Activity Completed! \n
Thank you for completing this activity.
\n
Your responses will be used to develop our system so that millions of students around the world can improve their reading and writing skills.
\n
Survey code:
\n
{code}
\n {/* Logical shortcut for only displaying the button if the copy command exists */}\n {document.queryCommandSupported('copy') &&\n
\n Copy \n \n
}\n
\n );\n}\n\nexport default TurkCompleted;\n","import * as React from \"react\";\nconst checkIcon = ;\n\nconst ListElement = (text: string, textArray?: string[], style?: string) => {\n const textElement = textArray ? {textArray[0]}
{text}
{textArray[1]}
: {text}
;\n return(\n \n {checkIcon}\n {textElement}\n \n );\n}\n\nexport const TurkLanding = ({ handleStartActivity}) => {\n return(\n \n \n Quill Activity - Beta Testing of New Content \n You are completing a reading and writing activity. Your responses will be used to develop our system so that millions of students around the world can improve their reading and writing skills.
\n \n \n Directions: \n You should:
\n \n {ListElement('Read the passage')}\n {ListElement('Complete all three sentences')}\n {ListElement('Analyze the feedback provided')}\n {ListElement('five', ['Use the feedback to revise each sentence up to', ' times'])}\n \n Each of your sentences
must
\n \n {ListElement('one', ['Be ', ' sentence long'])}\n {ListElement('Use proper capitalization (i.e. do not write in capital letters)')}\n {ListElement('Be based on the text, but written in your own words')}\n \n \n \n \n )\n}\n\nexport default TurkLanding;\n","import queryString from 'query-string';\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\n\nimport TurkCompleted from './completed';\nimport TurkLanding from './landing';\n\nimport validateTurkSession from '../../utils/turkAPI';\nimport StudentView from '../studentView/container';\n\nexport const TurkerView = ({ session }) => {\n const { sessionID } = session;\n const [activityStarted, setActivityStarted] = React.useState(false);\n const [activityCompleted, setActivityCompleted] = React.useState(false);\n\n function handleStartActivity() {\n setActivityStarted(true);\n }\n\n function handleFinishActivity() {\n setActivityCompleted(true);\n }\n\n function redirectIfInvalid(isValid) {\n if (!isValid) {\n window.location.href = `${window.postbuildEnv.DEFAULT_URL}/404`\n }\n }\n\n function validateUrl() {\n const search = window.location.href.split('?').pop()\n if (!search) { return }\n\n validateTurkSession(queryString.parse(search).id, queryString.parse(search).uid, redirectIfInvalid)\n }\n\n function componentToShow() {\n validateUrl()\n\n if (!activityStarted) { return }\n\n if (activityStarted && !activityCompleted) { return }\n\n return \n }\n\n return(\n \n {componentToShow()}\n
\n )\n}\n\nconst mapStateToProps = (state: any) => {\n return {\n session: state.session\n };\n};\n\nexport default connect(mapStateToProps, {})(TurkerView);\n","import * as React from \"react\";\nimport { RouteConfig } from \"react-router-config\";\nimport { Route, Switch } from \"react-router-dom\";\nimport PageLayout from \"./components/PageLayout\";\nimport StudentView from './components/studentView/container';\nimport TurkerView from './components/turkerView';\n\nexport const routes: RouteConfig[] = [\n {\n path: \"/play\",\n component: (props: any) => ( )\n },\n {\n path: \"/turk\",\n component: (props: any) => ( )\n }\n];\n\nexport const route = (user: string) => {\n return(\n \n } path=\"/\" />\n \n );\n}\n","import { ActionTypes, IInitStoreAction } from './actionTypes'\n\nexport const initStoreAction = (): IInitStoreAction => {\n return {type: ActionTypes.INIT_STORE}\n}\n","import { Action } from \"redux\";\nimport { ActionTypes } from \"../actions/actionTypes\";\n\nimport { Activity } from '../interfaces/activities';\n\nexport interface ActivitiesReducerState {\n hasReceivedData: boolean;\n currentActivity?: Activity;\n error?: string;\n}\n\ntype ActivityAction = Action & { data: any } & { cid: string }\n\nexport default (\n currentState = { hasReceivedData: false },\n action: ActivityAction\n) => {\n switch (action.type) {\n case ActionTypes.RECEIVE_ACTIVITY_DATA:\n return Object.assign({}, currentState, { currentActivity: action.data, hasReceivedData: true });\n case ActionTypes.NO_ACTIVITY_FOUND:\n return Object.assign({}, currentState, { error: 'No activity found.'})\n case ActionTypes.RECEIVE_TOPIC_OPTIMAL_DATA:\n return Object.assign({}, currentState, { topicOptimalData: action.data });\n default:\n return currentState;\n }\n};\n","import { Action } from \"redux\";\nimport { v4 as uuid4 } from \"uuid\";\n\nimport { READ_PASSAGE_STEP_NUMBER } from '../../Shared/index';\nimport { ActionTypes } from \"../actions/actionTypes\";\nimport getParameterByName from '../helpers/getParameterByName';\nimport { FeedbackObject } from '../interfaces/feedback';\n\nexport interface SessionReducerState {\n sessionID: string\n submittedResponses: { [key: string]: FeedbackObject[] }|{}\n activeStep: number,\n previewSessionStep: string,\n explanationSlidesCompleted: boolean,\n activityIsComplete: boolean\n}\n\ntype SessionAction = Action & {\n promptID: string,\n feedbackObj: FeedbackObject,\n sessionID: string,\n submittedResponses: SessionReducerState[\"submittedResponses\"]\n activeStep: number,\n previewSessionStep: string,\n explanationSlidesCompleted: boolean,\n activityIsComplete: boolean\n}\n\nconst shouldSkipToPrompts = window.location.href.includes('turk') || window.location.href.includes('skipToPrompts') || window.location.href.includes('skipToStep')\nconst activityCompletionCount = parseInt(getParameterByName('activities', window.location.href)) || 0;\nconst ACTIVITY_COMPLETION_MAXIMUM_FOR_ONBOARDING = 3;\n\nexport default (\n currentState: SessionReducerState = {\n // Currently we want to initialize a random session for each\n // page load\n sessionID: uuid4(),\n submittedResponses: {},\n activeStep: shouldSkipToPrompts ? parseInt(getParameterByName('skipToStep', window.location.href)) || READ_PASSAGE_STEP_NUMBER + 1 : READ_PASSAGE_STEP_NUMBER,\n explanationSlidesCompleted: shouldSkipToPrompts || (activityCompletionCount > ACTIVITY_COMPLETION_MAXIMUM_FOR_ONBOARDING),\n activityIsComplete: false,\n previewSessionStep: null\n },\n action: SessionAction\n) => {\n switch (action.type) {\n case ActionTypes.SET_ACTIVITY_SESSION_ID:\n const { sessionID, } = action\n return Object.assign({}, currentState, { sessionID });\n case ActionTypes.SESSION_HAS_NO_DATA:\n return Object.assign({}, currentState, { hasReceivedData: true });\n case ActionTypes.SET_SUBMITTED_RESPONSES:\n const { submittedResponses, } = action\n return Object.assign({}, currentState, { explanationSlidesCompleted: true, submittedResponses, hasReceivedData: true });\n case ActionTypes.RECORD_FEEDBACK:\n const { promptID, feedbackObj, } = action\n const submittedResponsesForPrompt = currentState.submittedResponses[promptID] || []\n submittedResponsesForPrompt.push(feedbackObj)\n const newResponses = Object.assign({}, currentState.submittedResponses, { [promptID]: submittedResponsesForPrompt })\n return Object.assign({}, currentState, { submittedResponses: newResponses });\n case ActionTypes.SET_ACTIVE_STEP:\n const { activeStep } = action\n return Object.assign({}, currentState, { activeStep });\n case ActionTypes.SET_PREVIEW_SESSION_STEP:\n const { previewSessionStep } = action\n return Object.assign({}, currentState, { previewSessionStep });\n case ActionTypes.SET_EXPLANATIONS_SLIDES_COMPLETED:\n const { explanationSlidesCompleted } = action\n return Object.assign({}, currentState, { explanationSlidesCompleted });\n case ActionTypes.SET_ACTIVITY_IS_COMPLETE_FOR_SESSION:\n const { activityIsComplete } = action\n return Object.assign({}, currentState, { activityIsComplete });\n default:\n return currentState;\n }\n};\n","import { combineReducers } from \"redux\";\nimport { IState } from \"../store/configStore\";\nimport activities from './activitiesReducer';\nimport session from './sessionReducer';\n\nexport const initState: IState = {\n activities: {},\n session: {}\n};\n\nexport const rootReducer = combineReducers({\n activities,\n session\n});\n","import { Action, Dispatch, applyMiddleware, createStore } from \"redux\";\nimport { composeWithDevTools } from \"redux-devtools-extension/developmentOnly\";\nimport thunk from \"redux-thunk\";\nimport { initStoreAction } from \"../actions/actions\";\nimport { rootReducer } from \"../reducers/rootReducer\";\n\nexport interface IState {\n}\n\nexport const initStore = () => {\n return (dispatch: Dispatch>) => {\n const initialState = {\n }\n return dispatch(initStoreAction(initialState));\n };\n};\n\nexport const configureStore = () => {\n if (window.postbuildEnv.NODE_ENV === \"production\") {\n return createStore(\n rootReducer,\n applyMiddleware(thunk),\n );\n } else {\n return createStore(\n rootReducer,\n composeWithDevTools(\n applyMiddleware(thunk),\n ),\n );\n }\n};\n","import * as React from \"react\";\nimport { QueryClientProvider } from 'react-query';\nimport { Provider } from \"react-redux\";\nimport { HashRouter } from \"react-router-dom\";\nimport { CompatRouter } from \"react-router-dom-v5-compat\";\n\nimport { DefaultReactQueryClient } from '../Shared';\nimport { route } from \"./routes\";\nimport { configureStore, initStore } from \"./store/configStore\";\n\nconst store = configureStore();\nstore.dispatch(initStore());\nconst queryClient = new DefaultReactQueryClient();\n\nclass App extends React.Component<{user: string}, {}> {\n public render(): JSX.Element {\n const { user } = this.props;\n return (\n \n \n \n \n {route(user)}\n \n \n \n \n );\n }\n}\n\nexport default App;\n","import ReactOnRails from 'react-on-rails';\nimport App from './App.tsx';\n\nReactOnRails.register({ App, });\n"],"names":["READ_PASSAGE_STEP","getUrlParam","paramName","location","isTurk","getParameterByName","search","queryString","onMobile","orderedSteps","activities","currentActivity","a","b","outOfAttemptsForActivePrompt","activeStep","session","submittedResponses","activePrompt","responsesForPrompt","lastAttempt","getCurrentStepDataForEventTracking","sessionID","activityID","promptIndex","promptID","addPTagsToPassages","passages","scrolledToEndOfPassage","passage","text","paragraphArray","p","i","everyOtherStepCompleted","stepNumber","completedSteps","s","getLastSubmittedResponse","activePromptId","submittedResponsesForActivePrompt","getStrippedPassageHighlights","lastSubmittedResponse","passageHighlights","hl","highlight","stripHtml","logoSrc","mobileLogoSrc","helpIcon","checkIcon","whiteCheckGreenBackgroundIcon","Header","React.Component","props","dispatch","previewShowing","TrackAnalyticsEvent","Events","onTogglePreview","step","React.createElement","READ_PASSAGE_STEP_NUMBER","BECAUSE_PASSAGE_STEP_NUMBER","BUT_PASSAGE_STEP_NUMBER","SO_PASSAGE_STEP_NUMBER","isTeacher","explanationSlidesCompleted","activityIsComplete","showStepsCounter","isNotTurk","tooltipTrigger","showTeacherPreviewMenuButton","mobileStyle","Tooltip","TeacherPreviewMenuButton","mapStateToProps","state","mapDispatchToProps","Header$1","connect","PageLayout","user","turkSession","isPlaying","data","useQuery","fetchUserRole","isTeacherOrAdmin","setPreviewShowing","React.useState","questionToPreview","setQuestionToPreview","INTRODUCTION","React.useEffect","handleSkipToMainContentClick","element","handleTogglePreviewMenu","handleToggleQuestion","showPreview","contentClass","isOnMobile","ScreenreaderInstructions","TeacherPreviewMenu","renderRoutes","routes","baseImgSrc","checkMarkSrc","SURVEY_QUESTION","emojis","positiveMultipleChoiceOptions","negativeMultipleChoiceOptions","EmojiButton","src","alt","emojiNumber","setSelectedEmoji","selectedEmoji","handleClick","MultipleChoiceOption","selectedMultipleChoiceOptions","setSelectedMultipleChoiceOptions","optionIsSelected","opt","handleCheckboxClick","newSelectedMultipleChoiceOptions","checkbox","ActivitySurvey","activity","saveActivitySurveyResponse","setSubmittedActivitySurvey","resultPageUrl","containerRef","setContainerFocus","useFocus","mapMultipleChoiceOptionsForEventParams","options","option","key","handleSend","activitySurveyResponse","trackingParams","callback","handleLinkClick","activitySurveyHeader","multipleChoiceSection","multipleChoiceElements","emojiButtons","emoji","sendButtonClassName","conjunctions","BECAUSE","BUT","SO","PostActivitySlide","previewMode","prompts","responses","getStrongExemplar","conjunction","property","prompt","conjunctionRegex","stemWithoutConjunction","exemplar","getResponsesForConjunction","responsesKeyHash","responsesKeys","conjunctionString","getResponse","lastResponseText","splitResponse","renderResponseAndExamplarsSection","FIRST_STRONG_EXAMPLE","SECOND_STRONG_EXAMPLE","buttonClass","applaudingSrc","ThankYouSlide","backToDashboard","ActivityFollowUp","userRole","showActivitySurvey","setShowActivitySurvey","submittedActivitySurvey","onClickNext","getDefaults","defaults","changeDefaults","newDefaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","escape","html","encode","unescapeTest","unescape","_","caret","edit","regex","obj","name","val","nonWordAndColonTest","originIndependentUrl","cleanUrl","sanitize","base","href","prot","resolveUrl","baseUrls","justDomain","protocol","domain","rtrim","relativeBase","noopTest","merge","target","splitCells","tableRow","count","row","match","offset","str","escaped","curr","cells","c","invert","l","suffLen","currChar","findClosingBracket","level","checkSanitizeDeprecation","repeatString","pattern","result","outputLink","cap","link","raw","lexer","title","token","indentCodeCompensation","matchIndentToCode","indentToCode","node","matchIndentInNode","indentInNode","Tokenizer","trimmed","istask","ischecked","indent","blankLine","endsWithBlankLine","line","nextLine","rawLine","itemContents","endEarly","bull","isordered","list","itemRegex","nextBulletRegex","hrRegex","fencesBeginRegex","headingBeginRegex","spacers","t","hasMultipleLineBreaks","chars","lineBreaks","char","item","j","k","trimmedUrl","rtrimSlash","lastParenIndex","linkLen","links","maskedSrc","prevChar","nextChar","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","hasNonSpaceChars","hasSpaceCharsOnBothEnds","mangle","prevCapZero","smartypants","block","inline","out","Lexer","rules","next","tokens","leading","tabs","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","Renderer","code","infostring","lang","quote","slugger","id","body","ordered","start","type","startatt","checked","header","content","flags","TextRenderer","Slugger","value","originalSlug","isDryRun","slug","occurenceAccumulator","Parser","parser","top","l2","l3","cell","loose","itemBody","task","ret","renderer","marked","e","done","err","pending","onError","args","opts","extensions","hasExtensions","pack","ext","prevRenderer","prop","tokenizer","prevTokenizer","walkTokens","values","childTokens","HeaderImage","headerImage","imageUrlToVisit","setImageUrlToVisit","imageAttributionModalOpen","setImageAttributionModalOpen","handleStayClick","handleLeaveClick","handleImageAttributionClick","renderImageAttributionModal","Modal","tooltipText","React.Fragment","ReadPassageContainer","handleReadPassageContainerScroll","hasStartedPromptSteps","hasStartedReadPassageStep","showReadTheDirectionsButton","transformMarkTags","innerContainerClassName","innerPassageShouldBeBlurred","formattedPassages","formattedPassage","ReactHtmlParser","MINIMUM_STUDENT_HIGHLIGHT_COUNT","ReadAndHighlightTracker","studentHighlights","handleClickDoneHighlighting","handleReadTheDirectionsButtonClick","minimumMet","doneButton","bigCheckIcon","BottomNavigation","doneHighlighting","handleDoneReadingClick","handleStartPromptStepsClick","handleStartReadingPassageClick","inReflection","showStepsSummary","toggleShowStepsSummary","promptDirections","highlightDirections","renderDirections","directionElementsArray","essentialKnowledgeSection","essential_knowledge_text","informationIcon","DirectionsSection","className","uniquePartOfHighlightPrompt","DEFAULT_HIGHLIGHT_PROMPT","DisplayStudentHighlight","studentHighlight","removeHighlight","handleClickRemove","removeIcon","ReadAndHighlightInstructions","handleRemoveHighlightClick","highlightText","studentHighlightsOrHighlightInstructions","readAndHighlightContainerClassName","sh","steps","Step","active","completed","StepOverview","EditorContainer","disabled","innerRef","handleTextChange","handleFocus","handleKeyDown","ContentEditable","canUseDOM","prev","fallback","fn","ms","handle","vendors","rafImpl","getKey","vendor","rafMethod","cb","request","hasClass","addClass","replaceClassName","origClass","classToRemove","removeClass","ownerDocument","ownerWindow","doc","getComputedStyle","psuedoElement","rUpper","hyphenate","string","msPattern","hyphenateStyleName","style","optionsSupported","onceSupported","addEventListener","eventName","handler","once","capture","wrappedHandler","onceHandler","event","removeEventListener","listen","triggerEvent","bubbles","cancelable","parseDuration","css","mult","emulateTransitionEnd","duration","padding","called","remove","transitionEnd","removeEmulate","transitionTimeout","transitionType","timeoutPropName","enabledPropName","nameShape","PropTypes","_typeof","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","source","_defineProperty","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","o","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","call","_assertThisInitialized","events","addEndListener","listener","propTypes","CSSTransitionGroupChild","_React$Component","_super","_this","timeout","animationType","finishCallback","findDOMNode","activeClassName","timer","removeListeners","finish","_this2","raf","_this3","React","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","ReactCSSTransitionReplace","_assertThisInitialize","currentChildNode","nextProps","nextChild","currentChild","_this$state","currentKey","prevChildren","nextState","keysToLeave","child","moreProps","transitionName","ReactCSSTransitionReplaceChild","_this$state2","height","width","childrenToRender","_this$props","overflowHidden","component","childComponent","notifyLeaving","containerProps","transitioning","heightClassName","positionAbsolute","r","loopSrc","smallCheckCircleSrc","closeIconSrc","informationSrc","lightbulbSrc","reportAProblemOptions","optimal","ReportAProblemOption","handleSelectProblem","madeLastAttemptAndItWasSuboptimal","feedbackToShow","customFeedback","GRAMMAR","SPELLING","RULES_BASED_3","EVIDENCE_SUBOPTIMAL_SPELLING_OR_GRAMMAR_FINAL_ATTEMPT_FEEDBACK","feedbackForInnerHTML","feedback","Feedback","customFeedbackKey","reportAProblem","entry","hint","reportAProblemExpanded","setReportAProblemExpanded","reportSubmitted","setReportSubmitted","toggleReportAProblemExpanded","report","entryWithoutStem","imageSrc","imageAlt","reportAProblemButton","reportAProblemSection","reportAProblemOptionElements","label","headsUpSection","hintSection","explanation","image_alt_text","image_link","screenreaderPassageHighlightText","screenreaderResponseHighlightText","h","responseHighlights","TEXT_TYPE","saveSelection","containerEl","saveSelectionForWindowSelection","saveSelectionForDocumentSelection","range","preSelectionRange","selectedTextRange","preSelectionTextRange","restoreSelection","savedSel","restoreSelectionForWindowSelection","restoreSelectionForDocumentSelection","charIndex","nodeStack","foundStart","stop","nextCharIndex","sel","textRange","EditCaretPositioning","highlightSpelling","wordsToFormat","wordArray","newString","word","matched","augmentedRegex","highlightGrammar","highlightArray","promptLength","descendingOffsetComparator","stringAfterOffset","stringBeforeOffset","phraseToFormat","stripEvidenceHtml","RESPONSE","PROMPT","DIRECTIONS","APPROACHING_LIMIT_MESSAGE","OVER_LIMIT_MESSAGE","WARNING_THRESHOLD","LIMIT_THRESHOLD","MAX_ATTEMPTS","SLOW_FEEDBACK_CONSTRAINT","FEEDBACK_LOADING_LIMIT","PromptStep","lastSubmission","filteredHighlights","boldedString","escapeRegexCharacters","strippedPrompt","caretPosition","lastSpaceCorrectedValue","htmlStrippedPrompt","splitSubmission","newValue","formattedPromptWordArray","textWordArray","diffIndices","newTextWordArray","textToAddAfterPromptText","originalIndex","diffWordEquivalent","diffWordWithoutHtmlLettersArray","diffWordEquivalentWithoutHtmlLettersArray","indexOfLettersToKeepFromDiffWord","letter","partOfDiffWordToKeep","restOfSubmission","el","promptId","promptText","submitResponse","prevState","numberOfSubmissions","ctrlKey","metaKey","activateStep","completeStep","textWithoutStem","textForCharacterCount","spaceAtEnd","submissionTime","timeAtLastFeedbackSubmissionCheck","timeLapsed","completionButtonCallback","max_attempts","responseOverCharacterLimit","failedToLoadFeedback","awaitingFeedback","buttonLoadingSpinner","ButtonLoadingSpinner","buttonCopy","onClick","ariaLabel","characterCount","characterCountClassName","message","outOfAttempts","formattedText","htmlWithBolding","rawTextWithoutStem","attemptsCount","maxAttemptCount","React.createRef","renderDirectionsSection","renderReadPassageStep","PromptStepContainer","hasReceivedData","Steps","resetTimers","promptStepContainerProps","RightPanel","onStartPromptSteps","onStartReadPassage","toggleStudentHighlight","bottomNavigation","getActivity","activityUID","activityUrl","requestGet","ActionTypes","getTopicOptimalInfo","topicOptimalInfoUrl","generateConceptResults","topicOptimalData","conjunctionToQuestionNumber","conceptResults","response","index","attempt","conceptResultMetadata","generatePercentageScore","questionScores","questionNumber","questionScore","totalScore","acc","score","totalQuestions","postTurkSession","turkingRoundID","activitySessionUID","apiFetch","handleApiError","validateTurkSession","turkingRoundId","activityId","explanationData","Footer","buttonText","onHandleClick","ExplanationSlide","slideData","imageData","isBeta","subtext","imageUrl","WelcomeSlide","welcomeText","LoadingSpinner","ONBOARDING","ALL_STEPS","STUDENT_HIGHLIGHT_STARTS_TEXT","STUDENT_HIGHLIGHT_ENDS_TEXT","PASSAGE_HIGHLIGHT_STARTS_TEXT","PASSAGE_HIGHLIGHT_ENDS_TEXT","StudentViewContainer","handleFinishActivity","skipToSpecificStep","shouldSkipToPrompts","defaultCompletedSteps","sessionFromUrl","refs","React.useRef","inactivityTimer","explanationSlideStep","setExplanationSlideStep","completeButtonClicked","setCompleteButtonClicked","setCompletedSteps","showFocusState","setShowFocusState","setShowStepsSummary","startTime","setStartTime","isIdle","setIsIdle","setStudentHighlights","setScrolledToEndOfPassage","setHasStartedReadPassageStep","setHasStartedPromptsSteps","setDoneHighlighting","setShowReadTheDirectionsButton","timeTracking","setTimeTracking","scrollToHighlight","READ_AND_HIGHLIGHT","observer","fetchActiveActivitySessionArgs","loadPreviousSession","fetchActiveActivitySession","processUnfetchableSession","handlePostTurkSession","KEYDOWN","MOUSEMOVE","MOUSEDOWN","CLICK","KEYPRESS","VISIBILITYCHANGE","setIdle","uniqueCompletedSteps","nextStep","setActiveStepForSession","trackCurrentPromptStartedEvent","callSaveActiveActivitySession","trackActivityCompletedEvent","scrollToStep","preparePreviewIntroductionStep","setPreviewSessionStep","setExplanationSlidesCompletedForSession","setActivityIsCompleteForSession","preparePreviewChecklistStep","CHECKLIST","preparePreviewReadAndHighlightStep","preparePreviewBecauseStep","preparePreviewButStep","preparePreviewSoStep","previewSessionStep","now","elapsedTime","activeStepKey","newTimeTracking","inactivityTimerReset","activitySessionId","error","defaultHandleFinishActivity","percentage","roundMillisecondsToSeconds","completeActivitySession","highlights","studentHasAtLeastStartedHighlighting","previousFeedback","strippedEntry","submitResponseCallback","getFeedback","trackPassageReadEvent","trackCurrentPromptCompletedEvent","newCompletedSteps","submitProblemReport","isOptimal","ref","scrollToStepOnMobile","scrollContainer","additionalTopOffset","saveActiveActivitySession","handleHighlightKeyDown","handleHighlightClick","stringText","textWithHighlightContentRemoved","newHighlights","stringifiedInnerElementsHelper","n","strippedPassageHighlights","stringifiedInnerElements","highlightIncludesElement","ph","elementIncludesHighlight","newStringifiedInnerElements","shouldBeHighlightable","innerElements","convertNodeToElement","highlighted","firstElement","lastElement","handleExplanationSlideClick","StudentView","TurkCompleted","snackBarVisible","setSnackBarVisible","handleCopyToClipboard","copyToClipboard","Snackbar","ListElement","textArray","textElement","TurkLanding","handleStartActivity","TurkerView","activityStarted","setActivityStarted","activityCompleted","setActivityCompleted","redirectIfInvalid","isValid","validateUrl","componentToShow","TurkerView$1","route","Switch","Route","initStoreAction","currentState","action","activityCompletionCount","ACTIVITY_COMPLETION_MAXIMUM_FOR_ONBOARDING","uuid4","feedbackObj","submittedResponsesForPrompt","newResponses","rootReducer","combineReducers","initStore","configureStore","createStore","applyMiddleware","thunk","composeWithDevTools","store","queryClient","DefaultReactQueryClient","App","QueryClientProvider","Provider","HashRouter","CompatRouter","ReactOnRails"],"mappings":"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","x_google_ignoreList":[7,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]}