@pie-element/explicit-constructed-response 9.3.2-tip-tap.2 → 9.3.2-tip-tap.4

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.
Files changed (37) hide show
  1. package/configure/lib/__tests__/alternateResponses.test.js +335 -0
  2. package/configure/lib/__tests__/alternateSection.test.js +289 -0
  3. package/configure/lib/__tests__/ecr-toolbar.test.js +87 -0
  4. package/configure/lib/__tests__/main.test.js +320 -0
  5. package/configure/lib/__tests__/markupUtils.test.js +56 -0
  6. package/configure/lib/__tests__/utils.test.js +66 -0
  7. package/configure/lib/alternateResponses.js +1 -1
  8. package/configure/lib/alternateSection.js +1 -1
  9. package/configure/lib/defaults.js +1 -1
  10. package/configure/lib/ecr-toolbar.js +1 -1
  11. package/configure/lib/index.js +1 -1
  12. package/configure/lib/main.js +1 -1
  13. package/configure/lib/markupUtils.js +1 -1
  14. package/configure/lib/utils.js +1 -1
  15. package/configure/package.json +3 -3
  16. package/controller/lib/__tests__/index.spec.js +52 -0
  17. package/controller/lib/__tests__/index.test.js +1205 -0
  18. package/controller/lib/defaults.js +1 -1
  19. package/controller/lib/index.js +1 -1
  20. package/lib/__tests__/main.test.js +124 -0
  21. package/lib/index.js +1 -1
  22. package/lib/main.js +1 -1
  23. package/lib/print.js +1 -1
  24. package/package.json +3 -3
  25. package/configure/lib/alternateResponses.js.map +0 -1
  26. package/configure/lib/alternateSection.js.map +0 -1
  27. package/configure/lib/defaults.js.map +0 -1
  28. package/configure/lib/ecr-toolbar.js.map +0 -1
  29. package/configure/lib/index.js.map +0 -1
  30. package/configure/lib/main.js.map +0 -1
  31. package/configure/lib/markupUtils.js.map +0 -1
  32. package/configure/lib/utils.js.map +0 -1
  33. package/controller/lib/defaults.js.map +0 -1
  34. package/controller/lib/index.js.map +0 -1
  35. package/lib/index.js.map +0 -1
  36. package/lib/main.js.map +0 -1
  37. package/lib/print.js.map +0 -1
@@ -21,4 +21,4 @@ var _default = {
21
21
  toolbarEditorPosition: 'bottom'
22
22
  };
23
23
  exports["default"] = _default;
24
- //# sourceMappingURL=defaults.js.map
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0cy5qcyJdLCJuYW1lcyI6WyJjaG9pY2VzIiwiZGlzcGxheVR5cGUiLCJtYXJrdXAiLCJtYXhMZW5ndGhQZXJDaG9pY2VFbmFibGVkIiwicGxheWVyU3BlbGxDaGVja0VuYWJsZWQiLCJwcm9tcHQiLCJwcm9tcHRFbmFibGVkIiwicmF0aW9uYWxlIiwicmF0aW9uYWxlRW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwic3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJ0b29sYmFyRWRpdG9yUG9zaXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7OztlQUFlO0FBQ2JBLEVBQUFBLE9BQU8sRUFBRSxFQURJO0FBRWJDLEVBQUFBLFdBQVcsRUFBRSxPQUZBO0FBR2JDLEVBQUFBLE1BQU0sRUFBRSxFQUhLO0FBSWJDLEVBQUFBLHlCQUF5QixFQUFFLElBSmQ7QUFLYkMsRUFBQUEsdUJBQXVCLEVBQUUsSUFMWjtBQU1iQyxFQUFBQSxNQUFNLEVBQUUsRUFOSztBQU9iQyxFQUFBQSxhQUFhLEVBQUUsSUFQRjtBQVFiQyxFQUFBQSxTQUFTLEVBQUUsRUFSRTtBQVNiQyxFQUFBQSxnQkFBZ0IsRUFBRSxJQVRMO0FBVWJDLEVBQUFBLGlCQUFpQixFQUFFLElBVk47QUFXYkMsRUFBQUEsMEJBQTBCLEVBQUUsSUFYZjtBQVliQyxFQUFBQSxtQkFBbUIsRUFBRSxFQVpSO0FBYWJDLEVBQUFBLDBCQUEwQixFQUFFLElBYmY7QUFjYkMsRUFBQUEscUJBQXFCLEVBQUU7QUFkVixDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xuICBjaG9pY2VzOiB7fSxcbiAgZGlzcGxheVR5cGU6ICdibG9jaycsXG4gIG1hcmt1cDogJycsXG4gIG1heExlbmd0aFBlckNob2ljZUVuYWJsZWQ6IHRydWUsXG4gIHBsYXllclNwZWxsQ2hlY2tFbmFibGVkOiB0cnVlLFxuICBwcm9tcHQ6ICcnLFxuICBwcm9tcHRFbmFibGVkOiB0cnVlLFxuICByYXRpb25hbGU6ICcnLFxuICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICBzcGVsbENoZWNrRW5hYmxlZDogdHJ1ZSxcbiAgc3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gIHRlYWNoZXJJbnN0cnVjdGlvbnM6ICcnLFxuICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgdG9vbGJhckVkaXRvclBvc2l0aW9uOiAnYm90dG9tJyxcbn07XG4iXX0=
@@ -383,4 +383,4 @@ var validate = function validate() {
383
383
  };
384
384
 
385
385
  exports.validate = validate;
