@pie-element/passage 5.3.4-next.0 → 6.0.0-beta.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.
@@ -1,133 +1,80 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createDefaultModel = createDefaultModel;
9
8
  exports.model = model;
10
9
  exports.validate = exports.normalize = void 0;
11
-
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
-
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
10
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
19
-
20
11
  var _defaults = _interopRequireDefault(require("./defaults"));
21
-
22
- 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; }
23
-
24
- 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; }
25
-
26
- var getContent = function getContent(html) {
27
- return (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');
28
- };
29
-
30
- var checkNullish = function checkNullish(value) {
31
- return value !== null && value !== undefined;
32
- };
33
-
34
- var isEnabled = function isEnabled(value, defaultValue) {
35
- return checkNullish(value) ? value : defaultValue;
36
- };
37
-
38
- function createDefaultModel() {
39
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
40
- return new Promise(function (resolve) {
41
- resolve(_objectSpread(_objectSpread({}, _defaults["default"]), model));
12
+ const getContent = html => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');
13
+ const checkNullish = value => value !== null && value !== undefined;
14
+ const isEnabled = (value, defaultValue) => checkNullish(value) ? value : defaultValue;
15
+ function createDefaultModel(model = {}) {
16
+ return new Promise(resolve => {
17
+ resolve({
18
+ ..._defaults.default,
19
+ ...model
20
+ });
42
21
  });
43
22
  }
44
-
45
- var normalize = function normalize(question) {
46
- return _objectSpread(_objectSpread({}, _defaults["default"]), question);
47
- };
48
-
23
+ const normalize = question => ({
24
+ ..._defaults.default,
25
+ ...question
26
+ });
49
27
  exports.normalize = normalize;
50
-
51
- var normalizeTeacherInstructions = function normalizeTeacherInstructions(instructions, env) {
52
- var role = env.role,
53
- mode = env.mode;
54
-
28
+ const normalizeTeacherInstructions = (instructions, env) => {
29
+ const {
30
+ role,
31
+ mode
32
+ } = env;
55
33
  if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {
56
34
  return instructions || '';
57
35
  }
58
-
59
36
  return '';
60
37
  };
38
+
61
39
  /**
62
40
  *
63
41
  * @param {*} question
64
42
  * @param {*} session
65
43
  * @param {*} env
66
44
  */
67
-
68
-
69
- function model(_x, _x2, _x3) {
70
- return _model.apply(this, arguments);
71
- }
72
-
73
- function _model() {
74
- _model = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(question, session, env) {
75
- var normalizedQuestion, normalizedPassages;
76
- return _regenerator["default"].wrap(function _callee$(_context) {
77
- while (1) {
78
- switch (_context.prev = _context.next) {
79
- case 0:
80
- normalizedQuestion = normalize(question);
81
- normalizedPassages = normalizedQuestion.passages.map(function (passage, index) {
82
- return {
83
- teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, normalizedQuestion.teacherInstructionsEnabled) ? normalizeTeacherInstructions(passage.teacherInstructions, env) : '',
84
- label: getContent(passage.title) ? passage.title : "Passage ".concat(index + 1),
85
- title: isEnabled(passage.titleEnabled, normalizedQuestion.titleEnabled) ? passage.title || '' : '',
86
- subtitle: isEnabled(passage.subtitleEnabled, normalizedQuestion.subtitleEnabled) ? passage.subtitle || '' : '',
87
- author: isEnabled(passage.authorEnabled, normalizedQuestion.authorEnabled) ? passage.author || '' : '',
88
- text: isEnabled(passage.textEnabled, normalizedQuestion.textEnabled) ? passage.text || '' : ''
89
- };
90
- });
91
- return _context.abrupt("return", _objectSpread(_objectSpread({}, normalizedQuestion), {}, {
92
- passages: normalizedPassages
93
- }));
94
-
95
- case 3:
96
- case "end":
97
- return _context.stop();
98
- }
99
- }
100
- }, _callee);
45
+ async function model(question, session, env) {
46
+ const normalizedQuestion = normalize(question);
47
+ const normalizedPassages = normalizedQuestion.passages.map((passage, index) => ({
48
+ teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, normalizedQuestion.teacherInstructionsEnabled) ? normalizeTeacherInstructions(passage.teacherInstructions, env) : '',
49
+ label: getContent(passage.title) ? passage.title : `Passage ${index + 1}`,
50
+ title: isEnabled(passage.titleEnabled, normalizedQuestion.titleEnabled) ? passage.title || '' : '',
51
+ subtitle: isEnabled(passage.subtitleEnabled, normalizedQuestion.subtitleEnabled) ? passage.subtitle || '' : '',
52
+ author: isEnabled(passage.authorEnabled, normalizedQuestion.authorEnabled) ? passage.author || '' : '',
53
+ text: isEnabled(passage.textEnabled, normalizedQuestion.textEnabled) ? passage.text || '' : ''
101
54
  }));
102
- return _model.apply(this, arguments);
55
+ return {
56
+ ...normalizedQuestion,
57
+ passages: normalizedPassages
58
+ };
103
59
  }
104
-
105
- var validate = function validate() {
106
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
107
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
108
- var errors = {};
109
- var passagesErrors = {};
110
- (model.passages || []).forEach(function (passage, index) {
111
- var err = {};
112
- ['teacherInstructions', 'title', 'subtitle', 'author', 'text'].forEach(function (field) {
113
- var _config$field;
114
-
115
- if ((_config$field = config[field]) !== null && _config$field !== void 0 && _config$field.required && !getContent(passage[field])) {
60
+ const validate = (model = {}, config = {}) => {
61
+ const errors = {};
62
+ const passagesErrors = {};
63
+ (model.passages || []).forEach((passage, index) => {
64
+ const err = {};
65
+ ['teacherInstructions', 'title', 'subtitle', 'author', 'text'].forEach(field => {
66
+ if (config[field]?.required && !getContent(passage[field])) {
116
67
  err[field] = 'This field is required.';
117
68
  }
118
69
  });
119
-
120
- if (!(0, _isEmpty["default"])(err)) {
70
+ if (!(0, _isEmpty.default)(err)) {
121
71
  passagesErrors[index] = err;
122
72
  }
123
73
  });
124
-
125
- if (!(0, _isEmpty["default"])(passagesErrors)) {
74
+ if (!(0, _isEmpty.default)(passagesErrors)) {
126
75
  errors.passages = passagesErrors;
127
76
  }
128
-
129
77
  return errors;
130
78
  };
131
-
132
79
  exports.validate = validate;
133
80
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["getContent","html","replace","checkNullish","value","undefined","isEnabled","defaultValue","createDefaultModel","model","Promise","resolve","defaults","normalize","question","normalizeTeacherInstructions","instructions","env","role","mode","session","normalizedQuestion","normalizedPassages","passages","map","passage","index","teacherInstructions","teacherInstructionsEnabled","label","title","titleEnabled","subtitle","subtitleEnabled","author","authorEnabled","text","textEnabled","validate","config","errors","passagesErrors","forEach","err","field","required"],"mappings":"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","sourcesContent":["import isEmpty from 'lodash/isEmpty';\n\nimport defaults from './defaults';\n\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nconst checkNullish = (value) => value !== null && value !== undefined;\n\nconst isEnabled = (value, defaultValue) => (checkNullish(value) ? value : defaultValue);\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({ ...defaults, ...model });\n });\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nconst normalizeTeacherInstructions = (instructions, env) => {\n const { role, mode } = env;\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n return instructions || '';\n }\n\n return '';\n};\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n\n const normalizedPassages = normalizedQuestion.passages.map((passage, index) => ({\n teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, normalizedQuestion.teacherInstructionsEnabled)\n ? normalizeTeacherInstructions(passage.teacherInstructions, env)\n : '',\n label: getContent(passage.title) ? passage.title : `Passage ${index + 1}`,\n title: isEnabled(passage.titleEnabled, normalizedQuestion.titleEnabled) ? passage.title || '' : '',\n subtitle: isEnabled(passage.subtitleEnabled, normalizedQuestion.subtitleEnabled) ? passage.subtitle || '' : '',\n author: isEnabled(passage.authorEnabled, normalizedQuestion.authorEnabled) ? passage.author || '' : '',\n text: isEnabled(passage.textEnabled, normalizedQuestion.textEnabled) ? passage.text || '' : '',\n }));\n\n return {\n ...normalizedQuestion,\n passages: normalizedPassages,\n };\n}\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n const passagesErrors = {};\n\n (model.passages || []).forEach((passage, index) => {\n const err = {};\n\n ['teacherInstructions', 'title', 'subtitle', 'author', 'text'].forEach((field) => {\n if (config[field]?.required && !getContent(passage[field])) {\n err[field] = 'This field is required.';\n }\n });\n\n if (!isEmpty(err)) {\n passagesErrors[index] = err;\n }\n });\n\n if (!isEmpty(passagesErrors)) {\n errors.passages = passagesErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_isEmpty","_interopRequireDefault","require","_defaults","getContent","html","replace","checkNullish","value","undefined","isEnabled","defaultValue","createDefaultModel","model","Promise","resolve","defaults","normalize","question","exports","normalizeTeacherInstructions","instructions","env","role","mode","session","normalizedQuestion","normalizedPassages","passages","map","passage","index","teacherInstructions","teacherInstructionsEnabled","label","title","titleEnabled","subtitle","subtitleEnabled","author","authorEnabled","text","textEnabled","validate","config","errors","passagesErrors","forEach","err","field","required","isEmpty"],"sources":["../src/index.js"],"sourcesContent":["import isEmpty from 'lodash/isEmpty';\n\nimport defaults from './defaults';\n\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nconst checkNullish = (value) => value !== null && value !== undefined;\n\nconst isEnabled = (value, defaultValue) => (checkNullish(value) ? value : defaultValue);\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({ ...defaults, ...model });\n });\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nconst normalizeTeacherInstructions = (instructions, env) => {\n const { role, mode } = env;\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n return instructions || '';\n }\n\n return '';\n};\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n\n const normalizedPassages = normalizedQuestion.passages.map((passage, index) => ({\n teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, normalizedQuestion.teacherInstructionsEnabled)\n ? normalizeTeacherInstructions(passage.teacherInstructions, env)\n : '',\n label: getContent(passage.title) ? passage.title : `Passage ${index + 1}`,\n title: isEnabled(passage.titleEnabled, normalizedQuestion.titleEnabled) ? passage.title || '' : '',\n subtitle: isEnabled(passage.subtitleEnabled, normalizedQuestion.subtitleEnabled) ? passage.subtitle || '' : '',\n author: isEnabled(passage.authorEnabled, normalizedQuestion.authorEnabled) ? passage.author || '' : '',\n text: isEnabled(passage.textEnabled, normalizedQuestion.textEnabled) ? passage.text || '' : '',\n }));\n\n return {\n ...normalizedQuestion,\n passages: normalizedPassages,\n };\n}\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n const passagesErrors = {};\n\n (model.passages || []).forEach((passage, index) => {\n const err = {};\n\n ['teacherInstructions', 'title', 'subtitle', 'author', 'text'].forEach((field) => {\n if (config[field]?.required && !getContent(passage[field])) {\n err[field] = 'This field is required.';\n }\n });\n\n if (!isEmpty(err)) {\n passagesErrors[index] = err;\n }\n });\n\n if (!isEmpty(passagesErrors)) {\n errors.passages = passagesErrors;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/passage-controller",
3
3
  "private": true,
4
- "version": "2.2.1",
4
+ "version": "3.0.0-beta.0",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
package/lib/index.js CHANGED
@@ -1,119 +1,69 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
25
-
7
+ exports.default = void 0;
26
8
  var _piePlayerEvents = require("@pie-framework/pie-player-events");
27
-
28
9
  var _mathRendering = require("@pie-lib/math-rendering");
29
-
30
10
  var _react = _interopRequireDefault(require("react"));
31
-
32
- var _reactDom = _interopRequireDefault(require("react-dom"));
33
-
11
+ var _client = require("react-dom/client");
34
12
  var _stimulusTabs = _interopRequireDefault(require("./stimulus-tabs"));
35
-
36
- 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; }
37
-
38
- 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; }
39
-
40
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
-
42
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
-
44
- var PiePassage = /*#__PURE__*/function (_HTMLElement) {
45
- (0, _inherits2["default"])(PiePassage, _HTMLElement);
46
-
47
- var _super = _createSuper(PiePassage);
48
-
49
- function PiePassage() {
50
- var _this;
51
-
52
- (0, _classCallCheck2["default"])(this, PiePassage);
53
- _this = _super.call(this);
54
- _this._model = {
13
+ class PiePassage extends HTMLElement {
14
+ constructor() {
15
+ super();
16
+ this._model = {
55
17
  passages: []
56
18
  };
57
- _this._session = null;
58
- return _this;
19
+ this._session = null;
20
+ this._root = null;
59
21
  }
60
-
61
- (0, _createClass2["default"])(PiePassage, [{
62
- key: "setLangAttribute",
63
- value: function setLangAttribute() {
64
- var language = this._model && (0, _typeof2["default"])(this._model.language) ? this._model.language : '';
65
- var lang = language ? language.slice(0, 2) : 'en';
66
- this.setAttribute('lang', lang);
67
- }
68
- }, {
69
- key: "model",
70
- set: function set(s) {
71
- this._model = s;
72
- this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), this._session, !!this._model));
73
- this.setLangAttribute();
74
-
75
- this._render();
76
- }
77
- }, {
78
- key: "session",
79
- set: function set(s) {
80
- this._session = s;
81
- }
82
- }, {
83
- key: "connectedCallback",
84
- value: function connectedCallback() {
85
- this.setAttribute('aria-label', 'Passage');
86
- this.setAttribute('role', 'region');
87
-
88
- this._render();
89
- }
90
- }, {
91
- key: "_render",
92
- value: function _render() {
93
- var _this2 = this;
94
-
95
- var _this$_model$passages = this._model.passages,
96
- passages = _this$_model$passages === void 0 ? [] : _this$_model$passages;
97
-
98
- if (this._model.passages.length > 0) {
99
- var passagesTabs = passages.map(function (passage, index) {
100
- return _objectSpread({
101
- id: index
102
- }, passage);
103
- });
104
-
105
- var elem = /*#__PURE__*/_react["default"].createElement(_stimulusTabs["default"], {
106
- tabs: passagesTabs
107
- });
108
-
109
- _reactDom["default"].render(elem, this, function () {
110
- return (0, _mathRendering.renderMath)(_this2);
111
- });
22
+ setLangAttribute() {
23
+ const language = this._model && typeof this._model.language ? this._model.language : '';
24
+ const lang = language ? language.slice(0, 2) : 'en';
25
+ this.setAttribute('lang', lang);
26
+ }
27
+ set model(s) {
28
+ this._model = s;
29
+ this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), this._session, !!this._model));
30
+ this.setLangAttribute();
31
+ this._render();
32
+ }
33
+ set session(s) {
34
+ this._session = s;
35
+ }
36
+ connectedCallback() {
37
+ this.setAttribute('aria-label', 'Passage');
38
+ this.setAttribute('role', 'region');
39
+ this._render();
40
+ }
41
+ _render() {
42
+ const {
43
+ passages = []
44
+ } = this._model;
45
+ if (this._model.passages.length > 0) {
46
+ const passagesTabs = passages.map((passage, index) => ({
47
+ id: index,
48
+ ...passage
49
+ }));
50
+ const elem = /*#__PURE__*/_react.default.createElement(_stimulusTabs.default, {
51
+ tabs: passagesTabs
52
+ });
53
+ if (!this._root) {
54
+ this._root = (0, _client.createRoot)(this);
112
55
  }
56
+ this._root.render(elem);
57
+ queueMicrotask(() => {
58
+ (0, _mathRendering.renderMath)(this);
59
+ });
113
60
  }
114
- }]);
115
- return PiePassage;
116
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
117
-
118
- exports["default"] = PiePassage;
61
+ }
62
+ disconnectedCallback() {
63
+ if (this._root) {
64
+ this._root.unmount();
65
+ }
66
+ }
67
+ }
68
+ exports.default = PiePassage;
119
69
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["PiePassage","_model","passages","_session","language","lang","slice","setAttribute","s","dispatchEvent","ModelSetEvent","tagName","toLowerCase","setLangAttribute","_render","length","passagesTabs","map","passage","index","id","elem","React","createElement","StimulusTabs","tabs","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;IAEqBA,U;;;;;AACnB,wBAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAc;AACZC,MAAAA,QAAQ,EAAE;AADE,KAAd;AAGA,UAAKC,QAAL,GAAgB,IAAhB;AALY;AAMb;;;;WAED,4BAAmB;AACjB,UAAMC,QAAQ,GAAG,KAAKH,MAAL,6BAAsB,KAAKA,MAAL,CAAYG,QAAlC,IAA6C,KAAKH,MAAL,CAAYG,QAAzD,GAAoE,EAArF;AACA,UAAMC,IAAI,GAAGD,QAAQ,GAAGA,QAAQ,CAACE,KAAT,CAAe,CAAf,EAAkB,CAAlB,CAAH,GAA0B,IAA/C;AACA,WAAKC,YAAL,CAAkB,MAAlB,EAA0BF,IAA1B;AACD;;;SAED,aAAUG,CAAV,EAAa;AACX,WAAKP,MAAL,GAAcO,CAAd;AACA,WAAKC,aAAL,CAAmB,IAAIC,8BAAJ,CAAkB,KAAKC,OAAL,CAAaC,WAAb,EAAlB,EAA8C,KAAKT,QAAnD,EAA6D,CAAC,CAAC,KAAKF,MAApE,CAAnB;AACA,WAAKY,gBAAL;;AAEA,WAAKC,OAAL;AACD;;;SAED,aAAYN,CAAZ,EAAe;AACb,WAAKL,QAAL,GAAgBK,CAAhB;AACD;;;WAED,6BAAoB;AAClB,WAAKD,YAAL,CAAkB,YAAlB,EAAgC,SAAhC;AACA,WAAKA,YAAL,CAAkB,MAAlB,EAA0B,QAA1B;;AACA,WAAKO,OAAL;AACD;;;WAED,mBAAU;AAAA;;AACR,kCAA0B,KAAKb,MAA/B,CAAQC,QAAR;AAAA,UAAQA,QAAR,sCAAmB,EAAnB;;AAEA,UAAI,KAAKD,MAAL,CAAYC,QAAZ,CAAqBa,MAArB,GAA8B,CAAlC,EAAqC;AACnC,YAAMC,YAAY,GAAGd,QAAQ,CAACe,GAAT,CAAa,UAACC,OAAD,EAAUC,KAAV;AAAA;AAChCC,YAAAA,EAAE,EAAED;AAD4B,aAE7BD,OAF6B;AAAA,SAAb,CAArB;;AAKA,YAAMG,IAAI,gBAAGC,kBAAMC,aAAN,CAAoBC,wBAApB,EAAkC;AAC7CC,UAAAA,IAAI,EAAET;AADuC,SAAlC,CAAb;;AAIAU,6BAASC,MAAT,CAAgBN,IAAhB,EAAsB,IAAtB,EAA4B;AAAA,iBAAM,+BAAW,MAAX,CAAN;AAAA,SAA5B;AACD;AACF;;;kDAhDqCO,W","sourcesContent":["import { ModelSetEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport StimulusTabs from './stimulus-tabs';\n\nexport default class PiePassage extends HTMLElement {\n constructor() {\n super();\n this._model = {\n passages: [],\n };\n this._session = null;\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n }\n\n set model(s) {\n this._model = s;\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), this._session, !!this._model));\n this.setLangAttribute();\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 { passages = [] } = this._model;\n\n if (this._model.passages.length > 0) {\n const passagesTabs = passages.map((passage, index) => ({\n id: index,\n ...passage,\n }));\n\n const elem = React.createElement(StimulusTabs, {\n tabs: passagesTabs,\n });\n\n ReactDOM.render(elem, this, () => renderMath(this));\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_piePlayerEvents","require","_mathRendering","_react","_interopRequireDefault","_client","_stimulusTabs","PiePassage","HTMLElement","constructor","_model","passages","_session","_root","setLangAttribute","language","lang","slice","setAttribute","model","s","dispatchEvent","ModelSetEvent","tagName","toLowerCase","_render","session","connectedCallback","length","passagesTabs","map","passage","index","id","elem","React","createElement","StimulusTabs","tabs","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","exports","default"],"sources":["../src/index.js"],"sourcesContent":["import { ModelSetEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport StimulusTabs from './stimulus-tabs';\n\nexport default class PiePassage extends HTMLElement {\n constructor() {\n super();\n this._model = {\n passages: [],\n };\n this._session = null;\n this._root = null;\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n }\n\n set model(s) {\n this._model = s;\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), this._session, !!this._model));\n this.setLangAttribute();\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 { passages = [] } = this._model;\n\n if (this._model.passages.length > 0) {\n const passagesTabs = passages.map((passage, index) => ({\n id: index,\n ...passage,\n }));\n\n const elem = React.createElement(StimulusTabs, {\n tabs: passagesTabs,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(elem);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAEA,IAAAK,aAAA,GAAAF,sBAAA,CAAAH,OAAA;AAEe,MAAMM,UAAU,SAASC,WAAW,CAAC;EAClDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,MAAM,GAAG;MACZC,QAAQ,EAAE;IACZ,CAAC;IACD,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACC,KAAK,GAAG,IAAI;EACnB;EAEAC,gBAAgBA,CAAA,EAAG;IACjB,MAAMC,QAAQ,GAAG,IAAI,CAACL,MAAM,IAAI,OAAO,IAAI,CAACA,MAAM,CAACK,QAAQ,GAAG,IAAI,CAACL,MAAM,CAACK,QAAQ,GAAG,EAAE;IACvF,MAAMC,IAAI,GAAGD,QAAQ,GAAGA,QAAQ,CAACE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IACnD,IAAI,CAACC,YAAY,CAAC,MAAM,EAAEF,IAAI,CAAC;EACjC;EAEA,IAAIG,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACV,MAAM,GAAGU,CAAC;IACf,IAAI,CAACC,aAAa,CAAC,IAAIC,8BAAa,CAAC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACZ,QAAQ,EAAE,CAAC,CAAC,IAAI,CAACF,MAAM,CAAC,CAAC;IAC/F,IAAI,CAACI,gBAAgB,CAAC,CAAC;IAEvB,IAAI,CAACW,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIC,OAAOA,CAACN,CAAC,EAAE;IACb,IAAI,CAACR,QAAQ,GAAGQ,CAAC;EACnB;EAEAO,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACT,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC;IAC1C,IAAI,CAACA,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;IACnC,IAAI,CAACO,OAAO,CAAC,CAAC;EAChB;EAEAA,OAAOA,CAAA,EAAG;IACR,MAAM;MAAEd,QAAQ,GAAG;IAAG,CAAC,GAAG,IAAI,CAACD,MAAM;IAErC,IAAI,IAAI,CAACA,MAAM,CAACC,QAAQ,CAACiB,MAAM,GAAG,CAAC,EAAE;MACnC,MAAMC,YAAY,GAAGlB,QAAQ,CAACmB,GAAG,CAAC,CAACC,OAAO,EAAEC,KAAK,MAAM;QACrDC,EAAE,EAAED,KAAK;QACT,GAAGD;MACL,CAAC,CAAC,CAAC;MAEH,MAAMG,IAAI,gBAAGC,cAAK,CAACC,aAAa,CAACC,qBAAY,EAAE;QAC7CC,IAAI,EAAET;MACR,CAAC,CAAC;MAEF,IAAI,CAAC,IAAI,CAAChB,KAAK,EAAE;QACf,IAAI,CAACA,KAAK,GAAG,IAAA0B,kBAAU,EAAC,IAAI,CAAC;MAC/B;MACA,IAAI,CAAC1B,KAAK,CAAC2B,MAAM,CAACN,IAAI,CAAC;MACvBO,cAAc,CAAC,MAAM;QACnB,IAAAC,yBAAU,EAAC,IAAI,CAAC;MAClB,CAAC,CAAC;IACJ;EACF;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAAC9B,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAAC+B,OAAO,CAAC,CAAC;IACtB;EACF;AACF;AAACC,OAAA,CAAAC,OAAA,GAAAvC,UAAA","ignoreList":[]}
package/lib/print.js CHANGED
@@ -1,95 +1,56 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
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
-
7
+ exports.default = void 0;
24
8
  var _react = _interopRequireDefault(require("react"));
25
-
26
- var _reactDom = _interopRequireDefault(require("react-dom"));
27
-
9
+ var _client = require("react-dom/client");
28
10
  var _debounce = _interopRequireDefault(require("lodash/debounce"));
29
-
30
11
  var _debug = _interopRequireDefault(require("debug"));
31
-
32
12
  var _stimulusTabs = _interopRequireDefault(require("./stimulus-tabs"));
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 checkNullish = function checkNullish(value) {
41
- return value !== null && value !== undefined;
13
+ const log = (0, _debug.default)('pie-element:passage:print');
14
+ const checkNullish = value => value !== null && value !== undefined;
15
+ const isEnabled = (value, defaultValue) => checkNullish(value) ? value : defaultValue;
16
+ const preparePrintPassage = (model, opts) => {
17
+ const isInstructor = opts.role === 'instructor';
18
+
19
+ // TODO: also update '../../configure/src/defaults.js' and '../../controller/src/defaults.js' when updating defaultValue
20
+ const teacherInstructionsEnabled = isEnabled(model.teacherInstructionsEnabled, true);
21
+ const titleEnabled = isEnabled(model.titleEnabled, true);
22
+ const authorEnabled = isEnabled(model.authorEnabled, false);
23
+ const subtitleEnabled = isEnabled(model.subtitleEnabled, true);
24
+ const textEnabled = isEnabled(model.textEnabled, true);
25
+ return model.passages.map((passage, index) => ({
26
+ id: index,
27
+ teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, teacherInstructionsEnabled) ? isInstructor && passage.teacherInstructions || '' : '',
28
+ label: passage.title || `Passage ${index + 1}`,
29
+ title: isEnabled(passage.titleEnabled, titleEnabled) ? passage.title || '' : '',
30
+ author: isEnabled(passage.authorEnabled, authorEnabled) ? passage.author || '' : '',
31
+ subtitle: isEnabled(passage.subtitleEnabled, subtitleEnabled) ? passage.subtitle || '' : '',
32
+ text: isEnabled(passage.textEnabled, textEnabled) ? passage.text || '' : ''
33
+ }));
42
34
  };
43
-
44
- var isEnabled = function isEnabled(value, defaultValue) {
45
- return checkNullish(value) ? value : defaultValue;
46
- };
47
-
48
- var preparePrintPassage = function preparePrintPassage(model, opts) {
49
- var isInstructor = opts.role === 'instructor'; // TODO: also update '../../configure/src/defaults.js' and '../../controller/src/defaults.js' when updating defaultValue
50
-
51
- var teacherInstructionsEnabled = isEnabled(model.teacherInstructionsEnabled, true);
52
- var titleEnabled = isEnabled(model.titleEnabled, true);
53
- var authorEnabled = isEnabled(model.authorEnabled, false);
54
- var subtitleEnabled = isEnabled(model.subtitleEnabled, true);
55
- var textEnabled = isEnabled(model.textEnabled, true);
56
- return model.passages.map(function (passage, index) {
57
- return {
58
- id: index,
59
- teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, teacherInstructionsEnabled) ? isInstructor && passage.teacherInstructions || '' : '',
60
- label: passage.title || "Passage ".concat(index + 1),
61
- title: isEnabled(passage.titleEnabled, titleEnabled) ? passage.title || '' : '',
62
- author: isEnabled(passage.authorEnabled, authorEnabled) ? passage.author || '' : '',
63
- subtitle: isEnabled(passage.subtitleEnabled, subtitleEnabled) ? passage.subtitle || '' : '',
64
- text: isEnabled(passage.textEnabled, textEnabled) ? passage.text || '' : ''
65
- };
66
- });
67
- };
68
-
69
- var PassagePrint = /*#__PURE__*/function (_HTMLElement) {
70
- (0, _inherits2["default"])(PassagePrint, _HTMLElement);
71
-
72
- var _super = _createSuper(PassagePrint);
73
-
74
- function PassagePrint() {
75
- var _this;
76
-
77
- (0, _classCallCheck2["default"])(this, PassagePrint);
78
- _this = _super.call(this);
79
- _this._model = null;
80
- _this._options = null;
81
- _this._session = [];
82
- _this._rerender = (0, _debounce["default"])(function () {
83
- if (_this._model && _this._session) {
84
- if (_this._model.passages && _this._model.passages.length > 0) {
85
- var printPassage = preparePrintPassage(_this._model, _this._options);
86
-
87
- var element = /*#__PURE__*/_react["default"].createElement(_stimulusTabs["default"], {
35
+ class PassagePrint extends HTMLElement {
36
+ constructor() {
37
+ super();
38
+ this._model = null;
39
+ this._options = null;
40
+ this._session = [];
41
+ this._root = null;
42
+ this._rerender = (0, _debounce.default)(() => {
43
+ if (this._model && this._session) {
44
+ if (this._model.passages && this._model.passages.length > 0) {
45
+ const printPassage = preparePrintPassage(this._model, this._options);
46
+ const element = /*#__PURE__*/_react.default.createElement(_stimulusTabs.default, {
88
47
  disabledTabs: true,
89
48
  tabs: printPassage
90
49
  });
91
-
92
- _reactDom["default"].render(element, (0, _assertThisInitialized2["default"])(_this));
50
+ if (!this._root) {
51
+ this._root = (0, _client.createRoot)(this);
52
+ }
53
+ this._root.render(element);
93
54
  }
94
55
  } else {
95
56
  log('skip');
@@ -98,27 +59,20 @@ var PassagePrint = /*#__PURE__*/function (_HTMLElement) {
98
59
  leading: false,
99
60
  trailing: true
100
61
  });
101
- return _this;
102
62
  }
103
-
104
- (0, _createClass2["default"])(PassagePrint, [{
105
- key: "model",
106
- set: function set(s) {
107
- this._model = s;
108
-
109
- this._rerender();
110
- }
111
- }, {
112
- key: "options",
113
- set: function set(o) {
114
- this._options = o;
63
+ set model(s) {
64
+ this._model = s;
65
+ this._rerender();
66
+ }
67
+ set options(o) {
68
+ this._options = o;
69
+ }
70
+ connectedCallback() {}
71
+ disconnectedCallback() {
72
+ if (this._root) {
73
+ this._root.unmount();
115
74
  }
116
- }, {
117
- key: "connectedCallback",
118
- value: function connectedCallback() {}
119
- }]);
120
- return PassagePrint;
121
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
122
-
123
- exports["default"] = PassagePrint;
75
+ }
76
+ }
77
+ exports.default = PassagePrint;
124
78
  //# sourceMappingURL=print.js.map
package/lib/print.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/print.js"],"names":["log","checkNullish","value","undefined","isEnabled","defaultValue","preparePrintPassage","model","opts","isInstructor","role","teacherInstructionsEnabled","titleEnabled","authorEnabled","subtitleEnabled","textEnabled","passages","map","passage","index","id","teacherInstructions","label","title","author","subtitle","text","PassagePrint","_model","_options","_session","_rerender","length","printPassage","element","React","createElement","StimulusTabs","disabledTabs","tabs","ReactDOM","render","leading","trailing","s","o","HTMLElement"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport debug from 'debug';\n\nimport StimulusTabs from './stimulus-tabs';\n\nconst log = debug('pie-element:passage:print');\n\nconst checkNullish = (value) => value !== null && value !== undefined;\n\nconst isEnabled = (value, defaultValue) => (checkNullish(value) ? value : defaultValue);\n\nconst preparePrintPassage = (model, opts) => {\n const isInstructor = opts.role === 'instructor';\n\n // TODO: also update '../../configure/src/defaults.js' and '../../controller/src/defaults.js' when updating defaultValue\n const teacherInstructionsEnabled = isEnabled(model.teacherInstructionsEnabled, true);\n const titleEnabled = isEnabled(model.titleEnabled, true);\n const authorEnabled = isEnabled(model.authorEnabled, false);\n const subtitleEnabled = isEnabled(model.subtitleEnabled, true);\n const textEnabled = isEnabled(model.textEnabled, true);\n\n return model.passages.map((passage, index) => ({\n id: index,\n teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, teacherInstructionsEnabled)\n ? (isInstructor && passage.teacherInstructions) || ''\n : '',\n label: passage.title || `Passage ${index + 1}`,\n title: isEnabled(passage.titleEnabled, titleEnabled) ? passage.title || '' : '',\n author: isEnabled(passage.authorEnabled, authorEnabled) ? passage.author || '' : '',\n subtitle: isEnabled(passage.subtitleEnabled, subtitleEnabled) ? passage.subtitle || '' : '',\n text: isEnabled(passage.textEnabled, textEnabled) ? passage.text || '' : '',\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 disabledTabs: true,\n tabs: printPassage,\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
+ {"version":3,"file":"print.js","names":["_react","_interopRequireDefault","require","_client","_debounce","_debug","_stimulusTabs","log","debug","checkNullish","value","undefined","isEnabled","defaultValue","preparePrintPassage","model","opts","isInstructor","role","teacherInstructionsEnabled","titleEnabled","authorEnabled","subtitleEnabled","textEnabled","passages","map","passage","index","id","teacherInstructions","label","title","author","subtitle","text","PassagePrint","HTMLElement","constructor","_model","_options","_session","_root","_rerender","debounce","length","printPassage","element","React","createElement","StimulusTabs","disabledTabs","tabs","createRoot","render","leading","trailing","s","options","o","connectedCallback","disconnectedCallback","unmount","exports","default"],"sources":["../src/print.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debounce from 'lodash/debounce';\nimport debug from 'debug';\n\nimport StimulusTabs from './stimulus-tabs';\n\nconst log = debug('pie-element:passage:print');\n\nconst checkNullish = (value) => value !== null && value !== undefined;\n\nconst isEnabled = (value, defaultValue) => (checkNullish(value) ? value : defaultValue);\n\nconst preparePrintPassage = (model, opts) => {\n const isInstructor = opts.role === 'instructor';\n\n // TODO: also update '../../configure/src/defaults.js' and '../../controller/src/defaults.js' when updating defaultValue\n const teacherInstructionsEnabled = isEnabled(model.teacherInstructionsEnabled, true);\n const titleEnabled = isEnabled(model.titleEnabled, true);\n const authorEnabled = isEnabled(model.authorEnabled, false);\n const subtitleEnabled = isEnabled(model.subtitleEnabled, true);\n const textEnabled = isEnabled(model.textEnabled, true);\n\n return model.passages.map((passage, index) => ({\n id: index,\n teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, teacherInstructionsEnabled)\n ? (isInstructor && passage.teacherInstructions) || ''\n : '',\n label: passage.title || `Passage ${index + 1}`,\n title: isEnabled(passage.titleEnabled, titleEnabled) ? passage.title || '' : '',\n author: isEnabled(passage.authorEnabled, authorEnabled) ? passage.author || '' : '',\n subtitle: isEnabled(passage.subtitleEnabled, subtitleEnabled) ? passage.subtitle || '' : '',\n text: isEnabled(passage.textEnabled, textEnabled) ? passage.text || '' : '',\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 this._root = null;\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 disabledTabs: true,\n tabs: printPassage,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\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 disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}