@pie-element/complex-rubric 2.0.2-next.13 → 2.0.2-next.15

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 (96) hide show
  1. package/configure/node_modules/@pie-element/multi-trait-rubric/CHANGELOG.json +1 -0
  2. package/configure/node_modules/@pie-element/multi-trait-rubric/CHANGELOG.md +978 -0
  3. package/configure/node_modules/@pie-element/multi-trait-rubric/LICENSE.md +5 -0
  4. package/configure/node_modules/@pie-element/multi-trait-rubric/README.md +55 -0
  5. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/CHANGELOG.json +1 -0
  6. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/CHANGELOG.md +869 -0
  7. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/common.js +502 -0
  8. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/common.js.map +1 -0
  9. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/defaults.js +98 -0
  10. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/defaults.js.map +1 -0
  11. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/index.js +126 -0
  12. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/index.js.map +1 -0
  13. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/main.js +553 -0
  14. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/main.js.map +1 -0
  15. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/modals.js +361 -0
  16. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/modals.js.map +1 -0
  17. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/scale.js +552 -0
  18. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/scale.js.map +1 -0
  19. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/trait.js +371 -0
  20. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/trait.js.map +1 -0
  21. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/traitsHeader.js +270 -0
  22. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/traitsHeader.js.map +1 -0
  23. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/utils.js +29 -0
  24. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/utils.js.map +1 -0
  25. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/package.json +18 -0
  26. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/CHANGELOG.json +1 -0
  27. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/CHANGELOG.md +210 -0
  28. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/defaults.js +94 -0
  29. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/defaults.js.map +1 -0
  30. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/index.js +161 -0
  31. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/index.js.map +1 -0
  32. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/utils.js +13 -0
  33. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/utils.js.map +1 -0
  34. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/package.json +15 -0
  35. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/config-schema.json +272 -0
  36. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/config-schema.json.md +206 -0
  37. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/config.js +8 -0
  38. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/generate.js +180 -0
  39. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/index.html +1 -0
  40. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/session.js +6 -0
  41. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/pie-schema.json +298 -0
  42. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/pie-schema.json.md +201 -0
  43. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/index.js +85 -0
  44. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/index.js.map +1 -0
  45. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/main.js +161 -0
  46. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/main.js.map +1 -0
  47. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/scale.js +330 -0
  48. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/scale.js.map +1 -0
  49. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/trait.js +103 -0
  50. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/trait.js.map +1 -0
  51. package/configure/node_modules/@pie-element/multi-trait-rubric/package.json +24 -0
  52. package/configure/node_modules/@pie-element/rubric/CHANGELOG.json +257 -0
  53. package/configure/node_modules/@pie-element/rubric/CHANGELOG.md +1248 -0
  54. package/configure/node_modules/@pie-element/rubric/LICENSE.md +5 -0
  55. package/configure/node_modules/@pie-element/rubric/README.md +3 -0
  56. package/configure/node_modules/@pie-element/rubric/configure/CHANGELOG.json +197 -0
  57. package/configure/node_modules/@pie-element/rubric/configure/CHANGELOG.md +1088 -0
  58. package/configure/node_modules/@pie-element/rubric/configure/lib/defaults.js +34 -0
  59. package/configure/node_modules/@pie-element/rubric/configure/lib/defaults.js.map +1 -0
  60. package/configure/node_modules/@pie-element/rubric/configure/lib/index.js +130 -0
  61. package/configure/node_modules/@pie-element/rubric/configure/lib/index.js.map +1 -0
  62. package/configure/node_modules/@pie-element/rubric/configure/lib/main.js +108 -0
  63. package/configure/node_modules/@pie-element/rubric/configure/lib/main.js.map +1 -0
  64. package/configure/node_modules/@pie-element/rubric/configure/package.json +17 -0
  65. package/configure/node_modules/@pie-element/rubric/configure/src/defaults.js +26 -0
  66. package/configure/node_modules/@pie-element/rubric/configure/src/index.js +64 -0
  67. package/configure/node_modules/@pie-element/rubric/configure/src/main.jsx +56 -0
  68. package/configure/node_modules/@pie-element/rubric/controller/CHANGELOG.json +17 -0
  69. package/configure/node_modules/@pie-element/rubric/controller/CHANGELOG.md +192 -0
  70. package/configure/node_modules/@pie-element/rubric/controller/lib/index.js +14 -0
  71. package/configure/node_modules/@pie-element/rubric/controller/lib/index.js.map +1 -0
  72. package/configure/node_modules/@pie-element/rubric/controller/package.json +13 -0
  73. package/configure/node_modules/@pie-element/rubric/controller/src/__tests__/index.test.js +31 -0
  74. package/configure/node_modules/@pie-element/rubric/controller/src/index.js +6 -0
  75. package/configure/node_modules/@pie-element/rubric/docs/config-schema.json +160 -0
  76. package/configure/node_modules/@pie-element/rubric/docs/config-schema.json.md +127 -0
  77. package/configure/node_modules/@pie-element/rubric/docs/demo/config.js +8 -0
  78. package/configure/node_modules/@pie-element/rubric/docs/demo/generate.js +8 -0
  79. package/configure/node_modules/@pie-element/rubric/docs/demo/index.html +2 -0
  80. package/configure/node_modules/@pie-element/rubric/docs/pie-schema.json +96 -0
  81. package/configure/node_modules/@pie-element/rubric/docs/pie-schema.json.md +65 -0
  82. package/configure/node_modules/@pie-element/rubric/lib/index.js +88 -0
  83. package/configure/node_modules/@pie-element/rubric/lib/index.js.map +1 -0
  84. package/configure/node_modules/@pie-element/rubric/lib/main.js +188 -0
  85. package/configure/node_modules/@pie-element/rubric/lib/main.js.map +1 -0
  86. package/configure/node_modules/@pie-element/rubric/lib/print.js +114 -0
  87. package/configure/node_modules/@pie-element/rubric/lib/print.js.map +1 -0
  88. package/configure/node_modules/@pie-element/rubric/package.json +26 -0
  89. package/configure/node_modules/@pie-element/rubric/src/__tests__/__snapshots__/rubric-view.test.jsx.snap +23003 -0
  90. package/configure/node_modules/@pie-element/rubric/src/__tests__/rubric-view.test.jsx +46 -0
  91. package/configure/node_modules/@pie-element/rubric/src/index.js +34 -0
  92. package/configure/node_modules/@pie-element/rubric/src/main.jsx +136 -0
  93. package/configure/node_modules/@pie-element/rubric/src/print.js +63 -0
  94. package/configure/package.json +2 -2
  95. package/controller/package.json +1 -1
  96. package/package.json +4 -4
