@pie-element/passage 1.6.5 → 1.7.1-beta.1634

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/CHANGELOG.md CHANGED
@@ -3,6 +3,157 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.8.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.17...@pie-element/passage@1.8.0) (2022-12-20)
7
+
8
+
9
+ ### Features
10
+
11
+ * **pie-models:** update schemas for extended-text-entry in order to include the updated spellchek property ([bf4b656](https://github.com/pie-framework/pie-elements/commit/bf4b656241887acf8e2aa1264e747c0c338ed727))
12
+
13
+
14
+
15
+
16
+
17
+ ## [1.7.17](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.16...@pie-element/passage@1.7.17) (2022-12-07)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * update libs ([441f403](https://github.com/pie-framework/pie-elements/commit/441f403870b7bec0d61fab58b8d93dbe0ead4c32))
23
+
24
+
25
+
26
+
27
+
28
+ ## [1.7.16](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.15...@pie-element/passage@1.7.16) (2022-09-29)
29
+
30
+ **Note:** Version bump only for package @pie-element/passage
31
+
32
+
33
+
34
+
35
+
36
+ ## [1.7.15](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.14...@pie-element/passage@1.7.15) (2022-09-14)
37
+
38
+ **Note:** Version bump only for package @pie-element/passage
39
+
40
+
41
+
42
+
43
+
44
+ ## [1.7.14](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.13...@pie-element/passage@1.7.14) (2022-08-31)
45
+
46
+ **Note:** Version bump only for package @pie-element/passage
47
+
48
+
49
+
50
+
51
+
52
+ ## [1.7.13](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.12...@pie-element/passage@1.7.13) (2022-08-16)
53
+
54
+ **Note:** Version bump only for package @pie-element/passage
55
+
56
+
57
+
58
+
59
+
60
+ ## [1.7.12](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.11...@pie-element/passage@1.7.12) (2022-08-08)
61
+
62
+ **Note:** Version bump only for package @pie-element/passage
63
+
64
+
65
+
66
+
67
+
68
+ ## [1.7.11](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.10...@pie-element/passage@1.7.11) (2022-07-19)
69
+
70
+ **Note:** Version bump only for package @pie-element/passage
71
+
72
+
73
+
74
+
75
+
76
+ ## [1.7.10](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.9...@pie-element/passage@1.7.10) (2022-06-13)
77
+
78
+ **Note:** Version bump only for package @pie-element/passage
79
+
80
+
81
+
82
+
83
+
84
+ ## [1.7.9](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.8...@pie-element/passage@1.7.9) (2022-05-30)
85
+
86
+ **Note:** Version bump only for package @pie-element/passage
87
+
88
+
89
+
90
+
91
+
92
+ ## [1.7.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.7...@pie-element/passage@1.7.8) (2022-05-03)
93
+
94
+ **Note:** Version bump only for package @pie-element/passage
95
+
96
+
97
+
98
+
99
+
100
+ ## [1.7.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.6...@pie-element/passage@1.7.7) (2022-03-22)
101
+
102
+ **Note:** Version bump only for package @pie-element/passage
103
+
104
+
105
+
106
+
107
+
108
+ ## [1.7.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.4...@pie-element/passage@1.7.5) (2021-12-13)
109
+
110
+ **Note:** Version bump only for package @pie-element/passage
111
+
112
+
113
+
114
+
115
+
116
+ ## [1.7.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.7.1...@pie-element/passage@1.7.2) (2021-11-29)
117
+
118
+ **Note:** Version bump only for package @pie-element/passage
119
+
120
+
121
+
122
+
123
+
124
+ ## [1.7.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.6.6...@pie-element/passage@1.7.1) (2021-11-11)
125
+
126
+ **Note:** Version bump only for package @pie-element/passage
127
+
128
+
129
+
130
+
131
+
132
+ # [1.7.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.6.3...@pie-element/passage@1.7.0) (2021-11-11)
133
+
134
+
135
+ ### Bug Fixes
136
+
137
+ * Updated pie-lib versions ([1c23830](https://github.com/pie-framework/pie-elements/commit/1c23830fc75d1de5f7bb3bb16de3c665ae5fa350))
138
+
139
+
140
+ ### Features
141
+
142
+ * **passage:** implement print PD-1282 ([7fa16d3](https://github.com/pie-framework/pie-elements/commit/7fa16d35568419109c8394a091a88d5d3b418564))
143
+
144
+
145
+
146
+
147
+
148
+
149
+ ## [1.6.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.6.5...@pie-element/passage@1.6.6) (2021-11-01)
150
+
151
+ **Note:** Version bump only for package @pie-element/passage
152
+
153
+
154
+
155
+
156
+
6
157
  ## [1.6.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@1.6.4...@pie-element/passage@1.6.5) (2021-09-01)
7
158
 
8
159
  **Note:** Version bump only for package @pie-element/passage
@@ -2,7 +2,7 @@ const { model } = require('./generate');
2
2
 
3
3
  module.exports = {
4
4
  elements: {
5
- 'passage-element': '../..'
5
+ 'passage-element': '../..',
6
6
  },
7
- models: [model('1', 'passage-element')]
7
+ models: [model('1', 'passage-element')],
8
8
  };
@@ -4,7 +4,7 @@ exports.model = (id, element) => ({
4
4
  passages: [
5
5
  {
6
6
  title: 'Hope Is the Thing with Feathers',
7
- text: '<p><font style="visibility:hidden">00000</font>Hope is the thing with feathers<br /><font style="visibility:hidden">00000</font>That perches in the soul,<br /><font style="visibility:hidden">00000</font>And sings the tune without the words,<br /><font style="visibility:hidden">00000</font>And never stops at all,</p><p>5<font style="visibility:hidden">0000</font>And sweetest in the gale is heard;<br /><font style="visibility:hidden">00000</font>And sore must be the storm<br /><font style="visibility:hidden">00000</font>That could abash the little bird<br /><font style="visibility:hidden">00000</font>That kept so many warm.</p><p><font style="visibility:hidden">00000</font>I&#8217;ve heard it in the chillest land,<br />10<font style="visibility:hidden">000</font>And on the strangest sea;<br /><font style="visibility:hidden">00000</font>Yet, never, in extremity,<br /><font style="visibility:hidden">00000</font>It asked a crumb of me.</p><p><span class="no-number">&#34;Hope is the Thing With Feathers&#34; by Emily Dickinson, from <em>The Complete Poems of Emily Dickinson</em>. In the public domain.</span></p>'
7
+ text: '<p><font style="visibility:hidden">00000</font>Hope is the thing with feathers<br /><font style="visibility:hidden">00000</font>That perches in the soul,<br /><font style="visibility:hidden">00000</font>And sings the tune without the words,<br /><font style="visibility:hidden">00000</font>And never stops at all,</p><p>5<font style="visibility:hidden">0000</font>And sweetest in the gale is heard;<br /><font style="visibility:hidden">00000</font>And sore must be the storm<br /><font style="visibility:hidden">00000</font>That could abash the little bird<br /><font style="visibility:hidden">00000</font>That kept so many warm.</p><p><font style="visibility:hidden">00000</font>I&#8217;ve heard it in the chillest land,<br />10<font style="visibility:hidden">000</font>And on the strangest sea;<br /><font style="visibility:hidden">00000</font>Yet, never, in extremity,<br /><font style="visibility:hidden">00000</font>It asked a crumb of me.</p><p><span class="no-number">&#34;Hope is the Thing With Feathers&#34; by Emily Dickinson, from <em>The Complete Poems of Emily Dickinson</em>. In the public domain.</span></p>',
8
8
  },
9
9
  {
10
10
  title: 'Ineskeen Road, July Evening',
@@ -23,7 +23,7 @@ exports.model = (id, element) => ({
23
23
  Of being king and government and nation.<br/>
24
24
  A road, a mile of kingdom. I am king<br/>
25
25
  Of banks and stones and every blooming thing.<br/>
26
- `
27
- }
28
- ]
26
+ `,
27
+ },
28
+ ],
29
29
  });
@@ -1,4 +1,3 @@
1
1
  This is a passage element.
2
- <p/>
2
+ <p />
3
3
  <passage-element pie-id="1"></passage-element>
4
-
package/lib/index.js CHANGED
@@ -29,7 +29,7 @@ var _stimulusTabs = _interopRequireDefault(require("./stimulus-tabs"));
29
29
 
30
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
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 { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
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
33
 
34
34
  var PiePassage = /*#__PURE__*/function (_HTMLElement) {
35
35
  (0, _inherits2["default"])(PiePassage, _HTMLElement);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["PiePassage","_model","passages","_session","s","dispatchEvent","ModelSetEvent","tagName","toLowerCase","_render","length","passagesTabs","map","passage","index","id","title","text","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,CACE,IAAIC,8BAAJ,CACE,KAAKC,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKL,QAFP,EAGE,CAAC,CAAC,KAAKF,MAHT,CADF;;AAQA,WAAKQ,OAAL;AACD;;;SAED,aAAYL,CAAZ,EAAe;AACb,WAAKD,QAAL,GAAgBC,CAAhB;AACD;;;WAED,6BAAoB;AAClB,WAAKK,OAAL;AACD;;;WAED,mBAAU;AACR,UAAI,KAAKR,MAAL,CAAYC,QAAZ,CAAqBQ,MAArB,GAA8B,CAAlC,EAAqC;AACnC,YAAMC,YAAY,GAAG,KAAKV,MAAL,CAAYC,QAAZ,CAAqBU,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;AAHT,WAAP;AAKD,SANoB,CAArB;;AAOA,YAAIC,IAAI,gBAAGC,kBAAMC,aAAN,CAAoBC,wBAApB,EAAkC;AAAEC,UAAAA,IAAI,EAAEX;AAAR,SAAlC,CAAX;;AACAY,6BAASC,MAAT,CAAgBN,IAAhB,EAAsB,IAAtB;AACD;AACF;;;kDA1CqCO,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(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n this._session,\n !!this._model\n )\n );\n\n this._render();\n }\n\n set session(s) {\n this._session = s;\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\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 };\n });\n let elem = React.createElement(StimulusTabs, { tabs: passagesTabs });\n ReactDOM.render(elem, this);\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["PiePassage","_model","passages","_session","s","dispatchEvent","ModelSetEvent","tagName","toLowerCase","_render","length","passagesTabs","map","passage","index","id","title","text","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,WAAKK,OAAL;AACD;;;WAED,mBAAU;AACR,UAAI,KAAKR,MAAL,CAAYC,QAAZ,CAAqBQ,MAArB,GAA8B,CAAlC,EAAqC;AACnC,YAAMC,YAAY,GAAG,KAAKV,MAAL,CAAYC,QAAZ,CAAqBU,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;AAHT,WAAP;AAKD,SANoB,CAArB;;AAOA,YAAIC,IAAI,gBAAGC,kBAAMC,aAAN,CAAoBC,wBAApB,EAAkC;AAAEC,UAAAA,IAAI,EAAEX;AAAR,SAAlC,CAAX;;AACAY,6BAASC,MAAT,CAAgBN,IAAhB,EAAsB,IAAtB;AACD;AACF;;;kDApCqCO,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._render();\n }\n\n _render() {\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 };\n });\n let elem = React.createElement(StimulusTabs, { tabs: passagesTabs });\n ReactDOM.render(elem, this);\n }\n }\n}\n"],"file":"index.js"}
package/lib/print.js ADDED
@@ -0,0 +1,99 @@
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) {
41
+ return model.passages.map(function (passage, index) {
42
+ return {
43
+ id: index,
44
+ title: passage.title,
45
+ text: passage.text
46
+ };
47
+ });
48
+ };
49
+
50
+ var PassagePrint = /*#__PURE__*/function (_HTMLElement) {
51
+ (0, _inherits2["default"])(PassagePrint, _HTMLElement);
52
+
53
+ var _super = _createSuper(PassagePrint);
54
+
55
+ function PassagePrint() {
56
+ var _this;
57
+
58
+ (0, _classCallCheck2["default"])(this, PassagePrint);
59
+ _this = _super.call(this);
60
+ _this._model = null;
61
+ _this._session = [];
62
+ _this._rerender = (0, _debounce["default"])(function () {
63
+ if (_this._model && _this._session) {
64
+ if (_this._model.passages && _this._model.passages.length > 0) {
65
+ var printPassage = preparePrintPassage(_this._model);
66
+
67
+ var element = /*#__PURE__*/_react["default"].createElement(_stimulusTabs["default"], {
68
+ tabs: printPassage,
69
+ disabledTabs: true
70
+ });
71
+
72
+ _reactDom["default"].render(element, (0, _assertThisInitialized2["default"])(_this));
73
+ }
74
+ } else {
75
+ log('skip');
76
+ }
77
+ }, 50, {
78
+ leading: false,
79
+ trailing: true
80
+ });
81
+ return _this;
82
+ }
83
+
84
+ (0, _createClass2["default"])(PassagePrint, [{
85
+ key: "model",
86
+ set: function set(s) {
87
+ this._model = s;
88
+
89
+ this._rerender();
90
+ }
91
+ }, {
92
+ key: "connectedCallback",
93
+ value: function connectedCallback() {}
94
+ }]);
95
+ return PassagePrint;
96
+ }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
97
+
98
+ exports["default"] = PassagePrint;
99
+ //# sourceMappingURL=print.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/print.js"],"names":["log","preparePrintPassage","model","passages","map","passage","index","id","title","text","PassagePrint","_model","_session","_rerender","length","printPassage","element","React","createElement","StimulusTabs","tabs","disabledTabs","ReactDOM","render","leading","trailing","s","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,2BAAN,CAAZ;;AAEA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD;AAAA,SAC1BA,KAAK,CAACC,QAAN,CAAeC,GAAf,CAAmB,UAACC,OAAD,EAAUC,KAAV,EAAoB;AACrC,WAAO;AACLC,MAAAA,EAAE,EAAED,KADC;AAELE,MAAAA,KAAK,EAAEH,OAAO,CAACG,KAFV;AAGLC,MAAAA,IAAI,EAAEJ,OAAO,CAACI;AAHT,KAAP;AAKD,GAND,CAD0B;AAAA,CAA5B;;IASqBC,Y;;;;;AACnB,0BAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,EAAhB;AAEA,UAAKC,SAAL,GAAiB,0BACf,YAAM;AACJ,UAAI,MAAKF,MAAL,IAAe,MAAKC,QAAxB,EAAkC;AAChC,YAAI,MAAKD,MAAL,CAAYR,QAAZ,IAAwB,MAAKQ,MAAL,CAAYR,QAAZ,CAAqBW,MAArB,GAA8B,CAA1D,EAA6D;AAC3D,cAAMC,YAAY,GAAGd,mBAAmB,CAAC,MAAKU,MAAN,CAAxC;;AAEA,cAAMK,OAAO,gBAAGC,kBAAMC,aAAN,CAAoBC,wBAApB,EAAkC;AAAEC,YAAAA,IAAI,EAAEL,YAAR;AAAsBM,YAAAA,YAAY,EAAE;AAApC,WAAlC,CAAhB;;AAEAC,+BAASC,MAAT,CAAgBP,OAAhB;AACD;AACF,OARD,MAQO;AACLhB,QAAAA,GAAG,CAAC,MAAD,CAAH;AACD;AACF,KAbc,EAcf,EAde,EAef;AAAEwB,MAAAA,OAAO,EAAE,KAAX;AAAkBC,MAAAA,QAAQ,EAAE;AAA5B,KAfe,CAAjB;AALY;AAsBb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKf,MAAL,GAAce,CAAd;;AACA,WAAKb,SAAL;AACD;;;WAED,6BAAoB,CAAE;;;kDA9BkBc,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) =>\n model.passages.map((passage, index) => {\n return {\n id: index,\n title: passage.title,\n text: passage.text,\n };\n });\n\nexport default class PassagePrint extends HTMLElement {\n constructor() {\n super();\n this._model = 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);\n\n const element = React.createElement(StimulusTabs, { tabs: printPassage, disabledTabs: true });\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 connectedCallback() {}\n}\n"],"file":"print.js"}
@@ -35,32 +35,41 @@ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography")
35
35
 
36
36
  var _renderUi = require("@pie-lib/render-ui");
37
37
 
38
- var _previewLayout = _interopRequireDefault(require("@pie-lib/render-ui/lib/preview-layout"));
38
+ var _classnames = _interopRequireDefault(require("classnames"));
39
39
 
40
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
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 { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
43
-
44
- var styles = function styles() {
45
- return (
46
- /*theme*/
47
- {
48
- root: {
49
- flexGrow: 1,
50
- backgroundColor: _renderUi.color.background(),
51
- color: _renderUi.color.text()
52
- },
53
- tab: {
54
- fontSize: '0.8125em'
55
- },
56
- stickyTabs: {
57
- background: _renderUi.color.background(),
58
- paddingBottom: '20px',
59
- position: 'sticky',
60
- top: 0
61
- }
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 styles = function
45
+ /*theme*/
46
+ styles() {
47
+ return {
48
+ root: {
49
+ flexGrow: 1,
50
+ backgroundColor: _renderUi.color.background(),
51
+ color: _renderUi.color.text()
52
+ },
53
+ tab: {
54
+ fontSize: '0.8125em'
55
+ },
56
+ stickyTabs: {
57
+ background: _renderUi.color.background(),
58
+ paddingBottom: '20px',
59
+ position: 'sticky',
60
+ top: 0
61
+ },
62
+ title: {
63
+ textTransform: 'uppercase',
64
+ padding: '6px 24px',
65
+ borderBottom: "2px solid ".concat(_renderUi.color.secondary()),
66
+ width: 'fit-content',
67
+ marginBottom: '6px'
68
+ },
69
+ buttonContainer: {
70
+ background: 'white'
62
71
  }
63
- );
72
+ };
64
73
  };
65
74
 
66
75
  function TabContainer(props) {
@@ -116,7 +125,20 @@ var StimulusTabs = /*#__PURE__*/function (_React$Component) {
116
125
  });
117
126
  });
118
127
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "parsedText", function (text) {
119
- return text.replace(/(<br\/>\n)/g, '<br/>');
128
+ // fix imported audio content for Safari PD-1391
129
+ var div = document.createElement('div');
130
+ div.innerHTML = text.replace(/(<br\/>\n)/g, '<br/>');
131
+ var audio = div.querySelector('audio');
132
+
133
+ if (audio) {
134
+ var source = document.createElement('source');
135
+ source.setAttribute('type', 'audio/mp3');
136
+ source.setAttribute('src', audio.getAttribute('src'));
137
+ audio.removeAttribute('src');
138
+ audio.appendChild(source);
139
+ }
140
+
141
+ return div.innerHTML;
120
142
  });
121
143
  return _this;
122
144
  }
@@ -128,15 +150,43 @@ var StimulusTabs = /*#__PURE__*/function (_React$Component) {
128
150
 
129
151
  var _this$props = this.props,
130
152
  classes = _this$props.classes,
131
- tabs = _this$props.tabs;
153
+ tabs = _this$props.tabs,
154
+ disabledTabs = _this$props.disabledTabs;
132
155
  var activeTab = this.state.activeTab;
133
156
 
134
157
  if (tabs && tabs.length > 1) {
135
- return /*#__PURE__*/_react["default"].createElement("div", {
136
- className: classes.root
158
+ return disabledTabs ? /*#__PURE__*/_react["default"].createElement("div", {
159
+ className: "passages",
160
+ "aria-label": "Passage",
161
+ role: "region"
162
+ }, tabs.map(function (tab) {
163
+ return /*#__PURE__*/_react["default"].createElement("div", {
164
+ key: tab.id,
165
+ className: "passage-".concat(tab.id)
166
+ }, /*#__PURE__*/_react["default"].createElement(TabContainer, {
167
+ multiple: true
168
+ }, /*#__PURE__*/_react["default"].createElement("div", {
169
+ className: (0, _classnames["default"])(classes.title, 'title'),
170
+ dangerouslySetInnerHTML: {
171
+ __html: _this2.parsedText(tab.title)
172
+ }
173
+ }), /*#__PURE__*/_react["default"].createElement(_renderUi.Purpose, {
174
+ purpose: "passage-text"
175
+ }, /*#__PURE__*/_react["default"].createElement("div", {
176
+ className: "text",
177
+ key: tab.id,
178
+ dangerouslySetInnerHTML: {
179
+ __html: _this2.parsedText(tab.text)
180
+ }
181
+ }))));
182
+ })) : /*#__PURE__*/_react["default"].createElement("div", {
183
+ className: classes.root,
184
+ "aria-label": "Passage",
185
+ role: "region"
137
186
  }, /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
138
187
  classes: {
139
- root: classes.stickyTabs
188
+ root: classes.stickyTabs,
189
+ flexContainer: classes.buttonContainer
140
190
  },
141
191
  value: activeTab,
142
192
  onChange: this.handleChange
@@ -168,10 +218,14 @@ var StimulusTabs = /*#__PURE__*/function (_React$Component) {
168
218
  }));
169
219
  } else if (tabs && tabs[0]) {
170
220
  return /*#__PURE__*/_react["default"].createElement("div", {
221
+ className: "passage",
171
222
  style: {
172
223
  whiteSpace: 'break-spaces'
173
- }
224
+ },
225
+ "aria-label": "Passage",
226
+ role: "region"
174
227
  }, /*#__PURE__*/_react["default"].createElement(TabContainer, null, /*#__PURE__*/_react["default"].createElement("div", {
228
+ className: "text",
175
229
  dangerouslySetInnerHTML: {
176
230
  __html: this.parsedText(tabs[0].text)
177
231
  }
@@ -188,7 +242,8 @@ StimulusTabs.propTypes = {
188
242
  id: _propTypes["default"].number.isRequired,
189
243
  title: _propTypes["default"].string.isRequired,
190
244
  text: _propTypes["default"].string.isRequired
191
- }).isRequired).isRequired
245
+ }).isRequired).isRequired,
246
+ disabledTabs: _propTypes["default"].bool
192
247
  };
193
248
 
194
249
  var _default = (0, _styles.withStyles)(styles)(StimulusTabs);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/stimulus-tabs.jsx"],"names":["styles","root","flexGrow","backgroundColor","color","background","text","tab","fontSize","stickyTabs","paddingBottom","position","top","TabContainer","props","padding","multiple","children","propTypes","PropTypes","node","isRequired","bool","StimulusTabs","activeTab","event","setState","setTimeout","tabChangeEvent","CustomEvent","detail","window","dispatchEvent","replace","classes","tabs","state","length","handleChange","map","id","__html","parsedText","title","whiteSpace","React","Component","object","arrayOf","shape","number","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { color, Purpose } from '@pie-lib/render-ui';\nimport previewLayout from '@pie-lib/render-ui/lib/preview-layout';\n\nconst styles = (/*theme*/) => ({\n root: {\n flexGrow: 1,\n backgroundColor: color.background(),\n color: color.text(),\n },\n tab: {\n fontSize: '0.8125em',\n },\n stickyTabs: {\n background: color.background(),\n paddingBottom: '20px',\n position: 'sticky',\n top: 0,\n }\n});\n\nfunction TabContainer(props) {\n const padding = props.multiple ? '0 24px 24px 24px' : '24px';\n\n return (\n <Typography\n component=\"div\"\n style={{\n padding,\n fontSize: '0.875em',\n backgroundColor: color.background(),\n color: color.text(),\n }}\n >\n {props.children}\n </Typography>\n );\n}\n\nTabContainer.propTypes = {\n children: PropTypes.node.isRequired,\n multiple: PropTypes.bool,\n};\n\nclass StimulusTabs extends React.Component {\n state = {\n activeTab: 0,\n };\n\n handleChange = (event, activeTab) => {\n this.setState(() => ({ activeTab }));\n setTimeout(() => {\n const tabChangeEvent = new CustomEvent('pie-ui-passage-tabChanged', {\n detail: {\n tab: activeTab,\n },\n });\n\n window.dispatchEvent(tabChangeEvent);\n });\n };\n\n parsedText = (text) => text.replace(/(<br\\/>\\n)/g, '<br/>');\n\n render() {\n const { classes, tabs } = this.props;\n const { activeTab } = this.state;\n\n if (tabs && tabs.length > 1) {\n return (\n <div className={classes.root}>\n <Tabs\n classes={{\n root: classes.stickyTabs,\n }}\n value={activeTab}\n onChange={this.handleChange}\n >\n {tabs.map((tab) => (\n <Tab\n className={classes.tab}\n key={tab.id}\n label={\n <Purpose purpose=\"passage-title\">\n <span\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }}\n ></span>\n </Purpose>\n }\n value={tab.id}\n />\n ))}\n </Tabs>\n {tabs.map((tab) =>\n activeTab === tab.id ? (\n <TabContainer multiple key={tab.id}>\n <Purpose purpose=\"passage-text\">\n <div\n key={tab.id}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }}\n />\n </Purpose>\n </TabContainer>\n\n ) : null\n )}\n </div>\n );\n\n } else if (tabs && tabs[0]) {\n return (\n <div style={{ whiteSpace: 'break-spaces' }} >\n <TabContainer>\n <div dangerouslySetInnerHTML={{ __html: this.parsedText(tabs[0].text) }} />\n </TabContainer>\n </div>\n );\n }\n }\n}\n\nStimulusTabs.propTypes = {\n classes: PropTypes.object.isRequired,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n};\n\nexport default withStyles(styles)(StimulusTabs);\n"],"file":"stimulus-tabs.js"}
1
+ {"version":3,"sources":["../src/stimulus-tabs.jsx"],"names":["styles","root","flexGrow","backgroundColor","color","background","text","tab","fontSize","stickyTabs","paddingBottom","position","top","title","textTransform","padding","borderBottom","secondary","width","marginBottom","buttonContainer","TabContainer","props","multiple","children","propTypes","PropTypes","node","isRequired","bool","StimulusTabs","activeTab","event","setState","setTimeout","tabChangeEvent","CustomEvent","detail","window","dispatchEvent","div","document","createElement","innerHTML","replace","audio","querySelector","source","setAttribute","getAttribute","removeAttribute","appendChild","classes","tabs","disabledTabs","state","length","map","id","__html","parsedText","flexContainer","handleChange","whiteSpace","React","Component","object","arrayOf","shape","number","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { color, Purpose } from '@pie-lib/render-ui';\nimport classNames from 'classnames';\n\nconst styles = (/*theme*/) => ({\n root: {\n flexGrow: 1,\n backgroundColor: color.background(),\n color: color.text(),\n },\n tab: {\n fontSize: '0.8125em',\n },\n stickyTabs: {\n background: color.background(),\n paddingBottom: '20px',\n position: 'sticky',\n top: 0,\n },\n title: {\n textTransform: 'uppercase',\n padding: '6px 24px',\n borderBottom: `2px solid ${color.secondary()}`,\n width: 'fit-content',\n marginBottom: '6px',\n },\n buttonContainer: {\n background: 'white',\n },\n});\n\nfunction TabContainer(props) {\n const padding = props.multiple ? '0 24px 24px 24px' : '24px';\n\n return (\n <Typography\n component=\"div\" \n style={{\n padding,\n fontSize: '0.875em',\n backgroundColor: color.background(),\n color: color.text(),\n }}\n >\n {props.children}\n </Typography>\n );\n}\n\nTabContainer.propTypes = {\n children: PropTypes.node.isRequired,\n multiple: PropTypes.bool,\n};\n\nclass StimulusTabs extends React.Component {\n state = {\n activeTab: 0,\n };\n\n handleChange = (event, activeTab) => {\n this.setState(() => ({ activeTab }));\n setTimeout(() => {\n const tabChangeEvent = new CustomEvent('pie-ui-passage-tabChanged', {\n detail: {\n tab: activeTab,\n },\n });\n\n window.dispatchEvent(tabChangeEvent);\n });\n };\n\n parsedText = (text) => {\n // fix imported audio content for Safari PD-1391\n const div = document.createElement('div');\n div.innerHTML = text.replace(/(<br\\/>\\n)/g, '<br/>');\n\n const audio = div.querySelector('audio');\n if (audio) {\n const source = document.createElement('source');\n\n source.setAttribute('type', 'audio/mp3');\n source.setAttribute('src', audio.getAttribute('src'));\n\n audio.removeAttribute('src');\n audio.appendChild(source);\n }\n\n return div.innerHTML;\n };\n\n render() {\n const { classes, tabs, disabledTabs } = this.props;\n const { activeTab } = this.state;\n\n if (tabs && tabs.length > 1) {\n return disabledTabs ? (\n <div className=\"passages\" aria-label='Passage' role='region'>\n {tabs.map((tab) => (\n <div key={tab.id} className={`passage-${tab.id}`}>\n <TabContainer multiple>\n <div\n className={classNames(classes.title, 'title')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }}\n />\n <Purpose purpose=\"passage-text\">\n <div className=\"text\" key={tab.id} dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }} />\n </Purpose>\n </TabContainer>\n </div>\n ))}\n </div>\n ) : (\n <div className={classes.root} aria-label='Passage' role='region'>\n <Tabs\n classes={{\n root: classes.stickyTabs,\n flexContainer: classes.buttonContainer,\n }}\n value={activeTab}\n onChange={this.handleChange}\n >\n {tabs.map((tab) => (\n <Tab\n className={classes.tab}\n key={tab.id}\n label={\n <Purpose purpose=\"passage-title\">\n <span dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }} />\n </Purpose>\n }\n value={tab.id}\n />\n ))}\n </Tabs>\n {tabs.map((tab) =>\n activeTab === tab.id ? (\n <TabContainer multiple key={tab.id}>\n <Purpose purpose=\"passage-text\">\n <div key={tab.id} dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }} />\n </Purpose>\n </TabContainer>\n ) : null,\n )}\n </div>\n );\n } else if (tabs && tabs[0]) {\n return (\n <div className=\"passage\" style={{ whiteSpace: 'break-spaces' }} aria-label='Passage' role='region'>\n <TabContainer>\n <div className=\"text\" dangerouslySetInnerHTML={{ __html: this.parsedText(tabs[0].text) }} />\n </TabContainer>\n </div>\n );\n }\n }\n}\n\nStimulusTabs.propTypes = {\n classes: PropTypes.object.isRequired,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n }).isRequired,\n ).isRequired,\n disabledTabs: PropTypes.bool,\n};\n\nexport default withStyles(styles)(StimulusTabs);\n"],"file":"stimulus-tabs.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/passage",
3
- "version": "1.6.5",
3
+ "version": "1.7.1-beta.1634+449763c04",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -11,15 +11,20 @@
11
11
  "dependencies": {
12
12
  "@material-ui/core": "^3.9.2",
13
13
  "@pie-framework/pie-player-events": "^0.1.0",
14
- "@pie-lib/render-ui": "^4.12.0",
14
+ "@pie-lib/render-ui": "^4.14.12",
15
+ "classnames": "^2.2.5",
15
16
  "prop-types": "^15.6.1",
16
17
  "react": "^16.8.1",
17
18
  "react-dom": "^16.8.1"
18
19
  },
19
- "gitHead": "0df28892922b8611038d5dd69ff0d6c8ce5806a3",
20
+ "gitHead": "449763c046b78327513c38ea5367b8d4da120760",
20
21
  "scripts": {
21
22
  "postpublish": "../../scripts/postpublish"
22
23
  },
23
24
  "main": "lib/index.js",
24
- "module": "src/index.js"
25
+ "module": "src/index.js",
26
+ "exports": {
27
+ ".": "./src/index.js",
28
+ "./print": "./src/print.js"
29
+ }
25
30
  }