386
- //# sourceMappingURL=index.js.map
386
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJ0cmFuc2xhdG9yIiwiVHJhbnNsYXRvciIsImxvZyIsInByZXBhcmVDaG9pY2UiLCJtb2RlIiwiZGVmYXVsdEZlZWRiYWNrIiwiY2hvaWNlIiwib3V0IiwibGFiZWwiLCJ2YWx1ZSIsImNvcnJlY3QiLCJmZWVkYmFja1R5cGUiLCJmZWVkYmFjayIsInR5cGUiLCJnZXRGZWVkYmFjayIsImdldEFkanVzdGVkTGVuZ3RoIiwibGVuZ3RoIiwiZGVjb2RlSHRtbEVudGl0aWVzIiwic3RyIiwicmVwbGFjZSIsIm5vcm1hbGl6ZSIsInF1ZXN0aW9uIiwiZGVmYXVsdHMiLCJtb2RlbCIsInNlc3Npb24iLCJlbnYiLCJQcm9taXNlIiwicmVzb2x2ZSIsImNob2ljZXMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIm5vcm1hbGl6ZWRRdWVzdGlvbiIsImFzc2lnbiIsImluY29ycmVjdCIsInByZXBhcmVDaG9pY2VGbiIsIm9iaiIsImFyZWEiLCJyZXNwQXJlYSIsImNob3NlblZhbHVlIiwidmFsIiwiYyIsInByZXBhcmVWYWwiLCJzaG93Tm90ZSIsInZhbHVlcyIsInNvbWUiLCJub3RlIiwidCIsImxuZyIsImxhbmd1YWdlIiwibWF4TGVuZ3RoUGVyQ2hvaWNlIiwibWF4TGVuZ3RoUGVyQ2hvaWNlRW5hYmxlZCIsInVuZGVmaW5lZExlbmd0aHMiLCJsYWJlbExlbmd0aHNBcnIiLCJNYXRoIiwibWF4IiwiZGlzYWJsZWQiLCJkaXNwbGF5VHlwZSIsInJvbGUiLCJtYXJrdXAiLCJwbGF5ZXJTcGVsbENoZWNrRW5hYmxlZCIsInByb21wdCIsInByb21wdEVuYWJsZWQiLCJyYXRpb25hbGUiLCJyZXNwb25zZUNvcnJlY3QiLCJnZXRTY29yZSIsInVuZGVmaW5lZCIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJyZXNwb25zZUFyZWFJbnB1dENvbmZpZ3VyYXRpb24iLCJleHRyYUNTU1J1bGVzIiwicmF0aW9uYWxlRW5hYmxlZCIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIiwiaHRtbCIsImRlY29kZUhUTUwiLCJnZXRJbm5lclRleHQiLCJ0cmltIiwiY29uZmlnIiwicmVzcG9uc2VBcmVhcyIsIm1hdGNoIiwibWF4U2NvcmUiLCJjb3JyZWN0Q291bnQiLCJ0b3RhbCIsInRvRml4ZWQiLCJwYXJzZUZsb2F0Iiwib3V0Y29tZSIsInBhcnRpYWxTY29yaW5nRW5hYmxlZCIsInBhcnRpYWxTY29yaW5nIiwiZW5hYmxlZCIsInNjb3JlIiwiZW1wdHkiLCJjcmVhdGVDb3JyZWN0UmVzcG9uc2VTZXNzaW9uIiwiaSIsImlkIiwicmVwbGFjZUFsbCIsImdldENvbnRlbnQiLCJ2YWxpZGF0ZSIsIm1heFJlc3BvbnNlQXJlYXMiLCJhbGxDaG9pY2VzRXJyb3JzIiwiZXJyb3JzIiwiZmllbGQiLCJyZXF1aXJlZCIsImVudHJpZXMiLCJyZXZlcnNlZENob2ljZXMiLCJyZXZlcnNlIiwiY2hvaWNlc0Vycm9ycyIsImlkZW50aWNhbEFuc3dlciIsInNsaWNlIiwibmJPZlJlc3BvbnNlQXJlYXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQVFBLFVBQVIsR0FBdUJDLHNCQUF2QixDQUFRRCxVQUFSO0FBRUEsSUFBTUUsR0FBRyxHQUFHLHVCQUFNLDBDQUFOLENBQVo7O0FBRU8sSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDQyxJQUFELEVBQU9DLGVBQVA7QUFBQSxTQUEyQixVQUFDQyxNQUFELEVBQVk7QUFDbEUsUUFBTUMsR0FBRyxHQUFHO0FBQ1ZDLE1BQUFBLEtBQUssRUFBRUYsTUFBTSxDQUFDRSxLQURKO0FBRVZDLE1BQUFBLEtBQUssRUFBRUgsTUFBTSxDQUFDRztBQUZKLEtBQVo7O0FBS0EsUUFBSUwsSUFBSSxLQUFLLFVBQWIs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QUFELENBQWIsR0FBdUIsOEJBQXZCO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsWUFBTW9HLGVBQWUsR0FBR0gsZUFBZSxDQUFDSSxLQUFoQixDQUFzQjNFLEtBQUssR0FBRyxDQUE5QixFQUFpQ2MsSUFBakMsQ0FBc0MsVUFBQ0osQ0FBRDtBQUFBLGlCQUFPQSxDQUFDLENBQUNyQyxLQUFGLEtBQVlBLEtBQW5CO0FBQUEsU0FBdEMsQ0FBeEI7O0FBRUEsWUFBSXFHLGVBQUosRUFBcUI7QUFDbkJELFVBQUFBLGFBQWEsQ0FBQ25HLEtBQUQsQ0FBYixHQUF1QiwyQkFBdkI7QUFDRDtBQUNGO0FBQ0YsS0FaRDs7QUFjQSxRQUFJLENBQUMseUJBQVFtRyxhQUFSLENBQUwsRUFBNkI7QUFDM0JQLE1BQUFBLGdCQUFnQixDQUFDckUsR0FBRCxDQUFoQixHQUF3QjRFLGFBQXhCO0FBQ0Q7QUFDRixHQXJCRDtBQXVCQSxNQUFNRyxpQkFBaUIsR0FBRyxDQUFDaEQsTUFBTSxDQUFDbUIsS0FBUCxDQUFhLGdCQUFiLEtBQWtDLEVBQW5DLEVBQXVDbEUsTUFBakU7O0FBRUEsTUFBSStGLGlCQUFpQixHQUFHWCxnQkFBeEIsRUFBMEM7QUFDeENFLElBQUFBLE1BQU0sQ0FBQ3JCLGFBQVAsMEJBQXVDbUIsZ0JBQXZDO0FBQ0QsR0FGRCxNQUVPLElBQUlXLGlCQUFpQixHQUFHLENBQXhCLEVBQTJCO0FBQ2hDVCxJQUFBQSxNQUFNLENBQUNyQixhQUFQLEdBQXVCLG1EQUF2QjtBQUNEOztBQUVELE1BQUksQ0FBQyx5QkFBUW9CLGdCQUFSLENBQUwsRUFBZ0M7QUFDOUJDLElBQUFBLE1BQU0sQ0FBQzFFLE9BQVAsR0FBaUJ5RSxnQkFBakI7QUFDRDs7QUFFRCxTQUFPQyxNQUFQO0FBQ0QsQ0FoRE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IG1hcCBmcm9tICdsb2Rhc2gvbWFwJztcbmltcG9ydCByZWR1Y2UgZnJvbSAnbG9kYXNoL3JlZHVjZSc7XG5pbXBvcnQgZmluZCBmcm9tICdsb2Rhc2gvZmluZCc7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdoZSc7XG5pbXBvcnQgeyBwYXJ0aWFsU2NvcmluZyB9IGZyb20gJ0BwaWUtbGliL2NvbnRyb2xsZXItdXRpbHMnO1xuaW1wb3J0IFRyYW5zbGF0b3IgZnJvbSAnQHBpZS1saWIvdHJhbnNsYXRvcic7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi9kZWZhdWx0cyc7XG5cbmNvbnN0IHsgdHJhbnNsYXRvciB9ID0gVHJhbnNsYXRvcjtcblxuY29uc3QgbG9nID0gZGVidWcoJ2V4cGxpY2l0LWNvbnN0cnVjdGVkLXJlc3BvbnNlOmNvbnRyb2xsZXInKTtcblxuZXhwb3J0IGNvbnN0IHByZXBhcmVDaG9pY2UgPSAobW9kZSwgZGVmYXVsdEZlZWRiYWNrKSA9PiAoY2hvaWNlKSA9PiB7XG4gIGNvbnN0IG91dCA9IHtcbiAgICBsYWJlbDogY2hvaWNlLmxhYmVsLFxuICAgIHZhbHVlOiBjaG9pY2UudmFsdWUsXG4gIH07XG5cbiAgaWYgKG1vZGUgPT09ICdldmFsdWF0ZScpIHtcbiAgICBvdXQuY29ycmVjdCA9IHRydWU7XG5cbiAgICBjb25zdCBmZWVkYmFja1R5cGUgPSAoY2hvaWNlLmZlZWRiYWNrICYmIGNob2ljZS5mZWVkYmFjay50eXBlKSB8fCAnbm9uZSc7XG5cbiAgICBpZiAoZmVlZGJhY2tUeXBlID09PSAnZGVmYXVsdCcpIHtcbiAgICAgIG91dC5mZWVkYmFjayA9IGRlZmF1bHRGZWVkYmFja1snY29ycmVjdCddO1xuICAgIH0gZWxzZSBpZiAoZmVlZGJhY2tUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgb3V0LmZlZWRiYWNrID0gY2hvaWNlLmZlZWRiYWNrLnZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXQ7XG59O1xuXG5jb25zdCBnZXRGZWVkYmFjayA9ICh2YWx1ZSkgPT4ge1xuICBpZiAodmFsdWUpIHtcbiAgICByZXR1cm4gJ2NvcnJlY3QnO1xuICB9XG5cbiAgcmV0dXJuICdpbmNvcnJlY3QnO1xufTtcblxuLy8gYWxzbyB1c2VkIGluIGNvbmZpZ3VyZS9zcmMvbWFya3VwVXRpbHMuanNcbmNvbnN0IGdldEFkanVzdGVkTGVuZ3RoID0gKGxlbmd0aCkgPT4ge1xuICBpZiAobGVuZ3RoIDw9IDIpIHtcbiAgICByZXR1cm4gbGVuZ3RoICsgMjtcbiAgfVxuXG4gIGlmIChsZW5ndGggPD0gNCkge1xuICAgIHJldHVybiBsZW5ndGggKyAzO1xuICB9XG5cbiAgaWYgKGxlbmd0aCA8PSA2KSB7XG4gICAgcmV0dXJuIGxlbmd0aCArIDQ7XG4gIH1cblxuICByZXR1cm4gbGVuZ3RoICsgNTtcbn07XG5cbi8vIHdlIGNhbid0IHVzZSB0aGUgZG9tIHBhcnNlciBoZXJlIGJlY2F1c2UgaXQgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgbm9kZSBlbnZpcm9ubWVudFxuY29uc3QgZGVjb2RlSHRtbEVudGl0aWVzID0gKHN0cikgPT4ge1xuICBpZiAoIXN0cikgcmV0dXJuICcnO1xuICByZXR1cm4gc3RyXG4gICAgLnJlcGxhY2UoLyZsdDsvZywgJzwnKVxuICAgIC5yZXBsYWNlKC8mZ3Q7L2csICc+JylcbiAgICAucmVwbGFjZSgvJnF1b3Q7L2csICdcIicpXG4gICAgLnJlcGxhY2UoLyYjeDI3O3wmIzM5Oy9nLCAnXFwnJylcbiAgICAucmVwbGFjZSgvJmFtcDsvZywgJyYnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemUgPSAocXVlc3Rpb24pID0+ICh7IC4uLmRlZmF1bHRzLCAuLi5xdWVzdGlvbiB9KTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHsqfSBxdWVzdGlvblxuICogQHBhcmFtIHsqfSBzZXNzaW9uXG4gKiBAcGFyYW0geyp9IGVudlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWwocXVlc3Rpb24sIHNlc3Npb24sIGVudikge1xuICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAvLyB0aGlzIHdhcyBhZGRlZCB0byB0cmVhdCBhbiBleGNlcHRpb24sIHdoZW4gdGhlIG1vZGVsIGhhcyBjaG9pY2VzIHdpdGhvdXRcbiAgICAvLyB0aGUgXCJ2YWx1ZVwiIHByb3BlcnR5IGxpa2U6IHsgbGFiZWw6ICd0ZXN0JyB9XG4gICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMpIHtcbiAgICAgIE9iamVjdC5rZXlzKHF1ZXN0aW9uLmNob2ljZXMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBxdWVzdGlvbi5jaG9pY2VzW2tleV0gPSAocXVlc3Rpb24uY2hvaWNlc1trZXldIHx8IFtdKS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgaWYgKCFpdGVtLnZhbHVlKSB7XG4gICAgICAgICAgICBsb2coJ0Nob2ljZSBkb2VzIG5vdCBjb250YWluIFwidmFsdWVcIiBwcm9wZXJ0eSwgd2hpY2ggaXMgcmVxdWlyZWQuJywgaXRlbSk7XG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogYCR7aW5kZXh9YCwgLi4uaXRlbSB9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWRRdWVzdGlvbiA9IG5vcm1hbGl6ZShxdWVzdGlvbik7XG4gICAgY29uc3QgZGVmYXVsdEZlZWRiYWNrID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHsgY29ycmVjdDogJ0NvcnJlY3QnLCBpbmNvcnJlY3Q6ICdJbmNvcnJlY3QnIH0sXG4gICAgICBub3JtYWxpemVkUXVlc3Rpb24uZGVmYXVsdEZlZWRiYWNrLFxuICAgICk7XG4gICAgY29uc3QgcHJlcGFyZUNob2ljZUZuID0gcHJlcGFyZUNob2ljZShlbnYubW9kZSwgZGVmYXVsdEZlZWRiYWNrKTtcbiAgICBjb25zdCBjaG9pY2VzID0gcmVkdWNlKFxuICAgICAgbm9ybWFsaXplZFF1ZXN0aW9uLmNob2ljZXMsXG4gICAgICAob2JqLCBhcmVhLCBrZXkpID0+IHtcbiAgICAgICAgb2JqW2tleV0gPSBtYXAoYXJlYSwgcHJlcGFyZUNob2ljZUZuKTtcblxuICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgfSxcbiAgICAgIHt9LFxuICAgICk7XG5cbiAgICBjb25zdCB7IHZhbHVlID0ge30gfSA9IHNlc3Npb24gfHwge307XG4gICAgY29uc3QgZmVlZGJhY2sgPVxuICAgICAgZW52Lm1vZGUgPT09ICdldmFsdWF0ZSdcbiAgICAgICAgPyByZWR1Y2UoXG4gICAgICAgICAgICBub3JtYWxpemVkUXVlc3Rpb24uY2hvaWNlcyxcbiAgICAgICAgICAgIChvYmosIHJlc3BBcmVhLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY2hvc2VuVmFsdWUgPSB2YWx1ZSAmJiB2YWx1ZVtrZXldO1xuICAgICAgICAgICAgICBjb25zdCB2YWwgPVxuICAgICAgICAgICAgICAgICFpc0VtcHR5KGNob3NlblZhbHVlKSAmJiBmaW5kKHJlc3BBcmVhLCAoYykgPT4gcHJlcGFyZVZhbChjLmxhYmVsKSA9PT0gcHJlcGFyZVZhbChjaG9zZW5WYWx1ZSkpO1xuXG4gICAgICAgICAgICAgIG9ialtrZXldID0gZ2V0RmVlZGJhY2sodmFsKTtcblxuICAgICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgIClcbiAgICAgICAgOiB7fTtcblxuICAgIC8vIGNoZWNrIGlmIGF0IGxlYXN0IG9uZSBjaG9pY2UgaGFzIGFuIGFsdGVybmF0ZVxuICAgIGNvbnN0IHNob3dOb3RlID0gT2JqZWN0LnZhbHVlcyhjaG9pY2VzKS5zb21lKChjaG9pY2UpID0+IGNob2ljZT8ubGVuZ3RoID4gMSk7XG4gICAgY29uc3Qgbm90ZSA9XG4gICAgICBub3JtYWxpemVkUXVlc3Rpb24ubm90ZSB8fFxuICAgICAgdHJhbnNsYXRvci50KCdjb21tb246Y29tbW9uQ29ycmVjdEFuc3dlcldpdGhBbHRlcm5hdGVzJywgeyBsbmc6IG5vcm1hbGl6ZWRRdWVzdGlvbi5sYW5ndWFnZSB9KTtcblxuICAgIGNvbnN0IHsgbWF4TGVuZ3RoUGVyQ2hvaWNlID0gW10sIG1heExlbmd0aFBlckNob2ljZUVuYWJsZWQgfSA9IG5vcm1hbGl6ZWRRdWVzdGlvbjtcbiAgICBjb25zdCB1bmRlZmluZWRMZW5ndGhzID0gIW1heExlbmd0aFBlckNob2ljZS5sZW5ndGg7XG5cbiAgICAvLyBjYWxjdWxhdGUgbWF4TGVuZ3RoUGVyQ2hvaWNlIGFycmF5IGlmIGl0IGlzIG5vdCBkZWZpbmVkIG9yIGRlZmluZWQgaW5jb3JyZWN0bHlcbiAgICBPYmplY3QudmFsdWVzKGNob2ljZXMpLmZvckVhY2goKGNob2ljZSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsTGVuZ3Roc0FyciA9IChjaG9pY2UgfHwgW10pLm1hcCgoY2hvaWNlKSA9PiBkZWNvZGVIdG1sRW50aXRpZXMoY2hvaWNlLmxhYmVsIHx8ICcnKS5sZW5ndGgpO1xuICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5tYXgoLi4ubGFiZWxMZW5ndGhzQXJyKTtcblxuICAgICAgaWYgKFxuICAgICAgICB1bmRlZmluZWRMZW5ndGhzIHx8XG4gICAgICAgICFtYXhMZW5ndGhQZXJDaG9pY2VbaW5kZXhdIHx8XG4gICAgICAgIG1heExlbmd0aFBlckNob2ljZVtpbmRleF0gPCBsZW5ndGggfHxcbiAgICAgICAgbWF4TGVuZ3RoUGVyQ2hvaWNlW2luZGV4XSA+IGxlbmd0aCArIDEwXG4gICAgICApIHtcbiAgICAgICAgbWF4TGVuZ3RoUGVyQ2hvaWNlW2luZGV4XSA9IGdldEFkanVzdGVkTGVuZ3RoKGxlbmd0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBvdXQgPSB7XG4gICAgICBjaG9pY2VzLFxuICAgICAgZGlzYWJsZWQ6IGVudi5tb2RlICE9PSAnZ2F0aGVyJyxcbiAgICAgIGRpc3BsYXlUeXBlOiBub3JtYWxpemVkUXVlc3Rpb24uZGlzcGxheVR5cGUsXG4gICAgICBtb2RlOiBlbnYubW9kZSxcbiAgICAgIHJvbGU6IGVudi5yb2xlLFxuICAgICAgZmVlZGJhY2ssXG4gICAgICBsYW5ndWFnZTogbm9ybWFsaXplZFF1ZXN0aW9uLmxhbmd1YWdlLFxuICAgICAgbWFya3VwOiBub3JtYWxpemVkUXVlc3Rpb24ubWFya3VwLFxuICAgICAgbWF4TGVuZ3RoUGVyQ2hvaWNlLFxuICAgICAgbWF4TGVuZ3RoUGVyQ2hvaWNlRW5hYmxlZCxcbiAgICAgIG5vdGUsXG4gICAgICBwbGF5ZXJTcGVsbENoZWNrRW5hYmxlZDogbm9ybWFsaXplZFF1ZXN0aW9uLnBsYXllclNwZWxsQ2hlY2tFbmFibGVkLFxuICAgICAgcHJvbXB0OiBub3JtYWxpemVkUXVlc3Rpb24ucHJvbXB0RW5hYmxlZCA/IG5vcm1hbGl6ZWRRdWVzdGlvbi5wcm9tcHQgOiBkZWZhdWx0cy5wcm9tcHQsXG4gICAgICByYXRpb25hbGU6IGRlZmF1bHRzLnJhdGlvbmFsZSxcbiAgICAgIHJlc3BvbnNlQ29ycmVjdDogZW52Lm1vZGUgPT09ICdldmFsdWF0ZScgPyBnZXRTY29yZShub3JtYWxpemVkUXVlc3Rpb24sIHNlc3Npb24pID09PSAxIDogdW5kZWZpbmVkLFxuICAgICAgc2hvd05vdGUsXG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiBkZWZhdWx0cy50ZWFjaGVySW5zdHJ1Y3Rpb25zLFxuICAgICAgcmVzcG9uc2VBcmVhSW5wdXRDb25maWd1cmF0aW9uOiBub3JtYWxpemVkUXVlc3Rpb24ucmVzcG9uc2VBcmVhSW5wdXRDb25maWd1cmF0aW9uLFxuICAgICAgZXh0cmFDU1NSdWxlczogbm9ybWFsaXplZFF1ZXN0aW9uLmV4dHJhQ1NTUnVsZXMsXG4gICAgfTtcblxuICAgIGlmIChlbnYucm9sZSA9PT0gJ2luc3RydWN0b3InICYmIChlbnYubW9kZSA9PT0gJ3ZpZXcnIHx8IGVudi5tb2RlID09PSAnZXZhbHVhdGUnKSkge1xuICAgICAgb3V0LnJhdGlvbmFsZSA9IG5vcm1hbGl6ZWRRdWVzdGlvbi5yYXRpb25hbGVFbmFibGVkID8gbm9ybWFsaXplZFF1ZXN0aW9uLnJhdGlvbmFsZSA6IGRlZmF1bHRzLnJhdGlvbmFsZTtcbiAgICAgIG91dC50ZWFjaGVySW5zdHJ1Y3Rpb25zID0gbm9ybWFsaXplZFF1ZXN0aW9uLnRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkXG4gICAgICAgID8gbm9ybWFsaXplZFF1ZXN0aW9uLnRlYWNoZXJJbnN0cnVjdGlvbnNcbiAgICAgICAgOiBkZWZhdWx0cy50ZWFjaGVySW5zdHJ1Y3Rpb25zO1xuICAgIH1cblxuICAgIHJlc29sdmUob3V0KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBwcmVwYXJlVmFsID0gKGh0bWwpID0+IHtcbiAgcmV0dXJuIGRlY29kZUhUTUwoZ2V0SW5uZXJUZXh0KGh0bWwpLnRyaW0oKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2NvcmUgPSAoY29uZmlnLCBzZXNzaW9uKSA9PiB7XG4gIGNvbnN0IHsgdmFsdWUgfSA9IHNlc3Npb24gfHwge307XG5cbiAgaWYgKCFzZXNzaW9uIHx8IGlzRW1wdHkoc2Vzc2lvbikgfHwgIXZhbHVlKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBjb25zdCByZXNwb25zZUFyZWFzID0gY29uZmlnLm1hcmt1cCAmJiBjb25maWcubWFya3VwLm1hdGNoKC9cXHtcXHsoLis/KVxcfVxcfS9nKTtcbiAgY29uc3QgbWF4U2NvcmUgPSByZXNwb25zZUFyZWFzID8gcmVzcG9uc2VBcmVhcy5sZW5ndGggOiAwO1xuICBjb25zdCBjb3JyZWN0Q291bnQgPSByZWR1Y2UoXG4gICAgY29uZmlnLmNob2ljZXMsXG4gICAgKHRvdGFsLCByZXNwQXJlYSwga2V5KSA9PiB7XG4gICAgICBjb25zdCBjaG9zZW5WYWx1ZSA9IHZhbHVlICYmIHZhbHVlW2tleV07XG5cbiAgICAgIGlmIChpc0VtcHR5KGNob3NlblZhbHVlKSB8fCAhZmluZChyZXNwQXJlYSwgKGMpID0+IHByZXBhcmVWYWwoYy5sYWJlbCkgPT09IHByZXBhcmVWYWwoY2hvc2VuVmFsdWUpKSkge1xuICAgICAgICByZXR1cm4gdG90YWw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0b3RhbCArIDE7XG4gICAgfSxcbiAgICAwLFxuICApO1xuXG4gIGNvbnN0IHN0ciA9IG1heFNjb3JlID8gKGNvcnJlY3RDb3VudCAvIG1heFNjb3JlKS50b0ZpeGVkKDIpIDogMDtcblxuICByZXR1cm4gcGFyc2VGbG9hdChzdHIpO1xufTtcblxuLyoqXG4gKiBUaGUgc2NvcmUgaXMgcGFydGlhbCBieSBkZWZhdWx0IGZvciBjaGVja2JveCBtb2RlLCBhbGxPck5vdGhpbmcgZm9yIHJhZGlvIG1vZGUuXG4gKiBUbyBkaXNhYmxlIHBhcnRpYWwgc2NvcmluZyBmb3IgY2hlY2tib3ggbW9kZSB5b3UgZWl0aGVyIHNldCBtb2RlbC5wYXJ0aWFsU2NvcmluZyA9IGZhbHNlIG9yIGVudi5wYXJ0aWFsU2NvcmluZyA9XG4gKiBmYWxzZS4gdGhlIHZhbHVlIGluIGBlbnZgIHdpbGwgb3ZlcnJpZGUgdGhlIHZhbHVlIGluIGBtb2RlbGAuXG4gKiBAcGFyYW0ge09iamVjdH0gbW9kZWwgLSB0aGUgbWFpbiBtb2RlbFxuICogQHBhcmFtIHtib29sZWFufSBtb2RlbC5wYXJ0aWFsU2NvcmluZyAtIGlzIHBhcnRpYWwgc2NvcmluZyBlbmFibGVkIChpZiB1bmRlZmluZWQgc2V0IHRvIHRvIHRydWUpXG4gKiBAcGFyYW0geyp9IHNlc3Npb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBlbnZcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gZW52LnBhcnRpYWxTY29yaW5nIC0gaXMgcGFydGlhbCBzY29yaW5nIGVuYWJsZWQgKGlmIHVuZGVmaW5lZCBkZWZhdWx0IHRvIHRydWUpIFRoaXMgb3ZlcnJpZGVzXG4gKiAgIGBtb2RlbC5wYXJ0aWFsU2NvcmluZ2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvdXRjb21lKG1vZGVsLCBzZXNzaW9uLCBlbnYgPSB7fSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCBwYXJ0aWFsU2NvcmluZ0VuYWJsZWQgPSBwYXJ0aWFsU2NvcmluZy5lbmFibGVkKG1vZGVsLCBlbnYpO1xuICAgIGNvbnN0IHNjb3JlID0gZ2V0U2NvcmUobW9kZWwsIHNlc3Npb24pO1xuXG4gICAgcmVzb2x2ZSh7IHNjb3JlOiBwYXJ0aWFsU2NvcmluZ0VuYWJsZWQgPyBzY29yZSA6IHNjb3JlID09PSAxID8gMSA6IDAsIGVtcHR5OiBpc0VtcHR5KHNlc3Npb24pIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNvcnJlY3RSZXNwb25zZVNlc3Npb24gPSAocXVlc3Rpb24sIGVudikgPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBpZiAoZW52Lm1vZGUgIT09ICdldmFsdWF0ZScgJiYgZW52LnJvbGUgPT09ICdpbnN0cnVjdG9yJykge1xuICAgICAgY29uc3QgeyBjaG9pY2VzIH0gPSBxdWVzdGlvbjtcbiAgICAgIGNvbnN0IHZhbHVlID0ge307XG5cbiAgICAgIE9iamVjdC5rZXlzKGNob2ljZXMpLmZvckVhY2goKGtleSwgaSkgPT4ge1xuICAgICAgICB2YWx1ZVtpXSA9IGNob2ljZXNba2V5XVswXS5sYWJlbDtcbiAgICAgIH0pO1xuXG4gICAgICByZXNvbHZlKHsgaWQ6ICcxJywgdmFsdWUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgfVxuICB9KTtcbn07XG5cbi8vIHJlbW92ZSBhbGwgaHRtbCB0YWdzXG4vLyBjb25zdCBnZXRJbm5lclRleHQgPSAoaHRtbCkgPT4gKGh0bWwgfHwgJycpLnJlcGxhY2VBbGwoLzxbXj5dKj4vZywgJycpO1xuY29uc3QgZ2V0SW5uZXJUZXh0ID0gKGh0bWwpID0+IHtcbiAgaWYgKHR5cGVvZiBodG1sICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBpZiAodHlwZW9mIGh0bWwucmVwbGFjZUFsbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBodG1sLnJlcGxhY2VBbGwoLzxbXj5dKj4vZywgJycpO1xuICB9IGVsc2Uge1xuICAgIC8vIFBvbHlmaWxsIGZvciByZXBsYWNlQWxsIHVzaW5nIHJlcGxhY2UgYW5kIGEgZ2xvYmFsIHJlZ2V4XG4gICAgcmV0dXJuIGh0bWwucmVwbGFjZSgvPFtePl0qPi9nLCAnJyk7XG4gIH1cbn07XG5cbmNvbnN0IGRlY29kZUhUTUwgPSAoaHRtbCkgPT4gZGVjb2RlKGh0bWwpO1xuXG4vLyByZW1vdmUgYWxsIGh0bWwgdGFncyBleGNlcHQgaW1nLCBpZnJhbWUgYW5kIHNvdXJjZSB0YWcgZm9yIGF1ZGlvXG5jb25zdCBnZXRDb250ZW50ID0gKGh0bWwpID0+IChodG1sIHx8ICcnKS5yZXBsYWNlKC8oPCg/IWltZ3xpZnJhbWV8c291cmNlKShbXj5dKyk+KS9naSwgJycpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPSAobW9kZWwgPSB7fSwgY29uZmlnID0ge30pID0+IHtcbiAgY29uc3QgeyBjaG9pY2VzLCBtYXJrdXAgfSA9IG1vZGVsO1xuICBjb25zdCB7IG1heFJlc3BvbnNlQXJlYXMgfSA9IGNvbmZpZztcbiAgY29uc3QgYWxsQ2hvaWNlc0Vycm9ycyA9IHt9O1xuICBjb25zdCBlcnJvcnMgPSB7fTtcblxuICBbJ3RlYWNoZXJJbnN0cnVjdGlvbnMnLCAncHJvbXB0JywgJ3JhdGlvbmFsZSddLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgaWYgKGNvbmZpZ1tmaWVsZF0/LnJlcXVpcmVkICYmICFnZXRDb250ZW50KG1vZGVsW2ZpZWxkXSkpIHtcbiAgICAgIGVycm9yc1tmaWVsZF0gPSAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nO1xuICAgIH1cbiAgfSk7XG5cbiAgT2JqZWN0LmVudHJpZXMoY2hvaWNlcyB8fCB7fSkuZm9yRWFjaCgoW2tleSwgdmFsdWVzXSkgPT4ge1xuICAgIGNvbnN0IHJldmVyc2VkQ2hvaWNlcyA9IFsuLi4odmFsdWVzIHx8IFtdKV0ucmV2ZXJzZSgpO1xuICAgIGNvbnN0IGNob2ljZXNFcnJvcnMgPSB7fTtcblxuICAgIHJldmVyc2VkQ2hvaWNlcy5mb3JFYWNoKChjaG9pY2UsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBsYWJlbCB9ID0gY2hvaWNlO1xuXG4gICAgICBpZiAobGFiZWwgPT09ICcnIHx8IGxhYmVsID09PSAnPGRpdj48L2Rpdj4nKSB7XG4gICAgICAgIGNob2ljZXNFcnJvcnNbdmFsdWVdID0gJ0NvbnRlbnQgc2hvdWxkIG5vdCBiZSBlbXB0eS4nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaWRlbnRpY2FsQW5zd2VyID0gcmV2ZXJzZWRDaG9pY2VzLnNsaWNlKGluZGV4ICsgMSkuc29tZSgoYykgPT4gYy5sYWJlbCA9PT0gbGFiZWwpO1xuXG4gICAgICAgIGlmIChpZGVudGljYWxBbnN3ZXIpIHtcbiAgICAgICAgICBjaG9pY2VzRXJyb3JzW3ZhbHVlXSA9ICdDb250ZW50IHNob3VsZCBiZSB1bmlxdWUuJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFpc0VtcHR5KGNob2ljZXNFcnJvcnMpKSB7XG4gICAgICBhbGxDaG9pY2VzRXJyb3JzW2tleV0gPSBjaG9pY2VzRXJyb3JzO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgbmJPZlJlc3BvbnNlQXJlYXMgPSAobWFya3VwLm1hdGNoKC9cXHtcXHsoXFxkKylcXH1cXH0vZykgfHwgW10pLmxlbmd0aDtcblxuICBpZiAobmJPZlJlc3BvbnNlQXJlYXMgPiBtYXhSZXNwb25zZUFyZWFzKSB7XG4gICAgZXJyb3JzLnJlc3BvbnNlQXJlYXMgPSBgTm8gbW9yZSB0aGFuICR7bWF4UmVzcG9uc2VBcmVhc30gcmVzcG9uc2UgYXJlYXMgc2hvdWxkIGJlIGRlZmluZWQuYDtcbiAgfSBlbHNlIGlmIChuYk9mUmVzcG9uc2VBcmVhcyA8IDEpIHtcbiAgICBlcnJvcnMucmVzcG9uc2VBcmVhcyA9ICdUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3QgMSByZXNwb25zZSBhcmVhIGRlZmluZWQuJztcbiAgfVxuXG4gIGlmICghaXNFbXB0eShhbGxDaG9pY2VzRXJyb3JzKSkge1xuICAgIGVycm9ycy5jaG9pY2VzID0gYWxsQ2hvaWNlc0Vycm9ycztcbiAgfVxuXG4gIHJldHVybiBlcnJvcnM7XG59O1xuIl19
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
+
7
+ var _enzyme = require("enzyme");
8
+
9
+ var _react = _interopRequireDefault(require("react"));
10
+
11
+ var _main = require("../main");
12
+
13
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
+
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
+
17
+ var choice = function choice(l, v) {
18
+ return {
19
+ label: l,
20
+ value: v
21
+ };
22
+ };
23
+
24
+ describe('Main', function () {
25
+ var wrapper;
26
+ var onChange = jest.fn();
27
+ beforeAll(function () {
28
+ wrapper = function wrapper(extra) {
29
+ var props = _objectSpread({
30
+ classes: {},
31
+ prompt: 'Prompt',
32
+ rationale: 'Rationale',
33
+ teacherInstructions: 'Teacher Instructions',
34
+ disabled: false,
35
+ choices: {
36
+ 0: [choice('cow', '0'), choice('cattle', '1'), choice('calf', '2')],
37
+ 1: [choice('over', '0'), choice('past', '1'), choice('beyond', '2')],
38
+ 2: [choice('moon', '0')]
39
+ },
40
+ markup: '<p>The {{0}} jumped {{1}} the {{2}}</p>',
41
+ mode: 'gather',
42
+ feedback: {
43
+ 0: 'correct',
44
+ 1: 'correct',
45
+ 2: 'correct'
46
+ },
47
+ value: {
48
+ 0: '1',
49
+ 1: '0',
50
+ 2: '0'
51
+ },
52
+ onChange: onChange
53
+ }, extra);
54
+
55
+ return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_main.Main, props));
56
+ };
57
+ });
58
+ describe('render', function () {
59
+ it('should render in gather mode', function () {
60
+ expect(wrapper()).toMatchSnapshot();
61
+ });
62
+ it('should render in view mode', function () {
63
+ expect(wrapper({
64
+ mode: 'view'
65
+ })).toMatchSnapshot();
66
+ });
67
+ it('should render in evaluate mode', function () {
68
+ expect(wrapper({
69
+ mode: 'evaluate'
70
+ })).toMatchSnapshot();
71
+ });
72
+ it('should render without teacher instructions', function () {
73
+ expect(wrapper({
74
+ teacherInstructions: null
75
+ })).toMatchSnapshot();
76
+ });
77
+ it('should render without rationale', function () {
78
+ expect(wrapper({
79
+ rationale: null
80
+ })).toMatchSnapshot();
81
+ });
82
+ it('should render without prompt', function () {
83
+ expect(wrapper({
84
+ prompt: null
85
+ })).toMatchSnapshot();
86
+ });
87
+ });
88
+ describe('logic', function () {
89
+ it('onChange', function () {
90
+ wrapper().instance().onChange({
91
+ 0: '0',
92
+ 1: '0',
93
+ 2: '0'
94
+ });
95
+ setTimeout(function () {
96
+ expect(onChange).toHaveBeenCalledWith({
97
+ 0: '0',
98
+ 1: '0',
99
+ 2: '0'
100
+ });
101
+ }, 400);
102
+ });
103
+ it('onChange when all responses have max length 1', function () {
104
+ wrapper({
105
+ choices: {
106
+ 0: [choice('b', '0')],
107
+ 1: [choice('a', '0')],
108
+ 2: [choice('c', '0')]
109
+ },
110
+ maxLengthPerChoice: [1, 1, 1]
111
+ }).instance().onChange({
112
+ 0: 'a',
113
+ 1: 'b',
114
+ 2: 'c'
115
+ });
116
+ expect(onChange).toHaveBeenCalledWith({
117
+ 0: 'a',
118
+ 1: 'b',
119
+ 2: 'c'
120
+ });
121
+ });
122
+ });
123
+ });
124
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbWFpbi50ZXN0LmpzeCJdLCJuYW1lcyI6WyJjaG9pY2UiLCJsIiwidiIsImxhYmVsIiwidmFsdWUiLCJkZXNjcmliZSIsIndyYXBwZXIiLCJvbkNoYW5nZSIsImplc3QiLCJmbiIsImJlZm9yZUFsbCIsImV4dHJhIiwicHJvcHMiLCJjbGFzc2VzIiwicHJvbXB0IiwicmF0aW9uYWxlIiwidGVhY2hlckluc3RydWN0aW9ucyIsImRpc2FibGVkIiwiY2hvaWNlcyIsIm1hcmt1cCIsIm1vZGUiLCJmZWVkYmFjayIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90IiwiaW5zdGFuY2UiLCJzZXRUaW1lb3V0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJtYXhMZW5ndGhQZXJDaG9pY2UiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUVBOzs7Ozs7QUFFQSxJQUFNQSxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxDQUFELEVBQUlDLENBQUo7QUFBQSxTQUFXO0FBQUVDLElBQUFBLEtBQUssRUFBRUYsQ0FBVDtBQUFZRyxJQUFBQSxLQUFLLEVBQUVGO0FBQW5CLEdBQVg7QUFBQSxDQUFmOztBQUVBRyxRQUFRLENBQUMsTUFBRCxFQUFTLFlBQU07QUFDckIsTUFBSUMsT0FBSjtBQUNBLE1BQUlDLFFBQVEsR0FBR0MsSUFBSSxDQUFDQyxFQUFMLEVBQWY7QUFFQUMsRUFBQUEsU0FBUyxDQUFDLFlBQU07QUFDZEosSUFBQUEsT0FBTyxHQUFHLGlCQUFDSyxLQUFELEVBQVc7QUFDbkIsVUFBTUMsS0FBSztBQUNUQyxRQUFBQSxPQUFPLEVBQUUsRUFEQTtBQUVUQyxRQUFBQSxNQUFNLEVBQUUsUUFGQztBQUdUQyxRQUFBQSxTQUFTLEVBQUUsV0FIRjtBQUlUQyxRQUFBQSxtQkFBbUIsRUFBRSxzQkFKWjtBQUtUQyxRQUFBQSxRQUFRLEVBQUUsS0FMRDtBQU1UQyxRQUFBQSxPQUFPLEVBQUU7QUFDUCxhQUFHLENB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VSxhQUFHLEdBQWI7QUFBa0IsYUFBRztBQUFyQixTQUF0QztBQUNELE9BRlMsRUFFUCxHQUZPLENBQVY7QUFHRCxLQU5DLENBQUY7QUFRQUwsSUFBQUEsRUFBRSxDQUFDLCtDQUFELEVBQWtELFlBQU07QUFDeERoQixNQUFBQSxPQUFPLENBQUM7QUFDTlksUUFBQUEsT0FBTyxFQUFFO0FBQ1AsYUFBRyxDQUFDbEIsTUFBTSxDQUFDLEdBQUQsRUFBTSxHQUFOLENBQVAsQ0FESTtBQUVQLGFBQUcsQ0FBQ0EsTUFBTSxDQUFDLEdBQUQsRUFBTSxHQUFOLENBQVAsQ0FGSTtBQUdQLGFBQUcsQ0FBQ0EsTUFBTSxDQUFDLEdBQUQsRUFBTSxHQUFOLENBQVA7QUFISSxTQURIO0FBTU40QixRQUFBQSxrQkFBa0IsRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUDtBQU5kLE9BQUQsQ0FBUCxDQVFHSCxRQVJILEdBU0dsQixRQVRILENBU1k7QUFBRSxXQUFHLEdBQUw7QUFBVSxXQUFHLEdBQWI7QUFBa0IsV0FBRztBQUFyQixPQVRaO0FBV0FnQixNQUFBQSxNQUFNLENBQUNoQixRQUFELENBQU4sQ0FBaUJvQixvQkFBakIsQ0FBc0M7QUFBRSxXQUFHLEdBQUw7QUFBVSxXQUFHLEdBQWI7QUFBa0IsV0FBRztBQUFyQixPQUF0QztBQUNELEtBYkMsQ0FBRjtBQWNELEdBdkJPLENBQVI7QUF3QkQsQ0EvRU8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNoYWxsb3cgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgTWFpbiB9IGZyb20gJy4uL21haW4nO1xuXG5jb25zdCBjaG9pY2UgPSAobCwgdikgPT4gKHsgbGFiZWw6IGwsIHZhbHVlOiB2IH0pO1xuXG5kZXNjcmliZSgnTWFpbicsICgpID0+IHtcbiAgbGV0IHdyYXBwZXI7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcblxuICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgIHdyYXBwZXIgPSAoZXh0cmEpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICBjbGFzc2VzOiB7fSxcbiAgICAgICAgcHJvbXB0OiAnUHJvbXB0JyxcbiAgICAgICAgcmF0aW9uYWxlOiAnUmF0aW9uYWxlJyxcbiAgICAgICAgdGVhY2hlckluc3RydWN0aW9uczogJ1RlYWNoZXIgSW5zdHJ1Y3Rpb25zJyxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBjaG9pY2VzOiB7XG4gICAgICAgICAgMDogW2Nob2ljZSgnY293JywgJzAnKSwgY2hvaWNlKCdjYXR0bGUnLCAnMScpLCBjaG9pY2UoJ2NhbGYnLCAnMicpXSxcbiAgICAgICAgICAxOiBbY2hvaWNlKCdvdmVyJywgJzAnKSwgY2hvaWNlKCdwYXN0JywgJzEnKSwgY2hvaWNlKCdiZXlvbmQnLCAnMicpXSxcbiAgICAgICAgICAyOiBbY2hvaWNlKCdtb29uJywgJzAnKV0sXG4gICAgICAgIH0sXG4gICAgICAgIG1hcmt1cDogJzxwPlRoZSB7ezB9fSBqdW1wZWQge3sxfX0gdGhlIHt7Mn19PC9wPicsXG4gICAgICAgIG1vZGU6ICdnYXRoZXInLFxuICAgICAgICBmZWVkYmFjazogeyAwOiAnY29ycmVjdCcsIDE6ICdjb3JyZWN0JywgMjogJ2NvcnJlY3QnIH0sXG4gICAgICAgIHZhbHVlOiB7IDA6ICcxJywgMTogJzAnLCAyOiAnMCcgfSxcbiAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgIC4uLmV4dHJhLFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHNoYWxsb3coPE1haW4gey4uLnByb3BzfSAvPik7XG4gICAgfTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJlbmRlciBpbiBnYXRoZXIgbW9kZScsICgpID0+IHtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgaW4gdmlldyBtb2RlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoeyBtb2RlOiAndmlldycgfSkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgaW4gZXZhbHVhdGUgbW9kZScsICgpID0+IHtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKHsgbW9kZTogJ2V2YWx1YXRlJyB9KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlbmRlciB3aXRob3V0IHRlYWNoZXIgaW5zdHJ1Y3Rpb25zJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoeyB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiBudWxsIH0pKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVuZGVyIHdpdGhvdXQgcmF0aW9uYWxlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoeyByYXRpb25hbGU6IG51bGwgfSkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgd2l0aG91dCBwcm9tcHQnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qod3JhcHBlcih7IHByb21wdDogbnVsbCB9KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBpdCgnb25DaGFuZ2UnLCAoKSA9PiB7XG4gICAgICB3cmFwcGVyKCkuaW5zdGFuY2UoKS5vbkNoYW5nZSh7IDA6ICcwJywgMTogJzAnLCAyOiAnMCcgfSk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgMDogJzAnLCAxOiAnMCcsIDI6ICcwJyB9KTtcbiAgICAgIH0sIDQwMCk7XG4gICAgfSk7XG5cbiAgICBpdCgnb25DaGFuZ2Ugd2hlbiBhbGwgcmVzcG9uc2VzIGhhdmUgbWF4IGxlbmd0aCAxJywgKCkgPT4ge1xuICAgICAgd3JhcHBlcih7XG4gICAgICAgIGNob2ljZXM6IHtcbiAgICAgICAgICAwOiBbY2hvaWNlKCdiJywgJzAnKV0sXG4gICAgICAgICAgMTogW2Nob2ljZSgnYScsICcwJyldLFxuICAgICAgICAgIDI6IFtjaG9pY2UoJ2MnLCAnMCcpXSxcbiAgICAgICAgfSxcbiAgICAgICAgbWF4TGVuZ3RoUGVyQ2hvaWNlOiBbMSwgMSwgMV0sXG4gICAgICB9KVxuICAgICAgICAuaW5zdGFuY2UoKVxuICAgICAgICAub25DaGFuZ2UoeyAwOiAnYScsIDE6ICdiJywgMjogJ2MnIH0pO1xuXG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgMDogJ2EnLCAxOiAnYicsIDI6ICdjJyB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
package/lib/index.js CHANGED
@@ -132,4 +132,4 @@ var InlineDropdown = /*#__PURE__*/function (_HTMLElement) {
132
132
  }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