@@ -0,0 +1,330 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _react = _interopRequireDefault(require("react"));
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _styles = require("@material-ui/core/styles");
31
+
32
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
33
+
34
+ var _trait = _interopRequireDefault(require("./trait"));
35
+
36
+ var _ArrowBackIos = _interopRequireDefault(require("@material-ui/icons/ArrowBackIos"));
37
+
38
+ var _ArrowForwardIos = _interopRequireDefault(require("@material-ui/icons/ArrowForwardIos"));
39
+
40
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
+
42
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
+
44
+ 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; }
45
+
46
+ 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; }
47
+
48
+ var styles = function styles(theme) {
49
+ return {
50
+ wrapper: {
51
+ display: 'flex',
52
+ position: 'relative'
53
+ },
54
+ tableWrapper: {
55
+ width: '100%',
56
+ overflow: 'auto'
57
+ },
58
+ table: {
59
+ borderSpacing: 0,
60
+ marginBottom: theme.spacing.unit * 2,
61
+ borderRadius: '4px',
62
+ color: _renderUi.color.text(),
63
+ fontSize: theme.typography.fontSize,
64
+ lineHeight: '16px',
65
+ overflow: 'unset',
66
+ '& ul, ol': {
67
+ marginBlockStart: 0,
68
+ paddingInlineStart: theme.spacing.unit * 2
69
+ },
70
+ '& th': {
71
+ padding: theme.spacing.unit * 2,
72
+ textAlign: 'left',
73
+ backgroundColor: _renderUi.color.secondaryBackground(),
74
+ verticalAlign: 'bottom'
75
+ },
76
+ '& th div': {
77
+ width: '200px'
78
+ },
79
+ '& td': {
80
+ width: '200px',
81
+ padding: "".concat(theme.spacing.unit * 2, "px ").concat(theme.spacing.unit, "px"),
82
+ verticalAlign: 'top'
83
+ }
84
+ },
85
+ scorePointHeader: {
86
+ '& td': {
87
+ border: 0,
88
+ padding: 0,
89
+ textAlign: 'center',
90
+ minWidth: '200px'
91
+ }
92
+ },
93
+ pointLabel: {
94
+ marginBottom: '4px'
95
+ },
96
+ scorePointValue: {
97
+ fontWeight: 'normal'
98
+ }
99
+ };
100
+ };
101
+
102
+ var ArrowContainer = function ArrowContainer(_ref) {
103
+ var show = _ref.show,
104
+ onClick = _ref.onClick,
105
+ extraStyles = _ref.extraStyles,
106
+ children = _ref.children;
107
+ return /*#__PURE__*/_react["default"].createElement("div", {
108
+ style: _objectSpread({
109
+ height: 'calc(100% - 1px)',
110
+ top: '1px',
111
+ display: show ? 'flex' : 'none',
112
+ width: '50px',
113
+ margin: 'auto',
114
+ position: 'absolute',
115
+ alignItems: 'center',
116
+ justifyContent: 'center',
117
+ cursor: 'pointer'
118
+ }, extraStyles),
119
+ onClick: onClick
120
+ }, children);
121
+ };
122
+
123
+ ArrowContainer.propTypes = {
124
+ show: _propTypes["default"].bool,
125
+ onClick: _propTypes["default"].func,
126
+ extraStyles: _propTypes["default"].object,
127
+ children: _propTypes["default"].object
128
+ };
129
+
130
+ var Scale = /*#__PURE__*/function (_React$Component) {
131
+ (0, _inherits2["default"])(Scale, _React$Component);
132
+
133
+ var _super = _createSuper(Scale);
134
+
135
+ function Scale() {
136
+ var _this;
137
+
138
+ (0, _classCallCheck2["default"])(this, Scale);
139
+
140
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
141
+ args[_key] = arguments[_key];
142
+ }
143
+
144
+ _this = _super.call.apply(_super, [this].concat(args));
145
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {});
146
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "scrollLeft", function () {
147
+ _this.tableWrapper.scrollLeft -= _this.tableWrapper.offsetWidth / 2;
148
+
149
+ _this.setState({
150
+ showRight: _this.tableWrapper.scrollLeft < _this.tableWrapper.scrollWidth,
151
+ showLeft: _this.tableWrapper.scrollLeft < _this.tableWrapper.scrollWidth && _this.tableWrapper.scrollLeft > 0
152
+ });
153
+ });
154
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "scrollRight", function () {
155
+ var initialScrollLeft = _this.tableWrapper.scrollLeft;
156
+ _this.tableWrapper.scrollLeft += _this.tableWrapper.offsetWidth / 2;
157
+
158
+ _this.setState({
159
+ showRight: initialScrollLeft !== _this.tableWrapper.scrollLeft && _this.tableWrapper.scrollLeft < _this.tableWrapper.scrollWidth,
160
+ showLeft: _this.tableWrapper.scrollLeft < _this.tableWrapper.scrollWidth && _this.tableWrapper.scrollLeft > 0
161
+ });
162
+ });
163
+ return _this;
164
+ }
165
+
166
+ (0, _createClass2["default"])(Scale, [{
167
+ key: "componentDidMount",
168
+ value: function componentDidMount() {
169
+ if (this.tableWrapper) {
170
+ if (this.tableWrapper.offsetWidth < this.tableWrapper.scrollWidth) {
171
+ this.setState({
172
+ showRight: true
173
+ });
174
+ }
175
+ }
176
+ }
177
+ }, {
178
+ key: "render",
179
+ value: function render() {
180
+ var _this2 = this;
181
+
182
+ var _this$state = this.state,
183
+ showRight = _this$state.showRight,
184
+ showLeft = _this$state.showLeft;
185
+ var _this$props = this.props,
186
+ classes = _this$props.classes,
187
+ scale = _this$props.scale,
188
+ scaleIndex = _this$props.scaleIndex,
189
+ showDescription = _this$props.showDescription,
190
+ showPointsLabels = _this$props.showPointsLabels,
191
+ showStandards = _this$props.showStandards,
192
+ arrowsDisabled = _this$props.arrowsDisabled;
193
+
194
+ var _ref2 = scale || {},
195
+ excludeZero = _ref2.excludeZero,
196
+ maxPoints = _ref2.maxPoints,
197
+ traitLabel = _ref2.traitLabel,
198
+ traits = _ref2.traits,
199
+ scorePointsLabels = _ref2.scorePointsLabels;
200
+
201
+ var scorePointsValues = [];
202
+ var descriptions;
203
+ var pointsLabels;
204
+ var standards;
205
+
206
+ try {
207
+ // determining the score points values
208
+ for (var pointValue = maxPoints; pointValue >= excludeZero ? 1 : 0; pointValue -= 1) {
209
+ scorePointsValues.push(pointValue);
210
+ }
211
+
212
+ var _traits$reduce = traits.reduce(function (tcc, trait) {
213
+ return {
214
+ traitStandards: [].concat((0, _toConsumableArray2["default"])(tcc.traitStandards), (0, _toConsumableArray2["default"])(trait.standards || [])),
215
+ traitDescriptions: [].concat((0, _toConsumableArray2["default"])(tcc.traitDescriptions), (0, _toConsumableArray2["default"])(trait.description || []))
216
+ };
217
+ }, {
218
+ traitStandards: [],
219
+ traitDescriptions: []
220
+ }),
221
+ traitStandards = _traits$reduce.traitStandards,
222
+ traitDescriptions = _traits$reduce.traitDescriptions;
223
+
224
+ descriptions = showDescription && traitDescriptions.length;
225
+ pointsLabels = showPointsLabels && scorePointsLabels.length;
226
+ standards = showStandards && traitStandards.length;
227
+ } catch (e) {
228
+ descriptions = false;
229
+ pointsLabels = false;
230
+ standards = false;
231
+ }
232
+
233
+ return /*#__PURE__*/_react["default"].createElement("div", {
234
+ className: classes.wrapper
235
+ }, /*#__PURE__*/_react["default"].createElement(ArrowContainer, {
236
+ show: showLeft && !arrowsDisabled,
237
+ onClick: this.scrollLeft,
238
+ extraStyles: {
239
+ left: 0,
240
+ background: "linear-gradient(to right, white, ".concat(_renderUi.color.background(), ")")
241
+ }
242
+ }, /*#__PURE__*/_react["default"].createElement(_ArrowBackIos["default"], null)), /*#__PURE__*/_react["default"].createElement("div", {
243
+ className: classes.tableWrapper,
244
+ ref: function ref(_ref3) {
245
+ _this2.tableWrapper = _ref3;
246
+ },
247
+ onScroll: function onScroll() {
248
+ _this2.setState({
249
+ // 5 is a margin of error
250
+ showRight: _this2.tableWrapper.scrollLeft + _this2.tableWrapper.offsetWidth < _this2.tableWrapper.scrollWidth - 5 && _this2.tableWrapper.scrollLeft < _this2.tableWrapper.scrollWidth,
251
+ showLeft: _this2.tableWrapper.scrollLeft < _this2.tableWrapper.scrollWidth && _this2.tableWrapper.scrollLeft > 0
252
+ });
253
+ }
254
+ }, arrowsDisabled && (showRight || showLeft) ? /*#__PURE__*/_react["default"].createElement("div", null, "The item is too large to fit in print mode.") : null, /*#__PURE__*/_react["default"].createElement("table", {
255
+ key: "scale-".concat(scaleIndex),
256
+ className: classes.table
257
+ }, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, /*#__PURE__*/_react["default"].createElement("div", {
258
+ dangerouslySetInnerHTML: {
259
+ __html: traitLabel
260
+ }
261
+ })), standards ? /*#__PURE__*/_react["default"].createElement("th", null, /*#__PURE__*/_react["default"].createElement("div", null, "Standard(s)")) : null, descriptions ? /*#__PURE__*/_react["default"].createElement("th", null, /*#__PURE__*/_react["default"].createElement("div", null, "Description")) : null, scorePointsValues && scorePointsValues.map(function (scorePointValue, index) {
262
+ var pointLabel = ''; // to handle the case when there aren't enough labels
263
+
264
+ try {
265
+ pointLabel = scorePointsLabels[scorePointsValues.length - index - 1] || '';
266
+ } catch (e) {
267
+ pointLabel = '';
268
+ }
269
+
270
+ return /*#__PURE__*/_react["default"].createElement("th", {
271
+ key: "table-header-".concat(index)
272
+ }, /*#__PURE__*/_react["default"].createElement("table", {
273
+ className: classes.scorePointHeader
274
+ }, /*#__PURE__*/_react["default"].createElement("thead", null, pointsLabels ? /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("div", {
275
+ className: classes.pointLabel,
276
+ dangerouslySetInnerHTML: {
277
+ __html: pointLabel
278
+ }
279
+ }))) : null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
280
+ className: classes.scorePointValue
281
+ }, scorePointValue === 1 ? "".concat(scorePointValue, " point") : "".concat(scorePointValue, " points"))))));
282
+ }))), /*#__PURE__*/_react["default"].createElement("tbody", null, traits && traits.map(function (trait, traitIndex) {
283
+ return /*#__PURE__*/_react["default"].createElement(_trait["default"], {
284
+ key: "trait_".concat(scaleIndex, "_").concat(traitIndex),
285
+ trait: trait,
286
+ traitIndex: traitIndex,
287
+ showDescription: !!descriptions,
288
+ showStandards: !!standards,
289
+ scaleIndex: scaleIndex,
290
+ scorePointsValues: scorePointsValues,
291
+ excludeZero: excludeZero
292
+ });
293
+ })))), /*#__PURE__*/_react["default"].createElement(ArrowContainer, {
294
+ show: showRight && !arrowsDisabled,
295
+ onClick: this.scrollRight,
296
+ extraStyles: {
297
+ right: 0,
298
+ background: "linear-gradient(to left, white, ".concat(_renderUi.color.background(), ")")
299
+ }
300
+ }, /*#__PURE__*/_react["default"].createElement(_ArrowForwardIos["default"], null)));
301
+ }
302
+ }]);
303
+ return Scale;
304
+ }(_react["default"].Component);
305
+
306
+ Scale.propTypes = {
307
+ classes: _propTypes["default"].object,
308
+ scaleIndex: _propTypes["default"].number,
309
+ scale: _propTypes["default"].shape({
310
+ excludeZero: _propTypes["default"].bool,
311
+ maxPoints: _propTypes["default"].number,
312
+ scorePointsLabels: _propTypes["default"].arrayOf(_propTypes["default"].string),
313
+ traitLabel: _propTypes["default"].string,
314
+ traits: _propTypes["default"].arrayOf(_propTypes["default"].shape({
315
+ name: _propTypes["default"].string,
316
+ standards: _propTypes["default"].arrayOf(_propTypes["default"].string),
317
+ scorePointsDescriptors: _propTypes["default"].arrayOf(_propTypes["default"].string),
318
+ description: _propTypes["default"].string
319
+ }))
320
+ }),
321
+ showPointsLabels: _propTypes["default"].bool,
322
+ showDescription: _propTypes["default"].bool,
323
+ showStandards: _propTypes["default"].bool,
324
+ arrowsDisabled: _propTypes["default"].bool
325
+ };
326
+
327
+ var _default = (0, _styles.withStyles)(styles)(Scale);
328
+
329
+ exports["default"] = _default;
330
+ //# sourceMappingURL=scale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/scale.jsx"],"names":["styles","theme","wrapper","display","position","tableWrapper","width","overflow","table","borderSpacing","marginBottom","spacing","unit","borderRadius","color","text","fontSize","typography","lineHeight","marginBlockStart","paddingInlineStart","padding","textAlign","backgroundColor","secondaryBackground","verticalAlign","scorePointHeader","border","minWidth","pointLabel","scorePointValue","fontWeight","ArrowContainer","show","onClick","extraStyles","children","height","top","margin","alignItems","justifyContent","cursor","propTypes","PropTypes","bool","func","object","Scale","scrollLeft","offsetWidth","setState","showRight","scrollWidth","showLeft","initialScrollLeft","state","props","classes","scale","scaleIndex","showDescription","showPointsLabels","showStandards","arrowsDisabled","excludeZero","maxPoints","traitLabel","traits","scorePointsLabels","scorePointsValues","descriptions","pointsLabels","standards","pointValue","push","reduce","tcc","trait","traitStandards","traitDescriptions","description","length","e","left","background","ref","__html","map","index","traitIndex","scrollRight","right","React","Component","number","shape","arrayOf","string","name","scorePointsDescriptors"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport Trait from './trait';\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\n\nconst styles = (theme) => ({\n wrapper: {\n display: 'flex',\n position: 'relative'\n },\n tableWrapper: {\n width: '100%',\n overflow: 'auto'\n },\n table: {\n borderSpacing: 0,\n marginBottom: theme.spacing.unit * 2,\n borderRadius: '4px',\n color: color.text(),\n fontSize: theme.typography.fontSize,\n lineHeight: '16px',\n overflow: 'unset',\n\n '& ul, ol': {\n marginBlockStart: 0,\n paddingInlineStart: theme.spacing.unit * 2,\n },\n\n '& th': {\n padding: theme.spacing.unit * 2,\n textAlign: 'left',\n backgroundColor: color.secondaryBackground(),\n verticalAlign: 'bottom',\n },\n\n '& th div': {\n width: '200px',\n },\n\n '& td': {\n width: '200px',\n padding: `${theme.spacing.unit * 2}px ${theme.spacing.unit}px`,\n verticalAlign: 'top',\n },\n },\n scorePointHeader: {\n '& td': {\n border: 0,\n padding: 0,\n textAlign: 'center',\n minWidth: '200px',\n },\n },\n pointLabel: {\n marginBottom: '4px',\n },\n scorePointValue: {\n fontWeight: 'normal',\n },\n});\n\nconst ArrowContainer = ({ show, onClick, extraStyles, children }) => (\n <div\n style={{\n height: 'calc(100% - 1px)',\n top: '1px',\n display: show ? 'flex' : 'none',\n width: '50px',\n margin: 'auto',\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n ...extraStyles\n }}\n onClick={onClick}\n >\n {children}\n </div>\n);\n\nArrowContainer.propTypes = {\n show: PropTypes.bool,\n onClick: PropTypes.func,\n extraStyles: PropTypes.object,\n children: PropTypes.object,\n};\n\n\nclass Scale extends React.Component {\n state = {};\n\n componentDidMount() {\n if (this.tableWrapper) {\n if (this.tableWrapper.offsetWidth < this.tableWrapper.scrollWidth) {\n this.setState({ showRight: true });\n }\n }\n }\n\n scrollLeft = () => {\n this.tableWrapper.scrollLeft -= this.tableWrapper.offsetWidth / 2;\n\n this.setState({\n showRight: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth,\n showLeft: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth && this.tableWrapper.scrollLeft > 0,\n });\n }\n\n scrollRight = () => {\n const initialScrollLeft = this.tableWrapper.scrollLeft;\n this.tableWrapper.scrollLeft += this.tableWrapper.offsetWidth / 2;\n\n this.setState({\n showRight: initialScrollLeft !== this.tableWrapper.scrollLeft && this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth,\n showLeft: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth && this.tableWrapper.scrollLeft > 0,\n });\n }\n\n render() {\n const { showRight, showLeft } = this.state;\n const { classes, scale, scaleIndex, showDescription, showPointsLabels, showStandards, arrowsDisabled } = this.props;\n const { excludeZero, maxPoints, traitLabel, traits, scorePointsLabels } = scale || {};\n\n let scorePointsValues = [];\n let descriptions;\n let pointsLabels;\n let standards;\n\n try {\n // determining the score points values\n for (let pointValue = maxPoints; pointValue >= excludeZero ? 1 : 0; pointValue -= 1) {\n scorePointsValues.push(pointValue);\n }\n\n const { traitStandards, traitDescriptions } = traits.reduce(\n (tcc, trait) => ({\n traitStandards: [...tcc.traitStandards, ...(trait.standards || [])],\n traitDescriptions: [...tcc.traitDescriptions, ...(trait.description || [])],\n }),\n {\n traitStandards: [],\n traitDescriptions: [],\n },\n );\n\n descriptions = showDescription && traitDescriptions.length;\n pointsLabels = showPointsLabels && scorePointsLabels.length;\n standards = showStandards && traitStandards.length;\n } catch (e) {\n descriptions = false;\n pointsLabels = false;\n standards = false;\n }\n\n return (\n <div className={classes.wrapper}>\n <ArrowContainer\n show={showLeft && !arrowsDisabled}\n onClick={this.scrollLeft}\n extraStyles={{\n left: 0,\n background: `linear-gradient(to right, white, ${color.background()})`,\n }}\n >\n <ArrowBackIosIcon/>\n </ArrowContainer>\n\n <div\n className={classes.tableWrapper}\n ref={ref => {\n this.tableWrapper = ref;\n }}\n onScroll={() => {\n this.setState({\n // 5 is a margin of error\n showRight: this.tableWrapper.scrollLeft + this.tableWrapper.offsetWidth < this.tableWrapper.scrollWidth - 5\n && this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth,\n showLeft: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth && this.tableWrapper.scrollLeft > 0,\n });\n }}\n >\n {arrowsDisabled && (showRight || showLeft) ? <div>The item is too large to fit in print mode.</div> : null}\n <table\n key={`scale-${scaleIndex}`}\n className={classes.table}\n >\n <thead>\n <tr>\n <th>\n <div dangerouslySetInnerHTML={{ __html: traitLabel }}/>\n </th>\n\n {standards ? (\n <th>\n <div>Standard(s)</div>\n </th>\n ) : null}\n\n {descriptions ? (\n <th>\n <div>Description</div>\n </th>\n ) : null}\n\n {scorePointsValues &&\n scorePointsValues.map((scorePointValue, index) => {\n let pointLabel = '';\n\n // to handle the case when there aren't enough labels\n try {\n pointLabel = scorePointsLabels[scorePointsValues.length - index - 1] || '';\n } catch (e) {\n pointLabel = '';\n }\n\n return (\n <th key={`table-header-${index}`}>\n <table className={classes.scorePointHeader}>\n <thead>\n {pointsLabels ? (\n <tr>\n <td>\n <div className={classes.pointLabel} dangerouslySetInnerHTML={{ __html: pointLabel }}/>\n </td>\n </tr>\n ) : null}\n <tr>\n <td className={classes.scorePointValue}>\n {scorePointValue === 1 ? `${scorePointValue} point` : `${scorePointValue} points`}\n </td>\n </tr>\n </thead>\n </table>\n </th>\n );\n })}\n </tr>\n </thead>\n\n <tbody>\n {traits &&\n traits.map((trait, traitIndex) => (\n <Trait\n key={`trait_${scaleIndex}_${traitIndex}`}\n trait={trait}\n traitIndex={traitIndex}\n showDescription={!!descriptions}\n showStandards={!!standards}\n scaleIndex={scaleIndex}\n scorePointsValues={scorePointsValues}\n excludeZero={excludeZero}\n />\n ))}\n </tbody>\n </table>\n </div>\n\n <ArrowContainer\n show={showRight && !arrowsDisabled}\n onClick={this.scrollRight}\n extraStyles={{\n right: 0,\n background: `linear-gradient(to left, white, ${color.background()})`,\n }}\n >\n <ArrowForwardIosIcon/>\n </ArrowContainer>\n </div>\n );\n }\n}\n\nScale.propTypes = {\n classes: PropTypes.object,\n scaleIndex: PropTypes.number,\n scale: PropTypes.shape({\n excludeZero: PropTypes.bool,\n maxPoints: PropTypes.number,\n scorePointsLabels: PropTypes.arrayOf(PropTypes.string),\n traitLabel: PropTypes.string,\n traits: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n standards: PropTypes.arrayOf(PropTypes.string),\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n description: PropTypes.string,\n }),\n ),\n }),\n showPointsLabels: PropTypes.bool,\n showDescription: PropTypes.bool,\n showStandards: PropTypes.bool,\n arrowsDisabled: PropTypes.bool,\n};\n\nexport default withStyles(styles)(Scale);\n"],"file":"scale.js"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _styles = require("@material-ui/core/styles");
15
+
16
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
17
+
18
+ var styles = function styles() {
19
+ return {
20
+ trait: {
21
+ '&$traitName': {
22
+ color: _renderUi.color.primaryDark(),
23
+ verticalAlign: 'middle'
24
+ }
25
+ },
26
+ noDescription: {
27
+ color: _renderUi.color.secondaryBackground(),
28
+ textAlign: 'center'
29
+ },
30
+ traitName: {}
31
+ };
32
+ };
33
+
34
+ var Trait = function Trait(props) {
35
+ var trait = props.trait,
36
+ traitIndex = props.traitIndex,
37
+ scaleIndex = props.scaleIndex,
38
+ showStandards = props.showStandards,
39
+ showDescription = props.showDescription,
40
+ scorePointsValues = props.scorePointsValues,
41
+ classes = props.classes;
42
+
43
+ var _ref = trait || {},
44
+ name = _ref.name,
45
+ standards = _ref.standards,
46
+ scorePointsDescriptors = _ref.scorePointsDescriptors,
47
+ description = _ref.description;
48
+
49
+ return /*#__PURE__*/_react["default"].createElement("tr", {
50
+ key: "scale-".concat(scaleIndex, "-trait-").concat(traitIndex)
51
+ }, /*#__PURE__*/_react["default"].createElement("td", {
52
+ className: "".concat(classes.trait, " ").concat(classes.traitName)
53
+ }, /*#__PURE__*/_react["default"].createElement("div", {
54
+ dangerouslySetInnerHTML: {
55
+ __html: name
56
+ }
57
+ })), showStandards ? /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("div", {
58
+ dangerouslySetInnerHTML: {
59
+ __html: standards.join(',')
60
+ }
61
+ })) : null, showDescription ? /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("div", {
62
+ dangerouslySetInnerHTML: {
63
+ __html: description
64
+ }
65
+ })) : null, scorePointsValues && scorePointsValues.map(function (scorePointValue, index) {
66
+ var scoreDescriptor;
67
+
68
+ try {
69
+ scoreDescriptor = scorePointsDescriptors[scorePointsValues.length - index - 1] || '';
70
+ } catch (e) {
71
+ scoreDescriptor = '';
72
+ }
73
+
74
+ return /*#__PURE__*/_react["default"].createElement("td", {
75
+ key: "table-cell-".concat(index)
76
+ }, /*#__PURE__*/_react["default"].createElement("div", {
77
+ className: !scoreDescriptor ? classes.noDescription : '',
78
+ dangerouslySetInnerHTML: {
79
+ __html: scoreDescriptor || 'No Description'
80
+ }
81
+ }));
82
+ }));
83
+ };
84
+
85
+ Trait.propTypes = {
86
+ classes: _propTypes["default"].object,
87
+ showStandards: _propTypes["default"].bool,
88
+ showDescription: _propTypes["default"].bool,
89
+ scorePointsValues: _propTypes["default"].arrayOf(_propTypes["default"].number),
90
+ scaleIndex: _propTypes["default"].number,
91
+ traitIndex: _propTypes["default"].number,
92
+ trait: _propTypes["default"].shape({
93
+ name: _propTypes["default"].string,
94
+ standards: _propTypes["default"].arrayOf(_propTypes["default"].string),
95
+ scorePointsDescriptors: _propTypes["default"].arrayOf(_propTypes["default"].string),
96
+ description: _propTypes["default"].string
97
+ })
98
+ };
99
+
100
+ var _default = (0, _styles.withStyles)(styles)(Trait);
101
+
102
+ exports["default"] = _default;
103
+ //# sourceMappingURL=trait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/trait.jsx"],"names":["styles","trait","color","primaryDark","verticalAlign","noDescription","secondaryBackground","textAlign","traitName","Trait","props","traitIndex","scaleIndex","showStandards","showDescription","scorePointsValues","classes","name","standards","scorePointsDescriptors","description","__html","join","map","scorePointValue","index","scoreDescriptor","length","e","propTypes","PropTypes","object","bool","arrayOf","number","shape","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nconst styles = () => ({\n trait: {\n '&$traitName': {\n color: color.primaryDark(),\n verticalAlign: 'middle',\n },\n },\n noDescription: {\n color: color.secondaryBackground(),\n textAlign: 'center',\n },\n traitName: {},\n});\n\nconst Trait = (props) => {\n const { trait, traitIndex, scaleIndex, showStandards, showDescription, scorePointsValues, classes } = props;\n const { name, standards, scorePointsDescriptors, description } = trait || {};\n\n return (\n <tr key={`scale-${scaleIndex}-trait-${traitIndex}`}>\n <td className={`${classes.trait} ${classes.traitName}`}>\n <div dangerouslySetInnerHTML={{ __html: name }} />\n </td>\n\n {showStandards ? (\n <td>\n <div dangerouslySetInnerHTML={{ __html: standards.join(',') }} />\n </td>\n ) : null}\n\n {showDescription ? (\n <td>\n <div dangerouslySetInnerHTML={{ __html: description }} />\n </td>\n ) : null}\n\n {scorePointsValues &&\n scorePointsValues.map((scorePointValue, index) => {\n let scoreDescriptor;\n\n try {\n scoreDescriptor = scorePointsDescriptors[scorePointsValues.length - index - 1] || '';\n } catch (e) {\n scoreDescriptor = '';\n }\n\n return (\n <td key={`table-cell-${index}`}>\n <div\n className={!scoreDescriptor ? classes.noDescription : ''}\n dangerouslySetInnerHTML={{ __html: scoreDescriptor || 'No Description' }}\n />\n </td>\n );\n })}\n </tr>\n );\n};\n\nTrait.propTypes = {\n classes: PropTypes.object,\n showStandards: PropTypes.bool,\n showDescription: PropTypes.bool,\n scorePointsValues: PropTypes.arrayOf(PropTypes.number),\n scaleIndex: PropTypes.number,\n traitIndex: PropTypes.number,\n trait: PropTypes.shape({\n name: PropTypes.string,\n standards: PropTypes.arrayOf(PropTypes.string),\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n description: PropTypes.string,\n }),\n};\n\nexport default withStyles(styles)(Trait);\n"],"file":"trait.js"}
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@pie-element/multi-trait-rubric",
3
+ "repository": "pie-framework/pie-elements",
4
+ "version": "3.0.2-next.14+9750cdd3c",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "dependencies": {
9
+ "@material-ui/core": "^3.9.2",
10
+ "@pie-framework/pie-player-events": "^0.1.0",
11
+ "@pie-lib/pie-toolbox": "1.0.12-next.3",
12
+ "clsx": "^1.1.1",
13
+ "enzyme-to-json": "^3.3.5",
14
+ "prop-types": "^15.6.1",
15
+ "react": "^16.8.1",
16
+ "react-dom": "^16.8.1"
17
+ },
18
+ "gitHead": "9750cdd3ce3018ef8bb63bc2c6db6abba3dad0c4",
19
+ "scripts": {
20
+ "postpublish": "../../scripts/postpublish"
21
+ },
22
+ "main": "lib/index.js",
23
+ "module": "src/index.js"
24
+ }