@pie-element/passage 2.4.1-next.41 → 2.4.1-next.42
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/package.json +3 -3
- package/controller/lib/index.js +0 -55
- package/controller/lib/index.js.map +0 -1
- package/lib/index.js +0 -101
- package/lib/index.js.map +0 -1
- package/lib/print.js +0 -108
- package/lib/print.js.map +0 -1
- package/lib/stimulus-tabs.js +0 -324
- package/lib/stimulus-tabs.js.map +0 -1
- package/module/controller.js +0 -2807
- package/module/demo.js +0 -58
- package/module/element.js +0 -8945
- package/module/index.html +0 -21
- package/module/manifest.json +0 -14
- package/module/print-demo.js +0 -93
- package/module/print.html +0 -18
- package/module/print.js +0 -8916
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/passage",
|
|
3
|
-
"version": "2.4.1-next.
|
|
3
|
+
"version": "2.4.1-next.42+818443fb6",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@material-ui/core": "^3.9.2",
|
|
13
13
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
14
|
-
"@pie-lib/pie-toolbox": "1.8.
|
|
14
|
+
"@pie-lib/pie-toolbox": "1.8.3-next.17",
|
|
15
15
|
"classnames": "^2.2.5",
|
|
16
16
|
"prop-types": "^15.6.1",
|
|
17
17
|
"react": "^16.8.1",
|
|
18
18
|
"react-dom": "^16.8.1"
|
|
19
19
|
},
|
|
20
|
-
"gitHead": "
|
|
20
|
+
"gitHead": "818443fb6fd0512463d0da72768215bf08f8bef7",
|
|
21
21
|
"scripts": {
|
|
22
22
|
"postpublish": "../../scripts/postpublish"
|
|
23
23
|
},
|
package/controller/lib/index.js
DELETED
|
@@ -1,55 +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.model = model;
|
|
9
|
-
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
|
|
14
|
-
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
* @param {*} question
|
|
19
|
-
* @param {*} session
|
|
20
|
-
* @param {*} env
|
|
21
|
-
*/
|
|
22
|
-
function model(_x, _x2, _x3) {
|
|
23
|
-
return _model.apply(this, arguments);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function _model() {
|
|
27
|
-
_model = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(question, session, env) {
|
|
28
|
-
var _ref, role, mode, response;
|
|
29
|
-
|
|
30
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
31
|
-
while (1) {
|
|
32
|
-
switch (_context.prev = _context.next) {
|
|
33
|
-
case 0:
|
|
34
|
-
_ref = env || {}, role = _ref.role, mode = _ref.mode;
|
|
35
|
-
response = (0, _cloneDeep["default"])(question);
|
|
36
|
-
response.showTeacherInstructions = role === 'instructor' && (mode === 'view' || mode === 'evaluate'); // if we don't show the teacher instructions don't pass them on
|
|
37
|
-
|
|
38
|
-
if (!response.showTeacherInstructions) {
|
|
39
|
-
response.passages.forEach(function (passage) {
|
|
40
|
-
delete passage.teacherInstructions;
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return _context.abrupt("return", response);
|
|
45
|
-
|
|
46
|
-
case 5:
|
|
47
|
-
case "end":
|
|
48
|
-
return _context.stop();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}, _callee);
|
|
52
|
-
}));
|
|
53
|
-
return _model.apply(this, arguments);
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["model","question","session","env","role","mode","response","showTeacherInstructions","passages","forEach","passage","teacherInstructions"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;SACsBA,K;;;;;yFAAf,iBAAqBC,QAArB,EAA+BC,OAA/B,EAAwCC,GAAxC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,mBACkBA,GAAG,IAAI,EADzB,EACGC,IADH,QACGA,IADH,EACSC,IADT,QACSA,IADT;AAECC,YAAAA,QAFD,GAEY,2BAAUL,QAAV,CAFZ;AAILK,YAAAA,QAAQ,CAACC,uBAAT,GAAmCH,IAAI,KAAK,YAAT,KAA0BC,IAAI,KAAK,MAAT,IAAmBA,IAAI,KAAK,UAAtD,CAAnC,CAJK,CAML;;AACA,gBAAI,CAACC,QAAQ,CAACC,uBAAd,EAAuC;AACrCD,cAAAA,QAAQ,CAACE,QAAT,CAAkBC,OAAlB,CAA0B,UAACC,OAAD,EAAa;AACrC,uBAAOA,OAAO,CAACC,mBAAf;AACD,eAFD;AAGD;;AAXI,6CAaEL,QAbF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import cloneDeep from 'lodash/cloneDeep';\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const { role, mode } = env || {};\n const response = cloneDeep(question);\n\n response.showTeacherInstructions = role === 'instructor' && (mode === 'view' || mode === 'evaluate');\n\n // if we don't show the teacher instructions don't pass them on\n if (!response.showTeacherInstructions) {\n response.passages.forEach((passage) => {\n delete passage.teacherInstructions;\n });\n }\n\n return response;\n}\n"],"file":"index.js"}
|
package/lib/index.js
DELETED
|
@@ -1,101 +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"] = 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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
|
|
16
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
-
|
|
18
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
-
|
|
20
|
-
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
21
|
-
|
|
22
|
-
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
23
|
-
|
|
24
|
-
var _react = _interopRequireDefault(require("react"));
|
|
25
|
-
|
|
26
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
27
|
-
|
|
28
|
-
var _stimulusTabs = _interopRequireDefault(require("./stimulus-tabs"));
|
|
29
|
-
|
|
30
|
-
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); }; }
|
|
31
|
-
|
|
32
|
-
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; } }
|
|
33
|
-
|
|
34
|
-
var PiePassage = /*#__PURE__*/function (_HTMLElement) {
|
|
35
|
-
(0, _inherits2["default"])(PiePassage, _HTMLElement);
|
|
36
|
-
|
|
37
|
-
var _super = _createSuper(PiePassage);
|
|
38
|
-
|
|
39
|
-
function PiePassage() {
|
|
40
|
-
var _this;
|
|
41
|
-
|
|
42
|
-
(0, _classCallCheck2["default"])(this, PiePassage);
|
|
43
|
-
_this = _super.call(this);
|
|
44
|
-
_this._model = {
|
|
45
|
-
passages: []
|
|
46
|
-
};
|
|
47
|
-
_this._session = null;
|
|
48
|
-
return _this;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
(0, _createClass2["default"])(PiePassage, [{
|
|
52
|
-
key: "model",
|
|
53
|
-
set: function set(s) {
|
|
54
|
-
this._model = s;
|
|
55
|
-
this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), this._session, !!this._model));
|
|
56
|
-
|
|
57
|
-
this._render();
|
|
58
|
-
}
|
|
59
|
-
}, {
|
|
60
|
-
key: "session",
|
|
61
|
-
set: function set(s) {
|
|
62
|
-
this._session = s;
|
|
63
|
-
}
|
|
64
|
-
}, {
|
|
65
|
-
key: "connectedCallback",
|
|
66
|
-
value: function connectedCallback() {
|
|
67
|
-
this.setAttribute('aria-label', 'Passage');
|
|
68
|
-
this.setAttribute('role', 'region');
|
|
69
|
-
|
|
70
|
-
this._render();
|
|
71
|
-
}
|
|
72
|
-
}, {
|
|
73
|
-
key: "_render",
|
|
74
|
-
value: function _render() {
|
|
75
|
-
var _this$_model$showTeac = this._model.showTeacherInstructions,
|
|
76
|
-
showTeacherInstructions = _this$_model$showTeac === void 0 ? false : _this$_model$showTeac;
|
|
77
|
-
|
|
78
|
-
if (this._model.passages.length > 0) {
|
|
79
|
-
var passagesTabs = this._model.passages.map(function (passage, index) {
|
|
80
|
-
return {
|
|
81
|
-
id: index,
|
|
82
|
-
title: passage.title,
|
|
83
|
-
text: passage.text,
|
|
84
|
-
teacherInstructions: passage.teacherInstructions || ''
|
|
85
|
-
};
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
var elem = /*#__PURE__*/_react["default"].createElement(_stimulusTabs["default"], {
|
|
89
|
-
tabs: passagesTabs,
|
|
90
|
-
showTeacherInstructions: showTeacherInstructions
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
_reactDom["default"].render(elem, this);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}]);
|
|
97
|
-
return PiePassage;
|
|
98
|
-
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
|
|
99
|
-
|
|
100
|
-
exports["default"] = PiePassage;
|
|
101
|
-
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["PiePassage","_model","passages","_session","s","dispatchEvent","ModelSetEvent","tagName","toLowerCase","_render","setAttribute","showTeacherInstructions","length","passagesTabs","map","passage","index","id","title","text","teacherInstructions","elem","React","createElement","StimulusTabs","tabs","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;IACqBA,U;;;;;AACnB,wBAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAc;AACZC,MAAAA,QAAQ,EAAE;AADE,KAAd;AAGA,UAAKC,QAAL,GAAgB,IAAhB;AALY;AAMb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKH,MAAL,GAAcG,CAAd;AACA,WAAKC,aAAL,CAAmB,IAAIC,8BAAJ,CAAkB,KAAKC,OAAL,CAAaC,WAAb,EAAlB,EAA8C,KAAKL,QAAnD,EAA6D,CAAC,CAAC,KAAKF,MAApE,CAAnB;;AAEA,WAAKQ,OAAL;AACD;;;SAED,aAAYL,CAAZ,EAAe;AACb,WAAKD,QAAL,GAAgBC,CAAhB;AACD;;;WAED,6BAAoB;AAClB,WAAKM,YAAL,CAAkB,YAAlB,EAAgC,SAAhC;AACA,WAAKA,YAAL,CAAkB,MAAlB,EAA0B,QAA1B;;AACA,WAAKD,OAAL;AACD;;;WAED,mBAAU;AACR,kCAA4C,KAAKR,MAAjD,CAAQU,uBAAR;AAAA,UAAQA,uBAAR,sCAAkC,KAAlC;;AAEA,UAAI,KAAKV,MAAL,CAAYC,QAAZ,CAAqBU,MAArB,GAA8B,CAAlC,EAAqC;AACnC,YAAMC,YAAY,GAAG,KAAKZ,MAAL,CAAYC,QAAZ,CAAqBY,GAArB,CAAyB,UAACC,OAAD,EAAUC,KAAV,EAAoB;AAChE,iBAAO;AACLC,YAAAA,EAAE,EAAED,KADC;AAELE,YAAAA,KAAK,EAAEH,OAAO,CAACG,KAFV;AAGLC,YAAAA,IAAI,EAAEJ,OAAO,CAACI,IAHT;AAILC,YAAAA,mBAAmB,EAAEL,OAAO,CAACK,mBAAR,IAA+B;AAJ/C,WAAP;AAMD,SAPoB,CAArB;;AAQA,YAAIC,IAAI,gBAAGC,kBAAMC,aAAN,CAAoBC,wBAApB,EAAkC;AAC3CC,UAAAA,IAAI,EAAEZ,YADqC;AAE3CF,UAAAA,uBAAuB,EAAvBA;AAF2C,SAAlC,CAAX;;AAIAe,6BAASC,MAAT,CAAgBN,IAAhB,EAAsB,IAAtB;AACD;AACF;;;kDA5CqCO,W","sourcesContent":["import { ModelSetEvent } from '@pie-framework/pie-player-events';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport StimulusTabs from './stimulus-tabs';\nexport default class PiePassage extends HTMLElement {\n constructor() {\n super();\n this._model = {\n passages: [],\n };\n this._session = null;\n }\n\n set model(s) {\n this._model = s;\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), this._session, !!this._model));\n\n this._render();\n }\n\n set session(s) {\n this._session = s;\n }\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Passage');\n this.setAttribute('role', 'region');\n this._render();\n }\n\n _render() {\n const { showTeacherInstructions = false } = this._model;\n\n if (this._model.passages.length > 0) {\n const passagesTabs = this._model.passages.map((passage, index) => {\n return {\n id: index,\n title: passage.title,\n text: passage.text,\n teacherInstructions: passage.teacherInstructions || '',\n };\n });\n let elem = React.createElement(StimulusTabs, {\n tabs: passagesTabs,\n showTeacherInstructions,\n });\n ReactDOM.render(elem, this);\n }\n }\n}\n"],"file":"index.js"}
|
package/lib/print.js
DELETED
|
@@ -1,108 +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"] = 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 _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
23
|
-
|
|
24
|
-
var _react = _interopRequireDefault(require("react"));
|
|
25
|
-
|
|
26
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
27
|
-
|
|
28
|
-
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
29
|
-
|
|
30
|
-
var _stimulusTabs = _interopRequireDefault(require("./stimulus-tabs"));
|
|
31
|
-
|
|
32
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
33
|
-
|
|
34
|
-
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); }; }
|
|
35
|
-
|
|
36
|
-
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; } }
|
|
37
|
-
|
|
38
|
-
var log = (0, _debug["default"])('pie-element:passage:print');
|
|
39
|
-
|
|
40
|
-
var preparePrintPassage = function preparePrintPassage(model, opts) {
|
|
41
|
-
var instr = opts.role === 'instructor';
|
|
42
|
-
return model.passages.map(function (passage, index) {
|
|
43
|
-
return {
|
|
44
|
-
id: index,
|
|
45
|
-
title: passage.title,
|
|
46
|
-
text: passage.text,
|
|
47
|
-
teacherInstructions: instr && passage.teacherInstructions
|
|
48
|
-
};
|
|
49
|
-
});
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
var PassagePrint = /*#__PURE__*/function (_HTMLElement) {
|
|
53
|
-
(0, _inherits2["default"])(PassagePrint, _HTMLElement);
|
|
54
|
-
|
|
55
|
-
var _super = _createSuper(PassagePrint);
|
|
56
|
-
|
|
57
|
-
function PassagePrint() {
|
|
58
|
-
var _this;
|
|
59
|
-
|
|
60
|
-
(0, _classCallCheck2["default"])(this, PassagePrint);
|
|
61
|
-
_this = _super.call(this);
|
|
62
|
-
_this._model = null;
|
|
63
|
-
_this._options = null;
|
|
64
|
-
_this._session = [];
|
|
65
|
-
_this._rerender = (0, _debounce["default"])(function () {
|
|
66
|
-
if (_this._model && _this._session) {
|
|
67
|
-
if (_this._model.passages && _this._model.passages.length > 0) {
|
|
68
|
-
var printPassage = preparePrintPassage(_this._model, _this._options);
|
|
69
|
-
|
|
70
|
-
var element = /*#__PURE__*/_react["default"].createElement(_stimulusTabs["default"], {
|
|
71
|
-
tabs: printPassage,
|
|
72
|
-
disabledTabs: true,
|
|
73
|
-
showTeacherInstructions: _this._options.role === 'instructor'
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
_reactDom["default"].render(element, (0, _assertThisInitialized2["default"])(_this));
|
|
77
|
-
}
|
|
78
|
-
} else {
|
|
79
|
-
log('skip');
|
|
80
|
-
}
|
|
81
|
-
}, 50, {
|
|
82
|
-
leading: false,
|
|
83
|
-
trailing: true
|
|
84
|
-
});
|
|
85
|
-
return _this;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
(0, _createClass2["default"])(PassagePrint, [{
|
|
89
|
-
key: "model",
|
|
90
|
-
set: function set(s) {
|
|
91
|
-
this._model = s;
|
|
92
|
-
|
|
93
|
-
this._rerender();
|
|
94
|
-
}
|
|
95
|
-
}, {
|
|
96
|
-
key: "options",
|
|
97
|
-
set: function set(o) {
|
|
98
|
-
this._options = o;
|
|
99
|
-
}
|
|
100
|
-
}, {
|
|
101
|
-
key: "connectedCallback",
|
|
102
|
-
value: function connectedCallback() {}
|
|
103
|
-
}]);
|
|
104
|
-
return PassagePrint;
|
|
105
|
-
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
|
|
106
|
-
|
|
107
|
-
exports["default"] = PassagePrint;
|
|
108
|
-
//# sourceMappingURL=print.js.map
|
package/lib/print.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/print.js"],"names":["log","preparePrintPassage","model","opts","instr","role","passages","map","passage","index","id","title","text","teacherInstructions","PassagePrint","_model","_options","_session","_rerender","length","printPassage","element","React","createElement","StimulusTabs","tabs","disabledTabs","showTeacherInstructions","ReactDOM","render","leading","trailing","s","o","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,2BAAN,CAAZ;;AAEA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD,EAAQC,IAAR,EAAiB;AAC3C,MAAMC,KAAK,GAAGD,IAAI,CAACE,IAAL,KAAc,YAA5B;AAEA,SAAOH,KAAK,CAACI,QAAN,CAAeC,GAAf,CAAmB,UAACC,OAAD,EAAUC,KAAV,EAAoB;AAC5C,WAAO;AACLC,MAAAA,EAAE,EAAED,KADC;AAELE,MAAAA,KAAK,EAAEH,OAAO,CAACG,KAFV;AAGLC,MAAAA,IAAI,EAAEJ,OAAO,CAACI,IAHT;AAILC,MAAAA,mBAAmB,EAAET,KAAK,IAAII,OAAO,CAACK;AAJjC,KAAP;AAMD,GAPM,CAAP;AAQD,CAXD;;IAaqBC,Y;;;;;AACnB,0BAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,IAAhB;AACA,UAAKC,QAAL,GAAgB,EAAhB;AAEA,UAAKC,SAAL,GAAiB,0BACf,YAAM;AACJ,UAAI,MAAKH,MAAL,IAAe,MAAKE,QAAxB,EAAkC;AAChC,YAAI,MAAKF,MAAL,CAAYT,QAAZ,IAAwB,MAAKS,MAAL,CAAYT,QAAZ,CAAqBa,MAArB,GAA8B,CAA1D,EAA6D;AAC3D,cAAMC,YAAY,GAAGnB,mBAAmB,CAAC,MAAKc,MAAN,EAAc,MAAKC,QAAnB,CAAxC;;AAEA,cAAMK,OAAO,gBAAGC,kBAAMC,aAAN,CAAoBC,wBAApB,EAAkC;AAChDC,YAAAA,IAAI,EAAEL,YAD0C;AAEhDM,YAAAA,YAAY,EAAE,IAFkC;AAGhDC,YAAAA,uBAAuB,EAAE,MAAKX,QAAL,CAAcX,IAAd,KAAuB;AAHA,WAAlC,CAAhB;;AAMAuB,+BAASC,MAAT,CAAgBR,OAAhB;AACD;AACF,OAZD,MAYO;AACLrB,QAAAA,GAAG,CAAC,MAAD,CAAH;AACD;AACF,KAjBc,EAkBf,EAlBe,EAmBf;AAAE8B,MAAAA,OAAO,EAAE,KAAX;AAAkBC,MAAAA,QAAQ,EAAE;AAA5B,KAnBe,CAAjB;AANY;AA2Bb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKjB,MAAL,GAAciB,CAAd;;AACA,WAAKd,SAAL;AACD;;;SAED,aAAYe,CAAZ,EAAe;AACb,WAAKjB,QAAL,GAAgBiB,CAAhB;AACD;;;WAED,6BAAoB,CAAE;;;kDAvCkBC,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport StimulusTabs from './stimulus-tabs';\nimport debug from 'debug';\n\nconst log = debug('pie-element:passage:print');\n\nconst preparePrintPassage = (model, opts) => {\n const instr = opts.role === 'instructor';\n\n return model.passages.map((passage, index) => {\n return {\n id: index,\n title: passage.title,\n text: passage.text,\n teacherInstructions: instr && passage.teacherInstructions,\n };\n });\n};\n\nexport default class PassagePrint extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._options = null;\n this._session = [];\n\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n if (this._model.passages && this._model.passages.length > 0) {\n const printPassage = preparePrintPassage(this._model, this._options);\n\n const element = React.createElement(StimulusTabs, {\n tabs: printPassage,\n disabledTabs: true,\n showTeacherInstructions: this._options.role === 'instructor',\n });\n\n ReactDOM.render(element, this);\n }\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n }\n\n set options(o) {\n this._options = o;\n }\n\n connectedCallback() {}\n}\n"],"file":"print.js"}
|
package/lib/stimulus-tabs.js
DELETED
|
@@ -1,324 +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"] = 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 _react = _interopRequireDefault(require("react"));
|
|
25
|
-
|
|
26
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
-
|
|
28
|
-
var _Tabs = _interopRequireDefault(require("@material-ui/core/Tabs"));
|
|
29
|
-
|
|
30
|
-
var _Tab = _interopRequireDefault(require("@material-ui/core/Tab"));
|
|
31
|
-
|
|
32
|
-
var _styles = require("@material-ui/core/styles");
|
|
33
|
-
|
|
34
|
-
var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
|
|
35
|
-
|
|
36
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
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 styles = function styles(theme) {
|
|
43
|
-
return {
|
|
44
|
-
root: {
|
|
45
|
-
flexGrow: 1,
|
|
46
|
-
backgroundColor: _renderUi.color.background(),
|
|
47
|
-
color: _renderUi.color.text()
|
|
48
|
-
},
|
|
49
|
-
tab: {
|
|
50
|
-
backgroundColor: _renderUi.color.background(),
|
|
51
|
-
fontSize: 'inherit'
|
|
52
|
-
},
|
|
53
|
-
stickyTabs: {
|
|
54
|
-
background: _renderUi.color.background(),
|
|
55
|
-
position: 'sticky',
|
|
56
|
-
top: 0
|
|
57
|
-
},
|
|
58
|
-
title: {
|
|
59
|
-
textTransform: 'uppercase',
|
|
60
|
-
padding: "".concat(theme.spacing.unit, "px ").concat(theme.spacing.unit * 3, "px"),
|
|
61
|
-
borderBottom: "2px solid ".concat(_renderUi.color.secondary()),
|
|
62
|
-
width: 'fit-content',
|
|
63
|
-
marginBottom: theme.spacing.unit
|
|
64
|
-
},
|
|
65
|
-
buttonContainer: {
|
|
66
|
-
background: _renderUi.color.background()
|
|
67
|
-
},
|
|
68
|
-
tabContainer: {
|
|
69
|
-
backgroundColor: _renderUi.color.background(),
|
|
70
|
-
color: _renderUi.color.text(),
|
|
71
|
-
padding: theme.spacing.unit * 2
|
|
72
|
-
},
|
|
73
|
-
breakSpaces: {
|
|
74
|
-
whiteSpace: 'break-spaces'
|
|
75
|
-
},
|
|
76
|
-
teacherInstructions: {
|
|
77
|
-
marginBottom: theme.spacing.unit * 2
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
var StimulusTabs = /*#__PURE__*/function (_React$Component) {
|
|
83
|
-
(0, _inherits2["default"])(StimulusTabs, _React$Component);
|
|
84
|
-
|
|
85
|
-
var _super = _createSuper(StimulusTabs);
|
|
86
|
-
|
|
87
|
-
function StimulusTabs() {
|
|
88
|
-
var _this;
|
|
89
|
-
|
|
90
|
-
(0, _classCallCheck2["default"])(this, StimulusTabs);
|
|
91
|
-
|
|
92
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
93
|
-
args[_key] = arguments[_key];
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
97
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
98
|
-
activeTab: 0
|
|
99
|
-
});
|
|
100
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleChange", function (event, activeTab) {
|
|
101
|
-
_this.setState(function () {
|
|
102
|
-
return {
|
|
103
|
-
activeTab: activeTab
|
|
104
|
-
};
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
setTimeout(function () {
|
|
108
|
-
var tabChangeEvent = new CustomEvent('pie-ui-passage-tabChanged', {
|
|
109
|
-
detail: {
|
|
110
|
-
tab: activeTab
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
window.dispatchEvent(tabChangeEvent);
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (event, currentTabId) {
|
|
117
|
-
var key = event.key;
|
|
118
|
-
var tabs = _this.props.tabs;
|
|
119
|
-
var newTabIndex = -1;
|
|
120
|
-
var currentIndex = tabs.findIndex(function (tab) {
|
|
121
|
-
return tab.id === currentTabId;
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
switch (key) {
|
|
125
|
-
case 'ArrowRight':
|
|
126
|
-
case 'ArrowDown':
|
|
127
|
-
newTabIndex = (currentIndex + 1) % tabs.length;
|
|
128
|
-
break;
|
|
129
|
-
|
|
130
|
-
case 'ArrowLeft':
|
|
131
|
-
case 'ArrowUp':
|
|
132
|
-
newTabIndex = (currentIndex - 1 + tabs.length) % tabs.length;
|
|
133
|
-
break;
|
|
134
|
-
|
|
135
|
-
case 'Home':
|
|
136
|
-
newTabIndex = 0;
|
|
137
|
-
break;
|
|
138
|
-
|
|
139
|
-
case 'End':
|
|
140
|
-
newTabIndex = tabs.length - 1;
|
|
141
|
-
break;
|
|
142
|
-
|
|
143
|
-
case 'Enter':
|
|
144
|
-
case ' ':
|
|
145
|
-
newTabIndex = currentIndex;
|
|
146
|
-
break;
|
|
147
|
-
|
|
148
|
-
default:
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
if (newTabIndex !== -1) {
|
|
153
|
-
event.preventDefault();
|
|
154
|
-
|
|
155
|
-
_this.handleChange(event, tabs[newTabIndex].id);
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "parsedText", function (text) {
|
|
159
|
-
// fix imported audio content for Safari PD-1391
|
|
160
|
-
var div = document.createElement('div');
|
|
161
|
-
div.innerHTML = text.replace(/(<br\/>\n)/g, '<br/>');
|
|
162
|
-
var audio = div.querySelector('audio');
|
|
163
|
-
|
|
164
|
-
if (audio) {
|
|
165
|
-
var source = document.createElement('source');
|
|
166
|
-
source.setAttribute('type', 'audio/mp3');
|
|
167
|
-
source.setAttribute('src', audio.getAttribute('src'));
|
|
168
|
-
audio.removeAttribute('src');
|
|
169
|
-
audio.appendChild(source);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
return div.innerHTML;
|
|
173
|
-
});
|
|
174
|
-
return _this;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
(0, _createClass2["default"])(StimulusTabs, [{
|
|
178
|
-
key: "renderInstructions",
|
|
179
|
-
value: function renderInstructions(showTeacherInstructions, teacherInstructions) {
|
|
180
|
-
var disabledTabs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
181
|
-
|
|
182
|
-
if (!showTeacherInstructions || !teacherInstructions) {
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
var teacherInstructionsDiv = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
187
|
-
tagName: "div",
|
|
188
|
-
className: "prompt",
|
|
189
|
-
defaultClassName: "teacher-instructions",
|
|
190
|
-
prompt: teacherInstructions
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
if (disabledTabs) {
|
|
194
|
-
return teacherInstructionsDiv;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
return /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
198
|
-
labels: {
|
|
199
|
-
hidden: 'Show Teacher Instructions',
|
|
200
|
-
visible: 'Hide Teacher Instructions'
|
|
201
|
-
}
|
|
202
|
-
}, teacherInstructionsDiv);
|
|
203
|
-
}
|
|
204
|
-
}, {
|
|
205
|
-
key: "render",
|
|
206
|
-
value: function render() {
|
|
207
|
-
var _this2 = this;
|
|
208
|
-
|
|
209
|
-
var _this$props = this.props,
|
|
210
|
-
classes = _this$props.classes,
|
|
211
|
-
tabs = _this$props.tabs,
|
|
212
|
-
disabledTabs = _this$props.disabledTabs,
|
|
213
|
-
showTeacherInstructions = _this$props.showTeacherInstructions;
|
|
214
|
-
var activeTab = this.state.activeTab;
|
|
215
|
-
|
|
216
|
-
if (tabs && tabs.length > 1) {
|
|
217
|
-
return disabledTabs ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
218
|
-
className: (0, _classnames["default"])(classes.root, 'passages')
|
|
219
|
-
}, tabs.map(function (tab) {
|
|
220
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
221
|
-
key: tab.id,
|
|
222
|
-
className: "passage-".concat(tab.id),
|
|
223
|
-
id: "tabpanel-".concat(tab.id),
|
|
224
|
-
"aria-labelledby": "tab-".concat(tab.id),
|
|
225
|
-
"aria-controls": "tabpanel-".concat(tab.id),
|
|
226
|
-
tabIndex: "0"
|
|
227
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
228
|
-
className: classes.tabContainer,
|
|
229
|
-
id: "tabpanel-".concat(tab.id),
|
|
230
|
-
role: "tabpanel",
|
|
231
|
-
"aria-labelledby": "button-".concat(tab.id)
|
|
232
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
233
|
-
className: (0, _classnames["default"])(classes.title, 'title'),
|
|
234
|
-
dangerouslySetInnerHTML: {
|
|
235
|
-
__html: _this2.parsedText(tab.title)
|
|
236
|
-
}
|
|
237
|
-
}), _this2.renderInstructions(showTeacherInstructions, tab.teacherInstructions, disabledTabs), /*#__PURE__*/_react["default"].createElement(_renderUi.Purpose, {
|
|
238
|
-
purpose: "passage-text"
|
|
239
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
240
|
-
className: "text",
|
|
241
|
-
key: tab.id,
|
|
242
|
-
dangerouslySetInnerHTML: {
|
|
243
|
-
__html: _this2.parsedText(tab.text)
|
|
244
|
-
}
|
|
245
|
-
}))));
|
|
246
|
-
})) : /*#__PURE__*/_react["default"].createElement("div", {
|
|
247
|
-
className: (0, _classnames["default"])(classes.root, 'passages')
|
|
248
|
-
}, /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
|
|
249
|
-
classes: {
|
|
250
|
-
root: classes.stickyTabs,
|
|
251
|
-
flexContainer: classes.buttonContainer
|
|
252
|
-
},
|
|
253
|
-
value: activeTab,
|
|
254
|
-
onChange: this.handleChange
|
|
255
|
-
}, tabs.map(function (tab) {
|
|
256
|
-
return /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
|
|
257
|
-
className: classes.tab,
|
|
258
|
-
key: tab.id,
|
|
259
|
-
id: "button-".concat(tab.id),
|
|
260
|
-
label: /*#__PURE__*/_react["default"].createElement(_renderUi.Purpose, {
|
|
261
|
-
purpose: "passage-title"
|
|
262
|
-
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
263
|
-
dangerouslySetInnerHTML: {
|
|
264
|
-
__html: _this2.parsedText(tab.title)
|
|
265
|
-
}
|
|
266
|
-
})),
|
|
267
|
-
value: tab.id,
|
|
268
|
-
tabIndex: activeTab === tab.id ? 0 : -1,
|
|
269
|
-
"aria-controls": "tabpanel-".concat(tab.id),
|
|
270
|
-
"aria-selected": activeTab === tab.id,
|
|
271
|
-
onFocus: function onFocus() {
|
|
272
|
-
return _this2.handleChange(null, tab.id);
|
|
273
|
-
},
|
|
274
|
-
onKeyDown: function onKeyDown(event) {
|
|
275
|
-
return _this2.handleKeyDown(event, tab.id);
|
|
276
|
-
}
|
|
277
|
-
});
|
|
278
|
-
})), tabs.map(function (tab) {
|
|
279
|
-
return activeTab === tab.id ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
280
|
-
className: classes.tabContainer,
|
|
281
|
-
key: tab.id,
|
|
282
|
-
id: "tabpanel-".concat(tab.id),
|
|
283
|
-
role: "tabpanel",
|
|
284
|
-
"aria-labelledby": "button-".concat(tab.id)
|
|
285
|
-
}, _this2.renderInstructions(showTeacherInstructions, tab.teacherInstructions), /*#__PURE__*/_react["default"].createElement(_renderUi.Purpose, {
|
|
286
|
-
purpose: "passage-text"
|
|
287
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
288
|
-
key: tab.id,
|
|
289
|
-
dangerouslySetInnerHTML: {
|
|
290
|
-
__html: _this2.parsedText(tab.text)
|
|
291
|
-
}
|
|
292
|
-
}))) : null;
|
|
293
|
-
}));
|
|
294
|
-
} else if (tabs && tabs[0]) {
|
|
295
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, this.renderInstructions(showTeacherInstructions, tabs[0].teacherInstructions, disabledTabs), /*#__PURE__*/_react["default"].createElement("div", {
|
|
296
|
-
className: (0, _classnames["default"])(classes.root, classes.tabContainer, classes.breakSpaces, 'passage')
|
|
297
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
298
|
-
className: "text",
|
|
299
|
-
dangerouslySetInnerHTML: {
|
|
300
|
-
__html: this.parsedText(tabs[0].text)
|
|
301
|
-
}
|
|
302
|
-
})));
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
}]);
|
|
306
|
-
return StimulusTabs;
|
|
307
|
-
}(_react["default"].Component);
|
|
308
|
-
|
|
309
|
-
StimulusTabs.propTypes = {
|
|
310
|
-
classes: _propTypes["default"].object.isRequired,
|
|
311
|
-
tabs: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
312
|
-
id: _propTypes["default"].number.isRequired,
|
|
313
|
-
title: _propTypes["default"].string.isRequired,
|
|
314
|
-
text: _propTypes["default"].string.isRequired,
|
|
315
|
-
teacherInstructions: _propTypes["default"].string
|
|
316
|
-
}).isRequired).isRequired,
|
|
317
|
-
disabledTabs: _propTypes["default"].bool,
|
|
318
|
-
showTeacherInstructions: _propTypes["default"].bool
|
|
319
|
-
};
|
|
320
|
-
|
|
321
|
-
var _default = (0, _styles.withStyles)(styles)(StimulusTabs);
|
|
322
|
-
|
|
323
|
-
exports["default"] = _default;
|
|
324
|
-
//# sourceMappingURL=stimulus-tabs.js.map
|