@pie-element/math-inline 7.0.4-next.72 → 7.1.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/main.js CHANGED
@@ -25,7 +25,7 @@ var _react = _interopRequireDefault(require("react"));
25
25
 
26
26
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
27
 
28
- var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/pie-toolbox/correct-answer-toggle"));
28
+ var _correctAnswerToggle = require("@pie-lib/pie-toolbox/correct-answer-toggle");
29
29
 
30
30
  var _mathInput = require("@pie-lib/pie-toolbox/math-input");
31
31
 
@@ -600,7 +600,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
600
600
  },
601
601
  title: /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
602
602
  className: classes.main
603
- }, showCorrectAnswerToggle && /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
603
+ }, showCorrectAnswerToggle && /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle.CorrectAnswerToggle, {
604
604
  language: language,
605
605
  className: classes.toggle,
606
606
  show: true,
@@ -864,4 +864,4 @@ var styles = function styles(theme) {
864
864
  var _default = (0, _styles.withStyles)(styles)(Main);
865
865
 
866
866
  exports["default"] = _default;
867
- //# sourceMappingURL=main.js.map
867
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzeCJdLCJuYW1lcyI6WyJ0cmFuc2xhdG9yIiwiVHJhbnNsYXRvciIsInJlZ2lzdGVyZWQiLCJORVdMSU5FX0xBVEVYIiwiUkVHRVgiLCJERUZBVUxUX0tFWVBBRF9WQVJJQU5UIiwiSVNfU0FGQVJJIiwidGVzdCIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsImdlbmVyYXRlQWRkaXRpb25hbEtleXMiLCJrZXlEYXRhIiwibWFwIiwia2V5IiwibmFtZSIsImxhdGV4Iiwid3JpdGUiLCJsYWJlbCIsImdldEtleVBhZFdpZHRoIiwiYWRkaXRpb25hbEtleXMiLCJlcXVhdGlvbkVkaXRvciIsIk1hdGgiLCJmbG9vciIsImxlbmd0aCIsInByZXBhcmVGb3JTdGF0aWMiLCJtb2RlbCIsInN0YXRlIiwiY29uZmlnIiwiZGlzYWJsZWQiLCJleHByZXNzaW9uIiwicmVzcG9uc2VzIiwicHJpbnRNb2RlIiwiYWx3YXlzU2hvd0NvcnJlY3QiLCJtb2RlbEV4cHJlc3Npb24iLCJzaG93Q29ycmVjdCIsImFuc3dlciIsImFuc3dlckJsb2NrcyIsInJlcGxhY2UiLCJzZXNzaW9uIiwiYW5zd2VycyIsImJsYW5rU3BhY2UiLCJyZXBlYXQiLCJ2YWx1ZSIsIk1haW4iLCJwcm9wcyIsImNsYXNzZXMiLCJyb290IiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJhbnN3ZXJJZCIsImVsIiwicXVlcnlTZWxlY3RvciIsImluZGV4RWwiLCJNUSIsIk1hdGhRdWlsbCIsImdldEludGVyZmFjZSIsInRleHRDb250ZW50IiwidmlldyIsInBhcmVudEVsZW1lbnQiLCJjbGFzc0xpc3QiLCJyZW1vdmUiLCJjb3JyZWN0IiwiaW5jb3JyZWN0IiwiU3RhdGljTWF0aCIsInJlc3BvbnNlIiwic2V0U3RhdGUiLCJjYWxsT25TZXNzaW9uQ2hhbmdlIiwiaWQiLCJhY3RpdmVBbnN3ZXJCbG9jayIsImRhdGEiLCJ0eXBlIiwiaW5wdXQiLCJjIiwidG9Ob2RlRGF0YSIsImNsZWFyIiwiQXJyYXkiLCJpc0FycmF5IiwidnYiLCJjbWQiLCJrZXlzdHJva2UiLCJmb2N1cyIsIm9uU2Vzc2lvbkNoYW5nZSIsInNob3ciLCJoYW5kbGVBbnN3ZXJCbG9ja0RvbVVwZGF0ZSIsInN1YmZpZWxkVmFsdWUiLCJjb21wbGV0ZUFuc3dlciIsIm1xU3RhdGljIiwibWF0aEZpZWxkIiwiY2hhbmdlRmllbGQiLCJmaWVsZHMiLCJmaW5kIiwiayIsInRmIiwiZSIsInJlbGF0ZWRUYXJnZXQiLCJjdXJyZW50VGFyZ2V0Iiwib2Zmc2V0UGFyZW50IiwiY2hpbGRyZW4iLCJhdHRyaWJ1dGVzIiwid2luZG93IiwicmVnaXN0ZXJFbWJlZCIsImh0bWxTdHJpbmciLCJibG9ja0NvbnRhaW5lciIsImJsb2NrUmVzcG9uc2UiLCJibG9ja01hdGgiLCJ0ZXh0IiwibmV4dFByb3BzIiwibmV4dENvbmZpZyIsIm5vdGUiLCJsYW5ndWFnZSIsInQiLCJsbmciLCJlbnYiLCJtb2RlIiwibmV3QW5zd2VycyIsIm5leHRTdGF0ZSIsInNhbWVNb2RlbCIsInNhbWVTdGF0ZSIsInNldFRpbWVvdXQiLCJyZWYiLCJkaXYiLCJkb2N1bWVudCIsImZpcnN0Q2hpbGQiLCJzZXRBdHRyaWJ1dGUiLCJjb3JyZWN0bmVzcyIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJyYXRpb25hbGUiLCJmZWVkYmFjayIsImFuaW1hdGlvbnNEaXNhYmxlZCIsInNob3dOb3RlIiwicHJvbXB0IiwicmVzcG9uc2VUeXBlIiwiY3VzdG9tS2V5cyIsInJvbGUiLCJkaXNwbGF5Tm90ZSIsImVtcHR5UmVzcG9uc2UiLCJzaG93Q29ycmVjdEFuc3dlclRvZ2dsZSIsInRvb2x0aXBNb2RlRW5hYmxlZCIsInN0YXRpY0xhdGV4Iiwidmlld01vZGUiLCJzdHVkZW50UHJpbnRNb2RlIiwicHJpbnRWaWV3IiwicHJpbnRDb250YWluZXIiLCJzdWJGaWVsZENoYW5nZWQiLCJnZXRGaWVsZE5hbWUiLCJzZXRJbnB1dCIsIm9uU3ViRmllbGRGb2N1cyIsIm9uQmx1ciIsIm1pZENvbnRlbnQiLCJtYWluIiwic3JPbmx5IiwiY29sbGFwc2libGUiLCJoaWRkZW4iLCJ2aXNpYmxlIiwiX19odG1sIiwiY29udGVudCIsImlucHV0QW5kS2V5cGFkQ29udGFpbmVyIiwiUmVzcG9uc2VUeXBlcyIsInNpbXBsZSIsIm9uU2ltcGxlUmVzcG9uc2VDaGFuZ2UiLCJhZHZhbmNlZCIsInNob3dDb3JyZWN0bmVzcyIsImNvcnJlY3RBbnN3ZXJTaG93biIsInByaW50Q29ycmVjdCIsInNldFRvb2x0aXBSZWYiLCJ0b29sdGlwIiwia2V5cGFkVG9vbHRpcCIsInBvcHBlciIsImtleXBhZFRvb2x0aXBQb3BwZXIiLCJyZXNwb25zZUNvbnRhaW5lciIsIndpZHRoIiwib25DbGljayIsInRvb2x0aXBQb3BwZXIiLCJ0b2dnbGUiLCJ0b2dnbGVTaG93Q29ycmVjdCIsIm1haW5Db250YWluZXIiLCJyIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiZnVuYyIsInN0eWxlcyIsInRoZW1lIiwiY29sb3IiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwiZGlzcGxheSIsInByaW1hcnlMaWdodCIsInBhZGRpbmciLCJzcGFjaW5nIiwidW5pdCIsImJvcmRlciIsInNlY29uZGFyeSIsImZvbnRTaXplIiwib3BhY2l0eSIsIm1hcmdpblRvcCIsInBhZGRpbmdUb3AiLCJwb3NpdGlvbiIsInRpdGxlIiwibWFyZ2luQm90dG9tIiwicGFkZGluZ0JvdHRvbSIsInpJbmRleCIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJtYXJnaW4iLCJ0b3AiLCJib3JkZXJDb2xvciIsImxpbmVIZWlnaHQiLCJsZWZ0IiwicmlnaHQiLCJib3JkZXJUb3AiLCJsZXR0ZXJTcGFjaW5nIiwiZmxleCIsInBhbGV0dGUiLCJncmV5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiYm9yZGVyUmlnaHQiLCJwb2ludGVyRXZlbnRzIiwiaGVpZ2h0Iiwib3Zl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QUFLLEVBQUUsS0FKRDtBQUtObUQsTUFBQUEsTUFBTSxFQUFFLEtBTEY7QUFNTkMsTUFBQUEsUUFBUSxFQUFFO0FBTko7QUFyTGlCLEdBQVo7QUFBQSxDQUFmOztlQStMZSx3QkFBV3ZDLE1BQVgsRUFBbUI3SSxJQUFuQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQge0NvcnJlY3RBbnN3ZXJUb2dnbGV9IGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L2NvcnJlY3QtYW5zd2VyLXRvZ2dsZSc7XG5pbXBvcnQgeyBtcSwgSG9yaXpvbnRhbEtleXBhZCwgdXBkYXRlU3BhbnMgfSBmcm9tICdAcGllLWxpYi9waWUtdG9vbGJveC9tYXRoLWlucHV0JztcbmltcG9ydCB7IEZlZWRiYWNrLCBDb2xsYXBzaWJsZSwgUmVhZGFibGUsIGhhc1RleHQsIFByZXZpZXdQcm9tcHQgfSBmcm9tICdAcGllLWxpYi9waWUtdG9vbGJveC9yZW5kZXItdWknO1xuaW1wb3J0IHsgcmVuZGVyTWF0aCB9IGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L21hdGgtcmVuZGVyaW5nJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvVG9vbHRpcCc7XG5pbXBvcnQgeyBSZXNwb25zZVR5cGVzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgU2ltcGxlUXVlc3Rpb25CbG9jayBmcm9tICcuL3NpbXBsZS1xdWVzdGlvbi1ibG9jayc7XG5pbXBvcnQgTWF0aFF1aWxsIGZyb20gJ0BwaWUtZnJhbWV3b3JrL21hdGhxdWlsbCc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L3JlbmRlci11aSc7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5pbXBvcnQgVHJhbnNsYXRvciBmcm9tICdAcGllLWxpYi9waWUtdG9vbGJveC90cmFuc2xhdG9yJztcbmNvbnN0IHsgdHJhbnNsYXRvciB9ID0gVHJhbnNsYXRvcjtcbmxldCByZWdpc3RlcmVkID0gZmFsc2U7XG5cbmNvbnN0IE5FV0xJTkVfTEFURVggPSAvXFxcXG5ld2xpbmUvZztcbmNvbnN0IFJFR0VYID0gL3t7cmVzcG9uc2V9fS9nbTtcbmNvbnN0IERFRkFVTFRfS0VZUEFEX1ZBUklBTlQgPSA2O1xuXG5jb25zdCBJU19TQUZBUkkgPSAvXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuXG5mdW5jdGlvbiBnZW5lcmF0ZUFkZGl0aW9uYWxLZXlzKGtleURhdGEgPSBbXSkge1xuICByZXR1cm4ga2V5RGF0YS5tYXAoKGtleSkgPT4gKHtcbiAgICBuYW1lOiBrZXksXG4gICAgbGF0ZXg6IGtleSxcbiAgICB3cml0ZToga2V5LFxuICAgIGxhYmVsOiBrZXksXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0S2V5UGFkV2lkdGgoYWRkaXRpb25hbEtleXMgPSBbXSwgZXF1YXRpb25FZGl0b3IpIHtcbiAgcmV0dXJuIE1hdGguZmxvb3IoYWRkaXRpb25hbEtleXMubGVuZ3RoIC8gNSkgKiAzMCArIChlcXVhdGlvbkVkaXRvciA9PT0gJ21pc2NlbGxhbmVvdXMnID8gNjAwIDogNTAwKTtcbn1cblxuZnVuY3Rpb24gcHJlcGFyZUZvclN0YXRpYyhtb2RlbCwgc3RhdGUpIHtcbiAgY29uc3QgeyBjb25maWcsIGRpc2FibGVkIH0gPSBtb2RlbCB8fCB7fTtcbiAgY29uc3QgeyBleHByZXNzaW9uLCByZXNwb25zZXMsIHByaW50TW9kZSwgYWx3YXlzU2hvd0NvcnJlY3QgfSA9IGNvbmZpZyB8fCB7fTtcblxuICBpZiAoY29uZmlnICYmIGV4cHJlc3Npb24pIHtcbiAgICBjb25zdCBtb2RlbEV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuXG4gICAgaWYgKHN0YXRlLnNob3dDb3JyZWN0KSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VzICYmIHJlc3BvbnNlcy5sZW5ndGggJiYgcmVzcG9uc2VzWzBdLmFuc3dlcjtcbiAgICB9XG5cbiAgICBsZXQgYW5zd2VyQmxvY2tzID0gMTsgLy8gYXNzdW1lIG9uZSBhdCBsZWFzdFxuICAgIC8vIGJ1aWxkIG91dCBsb2NhbCBzdGF0ZSBtb2RlbCB1c2luZyByZXNwb25zZXMgZGVjbGFyZWQgaW4gZXhwcmVzc2lvblxuXG4gICAgcmV0dXJuIChtb2RlbEV4cHJlc3Npb24gfHwgJycpXG4gICAgICAucmVwbGFjZShSRUdFWCwgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBhbnN3ZXIgPSBzdGF0ZS5zZXNzaW9uLmFuc3dlcnNbYHIke2Fuc3dlckJsb2Nrc31gXTtcblxuICAgICAgICBpZiAocHJpbnRNb2RlICYmICFhbHdheXNTaG93Q29ycmVjdCkge1xuICAgICAgICAgIGNvbnN0IGJsYW5rU3BhY2UgPSAnXFxcXCBcXFxcICcucmVwZWF0KDMwKSArICdcXFxcbmV3bGluZSAnO1xuXG4gICAgICAgICAgcmV0dXJuIGBcXFxcTWF0aFF1aWxsTWF0aEZpZWxkW3Ike2Fuc3dlckJsb2NrcysrfV17JHtibGFua1NwYWNlLnJlcGVhdCgzKX19YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgIHJldHVybiBgXFxcXGVtYmVke2Fuc3dlckJsb2NrfVtyJHthbnN3ZXJCbG9ja3MrK31dYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgXFxcXE1hdGhRdWlsbE1hdGhGaWVsZFtyJHthbnN3ZXJCbG9ja3MrK31deyR7KGFuc3dlciAmJiBhbnN3ZXIudmFsdWUpIHx8ICcnfX1gO1xuICAgICAgfSlcbiAgICAgIC5yZXBsYWNlKE5FV0xJTkVfTEFURVgsICdcXFxcZW1iZWR7bmV3TGluZX1bXScpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNYWluIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHNlc3Npb246IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvblNlc3Npb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICBjb25zdCBhbnN3ZXJzID0ge307XG5cbiAgICBpZiAocHJvcHMubW9kZWwuY29uZmlnICYmIHByb3BzLm1vZGVsLmNvbmZpZy5leHByZXNzaW9uKSB7XG4gICAgICBsZXQgYW5zd2VyQmxvY2tzID0gMTsgLy8gYXNzdW1lIG9uZSBhdCBsZWFzdFxuICAgICAgLy8gYnVpbGQgb3V0IGxvY2FsIHN0YXRlIG1vZGVsIHVzaW5nIHJlc3BvbnNlcyBkZWNsYXJlZCBpbiBleHByZXNzaW9uXG5cbiAgICAgIChwcm9wcy5tb2RlbC5jb25maWcuZXhwcmVzc2lvbiB8fCAnJykucmVwbGFjZShSRUdFWCwgKCkgPT4ge1xuICAgICAgICBhbnN3ZXJzW2ByJHthbnN3ZXJCbG9ja3N9YF0gPSB7XG4gICAgICAgICAgdmFsdWU6XG4gICAgICAgICAgICAocHJvcHMuc2Vzc2lvbiAmJlxuICAgICAgICAgICAgICBwcm9wcy5zZXNzaW9uLmFuc3dlcnMgJiZcbiAgICAgICAgICAgICAgcHJvcHMuc2Vzc2lvbi5hbnN3ZXJzW2ByJHthbnN3ZXJCbG9ja3N9YF0gJiZcbiAgICAgICAgICAgICAgcHJvcHMuc2Vzc2lvbi5hbnN3ZXJzW2ByJHthbnN3ZXJCbG9ja3N9YF0udmFsdWUpIHx8XG4gICAgICAgICAgICAnJyxcbiAgICAgICAgfTtcblxuICAgICAgICBhbnN3ZXJCbG9ja3MgKz0gMTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBzZXNzaW9uOiB7IC4uLnByb3BzLnNlc3Npb24sIGFuc3dlcnMgfSxcbiAgICAgIGFjdGl2ZUFuc3dlckJsb2NrOiAnJyxcbiAgICAgIHNob3dDb3JyZWN0OiB0aGlzLnByb3BzLm1vZGVsLmNvbmZpZy5hbHdheXNTaG93Q29ycmVjdCB8fCBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpIHtcbiAgICBjb25zdCB7IGNsYXNzZXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCBNUSA9IE1hdGhRdWlsbC5nZXRJbnRlcmZhY2UoMik7XG5cbiAgICAgIGlmICghcmVnaXN0ZXJlZCkge1xuICAgICAgICBNUS5yZWdpc3RlckVtYmVkKCdhbnN3ZXJCbG9jaycsIChkYXRhKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGh0bWxTdHJpbmc6IGA8ZGl2IGNsYXNzPVwiJHtjbGFzc2VzLmJsb2NrQ29udGFpbmVyfVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzZXMuYmxvY2tSZXNwb25zZX1cIiBpZD1cIiR7ZGF0YX1JbmRleFwiPlI8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc2VzLmJsb2NrTWF0aH1cIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwiJHtkYXRhfVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+YCxcbiAgICAgICAgICAgIHRleHQ6ICgpID0+ICd0ZXh0JyxcbiAgICAgICAgICAgIGxhdGV4OiAoKSA9PiBgXFxcXGVtYmVke2Fuc3dlckJsb2NrfVske2RhdGF9XWAsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVnaXN0ZXJlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQW5zd2VyQmxvY2tEb21VcGRhdGUgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBtb2RlbCwgY2xhc3NlcyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHNlc3Npb24sIHNob3dDb3JyZWN0IH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IGFuc3dlcnMgPSBzZXNzaW9uLmFuc3dlcnM7XG5cbiAgICBpZiAodGhpcy5yb290ICYmIG1vZGVsLmRpc2FibGVkICYmICFzaG93Q29ycmVjdCkge1xuICAgICAgT2JqZWN0LmtleXMoYW5zd2VycykuZm9yRWFjaCgoYW5zd2VySWQpID0+IHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnJvb3QucXVlcnlTZWxlY3RvcihgIyR7YW5zd2VySWR9YCk7XG4gICAgICAgIGNvbnN0IGluZGV4RWwgPSB0aGlzLnJvb3QucXVlcnlTZWxlY3RvcihgIyR7YW5zd2VySWR9SW5kZXhgKTtcbiAgICAgICAgLy8gY29uc3QgY29ycmVjdCA9IG1vZGVsLmNvcnJlY3RuZXNzICYmIG1vZGVsLmNvcnJlY3RuZXNzLmNvcnJlY3Q7XG5cbiAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgbGV0IE1RID0gTWF0aFF1aWxsLmdldEludGVyZmFjZSgyKTtcbiAgICAgICAgICBjb25zdCBhbnN3ZXIgPSBhbnN3ZXJzW2Fuc3dlcklkXTtcblxuICAgICAgICAgIGVsLnRleHRDb250ZW50ID0gKGFuc3dlciAmJiBhbnN3ZXIudmFsdWUpIHx8ICcnO1xuXG4gICAgICAgICAgaWYgKCFtb2RlbC52aWV3KSB7XG4gICAgICAgICAgICAvLyBmb3Igbm93LCB3ZSdyZSBub3QgZ29pbmcgdG8gYmUgc2hvd2luZyBpbmRpdmlkdWFsIHJlc3BvbnNlIGNvcnJlY3RuZXNzXG4gICAgICAgICAgICAvLyBUT0RPIHJlLWF0dGFjaCB0aGUgY2xhc3NlcyBvbmNlIHdlIGFyZVxuICAgICAgICAgICAgLy8gZWwucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoXG4gICAgICAgICAgICAvLyAgIGNvcnJlY3QgPyBjbGFzc2VzLmNvcnJlY3QgOiBjbGFzc2VzLmluY29ycmVjdFxuICAgICAgICAgICAgLy8gKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWwucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3Nlcy5jb3JyZWN0KTtcbiAgICAgICAgICAgIGVsLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzZXMuaW5jb3JyZWN0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBNUS5TdGF0aWNNYXRoKGVsKTtcblxuICAgICAgICAgIC8vIEZvciBub3csIHdlJ3JlIG5vdCBnb2luZyB0byBiZSBpbmRleGluZyByZXNwb25zZSBibG9ja3NcbiAgICAgICAgICAvLyBUT0RPIGdvIGJhY2sgdG8gaW5kZXhpbmcgb25jZSB3ZSBzdXBwb3J0IGluZGl2aWR1YWwgcmVzcG9uc2UgY29ycmVjdG5lc3NcbiAgICAgICAgICAvLyBpbmRleEVsLnRleHRDb250ZW50ID0gYFIke2lkeCArIDF9YDtcbiAgICAgICAgICBpbmRleEVsLnRleHRDb250ZW50ID0gJ1InO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZW5kZXJNYXRoKHRoaXMucm9vdCk7XG4gIH07XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIHRoaXMuaGFuZGxlQW5zd2VyQmxvY2tEb21VcGRhdGUoKTtcbiAgfVxuXG4gIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgIGNvbnN0IHsgY29uZmlnIH0gPSB0aGlzLnByb3BzLm1vZGVsO1xuICAgIGNvbnN0IHsgY29uZmlnOiBuZXh0Q29uZmlnID0ge30gfSA9IG5leHRQcm9wcy5tb2RlbCB8fCB7fTtcblxuICAgIC8vIGNoZWNrIGlmIHRoZSBub3RlIGlzIHRoZSBkZWZhdWx0IG9uZSBmb3IgcHJldiBsYW5ndWFnZSBhbmQgY2hhbmdlIHRvIHRoZSBkZWZhdWx0IG9uZSBmb3IgbmV3IGxhbmd1YWdlXG4gICAgLy8gdGhpcyBjaGVjayBpcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8gZGlmZXJhbmNpYXRlIGJldHdlZW4gZGVmYXVsdCBhbmQgYXV0aG91ciBkZWZpbmVkIG5vdGVcbiAgICAvLyBhbmQgb25seSBjaGFuZ2UgYmV0d2VlbiBsYW5ndWFnZXMgZm9yIGRlZmF1bHQgb25lc1xuICAgIGlmIChjb25maWcubm90ZSAmJiBjb25maWcubGFuZ3VhZ2UgJiYgY29uZmlnLmxhbmd1YWdlICE9PSBuZXh0Q29uZmlnLmxhbmd1YWdlICYmIGNvbmZpZy5ub3RlID09PSB0cmFuc2xhdG9yLnQoJ21hdGhJbmxpbmUucHJpbWFyeUNvcnJlY3RXaXRoQWx0ZXJuYXRlcycsIHsgbG5nOiBjb25maWcubGFuZ3VhZ2UgfSkpIHtcbiAgICAgIGNvbmZpZy5ub3RlID0gdHJhbnNsYXRvci50KCdtYXRoSW5saW5lLnByaW1hcnlDb3JyZWN0V2l0aEFsdGVybmF0ZXMnLCB7IGxuZzogbmV4dENvbmZpZy5sYW5ndWFnZSB9KTtcbiAgICB9XG5cbiAgICBpZiAoKGNvbmZpZy5lbnYgJiYgY29uZmlnLmVudi5tb2RlICE9PSAnZXZhbHVhdGUnKSB8fCAobmV4dENvbmZpZy5lbnYgJiYgbmV4dENvbmZpZy5lbnYubW9kZSAhPT0gJ2V2YWx1YXRlJykpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyAuLi50aGlzLnN0YXRlLnNlc3Npb24sIHNob3dDb3JyZWN0OiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBpZiAobmV4dENvbmZpZy5hbHdheXNTaG93Q29ycmVjdCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dDb3JyZWN0OiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIChjb25maWcgJiYgY29uZmlnLnJlc3BvbnNlcyAmJiBjb25maWcucmVzcG9uc2VzLmxlbmd0aCAhPT0gbmV4dENvbmZpZy5yZXNwb25zZXMubGVuZ3RoKSB8fFxuICAgICAgKCFjb25maWcgJiYgbmV4dENvbmZpZyAmJiBuZXh0Q29uZmlnLnJlc3BvbnNlcykgfHxcbiAgICAgIChjb25maWcgJiYgbmV4dENvbmZpZyAmJiBjb25maWcuZXhwcmVzc2lvbiAhPT0gbmV4dENvbmZpZy5leHByZXNzaW9uKVxuICAgICkge1xuICAgICAgY29uc3QgbmV3QW5zd2VycyA9IHt9O1xuICAgICAgY29uc3QgYW5zd2VycyA9IHRoaXMuc3RhdGUuc2Vzc2lvbi5hbnN3ZXJzO1xuXG4gICAgICBsZXQgYW5zd2VyQmxvY2tzID0gMTsgLy8gYXNzdW1lIG9uZSBhdCBsZWFzdFxuXG4gICAgICAvLyBidWlsZCBvdXQgbG9jYWwgc3RhdGUgbW9kZWwgdXNpbmcgcmVzcG9uc2VzIGRlY2xhcmVkIGluIGV4cHJlc3Npb25cbiAgICAgIChuZXh0Q29uZmlnLmV4cHJlc3Npb24gfHwgJycpLnJlcGxhY2UoUkVHRVgsICgpID0+IHtcbiAgICAgICAgbmV3QW5zd2Vyc1tgciR7YW5zd2VyQmxvY2tzfWBdID0ge1xuICAgICAgICAgIHZhbHVlOiAoYW5zd2VycyAmJiBhbnN3ZXJzW2ByJHthbnN3ZXJCbG9ja3N9YF0gJiYgYW5zd2Vyc1tgciR7YW5zd2VyQmxvY2tzfWBdLnZhbHVlKSB8fCAnJyxcbiAgICAgICAgfTtcbiAgICAgICAgYW5zd2VyQmxvY2tzKys7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgICAgKHN0YXRlKSA9PiAoe1xuICAgICAgICAgIHNlc3Npb246IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLnNlc3Npb24sXG4gICAgICAgICAgICBjb21wbGV0ZUFuc3dlcjogdGhpcy5tcVN0YXRpYyAmJiB0aGlzLm1xU3RhdGljLm1hdGhGaWVsZC5sYXRleCgpLFxuICAgICAgICAgICAgYW5zd2VyczogbmV3QW5zd2VycyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgdGhpcy5oYW5kbGVBbnN3ZXJCbG9ja0RvbVVwZGF0ZSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcywgbmV4dFN0YXRlKSB7XG4gICAgY29uc3Qgc2FtZU1vZGVsID0gaXNFcXVhbCh0aGlzLnByb3BzLm1vZGVsLCBuZXh0UHJvcHMubW9kZWwpO1xuICAgIGNvbnN0IHNhbWVTdGF0ZSA9IGlzRXF1YWwodGhpcy5zdGF0ZSwgbmV4dFN0YXRlKTtcblxuICAgIHJldHVybiAhc2FtZU1vZGVsIHx8ICFzYW1lU3RhdGU7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLmhhbmRsZUFuc3dlckJsb2NrRG9tVXBkYXRlKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiByZW5kZXJNYXRoKHRoaXMucm9vdCksIDEwMCk7XG4gIH1cblxuICBvbkRvbmUgPSAoKSA9PiB7fTtcblxuICBvblNpbXBsZVJlc3BvbnNlQ2hhbmdlID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSgoc3RhdGUpID0+ICh7IHNlc3Npb246IHsgLi4uc3RhdGUuc2Vzc2lvbiwgcmVzcG9uc2UgfSB9KSwgdGhpcy5jYWxsT25TZXNzaW9uQ2hhbmdlKTtcbiAgfTtcblxuICBvblN1YkZpZWxkRm9jdXMgPSAoaWQpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgYWN0aXZlQW5zd2VyQmxvY2s6IGlkIH0pO1xuICB9O1xuXG4gIHRvTm9kZURhdGEgPSAoZGF0YSkgPT4ge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgdHlwZSwgdmFsdWUgfSA9IGRhdGE7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2NvbW1hbmQnIHx8IHR5cGUgPT09ICdjdXJzb3InKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhbnN3ZXInKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiAnYW5zd2VyJywgLi4uZGF0YSB9O1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09ICdjbGVhcicpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdjbGVhcicgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgdHlwZTogJ3dyaXRlJywgdmFsdWUgfTtcbiAgICB9XG4gIH07XG5cbiAgc2V0SW5wdXQgPSAoaW5wdXQpID0+IHtcbiAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gIH07XG5cbiAgb25DbGljayA9IChkYXRhKSA9PiB7XG4gICAgY29uc3QgYyA9IHRoaXMudG9Ob2RlRGF0YShkYXRhKTtcblxuICAgIGlmIChjLnR5cGUgPT09ICdjbGVhcicpIHtcbiAgICAgIHRoaXMuaW5wdXQuY2xlYXIoKTtcbiAgICB9IGVsc2UgaWYgKGMudHlwZSA9PT0gJ2NvbW1hbmQnKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjLnZhbHVlKSkge1xuICAgICAgICBjLnZhbHVlLmZvckVhY2goKHZ2KSA9PiB7XG4gICAgICAgICAgdGhpcy5pbnB1dC5jbWQodnYpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5wdXQuY21kKGMudmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYy50eXBlID09PSAnY3Vyc29yJykge1xuICAgICAgdGhpcy5pbnB1dC5rZXlzdHJva2UoYy52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5wdXQud3JpdGUoYy52YWx1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dC5mb2N1cygpO1xuICB9O1xuXG4gIGNhbGxPblNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBvblNlc3Npb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAob25TZXNzaW9uQ2hhbmdlKSB7XG4gICAgICBvblNlc3Npb25DaGFuZ2UodGhpcy5zdGF0ZS5zZXNzaW9uKTtcbiAgICB9XG4gIH07XG5cbiAgdG9nZ2xlU2hvd0NvcnJlY3QgPSAoc2hvdykgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93Q29ycmVjdDogc2hvdyB9LCB0aGlzLmhhbmRsZUFuc3dlckJsb2NrRG9tVXBkYXRlKTtcbiAgfTtcblxuICBzdWJGaWVsZENoYW5nZWQgPSAobmFtZSwgc3ViZmllbGRWYWx1ZSkgPT4ge1xuICAgIHVwZGF0ZVNwYW5zKCk7XG5cbiAgICBpZiAobmFtZSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgICAgKHN0YXRlKSA9PiAoe1xuICAgICAgICAgIHNlc3Npb246IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLnNlc3Npb24sXG4gICAgICAgICAgICBjb21wbGV0ZUFuc3dlcjogdGhpcy5tcVN0YXRpYyAmJiB0aGlzLm1xU3RhdGljLm1hdGhGaWVsZC5sYXRleCgpLFxuICAgICAgICAgICAgYW5zd2Vyczoge1xuICAgICAgICAgICAgICAuLi5zdGF0ZS5zZXNzaW9uLmFuc3dlcnMsXG4gICAgICAgICAgICAgIFtuYW1lXTogeyB2YWx1ZTogc3ViZmllbGRWYWx1ZSB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgdGhpcy5jYWxsT25TZXNzaW9uQ2hhbmdlLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgZ2V0RmllbGROYW1lID0gKGNoYW5nZUZpZWxkLCBmaWVsZHMpID0+IHtcbiAgICBjb25zdCB7IGFuc3dlcnMgfSA9IHRoaXMuc3RhdGUuc2Vzc2lvbjtcblxuICAgIGlmIChPYmplY3Qua2V5cyhhbnN3ZXJzIHx8IHt9KS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhhbnN3ZXJzKTtcblxuICAgICAgcmV0dXJuIGtleXMuZmluZCgoaykgPT4ge1xuICAgICAgICBjb25zdCB0ZiA9IGZpZWxkc1trXTtcblxuICAgICAgICByZXR1cm4gdGYgJiYgdGYuaWQgPT0gY2hhbmdlRmllbGQuaWQ7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgb25CbHVyID0gKGUpID0+IHtcbiAgICBjb25zdCB7IHJlbGF0ZWRUYXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGUgfHwge307XG5cbiAgICBpZiAoXG4gICAgICAhcmVsYXRlZFRhcmdldCB8fFxuICAgICAgIWN1cnJlbnRUYXJnZXQgfHxcbiAgICAgICghSVNfU0FGQVJJICYmICFyZWxhdGVkVGFyZ2V0Py5vZmZzZXRQYXJlbnQ/LmNoaWxkcmVuWzBdPy5hdHRyaWJ1dGVzPy5bJ2RhdGEta2V5cGFkJ10pIHx8XG4gICAgICAoSVNfU0FGQVJJICYmICFyZWxhdGVkVGFyZ2V0Py5vZmZzZXRQYXJlbnQ/LmNoaWxkcmVuWzBdPy5jaGlsZHJlblswXT8uYXR0cmlidXRlcz8uWydkYXRhLWtleXBhZCddKVxuICAgICkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFjdGl2ZUFuc3dlckJsb2NrOiAnJyB9KTtcbiAgICB9XG4gIH07XG5cbiAgc2V0VG9vbHRpcFJlZihyZWYpIHtcbiAgICAvLyBTYWZhcmkgSGFjazogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQyNzY0NDk1LzU3NTc2MzVcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChyZWYgJiYgSVNfU0FGQVJJKSB7XG4gICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tyb2xlPVxcJ3Rvb2x0aXBcXCddJyk7XG5cbiAgICAgICAgaWYgKGRpdikge1xuICAgICAgICAgIGNvbnN0IGVsID0gZGl2LmZpcnN0Q2hpbGQ7XG4gICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgMSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBtb2RlbCwgY2xhc3NlcyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGFjdGl2ZUFuc3dlckJsb2NrLCBzaG93Q29ycmVjdCwgc2Vzc2lvbiB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7XG4gICAgICBjb25maWcsXG4gICAgICBjb3JyZWN0bmVzcyxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgdmlldyxcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnMsXG4gICAgICByYXRpb25hbGUsXG4gICAgICBmZWVkYmFjayxcbiAgICAgIGFuaW1hdGlvbnNEaXNhYmxlZCxcbiAgICAgIHByaW50TW9kZSxcbiAgICAgIGFsd2F5c1Nob3dDb3JyZWN0LFxuICAgICAgbGFuZ3VhZ2VcbiAgICB9ID0gbW9kZWwgfHwge307XG5cbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgc2hvd05vdGUsXG4gICAgICBub3RlLFxuICAgICAgcHJvbXB0LFxuICAgICAgcmVzcG9uc2VzLFxuICAgICAgcmVzcG9uc2VUeXBlLFxuICAgICAgZXF1YXRpb25FZGl0b3IsXG4gICAgICBjdXN0b21LZXlzLFxuICAgICAgZW52OiB7IG1vZGUsIHJvbGUgfSA9IHt9LFxuICAgIH0gPSBjb25maWcgfHwge307XG4gICAgY29uc3QgZGlzcGxheU5vdGUgPSAoc2hvd0NvcnJlY3QgfHwgKG1vZGUgPT09ICd2aWV3JyAmJiByb2xlID09PSAnaW5zdHJ1Y3RvcicpKSAmJiBzaG93Tm90ZSAmJiBub3RlO1xuICAgIGNvbnN0IGVtcHR5UmVzcG9uc2UgPSBpc0VtcHR5KHJlc3BvbnNlcyk7XG4gICAgY29uc3Qgc2hvd0NvcnJlY3RBbnN3ZXJUb2dnbGUgPSAhZW1wdHlSZXNwb25zZSAmJiBjb3JyZWN0bmVzcyAmJiBjb3JyZWN0bmVzcy5jb3JyZWN0bmVzcyAhPT0gJ2NvcnJlY3QnO1xuICAgIGNvbnN0IHRvb2x0aXBNb2RlRW5hYmxlZCA9IGRpc2FibGVkICYmIGNvcnJlY3RuZXNzO1xuICAgIGNvbnN0IGFkZGl0aW9uYWxLZXlzID0gZ2VuZXJhdGVBZGRpdGlvbmFsS2V5cyhjdXN0b21LZXlzKTtcbiAgICBjb25zdCBjb3JyZWN0ID0gY29ycmVjdG5lc3MgJiYgY29ycmVjdG5lc3MuY29ycmVjdDtcbiAgICBjb25zdCBzdGF0aWNMYXRleCA9IHByZXBhcmVGb3JTdGF0aWMobW9kZWwsIHRoaXMuc3RhdGUpIHx8ICcnO1xuICAgIGNvbnN0IHZpZXdNb2RlID0gZGlzYWJsZWQgJiYgIWNvcnJlY3RuZXNzO1xuICAgIGNvbnN0IHN0dWRlbnRQcmludE1vZGUgPSBwcmludE1vZGUgJiYgIWFsd2F5c1Nob3dDb3JyZWN0O1xuXG4gICAgY29uc3QgcHJpbnRWaWV3ID0gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMucHJpbnRDb250YWluZXJ9PlxuICAgICAgICA8bXEuU3RhdGljXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnN0YXRpY31cbiAgICAgICAgICByZWY9eyhtcVN0YXRpYykgPT4gKHRoaXMubXFTdGF0aWMgPSBtcVN0YXRpYyB8fCB0aGlzLm1xU3RhdGljKX1cbiAgICAgICAgICBsYXRleD17c3RhdGljTGF0ZXh9XG4gICAgICAgICAgb25TdWJGaWVsZENoYW5nZT17dGhpcy5zdWJGaWVsZENoYW5nZWR9XG4gICAgICAgICAgZ2V0RmllbGROYW1lPXt0aGlzLmdldEZpZWxkTmFtZX1cbiAgICAgICAgICBzZXRJbnB1dD17dGhpcy5zZXRJbnB1dH1cbiAgICAgICAgICBvblN1YkZpZWxkRm9jdXM9e3RoaXMub25TdWJGaWVsZEZvY3VzfVxuICAgICAgICAgIG9uQmx1cj17dGhpcy5vbkJsdXJ9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuXG4gICAgY29uc3QgbWlkQ29udGVudCA9IChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLm1haW59PlxuICAgICAgICB7bW9kZSA9PT0gJ2dhdGhlcicgJiYgPGgyIGNsYXNzTmFtZT17Y2xhc3Nlcy5zck9ubHl9Pk1hdGggRXF1YXRpb24gUmVzcG9uc2UgUXVlc3Rpb248L2gyPn1cblxuICAgICAgICB7dmlld01vZGUgJiZcbiAgICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zICYmXG4gICAgICAgICAgaGFzVGV4dCh0ZWFjaGVySW5zdHJ1Y3Rpb25zKSAmJlxuICAgICAgICAgICghYW5pbWF0aW9uc0Rpc2FibGVkID8gKFxuICAgICAgICAgICAgPENvbGxhcHNpYmxlXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5jb2xsYXBzaWJsZX1cbiAgICAgICAgICAgICAgbGFiZWxzPXt7IGhpZGRlbjogJ1Nob3cgVGVhY2hlciBJbnN0cnVjdGlvbnMnLCB2aXNpYmxlOiAnSGlkZSBUZWFjaGVyIEluc3RydWN0aW9ucycgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHRlYWNoZXJJbnN0cnVjdGlvbnMgfX0gLz5cbiAgICAgICAgICAgIDwvQ29sbGFwc2libGU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxkaXYgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiB0ZWFjaGVySW5zdHJ1Y3Rpb25zIH19IC8+XG4gICAgICAgICAgKSl9XG5cbiAgICAgICAge3Byb21wdCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuY29udGVudH0+XG4gICAgICAgICAgICA8UHJldmlld1Byb21wdCBwcm9tcHQ9e3Byb21wdH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cblxuICAgICAgICB7c3R1ZGVudFByaW50TW9kZSA/IChcbiAgICAgICAgICBwcmludFZpZXdcbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVhZGFibGUgZmFsc2U+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5pbnB1dEFuZEtleXBhZENvbnRhaW5lcn0+XG4gICAgICAgICAgICAgIHtyZXNwb25zZVR5cGUgPT09IFJlc3BvbnNlVHlwZXMuc2ltcGxlICYmIChcbiAgICAgICAgICAgICAgICA8U2ltcGxlUXVlc3Rpb25CbG9ja1xuICAgICAgICAgICAgICAgICAgb25TaW1wbGVSZXNwb25zZUNoYW5nZT17dGhpcy5vblNpbXBsZVJlc3BvbnNlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgc2hvd0NvcnJlY3Q9e3Nob3dDb3JyZWN0fVxuICAgICAgICAgICAgICAgICAgZW1wdHlSZXNwb25zZT17ZW1wdHlSZXNwb25zZX1cbiAgICAgICAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgICAgICAgIHNlc3Npb249e3Nlc3Npb259XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICB7cmVzcG9uc2VUeXBlID09PSBSZXNwb25zZVR5cGVzLmFkdmFuY2VkICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KGNsYXNzZXMuZXhwcmVzc2lvbiwge1xuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5pbmNvcnJlY3RdOiAhZW1wdHlSZXNwb25zZSAmJiAhY29ycmVjdCAmJiAhc2hvd0NvcnJlY3QsXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzLmNvcnJlY3RdOiAhZW1wdHlSZXNwb25zZSAmJiAoY29ycmVjdCB8fCBzaG93Q29ycmVjdCksXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzLnNob3dDb3JyZWN0bmVzc106ICFlbXB0eVJlc3BvbnNlICYmIGRpc2FibGVkICYmIGNvcnJlY3RuZXNzICYmICF2aWV3LFxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5jb3JyZWN0QW5zd2VyU2hvd25dOiBzaG93Q29ycmVjdCxcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMucHJpbnRDb3JyZWN0XTogcHJpbnRNb2RlICYmIGFsd2F5c1Nob3dDb3JyZWN0LFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgcmVmPXsocmVmKSA9PiB0aGlzLnNldFRvb2x0aXBSZWYocmVmKX1cbiAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgb3Blbj17ISFhY3RpdmVBbnN3ZXJCbG9ja31cbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcz17e1xuICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXA6IGNsYXNzZXMua2V5cGFkVG9vbHRpcCxcbiAgICAgICAgICAgICAgICAgICAgICBwb3BwZXI6IGNsYXNzZXMua2V5cGFkVG9vbHRpcFBvcHBlcixcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9e09iamVjdC5rZXlzKHNlc3Npb24uYW5zd2VycykubWFwKFxuICAgICAgICAgICAgICAgICAgICAgIChhbnN3ZXJJZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChhbnN3ZXJJZCA9PT0gYWN0aXZlQW5zd2VyQmxvY2sgJiYgIShzaG93Q29ycmVjdCB8fCBkaXNhYmxlZCkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1rZXlwYWQ9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXthbnN3ZXJJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucmVzcG9uc2VDb250YWluZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmdpblRvcDogdGhpcy5tcVN0YXRpYyAmJiB0aGlzLm1xU3RhdGljLmlucHV0Lm9mZnNldEhlaWdodCAtIDIwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGdldEtleVBhZFdpZHRoKGFkZGl0aW9uYWxLZXlzLCBlcXVhdGlvbkVkaXRvciksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIb3Jpem9udGFsS2V5cGFkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsS2V5cz17YWRkaXRpb25hbEtleXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlPXtlcXVhdGlvbkVkaXRvciB8fCBERUZBVUxUX0tFWVBBRF9WQVJJQU5UfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgKSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtcS5TdGF0aWNcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuc3RhdGljfVxuICAgICAgICAgICAgICAgICAgICAgIHJlZj17KG1xU3RhdGljKSA9PiAodGhpcy5tcVN0YXRpYyA9IG1xU3RhdGljIHx8IHRoaXMubXFTdGF0aWMpfVxuICAgICAgICAgICAgICAgICAgICAgIGxhdGV4PXtzdGF0aWNMYXRleH1cbiAgICAgICAgICAgICAgICAgICAgICBvblN1YkZpZWxkQ2hhbmdlPXt0aGlzLnN1YkZpZWxkQ2hhbmdlZH1cbiAgICAgICAgICAgICAgICAgICAgICBnZXRGaWVsZE5hbWU9e3RoaXMuZ2V0RmllbGROYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIHNldElucHV0PXt0aGlzLnNldElucHV0fVxuICAgICAgICAgICAgICAgICAgICAgIG9uU3ViRmllbGRGb2N1cz17dGhpcy5vblN1YkZpZWxkRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXt0aGlzLm9uQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvUmVhZGFibGU+XG4gICAgICAgICl9XG5cbiAgICAgICAge3ZpZXdNb2RlICYmIGRpc3BsYXlOb3RlICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5ub3RlfSBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+ICR7bm90ZX1gIH19IC8+XG4gICAgICAgICl9XG5cbiAgICAgICAge3ZpZXdNb2RlICYmXG4gICAgICAgICAgcmF0aW9uYWxlICYmXG4gICAgICAgICAgaGFzVGV4dChyYXRpb25hbGUpICYmXG4gICAgICAgICAgKCFhbmltYXRpb25zRGlzYWJsZWQgPyAoXG4gICAgICAgICAgICA8Q29sbGFwc2libGUgbGFiZWxzPXt7IGhpZGRlbjogJ1Nob3cgUmF0aW9uYWxlJywgdmlzaWJsZTogJ0hpZGUgUmF0aW9uYWxlJyB9fT5cbiAgICAgICAgICAgICAgPGRpdiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHJhdGlvbmFsZSB9fSAvPlxuICAgICAgICAgICAgPC9Db2xsYXBzaWJsZT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPGRpdiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHJhdGlvbmFsZSB9fSAvPlxuICAgICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgIHRvb2x0aXBNb2RlRW5hYmxlZCAmJlxuICAgICAgKHNob3dDb3JyZWN0QW5zd2VyVG9nZ2xlIHx8XG4gICAgICAgICh0ZWFjaGVySW5zdHJ1Y3Rpb25zICYmIGhhc1RleHQodGVhY2hlckluc3RydWN0aW9ucykpIHx8XG4gICAgICAgIChyYXRpb25hbGUgJiYgaGFzVGV4dChyYXRpb25hbGUpKSB8fFxuICAgICAgICBmZWVkYmFjaylcbiAgICApIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgaW50ZXJhY3RpdmVcbiAgICAgICAgICBjbGFzc2VzPXt7XG4gICAgICAgICAgICB0b29sdGlwOiBjbGFzc2VzLnRvb2x0aXAsXG4gICAgICAgICAgICBwb3BwZXI6IGNsYXNzZXMudG9vbHRpcFBvcHBlcixcbiAgICAgICAgICB9fVxuICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLm1haW59PlxuICAgICAgICAgICAgICAgIHtzaG93Q29ycmVjdEFuc3dlclRvZ2dsZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8Q29ycmVjdEFuc3dlclRvZ2dsZVxuICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZT17bGFuZ3VhZ2V9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy50b2dnbGV9XG4gICAgICAgICAgICAgICAgICAgIHNob3dcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlZD17c2hvd0NvcnJlY3R9XG4gICAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlPXt0aGlzLnRvZ2dsZVNob3dDb3JyZWN0fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICB7dGVhY2hlckluc3RydWN0aW9ucyAmJiBoYXNUZXh0KHRlYWNoZXJJbnN0cnVjdGlvbnMpICYmIChcbiAgICAgICAgICAgICAgICA8Q29sbGFwc2libGVcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5jb2xsYXBzaWJsZX1cbiAgICAgICAgICAgICAgICAgIGtleT1cImNvbGxhcHNpYmxlLXRlYWNoZXItaW5zdHJ1Y3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgIGxhYmVscz17e1xuICAgICAgICAgICAgICAgICAgICBoaWRkZW46ICdTaG93IFRlYWNoZXIgSW5zdHJ1Y3Rpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogJ0hpZGUgVGVhY2hlciBJbnN0cnVjdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UHJldmlld1Byb21wdCBwcm9tcHQ9e3RlYWNoZXJJbnN0cnVjdGlvbnN9IC8+XG4gICAgICAgICAgICAgICAgPC9Db2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAge2Rpc3BsYXlOb3RlICYmIGhhc1RleHQobm90ZSkgJiYgKFxuICAgICAgICAgICAgICAgIDxDb2xsYXBzaWJsZVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmNvbGxhcHNpYmxlfVxuICAgICAgICAgICAgICAgICAga2V5PVwiY29sbGFwc2libGUtbm90ZVwiXG4gICAgICAgICAgICAgICAgICBsYWJlbHM9e3tcbiAgICAgICAgICAgICAgICAgICAgaGlkZGVuOiB0cmFuc2xhdG9yLnQoJ2NvbW1vbjpzaG93Tm90ZScsIHsgbG5nOiBsYW5ndWFnZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdHJhbnNsYXRvci50KCdjb21tb246aGlkZU5vdGUnLCB7IGxuZzogbGFuZ3VhZ2UgfSksXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQcmV2aWV3UHJvbXB0IHByb21wdD17bm90ZX0gLz5cbiAgICAgICAgICAgICAgICA8L0NvbGxhcHNpYmxlPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIHtyYXRpb25hbGUgJiYgaGFzVGV4dChyYXRpb25hbGUpICYmIChcbiAgICAgICAgICAgICAgICA8Q29sbGFwc2libGVcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5jb2xsYXBzaWJsZX1cbiAgICAgICAgICAgICAgICAgIGtleT1cImNvbGxhcHNpYmxlLXJhdGlvbmFsZVwiXG4gICAgICAgICAgICAgICAgICBsYWJlbHM9e3tcbiAgICAgICAgICAgICAgICAgICAgaGlkZGVuOiAnU2hvdyBSYXRpb25hbGUnLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiAnSGlkZSBSYXRpb25hbGUnLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UHJldmlld1Byb21wdCBwcm9tcHQ9e3JhdGlvbmFsZX0gLz5cbiAgICAgICAgICAgICAgICA8L0NvbGxhcHNpYmxlPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIHtmZWVkYmFjayAmJiA8RmVlZGJhY2sgY29ycmVjdG5lc3M9e2NvcnJlY3RuZXNzLmNvcnJlY3RuZXNzfSBmZWVkYmFjaz17ZmVlZGJhY2t9IC8+fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMubWFpbkNvbnRhaW5lcn0gcmVmPXsocikgPT4gKHRoaXMucm9vdCA9IHIgfHwgdGhpcy5yb290KX0+XG4gICAgICAgICAgICB7bWlkQ29udGVudH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMubWFpbkNvbnRhaW5lcn0gcmVmPXsocikgPT4gKHRoaXMucm9vdCA9IHIgfHwgdGhpcy5yb290KX0+XG4gICAgICAgIHttaWRDb250ZW50fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBzdHlsZXMgPSAodGhlbWUpID0+ICh7XG4gIG1haW5Db250YWluZXI6IHtcbiAgICBjb2xvcjogY29sb3IudGV4dCgpLFxuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICB9LFxuICB0b29sdGlwOiB7XG4gICAgYmFja2dyb3VuZDogYCR7Y29sb3IucHJpbWFyeUxpZ2h0KCl9ICFpbXBvcnRhbnRgLFxuICAgIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gICAgcGFkZGluZzogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICBib3JkZXI6IGAxcHggc29saWQgJHtjb2xvci5zZWNvbmRhcnkoKX1gLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgJyYgOm5vdCguTWF0aEpheCkgPiB0YWJsZSB0cic6IHtcbiAgICAgICcmOm50aC1jaGlsZCgybiknOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3Vuc2V0ICFpbXBvcnRhbnQnLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICB0b29sdGlwUG9wcGVyOiB7XG4gICAgb3BhY2l0eTogMSxcbiAgfSxcbiAga2V5cGFkVG9vbHRpcDoge1xuICAgIGZvbnRTaXplOiAnaW5pdGlhbCcsXG4gICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICB3aWR0aDogJzYwMHB4JyxcbiAgICBtYXJnaW5Ub3A6IDAsXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSxcbiAga2V5cGFkVG9vbHRpcFBvcHBlcjoge1xuICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgd2lkdGg6ICc2NTBweCcsXG4gICAgb3BhY2l0eTogMSxcbiAgfSxcbiAgbWFpbjoge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5iYWNrZ3JvdW5kKCksXG4gICAgY29sb3I6IGNvbG9yLnRleHQoKSxcbiAgfSxcbiAgdGl0bGU6IHtcbiAgICBmb250U2l6ZTogJzEuMXJlbScsXG4gICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gIH0sXG4gIG5vdGU6IHtcbiAgICBwYWRkaW5nQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICB9LFxuICBjb2xsYXBzaWJsZToge1xuICAgIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgfSxcbiAgcmVzcG9uc2VDb250YWluZXI6IHtcbiAgICB6SW5kZXg6IDEwLFxuICAgIC8vIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIC8vIHJpZ2h0OiAwLFxuICAgIG1pbldpZHRoOiAnNDAwcHgnLFxuICAgIG1hcmdpblRvcDogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgfSxcbiAgZXhwcmVzc2lvbjoge1xuICAgIG1heFdpZHRoOiAnZml0LWNvbnRlbnQnLFxuICAgICcmID4gLm1xLW1hdGgtbW9kZSc6IHtcbiAgICAgICcmID4gLm1xLXJvb3QtYmxvY2snOiB7XG4gICAgICAgICcmID4gLm1xLWVkaXRhYmxlLWZpZWxkJzoge1xuICAgICAgICAgIG1pbldpZHRoOiAnMTBweCcsXG4gICAgICAgICAgbWFyZ2luOiAodGhlbWUuc3BhY2luZy51bml0ICogMikgLyAzLFxuICAgICAgICAgIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcudW5pdCAvIDQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgJyYgc3VwJzoge1xuICAgICAgICB0b3A6IDAsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHN0YXRpYzoge1xuICAgICcmID4gLm1xLXJvb3QtYmxvY2snOiB7XG4gICAgICAnJiA+IC5tcS1lZGl0YWJsZS1maWVsZCc6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGNvbG9yLnRleHQoKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgaW5wdXRBbmRLZXlwYWRDb250YWluZXI6IHtcbiAgICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICcmIC5tcS1vdmVyYXJyb3ctaW5uZXInOiB7XG4gICAgICBib3JkZXI6ICdub25lICFpbXBvcnRhbnQnLFxuICAgICAgcGFkZGluZzogJzAgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgICAnJiAubXEtb3ZlcmFycm93LWlubmVyLXJpZ2h0Jzoge1xuICAgICAgZGlzcGxheTogJ25vbmUgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgICAnJiAubXEtb3ZlcmFycm93LWlubmVyLWxlZnQnOiB7XG4gICAgICBkaXNwbGF5OiAnbm9uZSAhaW1wb3J0YW50JyxcbiAgICB9LFxuICAgICcmIC5tcS1vdmVyYXJyb3cubXEtYXJyb3ctYm90aCc6IHtcbiAgICAgIG1pbldpZHRoOiAnMS4yM2VtJyxcbiAgICAgICcmIConOiB7XG4gICAgICAgIGxpbmVIZWlnaHQ6ICcxICFpbXBvcnRhbnQnLFxuICAgICAgfSxcbiAgICAgICcmOmJlZm9yZSc6IHtcbiAgICAgICAgdG9wOiAnLTAuNGVtJyxcbiAgICAgICAgbGVmdDogJy0xcHgnLFxuICAgICAgfSxcbiAgICAgICcmOmFmdGVyJzoge1xuICAgICAgICB0b3A6ICctMi40ZW0nLFxuICAgICAgICByaWdodDogJy0xcHgnLFxuICAgICAgfSxcbiAgICAgICcmLm1xLWVtcHR5OmFmdGVyJzoge1xuICAgICAgICB0b3A6ICctMC40NWVtJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICAnJiAubXEtb3ZlcmFycm93Lm1xLWFycm93LXJpZ2h0Jzoge1xuICAgICAgJyY6YmVmb3JlJzoge1xuICAgICAgICB0b3A6ICctMC40ZW0nLFxuICAgICAgICByaWdodDogJy0xcHgnLFxuICAgICAgfSxcbiAgICB9LFxuICAgICcmIC5tcS1sb25nZGl2LWlubmVyJzoge1xuICAgICAgYm9yZGVyVG9wOiAnMXB4IHNvbGlkICFpbXBvcnRhbnQnLFxuICAgICAgcGFkZGluZ1RvcDogJzEuNXB4ICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gICAgJyYgLm1xLXBhcmFsbGVsb2dyYW0nOiB7XG4gICAgICBsaW5lSGVpZ2h0OiAwLjg1LFxuICAgIH0sXG4gIH0sXG4gIHNob3dDb3JyZWN0bmVzczoge1xuICAgIGJvcmRlcjogJzJweCBzb2xpZCcsXG4gIH0sXG4gIGNvcnJlY3RBbnN3ZXJTaG93bjoge1xuICAgIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICBsZXR0ZXJTcGFjaW5nOiAnMC41cHgnLFxuICB9LFxuICBwcmludENvcnJlY3Q6IHtcbiAgICBib3JkZXI6IGAycHggc29saWQgJHtjb2xvci5jb3JyZWN0KCl9ICFpbXBvcnRhbnRgLFxuICB9LFxuICBjb3JyZWN0OiB7XG4gICAgYm9yZGVyQ29sb3I6IGAke2NvbG9yLmNvcnJlY3QoKX0gIWltcG9ydGFudGAsXG4gIH0sXG4gIGluY29ycmVjdDoge1xuICAgIGJvcmRlckNvbG9yOiBgJHtjb2xvci5pbmNvcnJlY3QoKX0gIWltcG9ydGFudGAsXG4gIH0sXG4gIGJsb2NrQ29udGFpbmVyOiB7XG4gICAgbWFyZ2luOiBgJHt0aGVtZS5zcGFjaW5nLnVuaXR9cHggIWltcG9ydGFudGAsXG4gICAgZGlzcGxheTogJ2lubGluZS1mbGV4JyxcbiAgICBib3JkZXI6ICcycHggc29saWQgZ3JleSAhaW1wb3J0YW50JyxcbiAgfSxcbiAgYmxvY2tSZXNwb25zZToge1xuICAgIGZsZXg6IDIsXG4gICAgY29sb3I6ICdncmV5JyxcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS5wYWxldHRlLmdyZXlbJ0ExMDAnXSxcbiAgICBmb250U2l6ZTogJzAuOHJlbSAhaW1wb3J0YW50JyxcbiAgICBwYWRkaW5nOiBgJHt0aGVtZS5zcGFjaW5nLnVuaXQgLyAyfXB4ICFpbXBvcnRhbnRgLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgYm9yZGVyUmlnaHQ6IGAycHggc29saWQgJHtjb2xvci5kaXNhYmxlZCgpfSAhaW1wb3J0YW50YCxcbiAgfSxcbiAgdG9nZ2xlOiB7XG4gICAgY29sb3I6IGNvbG9yLnRleHQoKSxcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gIH0sXG4gIGJsb2NrTWF0aDoge1xuICAgIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5iYWNrZ3JvdW5kKCksXG4gICAgcGFkZGluZzogYCR7dGhlbWUuc3BhY2luZy51bml0IC8gMn1weCAhaW1wb3J0YW50YCxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGZsZXg6IDgsXG4gICAgJyYgPiAubXEtbWF0aC1tb2RlJzoge1xuICAgICAgJyYgPiAubXEtaGFzQ3Vyc29yJzoge1xuICAgICAgICAnJiA+IC5tcS1jdXJzb3InOiB7XG4gICAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBwcmludENvbnRhaW5lcjoge1xuICAgIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZy51bml0LFxuICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgfSxcbiAgc3JPbmx5OiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgbGVmdDogJy0xMDAwMHB4JyxcbiAgICB0b3A6ICdhdXRvJyxcbiAgICB3aWR0aDogJzFweCcsXG4gICAgaGVpZ2h0OiAnMXB4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKE1haW4pO1xuIl19
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["translator","Translator","registered","NEWLINE_LATEX","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","prepareForStatic","model","state","config","disabled","expression","responses","printMode","alwaysShowCorrect","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","blankSpace","repeat","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","response","setState","callOnSessionChange","id","activeAnswerBlock","data","type","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mqStatic","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","offsetParent","children","attributes","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","nextProps","nextConfig","note","language","t","lng","env","mode","newAnswers","nextState","sameModel","sameState","setTimeout","ref","div","document","firstChild","setAttribute","correctness","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","responseType","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","midContent","main","srOnly","collapsible","hidden","visible","__html","content","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","React","Component","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","position","title","marginBottom","paddingBottom","zIndex","minWidth","maxWidth","margin","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","flex","palette","grey","alignItems","justifyContent","borderRight","pointerEvents","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/pie-toolbox/math-input';\nimport { Feedback, Collapsible, Readable, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { ResponseTypes } from './utils';\nimport isEqual from 'lodash/isEqual';\nimport cx from 'classnames';\nimport SimpleQuestionBlock from './simple-question-block';\nimport MathQuill from '@pie-framework/mathquill';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport isEmpty from 'lodash/isEmpty';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nconst { translator } = Translator;\nlet registered = false;\n\nconst NEWLINE_LATEX = /\\\\newline/g;\nconst REGEX = /{{response}}/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses, printMode, alwaysShowCorrect } = config || {};\n\n if (config && expression) {\n const modelExpression = expression;\n\n if (state.showCorrect) {\n return responses && responses.length && responses[0].answer;\n }\n\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n return (modelExpression || '')\n .replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\newline ';\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${blankSpace.repeat(3)}}`;\n }\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n })\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const answers = {};\n\n if (props.model.config && props.model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (props.model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (props.session &&\n props.session.answers &&\n props.session.answers[`r${answerBlocks}`] &&\n props.session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.alwaysShowCorrect || false,\n };\n }\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n return {\n htmlString: `<div class=\"${classes.blockContainer}\">\n <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n <div class=\"${classes.blockMath}\">\n <span id=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model, classes } = this.props;\n const { session, showCorrect } = this.state;\n const answers = session.answers;\n\n if (this.root && model.disabled && !showCorrect) {\n Object.keys(answers).forEach((answerId) => {\n const el = this.root.querySelector(`#${answerId}`);\n const indexEl = this.root.querySelector(`#${answerId}Index`);\n // const correct = model.correctness && model.correctness.correct;\n\n if (el) {\n let MQ = MathQuill.getInterface(2);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (!model.view) {\n // for now, we're not going to be showing individual response correctness\n // TODO re-attach the classes once we are\n // el.parentElement.parentElement.classList.add(\n // correct ? classes.correct : classes.incorrect\n // );\n } else {\n el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n // For now, we're not going to be indexing response blocks\n // TODO go back to indexing once we support individual response correctness\n // indexEl.textContent = `R${idx + 1}`;\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (config.note && config.language && config.language !== nextConfig.language && config.note === translator.t('mathInline.primaryCorrectWithAlternates', { lng: config.language })) {\n config.note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: nextConfig.language });\n }\n\n if ((config.env && config.env.mode !== 'evaluate') || (nextConfig.env && nextConfig.env.mode !== 'evaluate')) {\n this.setState({ ...this.state.session, showCorrect: false });\n }\n\n if (nextConfig.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n if (\n (config && config.responses && config.responses.length !== nextConfig.responses.length) ||\n (!config && nextConfig && nextConfig.responses) ||\n (config && nextConfig && config.expression !== nextConfig.expression)\n ) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n let answerBlocks = 1; // assume one at least\n\n // build out local state model using responses declared in expression\n (nextConfig.expression || '').replace(REGEX, () => {\n newAnswers[`r${answerBlocks}`] = {\n value: (answers && answers[`r${answerBlocks}`] && answers[`r${answerBlocks}`].value) || '',\n };\n answerBlocks++;\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: newAnswers,\n },\n }),\n this.handleAnswerBlockDomUpdate,\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\n };\n\n onSubFieldFocus = (id) => {\n this.setState({ activeAnswerBlock: id });\n };\n\n toNodeData = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') {\n return data;\n } else if (type === 'answer') {\n return { type: 'answer', ...data };\n } else if (value === 'clear') {\n return { type: 'clear' };\n } else {\n return { type: 'write', value };\n }\n };\n\n setInput = (input) => {\n this.input = input;\n };\n\n onClick = (data) => {\n const c = this.toNodeData(data);\n\n if (c.type === 'clear') {\n this.input.clear();\n } else if (c.type === 'command') {\n if (Array.isArray(c.value)) {\n c.value.forEach((vv) => {\n this.input.cmd(vv);\n });\n } else {\n this.input.cmd(c.value);\n }\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else {\n this.input.write(c.value);\n }\n\n this.input.focus();\n };\n\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show }, this.handleAnswerBlockDomUpdate);\n };\n\n subFieldChanged = (name, subfieldValue) => {\n updateSpans();\n\n if (name) {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: {\n ...state.session.answers,\n [name]: { value: subfieldValue },\n },\n },\n }),\n this.callOnSessionChange,\n );\n }\n };\n\n getFieldName = (changeField, fields) => {\n const { answers } = this.state.session;\n\n if (Object.keys(answers || {}).length) {\n const keys = Object.keys(answers);\n\n return keys.find((k) => {\n const tf = fields[k];\n\n return tf && tf.id == changeField.id;\n });\n }\n };\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n if (\n !relatedTarget ||\n !currentTarget ||\n (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n ) {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector('[role=\\'tooltip\\']');\n\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n render() {\n const { model, classes } = this.props;\n const { activeAnswerBlock, showCorrect, session } = this.state;\n const {\n config,\n correctness,\n disabled,\n view,\n teacherInstructions,\n rationale,\n feedback,\n animationsDisabled,\n printMode,\n alwaysShowCorrect,\n language\n } = model || {};\n\n if (!config) {\n return null;\n }\n\n const {\n showNote,\n note,\n prompt,\n responses,\n responseType,\n equationEditor,\n customKeys,\n env: { mode, role } = {},\n } = config || {};\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const tooltipModeEnabled = disabled && correctness;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n const viewMode = disabled && !correctness;\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n const printView = (\n <div className={classes.printContainer}>\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </div>\n );\n\n const midContent = (\n <div className={classes.main}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n {viewMode &&\n teacherInstructions &&\n hasText(teacherInstructions) &&\n (!animationsDisabled ? (\n <Collapsible\n className={classes.collapsible}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n ))}\n\n {prompt && (\n <div className={classes.content}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer}>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !correct && !showCorrect,\n [classes.correct]: !emptyResponse && (correct || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n [classes.printCorrect]: printMode && alwaysShowCorrect,\n })}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n interactive\n open={!!activeAnswerBlock}\n classes={{\n tooltip: classes.keypadTooltip,\n popper: classes.keypadTooltipPopper,\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{\n // marginTop: this.mqStatic && this.mqStatic.input.offsetHeight - 20,\n width: getKeyPadWidth(additionalKeys, equationEditor),\n }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </Tooltip>\n </div>\n )}\n </div>\n </Readable>\n )}\n\n {viewMode && displayNote && (\n <div className={classes.note} dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }} />\n )}\n\n {viewMode &&\n rationale &&\n hasText(rationale) &&\n (!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n ))}\n </div>\n );\n\n if (\n tooltipModeEnabled &&\n (showCorrectAnswerToggle ||\n (teacherInstructions && hasText(teacherInstructions)) ||\n (rationale && hasText(rationale)) ||\n feedback)\n ) {\n return (\n <Tooltip\n interactive\n classes={{\n tooltip: classes.tooltip,\n popper: classes.tooltipPopper,\n }}\n title={\n <div>\n <div className={classes.main}>\n {showCorrectAnswerToggle && (\n <CorrectAnswerToggle\n language={language}\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-teacher-instructions\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n {displayNote && hasText(note) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-note\"\n labels={{\n hidden: translator.t('common:showNote', { lng: language }),\n visible: translator.t('common:hideNote', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={note} />\n </Collapsible>\n )}\n\n {rationale && hasText(rationale) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-rationale\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n\n {feedback && <Feedback correctness={correctness.correctness} feedback={feedback} />}\n </div>\n }\n >\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n </Tooltip>\n );\n }\n\n return (\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 2,\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\n },\n tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n main: {\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n },\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n note: {\n paddingBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n // position: 'absolute',\n // right: 0,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n margin: (theme.spacing.unit * 2) / 3,\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0,\n },\n },\n },\n static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important',\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n printCorrect: {\n border: `2px solid ${color.correct()} !important`,\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: `${theme.spacing.unit}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n flex: 2,\n color: 'grey',\n background: theme.palette.grey['A100'],\n fontSize: '0.8rem !important',\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: `2px solid ${color.disabled()} !important`,\n },\n toggle: {\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 8,\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n printContainer: {\n marginBottom: theme.spacing.unit,\n pointerEvents: 'none',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["translator","Translator","registered","NEWLINE_LATEX","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","prepareForStatic","model","state","config","disabled","expression","responses","printMode","alwaysShowCorrect","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","blankSpace","repeat","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","response","setState","callOnSessionChange","id","activeAnswerBlock","data","type","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mqStatic","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","offsetParent","children","attributes","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","nextProps","nextConfig","note","language","t","lng","env","mode","newAnswers","nextState","sameModel","sameState","setTimeout","ref","div","document","firstChild","setAttribute","correctness","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","responseType","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","midContent","main","srOnly","collapsible","hidden","visible","__html","content","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","React","Component","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","position","title","marginBottom","paddingBottom","zIndex","minWidth","maxWidth","margin","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","flex","palette","grey","alignItems","justifyContent","borderRight","pointerEvents","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {CorrectAnswerToggle} from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/pie-toolbox/math-input';\nimport { Feedback, Collapsible, Readable, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { ResponseTypes } from './utils';\nimport isEqual from 'lodash/isEqual';\nimport cx from 'classnames';\nimport SimpleQuestionBlock from './simple-question-block';\nimport MathQuill from '@pie-framework/mathquill';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport isEmpty from 'lodash/isEmpty';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nconst { translator } = Translator;\nlet registered = false;\n\nconst NEWLINE_LATEX = /\\\\newline/g;\nconst REGEX = /{{response}}/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses, printMode, alwaysShowCorrect } = config || {};\n\n if (config && expression) {\n const modelExpression = expression;\n\n if (state.showCorrect) {\n return responses && responses.length && responses[0].answer;\n }\n\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n return (modelExpression || '')\n .replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\newline ';\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${blankSpace.repeat(3)}}`;\n }\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n })\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const answers = {};\n\n if (props.model.config && props.model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (props.model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (props.session &&\n props.session.answers &&\n props.session.answers[`r${answerBlocks}`] &&\n props.session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.alwaysShowCorrect || false,\n };\n }\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n return {\n htmlString: `<div class=\"${classes.blockContainer}\">\n <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n <div class=\"${classes.blockMath}\">\n <span id=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model, classes } = this.props;\n const { session, showCorrect } = this.state;\n const answers = session.answers;\n\n if (this.root && model.disabled && !showCorrect) {\n Object.keys(answers).forEach((answerId) => {\n const el = this.root.querySelector(`#${answerId}`);\n const indexEl = this.root.querySelector(`#${answerId}Index`);\n // const correct = model.correctness && model.correctness.correct;\n\n if (el) {\n let MQ = MathQuill.getInterface(2);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (!model.view) {\n // for now, we're not going to be showing individual response correctness\n // TODO re-attach the classes once we are\n // el.parentElement.parentElement.classList.add(\n // correct ? classes.correct : classes.incorrect\n // );\n } else {\n el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n // For now, we're not going to be indexing response blocks\n // TODO go back to indexing once we support individual response correctness\n // indexEl.textContent = `R${idx + 1}`;\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (config.note && config.language && config.language !== nextConfig.language && config.note === translator.t('mathInline.primaryCorrectWithAlternates', { lng: config.language })) {\n config.note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: nextConfig.language });\n }\n\n if ((config.env && config.env.mode !== 'evaluate') || (nextConfig.env && nextConfig.env.mode !== 'evaluate')) {\n this.setState({ ...this.state.session, showCorrect: false });\n }\n\n if (nextConfig.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n if (\n (config && config.responses && config.responses.length !== nextConfig.responses.length) ||\n (!config && nextConfig && nextConfig.responses) ||\n (config && nextConfig && config.expression !== nextConfig.expression)\n ) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n let answerBlocks = 1; // assume one at least\n\n // build out local state model using responses declared in expression\n (nextConfig.expression || '').replace(REGEX, () => {\n newAnswers[`r${answerBlocks}`] = {\n value: (answers && answers[`r${answerBlocks}`] && answers[`r${answerBlocks}`].value) || '',\n };\n answerBlocks++;\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: newAnswers,\n },\n }),\n this.handleAnswerBlockDomUpdate,\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\n };\n\n onSubFieldFocus = (id) => {\n this.setState({ activeAnswerBlock: id });\n };\n\n toNodeData = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') {\n return data;\n } else if (type === 'answer') {\n return { type: 'answer', ...data };\n } else if (value === 'clear') {\n return { type: 'clear' };\n } else {\n return { type: 'write', value };\n }\n };\n\n setInput = (input) => {\n this.input = input;\n };\n\n onClick = (data) => {\n const c = this.toNodeData(data);\n\n if (c.type === 'clear') {\n this.input.clear();\n } else if (c.type === 'command') {\n if (Array.isArray(c.value)) {\n c.value.forEach((vv) => {\n this.input.cmd(vv);\n });\n } else {\n this.input.cmd(c.value);\n }\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else {\n this.input.write(c.value);\n }\n\n this.input.focus();\n };\n\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show }, this.handleAnswerBlockDomUpdate);\n };\n\n subFieldChanged = (name, subfieldValue) => {\n updateSpans();\n\n if (name) {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: {\n ...state.session.answers,\n [name]: { value: subfieldValue },\n },\n },\n }),\n this.callOnSessionChange,\n );\n }\n };\n\n getFieldName = (changeField, fields) => {\n const { answers } = this.state.session;\n\n if (Object.keys(answers || {}).length) {\n const keys = Object.keys(answers);\n\n return keys.find((k) => {\n const tf = fields[k];\n\n return tf && tf.id == changeField.id;\n });\n }\n };\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n if (\n !relatedTarget ||\n !currentTarget ||\n (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n ) {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector('[role=\\'tooltip\\']');\n\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n render() {\n const { model, classes } = this.props;\n const { activeAnswerBlock, showCorrect, session } = this.state;\n const {\n config,\n correctness,\n disabled,\n view,\n teacherInstructions,\n rationale,\n feedback,\n animationsDisabled,\n printMode,\n alwaysShowCorrect,\n language\n } = model || {};\n\n if (!config) {\n return null;\n }\n\n const {\n showNote,\n note,\n prompt,\n responses,\n responseType,\n equationEditor,\n customKeys,\n env: { mode, role } = {},\n } = config || {};\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const tooltipModeEnabled = disabled && correctness;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n const viewMode = disabled && !correctness;\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n const printView = (\n <div className={classes.printContainer}>\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </div>\n );\n\n const midContent = (\n <div className={classes.main}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n {viewMode &&\n teacherInstructions &&\n hasText(teacherInstructions) &&\n (!animationsDisabled ? (\n <Collapsible\n className={classes.collapsible}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n ))}\n\n {prompt && (\n <div className={classes.content}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer}>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !correct && !showCorrect,\n [classes.correct]: !emptyResponse && (correct || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n [classes.printCorrect]: printMode && alwaysShowCorrect,\n })}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n interactive\n open={!!activeAnswerBlock}\n classes={{\n tooltip: classes.keypadTooltip,\n popper: classes.keypadTooltipPopper,\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{\n // marginTop: this.mqStatic && this.mqStatic.input.offsetHeight - 20,\n width: getKeyPadWidth(additionalKeys, equationEditor),\n }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </Tooltip>\n </div>\n )}\n </div>\n </Readable>\n )}\n\n {viewMode && displayNote && (\n <div className={classes.note} dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }} />\n )}\n\n {viewMode &&\n rationale &&\n hasText(rationale) &&\n (!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n ))}\n </div>\n );\n\n if (\n tooltipModeEnabled &&\n (showCorrectAnswerToggle ||\n (teacherInstructions && hasText(teacherInstructions)) ||\n (rationale && hasText(rationale)) ||\n feedback)\n ) {\n return (\n <Tooltip\n interactive\n classes={{\n tooltip: classes.tooltip,\n popper: classes.tooltipPopper,\n }}\n title={\n <div>\n <div className={classes.main}>\n {showCorrectAnswerToggle && (\n <CorrectAnswerToggle\n language={language}\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-teacher-instructions\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n {displayNote && hasText(note) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-note\"\n labels={{\n hidden: translator.t('common:showNote', { lng: language }),\n visible: translator.t('common:hideNote', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={note} />\n </Collapsible>\n )}\n\n {rationale && hasText(rationale) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-rationale\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n\n {feedback && <Feedback correctness={correctness.correctness} feedback={feedback} />}\n </div>\n }\n >\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n </Tooltip>\n );\n }\n\n return (\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 2,\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\n },\n tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n main: {\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n },\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n note: {\n paddingBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n // position: 'absolute',\n // right: 0,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n margin: (theme.spacing.unit * 2) / 3,\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0,\n },\n },\n },\n static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important',\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n printCorrect: {\n border: `2px solid ${color.correct()} !important`,\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: `${theme.spacing.unit}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n flex: 2,\n color: 'grey',\n background: theme.palette.grey['A100'],\n fontSize: '0.8rem !important',\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: `2px solid ${color.disabled()} !important`,\n },\n toggle: {\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 8,\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n printContainer: {\n marginBottom: theme.spacing.unit,\n pointerEvents: 'none',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
package/lib/print.js CHANGED
@@ -130,4 +130,4 @@ var MathInlinePrint = /*#__PURE__*/function (_HTMLElement) {
130
130
  }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
131
131
 
132
132
  exports["default"] = MathInlinePrint;
133
- //# sourceMappingURL=print.js.map
133
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmludC5qcyJdLCJuYW1lcyI6WyJsb2ciLCJwcmVwYXJlUHJpbnRNb2RlbCIsIm1vZGVsIiwib3B0cyIsImluc3RyIiwicm9sZSIsInByb21wdCIsInByb21wdEVuYWJsZWQiLCJ1bmRlZmluZWQiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJyYXRpb25hbGUiLCJyYXRpb25hbGVFbmFibGVkIiwic2hvd1RlYWNoZXJJbnN0cnVjdGlvbnMiLCJhbHdheXNTaG93Q29ycmVjdCIsInByaW50TW9kZSIsImZlZWRiYWNrIiwiZXhwcmVzc2lvbiIsImFuaW1hdGlvbnNEaXNhYmxlZCIsImRpc2FibGVkIiwiY29uZmlnIiwiZW52IiwibW9kZSIsIk1hdGhJbmxpbmVQcmludCIsIl9vcHRpb25zIiwiX21vZGVsIiwiX3Nlc3Npb24iLCJfcmVyZW5kZXIiLCJwcmludE1vZGVsIiwiZWxlbWVudCIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIk1haW4iLCJzZXNzaW9uIiwiUmVhY3RET00iLCJyZW5kZXIiLCJsZWFkaW5nIiwidHJhaWxpbmciLCJvIiwicyIsIkhUTUxFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsdUJBQU0sK0JBQU4sQ0FBWjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBb0IsQ0FBQ0MsS0FBRCxFQUFRQyxJQUFSLEVBQWlCO0FBQ3pDLE1BQU1DLEtBQUssR0FBR0QsSUFBSSxDQUFDRSxJQUFMLEtBQWMsWUFBNUI7QUFFQUgsRUFBQUEsS0FBSyxDQUFDSSxNQUFOLEdBQWVKLEtBQUssQ0FBQ0ssYUFBTixLQUF3QixLQUF4QixHQUFnQ0wsS0FBSyxDQUFDSSxNQUF0QyxHQUErQ0UsU0FBOUQ7QUFDQU4sRUFBQUEsS0FBSyxDQUFDTyxtQkFBTixHQUNFTCxLQUFLLElBQUlGLEtBQUssQ0FBQ1EsMEJBQU4sS0FBcUMsS0FBOUMsR0FBc0RSLEtBQUssQ0FBQ08sbUJBQTVELEdBQWtGRCxTQURwRjtBQUVBTixFQUFBQSxLQUFLLENBQUNTLFNBQU4sR0FBa0JQLEtBQUssSUFBSUYsS0FBSyxDQUFDVSxnQkFBTixLQUEyQixLQUFwQyxHQUE0Q1YsS0FBSyxDQUFDUyxTQUFsRCxHQUE4REgsU0FBaEY7QUFDQU4sRUFBQUEsS0FBSyxDQUFDVyx1QkFBTixHQUFnQ1QsS0FBaEM7QUFDQUYsRUFBQUEsS0FBSyxDQUFDWSxpQkFBTixHQUEwQlYsS0FBMUI7QUFDQUYsRUFBQUEsS0FBSyxDQUFDYSxTQUFOLEdBQWtCLElBQWxCO0FBQ0FiLEVBQUFBLEtBQUssQ0FBQ2MsUUFBTixHQUFpQlIsU0FBakI7QUFDQU4sRUFBQUEsS0FBSyxDQUFDZSxVQUFOLEdBQW1CZixLQUFLLENBQUNlLFVBQU4sSUFBb0IsY0FBdkM7QUFFQWYsRUFBQUEsS0FBSyxDQUFDZ0Isa0JBQU4sR0FBMkIsSUFBM0I7QUFDQSx5Q0FDS2hCLEtBREw7QUFFRWlCLElBQUFBLFFBQVEsRUFBRSxJQUZaO0FBR0VDLElBQUFBLE1BQU0sa0NBQ0RsQixLQURDO0FBRUptQixNQUFBQSxHQUFHLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFbEIsS0FBSyxHQUFHLFVBQUgsR0FBZ0JGLEtBQUssQ0FBQ29CLElBQW5DO0FBQXlDakIsUUFBQUEsSUFBSSxFQUFFRixJQUFJLENBQUNFO0FBQXBEO0FBRkQ7QUFIUjtBQVFELENBdEJEOztJQXdCcUJrQixlOzs7OztBQUNuQiw2QkFBYztBQUFBOztBQUFBO0FBQ1o7QUFDQSxVQUFLQyxRQUFMLEdBQWdCLElBQWhCO0FBQ0EsVUFBS0MsTUFBTCxHQUFjLElBQWQ7QUFDQSxVQUFLQyxRQUFMLEdBQWdCLEVBQWhCO0FBQ0EsVUFBS0MsU0FBTCxHQUFpQiwwQkFDZixZQUFNO0FBQ0osVUFBSSxNQUFLRixNQUFMLElBQWUsTUFBS0MsUUFBeEIsRUFBa0M7QUFDaEMsWUFBTUUsVUFBVSxHQUFHM0IsaUJBQWlCLENBQUMsTUFBS3dCLE1BQU4sRUFBYyxNQUFLRCxRQUFuQixDQUFwQzs7QUFFQSxZQUFNSyxPQUFPLEdBQ1gsTUFBS0wsUUFBTCxpQkFDQU0sa0JBQU1DLGFBQU4sQ0FBb0JDLGdCQUFwQixFQUEwQjtBQUN4QjlCLFVBQUFBLEtBQUssRUFBRTBCLFVBRGlCO0FBRXhCSyxVQUFBQSxPQUFPLEVBQUU7QUFGZSxTQUExQixDQUZGOztBQU9BQyw2QkFBU0MsTUFBVCxDQUFnQk4sT0FBaEIsa0RBQStCLFlBQU07QUFDbkM3QixVQUFBQSxHQUFHLENBQUMsK0JBQUQsQ0FBSDtBQUNBO0FBQ0QsU0FIRDtBQUlELE9BZEQsTUFjTztBQUNMQSxRQUFBQSxHQUFHLENBQUMsTUFBRCxDQUFIO0FBQ0Q7QUFDRixLQW5CYyxFQW9CZixFQXBCZSxFQXFCZjtBQUFFb0MsTUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JDLE1BQUFBLFFBQVEsRUFBRTtBQUE1QixLQXJCZSxDQUFqQjtBQUxZO0FBNEJiOzs7O1NBQ0QsYUFBWUMsQ0FBWixFQUFlO0FBQ2IsV0FBS2QsUUFBTCxHQUFnQmMsQ0FBaEI7QUFDRDs7O1NBRUQsYUFBVUMsQ0FBVixFQUFhO0FBQ1gsV0FBS2QsTUFBTCxHQUFjYyxDQUFkOztBQUNBLFdBQUtaLFNBQUw7QUFDRDs7O1dBRUQsNkJBQW9CLENBQUU7OztrREF2Q3FCYSxXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2xvZGFzaC9kZWJvdW5jZSc7XG5pbXBvcnQgTWFpbiBmcm9tICcuL21haW4nO1xuaW1wb3J0IHsgcmVuZGVyTWF0aCB9IGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L21hdGgtcmVuZGVyaW5nJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdwaWUtZWxlbWVudDptYXRoLWlubGluZTpwcmludCcpO1xuXG4vKipcbiAqIExpdmUgaW4gc2FtZSBwYWNrYWdlIGFzIG1haW4gZWxlbWVudCAtIHNvIHdlIGNhbiBhY2Nlc3Mgc29tZSBvZiB0aGUgc2hhcmVkIGNvbXBzIVxuICpcbiAqIC0gdXBkYXRlIHBzbGIgdG8gYnVpbGQgcHJpbnQgaWYgc3JjL3ByaW50LmpzIGlzIHRoZXJlXG4gKiAtIHVwZGF0ZSBkZW1vIGVsXG4gKiAtIGdldCBjb25maWd1cmUvY29udHJvbGxlciBidWlsZGluZ1xuICovXG5cbmNvbnN0IHByZXBhcmVQcmludE1vZGVsID0gKG1vZGVsLCBvcHRzKSA9PiB7XG4gIGNvbnN0IGluc3RyID0gb3B0cy5yb2xlID09PSAnaW5zdHJ1Y3Rvcic7XG5cbiAgbW9kZWwucHJvbXB0ID0gbW9kZWwucHJvbXB0RW5hYmxlZCAhPT0gZmFsc2UgPyBtb2RlbC5wcm9tcHQgOiB1bmRlZmluZWQ7XG4gIG1vZGVsLnRlYWNoZXJJbnN0cnVjdGlvbnMgPVxuICAgIGluc3RyICYmIG1vZGVsLnRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkICE9PSBmYWxzZSA/IG1vZGVsLnRlYWNoZXJJbnN0cnVjdGlvbnMgOiB1bmRlZmluZWQ7XG4gIG1vZGVsLnJhdGlvbmFsZSA9IGluc3RyICYmIG1vZGVsLnJhdGlvbmFsZUVuYWJsZWQgIT09IGZhbHNlID8gbW9kZWwucmF0aW9uYWxlIDogdW5kZWZpbmVkO1xuICBtb2RlbC5zaG93VGVhY2hlckluc3RydWN0aW9ucyA9IGluc3RyO1xuICBtb2RlbC5hbHdheXNTaG93Q29ycmVjdCA9IGluc3RyO1xuICBtb2RlbC5wcmludE1vZGUgPSB0cnVlO1xuICBtb2RlbC5mZWVkYmFjayA9IHVuZGVmaW5lZDtcbiAgbW9kZWwuZXhwcmVzc2lvbiA9IG1vZGVsLmV4cHJlc3Npb24gfHwgJ3t7cmVzcG9uc2V9fSc7XG5cbiAgbW9kZWwuYW5pbWF0aW9uc0Rpc2FibGVkID0gdHJ1ZTtcbiAgcmV0dXJuIHtcbiAgICAuLi5tb2RlbCxcbiAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICBjb25maWc6IHtcbiAgICAgIC4uLm1vZGVsLFxuICAgICAgZW52OiB7IG1vZGU6IGluc3RyID8gJ2V2YWx1YXRlJyA6IG1vZGVsLm1vZGUsIHJvbGU6IG9wdHMucm9sZSB9LFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNYXRoSW5saW5lUHJpbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fb3B0aW9ucyA9IG51bGw7XG4gICAgdGhpcy5fbW9kZWwgPSBudWxsO1xuICAgIHRoaXMuX3Nlc3Npb24gPSBbXTtcbiAgICB0aGlzLl9yZXJlbmRlciA9IGRlYm91bmNlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fbW9kZWwgJiYgdGhpcy5fc2Vzc2lvbikge1xuICAgICAgICAgIGNvbnN0IHByaW50TW9kZWwgPSBwcmVwYXJlUHJpbnRNb2RlbCh0aGlzLl9tb2RlbCwgdGhpcy5fb3B0aW9ucyk7XG5cbiAgICAgICAgICBjb25zdCBlbGVtZW50ID1cbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgJiZcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTWFpbiwge1xuICAgICAgICAgICAgICBtb2RlbDogcHJpbnRNb2RlbCxcbiAgICAgICAgICAgICAgc2Vzc2lvbjoge30sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgIFJlYWN0RE9NLnJlbmRlcihlbGVtZW50LCB0aGlzLCAoKSA9PiB7XG4gICAgICAgICAgICBsb2coJ3JlbmRlciBjb21wbGV0ZSAtIHJlbmRlciBtYXRoJyk7XG4gICAgICAgICAgICByZW5kZXJNYXRoKHRoaXMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZygnc2tpcCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgNTAsXG4gICAgICB7IGxlYWRpbmc6IGZhbHNlLCB0cmFpbGluZzogdHJ1ZSB9LFxuICAgICk7XG4gIH1cbiAgc2V0IG9wdGlvbnMobykge1xuICAgIHRoaXMuX29wdGlvbnMgPSBvO1xuICB9XG5cbiAgc2V0IG1vZGVsKHMpIHtcbiAgICB0aGlzLl9tb2RlbCA9IHM7XG4gICAgdGhpcy5fcmVyZW5kZXIoKTtcbiAgfVxuXG4gIGNvbm5lY3RlZENhbGxiYWNrKCkge31cbn1cbiJdfQ==
@@ -192,4 +192,4 @@ var SimpleQuestionBlock = (0, _styles.withStyles)(function (theme) {
192
192
  })(SimpleQuestionBlockRaw);
193
193
  var _default = SimpleQuestionBlock;
194
194
  exports["default"] = _default;
195
- //# sourceMappingURL=simple-question-block.js.map
195
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zaW1wbGUtcXVlc3Rpb24tYmxvY2suanN4Il0sIm5hbWVzIjpbIlNpbXBsZVF1ZXN0aW9uQmxvY2tSYXciLCJwcm9wcyIsImUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwibWF0aFRvb2xCYXJJZCIsImNvbnRhaW5zIiwidGFyZ2V0IiwibWF0aFRvb2xCYXJDb250YWluc1RhcmdldCIsInNldFN0YXRlIiwic2hvd0tleXBhZCIsInN0YXRlIiwiRGF0ZSIsImdldFRpbWUiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiaGFuZGxlQ2xpY2siLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY2xhc3NlcyIsIm1vZGVsIiwic2hvd0NvcnJlY3QiLCJzZXNzaW9uIiwiZW1wdHlSZXNwb25zZSIsIm9uU2ltcGxlUmVzcG9uc2VDaGFuZ2UiLCJjb25maWciLCJkaXNhYmxlZCIsImNvcnJlY3RuZXNzIiwiY29ycmVjdCIsInJlc3BvbnNlcyIsImVxdWF0aW9uRWRpdG9yIiwiZXhwcmVzc2lvbiIsImluY29ycmVjdCIsImxlbmd0aCIsImFuc3dlciIsInJlc3BvbnNlIiwiZWRpdG9yIiwicmVzcG9uc2VFZGl0b3IiLCJvbkZvY3VzIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJmdW5jIiwiaXNSZXF1aXJlZCIsImJvb2wiLCJTaW1wbGVRdWVzdGlvbkJsb2NrIiwidGhlbWUiLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJ3aWR0aCIsIm1heFdpZHRoIiwiaGVpZ2h0IiwidGV4dEFsaWduIiwicGFkZGluZyIsInNwYWNpbmciLCJ1bml0IiwiYm9yZGVyIiwiY29sb3IiLCJwcmltYXJ5TGlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJ0ZXh0IiwiYmFja2dyb3VuZCIsImZvbnRTaXplIiwibGV0dGVyU3BhY2luZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFD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QUEsT0FBTyxFQUFFUCxLQUFLLENBQUNRLE9BQU4sQ0FBY0MsSUFGZDtBQUdUUyxNQUFBQSxhQUFhLEVBQUU7QUFITjtBQXRDc0MsR0FBWjtBQUFBLENBQVgsRUEyQ3hCaEUsc0JBM0N3QixDQUE1QjtlQTZDZTZDLG1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1hdGhUb29sYmFyIH0gZnJvbSAnQHBpZS1saWIvcGllLXRvb2xib3gvbWF0aC10b29sYmFyJztcbmltcG9ydCB7IG1xIH0gZnJvbSAnQHBpZS1saWIvcGllLXRvb2xib3gvbWF0aC1pbnB1dCc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L3JlbmRlci11aSc7XG5cbmV4cG9ydCBjbGFzcyBTaW1wbGVRdWVzdGlvbkJsb2NrUmF3IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG9uU2ltcGxlUmVzcG9uc2VDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZW1wdHlSZXNwb25zZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2Vzc2lvbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNob3dDb3JyZWN0OiBQcm9wVHlwZXMuYm9vbCxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBzaG93S2V5cGFkOiB0cnVlLFxuICAgIH07XG4gICAgdGhpcy5tYXRoVG9vbEJhcklkID0gYG1hdGgtdG9vbGJhci0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfWA7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUNsaWNrKTtcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlQ2xpY2spO1xuICB9XG5cbiAgbWF0aFRvb2xCYXJDb250YWluc1RhcmdldCA9IChlKSA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm1hdGhUb29sQmFySWQpLmNvbnRhaW5zKGUudGFyZ2V0KTtcblxuICBoYW5kbGVDbGljayA9IChlKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghdGhpcy5tYXRoVG9vbEJhckNvbnRhaW5zVGFyZ2V0KGUpKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93S2V5cGFkOiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhlLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgfTtcblxuICBvbkZvY3VzID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7IHNob3dLZXlwYWQ6IHRydWUgfSk7XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2xhc3NlcywgbW9kZWwsIHNob3dDb3JyZWN0LCBzZXNzaW9uLCBlbXB0eVJlc3BvbnNlLCBvblNpbXBsZVJlc3BvbnNlQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgY29uZmlnLCBkaXNhYmxlZCwgY29ycmVjdG5lc3MgfSA9IG1vZGVsIHx8IHt9O1xuXG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb3JyZWN0ID0gY29ycmVjdG5lc3MgJiYgY29ycmVjdG5lc3MuY29ycmVjdDtcbiAgICBjb25zdCB7IHJlc3BvbnNlcywgZXF1YXRpb25FZGl0b3IgfSA9IGNvbmZpZztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5leHByZXNzaW9ufT5cbiAgICAgICAge3Nob3dDb3JyZWN0IHx8IGRpc2FibGVkID8gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5zdGF0aWMsIHtcbiAgICAgICAgICAgICAgW2NsYXNzZXMuaW5jb3JyZWN0XTogIWVtcHR5UmVzcG9uc2UgJiYgIWNvcnJlY3QgJiYgIXNob3dDb3JyZWN0LFxuICAgICAgICAgICAgICBbY2xhc3Nlcy5jb3JyZWN0XTogIWVtcHR5UmVzcG9uc2UgJiYgKGNvcnJlY3QgfHwgc2hvd0NvcnJlY3QpLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1xLlN0YXRpY1xuICAgICAgICAgICAgICBsYXRleD17c2hvd0NvcnJlY3QgPyByZXNwb25zZXMgJiYgcmVzcG9uc2VzLmxlbmd0aCAmJiByZXNwb25zZXNbMF0uYW5zd2VyIDogc2Vzc2lvbi5yZXNwb25zZSB8fCAnJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPGRpdiBpZD17dGhpcy5tYXRoVG9vbEJhcklkfT5cbiAgICAgICAgICAgIDxNYXRoVG9vbGJhclxuICAgICAgICAgICAgICBjbGFzc05hbWVzPXt7IGVkaXRvcjogY2xhc3Nlcy5yZXNwb25zZUVkaXRvciB9fVxuICAgICAgICAgICAgICBsYXRleD17c2Vzc2lvbi5yZXNwb25zZSB8fCAnJ31cbiAgICAgICAgICAgICAga2V5cGFkTW9kZT17ZXF1YXRpb25FZGl0b3J9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblNpbXBsZVJlc3BvbnNlQ2hhbmdlfVxuICAgICAgICAgICAgICBvbkRvbmU9eygpID0+IHt9fVxuICAgICAgICAgICAgICBvbkZvY3VzPXt0aGlzLm9uRm9jdXN9XG4gICAgICAgICAgICAgIGNvbnRyb2xsZWRLZXlwYWQ9e3RydWV9XG4gICAgICAgICAgICAgIHNob3dLZXlwYWQ9e3RoaXMuc3RhdGUuc2hvd0tleXBhZH1cbiAgICAgICAgICAgICAgaGlkZURvbmVCdXR0b249e3RydWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBTaW1wbGVRdWVzdGlvbkJsb2NrID0gd2l0aFN0eWxlcygodGhlbWUpID0+ICh7XG4gIHJlc3BvbnNlRWRpdG9yOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICB3aWR0aDogJ2F1dG8nLFxuICAgIG1heFdpZHRoOiAnZml0LWNvbnRlbnQnLFxuICAgIGhlaWdodDogJ2F1dG8nLFxuICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICAnJi5tcS1tYXRoLW1vZGUnOiB7XG4gICAgICBib3JkZXI6IGAxcHggc29saWQgJHtjb2xvci5wcmltYXJ5TGlnaHQoKX1gLFxuICAgIH0sXG4gIH0sXG4gIGV4cHJlc3Npb246IHtcbiAgICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICAgIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgfSxcbiAgc3RhdGljOiB7XG4gICAgY29sb3I6IGNvbG9yLnRleHQoKSxcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci5iYWNrZ3JvdW5kKCksXG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7Y29sb3IucHJpbWFyeUxpZ2h0KCl9YCxcbiAgICB3aWR0aDogJ2ZpdC1jb250ZW50JyxcbiAgICBmb250U2l6ZTogJzFyZW0nLFxuICAgIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcudW5pdCAvIDIsXG4gICAgJyYgPiAubXEtbWF0aC1tb2RlJzoge1xuICAgICAgJyYgPiAubXEtaGFzQ3Vyc29yJzoge1xuICAgICAgICAnJiA+IC5tcS1jdXJzb3InOiB7XG4gICAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBjb3JyZWN0OiB7XG4gICAgYm9yZGVyOiBgMnB4IHNvbGlkICR7Y29sb3IuY29ycmVjdCgpfSAhaW1wb3J0YW50YCxcbiAgICBwYWRkaW5nOiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgbGV0dGVyU3BhY2luZzogJzAuNXB4JyxcbiAgfSxcbiAgaW5jb3JyZWN0OiB7XG4gICAgYm9yZGVyOiBgMnB4IHNvbGlkICR7Y29sb3IuaW5jb3JyZWN0KCl9ICFpbXBvcnRhbnRgLFxuICAgIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICBsZXR0ZXJTcGFjaW5nOiAnMC41cHgnLFxuICB9LFxufSkpKFNpbXBsZVF1ZXN0aW9uQmxvY2tSYXcpO1xuXG5leHBvcnQgZGVmYXVsdCBTaW1wbGVRdWVzdGlvbkJsb2NrO1xuIl19
package/lib/utils.js CHANGED
@@ -9,4 +9,4 @@ var ResponseTypes = {
9
9
  simple: 'Simple'
10
10
  };
11
11
  exports.ResponseTypes = ResponseTypes;
12
- //# sourceMappingURL=utils.js.map
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJuYW1lcyI6WyJSZXNwb25zZVR5cGVzIiwiYWR2YW5jZWQiLCJzaW1wbGUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLElBQU1BLGFBQWEsR0FBRztBQUMzQkMsRUFBQUEsUUFBUSxFQUFFLGdCQURpQjtBQUUzQkMsRUFBQUEsTUFBTSxFQUFFO0FBRm1CLENBQXRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJlc3BvbnNlVHlwZXMgPSB7XG4gIGFkdmFuY2VkOiAnQWR2YW5jZWQgTXVsdGknLFxuICBzaW1wbGU6ICdTaW1wbGUnLFxufTtcbiJdfQ==
package/module/demo.js ADDED
@@ -0,0 +1,66 @@
1
+ import Configure from './configure.js';
2
+ import Element from './element.js';
3
+ import * as controller from './controller.js';
4
+
5
+ var generate = {};
6
+
7
+ /* const initialModel = {
8
+ customKeys: [],
9
+ equationEditor: 'geometry',
10
+ responseType: 'Advanced Multi',
11
+ expression: '{{response}}',
12
+ responses: [
13
+ {
14
+ answer: 'r=\\sqrt{\\frac{V}{7\\pi}}',
15
+ id: '1',
16
+ alternates: {},
17
+ validation: 'literal',
18
+ },
19
+ ],
20
+ note: 'The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct.',
21
+ rationale:
22
+ '<p>The correct answer is:</p><ul><li><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>r</mi><mo>=</mo><msqrt><mfrac><mi>V</mi><mrow><mn>7</mn><mi>&#960;</mi></mrow></mfrac></msqrt></math></li></ul>',
23
+ }; */
24
+
25
+ const E262456 = {
26
+ equationEditor: 3,
27
+ toolbarEditorPosition: 'bottom',
28
+ prompt:
29
+ '<p><strong>B.</strong> Find the value of the expression that you wrote in part A to find how much money the band members made.</p>\n\n<p>Use the on-screen keyboard to type your answer in the box below.</p>\n',
30
+ expression: '${{response}}',
31
+ responses: [
32
+ {
33
+ allowSpaces: true,
34
+ // 'validation': 'symbolic',
35
+ answer: '$410',
36
+ id: '1',
37
+ },
38
+ ],
39
+ responseType: 'Advanced Multi',
40
+ };
41
+
42
+ generate.model = (id, element) => ({
43
+ id,
44
+ element,
45
+ ...E262456,
46
+ rubricEnabled: false,
47
+ });
48
+
49
+ const { model } = generate;
50
+
51
+ var config = {
52
+ elements: {
53
+ 'math-inline': '../..',
54
+ },
55
+ models: [model('1', 'math-inline')],
56
+ };
57
+
58
+ //Note: demo-el is a custom element loaded in the markup.
59
+ customElements.whenDefined("demo-el").then(() => {
60
+ config.models.forEach((m) => {
61
+ const de = document.createElement("demo-el");
62
+ document.body.appendChild(de);
63
+ de.def = { tagName: m.element, Element, Configure, controller };
64
+ de.model = m;
65
+ });
66
+ });