@pie-element/multi-trait-rubric 2.8.3-next.35 → 2.8.3-next.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/scale.js +131 -9
- package/lib/scale.js.map +1 -1
- package/package.json +2 -2
package/lib/scale.js
CHANGED
|
@@ -13,12 +13,16 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
13
13
|
|
|
14
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
15
|
|
|
16
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
+
|
|
16
18
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
19
|
|
|
18
20
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
21
|
|
|
20
22
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
23
|
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
22
26
|
var _react = _interopRequireDefault(require("react"));
|
|
23
27
|
|
|
24
28
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -29,12 +33,28 @@ var _renderUi = require("@pie-lib/render-ui");
|
|
|
29
33
|
|
|
30
34
|
var _trait = _interopRequireDefault(require("./trait"));
|
|
31
35
|
|
|
36
|
+
var _ArrowBackIos = _interopRequireDefault(require("@material-ui/icons/ArrowBackIos"));
|
|
37
|
+
|
|
38
|
+
var _ArrowForwardIos = _interopRequireDefault(require("@material-ui/icons/ArrowForwardIos"));
|
|
39
|
+
|
|
32
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); }; }
|
|
33
41
|
|
|
34
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; } }
|
|
35
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
|
+
|
|
36
48
|
var styles = function styles() {
|
|
37
49
|
return {
|
|
50
|
+
wrapper: {
|
|
51
|
+
display: 'flex',
|
|
52
|
+
position: 'relative'
|
|
53
|
+
},
|
|
54
|
+
tableWrapper: {
|
|
55
|
+
width: '100%',
|
|
56
|
+
overflow: 'scroll'
|
|
57
|
+
},
|
|
38
58
|
table: {
|
|
39
59
|
borderSpacing: 0,
|
|
40
60
|
marginBottom: '16px',
|
|
@@ -42,6 +62,7 @@ var styles = function styles() {
|
|
|
42
62
|
color: _renderUi.color.text(),
|
|
43
63
|
fontSize: '14px',
|
|
44
64
|
lineHeight: '16px',
|
|
65
|
+
overflow: 'unset',
|
|
45
66
|
'& ul, ol': {
|
|
46
67
|
marginBlockStart: 0,
|
|
47
68
|
paddingInlineStart: '16px'
|
|
@@ -78,19 +99,92 @@ var styles = function styles() {
|
|
|
78
99
|
};
|
|
79
100
|
};
|
|
80
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
|
+
}, extraStyles),
|
|
118
|
+
onClick: onClick
|
|
119
|
+
}, children);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
ArrowContainer.propTypes = {
|
|
123
|
+
show: _propTypes["default"].bool,
|
|
124
|
+
onClick: _propTypes["default"].func,
|
|
125
|
+
extraStyles: _propTypes["default"].object,
|
|
126
|
+
children: _propTypes["default"].object
|
|
127
|
+
};
|
|
128
|
+
|
|
81
129
|
var Scale = /*#__PURE__*/function (_React$Component) {
|
|
82
130
|
(0, _inherits2["default"])(Scale, _React$Component);
|
|
83
131
|
|
|
84
132
|
var _super = _createSuper(Scale);
|
|
85
133
|
|
|
86
134
|
function Scale() {
|
|
135
|
+
var _this;
|
|
136
|
+
|
|
87
137
|
(0, _classCallCheck2["default"])(this, Scale);
|
|
88
|
-
|
|
138
|
+
|
|
139
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
140
|
+
args[_key] = arguments[_key];
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
144
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {});
|
|
145
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "scrollLeft", function () {
|
|
146
|
+
_this.tableWrapper.scrollLeft -= _this.tableWrapper.offsetWidth / 2;
|
|
147
|
+
|
|
148
|
+
_this.setState({
|
|
149
|
+
showRight: _this.tableWrapper.scrollLeft < _this.tableWrapper.scrollWidth,
|
|
150
|
+
showLeft: _this.tableWrapper.scrollLeft < _this.tableWrapper.scrollWidth && _this.tableWrapper.scrollLeft > 0
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "scrollRight", function () {
|
|
154
|
+
var initialScrollLeft = _this.tableWrapper.scrollLeft;
|
|
155
|
+
_this.tableWrapper.scrollLeft += _this.tableWrapper.offsetWidth / 2;
|
|
156
|
+
|
|
157
|
+
_this.setState({
|
|
158
|
+
showRight: initialScrollLeft !== _this.tableWrapper.scrollLeft && _this.tableWrapper.scrollLeft < _this.tableWrapper.scrollWidth,
|
|
159
|
+
showLeft: _this.tableWrapper.scrollLeft < _this.tableWrapper.scrollWidth && _this.tableWrapper.scrollLeft > 0
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
return _this;
|
|
89
163
|
}
|
|
90
164
|
|
|
91
165
|
(0, _createClass2["default"])(Scale, [{
|
|
166
|
+
key: "componentDidMount",
|
|
167
|
+
value: // constructor() {
|
|
168
|
+
// super();
|
|
169
|
+
// document.querySelector('body > catalog-container > catalog-entry > catalog-demo > div:nth-child(2)').style.width = '800px';
|
|
170
|
+
// }
|
|
171
|
+
function componentDidMount() {
|
|
172
|
+
if (this.tableWrapper) {
|
|
173
|
+
if (this.tableWrapper.offsetWidth < this.tableWrapper.scrollWidth) {
|
|
174
|
+
this.setState({
|
|
175
|
+
showRight: true
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}, {
|
|
92
181
|
key: "render",
|
|
93
182
|
value: function render() {
|
|
183
|
+
var _this2 = this;
|
|
184
|
+
|
|
185
|
+
var _this$state = this.state,
|
|
186
|
+
showRight = _this$state.showRight,
|
|
187
|
+
showLeft = _this$state.showLeft;
|
|
94
188
|
var _this$props = this.props,
|
|
95
189
|
classes = _this$props.classes,
|
|
96
190
|
scale = _this$props.scale,
|
|
@@ -99,12 +193,12 @@ var Scale = /*#__PURE__*/function (_React$Component) {
|
|
|
99
193
|
showPointsLabels = _this$props.showPointsLabels,
|
|
100
194
|
showStandards = _this$props.showStandards;
|
|
101
195
|
|
|
102
|
-
var
|
|
103
|
-
excludeZero =
|
|
104
|
-
maxPoints =
|
|
105
|
-
traitLabel =
|
|
106
|
-
traits =
|
|
107
|
-
scorePointsLabels =
|
|
196
|
+
var _ref2 = scale || {},
|
|
197
|
+
excludeZero = _ref2.excludeZero,
|
|
198
|
+
maxPoints = _ref2.maxPoints,
|
|
199
|
+
traitLabel = _ref2.traitLabel,
|
|
200
|
+
traits = _ref2.traits,
|
|
201
|
+
scorePointsLabels = _ref2.scorePointsLabels;
|
|
108
202
|
|
|
109
203
|
var scorePointsValues = [];
|
|
110
204
|
var descriptions;
|
|
@@ -138,7 +232,28 @@ var Scale = /*#__PURE__*/function (_React$Component) {
|
|
|
138
232
|
standards = false;
|
|
139
233
|
}
|
|
140
234
|
|
|
141
|
-
return /*#__PURE__*/_react["default"].createElement("
|
|
235
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
236
|
+
className: classes.wrapper
|
|
237
|
+
}, /*#__PURE__*/_react["default"].createElement(ArrowContainer, {
|
|
238
|
+
show: showLeft,
|
|
239
|
+
onClick: this.scrollLeft,
|
|
240
|
+
extraStyles: {
|
|
241
|
+
left: 0,
|
|
242
|
+
background: "linear-gradient(to right, white, ".concat(_renderUi.color.background(), ")")
|
|
243
|
+
}
|
|
244
|
+
}, /*#__PURE__*/_react["default"].createElement(_ArrowBackIos["default"], null)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
245
|
+
className: classes.tableWrapper,
|
|
246
|
+
ref: function ref(_ref3) {
|
|
247
|
+
_this2.tableWrapper = _ref3;
|
|
248
|
+
},
|
|
249
|
+
onScroll: function onScroll() {
|
|
250
|
+
_this2.setState({
|
|
251
|
+
// 5 is a margin of error
|
|
252
|
+
showRight: _this2.tableWrapper.scrollLeft + _this2.tableWrapper.offsetWidth < _this2.tableWrapper.scrollWidth - 5 && _this2.tableWrapper.scrollLeft < _this2.tableWrapper.scrollWidth,
|
|
253
|
+
showLeft: _this2.tableWrapper.scrollLeft < _this2.tableWrapper.scrollWidth && _this2.tableWrapper.scrollLeft > 0
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}, /*#__PURE__*/_react["default"].createElement("table", {
|
|
142
257
|
key: "scale-".concat(scaleIndex),
|
|
143
258
|
className: classes.table
|
|
144
259
|
}, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -177,7 +292,14 @@ var Scale = /*#__PURE__*/function (_React$Component) {
|
|
|
177
292
|
scorePointsValues: scorePointsValues,
|
|
178
293
|
excludeZero: excludeZero
|
|
179
294
|
});
|
|
180
|
-
})))
|
|
295
|
+
})))), /*#__PURE__*/_react["default"].createElement(ArrowContainer, {
|
|
296
|
+
show: showRight,
|
|
297
|
+
onClick: this.scrollRight,
|
|
298
|
+
extraStyles: {
|
|
299
|
+
right: 0,
|
|
300
|
+
background: "linear-gradient(to left, white, ".concat(_renderUi.color.background(), ")")
|
|
301
|
+
}
|
|
302
|
+
}, /*#__PURE__*/_react["default"].createElement(_ArrowForwardIos["default"], null)));
|
|
181
303
|
}
|
|
182
304
|
}]);
|
|
183
305
|
return Scale;
|
package/lib/scale.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scale.jsx"],"names":["styles","table","borderSpacing","marginBottom","borderRadius","color","text","fontSize","lineHeight","marginBlockStart","paddingInlineStart","padding","textAlign","backgroundColor","secondaryBackground","verticalAlign","width","scorePointHeader","border","minWidth","pointLabel","scorePointValue","fontWeight","Scale","props","classes","scale","scaleIndex","showDescription","showPointsLabels","showStandards","excludeZero","maxPoints","traitLabel","traits","scorePointsLabels","scorePointsValues","descriptions","pointsLabels","standards","pointValue","push","reduce","tcc","trait","traitStandards","traitDescriptions","description","length","e","__html","map","index","traitIndex","React","Component","propTypes","PropTypes","object","number","shape","bool","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/render-ui';\nimport Trait from './trait';\n\nconst styles = () => ({\n table: {\n borderSpacing: 0,\n marginBottom: '16px',\n borderRadius: '4px',\n color: color.text(),\n fontSize: '14px',\n lineHeight: '16px',\n\n '& ul, ol': {\n marginBlockStart: 0,\n paddingInlineStart: '16px',\n },\n\n '& th': {\n padding: '16px',\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: '16px 8px',\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\nclass Scale extends React.Component {\n render() {\n const { classes, scale, scaleIndex, showDescription, showPointsLabels, showStandards } = this.props;\n const { excludeZero, maxPoints, traitLabel, traits, scorePointsLabels } = scale || {};\n\n let scorePointsValues = [];\n let descriptions;\n let pointsLabels;\n let standards;\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 <table key={`scale-${scaleIndex}`} className={classes.table}>\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 );\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};\n\nexport default withStyles(styles)(Scale);\n"],"file":"scale.js"}
|
|
1
|
+
{"version":3,"sources":["../src/scale.jsx"],"names":["styles","wrapper","display","position","tableWrapper","width","overflow","table","borderSpacing","marginBottom","borderRadius","color","text","fontSize","lineHeight","marginBlockStart","paddingInlineStart","padding","textAlign","backgroundColor","secondaryBackground","verticalAlign","scorePointHeader","border","minWidth","pointLabel","scorePointValue","fontWeight","ArrowContainer","show","onClick","extraStyles","children","height","top","margin","alignItems","justifyContent","propTypes","PropTypes","bool","func","object","Scale","scrollLeft","offsetWidth","setState","showRight","scrollWidth","showLeft","initialScrollLeft","state","props","classes","scale","scaleIndex","showDescription","showPointsLabels","showStandards","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/render-ui';\nimport Trait from './trait';\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\n\nconst styles = () => ({\n wrapper: {\n display: 'flex',\n position: 'relative'\n },\n tableWrapper: {\n width: '100%',\n overflow: 'scroll'\n },\n table: {\n borderSpacing: 0,\n marginBottom: '16px',\n borderRadius: '4px',\n color: color.text(),\n fontSize: '14px',\n lineHeight: '16px',\n overflow: 'unset',\n\n '& ul, ol': {\n marginBlockStart: 0,\n paddingInlineStart: '16px',\n },\n\n '& th': {\n padding: '16px',\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: '16px 8px',\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 ...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 // constructor() {\n // super();\n // document.querySelector('body > catalog-container > catalog-entry > catalog-demo > div:nth-child(2)').style.width = '800px';\n // }\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 } = 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\n <ArrowContainer\n show={showLeft}\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 <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}\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};\n\nexport default withStyles(styles)(Scale);\n"],"file":"scale.js"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/multi-trait-rubric",
|
|
3
3
|
"repository": "pie-framework/pie-elements",
|
|
4
|
-
"version": "2.8.3-next.
|
|
4
|
+
"version": "2.8.3-next.39+99c731c8f",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"react": "^16.8.1",
|
|
16
16
|
"react-dom": "^16.8.1"
|
|
17
17
|
},
|
|
18
|
-
"gitHead": "
|
|
18
|
+
"gitHead": "99c731c8fa96294ce0d52d9bebd27d89c43ea009",
|
|
19
19
|
"scripts": {
|
|
20
20
|
"postpublish": "../../scripts/postpublish"
|
|
21
21
|
},
|