133
133
 
134
134
  exports["default"] = InlineDropdown;
135
- //# sourceMappingURL=index.js.map
135
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJJbmxpbmVEcm9wZG93biIsIl9tb2RlbCIsIl9zZXNzaW9uIiwiZWxlbSIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIk1haW4iLCJjaG9pY2VzIiwiZGlzYWJsZWQiLCJkaXNwbGF5VHlwZSIsImZlZWRiYWNrIiwibGFuZ3VhZ2UiLCJtYXJrdXAiLCJtYXhMZW5ndGhQZXJDaG9pY2UiLCJtYXhMZW5ndGhQZXJDaG9pY2VFbmFibGVkIiwibW9kZSIsIm5vdGUiLCJvbkNoYW5nZSIsImNoYW5nZVNlc3Npb24iLCJwbGF5ZXJTcGVsbENoZWNrRW5hYmxlZCIsInByb21wdCIsInJhdGlvbmFsZSIsInJvbGUiLCJzaG93Tm90ZSIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJ2YWx1ZSIsInJlc3BvbnNlQXJlYUlucHV0Q29uZmlndXJhdGlvbiIsIlJlYWN0RE9NIiwicmVuZGVyIiwiZGlzcGF0Y2hFdmVudCIsIlNlc3Npb25DaGFuZ2VkRXZlbnQiLCJ0YWdOYW1lIiwidG9Mb3dlckNhc2UiLCJzZXNzaW9uIiwiZGlzcGF0Y2hDaGFuZ2VkRXZlbnQiLCJfcmVuZGVyIiwibGFuZyIsInNsaWNlIiwic2V0QXR0cmlidXRlIiwibSIsIk1vZGVsU2V0RXZlbnQiLCJzZXRMYW5nQXR0cmlidXRlIiwicyIsIkhUTUxFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7O0lBRXFCQSxjOzs7OztBQUNuQiw0QkFBYztBQUFBOztBQUFBO0FBQ1o7QUFEWSxnR0ErQkosWUFBTTtBQUNkLFVBQUksTUFBS0MsTUFBTCxJQUFlLE1BQUtDLFFBQXhCLEVBQWtDO0FBQ2hDLFlBQUlDLElBQUksZ0JBQUdDLGtCQUFNQyxhQUFOLENBQW9CQyxnQkFBcEIsRUFBMEI7QUFDbkNDLFVBQUFBLE9BQU8sRUFBRSxNQUFLTixNQUFMLENBQVlNLE9BRGM7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S2pDLFFBQVo7QUFDRCxLO1NBUEQsYUFBWXdDLENBQVosRUFBZTtBQUNiLFdBQUt4QyxRQUFMLEdBQWdCd0MsQ0FBaEI7O0FBQ0EsV0FBS1AsT0FBTDtBQUNEOzs7V0E4Q0QsNkJBQW9CO0FBQ2xCLFdBQUtHLFlBQUwsQ0FBa0IsWUFBbEIsRUFBZ0MsNEJBQWhDO0FBQ0EsV0FBS0EsWUFBTCxDQUFrQixNQUFsQixFQUEwQixRQUExQjs7QUFFQSxXQUFLSCxPQUFMO0FBQ0Q7OztrREE3RXlDUSxXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgTW9kZWxTZXRFdmVudCwgU2Vzc2lvbkNoYW5nZWRFdmVudCB9IGZyb20gJ0BwaWUtZnJhbWV3b3JrL3BpZS1wbGF5ZXItZXZlbnRzJztcbmltcG9ydCB7IHJlbmRlck1hdGggfSBmcm9tICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZyc7XG5cbmltcG9ydCBNYWluIGZyb20gJy4vbWFpbic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIElubGluZURyb3Bkb3duIGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX21vZGVsID0gbnVsbDtcbiAgICB0aGlzLl9zZXNzaW9uID0gbnVsbDtcbiAgfVxuXG4gIHNldExhbmdBdHRyaWJ1dGUoKSB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLl9tb2RlbCAmJiB0eXBlb2YgdGhpcy5fbW9kZWwubGFuZ3VhZ2UgPyB0aGlzLl9tb2RlbC5sYW5ndWFnZSA6ICcnO1xuICAgIGNvbnN0IGxhbmcgPSBsYW5ndWFnZSA/IGxhbmd1YWdlLnNsaWNlKDAsIDIpIDogJ2VuJztcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnbGFuZycsIGxhbmcpO1xuICB9XG5cbiAgc2V0IG1vZGVsKG0pIHtcbiAgICB0aGlzLl9tb2RlbCA9IG07XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IE1vZGVsU2V0RXZlbnQodGhpcy50YWdOYW1lLnRvTG93ZXJDYXNlKCksIHRoaXMuc2Vzc2lvbiAmJiAhIXRoaXMuc2Vzc2lvbi52YWx1ZSwgISF0aGlzLl9tb2RlbCksXG4gICAgKTtcbiAgICB0aGlzLnNldExhbmdBdHRyaWJ1dGUoKTtcblxuICAgIHRoaXMuX3JlbmRlcigpO1xuICB9XG5cbiAgc2V0IHNlc3Npb24ocykge1xuICAgIHRoaXMuX3Nlc3Npb24gPSBzO1xuICAgIHRoaXMuX3JlbmRlcigpO1xuICB9XG5cbiAgZ2V0IHNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nlc3Npb247XG4gIH1cblxuICBfcmVuZGVyID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLl9tb2RlbCAmJiB0aGlzLl9zZXNzaW9uKSB7XG4gICAgICBsZXQgZWxlbSA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoTWFpbiwge1xuICAgICAgICBjaG9pY2VzOiB0aGlzLl9tb2RlbC5jaG9pY2VzLFxuICAgICAgICBkaXNhYmxlZDogdGhpcy5fbW9kZWwuZGlzYWJsZWQsXG4gICAgICAgIGRpc3BsYXlUeXBlOiB0aGlzLl9tb2RlbC5kaXNwbGF5VHlwZSxcbiAgICAgICAgZmVlZGJhY2s6IHRoaXMuX21vZGVsLmZlZWRiYWNrLFxuICAgICAgICBsYW5ndWFnZTogdGhpcy5fbW9kZWwubGFuZ3VhZ2UsXG4gICAgICAgIG1hcmt1cDogdGhpcy5fbW9kZWwubWFya3VwLFxuICAgICAgICBtYXhMZW5ndGhQZXJDaG9pY2U6IHRoaXMuX21vZGVsLm1heExlbmd0aFBlckNob2ljZSxcbiAgICAgICAgbWF4TGVuZ3RoUGVyQ2hvaWNlRW5hYmxlZDogdGhpcy5fbW9kZWwubWF4TGVuZ3RoUGVyQ2hvaWNlRW5hYmxlZCxcbiAgICAgICAgbW9kZTogdGhpcy5fbW9kZWwubW9kZSxcbiAgICAgICAgbm90ZTogdGhpcy5fbW9kZWwubm90ZSxcbiAgICAgICAgb25DaGFuZ2U6IHRoaXMuY2hhbmdlU2Vzc2lvbixcbiAgICAgICAgcGxheWVyU3BlbGxDaGVja0VuYWJsZWQ6IHRoaXMuX21vZGVsLnBsYXllclNwZWxsQ2hlY2tFbmFibGVkLFxuICAgICAgICBwcm9tcHQ6IHRoaXMuX21vZGVsLnByb21wdCxcbiAgICAgICAgcmF0aW9uYWxlOiB0aGlzLl9tb2RlbC5yYXRpb25hbGUsXG4gICAgICAgIHJvbGU6IHRoaXMuX21vZGVsLnJvbGUsXG4gICAgICAgIHNob3dOb3RlOiB0aGlzLl9tb2RlbC5zaG93Tm90ZSxcbiAgICAgICAgdGVhY2hlckluc3RydWN0aW9uczogdGhpcy5fbW9kZWwudGVhY2hlckluc3RydWN0aW9ucyxcbiAgICAgICAgdmFsdWU6IHRoaXMuX3Nlc3Npb24udmFsdWUsXG4gICAgICAgIHJlc3BvbnNlQXJlYUlucHV0Q29uZmlndXJhdGlvbjogdGhpcy5fbW9kZWwucmVzcG9uc2VBcmVhSW5wdXRDb25maWd1cmF0aW9uLFxuICAgICAgfSk7XG5cbiAgICAgIFJlYWN0RE9NLnJlbmRlcihlbGVtLCB0aGlzLCAoKSA9PiB7XG4gICAgICAgIHJlbmRlck1hdGgodGhpcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgZGlzcGF0Y2hDaGFuZ2VkRXZlbnQgPSAoKSA9PiB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBTZXNzaW9uQ2hhbmdlZEV2ZW50KHRoaXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpLCB0aGlzLnNlc3Npb24gJiYgISF0aGlzLnNlc3Npb24udmFsdWUpKTtcbiAgfTtcblxuICBjaGFuZ2VTZXNzaW9uID0gKHZhbHVlKSA9PiB7XG4gICAgdGhpcy5zZXNzaW9uLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5kaXNwYXRjaENoYW5nZWRFdmVudCgpO1xuICAgIHRoaXMuX3JlbmRlcigpO1xuICB9O1xuXG4gIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ0ZpbGwgaW4gdGhlIEJsYW5rIFF1ZXN0aW9uJyk7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAncmVnaW9uJyk7XG5cbiAgICB0aGlzLl9yZW5kZXIoKTtcbiAgfVxufVxuIl19
package/lib/main.js CHANGED
@@ -278,4 +278,4 @@ var styles = function styles(theme) {
278
278
  var _default = (0, _styles.withStyles)(styles)(Main);
279
279
 
280
280
  exports["default"] = _default;
281
- //# sourceMappingURL=main.js.map
281
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzeCJdLCJuYW1lcyI6WyJ0cmFuc2xhdG9yIiwiVHJhbnNsYXRvciIsIk1haW4iLCJzaG93Q29ycmVjdEFuc3dlciIsInByb3BzIiwiYWx3YXlzU2hvd0NvcnJlY3QiLCJtYXhMZW5ndGhQZXJDaG9pY2UiLCJldmVyeSIsInZhbCIsImkiLCJhcnIiLCJvbkNoYW5nZSIsIm1heFdhaXQiLCJzZXRTdGF0ZSIsInN0YXRlIiwiZ2V0Q2hhbmdlU2Vzc2lvbiIsInZhbHVlIiwiY2hhbmdlU2Vzc2lvbiIsIm5leHRQcm9wcyIsImxhbmd1YWdlIiwibm90ZSIsImZlZWRiYWNrIiwidCIsImxuZyIsImFuaW1hdGlvbnNEaXNhYmxlZCIsImNsYXNzZXMiLCJtb2RlIiwiZGlzcGxheVR5cGUiLCJyb2xlIiwibWF4TGVuZ3RoUGVyQ2hvaWNlRW5hYmxlZCIsInBsYXllclNwZWxsQ2hlY2tFbmFibGVkIiwicHJvbXB0IiwicmF0aW9uYWxlIiwic2hvd05vdGUiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwicmVzcG9uc2VBcmVhSW5wdXRDb25maWd1cmF0aW9uIiwibW9kZWwiLCJleHRyYUNTU1J1bGVzIiwiZGlzcGxheU5vdGUiLCJtYWluQ2xhc3NlcyIsIm1haW5Db250YWluZXIiLCJub0JvcmRlckNvbG9yIiwidGVhY2hlckluc3RydWN0aW9uc0RpdiIsInJhdGlvbmFsZURpdiIsInNob3dSYXRpb25hbGUiLCJzaG93VGVhY2hlckluc3RydWN0aW9ucyIsImRpc3BsYXkiLCJzck9ubHkiLCJjb2xsYXBzaWJsZSIsImhpZGRlbiIsInZpc2libGUiLCJ0b2dnbGVTaG93Q29ycmVjdCIsIl9faHRtbCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiYm9vbCIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJkaXNhYmxlZCIsInN0cmluZyIsIm1hcmt1cCIsImFycmF5IiwiZnVuYyIsInN0eWxlcyIsInRoZW1lIiwiY29sb3IiLCJ0ZXh0IiwiYmFja2dyb3VuZENvbG9yIiwiYmFja2dyb3VuZCIsImlubGluZURpc3BsYXkiLCJibG9ja0Rpc3BsYXkiLCJtYXJnaW5Cb3R0b20iLCJzcGFjaW5nIiwidW5pdCIsImJvcmRlckNvbG9yIiwicG9zaXRpb24iLCJsZWZ0IiwidG9wIiwid2lkdGgiLCJoZWlnaHQiLCJvdmVyZmxvdyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFRQSxVQUFSLEdBQXVCQyxzQkFBdkIsQ0FBUUQsVUFBUjs7SUFFYUUsSTs7Ozs7Ozs7Ozs7Ozs7OzhGQThCSDtBQUNOQyxNQUFBQSxpQkFBaUIsRUFBRSxNQUFLQyxLQUFMLENBQVdDLGlCQUFYLElBQWdDO0FBRDdDLEs7eUdBS1csVUFBQ0Msa0JBQUQ7QUFBQSxhQUNqQkEsa0JBQWtCLElBQUlBLGtCQUFrQixDQUFDQyxLQUFuQixDQUF5QixVQUFDQyxHQUFELEVBQU1DLENBQU4sRUFBU0MsR0FBVDtBQUFBLGVBQWlCRixHQUFHLEtBQUtFLEdBQUcsQ0FBQyxDQUFELENBQVgsSUFBa0JGLEdBQUcsS0FBSyxDQUEzQztBQUFBLE9BQXpCLENBQXRCLEdBQ0ksTUFBS0osS0FBTCxDQUFXTyxRQURmLEdBRUksMEJBQVMsTUFBS1AsS0FBTCxDQUFXTyxRQUFwQixFQUE4QixHQUE5QixFQUFtQztBQUFFQyxRQUFBQSxPQUFPLEVBQUU7QUFBWCxPQUFuQyxDQUhhO0FBQUEsSzswR0FrQ0MsWUFBTTtBQUN4QixZQUFLQyxRQUFMLENBQWM7QUFBRVYsUUFBQUEsaUJBQWlCLEVBQUUsQ0FBQyxNQUFLVyxLQUFMLENBQVdYO0FBQWpDLE9BQWQ7QUFDRCxLO3NHQUVlLE1BQUtZLGdCQUFMLENBQXNCLE1BQUtYLEtBQUwsQ0FBV0Usa0JBQWpDLEM7aUdBRUwsVUFBQ1UsS0FBRCxFQUFXO0FBQ3BCLFlBQUtDLGFBQUwsQ0FBbUJELEtB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VTtBQVF6QnlCLElBQUFBLFlBQVksRUFBRTtBQUNaekIsTUFBQUEsT0FBTyxFQUFFO0FBREcsS0FSVztBQVd6QjFCLElBQUFBLElBQUksRUFBRTtBQUNKb0QsTUFBQUEsWUFBWSxFQUFFUCxLQUFLLENBQUNRLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQjtBQUQvQixLQVhtQjtBQWN6QjFCLElBQUFBLFdBQVcsRUFBRTtBQUNYd0IsTUFBQUEsWUFBWSxFQUFFUCxLQUFLLENBQUNRLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQjtBQUR4QixLQWRZO0FBaUJ6QmpDLElBQUFBLGFBQWEsRUFBRTtBQUNiLGFBQU87QUFDTGtDLFFBQUFBLFdBQVcsWUFBS1QsZ0JBQU1DLElBQU4sRUFBTDtBQUROO0FBRE0sS0FqQlU7QUFzQnpCcEIsSUFBQUEsTUFBTSxFQUFFO0FBQ042QixNQUFBQSxRQUFRLEVBQUUsVUFESjtBQUVOQyxNQUFBQSxJQUFJLEVBQUUsVUFGQTtBQUdOQyxNQUFBQSxHQUFHLEVBQUUsTUFIQztBQUlOQyxNQUFBQSxLQUFLLEVBQUUsS0FKRDtBQUtOQyxNQUFBQSxNQUFNLEVBQUUsS0FMRjtBQU1OQyxNQUFBQSxRQUFRLEVBQUU7QUFOSjtBQXRCaUIsR0FBWjtBQUFBLENBQWY7O2VBZ0NlLHdCQUFXakIsTUFBWCxFQUFtQjlELElBQW5CLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2gvZGVib3VuY2UnO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuaW1wb3J0IENvcnJlY3RBbnN3ZXJUb2dnbGUgZnJvbSAnQHBpZS1saWIvY29ycmVjdC1hbnN3ZXItdG9nZ2xlJztcbmltcG9ydCB7IENvbnN0cnVjdGVkUmVzcG9uc2UgfSBmcm9tICdAcGllLWxpYi9tYXNrLW1hcmt1cCc7XG5pbXBvcnQgeyBjb2xvciwgQ29sbGFwc2libGUsIGhhc1RleHQsIGhhc01lZGlhLCBQcmV2aWV3UHJvbXB0LCBVaUxheW91dCB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFRyYW5zbGF0b3IgZnJvbSAnQHBpZS1saWIvdHJhbnNsYXRvcic7XG5cbmNvbnN0IHsgdHJhbnNsYXRvciB9ID0gVHJhbnNsYXRvcjtcblxuZXhwb3J0IGNsYXNzIE1haW4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGFsd2F5c1Nob3dDb3JyZWN0OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhbmltYXRpb25zRGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZmVlZGJhY2s6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbGFuZ3VhZ2U6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbWFya3VwOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG1heExlbmd0aFBlckNob2ljZTogUHJvcFR5cGVzLmFycmF5LFxuICAgIG1heExlbmd0aFBlckNob2ljZUVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIG1vZGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbm90ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcGxheWVyU3BlbGxDaGVja0VuYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIHByb21wdDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICByYXRpb25hbGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgcm9sZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzaG93Tm90ZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgdGVhY2hlckluc3RydWN0aW9uczogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICByZXNwb25zZUFyZWFJbnB1dENvbmZpZ3VyYXRpb246IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHZhbHVlOiB7fSxcbiAgfTtcblxuICBzdGF0ZSA9IHtcbiAgICBzaG93Q29ycmVjdEFuc3dlcjogdGhpcy5wcm9wcy5hbHdheXNTaG93Q29ycmVjdCB8fCBmYWxzZSxcbiAgfTtcblxuICAvLyBpZiBmb3IgYWxsIHJlc3BvbnNlcyBtYXggbGVuZ3RoIGlzIDEsIGNhbGwgb25DaGFuZ2UgZm9yIGVhY2gga2V5c3Ryb2tlXG4gIGdldENoYW5nZVNlc3Npb24gPSAobWF4TGVuZ3RoUGVyQ2hvaWNlKSA9PlxuICAgIG1heExlbmd0aFBlckNob2ljZSAmJiBtYXhMZW5ndGhQZXJDaG9pY2UuZXZlcnkoKHZhbCwgaSwgYXJyKSA9PiB2YWwgPT09IGFyclswXSAmJiB2YWwgPT09IDEpXG4gICAgICA/IHRoaXMucHJvcHMub25DaGFuZ2VcbiAgICAgIDogZGVib3VuY2UodGhpcy5wcm9wcy5vbkNoYW5nZSwgMjAwLCB7IG1heFdhaXQ6IDIwMCB9KTtcblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICBjb25zdCB7IG1heExlbmd0aFBlckNob2ljZSwgbGFuZ3VhZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgbGV0IHsgbm90ZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChpc0VtcHR5KG5leHRQcm9wcy5mZWVkYmFjaykpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93Q29ycmVjdEFuc3dlcjogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgaWYgKG5leHRQcm9wcy5hbHdheXNTaG93Q29ycmVjdCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dDb3JyZWN0QW5zd2VyOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGlmIChtYXhMZW5ndGhQZXJDaG9pY2UgJiYgIWlzRXF1YWwobWF4TGVuZ3RoUGVyQ2hvaWNlLCBuZXh0UHJvcHMubWF4TGVuZ3RoUGVyQ2hvaWNlKSkge1xuICAgICAgdGhpcy5jaGFuZ2VTZXNzaW9uID0gdGhpcy5nZXRDaGFuZ2VTZXNzaW9uKG5leHRQcm9wcy5tYXhMZW5ndGhQZXJDaG9pY2UpO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoZSBub3RlIGlzIHRoZSBkZWZhdWx0IG9uZSBmb3IgcHJldiBsYW5ndWFnZSBhbmQgY2hhbmdlIHRvIHRoZSBkZWZhdWx0IG9uZSBmb3IgbmV3IGxhbmd1YWdlXG4gICAgLy8gdGhpcyBjaGVjayBpcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8gZGlmZXJhbmNpYXRlIGJldHdlZW4gZGVmYXVsdCBhbmQgYXV0aG91ciBkZWZpbmVkIG5vdGVcbiAgICAvLyBhbmQgb25seSBjaGFuZ2UgYmV0d2VlbiBsYW5ndWFnZXMgZm9yIGRlZmF1bHQgb25lc1xuICAgIGlmIChcbiAgICAgIG5vdGUgJiZcbiAgICAgIGxhbmd1YWdlICYmXG4gICAgICBsYW5ndWFnZSAhPT0gbmV4dFByb3BzLmxhbmd1YWdlICYmXG4gICAgICBub3RlID09PSB0cmFuc2xhdG9yLnQoJ2NvbW1vbjpjb21tb25Db3JyZWN0QW5zd2VyV2l0aEFsdGVybmF0ZXMnLCB7IGxuZzogbGFuZ3VhZ2UgfSlcbiAgICApIHtcbiAgICAgIG5vdGUgPSB0cmFuc2xhdG9yLnQoJ2NvbW1vbjpjb21tb25Db3JyZWN0QW5zd2VyV2l0aEFsdGVybmF0ZXMnLCB7IGxuZzogbmV4dFByb3BzLmxhbmd1YWdlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNob3dDb3JyZWN0ID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93Q29ycmVjdEFuc3dlcjogIXRoaXMuc3RhdGUuc2hvd0NvcnJlY3RBbnN3ZXIgfSk7XG4gIH07XG5cbiAgY2hhbmdlU2Vzc2lvbiA9IHRoaXMuZ2V0Q2hhbmdlU2Vzc2lvbih0aGlzLnByb3BzLm1heExlbmd0aFBlckNob2ljZSk7XG5cbiAgb25DaGFuZ2UgPSAodmFsdWUpID0+IHtcbiAgICB0aGlzLmNoYW5nZVNlc3Npb24odmFsdWUpO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHNob3dDb3JyZWN0QW5zd2VyIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHtcbiAgICAgIGFsd2F5c1Nob3dDb3JyZWN0LFxuICAgICAgYW5pbWF0aW9uc0Rpc2FibGVkLFxuICAgICAgY2xhc3NlcyxcbiAgICAgIG1vZGUsXG4gICAgICBkaXNwbGF5VHlwZSxcbiAgICAgIHJvbGUsXG4gICAgICBsYW5ndWFnZSxcbiAgICAgIG1heExlbmd0aFBlckNob2ljZSxcbiAgICAgIG1heExlbmd0aFBlckNob2ljZUVuYWJsZWQsXG4gICAgICBub3RlLFxuICAgICAgcGxheWVyU3BlbGxDaGVja0VuYWJsZWQsXG4gICAgICBwcm9tcHQsXG4gICAgICByYXRpb25hbGUsXG4gICAgICBzaG93Tm90ZSxcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnMsXG4gICAgICByZXNwb25zZUFyZWFJbnB1dENvbmZpZ3VyYXRpb24sXG4gICAgICBtb2RlbCxcbiAgICAgIHZhbHVlLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgeyBleHRyYUNTU1J1bGVzIH0gPSBtb2RlbCB8fCB7fTtcbiAgICBjb25zdCBkaXNwbGF5Tm90ZSA9IChzaG93Q29ycmVjdEFuc3dlciB8fCAobW9kZSA9PT0gJ3ZpZXcnICYmIHJvbGUgPT09ICdpbnN0cnVjdG9yJykpICYmIHNob3dOb3RlICYmIG5vdGU7XG4gICAgY29uc3QgbWFpbkNsYXNzZXMgPSBjbGFzc05hbWVzKFtcbiAgICAgIGNsYXNzZXMubWFpbkNvbnRhaW5lcixcbiAgICAgIHtcbiAgICAgICAgW2NsYXNzZXMubm9Cb3JkZXJDb2xvcl06IGFsd2F5c1Nob3dDb3JyZWN0LFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIGNvbnN0IHRlYWNoZXJJbnN0cnVjdGlvbnNEaXYgPSAoXG4gICAgICA8UHJldmlld1Byb21wdCBkZWZhdWx0Q2xhc3NOYW1lPVwidGVhY2hlci1pbnN0cnVjdGlvbnNcIiBwcm9tcHQ9e3RlYWNoZXJJbnN0cnVjdGlvbnN9IC8+XG4gICAgKTtcblxuICAgIGNvbnN0IHJhdGlvbmFsZURpdiA9IDxQcmV2aWV3UHJvbXB0IHByb21wdD17cmF0aW9uYWxlfSAvPjtcblxuICAgIGNvbnN0IHNob3dSYXRpb25hbGUgPSByYXRpb25hbGUgJiYgKGhhc1RleHQocmF0aW9uYWxlKSB8fCBoYXNNZWRpYShyYXRpb25hbGUpKTtcbiAgICBjb25zdCBzaG93VGVhY2hlckluc3RydWN0aW9ucyA9XG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zICYmIChoYXNUZXh0KHRlYWNoZXJJbnN0cnVjdGlvbnMpIHx8IGhhc01lZGlhKHRlYWNoZXJJbnN0cnVjdGlvbnMpKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8VWlMYXlvdXQgZXh0cmFDU1NSdWxlcz17ZXh0cmFDU1NSdWxlc30gY2xhc3NOYW1lPXttYWluQ2xhc3Nlc30gc3R5bGU9e3sgZGlzcGxheTogYCR7ZGlzcGxheVR5cGV9YCB9fT5cbiAgICAgICAge21vZGUgPT09ICdnYXRoZXInICYmIDxoMiBjbGFzc05hbWU9e2NsYXNzZXMuc3JPbmx5fT5GaWxsIGluIHRoZSBCbGFuayBRdWVzdGlvbjwvaDI+fVxuXG4gICAgICAgIHtzaG93VGVhY2hlckluc3RydWN0aW9ucyAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuY29sbGFwc2libGV9PlxuICAgICAgICAgICAgeyFhbmltYXRpb25zRGlzYWJsZWQgPyAoXG4gICAgICAgICAgICAgIDxDb2xsYXBzaWJsZSBsYWJlbHM9e3sgaGlkZGVuOiAnU2hvdyBUZWFjaGVyIEluc3RydWN0aW9ucycsIHZpc2libGU6ICdIaWRlIFRlYWNoZXIgSW5zdHJ1Y3Rpb25zJyB9fT5cbiAgICAgICAgICAgICAgICB7dGVhY2hlckluc3RydWN0aW9uc0Rpdn1cbiAgICAgICAgICAgICAgPC9Db2xsYXBzaWJsZT5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNEaXZcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG5cbiAgICAgICAge3Byb21wdCAmJiA8UHJldmlld1Byb21wdCBwcm9tcHQ9e3Byb21wdH0gLz59XG5cbiAgICAgICAgeyFhbHdheXNTaG93Q29ycmVjdCAmJiAoXG4gICAgICAgICAgPENvcnJlY3RBbnN3ZXJUb2dnbGVcbiAgICAgICAgICAgIHNob3c9e21vZGUgPT09ICdldmFsdWF0ZSd9XG4gICAgICAgICAgICB0b2dnbGVkPXtzaG93Q29ycmVjdEFuc3dlcn1cbiAgICAgICAgICAgIG9uVG9nZ2xlPXt0aGlzLnRvZ2dsZVNob3dDb3JyZWN0fVxuICAgICAgICAgICAgbGFuZ3VhZ2U9e2xhbmd1YWdlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG5cbiAgICAgICAgPENvbnN0cnVjdGVkUmVzcG9uc2VcbiAgICAgICAgICB7Li4udGhpcy5wcm9wc31cbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZX1cbiAgICAgICAgICBzaG93Q29ycmVjdEFuc3dlcj17c2hvd0NvcnJlY3RBbnN3ZXJ9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIG1heExlbmd0aD17bWF4TGVuZ3RoUGVyQ2hvaWNlfVxuICAgICAgICAgIGFkanVzdGVkTGltaXQ9e21heExlbmd0aFBlckNob2ljZUVuYWJsZWR9XG4gICAgICAgICAgc3BlbGxDaGVjaz17cGxheWVyU3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgcGx1Z2luUHJvcHM9e3Jlc3BvbnNlQXJlYUlucHV0Q29uZmlndXJhdGlvbn1cbiAgICAgICAgLz5cblxuICAgICAgICB7ZGlzcGxheU5vdGUgJiYgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5ub3RlLCAnbm90ZScpfSBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IG5vdGUgfX0gLz59XG5cbiAgICAgICAge3Nob3dSYXRpb25hbGUgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmNvbGxhcHNpYmxlfT5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uc0Rpc2FibGVkID8gKFxuICAgICAgICAgICAgICA8Q29sbGFwc2libGUgbGFiZWxzPXt7IGhpZGRlbjogJ1Nob3cgUmF0aW9uYWxlJywgdmlzaWJsZTogJ0hpZGUgUmF0aW9uYWxlJyB9fT57cmF0aW9uYWxlRGl2fTwvQ29sbGFwc2libGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICByYXRpb25hbGVEaXZcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L1VpTGF5b3V0PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3Qgc3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBtYWluQ29udGFpbmVyOiB7XG4gICAgY29sb3I6IGNvbG9yLnRleHQoKSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmJhY2tncm91bmQoKSxcbiAgfSxcbiAgaW5saW5lRGlzcGxheToge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICB9LFxuICBibG9ja0Rpc3BsYXk6IHtcbiAgICBkaXNwbGF5OiAnYmxvY2snLFxuICB9LFxuICBub3RlOiB7XG4gICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICB9LFxuICBjb2xsYXBzaWJsZToge1xuICAgIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgfSxcbiAgbm9Cb3JkZXJDb2xvcjoge1xuICAgICcmIConOiB7XG4gICAgICBib3JkZXJDb2xvcjogYCR7Y29sb3IudGV4dCgpfSAhaW1wb3J0YW50YCxcbiAgICB9LFxuICB9LFxuICBzck9ubHk6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBsZWZ0OiAnLTEwMDAwcHgnLFxuICAgIHRvcDogJ2F1dG8nLFxuICAgIHdpZHRoOiAnMXB4JyxcbiAgICBoZWlnaHQ6ICcxcHgnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcykoTWFpbik7XG4iXX0=
package/lib/print.js CHANGED
@@ -112,4 +112,4 @@ var ExplicitConstructedResponsePrint = /*#__PURE__*/function (_HTMLElement) {
112
112
  }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
113
113
 
114
114
  exports["default"] = ExplicitConstructedResponsePrint;
115
- //# sourceMappingURL=print.js.map
115
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmludC5qcyJdLCJuYW1lcyI6WyJsb2ciLCJwcmVwYXJlUHJpbnRNb2RlbCIsIm1vZGVsIiwib3B0cyIsImlzSW5zdHJ1Y3RvciIsInJvbGUiLCJwcm9tcHQiLCJwcm9tcHRFbmFibGVkIiwidW5kZWZpbmVkIiwidGVhY2hlckluc3RydWN0aW9ucyIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIiwicmF0aW9uYWxlIiwicmF0aW9uYWxlRW5hYmxlZCIsImFsd2F5c1Nob3dDb3JyZWN0IiwibW9kZSIsImRpc2FibGVkIiwiYW5pbWF0aW9uc0Rpc2FibGVkIiwiRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlUHJpbnQiLCJfb3B0aW9ucyIsIl9tb2RlbCIsIl9zZXNzaW9uIiwiX3JlcmVuZGVyIiwicHJpbnRNb2RlbCIsImVsZW1lbnQiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJNYWluIiwib25DaGFuZ2UiLCJSZWFjdERPTSIsInJlbmRlciIsImxlYWRpbmciLCJ0cmFpbGluZyIsIm8iLCJzIiwiSFRNTEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSxpREFBTixDQUFaOztBQUVBLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBb0IsQ0FBQ0MsS0FBRCxFQUFRQyxJQUFSLEVBQWlCO0FBQ3pDLE1BQU1DLFlBQVksR0FBR0QsSUFBSSxDQUFDRSxJQUFMLEtBQWMsWUFBbkM7QUFFQUgsRUFBQUEsS0FBSyxDQUFDSSxNQUFOLEdBQWVKLEtBQUssQ0FBQ0ssYUFBTixLQUF3QixLQUF4QixHQUFnQ0wsS0FBSyxDQUFDSSxNQUF0QyxHQUErQ0UsU0FBOUQ7QUFDQU4sRUFBQUEsS0FBSyxDQUFDTyxtQkFBTixHQUNFTCxZQUFZLElBQUlGLEtBQUssQ0FBQ1EsMEJBQU4sS0FBcUMsS0FBckQsR0FBNkRSLEtBQUssQ0FBQ08sbUJBQW5FLEdBQXlGRCxTQUQzRjtBQUVBTixFQUFBQSxLQUFLLENBQUNTLFNBQU4sR0FBa0JQLFlBQVksSUFBSUYsS0FBSyxDQUFDVSxnQkFBTixLQUEyQixLQUEzQyxHQUFtRFYsS0FBSyxDQUFDUyxTQUF6RCxHQUFxRUgsU0FBdkY7QUFDQU4sRUFBQUEsS0FBSyxDQUFDVyxpQkFBTixHQUEwQlQsWUFBMUI7QUFDQUYsRUFBQUEsS0FBSyxDQUFDWSxJQUFOLEdBQWFWLFlBQVksR0FBRyxVQUFILEdBQWdCRixLQUFLLENBQUNZLElBQS9DO0FBQ0FaLEVBQUFBLEtBQUssQ0FBQ2EsUUFBTixHQUFpQixJQUFqQjtBQUNBYixFQUFBQSxLQUFLLENBQUNjLGtCQUFOLEdBQTJCLElBQTNCO0FBRUEsU0FBT2QsS0FBUDtBQUNELENBYkQ7O0lBZXFCZSxnQzs7Ozs7QUFDbkIsOENBQWM7QUFBQTs7QUFBQTtBQUNaO0FBQ0EsVUFBS0MsUUFBTCxHQUFnQixJQUFoQjtBQUNBLFVBQUtDLE1BQUwsR0FBYyxJQUFkO0FBQ0EsVUFBS0MsUUFBTCxHQUFnQixFQUFoQjtBQUVBLFVBQUtDLFNBQUwsR0FBaUIsMEJBQ2YsWUFBTTtBQUNKLFVBQUksTUFBS0YsTUFBTCxJQUFlLE1BQUtDLFFBQXhCLEVBQWtDO0FBQ2hDLFlBQU1FLFVBQVUsR0FBR3JCLGlCQUFpQixDQUFDLE1BQUtrQixNQUFOLEVBQWMsTUFBS0QsUUFBbkIsQ0FBcEM7O0FBRUEsWUFBTUssT0FBTyxHQUNYLE1BQUtMLFFBQUwsaUJBQ0FNLGtCQUFNQyxhQUFOLENBQW9CQyxnQkFBcEIsa0NBQ0tKLFVBREw7QUFFRUssVUFBQUEsUUFBUSxFQUFFLG9CQUFNLENBQUU7QUFGcEIsV0FGRjs7QUFPQUMsNkJBQVNDLE1BQVQsQ0FBZ0JOLE9BQWhCLGtEQUErQixZQUFNO0FBQ25DdkIsVUFBQUEsR0FBRyxDQUFDLCtCQUFELENBQUg7QUFDQTtBQUNELFNBSEQ7QUFJRCxPQWRELE1BY087QUFDTEEsUUFBQUEsR0FBRyxDQUFDLE1BQUQsQ0FBSDtBQUNEO0FBQ0YsS0FuQmMsRUFvQmYsRUFwQmUsRUFxQmY7QUFBRThCLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxNQUFBQSxRQUFRLEVBQUU7QUFBNUIsS0FyQmUsQ0FBakI7QUFOWTtBQTZCYjs7OztTQUVELGFBQVlDLENBQVosRUFBZTtBQUNiLFdBQUtkLFFBQUwsR0FBZ0JjLENBQWhCO0FBQ0Q7OztTQUVELGFBQVVDLENBQVYsRUFBYTtBQUNYLFdBQUtkLE1BQUwsR0FBY2MsQ0FBZDs7QUFDQSxXQUFLWixTQUFMO0FBQ0Q7OztXQUVELDZCQUFvQixDQUFFOzs7a0RBekNzQ2EsVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2gvZGVib3VuY2UnO1xuaW1wb3J0IE1haW4gZnJvbSAnLi9tYWluJztcbmltcG9ydCB7IHJlbmRlck1hdGggfSBmcm9tICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygncGllLWVsZW1lbnQ6ZXhwbGljaXQtY29uc3RydWN0ZWQtcmVzcG9uc2U6cHJpbnQnKTtcblxuY29uc3QgcHJlcGFyZVByaW50TW9kZWwgPSAobW9kZWwsIG9wdHMpID0+IHtcbiAgY29uc3QgaXNJbnN0cnVjdG9yID0gb3B0cy5yb2xlID09PSAnaW5zdHJ1Y3Rvcic7XG5cbiAgbW9kZWwucHJvbXB0ID0gbW9kZWwucHJvbXB0RW5hYmxlZCAhPT0gZmFsc2UgPyBtb2RlbC5wcm9tcHQgOiB1bmRlZmluZWQ7XG4gIG1vZGVsLnRlYWNoZXJJbnN0cnVjdGlvbnMgPVxuICAgIGlzSW5zdHJ1Y3RvciAmJiBtb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCAhPT0gZmFsc2UgPyBtb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zIDogdW5kZWZpbmVkO1xuICBtb2RlbC5yYXRpb25hbGUgPSBpc0luc3RydWN0b3IgJiYgbW9kZWwucmF0aW9uYWxlRW5hYmxlZCAhPT0gZmFsc2UgPyBtb2RlbC5yYXRpb25hbGUgOiB1bmRlZmluZWQ7XG4gIG1vZGVsLmFsd2F5c1Nob3dDb3JyZWN0ID0gaXNJbnN0cnVjdG9yO1xuICBtb2RlbC5tb2RlID0gaXNJbnN0cnVjdG9yID8gJ2V2YWx1YXRlJyA6IG1vZGVsLm1vZGU7XG4gIG1vZGVsLmRpc2FibGVkID0gdHJ1ZTtcbiAgbW9kZWwuYW5pbWF0aW9uc0Rpc2FibGVkID0gdHJ1ZTtcblxuICByZXR1cm4gbW9kZWw7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFeHBsaWNpdENvbnN0cnVjdGVkUmVzcG9uc2VQcmludCBleHRlbmRzIEhUTUxFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9vcHRpb25zID0gbnVsbDtcbiAgICB0aGlzLl9tb2RlbCA9IG51bGw7XG4gICAgdGhpcy5fc2Vzc2lvbiA9IFtdO1xuXG4gICAgdGhpcy5fcmVyZW5kZXIgPSBkZWJvdW5jZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX21vZGVsICYmIHRoaXMuX3Nlc3Npb24pIHtcbiAgICAgICAgICBjb25zdCBwcmludE1vZGVsID0gcHJlcGFyZVByaW50TW9kZWwodGhpcy5fbW9kZWwsIHRoaXMuX29wdGlvbnMpO1xuXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9XG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zICYmXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KE1haW4sIHtcbiAgICAgICAgICAgICAgLi4ucHJpbnRNb2RlbCxcbiAgICAgICAgICAgICAgb25DaGFuZ2U6ICgpID0+IHt9LFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBSZWFjdERPTS5yZW5kZXIoZWxlbWVudCwgdGhpcywgKCkgPT4ge1xuICAgICAgICAgICAgbG9nKCdyZW5kZXIgY29tcGxldGUgLSByZW5kZXIgbWF0aCcpO1xuICAgICAgICAgICAgcmVuZGVyTWF0aCh0aGlzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2coJ3NraXAnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIDUwLFxuICAgICAgeyBsZWFkaW5nOiBmYWxzZSwgdHJhaWxpbmc6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgc2V0IG9wdGlvbnMobykge1xuICAgIHRoaXMuX29wdGlvbnMgPSBvO1xuICB9XG5cbiAgc2V0IG1vZGVsKHMpIHtcbiAgICB0aGlzLl9tb2RlbCA9IHM7XG4gICAgdGhpcy5fcmVyZW5kZXIoKTtcbiAgfVxuXG4gIGNvbm5lY3RlZENhbGxiYWNrKCkge31cbn1cbiJdfQ==
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "9.3.2-tip-tap.2",
7
+ "version": "9.3.2-tip-tap.4",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "postpublish": "../../scripts/postpublish"
@@ -13,9 +13,9 @@
13
13
  "@material-ui/core": "^3.9.2",
14
14
  "@pie-framework/pie-player-events": "^0.1.0",
15
15
  "@pie-lib/correct-answer-toggle": "^2.25.1",
16
- "@pie-lib/mask-markup": "1.33.2-beta.5",
16
+ "@pie-lib/mask-markup": "1.33.2-beta-10",
17
17
  "@pie-lib/math-rendering": "^3.22.1",
18
- "@pie-lib/math-toolbar": "1.31.2-beta.1",
18
+ "@pie-lib/math-toolbar": "1.31.2-beta.3",
19
19
  "@pie-lib/render-ui": "^4.35.1",
20
20
  "@pie-lib/translator": "^2.23.1",
21
21
  "classnames": "^2.2.5",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/alternateResponses.jsx"],"names":["AlternateResponses","maxLengthPerChoice","props","model","state","choices","values","Object","keys","length","maxLengthPerChoiceEnabled","selectedValues","obj","c","key","setState","valueKey","arr","push","label","value","choice","onChange","sectionChoices","isNew","find","newChoices","reduce","newVal","section","onLengthChange","nextProps","updateChoicesIfNeeded","spellCheck","choicesErrors","pluginProps","selected","onSectionSelect","onChoiceChanged","onChoiceRemoved","onLengthChanged","getRemainingChoices","React","Component","PropTypes","object","isRequired","func","bool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport map from 'lodash/map';\nimport reduce from 'lodash/reduce';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport AlternateSection from './alternateSection';\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n choicesErrors: PropTypes.object,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onLengthChange: PropTypes.func.isRequired,\n maxLengthPerChoiceEnabled: PropTypes.bool.isRequired,\n spellCheck: PropTypes.bool,\n pluginProps: PropTypes.object\n };\n\n state = { maxLengthPerChoice: cloneDeep(this.props.model.maxLengthPerChoice) };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.updateChoicesIfNeeded(nextProps);\n }\n\n componentDidMount() {\n this.updateChoicesIfNeeded(this.props);\n }\n\n updateChoicesIfNeeded = (props) => {\n if (\n !this.state.choices ||\n !isEqual(this.state.choices, props.model.choices) ||\n !isEqual(props.model.choices, this.props.model.choices) ||\n (this.state.values && Object.keys(this.state.values).length !== Object.keys(this.props.model.choices).length) ||\n props.maxLengthPerChoiceEnabled !== this.props.maxLengthPerChoiceEnabled\n ) {\n const { choices, maxLengthPerChoice } = props.model;\n\n const selectedValues = reduce(\n choices,\n (obj, c, key) => {\n // if maxLengthPerChoiceEnabled is true, we display all the choices\n if (c && (props.maxLengthPerChoiceEnabled || c.length > 1)) {\n obj[key] = c[0];\n }\n\n return obj;\n },\n {},\n );\n\n this.setState({\n choices: props.model.choices,\n values: selectedValues,\n maxLengthPerChoice: cloneDeep(maxLengthPerChoice),\n });\n }\n };\n\n getRemainingChoices = (valueKey) => {\n const { choices } = this.state;\n\n return reduce(\n choices,\n (arr, c, key) => {\n if (c && c.length === 1 && !valueKey) {\n arr.push({\n label: c[0].label,\n value: key,\n });\n }\n\n return arr;\n },\n [],\n );\n };\n\n onChoiceChanged = (choice, key) => {\n const { onChange } = this.props;\n const { choices } = this.state;\n const sectionChoices = choices[key] || [];\n\n const isNew = !sectionChoices.find((c) => c.value === choice.value);\n\n const newChoices = sectionChoices.reduce((arr, c) => {\n const newVal = c.value === choice.value ? choice : c;\n\n arr.push(newVal);\n\n return arr;\n }, []);\n\n if (isNew) {\n newChoices.push(choice);\n }\n\n onChange({\n ...choices,\n [key]: newChoices,\n });\n };\n\n onChoiceRemoved = (value, section) => {\n const { onChange } = this.props;\n const { choices } = this.state;\n const sectionChoices = choices[section] || [];\n\n const newChoices = sectionChoices.reduce((arr, c) => {\n if (c.value === value) {\n return arr;\n }\n\n arr.push(c);\n\n return arr;\n }, []);\n\n onChange({\n ...choices,\n [section]: newChoices,\n });\n };\n\n onSectionSelect = (choice, key) => {\n const { onChange } = this.props;\n const { choices, values } = this.state;\n\n if (choices[key] && choices[key].length > 1) {\n if (!choice) {\n onChange({\n ...choices,\n [key]: [choices[key][0]],\n });\n }\n } else {\n this.setState({\n choices: {\n ...choices,\n [key]: [\n ...choices[key],\n {\n label: '',\n value: '1',\n },\n ],\n },\n values: {\n ...values,\n [key]: choices[key][0],\n },\n });\n }\n };\n\n onLengthChanged = (value, key) => {\n const { model, onLengthChange } = this.props;\n const { maxLengthPerChoice } = model;\n\n maxLengthPerChoice[key] = value;\n onLengthChange(maxLengthPerChoice);\n };\n\n render() {\n const { choices } = this.state;\n const {\n model: { maxLengthPerChoice, maxLengthPerChoiceEnabled },\n spellCheck,\n choicesErrors,\n pluginProps\n } = this.props;\n\n return (\n <div>\n {map(choices, (c, key) => {\n // if maxLengthPerChoiceEnabled is true, we display all the choices\n if (c && (maxLengthPerChoiceEnabled || c.length > 1)) {\n const selected = this.state.values[key];\n\n return (\n <AlternateSection\n key={key}\n value={selected && selected.value}\n errors={choicesErrors && choicesErrors[key]}\n onSelect={(choice) => this.onSectionSelect(choice, key)}\n choiceChanged={(choice) => this.onChoiceChanged(choice, key)}\n choiceRemoved={(value) => this.onChoiceRemoved(value, key)}\n lengthChanged={(value) => this.onLengthChanged(value, key)}\n selectChoices={[selected]}\n choices={c}\n maxLength={maxLengthPerChoice[key]}\n showMaxLength={maxLengthPerChoiceEnabled}\n spellCheck={spellCheck}\n pluginProps={pluginProps}\n />\n );\n }\n })}\n\n {choices && Object.keys(this.state.values).length !== Object.keys(choices).length && (\n <AlternateSection\n value=\"\"\n onSelect={(choice) => this.onSectionSelect(choice, choice.value)}\n choiceChanged={(choice) => this.onChoiceChanged(choice)}\n choiceRemoved={(value) => this.onChoiceRemoved(value)}\n selectChoices={this.getRemainingChoices()}\n spellCheck={spellCheck}\n pluginProps={pluginProps}\n />\n )}\n </div>\n );\n }\n}\n\nexport default AlternateResponses;\n"],"file":"alternateResponses.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/alternateSection.jsx"],"names":["styles","theme","design","marginBottom","spacing","unit","altChoices","alignItems","flexDirection","display","paddingTop","width","choice","flex","marginRight","deleteBtn","fill","palette","grey","selectContainer","justifyContent","rightContainer","lengthField","errorText","fontSize","typography","color","error","main","inputError","border","borderRadius","Choice","value","props","markup","onChange","e","strippedValue","setState","updateText","nextProps","state","classes","onDelete","spellCheck","showMaxLength","pluginProps","inputProps","maxLength","language","minWidth","isHidden","characters","disabled","React","Component","PropTypes","object","string","func","isRequired","bool","AlternateSection","choices","onSelect","selectChoices","target","find","c","length","label","map","parseInt","filter","id","isNaN","index","choiceChanged","lengthChanged","labelLengthsArr","newLength","Math","max","choiceRemoved","event","numberValue","minLength","getChoicesMaxLength","updateChoicesIfNeeded","errors","select","handleSelect","min","changeLength","addButton","onAddChoice","val","onChoiceChanged","onRemoveChoice","array","number","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEqual from 'lodash/isEqual';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport Button from '@material-ui/core/Button';\nimport Delete from '@material-ui/icons/Delete';\nimport IconButton from '@material-ui/core/IconButton';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport TextField from '@material-ui/core/TextField';\nimport { withStyles } from '@material-ui/core/styles';\nimport max from 'lodash/max';\nimport classnames from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { stripHtmlTags, getAdjustedLength, decodeHTML } from './markupUtils';\n\nconst styles = (theme) => ({\n design: {\n marginBottom: theme.spacing.unit / 2,\n },\n altChoices: {\n alignItems: 'flex-start',\n flexDirection: 'column',\n display: 'flex',\n paddingTop: theme.spacing.unit * 2.5,\n '& > *': {\n marginBottom: theme.spacing.unit * 2.5,\n width: '100%',\n },\n },\n choice: {\n flex: '1',\n marginRight: theme.spacing.unit * 2.5,\n },\n deleteBtn: {\n fill: theme.palette.grey[600],\n },\n selectContainer: {\n alignItems: 'flex-end',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n rightContainer: {\n alignItems: 'center',\n display: 'flex',\n },\n lengthField: {\n width: '230px',\n marginRight: theme.spacing.unit * 2.5,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit / 2,\n },\n inputError: {\n border: `2px solid ${theme.palette.error.main}`,\n borderRadius: '6px',\n },\n});\n\nexport class Choice extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n error: PropTypes.string,\n markup: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n value: PropTypes.string,\n spellCheck: PropTypes.bool,\n showMaxLength: PropTypes.bool,\n pluginProps: PropTypes.object,\n };\n\n state = {\n value: this.props.markup,\n };\n\n updateText = debounce(this.props.onChange, 300);\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.markup) {\n this.setState({ value: nextProps.markup });\n }\n }\n\n onChange = (e) => {\n const strippedValue = stripHtmlTags(e);\n this.setState({ value: strippedValue });\n this.updateText(strippedValue);\n };\n\n render() {\n const { value } = this.state;\n const { classes, onDelete, spellCheck, error, showMaxLength, pluginProps } = this.props;\n const inputProps = showMaxLength ? {} : { maxLength: 25 };\n\n return (\n <React.Fragment>\n <div\n style={{\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n }}\n >\n <EditableHtml\n className={classnames(classes.choice, error && classes.inputError)}\n disableUnderline\n onChange={this.onChange}\n markup={value || ''}\n activePlugins={['languageCharacters']}\n pluginProps={pluginProps}\n languageCharactersProps={[{ language: 'spanish' }]}\n spellCheck={spellCheck}\n autoWidthToolbar\n toolbarOpts={{\n minWidth: 'auto',\n isHidden: !!pluginProps?.characters?.disabled,\n }}\n {...inputProps}\n />\n <IconButton aria-label=\"delete\" className={classes.deleteBtn} onClick={onDelete}>\n <Delete />\n </IconButton>\n </div>\n {error && <div className={classes.errorText}>{error}</div>}\n </React.Fragment>\n );\n }\n}\n\nexport class AlternateSection extends React.Component {\n static propTypes = {\n choices: PropTypes.array,\n selectChoices: PropTypes.array.isRequired,\n classes: PropTypes.object.isRequired,\n errors: PropTypes.object,\n onSelect: PropTypes.func.isRequired,\n choiceChanged: PropTypes.func.isRequired,\n lengthChanged: PropTypes.func,\n choiceRemoved: PropTypes.func.isRequired,\n value: PropTypes.string,\n maxLength: PropTypes.number,\n showMaxLength: PropTypes.bool,\n spellCheck: PropTypes.bool,\n pluginProps: PropTypes.object,\n };\n\n state = {};\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.updateChoicesIfNeeded(nextProps);\n }\n\n componentDidMount() {\n this.updateChoicesIfNeeded(this.props);\n }\n\n updateChoicesIfNeeded = (props) => {\n if (\n !this.state.choices ||\n !isEqual(props.choices, this.state.choices) ||\n !isEqual(props.choices, this.props.choices)\n ) {\n this.setState({\n choices: props.choices,\n });\n }\n };\n\n handleSelect = (e) => {\n const { onSelect, selectChoices } = this.props;\n const { value } = e.target;\n\n onSelect(selectChoices.find((c) => c.value === value));\n };\n\n onAddChoice = () => {\n const { choices } = this.state;\n\n if (choices.length && choices[choices.length - 1].label !== '') {\n const value = max(choices.map((c) => parseInt(c.value)).filter((id) => !isNaN(id))) || 0;\n\n this.setState({\n choices: [\n ...choices,\n {\n value: `${value + 1}`,\n label: '',\n },\n ],\n });\n }\n };\n\n onChoiceChanged = (choice, value, index) => {\n const { choiceChanged, lengthChanged, maxLength, choices } = this.props;\n\n const labelLengthsArr = choices.map((choice) => decodeHTML(choice.label || '').length);\n labelLengthsArr[index] = decodeHTML(value).length;\n\n const newLength = Math.max(...labelLengthsArr);\n\n choiceChanged({\n ...choice,\n label: value,\n });\n\n if (newLength > maxLength || newLength + 10 <= maxLength) {\n lengthChanged(getAdjustedLength(newLength));\n }\n };\n\n onRemoveChoice = (choice) => {\n const { choiceRemoved } = this.props;\n\n choiceRemoved(choice.value);\n };\n\n getChoicesMaxLength = () => {\n const { choices } = this.state;\n\n if (!choices) {\n return 1;\n }\n\n const labelLengthsArr = choices.map((choice) => decodeHTML(choice.label || '').length);\n\n return Math.max(...labelLengthsArr);\n };\n\n changeLength = (event) => {\n const { lengthChanged } = this.props;\n const numberValue = parseInt(event.target.value, 10);\n const minLength = this.getChoicesMaxLength();\n\n if (numberValue && numberValue >= minLength && numberValue <= minLength + 10) {\n lengthChanged(numberValue);\n }\n };\n\n render() {\n const { classes, selectChoices, maxLength, showMaxLength, value, spellCheck, errors, pluginProps } = this.props;\n const { choices } = this.state;\n const minLength = this.getChoicesMaxLength();\n\n return (\n <div className={classes.design}>\n <div className={classes.selectContainer}>\n <Select\n className={classes.select}\n displayEmpty\n onChange={this.handleSelect}\n value={value || ''}\n readOnly={showMaxLength}\n >\n <MenuItem value=\"\">\n <em>{value ? 'Remove selection' : 'Select a response'}</em>\n </MenuItem>\n {selectChoices.map((c, index) => (\n <MenuItem key={index} value={c?.value}>\n {decodeHTML(c?.label)}\n </MenuItem>\n ))}\n </Select>\n\n {choices && choices.length > 0 && (\n <div className={classes.rightContainer}>\n {maxLength && showMaxLength && (\n <TextField\n className={classes.lengthField}\n label=\"Maximum length (characters)\"\n type=\"number\"\n inputProps={{\n min: minLength,\n max: minLength + 10,\n }}\n value={maxLength}\n onChange={this.changeLength}\n />\n )}\n <Button className={classes.addButton} variant=\"contained\" color=\"primary\" onClick={this.onAddChoice}>\n Add\n </Button>\n </div>\n )}\n </div>\n {errors && errors[0] && <div className={classes.errorText}>{errors[0]}</div>}\n\n <div className={classes.altChoices}>\n {choices &&\n choices.map(\n (c, index) =>\n index > 0 && (\n <Choice\n key={index}\n classes={classes}\n markup={c.label}\n onChange={(val) => this.onChoiceChanged(c, val, index)}\n onDelete={() => this.onRemoveChoice(c)}\n spellCheck={spellCheck}\n error={errors && errors[index]}\n showMaxLength={showMaxLength}\n pluginProps={pluginProps}\n />\n ),\n )}\n </div>\n </div>\n );\n }\n}\n\nconst Styled = withStyles(styles)(AlternateSection);\n\nexport default Styled;\n"],"file":"alternateSection.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","choices","displayType","markup","maxLengthPerChoiceEnabled","playerSpellCheckEnabled","prompt","promptEnabled","rationale","rationaleEnabled","spellCheckEnabled","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","responseAreaInputConfiguration","configuration","baseInputConfiguration","html","disabled","audio","video","image","textAlign","showParagraphs","separateParagraphs","settings","label","inputConfiguration","required","partialScoring","settingsPanelDisabled","spellCheck","enabled","editSource","playerSpellCheck","template","h3","blockquote","maxLengthPerChoice","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options","characters","spanishButton"],"mappings":"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","sourcesContent":["export default {\n model: {\n choices: {},\n displayType: 'block',\n markup: '',\n maxLengthPerChoiceEnabled: true,\n playerSpellCheckEnabled: true,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n spellCheckEnabled: true,\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n responseAreaInputConfiguration: {},\n },\n configuration: {\n baseInputConfiguration: {\n html: { disabled: true },\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n editSource: {\n label: 'Edit Source',\n settings: false,\n enabled: false,\n },\n playerSpellCheck: {\n label: 'Student Spellcheck',\n settings: true,\n enabled: true,\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n template: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n h3: { disabled: true },\n blockquote: { disabled: true },\n },\n },\n maxLengthPerChoice: {\n settings: true,\n label: 'Maximum Length Per Choice',\n },\n maxResponseAreas: 10,\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n responseAreaInputConfiguration: {\n inputConfiguration: {\n characters: {\n disabled: true\n },\n },\n },\n spanishButton: {\n settings: true,\n label: 'Disable Spanish Characters',\n },\n },\n};\n"],"file":"defaults.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ecr-toolbar.jsx"],"names":["findSlateNode","key","window","document","querySelector","ECRToolbar","markup","toolbarStyle","props","node","editor","onToolbarDone","onChangeResponse","sanitizedMarkup","setState","commands","updateAttributes","value","respAreaMarkup","event","clickedInside","correctChoice","choice","domNode","view","nodeDOM","state","selection","from","nodeType","domNodeRect","getBoundingClientRect","closest","editorRect","top","left","label","position","width","classes","maxLengthPerChoiceEnabled","pluginProps","spellCheck","inputProps","maxLength","preventDone","onRespAreaChange","val","onDone","e","relatedTarget","onBlur","onKeyDown","language","minWidth","isHidden","characters","disabled","React","Component","PropTypes","object","func","isRequired","shape","change","getNextText","bool","StyledECRToolbar","theme","backgroundColor","palette","common","white","outline","lineHeight"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,GAAD,EAAS;AAC7B,SAAOC,MAAM,CAACC,QAAP,CAAgBC,aAAhB,CAA8B,gBAAgBH,GAAhB,GAAsB,IAApD,CAAP;AACD,CAFD;;IAIaI,U;;;;;;;;;;;;;;;8FAoBH;AACNC,MAAAA,MAAM,EAAE,EADF;AAENC,MAAAA,YAAY,EAAE;AAFR,K;+FAiCC,UAACD,MAAD,EAAY;AACnB,wBAA0D,MAAKE,KAA/D;AAAA,UAAQC,IAAR,eAAQA,IAAR;AAAA,UAAcC,MAAd,eAAcA,MAAd;AAAA,UAAsBC,aAAtB,eAAsBA,aAAtB;AAAA,UAAqCC,gBAArC,eAAqCA,gBAArC;AACA,UAAMC,eAAe,GAAG,gCAAcP,MAAd,CAAxB;;AACA,YAAKQ,QAAL,CAAc;AAAER,QAAAA,MAAM,EAAEO;AAAV,OAAd;;AAEAH,MAAAA,MAAM,CAACK,QAAP,CAAgBC,gBAAhB,CAAiC,+BAAjC,EAAkE;AAAEC,QAAAA,KAAK,EAAEJ;AAAT,OAAlE;AAEAF,MAAAA,aAAa,CAAC,IAAD,CAAb;AACAC,MAAAA,gBAAgB,CAACC,eAAD,CAAhB;AACD,K;yGAEkB,UAACK,cAAD,EAAoB;AACrC,YAAKJ,QAAL,CAAc;AAAEI,QAAAA,cAAc,EAAdA;AAAF,OAAd;AACD,K;kGAEW,UAACC,KAAD,EAAW;AACrB,UAAIA,KAAK,CAAClB,GAAN,KAAc,OAAlB,EAA2B;AACzB,eAAO,KAAP;AACD;AACF,K;+FAEQ,YAAM;AACb,UAAI,MAAKmB,aAAT,EAAwB;AACtB,cAAKA,aAAL,GAAqB,KAArB;AACD;AACF,K;;;;;;WArDD,6BAAoB;AAClB,yBAAwC,KAAKZ,KAA7C;AAAA,UAAQa,aAAR,gBAAQA,aAAR;AAAA,UAAuBZ,IAAvB,gBAAuBA,IAAvB;AAAA,UAA6BC,MAA7B,gBAA6BA,MAA7B;AACA,UAAMY,MAAM,GAAGD,aAAa,IAAI,EAAhC;AAEA,UAAME,OAAO,GAAGb,MAAM,CAACc,IAAP,CAAYC,OAAZ,CAAoBf,MAAM,CAACgB,KAAP,CAAaC,SAAb,CAAuBC,IAA3C,CAAhB;;AAEA,UAAI,CAAAL,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEM,QAAT,MAAsB,CAA1B,EAA6B;AAC3B;AACA,YAAMC,WAAW,GAAGP,OAAO,CAACQ,qBAAR,EAApB;;AACA,YAAMrB,OAAM,GAAGa,OAAO,CAACS,OAAR,CAAgB,SAAhB,CAAf;;AACA,YAAMC,UAAU,GAAGvB,OAAM,CAACqB,qBAAP,EAAnB;;AACA,YAAMG,GAAG,GAAGJ,WAAW,CAACI,GAAZ,GAAkBD,UAAU,CAACC,GAAzC;AACA,YAAMC,IAAI,GAAGL,WAAW,CAACK,IAAZ,GAAmBF,UAAU,CAACE,IAA3C;AAEA,aAAKrB,QAAL,CAAc;AACZR,UAAAA,MAAM,EAAEgB,MAAM,CAACc,KADH;AAEZ7B,UAAAA,YAAY,EAAE;AACZ8B,YAAAA,QAAQ,EAAE,UADE;AAEZ;AACAH,YAAAA,GAAG,EAAE,CAHO;AAIZ;AACAC,YAAAA,IAAI,EAAE,CALM;AAMZG,YAAAA,KAAK,YAAKR,WAAW,CAACQ,KAAZ,GAAoB,CAAzB;AANO;AAFF,SAAd;AAWD;AACF;;;WA6BD,kBAAS;AAAA;AAAA;;AACP,yBAAwE,KAAK9B,KAA7E;AAAA,UAAQ+B,OAAR,gBAAQA,OAAR;AAAA,UAAiBC,yBAAjB,gBAAiBA,yBAAjB;AAAA,UAA4CC,WAA5C,gBAA4CA,WAA5C;AAAA,UAAyDC,UAAzD,gBAAyDA,UAAzD;AACA,wBAAiC,KAAKhB,KAAtC;AAAA,UAAQpB,MAAR,eAAQA,MAAR;AAAA,UAAgBC,YAAhB,eAAgBA,YAAhB;AACA,UAAMoC,UAAU,GAAGH,yBAAyB,GAAG,EAAH,GAAQ;AAAEI,QAAAA,SAAS,EAAE;AAAb,OAApD;AAEA,0BACE;AAAK,QAAA,KAAK,EAAErC;AAAZ,sBACE,gCAAC,8BAAD;AACE,QAAA,SAAS,EAAE,IADb;AAEE,QAAA,SAAS,EAAEgC,OAAO,CAACjC,MAFrB;AAGE,QAAA,gBAAgB,MAHlB;AAIE,QAAA,QAAQ,EAAE,kBAACY,cAAD,EAAoB;AAC5B,cAAI,MAAI,CAAC2B,WAAT,EAAsB;AACpB;AACD;;AACD,UAAA,MAAI,CAACC,gBAAL,CAAsB5B,cAAtB;AACD,SATH;AAUE,QAAA,MAAM,EAAE,gBAAC6B,GAAD,EAAS;AACf,cAAI,MAAI,CAACF,WAAT,EAAsB;AACpB;AACD;;AACD,UAAA,MAAI,CAACG,MAAL,CAAYD,GAAZ;AACD,SAfH;AAgBE,QAAA,MAAM,EAAE,gBAACE,CAAD,EAAO;AACb,UAAA,MAAI,CAACJ,WAAL,GAAmBI,CAAC,CAACC,aAAF,IAAmBD,CAAC,CAACC,aAAF,CAAgBlB,OAAhB,CAAwB,0BAAxB,CAAtC;;AACA,UAAA,MAAI,CAACmB,MAAL,CAAYF,CAAZ;AACD,SAnBH;AAoBE,QAAA,SAAS,EAAE,KAAKG,SApBlB;AAqBE,QAAA,MAAM,EAAE9C,MAAM,IAAI,EArBpB;AAsBE,QAAA,aAAa,EAAE,CAAC,oBAAD,CAtBjB;AAuBE,QAAA,WAAW,EAAEmC,WAvBf;AAwBE,QAAA,uBAAuB,EAAE,CAAC;AAAEY,UAAAA,QAAQ,EAAE;AAAZ,SAAD,CAxB3B;AAyBE,QAAA,SAAS,EAAE,MAzBb;AA0BE,QAAA,SAAS,EAAE,MA1Bb;AA2BE,QAAA,UAAU,EAAEX,UA3Bd;AA4BE,QAAA,gBAAgB,MA5BlB;AA6BE,QAAA,WAAW,EAAE;AACXY,UAAAA,QAAQ,EAAE,MADC;AAEXC,UAAAA,QAAQ,EAAE,CAAC,EAACd,WAAD,aAACA,WAAD,wCAACA,WAAW,CAAEe,UAAd,kDAAC,sBAAyBC,QAA1B;AAFA;AA7Bf,SAiCMd,UAjCN,EADF,CADF;AAuCD;;;EA5H6Be,kBAAMC,S;;;iCAAzBtD,U,eACQ;AACjBgB,EAAAA,aAAa,EAAEuC,sBAAUC,MADR;AAEjBtB,EAAAA,OAAO,EAAEqB,sBAAUC,MAFF;AAGjBpD,EAAAA,IAAI,EAAEmD,sBAAUC,MAHC;AAIjBb,EAAAA,MAAM,EAAEY,sBAAUE,IAJD;AAKjBlD,EAAAA,gBAAgB,EAAEgD,sBAAUE,IAAV,CAAeC,UALhB;AAMjBpD,EAAAA,aAAa,EAAEiD,sBAAUE,IAAV,CAAeC,UANb;AAOjB9C,EAAAA,KAAK,EAAE2C,sBAAUI,KAAV,CAAgB;AACrBC,IAAAA,MAAM,EAAEL,sBAAUE,IAAV,CAAeC,UADF;AAErB5D,IAAAA,QAAQ,EAAEyD,sBAAUI,KAAV,CAAgB;AACxBE,MAAAA,WAAW,EAAEN,sBAAUE,IAAV,CAAeC;AADJ,KAAhB;AAFW,GAAhB,CAPU;AAajBrD,EAAAA,MAAM,EAAEkD,sBAAUC,MAbD;AAcjBrB,EAAAA,yBAAyB,EAAEoB,sBAAUO,IAdpB;AAejB1B,EAAAA,WAAW,EAAEmB,sBAAUC,MAfN;AAgBjBnB,EAAAA,UAAU,EAAEkB,sBAAUO;AAhBL,C;AA8HrB,IAAMC,gBAAgB,GAAG,wBAAW,UAACC,KAAD;AAAA,SAAY;AAC9C/D,IAAAA,MAAM,EAAE;AACNgE,MAAAA,eAAe,EAAED,KAAK,CAACE,OAAN,CAAcC,MAAd,CAAqBC,KADhC;AAENC,MAAAA,OAAO,EAAE,MAFH;AAGNC,MAAAA,UAAU,EAAE;AAHN;AADsC,GAAZ;AAAA,CAAX,EAMrBtE,UANqB,CAAzB;eAQe+D,gB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { stripHtmlTags, decodeHTML } from './markupUtils';\n\nconst findSlateNode = (key) => {\n return window.document.querySelector('[data-key=\"' + key + '\"]');\n};\n\nexport class ECRToolbar extends React.Component {\n static propTypes = {\n correctChoice: PropTypes.object,\n classes: PropTypes.object,\n node: PropTypes.object,\n onDone: PropTypes.func,\n onChangeResponse: PropTypes.func.isRequired,\n onToolbarDone: PropTypes.func.isRequired,\n value: PropTypes.shape({\n change: PropTypes.func.isRequired,\n document: PropTypes.shape({\n getNextText: PropTypes.func.isRequired,\n }),\n }),\n editor: PropTypes.object,\n maxLengthPerChoiceEnabled: PropTypes.bool,\n pluginProps: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n state = {\n markup: '',\n toolbarStyle: {},\n };\n\n componentDidMount() {\n const { correctChoice, node, editor } = this.props;\n const choice = correctChoice || {};\n\n const domNode = editor.view.nodeDOM(editor.state.selection.from);\n\n if (domNode?.nodeType === 1) {\n //eslint-disable-next-line\n const domNodeRect = domNode.getBoundingClientRect();\n const editor = domNode.closest('.tiptap');\n const editorRect = editor.getBoundingClientRect();\n const top = domNodeRect.top - editorRect.top;\n const left = domNodeRect.left - editorRect.left;\n\n this.setState({\n markup: choice.label,\n toolbarStyle: {\n position: 'absolute',\n // top: `${top + domNodeRect.height + 17}px`,\n top: 0,\n // left: `${left + 20}px`,\n left: 0,\n width: `${domNodeRect.width - 4}px`,\n },\n });\n }\n }\n\n onDone = (markup) => {\n const { node, editor, onToolbarDone, onChangeResponse } = this.props;\n const sanitizedMarkup = stripHtmlTags(markup);\n this.setState({ markup: sanitizedMarkup });\n\n editor.commands.updateAttributes('explicit_constructed_response', { value: sanitizedMarkup });\n\n onToolbarDone(true);\n onChangeResponse(sanitizedMarkup);\n };\n\n onRespAreaChange = (respAreaMarkup) => {\n this.setState({ respAreaMarkup });\n };\n\n onKeyDown = (event) => {\n if (event.key === 'Enter') {\n return false;\n }\n };\n\n onBlur = () => {\n if (this.clickedInside) {\n this.clickedInside = false;\n }\n };\n\n render() {\n const { classes, maxLengthPerChoiceEnabled, pluginProps, spellCheck } = this.props;\n const { markup, toolbarStyle } = this.state;\n const inputProps = maxLengthPerChoiceEnabled ? {} : { maxLength: 25 };\n\n return (\n <div style={toolbarStyle}>\n <EditableHtml\n autoFocus={true}\n className={classes.markup}\n disableUnderline\n onChange={(respAreaMarkup) => {\n if (this.preventDone) {\n return;\n }\n this.onRespAreaChange(respAreaMarkup);\n }}\n onDone={(val) => {\n if (this.preventDone) {\n return;\n }\n this.onDone(val);\n }}\n onBlur={(e) => {\n this.preventDone = e.relatedTarget && e.relatedTarget.closest('.insert-character-dialog');\n this.onBlur(e);\n }}\n onKeyDown={this.onKeyDown}\n markup={markup || ''}\n activePlugins={['languageCharacters']}\n pluginProps={pluginProps}\n languageCharactersProps={[{ language: 'spanish' }]}\n minHeight={'15px'}\n maxHeight={'15px'}\n spellCheck={spellCheck}\n autoWidthToolbar\n toolbarOpts={{\n minWidth: 'auto',\n isHidden: !!pluginProps?.characters?.disabled,\n }}\n {...inputProps}\n />\n </div>\n );\n }\n}\n\nconst StyledECRToolbar = withStyles((theme) => ({\n markup: {\n backgroundColor: theme.palette.common.white,\n outline: 'none',\n lineHeight: '15px',\n },\n}))(ECRToolbar);\n\nexport default StyledECRToolbar;\n"],"file":"ecr-toolbar.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","ExplicitConstructedResponse","_model","prepareModel","_configuration","sensibleDefaults","configuration","onModelChanged","bind","onConfigurationChanged","s","responseAreaInputConfiguration","inputConfiguration","_render","c","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","_disableSidePanel","reset","resetValue","dispatchEvent","ModelUpdatedEvent","m","dispatchModelUpdated","newInputConfig","handler","InsertImageEvent","src","done","DeleteImageEvent","InsertSoundEvent","DeleteSoundEvent","element","React","createElement","Main","model","disableSidePanel","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","render","HTMLElement","joinedObj","slateMarkup","markup","choices","processedMarkup","Object","keys","forEach","key","map","item","index"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\nimport defaults from 'lodash/defaults';\nimport isArray from 'lodash/isArray';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './main';\n\nimport sensibleDefaults from './defaults';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\n\nconst log = debug('explicit-constructed-response:configure');\n\nexport default class ExplicitConstructedResponse extends HTMLElement {\n static prepareModel = (model = {}) => {\n const joinedObj = {\n ...sensibleDefaults.model,\n ...model,\n };\n const slateMarkup = joinedObj.slateMarkup || createSlateMarkup(joinedObj.markup, joinedObj.choices);\n const processedMarkup = processMarkup(slateMarkup);\n\n // this was added to treat an exception, when the model has choices without the \"value\" property\n // like: { label: 'test' }\n if (joinedObj.choices) {\n Object.keys(joinedObj.choices).forEach((key) => {\n if (isArray(joinedObj.choices[key])) {\n joinedObj.choices[key] = (joinedObj.choices[key] || []).map((item, index) => {\n if (!item.value) {\n log('Choice does not contain \"value\" property, which is required.', item);\n return { value: `${index}`, ...item };\n }\n\n return item;\n });\n }\n });\n }\n\n return {\n ...joinedObj,\n slateMarkup,\n markup: processedMarkup,\n };\n };\n\n constructor() {\n super();\n this._model = ExplicitConstructedResponse.prepareModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(s) {\n this._model = ExplicitConstructedResponse.prepareModel(s);\n if (this._model.responseAreaInputConfiguration) {\n this._model.responseAreaInputConfiguration = this._configuration.responseAreaInputConfiguration?.inputConfiguration;\n }\n this._render();\n }\n\n set configuration(c) {\n this._configuration = defaults(c, sensibleDefaults.configuration);\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (c.language?.enabled) {\n if (c.languageChoices?.options?.length) {\n this._model.language = c.languageChoices.options[0].value;\n }\n } else if (c.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n set disableSidePanel(s) {\n this._disableSidePanel = s;\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged(m, reset) {\n this._model = ExplicitConstructedResponse.prepareModel(m);\n this._render();\n this.dispatchModelUpdated(reset);\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n\n const newInputConfig = this._configuration?.responseAreaInputConfiguration?.inputConfiguration;\n\n this._model = {\n ...this._model,\n responseAreaInputConfiguration: newInputConfig\n };\n\n this.onModelChanged(this._model);\n }\n\n\n /** @param {done, progress, file} handler */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n log('_render');\n\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n disableSidePanel: this._disableSidePanel,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["toggle","settings","Panel","dropdown","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","markup","minHeight","choiceConfiguration","paddingBottom","switchElement","justifyContent","margin","addButton","text","fontSize","typography","tooltip","whiteSpace","maxWidth","errorText","color","palette","error","main","flexContainer","display","alignItems","responseHeader","marginTop","createElementFromHTML","htmlString","div","document","createElement","innerHTML","trim","Main","newVal","props","onModelChanged","model","prompt","rationale","teacherInstructions","slateMarkup","choices","maxLengthPerChoice","index","newValLength","length","label","value","nbOfMissingChoices","Array","fill","splice","domMarkup","allRespAreas","querySelectorAll","allChoices","updatedMaxLengthPerChoice","forEach","el","newChoices","dataset","callback","setState","cachedChoices","undefined","nodes","state","newCachedChoices","node","keyForNode","data","get","Object","assign","hasOwnProperty","trailing","leading","undefinedLengths","values","choice","labelLengthsArr","map","Math","max","classes","configuration","onConfigurationChanged","imageSupport","uploadSoundSupport","baseInputConfiguration","contentDimensions","maxImageWidth","maxImageHeight","maxResponseAreas","partialScoring","playerSpellCheck","template","settingsPanelDisabled","spellCheck","editSource","withRubric","mathMlOptions","language","languageChoices","spanishButton","responseAreaInputConfiguration","errors","extraCSSRules","maxLengthPerChoiceEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","choicesErrors","promptError","rationaleError","responseAreasError","responseAreas","teacherInstructionsError","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","enabled","options","panelProperties","playerSpellCheckEnabled","rubricEnabled","getPluginProps","onModelChange","Settings","Properties","onTeacherInstructionsChanged","inputConfiguration","onPromptChanged","marginLeft","ALL_PLUGINS","type","duplicates","respAreaToolbar","editor","onToolbarDone","correctChoice","attrs","onChangeResponse","onHandleAreaChange","onChange","onBlur","onResponsesChanged","onLengthChanged","onRationaleChanged","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEmpty from 'lodash/isEmpty';\nimport pick from 'lodash/pick';\nimport throttle from 'lodash/throttle';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html-tip-tap';\nimport { InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport ECRToolbar from './ecr-toolbar';\nimport AlternateResponses from './alternateResponses';\nimport { decodeHTML, getAdjustedLength } from './markupUtils';\nimport { generateValidationMessage } from './utils';\nimport classnames from 'classnames';\n\nconst { toggle, Panel, dropdown } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n markup: {\n minHeight: '100px',\n paddingTop: theme.spacing.unit,\n width: '100%',\n '& [data-slate-editor=\"true\"]': {\n minHeight: '100px',\n },\n },\n choiceConfiguration: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n switchElement: {\n justifyContent: 'space-between',\n margin: 0,\n },\n addButton: {\n float: 'right',\n },\n text: {\n fontSize: theme.typography.fontSize + 2,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n responseHeader: {\n marginTop: theme.spacing.unit * 3,\n marginBottom: theme.spacing.unit,\n },\n});\n\nconst createElementFromHTML = (htmlString) => {\n const div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n\n return div;\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.object,\n };\n\n state = {};\n\n componentDidMount() {\n const {\n model: { slateMarkup, choices, maxLengthPerChoice = [] },\n onModelChanged,\n } = this.props;\n const undefinedLengths = !maxLengthPerChoice.length;\n\n this.setState({ markup: slateMarkup });\n\n // calculate maxLengthPerChoice array if it is not defined or defined incorrectly\n Object.values(choices).forEach((choice, index) => {\n const labelLengthsArr = choice.map((choice) => decodeHTML(choice.label || '').length);\n const length = Math.max(...labelLengthsArr);\n\n if (\n undefinedLengths ||\n !maxLengthPerChoice[index] ||\n maxLengthPerChoice[index] < length ||\n maxLengthPerChoice[index] > length + 10\n ) {\n maxLengthPerChoice[index] = getAdjustedLength(length);\n }\n });\n\n onModelChanged({ ...this.props.model, maxLengthPerChoice });\n }\n\n onModelChange = (newVal) => {\n this.props.onModelChanged({ ...this.props.model, ...newVal });\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({ ...this.props.model, prompt });\n };\n\n onRationaleChanged = (rationale) => {\n this.props.onModelChanged({ ...this.props.model, rationale });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, teacherInstructions });\n };\n\n onMarkupChanged = (slateMarkup) => {\n this.props.onModelChanged({ ...this.props.model, slateMarkup });\n };\n\n onResponsesChanged = (choices) => {\n this.props.onModelChanged({ ...this.props.model, choices });\n };\n\n onLengthChanged = (maxLengthPerChoice) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, maxLengthPerChoice });\n };\n\n onChangeResponse = (index, newVal) => {\n const { model, onModelChanged } = this.props;\n const { choices } = model;\n let { maxLengthPerChoice } = model;\n const newValLength = decodeHTML(newVal || '').length;\n\n if (!choices[index]) {\n choices[index] = [{ label: newVal || '', value: '0' }];\n\n // add default values for missing choices up to the new index position\n const nbOfMissingChoices = index > maxLengthPerChoice.length ? index - maxLengthPerChoice.length : 0;\n\n maxLengthPerChoice = [...maxLengthPerChoice, ...Array(nbOfMissingChoices).fill(1)];\n\n maxLengthPerChoice.splice(index, 0, getAdjustedLength(newValLength));\n } else {\n choices[index][0].label = newVal || '';\n\n if (\n maxLengthPerChoice &&\n (maxLengthPerChoice[index] < newValLength || maxLengthPerChoice[index] > newValLength + 10)\n ) {\n maxLengthPerChoice[index] = getAdjustedLength(newValLength);\n }\n }\n\n onModelChanged({ ...model, choices, maxLengthPerChoice });\n };\n\n onChange = (markup) => {\n const {\n model: { choices, maxLengthPerChoice },\n onModelChanged,\n } = this.props;\n const domMarkup = createElementFromHTML(markup);\n const allRespAreas = domMarkup.querySelectorAll('[data-type=\"explicit_constructed_response\"]');\n\n const allChoices = {};\n const updatedMaxLengthPerChoice = [];\n\n allRespAreas.forEach((el, index) => {\n const newChoices = cloneDeep(choices[el.dataset.index]);\n\n if (newChoices) {\n newChoices[0] = {\n label: el.dataset.value || '',\n value: '0',\n };\n\n updatedMaxLengthPerChoice[index] = maxLengthPerChoice[el.dataset.index];\n }\n\n allChoices[index] = newChoices;\n el.dataset.index = index;\n });\n\n const callback = () =>\n onModelChanged({\n ...this.props.model,\n choices: allChoices,\n slateMarkup: domMarkup.innerHTML,\n maxLengthPerChoice: updatedMaxLengthPerChoice,\n });\n\n this.setState({ cachedChoices: undefined }, callback);\n };\n\n onHandleAreaChange = throttle(\n (nodes) => {\n const {\n model: { choices },\n onModelChanged,\n } = this.props;\n const { cachedChoices } = this.state;\n\n if (!nodes) {\n return;\n }\n\n const newChoices = choices ? cloneDeep(choices) : {};\n const newCachedChoices = cachedChoices ? cloneDeep(cachedChoices) : {};\n\n nodes.forEach((node) => {\n const keyForNode = node.data.get('index');\n\n if (!newChoices[keyForNode] && newCachedChoices[keyForNode]) {\n Object.assign(newChoices, pick(newCachedChoices, keyForNode));\n\n if (newCachedChoices.hasOwnProperty(keyForNode)) {\n delete newCachedChoices[keyForNode];\n }\n } else {\n Object.assign(newCachedChoices, pick(newChoices, keyForNode));\n\n if (newChoices.hasOwnProperty(keyForNode)) {\n delete newChoices[keyForNode];\n }\n }\n });\n\n const callback = () => onModelChanged({ ...this.props.model, choices: newChoices });\n\n this.setState({ cachedChoices: newCachedChoices }, callback);\n },\n 500,\n { trailing: false, leading: true },\n );\n\n render() {\n const { classes, model, configuration, onConfigurationChanged, imageSupport, uploadSoundSupport } = this.props;\n\n const {\n baseInputConfiguration = {},\n contentDimensions = {},\n maxImageWidth = {},\n maxImageHeight = {},\n maxLengthPerChoice = {},\n maxResponseAreas,\n partialScoring = {},\n playerSpellCheck = {},\n prompt = {},\n rationale = {},\n template = {},\n settingsPanelDisabled,\n spellCheck = {},\n editSource = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n spanishButton = {},\n responseAreaInputConfiguration = {},\n } = configuration || {};\n const {\n errors,\n extraCSSRules,\n maxLengthPerChoiceEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const {\n choices: choicesErrors = {},\n prompt: promptError,\n rationale: rationaleError,\n responseAreas: responseAreasError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n maxLengthPerChoiceEnabled: maxLengthPerChoice.settings && toggle(maxLengthPerChoice.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n 'responseAreaInputConfiguration.inputConfiguration.characters.disabled':\n spanishButton.settings && toggle(spanishButton.label, true),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n playerSpellCheckEnabled: playerSpellCheck.settings && toggle(playerSpellCheck.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n 'editSource.enabled': editSource?.settings && toggle(editSource.label, true),\n };\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => this.onModelChange(model)}\n onChangeConfiguration={(configuration) => onConfigurationChanged(configuration, true)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n autoWidthToolbar\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n autoWidthToolbar\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.text} component=\"div\">\n Define Template, Choices, and Correct Responses\n </Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '8px' }} />\n </Tooltip>\n </div>\n\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n toolbarOpts={{ position: 'top' }}\n spellCheck={spellCheckEnabled}\n pluginProps={getPluginProps(template?.inputConfiguration)}\n responseAreaProps={{\n type: 'explicit-constructed-response',\n options: {\n duplicates: true,\n },\n maxResponseAreas: maxResponseAreas,\n respAreaToolbar: (node, editor, onToolbarDone) => {\n const { model } = this.props;\n const correctChoice = (model.choices[node.attrs.index] || [])[0];\n return () => (\n <ECRToolbar\n onChangeResponse={(newVal) => this.onChangeResponse(node.attrs.index, newVal)}\n node={node}\n editor={editor}\n onToolbarDone={onToolbarDone}\n correctChoice={correctChoice}\n maxLengthPerChoiceEnabled={maxLengthPerChoiceEnabled}\n pluginProps={getPluginProps(responseAreaInputConfiguration?.inputConfiguration)}\n />\n );\n },\n error: () => choicesErrors,\n onHandleAreaChange: this.onHandleAreaChange,\n }}\n className={classes.markup}\n markup={model.slateMarkup}\n onChange={this.onChange}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n onBlur={this.onBlur}\n disabled={false}\n highlightShape={false}\n error={responseAreasError}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n autoWidthToolbar\n />\n {responseAreasError && <div className={classes.errorText}>{responseAreasError}</div>}\n\n {!isEmpty(model.choices) && (\n <Typography className={classnames(classes.text, classes.responseHeader)}>\n {`Define Alternates ${maxLengthPerChoiceEnabled ? 'and Character Limits' : ''}`}\n </Typography>\n )}\n <AlternateResponses\n model={model}\n onChange={this.onResponsesChanged}\n onLengthChange={this.onLengthChanged}\n maxLengthPerChoiceEnabled={maxLengthPerChoiceEnabled}\n spellCheck={spellCheckEnabled}\n choicesErrors={choicesErrors}\n pluginProps={getPluginProps(responseAreaInputConfiguration?.inputConfiguration)}\n />\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rationale?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n autoWidthToolbar\n />\n {rationaleError && <div className={classes.errorText}>{rationaleError}</div>}\n </InputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default Styled;\n"],"file":"main.js"}