@pie-lib/rubric 0.10.0-beta.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js DELETED
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- Object.defineProperty(exports, "Authoring", {
9
- enumerable: true,
10
- get: function get() {
11
- return _authoring["default"];
12
- }
13
- });
14
- exports.RUBRIC_TYPES = void 0;
15
-
16
- var _authoring = _interopRequireDefault(require("./authoring"));
17
-
18
- var RUBRIC_TYPES = {
19
- SIMPLE_RUBRIC: 'simpleRubric',
20
- MULTI_TRAIT_RUBRIC: 'multiTraitRubric',
21
- RUBRICLESS: 'rubricless'
22
- };
23
- exports.RUBRIC_TYPES = RUBRIC_TYPES;
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJSVUJSSUNfVFlQRVMiLCJTSU1QTEVfUlVCUklDIiwiTVVMVElfVFJBSVRfUlVCUklDIiwiUlVCUklDTEVTUyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsSUFBTUEsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxhQUFhLEVBQUUsY0FESTtBQUVuQkMsRUFBQUEsa0JBQWtCLEVBQUUsa0JBRkQ7QUFHbkJDLEVBQUFBLFVBQVUsRUFBRTtBQUhPLENBQXJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEF1dGhvcmluZyBmcm9tICcuL2F1dGhvcmluZyc7XG5cbmNvbnN0IFJVQlJJQ19UWVBFUyA9IHtcbiAgU0lNUExFX1JVQlJJQzogJ3NpbXBsZVJ1YnJpYycsXG4gIE1VTFRJX1RSQUlUX1JVQlJJQzogJ211bHRpVHJhaXRSdWJyaWMnLFxuICBSVUJSSUNMRVNTOiAncnVicmljbGVzcycsXG59O1xuXG5leHBvcnQgeyBBdXRob3JpbmcsIFJVQlJJQ19UWVBFUyB9O1xuIl19
package/lib/point-menu.js DELETED
@@ -1,172 +0,0 @@
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"] = exports.IconMenu = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _Menu = _interopRequireDefault(require("@material-ui/core/Menu"));
25
-
26
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
27
-
28
- var _MoreVert = _interopRequireDefault(require("@material-ui/icons/MoreVert"));
29
-
30
- var _MoreHoriz = _interopRequireDefault(require("@material-ui/icons/MoreHoriz"));
31
-
32
- var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
33
-
34
- var _propTypes = _interopRequireDefault(require("prop-types"));
35
-
36
- var _react = _interopRequireDefault(require("react"));
37
-
38
- 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); }; }
39
-
40
- 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; } }
41
-
42
- var IconMenu = /*#__PURE__*/function (_React$Component) {
43
- (0, _inherits2["default"])(IconMenu, _React$Component);
44
-
45
- var _super = _createSuper(IconMenu);
46
-
47
- function IconMenu(props) {
48
- var _this;
49
-
50
- (0, _classCallCheck2["default"])(this, IconMenu);
51
- _this = _super.call(this, props);
52
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClick", function (event) {
53
- return _this.setState({
54
- open: true,
55
- anchorEl: event.currentTarget
56
- });
57
- });
58
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleRequestClose", function () {
59
- return _this.setState({
60
- open: false
61
- });
62
- });
63
- _this.state = {
64
- anchorEl: undefined,
65
- open: false
66
- };
67
- return _this;
68
- }
69
-
70
- (0, _createClass2["default"])(IconMenu, [{
71
- key: "render",
72
- value: function render() {
73
- var _this2 = this;
74
-
75
- var _this$props = this.props,
76
- opts = _this$props.opts,
77
- onClick = _this$props.onClick,
78
- classes = _this$props.classes;
79
- var _this$state = this.state,
80
- open = _this$state.open,
81
- anchorEl = _this$state.anchorEl;
82
- var keys = Object.keys(opts) || [];
83
-
84
- var handleMenuClick = function handleMenuClick(key) {
85
- return function () {
86
- onClick(key);
87
-
88
- _this2.handleRequestClose();
89
- };
90
- };
91
-
92
- var iconColor = open ? 'inherit' : 'disabled';
93
- return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
94
- onClick: this.handleClick
95
- }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
96
- className: classes.icon
97
- }, open ? /*#__PURE__*/_react["default"].createElement(_MoreVert["default"], {
98
- color: iconColor
99
- }) : /*#__PURE__*/_react["default"].createElement(_MoreHoriz["default"], {
100
- color: iconColor
101
- }))), /*#__PURE__*/_react["default"].createElement(_Menu["default"], {
102
- id: "point-menu",
103
- anchorEl: anchorEl,
104
- open: open,
105
- onClose: this.handleRequestClose,
106
- style: {
107
- transform: 'translate(-15px, -15px)'
108
- },
109
- transformOrigin: {
110
- vertical: 'center',
111
- horizontal: 'right'
112
- }
113
- }, keys.map(function (k, index) {
114
- return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
115
- key: index,
116
- onClick: handleMenuClick(k)
117
- }, opts[k]);
118
- })));
119
- }
120
- }]);
121
- return IconMenu;
122
- }(_react["default"].Component);
123
-
124
- exports.IconMenu = IconMenu;
125
- (0, _defineProperty2["default"])(IconMenu, "propTypes", {
126
- opts: _propTypes["default"].object,
127
- onClick: _propTypes["default"].func.isRequired,
128
- classes: _propTypes["default"].object.isRequired
129
- });
130
-
131
- var PointMenu = /*#__PURE__*/function (_React$Component2) {
132
- (0, _inherits2["default"])(PointMenu, _React$Component2);
133
-
134
- var _super2 = _createSuper(PointMenu);
135
-
136
- function PointMenu() {
137
- (0, _classCallCheck2["default"])(this, PointMenu);
138
- return _super2.apply(this, arguments);
139
- }
140
-
141
- (0, _createClass2["default"])(PointMenu, [{
142
- key: "render",
143
- value: function render() {
144
- var _this$props2 = this.props,
145
- onChange = _this$props2.onChange,
146
- classes = _this$props2.classes,
147
- showSampleAnswer = _this$props2.showSampleAnswer;
148
- var sampleText = showSampleAnswer ? 'Provide Sample Response' : 'Remove Sample Response';
149
- return /*#__PURE__*/_react["default"].createElement(IconMenu, {
150
- onClick: function onClick(key) {
151
- return onChange(key);
152
- },
153
- opts: {
154
- sample: sampleText
155
- },
156
- classes: classes
157
- });
158
- }
159
- }]);
160
- return PointMenu;
161
- }(_react["default"].Component);
162
-
163
- exports["default"] = PointMenu;
164
- (0, _defineProperty2["default"])(PointMenu, "propTypes", {
165
- onChange: _propTypes["default"].func.isRequired,
166
- classes: _propTypes["default"].object.isRequired,
167
- showSampleAnswer: _propTypes["default"].bool.isRequired
168
- });
169
- (0, _defineProperty2["default"])(PointMenu, "defaultProps", {
170
- classes: {}
171
- });
172
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wb2ludC1tZW51LmpzeCJdLCJuYW1lcyI6WyJJY29uTWVudSIsInByb3BzIiwiZXZlbnQiLCJzZXRTdGF0ZSIsIm9wZW4iLCJhbmNob3JFbCIsImN1cnJlbnRUYXJnZXQiLCJzdGF0ZSIsInVuZGVmaW5lZCIsIm9wdHMiLCJvbkNsaWNrIiwiY2xhc3NlcyIsImtleXMiLCJPYmplY3QiLCJoYW5kbGVNZW51Q2xpY2siLCJrZXkiLCJoYW5kbGVSZXF1ZXN0Q2xvc2UiLCJpY29uQ29sb3IiLCJoYW5kbGVDbGljayIsImljb24iLCJ0cmFuc2Zvcm0iLCJ2ZXJ0aWNhbCIsImhvcml6b250YWwiLCJtYXAiLCJrIiwiaW5kZXgiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImZ1bmMiLCJpc1JlcXVpcmVkIiwiUG9pbnRNZW51Iiwib25DaGFuZ2UiLCJzaG93U2FtcGxlQW5zd2VyIiwic2FtcGxlVGV4dCIsInNhbXBsZSIsImJvb2wiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztJQUVhQSxROzs7OztBQU9YLG9CQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7QUFDakIsOEJBQU1BLEtBQU47QUFEaUIsb0dBUUwsVUFBQ0MsS0FBRDtBQUFBLGFBQVcsTUFBS0MsUUFBTCxDQUFjO0FBQUVDLFFBQUFBLElBQUksRUFBRSxJQUFSO0FBQWNDLFFBQUFBLFFBQVEsRUFBRUgsS0FBSyxDQUFDSTtBQUE5QixPQUFkLENBQVg7QUFBQSxLQVJLO0FBQUEsMkdBVUU7QUFBQSxhQUFNLE1BQUtILFFBQUwsQ0FBYztBQUFFQyxRQUFBQSxJQUFJLEVBQUU7QUFBUixPQUFkLENBQU47QUFBQSxLQVZGO0FBRWpCLFVBQUtHLEtBQUwsR0FBYTtBQUNYRixNQUFBQSxRQUFRLEVBQUVHLFNBREM7QUFFWEosTUFBQUEsSUFBSSxFQUFFO0FBRkss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RUFBRUwsc0JBQVVFLElBQVYsQ0FBZUMsVUFEUjtBQUVqQnBCLEVBQUFBLE9BQU8sRUFBRWlCLHNCQUFVQyxNQUFWLENBQWlCRSxVQUZUO0FBR2pCRyxFQUFBQSxnQkFBZ0IsRUFBRU4sc0JBQVVTLElBQVYsQ0FBZU47QUFIaEIsQztpQ0FEQUMsUyxrQkFPRztBQUNwQnJCLEVBQUFBLE9BQU8sRUFBRTtBQURXLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWVudSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9NZW51JztcbmltcG9ydCBNZW51SXRlbSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9NZW51SXRlbSc7XG5pbXBvcnQgTW9yZVZlcnRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Nb3JlVmVydCc7XG5pbXBvcnQgTW9yZUhvcml6SWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvTW9yZUhvcml6JztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0ljb25CdXR0b24nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBjbGFzcyBJY29uTWVudSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb3B0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgYW5jaG9yRWw6IHVuZGVmaW5lZCxcbiAgICAgIG9wZW46IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICBoYW5kbGVDbGljayA9IChldmVudCkgPT4gdGhpcy5zZXRTdGF0ZSh7IG9wZW46IHRydWUsIGFuY2hvckVsOiBldmVudC5jdXJyZW50VGFyZ2V0IH0pO1xuXG4gIGhhbmRsZVJlcXVlc3RDbG9zZSA9ICgpID0+IHRoaXMuc2V0U3RhdGUoeyBvcGVuOiBmYWxzZSB9KTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBvcHRzLCBvbkNsaWNrLCBjbGFzc2VzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgb3BlbiwgYW5jaG9yRWwgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9wdHMpIHx8IFtdO1xuXG4gICAgY29uc3QgaGFuZGxlTWVudUNsaWNrID0gKGtleSkgPT4gKCkgPT4ge1xuICAgICAgb25DbGljayhrZXkpO1xuICAgICAgdGhpcy5oYW5kbGVSZXF1ZXN0Q2xvc2UoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaWNvbkNvbG9yID0gb3BlbiA/ICdpbmhlcml0JyA6ICdkaXNhYmxlZCc7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNsaWNrfT5cbiAgICAgICAgICA8SWNvbkJ1dHRvbiBjbGFzc05hbWU9e2NsYXNzZXMuaWNvbn0+XG4gICAgICAgICAgICB7b3BlbiA/IDxNb3JlVmVydEljb24gY29sb3I9e2ljb25Db2xvcn0gLz4gOiA8TW9yZUhvcml6SWNvbiBjb2xvcj17aWNvbkNvbG9yfSAvPn1cbiAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8TWVudVxuICAgICAgICAgIGlkPVwicG9pbnQtbWVudVwiXG4gICAgICAgICAgYW5jaG9yRWw9e2FuY2hvckVsfVxuICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgb25DbG9zZT17dGhpcy5oYW5kbGVSZXF1ZXN0Q2xvc2V9XG4gICAgICAgICAgc3R5bGU9e3sgdHJhbnNmb3JtOiAndHJhbnNsYXRlKC0xNXB4LCAtMTVweCknIH19XG4gICAgICAgICAgdHJhbnNmb3JtT3JpZ2luPXt7XG4gICAgICAgICAgICB2ZXJ0aWNhbDogJ2NlbnRlcicsXG4gICAgICAgICAgICBob3Jpem9udGFsOiAncmlnaHQnLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7a2V5cy5tYXAoKGssIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWVudUl0ZW0ga2V5PXtpbmRleH0gb25DbGljaz17aGFuZGxlTWVudUNsaWNrKGspfT5cbiAgICAgICAgICAgICAge29wdHNba119XG4gICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L01lbnU+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvaW50TWVudSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNob3dTYW1wbGVBbnN3ZXI6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjbGFzc2VzOiB7fSxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBvbkNoYW5nZSwgY2xhc3Nlcywgc2hvd1NhbXBsZUFuc3dlciB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBzYW1wbGVUZXh0ID0gc2hvd1NhbXBsZUFuc3dlciA/ICdQcm92aWRlIFNhbXBsZSBSZXNwb25zZScgOiAnUmVtb3ZlIFNhbXBsZSBSZXNwb25zZSc7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEljb25NZW51XG4gICAgICAgIG9uQ2xpY2s9eyhrZXkpID0+IG9uQ2hhbmdlKGtleSl9XG4gICAgICAgIG9wdHM9e3tcbiAgICAgICAgICBzYW1wbGU6IHNhbXBsZVRleHQsXG4gICAgICAgIH19XG4gICAgICAgIGNsYXNzZXM9e2NsYXNzZXN9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==