@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/passage",
3
- "version": "2.4.1-next.41+9530ab39b",
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.1",
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": "9530ab39bded38fd99b6d99c591eaccd9f4b4054",
20
+ "gitHead": "818443fb6fd0512463d0da72768215bf08f8bef7",
21
21
  "scripts": {
22
22
  "postpublish": "../../scripts/postpublish"
23
23
  },
@@ -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"}
@@ -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