@pie-element/explicit-constructed-response 6.1.0-next.1 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +5 -0
- package/configure/lib/alternateResponses.js +1 -1
- package/configure/lib/alternateSection.js +1 -1
- package/configure/lib/defaults.js +1 -1
- package/configure/lib/ecr-toolbar.js +1 -1
- package/configure/lib/index.js +1 -1
- package/configure/lib/main.js +12 -6
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/markupUtils.js +1 -1
- package/configure/lib/utils.js +1 -1
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/index.js +1 -1
- package/lib/index.js +1 -1
- package/lib/main.js +3 -3
- package/lib/main.js.map +1 -1
- package/lib/print.js +1 -1
- package/package.json +2 -2
- package/configure/lib/__tests__/alternateResponses.test.js +0 -335
- package/configure/lib/__tests__/alternateSection.test.js +0 -221
- package/configure/lib/__tests__/ecr-toolbar.test.js +0 -89
- package/configure/lib/__tests__/main.test.js +0 -320
- package/configure/lib/__tests__/markupUtils.test.js +0 -56
- package/configure/lib/__tests__/utils.test.js +0 -66
- package/controller/lib/__tests__/index.spec.js +0 -52
- package/controller/lib/__tests__/index.test.js +0 -1207
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/main.test.js +0 -124
- package/module/demo.js +0 -45
- package/module/element.js +0 -116626
- package/module/index.html +0 -21
- package/module/manifest.json +0 -10
- package/module/print-demo.js +0 -83
- package/module/print.html +0 -18
- package/module/print.js +0 -116569
package/controller/lib/index.js
CHANGED
|
@@ -367,4 +367,4 @@ var validate = function validate() {
|
|
|
367
367
|
};
|
|
368
368
|
|
|
369
369
|
exports.validate = validate;
|
|
370
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJ0cmFuc2xhdG9yIiwiVHJhbnNsYXRvciIsImxvZyIsInByZXBhcmVDaG9pY2UiLCJtb2RlIiwiZGVmYXVsdEZlZWRiYWNrIiwiY2hvaWNlIiwib3V0IiwibGFiZWwiLCJ2YWx1ZSIsImNvcnJlY3QiLCJmZWVkYmFja1R5cGUiLCJmZWVkYmFjayIsInR5cGUiLCJnZXRGZWVkYmFjayIsImdldEFkanVzdGVkTGVuZ3RoIiwibGVuZ3RoIiwibm9ybWFsaXplIiwicXVlc3Rpb24iLCJkZWZhdWx0cyIsInJhdGlvbmFsZUVuYWJsZWQiLCJwcm9tcHRFbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZCIsIm1vZGVsIiwic2Vzc2lvbiIsImVudiIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2hvaWNlcyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwibWFwIiwiaXRlbSIsImluZGV4Iiwibm9ybWFsaXplZFF1ZXN0aW9uIiwiYXNzaWduIiwiaW5jb3JyZWN0IiwicHJlcGFyQ2hvaWNlRm4iLCJvYmoiLCJhcmVhIiwicmVzcEFyZWEiLCJjaG9zZW5WYWx1ZSIsInZhbCIsImMiLCJwcmVwYXJlVmFsIiwic2hvd05vdGUiLCJ2YWx1ZXMiLCJub3RlIiwidCIsImxuZyIsImxhbmd1YWdlIiwibWF4TGVuZ3RoUGVyQ2hvaWNlIiwibWF4TGVuZ3RoUGVyQ2hvaWNlRW5hYmxlZCIsInVuZGVmaW5lZExlbmd0aHMiLCJsYWJlbExlbmd0aHNBcnIiLCJNYXRoIiwibWF4IiwiZGlzYWJsZWQiLCJwcm9tcHQiLCJtYXJrdXAiLCJkaXNwbGF5VHlwZSIsInBsYXllclNwZWxsQ2hlY2tFbmFibGVkIiwicmVzcG9uc2VDb3JyZWN0IiwiZ2V0U2NvcmUiLCJ1bmRlZmluZWQiLCJyb2xlIiwicmF0aW9uYWxlIiwidGVhY2hlckluc3RydWN0aW9ucyIsImdldFRleHRGcm9tSFRNTCIsImh0bWwiLCJyZXBsYWNlIiwidHJpbSIsImNvbmZpZyIsInJlc3BvbnNlQXJlYXMiLCJtYXRjaCIsIm1heFNjb3JlIiwiY29ycmVjdENvdW50IiwidG90YWwiLCJzdHIiLCJ0b0ZpeGVkIiwicGFyc2VGbG9hdCIsIm91dGNvbWUiLCJwYXJ0aWFsU2NvcmluZ0VuYWJsZWQiLCJwYXJ0aWFsU2NvcmluZyIsImVuYWJsZWQiLCJzY29yZSIsImVtcHR5IiwiY3JlYXRlQ29ycmVjdFJlc3BvbnNlU2Vzc2lvbiIsImkiLCJpZCIsInZhbGlkYXRlIiwibWF4UmVzcG9uc2VBcmVhcyIsImFsbENob2ljZXNFcnJvcnMiLCJlbnRyaWVzIiwicmV2ZXJzZWRDaG9pY2VzIiwicmV2ZXJzZSIsImNob2ljZXNFcnJvcnMiLCJpZGVudGljYWxBbnN3ZXIiLCJzbGljZSIsInNvbWUiLCJlcnJvcnMiLCJuYk9mUmVzcG9uc2VBcmVhcyIsInJlc3BvbnNlQXJlYXNFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsSUFBUUEsVUFBUixHQUF1QkMsc0JBQXZCLENBQVFELFVBQVI7QUFFQSxJQUFNRSxHQUFHLEdBQUcsdUJBQU0sMENBQU4sQ0FBWjs7QUFFTyxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNDLElBQUQsRUFBT0MsZUFBUDtBQUFBLFNBQTJCLFVBQUNDLE1BQUQsRUFBWTtBQUNsRSxRQUFNQyxHQUFHLEdBQUc7QUFDVkMsTUFBQUEsS0FBSyxFQUFFRixNQUFNLENBQUNFLEtBREo7QUFFVkMsTUFBQUEsS0FBSyxFQUFFSCxNQUFNLENBQUNHO0FBRkosS0FBWjs7QUFLQSxRQUFJTCxJQUFJLEtBQUssVUFBYixFQUF5QjtBQUN2QkcsTUFBQUEsR0FBRyxDQUFDRyxPQUFKLEdBQWMsSUFBZDtBQUVBLFVBQU1DLFlBQVksR0FBSUwsTUFBTSxDQUFDTSxRQUFQ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RixlQUFlLEdBQUdILGVBQWUsQ0FBQ0ksS0FBaEIsQ0FBc0JqRSxLQUFLLEdBQUcsQ0FBOUIsRUFBaUNrRSxJQUFqQyxDQUFzQyxVQUFDeEQsQ0FBRDtBQUFBLGlCQUFPQSxDQUFDLENBQUN0QyxLQUFGLEtBQVlBLEtBQW5CO0FBQUEsU0FBdEMsQ0FBeEI7O0FBRUEsWUFBSTRGLGVBQUosRUFBcUI7QUFDbkJELFVBQUFBLGFBQWEsQ0FBQzFGLEtBQUQsQ0FBYixHQUF1QiwyQkFBdkI7QUFDRDtBQUNGO0FBQ0YsS0FaRDs7QUFjQSxRQUFJLENBQUMseUJBQVEwRixhQUFSLENBQUwsRUFBNkI7QUFDM0JKLE1BQUFBLGdCQUFnQixDQUFDOUQsR0FBRCxDQUFoQixHQUF3QmtFLGFBQXhCO0FBQ0Q7QUFDRixHQXJCRDtBQXVCQSxNQUFNSSxNQUFNLEdBQUcsRUFBZjtBQUNBLE1BQU1DLGlCQUFpQixHQUFHLENBQUMxQyxNQUFNLENBQUNlLEtBQVAsQ0FBYSxnQkFBYixLQUFrQyxFQUFuQyxFQUF1QzdELE1BQWpFOztBQUVBLE1BQUl3RixpQkFBaUIsR0FBR1YsZ0JBQXhCLEVBQTBDO0FBQ3hDUyxJQUFBQSxNQUFNLENBQUNFLGtCQUFQLDBCQUE0Q1gsZ0JBQTVDO0FBQ0QsR0FGRCxNQUVPLElBQUlVLGlCQUFpQixHQUFHLENBQXhCLEVBQTJCO0FBQ2hDRCxJQUFBQSxNQUFNLENBQUNFLGtCQUFQLEdBQTRCLG1EQUE1QjtBQUNEOztBQUVELE1BQUksQ0FBQyx5QkFBUVYsZ0JBQVIsQ0FBTCxFQUFnQztBQUM5QlEsSUFBQUEsTUFBTSxDQUFDSixhQUFQLEdBQXVCSixnQkFBdkI7QUFDRDs7QUFFRCxTQUFPUSxNQUFQO0FBQ0QsQ0ExQ00iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWFwIGZyb20gJ2xvZGFzaC9tYXAnO1xuaW1wb3J0IHJlZHVjZSBmcm9tICdsb2Rhc2gvcmVkdWNlJztcbmltcG9ydCBmaW5kIGZyb20gJ2xvZGFzaC9maW5kJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBwYXJ0aWFsU2NvcmluZyB9IGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L2NvbnRyb2xsZXItdXRpbHMnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4vZGVmYXVsdHMnO1xuaW1wb3J0IFRyYW5zbGF0b3IgZnJvbSAnQHBpZS1saWIvcGllLXRvb2xib3gvdHJhbnNsYXRvcic7XG5cbmNvbnN0IHsgdHJhbnNsYXRvciB9ID0gVHJhbnNsYXRvcjtcblxuY29uc3QgbG9nID0gZGVidWcoJ2V4cGxpY2l0LWNvbnN0cnVjdGVkLXJlc3BvbnNlOmNvbnRyb2xsZXInKTtcblxuZXhwb3J0IGNvbnN0IHByZXBhcmVDaG9pY2UgPSAobW9kZSwgZGVmYXVsdEZlZWRiYWNrKSA9PiAoY2hvaWNlKSA9PiB7XG4gIGNvbnN0IG91dCA9IHtcbiAgICBsYWJlbDogY2hvaWNlLmxhYmVsLFxuICAgIHZhbHVlOiBjaG9pY2UudmFsdWUsXG4gIH07XG5cbiAgaWYgKG1vZGUgPT09ICdldmFsdWF0ZScpIHtcbiAgICBvdXQuY29ycmVjdCA9IHRydWU7XG5cbiAgICBjb25zdCBmZWVkYmFja1R5cGUgPSAoY2hvaWNlLmZlZWRiYWNrICYmIGNob2ljZS5mZWVkYmFjay50eXBlKSB8fCAnbm9uZSc7XG5cbiAgICBpZiAoZmVlZGJhY2tUeXBlID09PSAnZGVmYXVsdCcpIHtcbiAgICAgIG91dC5mZWVkYmFjayA9IGRlZmF1bHRGZWVkYmFja1snY29ycmVjdCddO1xuICAgIH0gZWxzZSBpZiAoZmVlZGJhY2tUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgb3V0LmZlZWRiYWNrID0gY2hvaWNlLmZlZWRiYWNrLnZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXQ7XG59O1xuXG5jb25zdCBnZXRGZWVkYmFjayA9ICh2YWx1ZSkgPT4ge1xuICBpZiAodmFsdWUpIHtcbiAgICByZXR1cm4gJ2NvcnJlY3QnO1xuICB9XG5cbiAgcmV0dXJuICdpbmNvcnJlY3QnO1xufTtcblxuLy8gYWxzbyB1c2VkIGluIGNvbmZpZ3VyZS9zcmMvbWFya3VwVXRpbHMuanNcbmNvbnN0IGdldEFkanVzdGVkTGVuZ3RoID0gKGxlbmd0aCkgPT4ge1xuICBpZiAobGVuZ3RoIDw9IDIpIHtcbiAgICByZXR1cm4gbGVuZ3RoICsgMjtcbiAgfVxuXG4gIGlmIChsZW5ndGggPD0gNCkge1xuICAgIHJldHVybiBsZW5ndGggKyAzO1xuICB9XG5cbiAgaWYgKGxlbmd0aCA8PSA2KSB7XG4gICAgcmV0dXJuIGxlbmd0aCArIDQ7XG4gIH1cblxuICByZXR1cm4gbGVuZ3RoICsgNTtcbn07XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemUgPSAocXVlc3Rpb24pID0+ICh7XG4gIC4uLmRlZmF1bHRzLFxuICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICBwcm9tcHRFbmFibGVkOiB0cnVlLFxuICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgc3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gIC4uLnF1ZXN0aW9uLFxufSk7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7Kn0gcXVlc3Rpb25cbiAqIEBwYXJhbSB7Kn0gc2Vzc2lvblxuICogQHBhcmFtIHsqfSBlbnZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsKHF1ZXN0aW9uLCBzZXNzaW9uLCBlbnYpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgLy8gdGhpcyB3YXMgYWRkZWQgdG8gdHJlYXQgYW4gZXhjZXB0aW9uLCB3aGVuIHRoZSBtb2RlbCBoYXMgY2hvaWNlcyB3aXRob3V0IHRoZSBcInZhbHVlXCIgcHJvcGVydHlcbiAgICAvLyBsaWtlOiB7IGxhYmVsOiAndGVzdCcgfVxuICAgIGlmIChxdWVzdGlvbi5jaG9pY2VzKSB7XG4gICAgICBPYmplY3Qua2V5cyhxdWVzdGlvbi5jaG9pY2VzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgcXVlc3Rpb24uY2hvaWNlc1trZXldID0gKHF1ZXN0aW9uLmNob2ljZXNba2V5XSB8fCBbXSkubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGlmICghaXRlbS52YWx1ZSkge1xuICAgICAgICAgICAgbG9nKCdDaG9pY2UgZG9lcyBub3QgY29udGFpbiBcInZhbHVlXCIgcHJvcGVydHksIHdoaWNoIGlzIHJlcXVpcmVkLicsIGl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGAke2luZGV4fWAsIC4uLml0ZW0gfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVkUXVlc3Rpb24gPSBub3JtYWxpemUocXVlc3Rpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRGZWVkYmFjayA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7IGNvcnJlY3Q6ICdDb3JyZWN0JywgaW5jb3JyZWN0OiAnSW5jb3JyZWN0JyB9LFxuICAgICAgbm9ybWFsaXplZFF1ZXN0aW9uLmRlZmF1bHRGZWVkYmFjayxcbiAgICApO1xuXG4gICAgY29uc3QgeyB2YWx1ZSA9IHt9IH0gPSBzZXNzaW9uIHx8IHt9O1xuXG4gICAgY29uc3QgcHJlcGFyQ2hvaWNlRm4gPSBwcmVwYXJlQ2hvaWNlKGVudi5tb2RlLCBkZWZhdWx0RmVlZGJhY2spO1xuXG4gICAgbGV0IGNob2ljZXMgPSByZWR1Y2UoXG4gICAgICBub3JtYWxpemVkUXVlc3Rpb24uY2hvaWNlcyxcbiAgICAgIChvYmosIGFyZWEsIGtleSkgPT4ge1xuICAgICAgICBvYmpba2V5XSA9IG1hcChhcmVhLCBwcmVwYXJDaG9pY2VGbik7XG5cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApO1xuICAgIGxldCBmZWVkYmFjayA9IHt9O1xuXG4gICAgaWYgKGVudi5tb2RlID09PSAnZXZhbHVhdGUnKSB7XG4gICAgICBmZWVkYmFjayA9IHJlZHVjZShcbiAgICAgICAgbm9ybWFsaXplZFF1ZXN0aW9uLmNob2ljZXMsXG4gICAgICAgIChvYmosIHJlc3BBcmVhLCBrZXkpID0+IHtcbiAgICAgICAgICBjb25zdCBjaG9zZW5WYWx1ZSA9IHZhbHVlICYmIHZhbHVlW2tleV07XG4gICAgICAgICAgY29uc3QgdmFsID0gIWlzRW1wdHkoY2hvc2VuVmFsdWUpICYmIGZpbmQocmVzcEFyZWEsIChjKSA9PiBwcmVwYXJlVmFsKGMubGFiZWwpID09PSBwcmVwYXJlVmFsKGNob3NlblZhbHVlKSk7XG5cbiAgICAgICAgICBvYmpba2V5XSA9IGdldEZlZWRiYWNrKHZhbCk7XG5cbiAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICB9LFxuICAgICAgICB7fSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IHNob3dOb3RlID0gZmFsc2U7XG4gICAgLy8gY2hlY2sgaWYgYSBjaG9pY2UgaGFzIGFuIGFsdGVybmF0ZVxuICAgIE9iamVjdC52YWx1ZXMoY2hvaWNlcykuZm9yRWFjaCgoY2hvaWNlKSA9PiB7XG4gICAgICBpZiAoY2hvaWNlICYmIGNob2ljZS5sZW5ndGggPiAxKSB7XG4gICAgICAgIHNob3dOb3RlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCB7IG5vdGUgfSA9IG5vcm1hbGl6ZWRRdWVzdGlvbjtcblxuICAgIGlmICghbm90ZSkge1xuICAgICAgbm90ZSA9IHRyYW5zbGF0b3IudCgnY29tbW9uOmNvbW1vbkNvcnJlY3RBbnN3ZXJXaXRoQWx0ZXJuYXRlcycsIHsgbG5nOiBub3JtYWxpemVkUXVlc3Rpb24ubGFuZ3VhZ2UgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBtYXhMZW5ndGhQZXJDaG9pY2UgPSBbXSwgbWF4TGVuZ3RoUGVyQ2hvaWNlRW5hYmxlZCB9ID0gbm9ybWFsaXplZFF1ZXN0aW9uO1xuICAgIGNvbnN0IHVuZGVmaW5lZExlbmd0aHMgPSAhbWF4TGVuZ3RoUGVyQ2hvaWNlLmxlbmd0aDtcblxuICAgIC8vIGNhbGN1bGF0ZSBtYXhMZW5ndGhQZXJDaG9pY2UgYXJyYXkgaWYgaXQgaXMgbm90IGRlZmluZWQgb3IgZGVmaW5lZCBpbmNvcnJlY3RseVxuICAgIE9iamVjdC52YWx1ZXMoY2hvaWNlcykuZm9yRWFjaCgoY2hvaWNlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxMZW5ndGhzQXJyID0gKGNob2ljZSB8fCBbXSkubWFwKChjaG9pY2UpID0+IChjaG9pY2UubGFiZWwgfHwgJycpLmxlbmd0aCk7XG4gICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1heCguLi5sYWJlbExlbmd0aHNBcnIpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHVuZGVmaW5lZExlbmd0aHMgfHxcbiAgICAgICAgIW1heExlbmd0aFBlckNob2ljZVtpbmRleF0gfHxcbiAgICAgICAgbWF4TGVuZ3RoUGVyQ2hvaWNlW2luZGV4XSA8IGxlbmd0aCB8fFxuICAgICAgICBtYXhMZW5ndGhQZXJDaG9pY2VbaW5kZXhdID4gbGVuZ3RoICsgMTBcbiAgICAgICkge1xuICAgICAgICBtYXhMZW5ndGhQZXJDaG9pY2VbaW5kZXhdID0gZ2V0QWRqdXN0ZWRMZW5ndGgobGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IG91dCA9IHtcbiAgICAgIGRpc2FibGVkOiBlbnYubW9kZSAhPT0gJ2dhdGhlcicsXG4gICAgICBtb2RlOiBlbnYubW9kZSxcbiAgICAgIHByb21wdDogbm9ybWFsaXplZFF1ZXN0aW9uLnByb21wdEVuYWJsZWQgPyBub3JtYWxpemVkUXVlc3Rpb24ucHJvbXB0IDogbnVsbCxcbiAgICAgIG1hcmt1cDogbm9ybWFsaXplZFF1ZXN0aW9uLm1hcmt1cCxcbiAgICAgIGNob2ljZXMsXG4gICAgICBmZWVkYmFjayxcbiAgICAgIGVudixcbiAgICAgIG5vdGUsXG4gICAgICBzaG93Tm90ZSxcbiAgICAgIG1heExlbmd0aFBlckNob2ljZSxcbiAgICAgIG1heExlbmd0aFBlckNob2ljZUVuYWJsZWQsXG4gICAgICBkaXNwbGF5VHlwZTogbm9ybWFsaXplZFF1ZXN0aW9uLmRpc3BsYXlUeXBlLFxuICAgICAgcGxheWVyU3BlbGxDaGVja0VuYWJsZWQ6IG5vcm1hbGl6ZWRRdWVzdGlvbi5wbGF5ZXJTcGVsbENoZWNrRW5hYmxlZCxcbiAgICAgIHJlc3BvbnNlQ29ycmVjdDogZW52Lm1vZGUgPT09ICdldmFsdWF0ZScgPyBnZXRTY29yZShub3JtYWxpemVkUXVlc3Rpb24sIHNlc3Npb24pID09PSAxIDogdW5kZWZpbmVkLFxuICAgICAgbGFuZ3VhZ2U6IG5vcm1hbGl6ZWRRdWVzdGlvbi5sYW5ndWFnZVxuICAgIH07XG5cbiAgICBpZiAoZW52LnJvbGUgPT09ICdpbnN0cnVjdG9yJyAmJiAoZW52Lm1vZGUgPT09ICd2aWV3JyB8fCBlbnYubW9kZSA9PT0gJ2V2YWx1YXRlJykpIHtcbiAgICAgIG91dC5yYXRpb25hbGUgPSBub3JtYWxpemVkUXVlc3Rpb24ucmF0aW9uYWxlRW5hYmxlZCA/IG5vcm1hbGl6ZWRRdWVzdGlvbi5yYXRpb25hbGUgOiBudWxsO1xuICAgICAgb3V0LnRlYWNoZXJJbnN0cnVjdGlvbnMgPSBub3JtYWxpemVkUXVlc3Rpb24udGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWRcbiAgICAgICAgPyBub3JtYWxpemVkUXVlc3Rpb24udGVhY2hlckluc3RydWN0aW9uc1xuICAgICAgICA6IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dC5yYXRpb25hbGUgPSBudWxsO1xuICAgICAgb3V0LnRlYWNoZXJJbnN0cnVjdGlvbnMgPSBudWxsO1xuICAgIH1cblxuICAgIHJlc29sdmUob3V0KTtcbiAgfSk7XG59XG5cbmNvbnN0IGdldFRleHRGcm9tSFRNTCA9IChodG1sKSA9PiB7XG4gIHJldHVybiAoaHRtbCB8fCAnJykucmVwbGFjZSgvPFxcLz9bXj5dKyg+fCQpL2csICcnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcmVwYXJlVmFsID0gKGh0bWwpID0+IHtcbiAgY29uc3QgdmFsdWUgPSBnZXRUZXh0RnJvbUhUTUwoaHRtbCk7XG5cbiAgcmV0dXJuIHZhbHVlLnRyaW0oKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTY29yZSA9IChjb25maWcsIHNlc3Npb24pID0+IHtcbiAgY29uc3QgeyB2YWx1ZSB9ID0gc2Vzc2lvbiB8fCB7fTtcblxuICBpZiAoIXNlc3Npb24gfHwgaXNFbXB0eShzZXNzaW9uKSB8fCAhdmFsdWUpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGNvbnN0IHJlc3BvbnNlQXJlYXMgPSBjb25maWcubWFya3VwICYmIGNvbmZpZy5tYXJrdXAubWF0Y2goL1xce1xceyguKVxcfVxcfS9nKTtcbiAgY29uc3QgbWF4U2NvcmUgPSByZXNwb25zZUFyZWFzID8gcmVzcG9uc2VBcmVhcy5sZW5ndGggOiAwO1xuICBjb25zdCBjb3JyZWN0Q291bnQgPSByZWR1Y2UoXG4gICAgY29uZmlnLmNob2ljZXMsXG4gICAgKHRvdGFsLCByZXNwQXJlYSwga2V5KSA9PiB7XG4gICAgICBjb25zdCBjaG9zZW5WYWx1ZSA9IHZhbHVlICYmIHZhbHVlW2tleV07XG5cbiAgICAgIGlmIChpc0VtcHR5KGNob3NlblZhbHVlKSB8fCAhZmluZChyZXNwQXJlYSwgKGMpID0+IHByZXBhcmVWYWwoYy5sYWJlbCkgPT09IHByZXBhcmVWYWwoY2hvc2VuVmFsdWUpKSkge1xuICAgICAgICByZXR1cm4gdG90YWw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0b3RhbCArIDE7XG4gICAgfSxcbiAgICAwLFxuICApO1xuXG4gIGNvbnN0IHN0ciA9IG1heFNjb3JlID8gKGNvcnJlY3RDb3VudCAvIG1heFNjb3JlKS50b0ZpeGVkKDIpIDogMDtcblxuICByZXR1cm4gcGFyc2VGbG9hdChzdHIpO1xufTtcblxuLyoqXG4gKlxuICogVGhlIHNjb3JlIGlzIHBhcnRpYWwgYnkgZGVmYXVsdCBmb3IgY2hlY2tib3ggbW9kZSwgYWxsT3JOb3RoaW5nIGZvciByYWRpbyBtb2RlLlxuICogVG8gZGlzYWJsZSBwYXJ0aWFsIHNjb3JpbmcgZm9yIGNoZWNrYm94IG1vZGUgeW91IGVpdGhlciBzZXQgbW9kZWwucGFydGlhbFNjb3JpbmcgPSBmYWxzZSBvciBlbnYucGFydGlhbFNjb3JpbmcgPVxuICogZmFsc2UuIHRoZSB2YWx1ZSBpbiBgZW52YCB3aWxsIG92ZXJyaWRlIHRoZSB2YWx1ZSBpbiBgbW9kZWxgLlxuICogQHBhcmFtIHtPYmplY3R9IG1vZGVsIC0gdGhlIG1haW4gbW9kZWxcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gbW9kZWwucGFydGlhbFNjb3JpbmcgLSBpcyBwYXJ0aWFsIHNjb3JpbmcgZW5hYmxlZCAoaWYgdW5kZWZpbmVkIHNldCB0byB0byB0cnVlKVxuICogQHBhcmFtIHsqfSBzZXNzaW9uXG4gKiBAcGFyYW0ge09iamVjdH0gZW52XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGVudi5wYXJ0aWFsU2NvcmluZyAtIGlzIHBhcnRpYWwgc2NvcmluZyBlbmFibGVkIChpZiB1bmRlZmluZWQgZGVmYXVsdCB0byB0cnVlKSBUaGlzIG92ZXJyaWRlc1xuICogICBgbW9kZWwucGFydGlhbFNjb3JpbmdgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb3V0Y29tZShtb2RlbCwgc2Vzc2lvbiwgZW52ID0ge30pIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgcGFydGlhbFNjb3JpbmdFbmFibGVkID0gcGFydGlhbFNjb3JpbmcuZW5hYmxlZChtb2RlbCwgZW52KTtcbiAgICBjb25zdCBzY29yZSA9IGdldFNjb3JlKG1vZGVsLCBzZXNzaW9uKTtcblxuICAgIHJlc29sdmUoeyBzY29yZTogcGFydGlhbFNjb3JpbmdFbmFibGVkID8gc2NvcmUgOiBzY29yZSA9PT0gMSA/IDEgOiAwLCBlbXB0eTogaXNFbXB0eShzZXNzaW9uKSB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDb3JyZWN0UmVzcG9uc2VTZXNzaW9uID0gKHF1ZXN0aW9uLCBlbnYpID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgaWYgKGVudi5tb2RlICE9PSAnZXZhbHVhdGUnICYmIGVudi5yb2xlID09PSAnaW5zdHJ1Y3RvcicpIHtcbiAgICAgIGNvbnN0IHsgY2hvaWNlcyB9ID0gcXVlc3Rpb247XG4gICAgICBjb25zdCB2YWx1ZSA9IHt9O1xuXG4gICAgICBPYmplY3Qua2V5cyhjaG9pY2VzKS5mb3JFYWNoKChrZXksIGkpID0+IHtcbiAgICAgICAgdmFsdWVbaV0gPSBjaG9pY2VzW2tleV1bMF0ubGFiZWw7XG4gICAgICB9KTtcblxuICAgICAgcmVzb2x2ZSh7XG4gICAgICAgIGlkOiAnMScsXG4gICAgICAgIHZhbHVlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgfVxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZSA9IChtb2RlbCA9IHt9LCBjb25maWcgPSB7fSkgPT4ge1xuICBjb25zdCB7IGNob2ljZXMsIG1hcmt1cCB9ID0gbW9kZWw7XG4gIGNvbnN0IHsgbWF4UmVzcG9uc2VBcmVhcyB9ID0gY29uZmlnO1xuICBjb25zdCBhbGxDaG9pY2VzRXJyb3JzID0ge307XG5cbiAgT2JqZWN0LmVudHJpZXMoY2hvaWNlcyB8fCB7fSkuZm9yRWFjaCgoW2tleSwgdmFsdWVzXSkgPT4ge1xuICAgIGNvbnN0IHJldmVyc2VkQ2hvaWNlcyA9IFsuLi4odmFsdWVzIHx8IFtdKV0ucmV2ZXJzZSgpO1xuICAgIGNvbnN0IGNob2ljZXNFcnJvcnMgPSB7fTtcblxuICAgIHJldmVyc2VkQ2hvaWNlcy5mb3JFYWNoKChjaG9pY2UsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBsYWJlbCB9ID0gY2hvaWNlO1xuXG4gICAgICBpZiAobGFiZWwgPT09ICcnIHx8IGxhYmVsID09PSAnPGRpdj48L2Rpdj4nKSB7XG4gICAgICAgIGNob2ljZXNFcnJvcnNbdmFsdWVdID0gJ0NvbnRlbnQgc2hvdWxkIG5vdCBiZSBlbXB0eS4nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaWRlbnRpY2FsQW5zd2VyID0gcmV2ZXJzZWRDaG9pY2VzLnNsaWNlKGluZGV4ICsgMSkuc29tZSgoYykgPT4gYy5sYWJlbCA9PT0gbGFiZWwpO1xuXG4gICAgICAgIGlmIChpZGVudGljYWxBbnN3ZXIpIHtcbiAgICAgICAgICBjaG9pY2VzRXJyb3JzW3ZhbHVlXSA9ICdDb250ZW50IHNob3VsZCBiZSB1bmlxdWUuJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFpc0VtcHR5KGNob2ljZXNFcnJvcnMpKSB7XG4gICAgICBhbGxDaG9pY2VzRXJyb3JzW2tleV0gPSBjaG9pY2VzRXJyb3JzO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgZXJyb3JzID0ge307XG4gIGNvbnN0IG5iT2ZSZXNwb25zZUFyZWFzID0gKG1hcmt1cC5tYXRjaCgvXFx7XFx7KFxcZCspXFx9XFx9L2cpIHx8IFtdKS5sZW5ndGg7XG5cbiAgaWYgKG5iT2ZSZXNwb25zZUFyZWFzID4gbWF4UmVzcG9uc2VBcmVhcykge1xuICAgIGVycm9ycy5yZXNwb25zZUFyZWFzRXJyb3IgPSBgTm8gbW9yZSB0aGFuICR7bWF4UmVzcG9uc2VBcmVhc30gcmVzcG9uc2UgYXJlYXMgc2hvdWxkIGJlIGRlZmluZWQuYDtcbiAgfSBlbHNlIGlmIChuYk9mUmVzcG9uc2VBcmVhcyA8IDEpIHtcbiAgICBlcnJvcnMucmVzcG9uc2VBcmVhc0Vycm9yID0gJ1RoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCAxIHJlc3BvbnNlIGFyZWEgZGVmaW5lZC4nO1xuICB9XG5cbiAgaWYgKCFpc0VtcHR5KGFsbENob2ljZXNFcnJvcnMpKSB7XG4gICAgZXJyb3JzLmNob2ljZXNFcnJvcnMgPSBhbGxDaG9pY2VzRXJyb3JzO1xuICB9XG5cbiAgcmV0dXJuIGVycm9ycztcbn07XG4iXX0=
|
|
370
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js
CHANGED
|
@@ -121,4 +121,4 @@ var InlineDropdown = /*#__PURE__*/function (_HTMLElement) {
|
|
|
121
121
|
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
|
|
122
122
|
|
|
123
123
|
exports["default"] = InlineDropdown;
|
|
124
|
-
//# sourceMappingURL=
|
|
124
|
+
//# sourceMappingURL=index.js.map
|
package/lib/main.js
CHANGED
|
@@ -33,7 +33,7 @@ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
|
33
33
|
|
|
34
34
|
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
35
35
|
|
|
36
|
-
var _correctAnswerToggle = require("@pie-lib/pie-toolbox/correct-answer-toggle");
|
|
36
|
+
var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/pie-toolbox/correct-answer-toggle"));
|
|
37
37
|
|
|
38
38
|
var _maskMarkup = require("@pie-lib/pie-toolbox/mask-markup");
|
|
39
39
|
|
|
@@ -182,7 +182,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
182
182
|
}
|
|
183
183
|
}, teacherInstructionsDiv) : teacherInstructionsDiv), prompt && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
184
184
|
prompt: prompt
|
|
185
|
-
}), !alwaysShowCorrect && /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle
|
|
185
|
+
}), !alwaysShowCorrect && /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
|
|
186
186
|
show: mode === 'evaluate',
|
|
187
187
|
toggled: showCorrectAnswer,
|
|
188
188
|
onToggle: this.toggleShowCorrect,
|
|
@@ -276,4 +276,4 @@ var styles = function styles(theme) {
|
|
|
276
276
|
var _default = (0, _styles.withStyles)(styles)(Main);
|
|
277
277
|
|
|
278
278
|
exports["default"] = _default;
|
|
279
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzIl0sIm5hbWVzIjpbInRyYW5zbGF0b3IiLCJUcmFuc2xhdG9yIiwiTWFpbiIsInNob3dDb3JyZWN0QW5zd2VyIiwicHJvcHMiLCJhbHdheXNTaG93Q29ycmVjdCIsInZhbHVlIiwibWF4TGVuZ3RoUGVyQ2hvaWNlIiwiZXZlcnkiLCJ2YWwiLCJpIiwiYXJyIiwib25DaGFuZ2UiLCJtYXhXYWl0Iiwic2V0U3RhdGUiLCJzdGF0ZSIsImdldENoYW5nZVNlc3Npb24iLCJjaGFuZ2VTZXNzaW9uIiwibmV4dFByb3BzIiwibGFuZ3VhZ2UiLCJub3RlIiwiZmVlZGJhY2siLCJ0IiwibG5nIiwiY2xhc3NlcyIsIm1vZGUiLCJwcm9tcHQiLCJyYXRpb25hbGUiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwic2hvd05vdGUiLCJlbnYiLCJhbmltYXRpb25zRGlzYWJsZWQiLCJtYXhMZW5ndGhQZXJDaG9pY2VFbmFibGVkIiwiZGlzcGxheVR5cGUiLCJwbGF5ZXJTcGVsbENoZWNrRW5hYmxlZCIsInJvbGUiLCJkaXNwbGF5Tm90ZSIsIm1haW5DbGFzc2VzIiwibWFpbkNvbnRhaW5lciIsIm5vQm9yZGVyQ29sb3IiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zRGl2IiwicmF0aW9uYWxlRGl2IiwiZGlzcGxheSIsInNyT25seSIsImNvbGxhcHNpYmxlIiwiaGlkZGVuIiwidmlzaWJsZSIsInRvZ2dsZVNob3dDb3JyZWN0IiwiX19odG1sIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwic3RyaW5nIiwiYm9vbCIsImRpc2FibGVkIiwibWFya3VwIiwiZnVuYyIsImFycmF5Iiwic3R5bGVzIiwidGhlbWUiLCJjb2xvciIsInRleHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwiaW5saW5lRGlzcGxheSIsImJsb2NrRGlzcGxheSIsIm1hcmdpbkJvdHRvbSIsInNwYWNpbmciLCJ1bml0IiwiYm9yZGVyQ29sb3IiLCJwb3NpdGlvbiIsImxlZnQiLCJ0b3AiLCJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQVFBLFVBQVIsR0FBdUJDLHNCQUF2QixDQUFRRCxVQUFSOztJQUVhRSxJOzs7Ozs7Ozs7Ozs7Ozs7OEZBNEJIO0FBQ05DLE1BQUFBLGlCQUFpQixFQUFFLE1BQUtDLEtBQUwsQ0FBV0MsaUJBQVgsSUFBZ0MsS0FEN0M7QUFFTkMsTUFBQUEsS0FBSyxFQUFFLE1BQUtGLEtBQUwsQ0FBV0U7QUFGWixLO3lHQU1XLFVBQUNDLGtCQUFEO0FBQUEsYUFDakJBLGtCQUFrQixJQUFJQSxrQkFBa0IsQ0FBQ0MsS0FBbkIsQ0FBeUIsVUFBQ0MsR0FBRCxFQUFNQyxDQUFOLEVBQVNDLEdBQVQ7QUFBQSxlQUFpQkYsR0FBRyxLQUFLRSxHQUFHLENBQUMsQ0FBRCxDQUFYLElBQWtCRixHQUFHLEtBQUssQ0FBM0M7QUFBQSxPQUF6QixDQUF0QixHQUNJLE1BQUtMLEtBQUwsQ0FBV1EsUUFEZixHQUVJLDBCQUFTLE1BQUtSLEtBQUwsQ0FBV1EsUUFBcEIsRUFBOEIsSUFBOUIsRUFBb0M7QUFBRUMsUUFBQUEsT0FBTyxFQUFFO0FBQVgsT0FBcEMsQ0FIYTtBQUFBLEs7MEdBOEJDLFlBQU07QUFDeEIsWUFBS0MsUUFBTCxDQUFjO0FBQUVYLFFBQUFBLGlCQUFpQixFQUFFLENBQUMsTUFBS1ksS0FBTCxDQUFXWjtBQUFqQyxPQUFkO0FBQ0QsSztzR0FFZSxNQUFLYSxnQkFBTCxDQUFzQixNQUFLWixLQUFMLENBQVdHLGtCQUFqQyxDO2lHQUVMLFVBQUNELEtBQUQsRUFBVztBQUNwQixZQUFLUSxRQUFMLENBQWM7QUFBRVIsUUFBQUEsS0FBSyxFQUFMQTtBQUFGLE9BQWQ7O0FBRUEsWUFBS1csYUFBTCxDQUFt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c0J6QnBCLElBQUFBLE1BQU0sRUFBRTtBQUNONkIsTUFBQUEsUUFBUSxFQUFFLFVBREo7QUFFTkMsTUFBQUEsSUFBSSxFQUFFLFVBRkE7QUFHTkMsTUFBQUEsR0FBRyxFQUFFLE1BSEM7QUFJTkMsTUFBQUEsS0FBSyxFQUFFLEtBSkQ7QUFLTkMsTUFBQUEsTUFBTSxFQUFFLEtBTEY7QUFNTkMsTUFBQUEsUUFBUSxFQUFFO0FBTko7QUF0QmlCLEdBQVo7QUFBQSxDQUFmOztlQWdDZSx3QkFBV2pCLE1BQVgsRUFBbUIxRCxJQUFuQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSAnbG9kYXNoL2RlYm91bmNlJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcbmltcG9ydCB7Q29ycmVjdEFuc3dlclRvZ2dsZX0gZnJvbSAnQHBpZS1saWIvcGllLXRvb2xib3gvY29ycmVjdC1hbnN3ZXItdG9nZ2xlJztcbmltcG9ydCB7IENvbnN0cnVjdGVkUmVzcG9uc2UgfSBmcm9tICdAcGllLWxpYi9waWUtdG9vbGJveC9tYXNrLW1hcmt1cCc7XG5pbXBvcnQgeyBjb2xvciwgQ29sbGFwc2libGUsIGhhc1RleHQsIFByZXZpZXdQcm9tcHQgfSBmcm9tICdAcGllLWxpYi9waWUtdG9vbGJveC9yZW5kZXItdWknO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBUcmFuc2xhdG9yIGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L3RyYW5zbGF0b3InO1xuXG5jb25zdCB7IHRyYW5zbGF0b3IgfSA9IFRyYW5zbGF0b3I7XG5cbmV4cG9ydCBjbGFzcyBNYWluIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgcHJvbXB0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG5vdGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc2hvd05vdGU6IFByb3BUeXBlcy5ib29sLFxuICAgIGVudjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICByYXRpb25hbGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGRpc3BsYXlUeXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG1hcmt1cDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBtb2RlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgdmFsdWU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZmVlZGJhY2s6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIGFsd2F5c1Nob3dDb3JyZWN0OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhbmltYXRpb25zRGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIG1heExlbmd0aFBlckNob2ljZTogUHJvcFR5cGVzLmFycmF5LFxuICAgIG1heExlbmd0aFBlckNob2ljZUVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIHBsYXllclNwZWxsQ2hlY2tFbmFibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBsYW5ndWFnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHZhbHVlOiB7fSxcbiAgfTtcblxuICBzdGF0ZSA9IHtcbiAgICBzaG93Q29ycmVjdEFuc3dlcjogdGhpcy5wcm9wcy5hbHdheXNTaG93Q29ycmVjdCB8fCBmYWxzZSxcbiAgICB2YWx1ZTogdGhpcy5wcm9wcy52YWx1ZSxcbiAgfTtcblxuICAvLyBpZiBmb3IgYWxsIHJlc3BvbnNlcyBtYXggbGVuZ3RoIGlzIDEsIGNhbGwgb25DaGFuZ2UgZm9yIGVhY2gga2V5c3Ryb2tlXG4gIGdldENoYW5nZVNlc3Npb24gPSAobWF4TGVuZ3RoUGVyQ2hvaWNlKSA9PlxuICAgIG1heExlbmd0aFBlckNob2ljZSAmJiBtYXhMZW5ndGhQZXJDaG9pY2UuZXZlcnkoKHZhbCwgaSwgYXJyKSA9PiB2YWwgPT09IGFyclswXSAmJiB2YWwgPT09IDEpXG4gICAgICA/IHRoaXMucHJvcHMub25DaGFuZ2VcbiAgICAgIDogZGVib3VuY2UodGhpcy5wcm9wcy5vbkNoYW5nZSwgMTUwMCwgeyBtYXhXYWl0OiAxNTAwIH0pO1xuXG4gIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgIGNvbnN0IHsgbWF4TGVuZ3RoUGVyQ2hvaWNlLCBsYW5ndWFnZSB9ID0gdGhpcy5wcm9wcztcbiAgICBsZXQgeyBub3RlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGlzRW1wdHkobmV4dFByb3BzLmZlZWRiYWNrKSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dDb3JyZWN0QW5zd2VyOiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBpZiAobmV4dFByb3BzLmFsd2F5c1Nob3dDb3JyZWN0KSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0NvcnJlY3RBbnN3ZXI6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgaWYgKG1heExlbmd0aFBlckNob2ljZSAmJiAhaXNFcXVhbChtYXhMZW5ndGhQZXJDaG9pY2UsIG5leHRQcm9wcy5tYXhMZW5ndGhQZXJDaG9pY2UpKSB7XG4gICAgICB0aGlzLmNoYW5nZVNlc3Npb24gPSB0aGlzLmdldENoYW5nZVNlc3Npb24obmV4dFByb3BzLm1heExlbmd0aFBlckNob2ljZSk7XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgdGhlIG5vdGUgaXMgdGhlIGRlZmF1bHQgb25lIGZvciBwcmV2IGxhbmd1YWdlIGFuZCBjaGFuZ2UgdG8gdGhlIGRlZmF1bHQgb25lIGZvciBuZXcgbGFuZ3VhZ2VcbiAgICAvLyB0aGlzIGNoZWNrIGlzIG5lY2Vzc2FyeSBpbiBvcmRlciB0byBkaWZlcmFuY2lhdGUgYmV0d2VlbiBkZWZhdWx0IGFuZCBhdXRob3VyIGRlZmluZWQgbm90ZVxuICAgIC8vIGFuZCBvbmx5IGNoYW5nZSBiZXR3ZWVuIGxhbmd1YWdlcyBmb3IgZGVmYXVsdCBvbmVzXG4gICAgaWYgKG5vdGUgJiYgbGFuZ3VhZ2UgJiYgbGFuZ3VhZ2UgIT09IG5leHRQcm9wcy5sYW5ndWFnZSAmJlxuICAgICAgbm90ZSA9PT0gdHJhbnNsYXRvci50KCdjb21tb246Y29tbW9uQ29ycmVjdEFuc3dlcldpdGhBbHRlcm5hdGVzJywgeyBsbmc6IGxhbmd1YWdlIH0pKSB7XG4gICAgICBub3RlID0gdHJhbnNsYXRvci50KCdjb21tb246Y29tbW9uQ29ycmVjdEFuc3dlcldpdGhBbHRlcm5hdGVzJywgeyBsbmc6IG5leHRQcm9wcy5sYW5ndWFnZSB9KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVTaG93Q29ycmVjdCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0NvcnJlY3RBbnN3ZXI6ICF0aGlzLnN0YXRlLnNob3dDb3JyZWN0QW5zd2VyIH0pO1xuICB9O1xuXG4gIGNoYW5nZVNlc3Npb24gPSB0aGlzLmdldENoYW5nZVNlc3Npb24odGhpcy5wcm9wcy5tYXhMZW5ndGhQZXJDaG9pY2UpO1xuXG4gIG9uQ2hhbmdlID0gKHZhbHVlKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlIH0pO1xuXG4gICAgdGhpcy5jaGFuZ2VTZXNzaW9uKHZhbHVlKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBzaG93Q29ycmVjdEFuc3dlciwgdmFsdWUgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge1xuICAgICAgY2xhc3NlcyxcbiAgICAgIG1vZGUsXG4gICAgICBwcm9tcHQsXG4gICAgICByYXRpb25hbGUsXG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zLFxuICAgICAgbm90ZSxcbiAgICAgIHNob3dOb3RlLFxuICAgICAgZW52LFxuICAgICAgYW5pbWF0aW9uc0Rpc2FibGVkLFxuICAgICAgYWx3YXlzU2hvd0NvcnJlY3QsXG4gICAgICBtYXhMZW5ndGhQZXJDaG9pY2UsXG4gICAgICBtYXhMZW5ndGhQZXJDaG9pY2VFbmFibGVkLFxuICAgICAgZGlzcGxheVR5cGUsXG4gICAgICBwbGF5ZXJTcGVsbENoZWNrRW5hYmxlZCxcbiAgICAgIGxhbmd1YWdlXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCB7IHJvbGUgfSA9IGVudiB8fCB7fTtcbiAgICBjb25zdCBkaXNwbGF5Tm90ZSA9IChzaG93Q29ycmVjdEFuc3dlciB8fCAobW9kZSA9PT0gJ3ZpZXcnICYmIHJvbGUgPT09ICdpbnN0cnVjdG9yJykpICYmIHNob3dOb3RlICYmIG5vdGU7XG4gICAgY29uc3QgbWFpbkNsYXNzZXMgPSBjbGFzc05hbWVzKFtcbiAgICAgIGNsYXNzZXMubWFpbkNvbnRhaW5lcixcbiAgICAgIHtcbiAgICAgICAgW2NsYXNzZXMubm9Cb3JkZXJDb2xvcl06IGFsd2F5c1Nob3dDb3JyZWN0LFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIGNvbnN0IHRlYWNoZXJJbnN0cnVjdGlvbnNEaXYgPSAoXG4gICAgICA8UHJldmlld1Byb21wdCBkZWZhdWx0Q2xhc3NOYW1lPVwidGVhY2hlci1pbnN0cnVjdGlvbnNcIiBwcm9tcHQ9e3RlYWNoZXJJbnN0cnVjdGlvbnN9IC8+XG4gICAgKTtcblxuICAgIGNvbnN0IHJhdGlvbmFsZURpdiA9IDxQcmV2aWV3UHJvbXB0IHByb21wdD17cmF0aW9uYWxlfSAvPjtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17bWFpbkNsYXNzZXN9IHN0eWxlPXt7IGRpc3BsYXk6IGAke2Rpc3BsYXlUeXBlfWAgfX0+XG4gICAgICAgIHttb2RlID09PSAnZ2F0aGVyJyAmJiA8aDIgY2xhc3NOYW1lPXtjbGFzc2VzLnNyT25seX0+RmlsbCBpbiB0aGUgQmxhbmsgUXVlc3Rpb248L2gyPn1cblxuICAgICAgICB7dGVhY2hlckluc3RydWN0aW9ucyAmJiBoYXNUZXh0KHRlYWNoZXJJbnN0cnVjdGlvbnMpICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5jb2xsYXBzaWJsZX0+XG4gICAgICAgICAgICB7IWFuaW1hdGlvbnNEaXNhYmxlZCA/IChcbiAgICAgICAgICAgICAgPENvbGxhcHNpYmxlIGxhYmVscz17eyBoaWRkZW46ICdTaG93IFRlYWNoZXIgSW5zdHJ1Y3Rpb25zJywgdmlzaWJsZTogJ0hpZGUgVGVhY2hlciBJbnN0cnVjdGlvbnMnIH19PlxuICAgICAgICAgICAgICAgIHt0ZWFjaGVySW5zdHJ1Y3Rpb25zRGl2fVxuICAgICAgICAgICAgICA8L0NvbGxhcHNpYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgdGVhY2hlckluc3RydWN0aW9uc0RpdlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cblxuICAgICAgICB7cHJvbXB0ICYmIDxQcmV2aWV3UHJvbXB0IHByb21wdD17cHJvbXB0fSAvPn1cblxuICAgICAgICB7IWFsd2F5c1Nob3dDb3JyZWN0ICYmIChcbiAgICAgICAgICA8Q29ycmVjdEFuc3dlclRvZ2dsZVxuICAgICAgICAgICAgc2hvdz17bW9kZSA9PT0gJ2V2YWx1YXRlJ31cbiAgICAgICAgICAgIHRvZ2dsZWQ9e3Nob3dDb3JyZWN0QW5zd2VyfVxuICAgICAgICAgICAgb25Ub2dnbGU9e3RoaXMudG9nZ2xlU2hvd0NvcnJlY3R9XG4gICAgICAgICAgICBsYW5ndWFnZT17bGFuZ3VhZ2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cblxuICAgICAgICA8Q29uc3RydWN0ZWRSZXNwb25zZVxuICAgICAgICAgIHsuLi50aGlzLnByb3BzfVxuICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfVxuICAgICAgICAgIHNob3dDb3JyZWN0QW5zd2VyPXtzaG93Q29ycmVjdEFuc3dlcn1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgbWF4TGVuZ3RoPXttYXhMZW5ndGhQZXJDaG9pY2V9XG4gICAgICAgICAgYWRqdXN0ZWRMaW1pdD17bWF4TGVuZ3RoUGVyQ2hvaWNlRW5hYmxlZH1cbiAgICAgICAgICBzcGVsbENoZWNrPXtwbGF5ZXJTcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgLz5cblxuICAgICAgICB7ZGlzcGxheU5vdGUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzLm5vdGUsICdub3RlJyl9XG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IG5vdGUgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuXG4gICAgICAgIHtyYXRpb25hbGUgJiYgaGFzVGV4dChyYXRpb25hbGUpICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5jb2xsYXBzaWJsZX0+XG4gICAgICAgICAgICB7IWFuaW1hdGlvbnNEaXNhYmxlZCA/IChcbiAgICAgICAgICAgICAgPENvbGxhcHNpYmxlIGxhYmVscz17eyBoaWRkZW46ICdTaG93IFJhdGlvbmFsZScsIHZpc2libGU6ICdIaWRlIFJhdGlvbmFsZScgfX0+e3JhdGlvbmFsZURpdn08L0NvbGxhcHNpYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgcmF0aW9uYWxlRGl2XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBzdHlsZXMgPSAodGhlbWUpID0+ICh7XG4gIG1haW5Db250YWluZXI6IHtcbiAgICBjb2xvcjogY29sb3IudGV4dCgpLFxuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxuICB9LFxuICBpbmxpbmVEaXNwbGF5OiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gIH0sXG4gIGJsb2NrRGlzcGxheToge1xuICAgIGRpc3BsYXk6ICdibG9jaycsXG4gIH0sXG4gIG5vdGU6IHtcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gIH0sXG4gIGNvbGxhcHNpYmxlOiB7XG4gICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICB9LFxuICBub0JvcmRlckNvbG9yOiB7XG4gICAgJyYgKic6IHtcbiAgICAgIGJvcmRlckNvbG9yOiBgJHtjb2xvci50ZXh0KCl9ICFpbXBvcnRhbnRgLFxuICAgIH0sXG4gIH0sXG4gIHNyT25seToge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIGxlZnQ6ICctMTAwMDBweCcsXG4gICAgdG9wOiAnYXV0bycsXG4gICAgd2lkdGg6ICcxcHgnLFxuICAgIGhlaWdodDogJzFweCcsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzKShNYWluKTtcbiJdfQ==
|
|
279
|
+
//# sourceMappingURL=main.js.map
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.js"],"names":["translator","Translator","Main","showCorrectAnswer","props","alwaysShowCorrect","value","maxLengthPerChoice","every","val","i","arr","onChange","maxWait","setState","state","getChangeSession","changeSession","nextProps","language","note","feedback","t","lng","classes","mode","prompt","rationale","teacherInstructions","showNote","env","animationsDisabled","maxLengthPerChoiceEnabled","displayType","playerSpellCheckEnabled","role","displayNote","mainClasses","mainContainer","noBorderColor","teacherInstructionsDiv","rationaleDiv","display","srOnly","collapsible","hidden","visible","toggleShowCorrect","__html","React","Component","PropTypes","object","isRequired","string","bool","disabled","markup","func","array","styles","theme","color","text","backgroundColor","background","inlineDisplay","blockDisplay","marginBottom","spacing","unit","borderColor","position","left","top","width","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport {CorrectAnswerToggle} from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { ConstructedResponse } from '@pie-lib/pie-toolbox/mask-markup';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n prompt: PropTypes.string,\n note: PropTypes.string,\n showNote: PropTypes.bool,\n env: PropTypes.object,\n rationale: PropTypes.string,\n disabled: PropTypes.bool,\n displayType: PropTypes.string,\n markup: PropTypes.string,\n mode: PropTypes.string,\n teacherInstructions: PropTypes.string,\n value: PropTypes.object,\n feedback: PropTypes.object,\n onChange: PropTypes.func,\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n maxLengthPerChoice: PropTypes.array,\n maxLengthPerChoiceEnabled: PropTypes.bool,\n playerSpellCheckEnabled: PropTypes.bool,\n language: PropTypes.string,\n };\n\n static defaultProps = {\n value: {},\n };\n\n state = {\n showCorrectAnswer: this.props.alwaysShowCorrect || false,\n value: this.props.value,\n };\n\n // if for all responses max length is 1, call onChange for each keystroke\n getChangeSession = (maxLengthPerChoice) =>\n maxLengthPerChoice && maxLengthPerChoice.every((val, i, arr) => val === arr[0] && val === 1)\n ? this.props.onChange\n : debounce(this.props.onChange, 1500, { maxWait: 1500 });\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { maxLengthPerChoice, language } = this.props;\n let { note } = this.props;\n\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrectAnswer: true });\n }\n\n if (maxLengthPerChoice && !isEqual(maxLengthPerChoice, nextProps.maxLengthPerChoice)) {\n this.changeSession = this.getChangeSession(nextProps.maxLengthPerChoice);\n }\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (note && language && language !== nextProps.language &&\n note === translator.t('common:commonCorrectAnswerWithAlternates', { lng: language })) {\n note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: nextProps.language });\n }\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n changeSession = this.getChangeSession(this.props.maxLengthPerChoice);\n\n onChange = (value) => {\n this.setState({ value });\n\n this.changeSession(value);\n };\n\n render() {\n const { showCorrectAnswer, value } = this.state;\n const {\n classes,\n mode,\n prompt,\n rationale,\n teacherInstructions,\n note,\n showNote,\n env,\n animationsDisabled,\n alwaysShowCorrect,\n maxLengthPerChoice,\n maxLengthPerChoiceEnabled,\n displayType,\n playerSpellCheckEnabled,\n language\n } = this.props;\n\n const { role } = env || {};\n const displayNote = (showCorrectAnswer || (mode === 'view' && role === 'instructor')) && showNote && note;\n const mainClasses = classNames([\n classes.mainContainer,\n {\n [classes.noBorderColor]: alwaysShowCorrect,\n },\n ]);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const rationaleDiv = <PreviewPrompt prompt={rationale} />;\n\n return (\n <div className={mainClasses} style={{ display: `${displayType}` }}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Fill in the Blank Question</h2>}\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n {prompt && <PreviewPrompt prompt={prompt} />}\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={mode === 'evaluate'}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n language={language}\n />\n )}\n\n <ConstructedResponse\n {...this.props}\n onChange={this.onChange}\n showCorrectAnswer={showCorrectAnswer}\n value={value}\n maxLength={maxLengthPerChoice}\n adjustedLimit={maxLengthPerChoiceEnabled}\n spellCheck={playerSpellCheckEnabled}\n />\n\n {displayNote && (\n <div\n className={classNames(classes.note, 'note')}\n dangerouslySetInnerHTML={{ __html: note }}\n />\n )}\n\n {rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n inlineDisplay: {\n display: 'inline-block',\n },\n blockDisplay: {\n display: 'block',\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n noBorderColor: {\n '& *': {\n borderColor: `${color.text()} !important`,\n },\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.js"],"names":["translator","Translator","Main","showCorrectAnswer","props","alwaysShowCorrect","value","maxLengthPerChoice","every","val","i","arr","onChange","maxWait","setState","state","getChangeSession","changeSession","nextProps","language","note","feedback","t","lng","classes","mode","prompt","rationale","teacherInstructions","showNote","env","animationsDisabled","maxLengthPerChoiceEnabled","displayType","playerSpellCheckEnabled","role","displayNote","mainClasses","mainContainer","noBorderColor","teacherInstructionsDiv","rationaleDiv","display","srOnly","collapsible","hidden","visible","toggleShowCorrect","__html","React","Component","PropTypes","object","isRequired","string","bool","disabled","markup","func","array","styles","theme","color","text","backgroundColor","background","inlineDisplay","blockDisplay","marginBottom","spacing","unit","borderColor","position","left","top","width","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport CorrectAnswerToggle from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { ConstructedResponse } from '@pie-lib/pie-toolbox/mask-markup';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n prompt: PropTypes.string,\n note: PropTypes.string,\n showNote: PropTypes.bool,\n env: PropTypes.object,\n rationale: PropTypes.string,\n disabled: PropTypes.bool,\n displayType: PropTypes.string,\n markup: PropTypes.string,\n mode: PropTypes.string,\n teacherInstructions: PropTypes.string,\n value: PropTypes.object,\n feedback: PropTypes.object,\n onChange: PropTypes.func,\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n maxLengthPerChoice: PropTypes.array,\n maxLengthPerChoiceEnabled: PropTypes.bool,\n playerSpellCheckEnabled: PropTypes.bool,\n language: PropTypes.string,\n };\n\n static defaultProps = {\n value: {},\n };\n\n state = {\n showCorrectAnswer: this.props.alwaysShowCorrect || false,\n value: this.props.value,\n };\n\n // if for all responses max length is 1, call onChange for each keystroke\n getChangeSession = (maxLengthPerChoice) =>\n maxLengthPerChoice && maxLengthPerChoice.every((val, i, arr) => val === arr[0] && val === 1)\n ? this.props.onChange\n : debounce(this.props.onChange, 1500, { maxWait: 1500 });\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { maxLengthPerChoice, language } = this.props;\n let { note } = this.props;\n\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrectAnswer: true });\n }\n\n if (maxLengthPerChoice && !isEqual(maxLengthPerChoice, nextProps.maxLengthPerChoice)) {\n this.changeSession = this.getChangeSession(nextProps.maxLengthPerChoice);\n }\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (note && language && language !== nextProps.language &&\n note === translator.t('common:commonCorrectAnswerWithAlternates', { lng: language })) {\n note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: nextProps.language });\n }\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n changeSession = this.getChangeSession(this.props.maxLengthPerChoice);\n\n onChange = (value) => {\n this.setState({ value });\n\n this.changeSession(value);\n };\n\n render() {\n const { showCorrectAnswer, value } = this.state;\n const {\n classes,\n mode,\n prompt,\n rationale,\n teacherInstructions,\n note,\n showNote,\n env,\n animationsDisabled,\n alwaysShowCorrect,\n maxLengthPerChoice,\n maxLengthPerChoiceEnabled,\n displayType,\n playerSpellCheckEnabled,\n language\n } = this.props;\n\n const { role } = env || {};\n const displayNote = (showCorrectAnswer || (mode === 'view' && role === 'instructor')) && showNote && note;\n const mainClasses = classNames([\n classes.mainContainer,\n {\n [classes.noBorderColor]: alwaysShowCorrect,\n },\n ]);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const rationaleDiv = <PreviewPrompt prompt={rationale} />;\n\n return (\n <div className={mainClasses} style={{ display: `${displayType}` }}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Fill in the Blank Question</h2>}\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n {prompt && <PreviewPrompt prompt={prompt} />}\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={mode === 'evaluate'}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n language={language}\n />\n )}\n\n <ConstructedResponse\n {...this.props}\n onChange={this.onChange}\n showCorrectAnswer={showCorrectAnswer}\n value={value}\n maxLength={maxLengthPerChoice}\n adjustedLimit={maxLengthPerChoiceEnabled}\n spellCheck={playerSpellCheckEnabled}\n />\n\n {displayNote && (\n <div\n className={classNames(classes.note, 'note')}\n dangerouslySetInnerHTML={{ __html: note }}\n />\n )}\n\n {rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n inlineDisplay: {\n display: 'inline-block',\n },\n blockDisplay: {\n display: 'block',\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n noBorderColor: {\n '& *': {\n borderColor: `${color.text()} !important`,\n },\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
package/lib/print.js
CHANGED
|
@@ -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=
|
|
115
|
+
//# sourceMappingURL=print.js.map
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "6.1.0
|
|
7
|
+
"version": "6.1.0",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"author": "",
|
|
24
24
|
"license": "ISC",
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "8aec9bff2588b2640ca5b4fa74a75333a52a563b",
|
|
26
26
|
"main": "lib/index.js",
|
|
27
27
|
"module": "src/index.js",
|
|
28
28
|
"exports": {
|
|
@@ -1,335 +0,0 @@
|
|
|
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 _alternateResponses = require("../alternateResponses");
|
|
12
|
-
|
|
13
|
-
var _defaults = _interopRequireDefault(require("../defaults"));
|
|
14
|
-
|
|
15
|
-
var _markupUtils = require("../markupUtils");
|
|
16
|
-
|
|
17
|
-
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; }
|
|
18
|
-
|
|
19
|
-
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; }
|
|
20
|
-
|
|
21
|
-
var model = {
|
|
22
|
-
markup: '<p>The {{0}} jumped {{1}} the {{2}}</p>',
|
|
23
|
-
disabled: false,
|
|
24
|
-
choices: {
|
|
25
|
-
0: [{
|
|
26
|
-
label: 'cow',
|
|
27
|
-
value: '0'
|
|
28
|
-
}, {
|
|
29
|
-
label: 'cattle',
|
|
30
|
-
value: '1'
|
|
31
|
-
}, {
|
|
32
|
-
label: 'calf',
|
|
33
|
-
value: '2'
|
|
34
|
-
}],
|
|
35
|
-
1: [{
|
|
36
|
-
label: 'over',
|
|
37
|
-
value: '0'
|
|
38
|
-
}, {
|
|
39
|
-
label: 'past',
|
|
40
|
-
value: '1'
|
|
41
|
-
}, {
|
|
42
|
-
label: 'beyond',
|
|
43
|
-
value: '2'
|
|
44
|
-
}],
|
|
45
|
-
2: [{
|
|
46
|
-
label: 'moon',
|
|
47
|
-
value: '0'
|
|
48
|
-
}]
|
|
49
|
-
},
|
|
50
|
-
maxLengthPerChoice: [6, 6, 4],
|
|
51
|
-
prompt: 'Complete the sentence'
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
var prepareModel = function prepareModel() {
|
|
55
|
-
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
56
|
-
|
|
57
|
-
var joinedObj = _objectSpread(_objectSpread({}, _defaults["default"].model), model);
|
|
58
|
-
|
|
59
|
-
var slateMarkup = joinedObj.slateMarkup || (0, _markupUtils.createSlateMarkup)(joinedObj.markup, joinedObj.choices);
|
|
60
|
-
var processedMarkup = (0, _markupUtils.processMarkup)(slateMarkup);
|
|
61
|
-
return _objectSpread(_objectSpread({}, joinedObj), {}, {
|
|
62
|
-
slateMarkup: slateMarkup,
|
|
63
|
-
markup: processedMarkup
|
|
64
|
-
});
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
describe('AlternateResponses', function () {
|
|
68
|
-
var onChange = jest.fn();
|
|
69
|
-
|
|
70
|
-
var wrapper = function wrapper(extras) {
|
|
71
|
-
var defaults = {
|
|
72
|
-
onChange: onChange,
|
|
73
|
-
classes: {},
|
|
74
|
-
model: prepareModel(_objectSpread(_objectSpread({}, model), extras))
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
var props = _objectSpread({}, defaults);
|
|
78
|
-
|
|
79
|
-
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_alternateResponses.AlternateResponses, props));
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
describe('snapshot', function () {
|
|
83
|
-
it('renders', function () {
|
|
84
|
-
expect(wrapper()).toMatchSnapshot();
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
describe('logic', function () {
|
|
88
|
-
var w;
|
|
89
|
-
beforeEach(function () {
|
|
90
|
-
w = wrapper();
|
|
91
|
-
});
|
|
92
|
-
describe('updateChoicesIfNeeded', function () {
|
|
93
|
-
it('sets state, updates edited choice', function () {
|
|
94
|
-
var newChoices = {
|
|
95
|
-
0: [{
|
|
96
|
-
label: 'cow',
|
|
97
|
-
value: '0'
|
|
98
|
-
}, {
|
|
99
|
-
label: 'cattle',
|
|
100
|
-
value: '1'
|
|
101
|
-
}, {
|
|
102
|
-
label: 'calf',
|
|
103
|
-
value: '2'
|
|
104
|
-
}],
|
|
105
|
-
1: [{
|
|
106
|
-
label: 'under',
|
|
107
|
-
value: '0'
|
|
108
|
-
}, {
|
|
109
|
-
label: 'past',
|
|
110
|
-
value: '1'
|
|
111
|
-
}, {
|
|
112
|
-
label: 'beyond',
|
|
113
|
-
value: '2'
|
|
114
|
-
}],
|
|
115
|
-
2: [{
|
|
116
|
-
label: 'moon',
|
|
117
|
-
value: '0'
|
|
118
|
-
}]
|
|
119
|
-
};
|
|
120
|
-
w.instance().updateChoicesIfNeeded({
|
|
121
|
-
model: _objectSpread(_objectSpread({}, model), {}, {
|
|
122
|
-
choices: newChoices
|
|
123
|
-
})
|
|
124
|
-
});
|
|
125
|
-
expect(w.instance().state).toEqual(expect.objectContaining({
|
|
126
|
-
choices: newChoices,
|
|
127
|
-
values: {
|
|
128
|
-
0: {
|
|
129
|
-
label: 'cow',
|
|
130
|
-
value: '0'
|
|
131
|
-
},
|
|
132
|
-
1: {
|
|
133
|
-
label: 'under',
|
|
134
|
-
value: '0'
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}));
|
|
138
|
-
});
|
|
139
|
-
it('sets state, if a choice has an alternate', function () {
|
|
140
|
-
var newChoices = {
|
|
141
|
-
0: [{
|
|
142
|
-
label: 'cow',
|
|
143
|
-
value: '0'
|
|
144
|
-
}, {
|
|
145
|
-
label: 'cattle',
|
|
146
|
-
value: '1'
|
|
147
|
-
}, {
|
|
148
|
-
label: 'calf',
|
|
149
|
-
value: '2'
|
|
150
|
-
}],
|
|
151
|
-
1: [{
|
|
152
|
-
label: 'under',
|
|
153
|
-
value: '0'
|
|
154
|
-
}, {
|
|
155
|
-
label: 'past',
|
|
156
|
-
value: '1'
|
|
157
|
-
}, {
|
|
158
|
-
label: 'beyond',
|
|
159
|
-
value: '2'
|
|
160
|
-
}],
|
|
161
|
-
2: [{
|
|
162
|
-
label: 'sun',
|
|
163
|
-
value: '0'
|
|
164
|
-
}, {
|
|
165
|
-
label: 'star',
|
|
166
|
-
value: '1'
|
|
167
|
-
}]
|
|
168
|
-
};
|
|
169
|
-
w.instance().updateChoicesIfNeeded({
|
|
170
|
-
model: _objectSpread(_objectSpread({}, model), {}, {
|
|
171
|
-
choices: newChoices
|
|
172
|
-
})
|
|
173
|
-
});
|
|
174
|
-
expect(w.instance().state).toEqual(expect.objectContaining({
|
|
175
|
-
choices: newChoices,
|
|
176
|
-
values: {
|
|
177
|
-
0: {
|
|
178
|
-
label: 'cow',
|
|
179
|
-
value: '0'
|
|
180
|
-
},
|
|
181
|
-
1: {
|
|
182
|
-
label: 'under',
|
|
183
|
-
value: '0'
|
|
184
|
-
},
|
|
185
|
-
2: {
|
|
186
|
-
label: 'sun',
|
|
187
|
-
value: '0'
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}));
|
|
191
|
-
});
|
|
192
|
-
it('sets state if some choices are removed', function () {
|
|
193
|
-
var newChoices = {
|
|
194
|
-
0: [{
|
|
195
|
-
label: 'cow',
|
|
196
|
-
value: '0'
|
|
197
|
-
}, {
|
|
198
|
-
label: 'cattle',
|
|
199
|
-
value: '1'
|
|
200
|
-
}, {
|
|
201
|
-
label: 'calf',
|
|
202
|
-
value: '2'
|
|
203
|
-
}]
|
|
204
|
-
};
|
|
205
|
-
w.instance().updateChoicesIfNeeded({
|
|
206
|
-
model: _objectSpread(_objectSpread({}, model), {}, {
|
|
207
|
-
choices: newChoices
|
|
208
|
-
})
|
|
209
|
-
});
|
|
210
|
-
expect(w.instance().state).toEqual(expect.objectContaining({
|
|
211
|
-
choices: newChoices,
|
|
212
|
-
values: {
|
|
213
|
-
0: {
|
|
214
|
-
label: 'cow',
|
|
215
|
-
value: '0'
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}));
|
|
219
|
-
});
|
|
220
|
-
it('does not change state', function () {
|
|
221
|
-
w.instance().updateChoicesIfNeeded({
|
|
222
|
-
model: model
|
|
223
|
-
});
|
|
224
|
-
expect(w.instance().state).toEqual(expect.objectContaining({
|
|
225
|
-
choices: model.choices,
|
|
226
|
-
values: {
|
|
227
|
-
0: {
|
|
228
|
-
label: 'cow',
|
|
229
|
-
value: '0'
|
|
230
|
-
},
|
|
231
|
-
1: {
|
|
232
|
-
label: 'over',
|
|
233
|
-
value: '0'
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}));
|
|
237
|
-
});
|
|
238
|
-
});
|
|
239
|
-
describe('getRemainingChoices', function () {
|
|
240
|
-
it('adds an alternate if selecting a choice', function () {
|
|
241
|
-
var remainingChoices = w.instance().getRemainingChoices();
|
|
242
|
-
expect(remainingChoices).toEqual([{
|
|
243
|
-
label: 'moon',
|
|
244
|
-
value: '2'
|
|
245
|
-
}]);
|
|
246
|
-
});
|
|
247
|
-
});
|
|
248
|
-
describe('onChoiceChanged', function () {
|
|
249
|
-
it('changes new alternate', function () {
|
|
250
|
-
w.instance().onChoiceChanged({
|
|
251
|
-
label: 'New Choice',
|
|
252
|
-
value: '1'
|
|
253
|
-
}, 2);
|
|
254
|
-
expect(onChange).toBeCalledWith(_objectSpread(_objectSpread({}, model.choices), {}, {
|
|
255
|
-
2: [{
|
|
256
|
-
label: 'moon',
|
|
257
|
-
value: '0'
|
|
258
|
-
}, {
|
|
259
|
-
label: 'New Choice',
|
|
260
|
-
value: '1'
|
|
261
|
-
}]
|
|
262
|
-
}));
|
|
263
|
-
});
|
|
264
|
-
it('changes existing alternate', function () {
|
|
265
|
-
w.instance().onChoiceChanged({
|
|
266
|
-
label: 'New Choice Edited',
|
|
267
|
-
value: '1'
|
|
268
|
-
}, 2);
|
|
269
|
-
expect(onChange).toBeCalledWith(_objectSpread(_objectSpread({}, model.choices), {}, {
|
|
270
|
-
2: [{
|
|
271
|
-
label: 'moon',
|
|
272
|
-
value: '0'
|
|
273
|
-
}, {
|
|
274
|
-
label: 'New Choice Edited',
|
|
275
|
-
value: '1'
|
|
276
|
-
}]
|
|
277
|
-
}));
|
|
278
|
-
});
|
|
279
|
-
});
|
|
280
|
-
describe('onChoiceRemoved', function () {
|
|
281
|
-
it('removes choice from section', function () {
|
|
282
|
-
var choices = w.instance().props.model.choices;
|
|
283
|
-
w.instance().onChoiceRemoved('1', '1');
|
|
284
|
-
choices[1] = [{
|
|
285
|
-
label: 'over',
|
|
286
|
-
value: '0'
|
|
287
|
-
}, {
|
|
288
|
-
label: 'beyond',
|
|
289
|
-
value: '2'
|
|
290
|
-
}];
|
|
291
|
-
expect(onChange).toBeCalledWith(choices);
|
|
292
|
-
});
|
|
293
|
-
it('does not throw error if parameters are not correct', function () {
|
|
294
|
-
var choices = w.instance().props.model.choices;
|
|
295
|
-
w.instance().onChoiceRemoved('11', '1');
|
|
296
|
-
expect(onChange).toBeCalledWith(choices);
|
|
297
|
-
});
|
|
298
|
-
});
|
|
299
|
-
describe('onSectionSelect', function () {
|
|
300
|
-
it('removing a selection', function () {
|
|
301
|
-
var choices = w.instance().props.model.choices;
|
|
302
|
-
w.instance().onSectionSelect(undefined, '0');
|
|
303
|
-
expect(onChange).toBeCalledWith(_objectSpread(_objectSpread({}, choices), {}, {
|
|
304
|
-
0: [{
|
|
305
|
-
label: 'cow',
|
|
306
|
-
value: '0'
|
|
307
|
-
}]
|
|
308
|
-
}));
|
|
309
|
-
});
|
|
310
|
-
it('selecting a response', function () {
|
|
311
|
-
var state = w.instance().state;
|
|
312
|
-
w.instance().onSectionSelect({
|
|
313
|
-
label: 'moon',
|
|
314
|
-
value: '0'
|
|
315
|
-
}, '2');
|
|
316
|
-
expect(w.instance().state.choices).toEqual(_objectSpread(_objectSpread({}, state.choices), {}, {
|
|
317
|
-
2: [{
|
|
318
|
-
label: 'moon',
|
|
319
|
-
value: '0'
|
|
320
|
-
}, {
|
|
321
|
-
label: '',
|
|
322
|
-
value: '1'
|
|
323
|
-
}]
|
|
324
|
-
}));
|
|
325
|
-
expect(w.instance().state.values).toEqual(_objectSpread(_objectSpread({}, state.values), {}, {
|
|
326
|
-
2: {
|
|
327
|
-
label: 'moon',
|
|
328
|
-
value: '0'
|
|
329
|
-
}
|
|
330
|
-
}));
|
|
331
|
-
});
|
|
332
|
-
});
|
|
333
|
-
});
|
|
334
|
-
});
|
|
335
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vYWx0ZXJuYXRlUmVzcG9uc2VzLnRlc3QuanN4Il0sIm5hbWVzIjpbIm1vZGVsIiwibWFya3VwIiwiZGlzYWJsZWQiLCJjaG9pY2VzIiwibGFiZWwiLCJ2YWx1ZSIsIm1heExlbmd0aFBlckNob2ljZSIsInByb21wdCIsInByZXBhcmVNb2RlbCIsImpvaW5lZE9iaiIsInNlbnNpYmxlRGVmYXVsdHMiLCJzbGF0ZU1hcmt1cCIsInByb2Nlc3NlZE1hcmt1cCIsImRlc2NyaWJlIiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJ3cmFwcGVyIiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJjbGFzc2VzIiwicHJvcHMiLCJpdCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsInciLCJiZWZvcmVFYWNoIiwibmV3Q2hvaWNlcyIsImluc3RhbmNlIiwidXBkYXRlQ2hvaWNlc0lmTmVlZGVkIiwic3RhdGUiLCJ0b0VxdWFsIiwib2JqZWN0Q29udGFpbmluZyIsInZhbHVlcyIsInJlbWFpbmluZ0Nob2ljZXMiLCJnZXRSZW1haW5pbmdDaG9pY2VzIiwib25DaG9pY2VDaGFuZ2VkIiwidG9CZUNhbGxlZFdpdGgiLCJvbkNob2ljZVJlbW92ZWQiLCJvblNlY3Rpb25TZWxlY3QiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxLQUFLLEdBQUc7QUFDWkMsRUFBQUEsTUFBTSxFQUFFLHlDQURJO0FBRVpDLEVBQUFBLFFBQVEsRUFBRSxLQUZFO0FBR1pDLEVBQUFBLE9BQU8sRUFBRTtBQUNQLE9BQUcsQ0FDRDtBQUFFQyxNQUFBQSxLQUFLLEVBQUUsS0FBVDtBQUFnQkMsTUFBQUEsS0FBSyxFQUFFO0FBQXZCLEtBREMsRUFFRDtBQUFFRCxNQUFBQSxLQUFLLEVBQUUsUUFBVDtBQUFtQkMsTUFBQUEsS0FBSyxFQUFFO0FBQTFCLEtBRkMsRUFHRDtBQUFFRCxN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QUFhVyxlQUFiLENBQTZCO0FBQUVuQyxVQUFBQSxLQUFLLEVBQUUsTUFBVDtBQUFpQkMsVUFBQUEsS0FBSyxFQUFFO0FBQXhCLFNBQTdCLEVBQTRELEdBQTVEO0FBRUFrQixRQUFBQSxNQUFNLENBQUNFLENBQUMsQ0FBQ0csUUFBRixHQUFhRSxLQUFiLENBQW1CM0IsT0FBcEIsQ0FBTixDQUFtQzRCLE9BQW5DLGlDQUNLRCxLQUFLLENBQUMzQixPQURYO0FBRUUsYUFBRyxDQUNEO0FBQUVDLFlBQUFBLEtBQUssRUFBRSxNQUFUO0FBQWlCQyxZQUFBQSxLQUFLLEVBQUU7QUFBeEIsV0FEQyxFQUVEO0FBQUVELFlBQUFBLEtBQUssRUFBRSxFQUFUO0FBQWFDLFlBQUFBLEtBQUssRUFBRTtBQUFwQixXQUZDO0FBRkw7QUFPQWtCLFFBQUFBLE1BQU0sQ0FBQ0UsQ0FBQyxDQUFDRyxRQUFGLEdBQWFFLEtBQWIsQ0FBbUJHLE1BQXBCLENBQU4sQ0FBa0NGLE9BQWxDLGlDQUNLRCxLQUFLLENBQUNHLE1BRFg7QUFFRSxhQUFHO0FBQUU3QixZQUFBQSxLQUFLLEVBQUUsTUFBVDtBQUFpQkMsWUFBQUEsS0FBSyxFQUFFO0FBQXhCO0FBRkw7QUFJRCxPQWhCQyxDQUFGO0FBaUJELEtBN0JPLENBQVI7QUE4QkQsR0E5TU8sQ0FBUjtBQStNRCxDQXRPTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBBbHRlcm5hdGVSZXNwb25zZXMgfSBmcm9tICcuLi9hbHRlcm5hdGVSZXNwb25zZXMnO1xuaW1wb3J0IHNlbnNpYmxlRGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuaW1wb3J0IHsgY3JlYXRlU2xhdGVNYXJrdXAsIHByb2Nlc3NNYXJrdXAgfSBmcm9tICcuLi9tYXJrdXBVdGlscyc7XG5cbmNvbnN0IG1vZGVsID0ge1xuICBtYXJrdXA6ICc8cD5UaGUge3swfX0ganVtcGVkIHt7MX19IHRoZSB7ezJ9fTwvcD4nLFxuICBkaXNhYmxlZDogZmFsc2UsXG4gIGNob2ljZXM6IHtcbiAgICAwOiBbXG4gICAgICB7IGxhYmVsOiAnY293JywgdmFsdWU6ICcwJyB9LFxuICAgICAgeyBsYWJlbDogJ2NhdHRsZScsIHZhbHVlOiAnMScgfSxcbiAgICAgIHsgbGFiZWw6ICdjYWxmJywgdmFsdWU6ICcyJyB9LFxuICAgIF0sXG4gICAgMTogW1xuICAgICAgeyBsYWJlbDogJ292ZXInLCB2YWx1ZTogJzAnIH0sXG4gICAgICB7IGxhYmVsOiAncGFzdCcsIHZhbHVlOiAnMScgfSxcbiAgICAgIHsgbGFiZWw6ICdiZXlvbmQnLCB2YWx1ZTogJzInIH0sXG4gICAgXSxcbiAgICAyOiBbeyBsYWJlbDogJ21vb24nLCB2YWx1ZTogJzAnIH1dLFxuICB9LFxuICBtYXhMZW5ndGhQZXJDaG9pY2U6IFs2LCA2LCA0XSxcbiAgcHJvbXB0OiAnQ29tcGxldGUgdGhlIHNlbnRlbmNlJyxcbn07XG5cbmNvbnN0IHByZXBhcmVNb2RlbCA9IChtb2RlbCA9IHt9KSA9PiB7XG4gIGNvbnN0IGpvaW5lZE9iaiA9IHtcbiAgICAuLi5zZW5zaWJsZURlZmF1bHRzLm1vZGVsLFxuICAgIC4uLm1vZGVsLFxuICB9O1xuICBjb25zdCBzbGF0ZU1hcmt1cCA9IGpvaW5lZE9iai5zbGF0ZU1hcmt1cCB8fCBjcmVhdGVTbGF0ZU1hcmt1cChqb2luZWRPYmoubWFya3VwLCBqb2luZWRPYmouY2hvaWNlcyk7XG4gIGNvbnN0IHByb2Nlc3NlZE1hcmt1cCA9IHByb2Nlc3NNYXJrdXAoc2xhdGVNYXJrdXApO1xuXG4gIHJldHVybiB7XG4gICAgLi4uam9pbmVkT2JqLFxuICAgIHNsYXRlTWFya3VwLFxuICAgIG1hcmt1cDogcHJvY2Vzc2VkTWFya3VwLFxuICB9O1xufTtcblxuZGVzY3JpYmUoJ0FsdGVybmF0ZVJlc3BvbnNlcycsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuXG4gIGNvbnN0IHdyYXBwZXIgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBvbkNoYW5nZSxcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgbW9kZWw6IHByZXBhcmVNb2RlbCh7XG4gICAgICAgIC4uLm1vZGVsLFxuICAgICAgICAuLi5leHRyYXMsXG4gICAgICB9KSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cyB9O1xuXG4gICAgcmV0dXJuIHNoYWxsb3coPEFsdGVybmF0ZVJlc3BvbnNlcyB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcblxuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qod3JhcHBlcigpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGxldCB3O1xuXG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICB3ID0gd3JhcHBlcigpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3VwZGF0ZUNob2ljZXNJZk5lZWRlZCcsICgpID0+IHtcbiAgICAgIGl0KCdzZXRzIHN0YXRlLCB1cGRhdGVzIGVkaXRlZCBjaG9pY2UnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0Nob2ljZXMgPSB7XG4gICAgICAgICAgMDogW1xuICAgICAgICAgICAgeyBsYWJlbDogJ2NvdycsIHZhbHVlOiAnMCcgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICdjYXR0bGUnLCB2YWx1ZTogJzEnIH0sXG4gICAgICAgICAgICB7IGxhYmVsOiAnY2FsZicsIHZhbHVlOiAnMicgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIDE6IFtcbiAgICAgICAgICAgIHsgbGFiZWw6ICd1bmRlcicsIHZhbHVlOiAnMCcgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICdwYXN0JywgdmFsdWU6ICcxJyB9LFxuICAgICAgICAgICAgeyBsYWJlbDogJ2JleW9uZCcsIHZhbHVlOiAnMicgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIDI6IFt7IGxhYmVsOiAnbW9vbicsIHZhbHVlOiAnMCcgfV0sXG4gICAgICAgIH07XG5cbiAgICAgICAgdy5pbnN0YW5jZSgpLnVwZGF0ZUNob2ljZXNJZk5lZWRlZCh7XG4gICAgICAgICAgbW9kZWw6IHtcbiAgICAgICAgICAgIC4uLm1vZGVsLFxuICAgICAgICAgICAgY2hvaWNlczogbmV3Q2hvaWNlcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLnN0YXRlKS50b0VxdWFsKFxuICAgICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIGNob2ljZXM6IG5ld0Nob2ljZXMsXG4gICAgICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgICAgMDogeyBsYWJlbDogJ2NvdycsIHZhbHVlOiAnMCcgfSxcbiAgICAgICAgICAgICAgMTogeyBsYWJlbDogJ3VuZGVyJywgdmFsdWU6ICcwJyB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2V0cyBzdGF0ZSwgaWYgYSBjaG9pY2UgaGFzIGFuIGFsdGVybmF0ZScsICgpID0+IHtcbiAgICAgICAgY29uc3QgbmV3Q2hvaWNlcyA9IHtcbiAgICAgICAgICAwOiBbXG4gICAgICAgICAgICB7IGxhYmVsOiAnY293JywgdmFsdWU6ICcwJyB9LFxuICAgICAgICAgICAgeyBsYWJlbDogJ2NhdHRsZScsIHZhbHVlOiAnMScgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICdjYWxmJywgdmFsdWU6ICcyJyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgMTogW1xuICAgICAgICAgICAgeyBsYWJlbDogJ3VuZGVyJywgdmFsdWU6ICcwJyB9LFxuICAgICAgICAgICAgeyBsYWJlbDogJ3Bhc3QnLCB2YWx1ZTogJzEnIH0sXG4gICAgICAgICAgICB7IGxhYmVsOiAnYmV5b25kJywgdmFsdWU6ICcyJyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgMjogW1xuICAgICAgICAgICAgeyBsYWJlbDogJ3N1bicsIHZhbHVlOiAnMCcgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICdzdGFyJywgdmFsdWU6ICcxJyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH07XG5cbiAgICAgICAgdy5pbnN0YW5jZSgpLnVwZGF0ZUNob2ljZXNJZk5lZWRlZCh7XG4gICAgICAgICAgbW9kZWw6IHtcbiAgICAgICAgICAgIC4uLm1vZGVsLFxuICAgICAgICAgICAgY2hvaWNlczogbmV3Q2hvaWNlcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLnN0YXRlKS50b0VxdWFsKFxuICAgICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIGNob2ljZXM6IG5ld0Nob2ljZXMsXG4gICAgICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgICAgMDogeyBsYWJlbDogJ2NvdycsIHZhbHVlOiAnMCcgfSxcbiAgICAgICAgICAgICAgMTogeyBsYWJlbDogJ3VuZGVyJywgdmFsdWU6ICcwJyB9LFxuICAgICAgICAgICAgICAyOiB7IGxhYmVsOiAnc3VuJywgdmFsdWU6ICcwJyB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2V0cyBzdGF0ZSBpZiBzb21lIGNob2ljZXMgYXJlIHJlbW92ZWQnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0Nob2ljZXMgPSB7XG4gICAgICAgICAgMDogW1xuICAgICAgICAgICAgeyBsYWJlbDogJ2NvdycsIHZhbHVlOiAnMCcgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICdjYXR0bGUnLCB2YWx1ZTogJzEnIH0sXG4gICAgICAgICAgICB7IGxhYmVsOiAnY2FsZicsIHZhbHVlOiAnMicgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9O1xuXG4gICAgICAgIHcuaW5zdGFuY2UoKS51cGRhdGVDaG9pY2VzSWZOZWVkZWQoe1xuICAgICAgICAgIG1vZGVsOiB7XG4gICAgICAgICAgICAuLi5tb2RlbCxcbiAgICAgICAgICAgIGNob2ljZXM6IG5ld0Nob2ljZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZXhwZWN0KHcuaW5zdGFuY2UoKS5zdGF0ZSkudG9FcXVhbChcbiAgICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBjaG9pY2VzOiBuZXdDaG9pY2VzLFxuICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgIDA6IHsgbGFiZWw6ICdjb3cnLCB2YWx1ZTogJzAnIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdkb2VzIG5vdCBjaGFuZ2Ugc3RhdGUnLCAoKSA9PiB7XG4gICAgICAgIHcuaW5zdGFuY2UoKS51cGRhdGVDaG9pY2VzSWZOZWVkZWQoeyBtb2RlbCB9KTtcblxuICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLnN0YXRlKS50b0VxdWFsKFxuICAgICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIGNob2ljZXM6IG1vZGVsLmNob2ljZXMsXG4gICAgICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgICAgMDogeyBsYWJlbDogJ2NvdycsIHZhbHVlOiAnMCcgfSxcbiAgICAgICAgICAgICAgMTogeyBsYWJlbDogJ292ZXInLCB2YWx1ZTogJzAnIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnZ2V0UmVtYWluaW5nQ2hvaWNlcycsICgpID0+IHtcbiAgICAgIGl0KCdhZGRzIGFuIGFsdGVybmF0ZSBpZiBzZWxlY3RpbmcgYSBjaG9pY2UnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbWFpbmluZ0Nob2ljZXMgPSB3Lmluc3RhbmNlKCkuZ2V0UmVtYWluaW5nQ2hvaWNlcygpO1xuXG4gICAgICAgIGV4cGVjdChyZW1haW5pbmdDaG9pY2VzKS50b0VxdWFsKFt7IGxhYmVsOiAnbW9vbicsIHZhbHVlOiAnMicgfV0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnb25DaG9pY2VDaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgaXQoJ2NoYW5nZXMgbmV3IGFsdGVybmF0ZScsICgpID0+IHtcbiAgICAgICAgdy5pbnN0YW5jZSgpLm9uQ2hvaWNlQ2hhbmdlZCh7IGxhYmVsOiAnTmV3IENob2ljZScsIHZhbHVlOiAnMScgfSwgMik7XG5cbiAgICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgLi4ubW9kZWwuY2hvaWNlcyxcbiAgICAgICAgICAyOiBbXG4gICAgICAgICAgICB7IGxhYmVsOiAnbW9vbicsIHZhbHVlOiAnMCcgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICdOZXcgQ2hvaWNlJywgdmFsdWU6ICcxJyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdjaGFuZ2VzIGV4aXN0aW5nIGFsdGVybmF0ZScsICgpID0+IHtcbiAgICAgICAgdy5pbnN0YW5jZSgpLm9uQ2hvaWNlQ2hhbmdlZCh7IGxhYmVsOiAnTmV3IENob2ljZSBFZGl0ZWQnLCB2YWx1ZTogJzEnIH0sIDIpO1xuXG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9CZUNhbGxlZFdpdGgoe1xuICAgICAgICAgIC4uLm1vZGVsLmNob2ljZXMsXG4gICAgICAgICAgMjogW1xuICAgICAgICAgICAgeyBsYWJlbDogJ21vb24nLCB2YWx1ZTogJzAnIH0sXG4gICAgICAgICAgICB7IGxhYmVsOiAnTmV3IENob2ljZSBFZGl0ZWQnLCB2YWx1ZTogJzEnIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdvbkNob2ljZVJlbW92ZWQnLCAoKSA9PiB7XG4gICAgICBpdCgncmVtb3ZlcyBjaG9pY2UgZnJvbSBzZWN0aW9uJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBjaG9pY2VzID0gdy5pbnN0YW5jZSgpLnByb3BzLm1vZGVsLmNob2ljZXM7XG5cbiAgICAgICAgdy5pbnN0YW5jZSgpLm9uQ2hvaWNlUmVtb3ZlZCgnMScsICcxJyk7XG5cbiAgICAgICAgY2hvaWNlc1sxXSA9IFtcbiAgICAgICAgICB7IGxhYmVsOiAnb3ZlcicsIHZhbHVlOiAnMCcgfSxcbiAgICAgICAgICB7IGxhYmVsOiAnYmV5b25kJywgdmFsdWU6ICcyJyB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9CZUNhbGxlZFdpdGgoY2hvaWNlcyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2RvZXMgbm90IHRocm93IGVycm9yIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBjb3JyZWN0JywgKCkgPT4ge1xuICAgICAgICBjb25zdCBjaG9pY2VzID0gdy5pbnN0YW5jZSgpLnByb3BzLm1vZGVsLmNob2ljZXM7XG5cbiAgICAgICAgdy5pbnN0YW5jZSgpLm9uQ2hvaWNlUmVtb3ZlZCgnMTEnLCAnMScpO1xuXG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9CZUNhbGxlZFdpdGgoY2hvaWNlcyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdvblNlY3Rpb25TZWxlY3QnLCAoKSA9PiB7XG4gICAgICBpdCgncmVtb3ZpbmcgYSBzZWxlY3Rpb24nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNob2ljZXMgPSB3Lmluc3RhbmNlKCkucHJvcHMubW9kZWwuY2hvaWNlcztcblxuICAgICAgICB3Lmluc3RhbmNlKCkub25TZWN0aW9uU2VsZWN0KHVuZGVmaW5lZCwgJzAnKTtcblxuICAgICAgICBleHBlY3Qob25DaGFuZ2UpLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICAuLi5jaG9pY2VzLFxuICAgICAgICAgIDA6IFt7IGxhYmVsOiAnY293JywgdmFsdWU6ICcwJyB9XSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3NlbGVjdGluZyBhIHJlc3BvbnNlJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHcuaW5zdGFuY2UoKS5zdGF0ZTtcblxuICAgICAgICB3Lmluc3RhbmNlKCkub25TZWN0aW9uU2VsZWN0KHsgbGFiZWw6ICdtb29uJywgdmFsdWU6ICcwJyB9LCAnMicpO1xuXG4gICAgICAgIGV4cGVjdCh3Lmluc3RhbmNlKCkuc3RhdGUuY2hvaWNlcykudG9FcXVhbCh7XG4gICAgICAgICAgLi4uc3RhdGUuY2hvaWNlcyxcbiAgICAgICAgICAyOiBbXG4gICAgICAgICAgICB7IGxhYmVsOiAnbW9vbicsIHZhbHVlOiAnMCcgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICcnLCB2YWx1ZTogJzEnIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICAgIGV4cGVjdCh3Lmluc3RhbmNlKCkuc3RhdGUudmFsdWVzKS50b0VxdWFsKHtcbiAgICAgICAgICAuLi5zdGF0ZS52YWx1ZXMsXG4gICAgICAgICAgMjogeyBsYWJlbDogJ21vb24nLCB2YWx1ZTogJzAnIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|