@pie-element/complex-rubric 2.2.0-next.1 → 2.2.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.
Files changed (66) hide show
  1. package/LICENSE.md +5 -0
  2. package/configure/lib/defaults.js +1 -1
  3. package/configure/lib/index.js +1 -1
  4. package/configure/lib/main.js +1 -1
  5. package/configure/node_modules/@pie-lib/render-ui/CHANGELOG.json +937 -0
  6. package/configure/node_modules/@pie-lib/render-ui/CHANGELOG.md +848 -0
  7. package/configure/node_modules/@pie-lib/render-ui/LICENSE.md +5 -0
  8. package/configure/node_modules/@pie-lib/render-ui/README.md +33 -0
  9. package/configure/node_modules/@pie-lib/render-ui/lib/collapsible/index.js +134 -0
  10. package/configure/node_modules/@pie-lib/render-ui/lib/collapsible/index.js.map +1 -0
  11. package/configure/node_modules/@pie-lib/render-ui/lib/color.js +157 -0
  12. package/configure/node_modules/@pie-lib/render-ui/lib/color.js.map +1 -0
  13. package/configure/node_modules/@pie-lib/render-ui/lib/feedback.js +151 -0
  14. package/configure/node_modules/@pie-lib/render-ui/lib/feedback.js.map +1 -0
  15. package/configure/node_modules/@pie-lib/render-ui/lib/has-text.js +24 -0
  16. package/configure/node_modules/@pie-lib/render-ui/lib/has-text.js.map +1 -0
  17. package/configure/node_modules/@pie-lib/render-ui/lib/html-and-math.js +90 -0
  18. package/configure/node_modules/@pie-lib/render-ui/lib/html-and-math.js.map +1 -0
  19. package/configure/node_modules/@pie-lib/render-ui/lib/index.js +104 -0
  20. package/configure/node_modules/@pie-lib/render-ui/lib/index.js.map +1 -0
  21. package/configure/node_modules/@pie-lib/render-ui/lib/input-container.js +60 -0
  22. package/configure/node_modules/@pie-lib/render-ui/lib/input-container.js.map +1 -0
  23. package/configure/node_modules/@pie-lib/render-ui/lib/preview-layout.js +133 -0
  24. package/configure/node_modules/@pie-lib/render-ui/lib/preview-layout.js.map +1 -0
  25. package/configure/node_modules/@pie-lib/render-ui/lib/preview-prompt.js +206 -0
  26. package/configure/node_modules/@pie-lib/render-ui/lib/preview-prompt.js.map +1 -0
  27. package/configure/node_modules/@pie-lib/render-ui/lib/purpose.js +28 -0
  28. package/configure/node_modules/@pie-lib/render-ui/lib/purpose.js.map +1 -0
  29. package/configure/node_modules/@pie-lib/render-ui/lib/readable.js +28 -0
  30. package/configure/node_modules/@pie-lib/render-ui/lib/readable.js.map +1 -0
  31. package/configure/node_modules/@pie-lib/render-ui/lib/response-indicators.js +151 -0
  32. package/configure/node_modules/@pie-lib/render-ui/lib/response-indicators.js.map +1 -0
  33. package/configure/node_modules/@pie-lib/render-ui/lib/withUndoReset.js +181 -0
  34. package/configure/node_modules/@pie-lib/render-ui/lib/withUndoReset.js.map +1 -0
  35. package/configure/node_modules/@pie-lib/render-ui/package.json +30 -0
  36. package/configure/node_modules/@pie-lib/render-ui/src/collapsible/index.jsx +63 -0
  37. package/configure/node_modules/@pie-lib/render-ui/src/color.js +55 -0
  38. package/configure/node_modules/@pie-lib/render-ui/src/feedback.jsx +100 -0
  39. package/configure/node_modules/@pie-lib/render-ui/src/has-text.js +14 -0
  40. package/configure/node_modules/@pie-lib/render-ui/src/html-and-math.js +34 -0
  41. package/configure/node_modules/@pie-lib/render-ui/src/index.js +27 -0
  42. package/configure/node_modules/@pie-lib/render-ui/src/input-container.jsx +41 -0
  43. package/configure/node_modules/@pie-lib/render-ui/src/preview-layout.jsx +84 -0
  44. package/configure/node_modules/@pie-lib/render-ui/src/preview-prompt.jsx +130 -0
  45. package/configure/node_modules/@pie-lib/render-ui/src/purpose.jsx +17 -0
  46. package/configure/node_modules/@pie-lib/render-ui/src/readable.jsx +19 -0
  47. package/configure/node_modules/@pie-lib/render-ui/src/response-indicators.jsx +89 -0
  48. package/configure/node_modules/@pie-lib/render-ui/src/withUndoReset.jsx +116 -0
  49. package/controller/lib/defaults.js +1 -1
  50. package/controller/lib/index.js +1 -1
  51. package/controller/lib/utils.js +1 -1
  52. package/lib/index.js +1 -1
  53. package/lib/print.js +1 -1
  54. package/package.json +2 -2
  55. package/configure/lib/__tests__/index.test.js +0 -57
  56. package/configure/lib/__tests__/main.test.js +0 -138
  57. package/controller/lib/__tests__/index.test.js +0 -134
  58. package/docs/demo/pie.manifest.json +0 -11
  59. package/lib/__tests__/index.test.js +0 -127
  60. package/module/demo.js +0 -222
  61. package/module/element.js +0 -208896
  62. package/module/index.html +0 -21
  63. package/module/manifest.json +0 -10
  64. package/module/print-demo.js +0 -260
  65. package/module/print.html +0 -18
  66. package/module/print.js +0 -208868
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/complex-rubric",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "2.2.0-next.1",
4
+ "version": "2.2.0",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -15,7 +15,7 @@
15
15
  "lodash": "^4.17.11",
16
16
  "prop-types": "^15.7.2"
17
17
  },
18
- "gitHead": "0e14ff981bcdc8a89a0e58484026496701bfdbc3",
18
+ "gitHead": "8aec9bff2588b2640ca5b4fa74a75333a52a563b",
19
19
  "scripts": {
20
20
  "postpublish": "../../scripts/postpublish"
21
21
  },
@@ -1,57 +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 _react = _interopRequireDefault(require("react"));
8
-
9
- var _reactDom = _interopRequireDefault(require("react-dom"));
10
-
11
- var _defaults = _interopRequireDefault(require("../defaults"));
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
- jest.mock('@pie-lib/pie-toolbox/config-ui', function () {
18
- return {
19
- settings: {
20
- Panel: function Panel(props) {
21
- return /*#__PURE__*/_react["default"].createElement("div", props);
22
- },
23
- toggle: jest.fn(),
24
- radio: jest.fn()
25
- }
26
- };
27
- });
28
-
29
- var model = function model() {
30
- return _objectSpread({}, _defaults["default"].model);
31
- };
32
-
33
- jest.mock('react-dom', function () {
34
- return {
35
- render: jest.fn()
36
- };
37
- });
38
- describe('index', function () {
39
- var Def;
40
- var el;
41
- var onModelChanged = jest.fn();
42
- var initialModel = model();
43
- beforeAll(function () {
44
- Def = require('../index')["default"];
45
- });
46
- beforeEach(function () {
47
- el = new Def();
48
- el.model = initialModel;
49
- el.onModelChanged = onModelChanged;
50
- });
51
- describe('set model', function () {
52
- it('calls ReactDOM.render', function () {
53
- expect(_reactDom["default"].render).toHaveBeenCalled();
54
- });
55
- });
56
- });
57
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qcyJdLCJuYW1lcyI6WyJqZXN0IiwibW9jayIsInNldHRpbmdzIiwiUGFuZWwiLCJwcm9wcyIsInRvZ2dsZSIsImZuIiwicmFkaW8iLCJtb2RlbCIsImRlZmF1bHRzIiwicmVuZGVyIiwiZGVzY3JpYmUiLCJEZWYiLCJlbCIsIm9uTW9kZWxDaGFuZ2VkIiwiaW5pdGlhbE1vZGVsIiwiYmVmb3JlQWxsIiwicmVxdWlyZSIsImJlZm9yZUVhY2giLCJpdCIsImV4cGVjdCIsIlJlYWN0RE9NIiwidG9IYXZlQmVlbkNhbGxlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7Ozs7OztBQUVBQSxJQUFJLENBQUNDLElBQUwsQ0FBVSxnQ0FBVixFQUE0QztBQUFBLFNBQU87QUFDakRDLElBQUFBLFFBQVEsRUFBRTtBQUNSQyxNQUFBQSxLQUFLLEVBQUUsZUFBQ0MsS0FBRDtBQUFBLDRCQUFXLHVDQUFTQSxLQUFULENBQVg7QUFBQSxPQURDO0FBRVJDLE1BQUFBLE1BQU0sRUFBRUwsSUFBSSxDQUFDTSxFQUFMLEVBRkE7QUFHUkMsTUFBQUEsS0FBSyxFQUFFUCxJQUFJLENBQUNNLEVBQUw7QUFIQztBQUR1QyxHQUFQO0FBQUEsQ0FBNUM7O0FBUUEsSUFBTUUsS0FBSyxHQUFHLFNBQVJBLEtBQVE7QUFBQSwyQkFBWUMscUJBQVNELEtBQXJCO0FBQUEsQ0FBZDs7QUFFQVIsSUFBSSxDQUFDQyxJQUFMLENBQVUsV0FBVixFQUF1QjtBQUFBLFNBQU87QUFDNUJTLElBQUFBLE1BQU0sRUFBRVYsSUFBSSxDQUFDTSxFQUFMO0FBRG9CLEdBQVA7QUFBQSxDQUF2QjtBQUlBSyxRQUFRLENBQUMsT0FBRCxFQUFVLFlBQU07QUFDdEIsTUFBSUMsR0FBSjtBQUNBLE1BQUlDLEVBQUo7QUFDQSxNQUFJQyxjQUFjLEdBQUdkLElBQUksQ0FBQ00sRUFBTCxFQUFyQjtBQUNBLE1BQUlTLFlBQVksR0FBR1AsS0FBSyxFQUF4QjtBQUVBUSxFQUFBQSxTQUFTLENBQUMsWUFBTTtBQUNkSixJQUFBQSxHQUFHLEdBQUdLLE9BQU8sQ0FBQyxVQUFELENBQVAsV0FBTjtBQUNELEdBRlEsQ0FBVDtBQUlBQyxFQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNmTCxJQUFBQSxFQUFFLEdBQUcsSUFBSUQsR0FBSixFQUFMO0FBQ0FDLElBQUFBLEVBQUUsQ0FBQ0wsS0FBSCxHQUFXTyxZQUFYO0FBQ0FGLElBQUFBLEVBQUUsQ0FBQ0MsY0FBSCxHQUFvQkEsY0FBcEI7QUFDRCxHQUpTLENBQVY7QUFNQUgsRUFBQUEsUUFBUSxDQUFDLFdBQUQsRUFBYyxZQUFNO0FBQzFCUSxJQUFBQSxFQUFFLENBQUMsdUJBQUQsRUFBMEIsWUFBTTtBQUNoQ0MsTUFBQUEsTUFBTSxDQUFDQyxxQkFBU1gsTUFBVixDQUFOLENBQXdCWSxnQkFBeEI7QUFDRCxLQUZDLENBQUY7QUFHRCxHQUpPLENBQVI7QUFLRCxDQXJCTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuXG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL3BpZS10b29sYm94L2NvbmZpZy11aScsICgpID0+ICh7XG4gIHNldHRpbmdzOiB7XG4gICAgUGFuZWw6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxuICAgIHRvZ2dsZTogamVzdC5mbigpLFxuICAgIHJhZGlvOiBqZXN0LmZuKCksXG4gIH0sXG59KSk7XG5cbmNvbnN0IG1vZGVsID0gKCkgPT4gKHsgLi4uZGVmYXVsdHMubW9kZWwgfSk7XG5cbmplc3QubW9jaygncmVhY3QtZG9tJywgKCkgPT4gKHtcbiAgcmVuZGVyOiBqZXN0LmZuKCksXG59KSk7XG5cbmRlc2NyaWJlKCdpbmRleCcsICgpID0+IHtcbiAgbGV0IERlZjtcbiAgbGV0IGVsO1xuICBsZXQgb25Nb2RlbENoYW5nZWQgPSBqZXN0LmZuKCk7XG4gIGxldCBpbml0aWFsTW9kZWwgPSBtb2RlbCgpO1xuXG4gIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgRGVmID0gcmVxdWlyZSgnLi4vaW5kZXgnKS5kZWZhdWx0O1xuICB9KTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBlbCA9IG5ldyBEZWYoKTtcbiAgICBlbC5tb2RlbCA9IGluaXRpYWxNb2RlbDtcbiAgICBlbC5vbk1vZGVsQ2hhbmdlZCA9IG9uTW9kZWxDaGFuZ2VkO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2V0IG1vZGVsJywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBSZWFjdERPTS5yZW5kZXInLCAoKSA9PiB7XG4gICAgICBleHBlY3QoUmVhY3RET00ucmVuZGVyKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,138 +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 _main = require("../main");
12
-
13
- var _defaults = _interopRequireDefault(require("../defaults"));
14
-
15
- 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; }
16
-
17
- 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; }
18
-
19
- jest.mock('@pie-lib/pie-toolbox/config-ui', function () {
20
- return {
21
- layout: {
22
- ConfigLayout: function ConfigLayout(props) {
23
- return /*#__PURE__*/_react["default"].createElement("div", null, props.children);
24
- }
25
- }
26
- };
27
- });
28
- jest.mock('@pie-lib/pie-toolbox/rubric', function () {
29
- return {
30
- RUBRIC_TYPES: {
31
- SIMPLE_RUBRIC: 'simpleRubric',
32
- MULTI_TRAIT_RUBRIC: 'multiTraitRubric'
33
- }
34
- };
35
- });
36
-
37
- var model = function model(extras) {
38
- return _objectSpread(_objectSpread({
39
- id: '1',
40
- element: 'complex-rubric'
41
- }, _defaults["default"].model), extras);
42
- };
43
-
44
- describe('Main', function () {
45
- var initialModel = model();
46
- var onModelChanged = jest.fn();
47
- var onConfigurationChanged = jest.fn();
48
-
49
- var wrapper = function wrapper(extras) {
50
- var defaults = {
51
- onModelChanged: onModelChanged,
52
- onConfigurationChanged: onConfigurationChanged,
53
- classes: {},
54
- model: model(extras),
55
- configuration: {
56
- rubricOptions: ['simpleRubric', 'multiTraitRubric', 'rubricless'],
57
- multiTraitrubric: {
58
- showStandards: {
59
- settings: false,
60
- label: 'Show Standards',
61
- enabled: false
62
- },
63
- showExcludeZero: {
64
- settings: true,
65
- label: 'Exclude Zero',
66
- enabled: false
67
- },
68
- showScorePointLabels: {
69
- settings: true,
70
- label: 'Show Score Point Labels',
71
- enabled: false
72
- },
73
- showLevelTagInput: {
74
- settings: true,
75
- label: 'Show Level Tag Input',
76
- enabled: false
77
- },
78
- showDescription: {
79
- settings: true,
80
- label: 'Show Description',
81
- enabled: false
82
- },
83
- showVisibleToStudent: {
84
- settings: true,
85
- label: 'Visible to Student',
86
- enabled: false
87
- },
88
- showHalfScoring: {
89
- settings: true,
90
- label: 'Half Scoring',
91
- enabled: false
92
- },
93
- dragAndDrop: {
94
- settings: false,
95
- label: 'Enable Drag and Drop',
96
- enabled: false
97
- }
98
- }
99
- },
100
- canUpdateModel: true
101
- };
102
-
103
- var props = _objectSpread({}, defaults);
104
-
105
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_main.Main, props));
106
- };
107
-
108
- describe('snapshot', function () {
109
- it('renders', function () {
110
- var w = wrapper();
111
- expect(w).toMatchSnapshot();
112
- });
113
- it('renders simple rubric', function () {
114
- var w = wrapper({
115
- rubricType: 'simpleRubric'
116
- });
117
- expect(w).toMatchSnapshot();
118
- });
119
- it('renders multi trait rubric', function () {
120
- var w = wrapper({
121
- rubricType: 'multiTraitRubric'
122
- });
123
- expect(w).toMatchSnapshot();
124
- });
125
- it('calls onModelChange when changing rubric type', function () {
126
- var w = wrapper();
127
- w.instance().onChangeRubricType({
128
- target: {
129
- value: 'multiTraitRubric'
130
- }
131
- });
132
- expect(onModelChanged).toBeCalledWith(_objectSpread(_objectSpread({}, initialModel), {}, {
133
- rubricType: 'multiTraitRubric'
134
- }));
135
- });
136
- });
137
- });
138
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbWFpbi50ZXN0LmpzeCJdLCJuYW1lcyI6WyJqZXN0IiwibW9jayIsImxheW91dCIsIkNvbmZpZ0xheW91dCIsInByb3BzIiwiY2hpbGRyZW4iLCJSVUJSSUNfVFlQRVMiLCJTSU1QTEVfUlVCUklDIiwiTVVMVElfVFJBSVRfUlVCUklDIiwibW9kZWwiLCJleHRyYXMiLCJpZCIsImVsZW1lbnQiLCJkZWZhdWx0cyIsImRlc2NyaWJlIiwiaW5pdGlhbE1vZGVsIiwib25Nb2RlbENoYW5nZWQiLCJmbiIsIm9uQ29uZmlndXJhdGlvbkNoYW5nZWQiLCJ3cmFwcGVyIiwiY2xhc3NlcyIsImNvbmZpZ3VyYXRpb24iLCJydWJyaWNPcHRpb25zIiwibXVsdGlUcmFpdHJ1YnJpYyIsInNob3dTdGFuZGFyZHMiLCJzZXR0aW5ncyIsImxhYmVsIiwiZW5hYmxlZCIsInNob3dFeGNsdWRlWmVybyIsInNob3dTY29yZVBvaW50TGFiZWxzIiwic2hvd0xldmVsVGFnSW5wdXQiLCJzaG93RGVzY3JpcHRpb24iLCJzaG93VmlzaWJsZVRvU3R1ZGVudCIsInNob3dIYWxmU2NvcmluZyIsImRyYWdBbmREcm9wIiwiY2FuVXBkYXRlTW9kZWwiLCJpdCIsInciLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJydWJyaWNUeXBlIiwiaW5zdGFuY2UiLCJvbkNoYW5nZVJ1YnJpY1R5cGUiLCJ0YXJnZXQiLCJ2YWx1ZSIsInRvQmVDYWxsZWRXaXRoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7O0FBRUFBLElBQUksQ0FBQ0MsSUFBTCxDQUFVLGdDQUFWLEVBQTRDO0FBQUEsU0FBTztBQUNqREMsSUFBQUEsTUFBTSxFQUFFO0FBQ05DLE1BQUFBLFlBQVksRUFBRSxzQkFBQ0MsS0FBRDtBQUFBLDRCQUFXLDZDQUFNQSxLQUFLLENBQUNDLFFBQVosQ0FBWDtBQUFBO0FBRFI7QUFEeUMsR0FBUDtBQUFBLENBQTVD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bXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWFpbiB9IGZyb20gJy4uL21haW4nO1xuXG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL3BpZS10b29sYm94L2NvbmZpZy11aScsICgpID0+ICh7XG4gIGxheW91dDoge1xuICAgIENvbmZpZ0xheW91dDogKHByb3BzKSA9PiA8ZGl2Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvcGllLXRvb2xib3gvcnVicmljJywgKCkgPT4gKHtcbiAgUlVCUklDX1RZUEVTOiB7XG4gICAgU0lNUExFX1JVQlJJQzogJ3NpbXBsZVJ1YnJpYycsXG4gICAgTVVMVElfVFJBSVRfUlVCUklDOiAnbXVsdGlUcmFpdFJ1YnJpYycsXG4gIH0sXG59KSk7XG5cbmNvbnN0IG1vZGVsID0gKGV4dHJhcykgPT4gKHtcbiAgaWQ6ICcxJyxcbiAgZWxlbWVudDogJ2NvbXBsZXgtcnVicmljJyxcbiAgLi4uZGVmYXVsdHMubW9kZWwsXG4gIC4uLmV4dHJhcyxcbn0pO1xuXG5kZXNjcmliZSgnTWFpbicsICgpID0+IHtcbiAgbGV0IGluaXRpYWxNb2RlbCA9IG1vZGVsKCk7XG4gIGxldCBvbk1vZGVsQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgbGV0IG9uQ29uZmlndXJhdGlvbkNoYW5nZWQgPSBqZXN0LmZuKCk7XG5cbiAgY29uc3Qgd3JhcHBlciA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIG9uTW9kZWxDaGFuZ2VkLFxuICAgICAgb25Db25maWd1cmF0aW9uQ2hhbmdlZCxcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgbW9kZWw6IG1vZGVsKGV4dHJhcyksXG4gICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgIHJ1YnJpY09wdGlvbnM6IFsnc2ltcGxlUnVicmljJywgJ211bHRpVHJhaXRSdWJyaWMnLCAncnVicmljbGVzcyddLFxuICAgICAgICBtdWx0aVRyYWl0cnVicmljOiB7XG4gICAgICAgICAgc2hvd1N0YW5kYXJkczoge1xuICAgICAgICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgICAgICAgbGFiZWw6ICdTaG93IFN0YW5kYXJkcycsXG4gICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNob3dFeGNsdWRlWmVybzoge1xuICAgICAgICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICAgICAgICBsYWJlbDogJ0V4Y2x1ZGUgWmVybycsXG4gICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNob3dTY29yZVBvaW50TGFiZWxzOiB7XG4gICAgICAgICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgICAgICAgIGxhYmVsOiAnU2hvdyBTY29yZSBQb2ludCBMYWJlbHMnLFxuICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaG93TGV2ZWxUYWdJbnB1dDoge1xuICAgICAgICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICAgICAgICBsYWJlbDogJ1Nob3cgTGV2ZWwgVGFnIElucHV0JyxcbiAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hvd0Rlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgICAgICAgIGxhYmVsOiAnU2hvdyBEZXNjcmlwdGlvbicsXG4gICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNob3dWaXNpYmxlVG9TdHVkZW50OiB7XG4gICAgICAgICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgICAgICAgIGxhYmVsOiAnVmlzaWJsZSB0byBTdHVkZW50JyxcbiAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hvd0hhbGZTY29yaW5nOiB7XG4gICAgICAgICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgICAgICAgIGxhYmVsOiAnSGFsZiBTY29yaW5nJyxcbiAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZHJhZ0FuZERyb3A6IHtcbiAgICAgICAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgICAgICAgIGxhYmVsOiAnRW5hYmxlIERyYWcgYW5kIERyb3AnLFxuICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjYW5VcGRhdGVNb2RlbDogdHJ1ZVxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzIH07XG5cbiAgICByZXR1cm4gc2hhbGxvdyg8TWFpbiB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcblxuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB3ID0gd3JhcHBlcigpO1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgc2ltcGxlIHJ1YnJpYycsICgpID0+IHtcbiAgICAgIGNvbnN0IHcgPSB3cmFwcGVyKHsgcnVicmljVHlwZTogJ3NpbXBsZVJ1YnJpYycgfSk7XG4gICAgICBleHBlY3QodykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBtdWx0aSB0cmFpdCBydWJyaWMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB3ID0gd3JhcHBlcih7IHJ1YnJpY1R5cGU6ICdtdWx0aVRyYWl0UnVicmljJyB9KTtcbiAgICAgIGV4cGVjdCh3KS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyBvbk1vZGVsQ2hhbmdlIHdoZW4gY2hhbmdpbmcgcnVicmljIHR5cGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB3ID0gd3JhcHBlcigpO1xuICAgICAgdy5pbnN0YW5jZSgpLm9uQ2hhbmdlUnVicmljVHlwZSh7IHRhcmdldDogeyB2YWx1ZTogJ211bHRpVHJhaXRSdWJyaWMnIH0gfSk7XG4gICAgICBleHBlY3Qob25Nb2RlbENoYW5nZWQpLnRvQmVDYWxsZWRXaXRoKHsgLi4uaW5pdGlhbE1vZGVsLCBydWJyaWNUeXBlOiAnbXVsdGlUcmFpdFJ1YnJpYycgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,134 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
-
7
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
-
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
-
11
- var _index = require("../index");
12
-
13
- var _defaults = _interopRequireDefault(require("../defaults"));
14
-
15
- 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; }
16
-
17
- 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; }
18
-
19
- describe('complex rubric model', function () {
20
- var state = _objectSpread({}, _defaults["default"].model);
21
-
22
- var session = {};
23
- var env, result;
24
- it('returns no model for gather', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
25
- return _regenerator["default"].wrap(function _callee$(_context) {
26
- while (1) {
27
- switch (_context.prev = _context.next) {
28
- case 0:
29
- env = {
30
- mode: 'gather'
31
- };
32
- _context.next = 3;
33
- return (0, _index.model)(state, session, env);
34
-
35
- case 3:
36
- result = _context.sent;
37
- expect(result).toEqual({});
38
-
39
- case 5:
40
- case "end":
41
- return _context.stop();
42
- }
43
- }
44
- }, _callee);
45
- })));
46
- it('returns no model for student role', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
47
- return _regenerator["default"].wrap(function _callee2$(_context2) {
48
- while (1) {
49
- switch (_context2.prev = _context2.next) {
50
- case 0:
51
- env = {
52
- mode: 'gather',
53
- role: 'student'
54
- };
55
- _context2.next = 3;
56
- return (0, _index.model)(state, session, env);
57
-
58
- case 3:
59
- result = _context2.sent;
60
- expect(result).toEqual({});
61
-
62
- case 5:
63
- case "end":
64
- return _context2.stop();
65
- }
66
- }
67
- }, _callee2);
68
- })));
69
- it('returns model for instructor role and simple rubric', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
70
- return _regenerator["default"].wrap(function _callee3$(_context3) {
71
- while (1) {
72
- switch (_context3.prev = _context3.next) {
73
- case 0:
74
- env = {
75
- mode: 'gather',
76
- role: 'instructor'
77
- };
78
- _context3.next = 3;
79
- return (0, _index.model)(state, session, env);
80
-
81
- case 3:
82
- result = _context3.sent;
83
- expect(result).toEqual(_objectSpread(_objectSpread({}, state), {}, {
84
- rubrics: _objectSpread(_objectSpread({}, state.rubrics), {}, {
85
- multiTraitRubric: _objectSpread(_objectSpread({}, state.rubrics.multiTraitRubric), {}, {
86
- visible: false
87
- })
88
- })
89
- }));
90
-
91
- case 5:
92
- case "end":
93
- return _context3.stop();
94
- }
95
- }
96
- }, _callee3);
97
- })));
98
- it('returns model for instructor role and multi trait rubric', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
99
- return _regenerator["default"].wrap(function _callee4$(_context4) {
100
- while (1) {
101
- switch (_context4.prev = _context4.next) {
102
- case 0:
103
- env = {
104
- mode: 'gather',
105
- role: 'instructor'
106
- };
107
- _context4.next = 3;
108
- return (0, _index.model)(_objectSpread(_objectSpread({}, state), {}, {
109
- rubricType: 'multiTraitRubric'
110
- }), session, env);
111
-
112
- case 3:
113
- result = _context4.sent;
114
- expect(result).toEqual(_objectSpread(_objectSpread({}, state), {}, {
115
- rubricType: 'multiTraitRubric',
116
- rubrics: _objectSpread(_objectSpread({}, state.rubrics), {}, {
117
- simpleRubric: _objectSpread(_objectSpread({}, state.rubrics.simpleRubric), {}, {
118
- visible: false
119
- }),
120
- rubricless: _objectSpread(_objectSpread({}, state.rubrics.rubricless), {}, {
121
- visible: false
122
- })
123
- })
124
- }));
125
-
126
- case 5:
127
- case "end":
128
- return _context4.stop();
129
- }
130
- }
131
- }, _callee4);
132
- })));
133
- });
134
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsInN0YXRlIiwiZGVmYXVsdE1vZGVsIiwibW9kZWwiLCJzZXNzaW9uIiwiZW52IiwicmVzdWx0IiwiaXQiLCJtb2RlIiwiZXhwZWN0IiwidG9FcXVhbCIsInJvbGUiLCJydWJyaWNzIiwibXVsdGlUcmFpdFJ1YnJpYyIsInZpc2libGUiLCJydWJyaWNUeXBlIiwic2ltcGxlUnVicmljIiwicnVicmljbGVzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7Ozs7QUFFQUEsUUFBUSxDQUFDLHNCQUFELEVBQXlCLFlBQU07QUFDckMsTUFBSUMsS0FBSyxxQkFBUUMscUJBQWFDLEtBQXJCLENBQVQ7O0FBQ0EsTUFBSUMsT0FBTyxHQUFHLEVBQWQ7QUFDQSxNQUFJQyxHQUFKLEVBQVNDLE1BQVQ7QUFFQUMsRUFBQUEsRUFBRSxDQUFDLDZCQUFELDZGQUFnQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ2hDRixZQUFBQSxHQUFHLEdBQUc7QUFBRUcsY0FBQUEsSUFBSSxFQUFFO0FBQVIsYUFBTjtBQURnQztBQUFBLG1CQUVqQixrQkFBTVAsS0FBTixFQUFhRyxPQUFiLEVBQXNCQyxHQUF0QixDQUZpQjs7QUFBQTtBQUVoQ0MsWUFBQUEsTUFGZ0M7QUFHaENHLFlBQUFBLE1BQU0sQ0FBQ0gsTUFBRCxDQUFOLENBQWVJLE9BQWYsQ0FBdUIsRUFBdkI7O0FBSGdDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEdBQWhDLEdBQUY7QUFNQUgsRUFBQUEsRUFBRSxDQUFDLG1DQUFELDZGQUFzQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ3RDRixZQUFBQSxHQUFHLEdBQUc7QUFBRUcsY0FBQUEsSUFBSSxFQUFFLFFBQVI7QUFBa0JHLGNBQUFBLElBQUksRUFBRTtBQUF4QixhQUFOO0FBRHNDO0FBQUEsbUJBRXZCLGtCQUFNVixLQUFOLEVBQWFHLE9BQWIsRUFBc0JDLEdBQXRCLENBRnVCOztBQUFBO0FBRXRDQyxZQUFBQSxNQUZzQztBQUd0Q0csWUFBQUEsTUFBTSxDQUFDSCxNQUFELENBQU4sQ0FBZUksT0FBZixDQUF1QixFQUF2Qjs7QUFIc0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBdEMsR0FBRjtBQU1BSCxFQUFBQSxFQUFFLENBQUMscURBQUQsNkZBQXdEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDeERGLFlBQUFBLEdBQUcsR0FBRztBQUFFRyxjQUFBQSxJQUFJLEVBQUUsUUFBUjtBQUFrQkcsY0FBQUEsSUFBSSxFQUFFO0FBQXhCLGFBQU47QUFEd0Q7QUFBQSxtQkFFekMsa0JBQU1WLEtBQU4sRUFBYUcsT0FBYixFQUFzQkMsR0FBdEIsQ0FGeUM7O0FBQUE7QUFFeERDLFlBQUFBLE1BRndEO0FBR3hERyxZQUFBQSxNQUFNLENBQUNILE1BQUQsQ0FBTixDQUFlSSxPQUFmLGlDQUNLVCxLQURMO0FBRUVXLGNBQUFBLE9BQU8sa0NBQ0ZYLEtBQUssQ0FBQ1csT0FESjtBQUVMQyxnQkFBQUEsZ0JBQWdCLGtDQUNYWixLQUFLLENBQUNXLE9BQU4sQ0FBY0MsZ0JBREg7QUFFZEMsa0JBQUFBLE9BQU8sRUFBRTtBQUZLO0FBRlg7QUFGVDs7QUFId0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBeEQsR0FBRjtBQWVBUCxFQUFBQSxFQUFFLENBQUMsMERBQUQsNkZBQTZEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDN0RGLFlBQUFBLEdBQUcsR0FBRztBQUFFRyxjQUFBQSxJQUFJLEVBQUUsUUFBUjtBQUFrQkcsY0FBQUEsSUFBSSxFQUFFO0FBQXhCLGFBQU47QUFENkQ7QUFBQSxtQkFFOUMsa0RBQVdWLEtBQVg7QUFBa0JjLGNBQUFBLFVBQVUsRUFBRTtBQUE5QixnQkFBb0RYLE9BQXBELEVBQTZEQyxHQUE3RCxDQUY4Qzs7QUFBQTtBQUU3REMsWUFBQUEsTUFGNkQ7QUFHN0RHLFlBQUFBLE1BQU0sQ0FBQ0gsTUFBRCxDQUFOLENBQWVJLE9BQWYsaUNBQ0tULEtBREw7QUFFRWMsY0FBQUEsVUFBVSxFQUFFLGtCQUZkO0FBR0VILGNBQUFBLE9BQU8sa0NBQ0ZYLEtBQUssQ0FBQ1csT0FESjtBQUVMSSxnQkFBQUEsWUFBWSxrQ0FDUGYsS0FBSyxDQUFDVyxPQUFOLENBQWNJLFlBRFA7QUFFVkYsa0JBQUFBLE9BQU8sRUFBRTtBQUZDLGtCQUZQO0FBTUxHLGdCQUFBQSxVQUFVLGtDQUNMaEIsS0FBSyxDQUFDVyxPQUFOLENBQWNLLFVBRFQ7QUFFUkgsa0JBQUFBLE9BQU8sRUFBRTtBQUZEO0FBTkw7QUFIVDs7QUFINkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBN0QsR0FBRjtBQW1CRCxDQW5ETyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW9kZWwgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgZGVmYXVsdE1vZGVsIGZyb20gJy4uL2RlZmF1bHRzJztcblxuZGVzY3JpYmUoJ2NvbXBsZXggcnVicmljIG1vZGVsJywgKCkgPT4ge1xuICBsZXQgc3RhdGUgPSB7IC4uLmRlZmF1bHRNb2RlbC5tb2RlbCB9O1xuICBsZXQgc2Vzc2lvbiA9IHt9O1xuICBsZXQgZW52LCByZXN1bHQ7XG5cbiAgaXQoJ3JldHVybnMgbm8gbW9kZWwgZm9yIGdhdGhlcicsIGFzeW5jICgpID0+IHtcbiAgICBlbnYgPSB7IG1vZGU6ICdnYXRoZXInIH07XG4gICAgcmVzdWx0ID0gYXdhaXQgbW9kZWwoc3RhdGUsIHNlc3Npb24sIGVudik7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7fSk7XG4gIH0pO1xuXG4gIGl0KCdyZXR1cm5zIG5vIG1vZGVsIGZvciBzdHVkZW50IHJvbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgZW52ID0geyBtb2RlOiAnZ2F0aGVyJywgcm9sZTogJ3N0dWRlbnQnIH07XG4gICAgcmVzdWx0ID0gYXdhaXQgbW9kZWwoc3RhdGUsIHNlc3Npb24sIGVudik7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7fSk7XG4gIH0pO1xuXG4gIGl0KCdyZXR1cm5zIG1vZGVsIGZvciBpbnN0cnVjdG9yIHJvbGUgYW5kIHNpbXBsZSBydWJyaWMnLCBhc3luYyAoKSA9PiB7XG4gICAgZW52ID0geyBtb2RlOiAnZ2F0aGVyJywgcm9sZTogJ2luc3RydWN0b3InIH07XG4gICAgcmVzdWx0ID0gYXdhaXQgbW9kZWwoc3RhdGUsIHNlc3Npb24sIGVudik7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHJ1YnJpY3M6IHtcbiAgICAgICAgLi4uc3RhdGUucnVicmljcyxcbiAgICAgICAgbXVsdGlUcmFpdFJ1YnJpYzoge1xuICAgICAgICAgIC4uLnN0YXRlLnJ1YnJpY3MubXVsdGlUcmFpdFJ1YnJpYyxcbiAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdyZXR1cm5zIG1vZGVsIGZvciBpbnN0cnVjdG9yIHJvbGUgYW5kIG11bHRpIHRyYWl0IHJ1YnJpYycsIGFzeW5jICgpID0+IHtcbiAgICBlbnYgPSB7IG1vZGU6ICdnYXRoZXInLCByb2xlOiAnaW5zdHJ1Y3RvcicgfTtcbiAgICByZXN1bHQgPSBhd2FpdCBtb2RlbCh7IC4uLnN0YXRlLCBydWJyaWNUeXBlOiAnbXVsdGlUcmFpdFJ1YnJpYycgfSwgc2Vzc2lvbiwgZW52KTtcbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcnVicmljVHlwZTogJ211bHRpVHJhaXRSdWJyaWMnLFxuICAgICAgcnVicmljczoge1xuICAgICAgICAuLi5zdGF0ZS5ydWJyaWNzLFxuICAgICAgICBzaW1wbGVSdWJyaWM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5ydWJyaWNzLnNpbXBsZVJ1YnJpYyxcbiAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgcnVicmljbGVzczoge1xuICAgICAgICAgIC4uLnN0YXRlLnJ1YnJpY3MucnVicmljbGVzcyxcbiAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1,11 +0,0 @@
1
- {
2
- "hash": "-1292248434",
3
- "info": [
4
- {
5
- "pie": "@pie-element/complex-rubric",
6
- "version": {
7
- "requested": "latest"
8
- }
9
- }
10
- ]
11
- }
@@ -1,127 +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
- 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; }
8
-
9
- 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; }
10
-
11
- jest.mock('@pie-element/rubric', function () {
12
- return jest.fn();
13
- });
14
- jest.mock('@pie-element/multi-trait-rubric', function () {
15
- return jest.fn();
16
- });
17
- jest.mock('@pie-lib/pie-toolbox/rubric', function () {
18
- return {
19
- RUBRIC_TYPES: {
20
- SIMPLE_RUBRIC: 'simpleRubric',
21
- MULTI_TRAIT_RUBRIC: 'multiTraitRubric'
22
- }
23
- };
24
- });
25
- var defaultModel = {
26
- rubricType: 'simpleRubric',
27
- rubrics: {
28
- simpleRubric: {
29
- points: ['nothing right', 'a teeny bit right', 'mostly right', 'bingo'],
30
- sampleAnswers: [null, 'just right', 'not left', null],
31
- maxPoints: 4,
32
- excludeZero: false
33
- },
34
- multiTraitRubric: {
35
- visibleToStudent: true,
36
- halfScoring: false,
37
- excludeZero: true,
38
- pointLabels: true,
39
- description: false,
40
- standards: false,
41
- scales: [{
42
- maxPoints: 4,
43
- scorePointsLabels: ['Non-Scorable', 'Developing', 'Progressing', 'Effective', 'Strong'],
44
- traitLabel: 'Trait',
45
- traits: [{
46
- name: 'Ideas',
47
- standards: [],
48
- description: 'the main message',
49
- scorePointsDescriptors: ['Student’s response is blank, not in English, not legible, or does not respond to the prompt.', 'Topic undefined and/or difficult to follow\n' + '\n' + 'Details are unclear', 'Topic too broad\n' + '\n' + 'Details are limited', 'Writing stays on topic\n' + '\n' + 'Complete details given', 'Strong control of topic\n' + '\n' + 'Relevant, accurate, specific details that support topic']
50
- }, {
51
- name: 'Organization',
52
- standards: [],
53
- description: 'the internal structure of the piece',
54
- scorePointsDescriptors: ['Student’s response is blank, not in English, not legible, or does not respond to the prompt.', 'Does not have a beginning, middle and/or end\n' + '\n' + 'Does not have a lead and/or conclusion\n' + '\n' + 'Transitions confusing and/or not present\n' + '\n' + 'Not written in logical order\n' + '\n' + 'No sign of paragraphing / incorrect paragraphing', 'Weak beginning, middle and end\n' + '\n' + 'Has evidence of a lead and/or conclusion but missing elements\n' + '\n' + 'Transitions are used sometimes\n' + '\n' + 'Some logical order\n' + '\n' + 'Most paragraphing incorrect', 'Has an acceptable beginning, middle and end\n' + '\n' + 'Includes a lead and conclusion\n' + '\n' + 'Transitions are used correctly\n' + '\n' + 'Mostly logical order\n' + '\n' + 'Mostly correct paragraphing', 'Has an effective beginning, middle and end\n' + '\n' + 'Powerful introduction / lead and conclusion\n' + '\n' + 'Effective transitions\n' + '\n' + 'Logical order / sequencing\n' + '\n' + 'Uses appropriate paragraphing']
55
- }, {
56
- name: 'Word Choice',
57
- standards: [],
58
- description: 'the vocabulary a writer chooses to convey meaning',
59
- scorePointsDescriptors: ['Student’s response is blank, not in English, not legible, or does not respond to the prompt.', 'Vocabulary is limited/used incorrectly\n' + '\n' + 'No figurative language; words do not convey meaning', 'Generally correct words\n' + '\n' + 'Attempt at figurative language\n' + '\n' + 'and/or words convey general meaning', 'Some active verbs and precise nouns\n' + '\n' + 'Effective use of figurative language and/or words that enhance meaning', 'Powerful and engaging words\n' + '\n' + 'Artful use of figurative language and/or sensory detail']
60
- }, {
61
- name: 'Sentence Fluency',
62
- standards: [],
63
- description: 'the rhythm and flow of the language',
64
- scorePointsDescriptors: ['Student’s response is blank, not in English, not legible, or does not respond to the prompt.', 'No sentences are clear\n' + '\n' + 'No variety in sentence structure\n' + '\n' + 'Frequent run-ons and/or fragments are present', 'Some sentences are clear\n' + '\n' + 'Sentence variety used rarely\n' + '\n' + 'Some run-ons and/or fragments are present', 'Most sentences are clear\n' + '\n' + 'Some sentence variety is used\n' + '\n' + 'Run-ons and/or fragments are rare', 'All Sentences are clear\n' + '\n' + 'Variety of sentence structure is used\n' + '\n' + 'Run-ons and/or fragments are not present']
65
- }, {
66
- name: 'Conventions',
67
- standards: [],
68
- description: 'the mechanical correctness',
69
- scorePointsDescriptors: ['Student’s response is blank, not in English, not legible, or does not respond to the prompt.', 'Many distracting errors are present in grammar, punctuation, capitalization and/or spelling', 'Errors in grammar, punctuation, capitalization and/or spelling are present and some distract from meaning', 'Errors in grammar, punctuation, capitalization and/or spelling are present but don’t distract from meaning', 'Few errors in grammar, punctuation,\n' + '\n' + 'capitalization and/or spelling']
70
- }, {
71
- name: 'Voice',
72
- standards: [],
73
- description: "the personal tone and flavor of the author's message",
74
- scorePointsDescriptors: ['Student’s response is blank, not in English, not legible, or does not respond to the prompt.', 'Not concerned with audience or purpose\n' + '\n' + 'No viewpoint (perspective) used\n' + '\n' + 'Writing is mechanical and lifeless', 'Shows beginning awareness of audience/purpose\n' + '\n' + 'Some viewpoint (perspective) used throughout the piece\n' + '\n' + 'Writing is distant, too formal or informal', 'Awareness of audience; purpose is clear most of the time\n' + '\n' + 'Uses viewpoint (perspective) throughout most of the paper\n' + '\n' + 'Writing is pleasant, agreeable and satisfying', 'Powerful connection with audience; purpose is clearly communicated\n' + '\n' + 'Maintains strong viewpoint (perspective) throughout entire piece\n' + '\n' + 'Writing is expressive, engaging and has lots of energy']
75
- }]
76
- }, {
77
- maxPoints: 5,
78
- scorePointsLabels: ['Non-Scorable', 'Unsatisfactory', 'Satisfactory'],
79
- traitLabel: 'Category',
80
- traits: [{
81
- name: 'Presentation',
82
- standards: [],
83
- description: '',
84
- scorePointsDescriptors: ['Handwriting is unreadable, or response is blank, not in English, or too brief to evaluate. ', 'Handwriting poor\n' + '\n' + 'Overall appearance is distracting to unacceptable', 'Handwriting is generally legible\n' + '\n' + 'Overall appearance is acceptable or better']
85
- }]
86
- }]
87
- }
88
- }
89
- };
90
- describe('complex-rubric', function () {
91
- var Def;
92
- var el;
93
- var complexRubric;
94
- beforeAll(function () {
95
- Def = require('../index')["default"];
96
- });
97
- beforeEach(function () {
98
- el = new Def();
99
- el.connectedCallback();
100
- complexRubric = {
101
- simpleRubric: new HTMLElement(),
102
- multiTraitRubric: new HTMLElement()
103
- };
104
- el.querySelector = jest.fn(function (s) {
105
- if (s === '#simpleRubric') {
106
- return complexRubric.simpleRubric;
107
- } else {
108
- return complexRubric.multiTraitRubric;
109
- }
110
- });
111
- el.tagName = 'complex-rubric-element';
112
- el.model = defaultModel;
113
- });
114
- describe('model', function () {
115
- it('should have set the model', function () {
116
- expect(el._model).toEqual(defaultModel);
117
- });
118
- it('sets rubric type', function () {
119
- expect(el._type).toEqual('simpleRubric');
120
- el.model = _objectSpread(_objectSpread({}, el._model), {}, {
121
- rubricType: 'multiTraitRubric'
122
- });
123
- expect(el._type).toEqual('multiTraitRubric');
124
- });
125
- });
126
- });
127
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qcyJdLCJuYW1lcyI6WyJqZXN0IiwibW9jayIsImZuIiwiUlVCUklDX1RZUEVTIiwiU0lNUExFX1JVQlJJQyIsIk1VTFRJX1RSQUlUX1JVQlJJQyIsImRlZmF1bHRNb2RlbCIsInJ1YnJpY1R5cGUiLCJydWJyaWNzIiwic2ltcGxlUnVicmljIiwicG9pbnRzIiwic2FtcGxlQW5zd2VycyIsIm1heFBvaW50cyIsImV4Y2x1ZGVaZXJvIiwibXVsdGlUcmFpdFJ1YnJpYyIsInZpc2libGVUb1N0dWRlbnQiLCJoYWxmU2NvcmluZyIsInBvaW50TGFiZWxzIiwiZGVzY3JpcHRpb24iLCJzdGFuZGFyZHMiLCJzY2FsZXMiLCJzY29yZVBvaW50c0xhYmVscyIsInRyYWl0TGFiZWwiLCJ0cmFpdHMiLCJuYW1lIiwic2NvcmVQb2ludHNEZXNjcmlwdG9ycyIsImRlc2NyaWJlIiwiRGVmIiwiZWwiLCJjb21wbGV4UnVicmljIiwiYmVmb3JlQWxsIiwicmVxdWlyZSIsImJlZm9yZUVhY2giLCJjb25uZWN0ZWRDYWxsYmFjayIsIkhUTUxFbGVtZW50IiwicXVlcnlTZWxlY3RvciIsInMiLCJ0YWdOYW1lIiwibW9kZWwiLCJpdCIsImV4cGVjdCIsIl9tb2RlbCIsInRvRXF1YWwiLCJfdHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBQSxJQUFJLENBQUNDLElBQUwsQ0FBVSxxQkFBVixFQUFpQztBQUFBLFNBQU1ELElBQUksQ0FBQ0UsRUFBTCxFQUFOO0FBQUEsQ0FBakM7QUFDQUYsSUFBSSxDQUFDQyxJQUFMLENBQVUsaUNBQVYsRUFBNkM7QUFBQSxTQUFNRCxJQUFJLENBQUNFLEVBQUwsRUFBTjtBQUFBLENBQTdDO0FBQ0FGLElBQUksQ0FBQ0MsSUFBTCxDQUFVLDZCQUFWLEVBQXlDO0FBQUEsU0FBTztBQUM5Q0UsSUFBQUEsWUFBWSxFQUFFO0FBQ1pDLE1BQUFBLGFBQWEsRUFBRSxjQURIO0FBRVpDLE1B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QkFBckI7QUFDRDtBQUNGLEtBTmtCLENBQW5CO0FBT0FjLElBQUFBLEVBQUUsQ0FBQ1MsT0FBSCxHQUFhLHdCQUFiO0FBQ0FULElBQUFBLEVBQUUsQ0FBQ1UsS0FBSCxHQUFXaEMsWUFBWDtBQUNELEdBaEJTLENBQVY7QUFrQkFvQixFQUFBQSxRQUFRLENBQUMsT0FBRCxFQUFVLFlBQU07QUFDdEJhLElBQUFBLEVBQUUsQ0FBQywyQkFBRCxFQUE4QixZQUFNO0FBQ3BDQyxNQUFBQSxNQUFNLENBQUNaLEVBQUUsQ0FBQ2EsTUFBSixDQUFOLENBQWtCQyxPQUFsQixDQUEwQnBDLFlBQTFCO0FBQ0QsS0FGQyxDQUFGO0FBSUFpQyxJQUFBQSxFQUFFLENBQUMsa0JBQUQsRUFBcUIsWUFBTTtBQUMzQkMsTUFBQUEsTUFBTSxDQUFDWixFQUFFLENBQUNlLEtBQUosQ0FBTixDQUFpQkQsT0FBakIsQ0FBeUIsY0FBekI7QUFDQWQsTUFBQUEsRUFBRSxDQUFDVSxLQUFILG1DQUFnQlYsRUFBRSxDQUFDYSxNQUFuQjtBQUEyQmxDLFFBQUFBLFVBQVUsRUFBRTtBQUF2QztBQUNBaUMsTUFBQUEsTUFBTSxDQUFDWixFQUFFLENBQUNlLEtBQUosQ0FBTixDQUFpQkQsT0FBakIsQ0FBeUIsa0JBQXpCO0FBQ0QsS0FKQyxDQUFGO0FBS0QsR0FWTyxDQUFSO0FBV0QsQ0F0Q08sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImplc3QubW9jaygnQHBpZS1lbGVtZW50L3J1YnJpYycsICgpID0+IGplc3QuZm4oKSk7XG5qZXN0Lm1vY2soJ0BwaWUtZWxlbWVudC9tdWx0aS10cmFpdC1ydWJyaWMnLCAoKSA9PiBqZXN0LmZuKCkpO1xuamVzdC5tb2NrKCdAcGllLWxpYi9waWUtdG9vbGJveC9ydWJyaWMnLCAoKSA9PiAoe1xuICBSVUJSSUNfVFlQRVM6IHtcbiAgICBTSU1QTEVfUlVCUklDOiAnc2ltcGxlUnVicmljJyxcbiAgICBNVUxUSV9UUkFJVF9SVUJSSUM6ICdtdWx0aVRyYWl0UnVicmljJyxcbiAgfSxcbn0pKTtcblxuY29uc3QgZGVmYXVsdE1vZGVsID0ge1xuICBydWJyaWNUeXBlOiAnc2ltcGxlUnVicmljJyxcbiAgcnVicmljczoge1xuICAgIHNpbXBsZVJ1YnJpYzoge1xuICAgICAgcG9pbnRzOiBbJ25vdGhpbmcgcmlnaHQnLCAnYSB0ZWVueSBiaXQgcmlnaHQnLCAnbW9zdGx5IHJpZ2h0JywgJ2JpbmdvJ10sXG4gICAgICBzYW1wbGVBbnN3ZXJzOiBbbnVsbCwgJ2p1c3QgcmlnaHQnLCAnbm90IGxlZnQnLCBudWxsXSxcbiAgICAgIG1heFBvaW50czogNCxcbiAgICAgIGV4Y2x1ZGVaZXJvOiBmYWxzZSxcbiAgICB9LFxuICAgIG11bHRpVHJhaXRSdWJyaWM6IHtcbiAgICAgIHZpc2libGVUb1N0dWRlbnQ6IHRydWUsXG4gICAgICBoYWxmU2NvcmluZzogZmFsc2UsXG4gICAgICBleGNsdWRlWmVybzogdHJ1ZSxcbiAgICAgIHBvaW50TGFiZWxzOiB0cnVlLFxuICAgICAgZGVzY3JpcHRpb246IGZhbHNlLFxuICAgICAgc3RhbmRhcmRzOiBmYWxzZSxcbiAgICAgIHNjYWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgbWF4UG9pbnRzOiA0LFxuICAgICAgICAgIHNjb3JlUG9pbnRzTGFiZWxzOiBbJ05vbi1TY29yYWJsZScsICdEZXZlbG9waW5nJywgJ1Byb2dyZXNzaW5nJywgJ0VmZmVjdGl2ZScsICdTdHJvbmcnXSxcbiAgICAgICAgICB0cmFpdExhYmVsOiAnVHJhaXQnLFxuICAgICAgICAgIHRyYWl0czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnSWRlYXMnLFxuICAgICAgICAgICAgICBzdGFuZGFyZHM6IFtdLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ3RoZSBtYWluIG1lc3NhZ2UnLFxuICAgICAgICAgICAgICBzY29yZVBvaW50c0Rlc2NyaXB0b3JzOiBbXG4gICAgICAgICAgICAgICAgJ1N0dWRlbnTigJlzIHJlc3BvbnNlIGlzIGJsYW5rLCBub3QgaW4gRW5nbGlzaCwgbm90IGxlZ2libGUsIG9yIGRvZXMgbm90IHJlc3BvbmQgdG8gdGhlIHByb21wdC4nLFxuICAgICAgICAgICAgICAgICdUb3BpYyB1bmRlZmluZWQgYW5kL29yIGRpZmZpY3VsdCB0byBmb2xsb3dcXG4nICsgJ1xcbicgKyAnRGV0YWlscyBhcmUgdW5jbGVhcicsXG4gICAgICAgICAgICAgICAgJ1RvcGljIHRvbyBicm9hZFxcbicgKyAnXFxuJyArICdEZXRhaWxzIGFyZSBsaW1pdGVkJyxcbiAgICAgICAgICAgICAgICAnV3JpdGluZyBzdGF5cyBvbiB0b3BpY1xcbicgKyAnXFxuJyArICdDb21wbGV0ZSBkZXRhaWxzIGdpdmVuJyxcbiAgICAgICAgICAgICAgICAnU3Ryb25nIGNvbnRyb2wgb2YgdG9waWNcXG4nICsgJ1xcbicgKyAnUmVsZXZhbnQsIGFjY3VyYXRlLCBzcGVjaWZpYyBkZXRhaWxzIHRoYXQgc3VwcG9ydCB0b3BpYycsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnT3JnYW5pemF0aW9uJyxcbiAgICAgICAgICAgICAgc3RhbmRhcmRzOiBbXSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICd0aGUgaW50ZXJuYWwgc3RydWN0dXJlIG9mIHRoZSBwaWVjZScsXG4gICAgICAgICAgICAgIHNjb3JlUG9pbnRzRGVzY3JpcHRvcnM6IFtcbiAgICAgICAgICAgICAgICAnU3R1ZGVudOKAmXMgcmVzcG9uc2UgaXMgYmxhbmssIG5vdCBpbiBFbmdsaXNoLCBub3QgbGVnaWJsZSwgb3IgZG9lcyBub3QgcmVzcG9uZCB0byB0aGUgcHJvbXB0LicsXG4gICAgICAgICAgICAgICAgJ0RvZXMgbm90IGhhdmUgYSBiZWdpbm5pbmcsIG1pZGRsZSBhbmQvb3IgZW5kXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnRG9lcyBub3QgaGF2ZSBhIGxlYWQgYW5kL29yIGNvbmNsdXNpb25cXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdUcmFuc2l0aW9ucyBjb25mdXNpbmcgYW5kL29yIG5vdCBwcmVzZW50XFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnTm90IHdyaXR0ZW4gaW4gbG9naWNhbCBvcmRlclxcbicgK1xuICAgICAgICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgICAgICAgJ05vIHNpZ24gb2YgcGFyYWdyYXBoaW5nIC8gaW5jb3JyZWN0IHBhcmFncmFwaGluZycsXG4gICAgICAgICAgICAgICAgJ1dlYWsgYmVnaW5uaW5nLCBtaWRkbGUgYW5kIGVuZFxcbicgK1xuICAgICAgICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgICAgICAgJ0hhcyBldmlkZW5jZSBvZiBhIGxlYWQgYW5kL29yIGNvbmNsdXNpb24gYnV0IG1pc3NpbmcgZWxlbWVudHNcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdUcmFuc2l0aW9ucyBhcmUgdXNlZCBzb21ldGltZXNcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdTb21lIGxvZ2ljYWwgb3JkZXJcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdNb3N0IHBhcmFncmFwaGluZyBpbmNvcnJlY3QnLFxuICAgICAgICAgICAgICAgICdIYXMgYW4gYWNjZXB0YWJsZSBiZWdpbm5pbmcsIG1pZGRsZSBhbmQgZW5kXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnSW5jbHVkZXMgYSBsZWFkIGFuZCBjb25jbHVzaW9uXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnVHJhbnNpdGlvbnMgYXJlIHVzZWQgY29ycmVjdGx5XFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnTW9zdGx5IGxvZ2ljYWwgb3JkZXJcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdNb3N0bHkgY29ycmVjdCBwYXJhZ3JhcGhpbmcnLFxuICAgICAgICAgICAgICAgICdIYXMgYW4gZWZmZWN0aXZlIGJlZ2lubmluZywgbWlkZGxlIGFuZCBlbmRcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdQb3dlcmZ1bCBpbnRyb2R1Y3Rpb24gLyBsZWFkIGFuZCBjb25jbHVzaW9uXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnRWZmZWN0aXZlIHRyYW5zaXRpb25zXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnTG9naWNhbCBvcmRlciAvIHNlcXVlbmNpbmdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdVc2VzIGFwcHJvcHJpYXRlIHBhcmFncmFwaGluZycsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnV29yZCBDaG9pY2UnLFxuICAgICAgICAgICAgICBzdGFuZGFyZHM6IFtdLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ3RoZSB2b2NhYnVsYXJ5IGEgd3JpdGVyIGNob29zZXMgdG8gY29udmV5IG1lYW5pbmcnLFxuICAgICAgICAgICAgICBzY29yZVBvaW50c0Rlc2NyaXB0b3JzOiBbXG4gICAgICAgICAgICAgICAgJ1N0dWRlbnTigJlzIHJlc3BvbnNlIGlzIGJsYW5rLCBub3QgaW4gRW5nbGlzaCwgbm90IGxlZ2libGUsIG9yIGRvZXMgbm90IHJlc3BvbmQgdG8gdGhlIHByb21wdC4nLFxuICAgICAgICAgICAgICAgICdWb2NhYnVsYXJ5IGlzIGxpbWl0ZWQvdXNlZCBpbmNvcnJlY3RseVxcbicgK1xuICAgICAgICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgICAgICAgJ05vIGZpZ3VyYXRpdmUgbGFuZ3VhZ2U7IHdvcmRzIGRvIG5vdCBjb252ZXkgbWVhbmluZycsXG4gICAgICAgICAgICAgICAgJ0dlbmVyYWxseSBjb3JyZWN0IHdvcmRzXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnQXR0ZW1wdCBhdCBmaWd1cmF0aXZlIGxhbmd1YWdlXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnYW5kL29yIHdvcmRzIGNvbnZleSBnZW5lcmFsIG1lYW5pbmcnLFxuICAgICAgICAgICAgICAgICdTb21lIGFjdGl2ZSB2ZXJicyBhbmQgcHJlY2lzZSBub3Vuc1xcbicgK1xuICAgICAgICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgICAgICAgJ0VmZmVjdGl2ZSB1c2Ugb2YgZmlndXJhdGl2ZSBsYW5ndWFnZSBhbmQvb3Igd29yZHMgdGhhdCBlbmhhbmNlIG1lYW5pbmcnLFxuICAgICAgICAgICAgICAgICdQb3dlcmZ1bCBhbmQgZW5nYWdpbmcgd29yZHNcXG4nICsgJ1xcbicgKyAnQXJ0ZnVsIHVzZSBvZiBmaWd1cmF0aXZlIGxhbmd1YWdlIGFuZC9vciBzZW5zb3J5IGRldGFpbCcsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnU2VudGVuY2UgRmx1ZW5jeScsXG4gICAgICAgICAgICAgIHN0YW5kYXJkczogW10sXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAndGhlIHJoeXRobSBhbmQgZmxvdyBvZiB0aGUgbGFuZ3VhZ2UnLFxuICAgICAgICAgICAgICBzY29yZVBvaW50c0Rlc2NyaXB0b3JzOiBbXG4gICAgICAgICAgICAgICAgJ1N0dWRlbnTigJlzIHJlc3BvbnNlIGlzIGJsYW5rLCBub3QgaW4gRW5nbGlzaCwgbm90IGxlZ2libGUsIG9yIGRvZXMgbm90IHJlc3BvbmQgdG8gdGhlIHByb21wdC4nLFxuICAgICAgICAgICAgICAgICdObyBzZW50ZW5jZXMgYXJlIGNsZWFyXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnTm8gdmFyaWV0eSBpbiBzZW50ZW5jZSBzdHJ1Y3R1cmVcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdGcmVxdWVudCBydW4tb25zIGFuZC9vciBmcmFnbWVudHMgYXJlIHByZXNlbnQnLFxuICAgICAgICAgICAgICAgICdTb21lIHNlbnRlbmNlcyBhcmUgY2xlYXJcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdTZW50ZW5jZSB2YXJpZXR5IHVzZWQgcmFyZWx5XFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnU29tZSBydW4tb25zIGFuZC9vciBmcmFnbWVudHMgYXJlIHByZXNlbnQnLFxuICAgICAgICAgICAgICAgICdNb3N0IHNlbnRlbmNlcyBhcmUgY2xlYXJcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdTb21lIHNlbnRlbmNlIHZhcmlldHkgaXMgdXNlZFxcbicgK1xuICAgICAgICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgICAgICAgJ1J1bi1vbnMgYW5kL29yIGZyYWdtZW50cyBhcmUgcmFyZScsXG4gICAgICAgICAgICAgICAgJ0FsbCBTZW50ZW5jZXMgYXJlIGNsZWFyXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnVmFyaWV0eSBvZiBzZW50ZW5jZSBzdHJ1Y3R1cmUgaXMgdXNlZFxcbicgK1xuICAgICAgICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgICAgICAgJ1J1bi1vbnMgYW5kL29yIGZyYWdtZW50cyBhcmUgbm90IHByZXNlbnQnLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ0NvbnZlbnRpb25zJyxcbiAgICAgICAgICAgICAgc3RhbmRhcmRzOiBbXSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICd0aGUgbWVjaGFuaWNhbCBjb3JyZWN0bmVzcycsXG4gICAgICAgICAgICAgIHNjb3JlUG9pbnRzRGVzY3JpcHRvcnM6IFtcbiAgICAgICAgICAgICAgICAnU3R1ZGVudOKAmXMgcmVzcG9uc2UgaXMgYmxhbmssIG5vdCBpbiBFbmdsaXNoLCBub3QgbGVnaWJsZSwgb3IgZG9lcyBub3QgcmVzcG9uZCB0byB0aGUgcHJvbXB0LicsXG4gICAgICAgICAgICAgICAgJ01hbnkgZGlzdHJhY3RpbmcgZXJyb3JzIGFyZSBwcmVzZW50IGluIGdyYW1tYXIsIHB1bmN0dWF0aW9uLCBjYXBpdGFsaXphdGlvbiBhbmQvb3Igc3BlbGxpbmcnLFxuICAgICAgICAgICAgICAgICdFcnJvcnMgaW4gZ3JhbW1hciwgcHVuY3R1YXRpb24sIGNhcGl0YWxpemF0aW9uIGFuZC9vciBzcGVsbGluZyBhcmUgcHJlc2VudCBhbmQgc29tZSBkaXN0cmFjdCBmcm9tIG1lYW5pbmcnLFxuICAgICAgICAgICAgICAgICdFcnJvcnMgaW4gZ3JhbW1hciwgcHVuY3R1YXRpb24sIGNhcGl0YWxpemF0aW9uIGFuZC9vciBzcGVsbGluZyBhcmUgcHJlc2VudCBidXQgZG9u4oCZdCBkaXN0cmFjdCBmcm9tIG1lYW5pbmcnLFxuICAgICAgICAgICAgICAgICdGZXcgZXJyb3JzIGluIGdyYW1tYXIsIHB1bmN0dWF0aW9uLFxcbicgKyAnXFxuJyArICdjYXBpdGFsaXphdGlvbiBhbmQvb3Igc3BlbGxpbmcnLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ1ZvaWNlJyxcbiAgICAgICAgICAgICAgc3RhbmRhcmRzOiBbXSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwidGhlIHBlcnNvbmFsIHRvbmUgYW5kIGZsYXZvciBvZiB0aGUgYXV0aG9yJ3MgbWVzc2FnZVwiLFxuICAgICAgICAgICAgICBzY29yZVBvaW50c0Rlc2NyaXB0b3JzOiBbXG4gICAgICAgICAgICAgICAgJ1N0dWRlbnTigJlzIHJlc3BvbnNlIGlzIGJsYW5rLCBub3QgaW4gRW5nbGlzaCwgbm90IGxlZ2libGUsIG9yIGRvZXMgbm90IHJlc3BvbmQgdG8gdGhlIHByb21wdC4nLFxuICAgICAgICAgICAgICAgICdOb3QgY29uY2VybmVkIHdpdGggYXVkaWVuY2Ugb3IgcHVycG9zZVxcbicgK1xuICAgICAgICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgICAgICAgJ05vIHZpZXdwb2ludCAocGVyc3BlY3RpdmUpIHVzZWRcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdXcml0aW5nIGlzIG1lY2hhbmljYWwgYW5kIGxpZmVsZXNzJyxcbiAgICAgICAgICAgICAgICAnU2hvd3MgYmVnaW5uaW5nIGF3YXJlbmVzcyBvZiBhdWRpZW5jZS9wdXJwb3NlXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnU29tZSB2aWV3cG9pbnQgKHBlcnNwZWN0aXZlKSB1c2VkIHRocm91Z2hvdXQgdGhlIHBpZWNlXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnV3JpdGluZyBpcyBkaXN0YW50LCB0b28gZm9ybWFsIG9yIGluZm9ybWFsJyxcbiAgICAgICAgICAgICAgICAnQXdhcmVuZXNzIG9mIGF1ZGllbmNlOyBwdXJwb3NlIGlzIGNsZWFyIG1vc3Qgb2YgdGhlIHRpbWVcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdVc2VzIHZpZXdwb2ludCAocGVyc3BlY3RpdmUpIHRocm91Z2hvdXQgbW9zdCBvZiB0aGUgcGFwZXJcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdXcml0aW5nIGlzIHBsZWFzYW50LCBhZ3JlZWFibGUgYW5kIHNhdGlzZnlpbmcnLFxuICAgICAgICAgICAgICAgICdQb3dlcmZ1bCBjb25uZWN0aW9uIHdpdGggYXVkaWVuY2U7IHB1cnBvc2UgaXMgY2xlYXJseSBjb21tdW5pY2F0ZWRcXG4nICtcbiAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICdNYWludGFpbnMgc3Ryb25nIHZpZXdwb2ludCAocGVyc3BlY3RpdmUpIHRocm91Z2hvdXQgZW50aXJlIHBpZWNlXFxuJyArXG4gICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAnV3JpdGluZyBpcyBleHByZXNzaXZlLCBlbmdhZ2luZyBhbmQgaGFzIGxvdHMgb2YgZW5lcmd5JyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1heFBvaW50czogNSxcbiAgICAgICAgICBzY29yZVBvaW50c0xhYmVsczogWydOb24tU2NvcmFibGUnLCAnVW5zYXRpc2ZhY3RvcnknLCAnU2F0aXNmYWN0b3J5J10sXG4gICAgICAgICAgdHJhaXRMYWJlbDogJ0NhdGVnb3J5JyxcbiAgICAgICAgICB0cmFpdHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ1ByZXNlbnRhdGlvbicsXG4gICAgICAgICAgICAgIHN0YW5kYXJkczogW10sXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICAgICAgc2NvcmVQb2ludHNEZXNjcmlwdG9yczogW1xuICAgICAgICAgICAgICAgICdIYW5kd3JpdGluZyBpcyB1bnJlYWRhYmxlLCBvciByZXNwb25zZSBpcyBibGFuaywgbm90IGluIEVuZ2xpc2gsIG9yIHRvbyBicmllZiB0byBldmFsdWF0ZS4gJyxcbiAgICAgICAgICAgICAgICAnSGFuZHdyaXRpbmcgcG9vclxcbicgKyAnXFxuJyArICdPdmVyYWxsIGFwcGVhcmFuY2UgaXMgZGlzdHJhY3RpbmcgdG8gdW5hY2NlcHRhYmxlJyxcbiAgICAgICAgICAgICAgICAnSGFuZHdyaXRpbmcgaXMgZ2VuZXJhbGx5IGxlZ2libGVcXG4nICsgJ1xcbicgKyAnT3ZlcmFsbCBhcHBlYXJhbmNlIGlzIGFjY2VwdGFibGUgb3IgYmV0dGVyJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbn07XG5cbmRlc2NyaWJlKCdjb21wbGV4LXJ1YnJpYycsICgpID0+IHtcbiAgbGV0IERlZjtcbiAgbGV0IGVsO1xuICBsZXQgY29tcGxleFJ1YnJpYztcblxuICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgIERlZiA9IHJlcXVpcmUoJy4uL2luZGV4JykuZGVmYXVsdDtcbiAgfSk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgZWwgPSBuZXcgRGVmKCk7XG4gICAgZWwuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjb21wbGV4UnVicmljID0ge1xuICAgICAgc2ltcGxlUnVicmljOiBuZXcgSFRNTEVsZW1lbnQoKSxcbiAgICAgIG11bHRpVHJhaXRSdWJyaWM6IG5ldyBIVE1MRWxlbWVudCgpLFxuICAgIH07XG4gICAgZWwucXVlcnlTZWxlY3RvciA9IGplc3QuZm4oKHMpID0+IHtcbiAgICAgIGlmIChzID09PSAnI3NpbXBsZVJ1YnJpYycpIHtcbiAgICAgICAgcmV0dXJuIGNvbXBsZXhSdWJyaWMuc2ltcGxlUnVicmljO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNvbXBsZXhSdWJyaWMubXVsdGlUcmFpdFJ1YnJpYztcbiAgICAgIH1cbiAgICB9KTtcbiAgICBlbC50YWdOYW1lID0gJ2NvbXBsZXgtcnVicmljLWVsZW1lbnQnO1xuICAgIGVsLm1vZGVsID0gZGVmYXVsdE1vZGVsO1xuICB9KTtcblxuICBkZXNjcmliZSgnbW9kZWwnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBoYXZlIHNldCB0aGUgbW9kZWwnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoZWwuX21vZGVsKS50b0VxdWFsKGRlZmF1bHRNb2RlbCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2V0cyBydWJyaWMgdHlwZScsICgpID0+IHtcbiAgICAgIGV4cGVjdChlbC5fdHlwZSkudG9FcXVhbCgnc2ltcGxlUnVicmljJyk7XG4gICAgICBlbC5tb2RlbCA9IHsgLi4uZWwuX21vZGVsLCBydWJyaWNUeXBlOiAnbXVsdGlUcmFpdFJ1YnJpYycgfTtcbiAgICAgIGV4cGVjdChlbC5fdHlwZSkudG9FcXVhbCgnbXVsdGlUcmFpdFJ1YnJpYycpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19