@pie-lib/render-ui 5.1.0-next.4 → 5.1.0-next.5

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.
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.PreviewPrompt = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _styles = require("@mui/material/styles");
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var color = _interopRequireWildcard(require("./color"));
19
+ var _mathRendering = require("@pie-lib/math-rendering");
20
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
21
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
23
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
24
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
25
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
26
+ var StyledPromptContainer = (0, _styles.styled)('div')(function (_ref) {
27
+ var theme = _ref.theme,
28
+ tagName = _ref.tagName;
29
+ return {
30
+ // Base promptTable styles
31
+ '&:not(.MathJax) > table': {
32
+ borderCollapse: 'collapse'
33
+ },
34
+ // Apply vertical striping when first column is a header (th) and NOT mixed with td
35
+ '&:not(.MathJax) > table:has(tbody tr > th:first-child):not(:has(tbody tr > td:first-child)) tbody td:nth-child(even)': {
36
+ backgroundColor: '#f6f8fa',
37
+ color: theme.palette.common.black
38
+ },
39
+ // Apply horizontal striping for tables where first element is a data cell (td)
40
+ '&:not(.MathJax) > table:has(tbody tr > td:first-child) tbody tr:nth-child(even) td': {
41
+ backgroundColor: '#f6f8fa',
42
+ color: theme.palette.common.black
43
+ },
44
+ // align table content to left as per STAR requirement PD-3687
45
+ '&:not(.MathJax) table td, &:not(.MathJax) table th': {
46
+ padding: '.6em 1em',
47
+ textAlign: 'left'
48
+ },
49
+ // added this to fix alignment of text in prompt imported from studio (PD-3423)
50
+ '&:not(.MathJax) > table td > p.kds-indent': {
51
+ textAlign: 'initial'
52
+ },
53
+ // Conditional styles based on class names
54
+ '&.prompt': {
55
+ verticalAlign: 'middle',
56
+ color: color.text()
57
+ },
58
+ '&.legend': {
59
+ width: '100%',
60
+ fontSize: 'inherit !important'
61
+ },
62
+ '&.rationale': {
63
+ paddingLeft: theme.spacing(4),
64
+ paddingBottom: theme.spacing(1)
65
+ },
66
+ '&.label': {
67
+ color: "".concat(color.text(), " !important"),
68
+ display: 'flex',
69
+ flexDirection: 'column',
70
+ verticalAlign: 'middle',
71
+ cursor: 'pointer',
72
+ '& > p': {
73
+ margin: '0 0 0 0 !important'
74
+ }
75
+ }
76
+ };
77
+ });
78
+
79
+ //Used these below to replace \\embed{newLine} with \\newline from prompt which will get parsed in MathJax
80
+ var NEWLINE_BLOCK_REGEX = /\\embed\{newLine\}\[\]/g;
81
+ var NEWLINE_LATEX = '\\newline ';
82
+ var PreviewPrompt = exports.PreviewPrompt = /*#__PURE__*/function (_Component) {
83
+ function PreviewPrompt() {
84
+ var _this;
85
+ (0, _classCallCheck2["default"])(this, PreviewPrompt);
86
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
87
+ args[_key] = arguments[_key];
88
+ }
89
+ _this = _callSuper(this, PreviewPrompt, [].concat(args));
90
+ (0, _defineProperty2["default"])(_this, "parsedText", function (text) {
91
+ var customAudioButton = _this.props.customAudioButton;
92
+ var div = document.createElement('div');
93
+ div.innerHTML = text;
94
+ var audio = div.querySelector('audio');
95
+ if (audio) {
96
+ var source = document.createElement('source');
97
+ source.setAttribute('type', 'audio/mp3');
98
+ source.setAttribute('src', audio.getAttribute('src'));
99
+ audio.removeAttribute('src');
100
+ audio.setAttribute('id', 'pie-prompt-audio-player');
101
+ audio.appendChild(source);
102
+ if (customAudioButton) {
103
+ audio.style.display = 'none';
104
+ var playButton = document.createElement('div');
105
+ playButton.id = 'play-audio-button';
106
+ Object.assign(playButton.style, {
107
+ cursor: 'pointer',
108
+ display: 'block',
109
+ width: '128px',
110
+ height: '128px',
111
+ backgroundImage: "url(".concat(customAudioButton.pauseImage, ")"),
112
+ backgroundSize: 'cover',
113
+ borderRadius: '50%',
114
+ border: '1px solid #326295'
115
+ });
116
+ audio.parentNode.insertBefore(playButton, audio);
117
+ }
118
+ }
119
+ return div.innerHTML;
120
+ });
121
+ return _this;
122
+ }
123
+ (0, _inherits2["default"])(PreviewPrompt, _Component);
124
+ return (0, _createClass2["default"])(PreviewPrompt, [{
125
+ key: "addCustomAudioButtonControls",
126
+ value: function addCustomAudioButtonControls() {
127
+ var _this$props = this.props,
128
+ autoplayAudioEnabled = _this$props.autoplayAudioEnabled,
129
+ customAudioButton = _this$props.customAudioButton;
130
+ var playButton = document.getElementById('play-audio-button');
131
+ var audio = document.getElementById('pie-prompt-audio-player');
132
+ if (autoplayAudioEnabled && audio) {
133
+ audio.play().then(function () {
134
+ if (playButton && customAudioButton) {
135
+ audio.addEventListener('ended', handleAudioEnded);
136
+ }
137
+ })["catch"](function (error) {
138
+ console.error('Error playing audio', error);
139
+ });
140
+ }
141
+ if (!playButton || !audio || !customAudioButton) return;
142
+ var handlePlayClick = function handlePlayClick() {
143
+ // if already playing, don't play again
144
+ if (!audio.paused) return;
145
+ if (playButton.style.backgroundImage.includes(customAudioButton.pauseImage)) return;
146
+ audio.play();
147
+ };
148
+ var handleAudioEnded = function handleAudioEnded() {
149
+ playButton.style.backgroundImage = "url(".concat(customAudioButton.playImage, ")");
150
+ };
151
+ var handleAudioPlay = function handleAudioPlay() {
152
+ Object.assign(playButton.style, {
153
+ backgroundImage: "url(".concat(customAudioButton.pauseImage, ")"),
154
+ border: '1px solid #ccc'
155
+ });
156
+ };
157
+ var handleAudioPause = function handleAudioPause() {
158
+ Object.assign(playButton.style, {
159
+ backgroundImage: "url(".concat(customAudioButton.playImage, ")"),
160
+ border: '1px solid #326295'
161
+ });
162
+ };
163
+ playButton.addEventListener('click', handlePlayClick);
164
+ audio.addEventListener('play', handleAudioPlay);
165
+ audio.addEventListener('pause', handleAudioPause);
166
+ audio.addEventListener('ended', handleAudioEnded);
167
+
168
+ // store event handler references so they can be removed later
169
+ this._handlePlayClick = handlePlayClick;
170
+ this._handleAudioPlay = handleAudioPlay;
171
+ this._handleAudioPause = handleAudioPause;
172
+ this._handleAudioEnded = handleAudioEnded;
173
+ }
174
+ }, {
175
+ key: "removeCustomAudioButtonListeners",
176
+ value: function removeCustomAudioButtonListeners() {
177
+ var playButton = document.getElementById('play-audio-button');
178
+ var audio = document.querySelector('audio');
179
+ if (!playButton || !audio) return;
180
+
181
+ // remove event listeners using stored references
182
+ playButton.removeEventListener('click', this._handlePlayClick);
183
+ audio.removeEventListener('play', this._handleAudioPlay);
184
+ audio.removeEventListener('pause', this._handleAudioPause);
185
+ audio.removeEventListener('ended', this._handleAudioEnded);
186
+ }
187
+ }, {
188
+ key: "componentDidMount",
189
+ value: function componentDidMount() {
190
+ this.alignImages();
191
+ this.addCustomAudioButtonControls();
192
+ this.setupMathRendering();
193
+ }
194
+ }, {
195
+ key: "componentDidUpdate",
196
+ value: function componentDidUpdate(prevProps) {
197
+ this.alignImages();
198
+ if (prevProps.prompt !== this.props.prompt) {
199
+ this.renderMathContent();
200
+ }
201
+ }
202
+ }, {
203
+ key: "componentWillUnmount",
204
+ value: function componentWillUnmount() {
205
+ this.removeCustomAudioButtonListeners();
206
+ }
207
+ }, {
208
+ key: "setupMathRendering",
209
+ value: function setupMathRendering() {
210
+ this.renderMathContent();
211
+ }
212
+ }, {
213
+ key: "renderMathContent",
214
+ value: function renderMathContent() {
215
+ var container = document.getElementById('preview-prompt');
216
+ if (container && typeof _mathRendering.renderMath === 'function') {
217
+ (0, _mathRendering.renderMath)(container);
218
+ }
219
+ }
220
+ }, {
221
+ key: "alignImages",
222
+ value: function alignImages() {
223
+ var previewPrompts = document.querySelectorAll('#preview-prompt');
224
+ previewPrompts.forEach(function (previewPrompt) {
225
+ var images = previewPrompt.getElementsByTagName('img');
226
+ if (images && images.length) {
227
+ var _iterator = _createForOfIteratorHelper(images),
228
+ _step;
229
+ try {
230
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
231
+ var image = _step.value;
232
+ // check if alignment property was set
233
+ if (image.attributes && image.attributes.alignment && image.attributes.alignment.value) {
234
+ var parentNode = image.parentElement;
235
+
236
+ // check if div is not already added to dom and replace current image with wrapped image
237
+ if (!(parentNode.tagName === 'DIV' && parentNode.style.display === 'flex' && parentNode.style.width === '100%')) {
238
+ var div = document.createElement('div');
239
+ div.style.display = 'flex';
240
+ div.style.width = '100%';
241
+ var copyImage = image.cloneNode(true);
242
+ div.appendChild(copyImage);
243
+ parentNode.replaceChild(div, image);
244
+ }
245
+ }
246
+ }
247
+ } catch (err) {
248
+ _iterator.e(err);
249
+ } finally {
250
+ _iterator.f();
251
+ }
252
+ }
253
+ });
254
+ }
255
+ }, {
256
+ key: "render",
257
+ value: function render() {
258
+ var _this$props2 = this.props,
259
+ prompt = _this$props2.prompt,
260
+ tagName = _this$props2.tagName,
261
+ className = _this$props2.className,
262
+ onClick = _this$props2.onClick,
263
+ defaultClassName = _this$props2.defaultClassName;
264
+ // legend tag was added once with accessibility tasks, we need extra style to make it work with images alignment
265
+ var legendClass = tagName === 'legend' ? 'legend' : '';
266
+ var customClasses = "".concat(className || '', " ").concat(defaultClassName || '', " ").concat(legendClass).trim();
267
+ return /*#__PURE__*/_react["default"].createElement(StyledPromptContainer, {
268
+ as: tagName || 'div',
269
+ id: 'preview-prompt',
270
+ onClick: onClick,
271
+ className: customClasses,
272
+ tagName: tagName,
273
+ dangerouslySetInnerHTML: {
274
+ __html: this.parsedText(prompt || '').replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX)
275
+ }
276
+ });
277
+ }
278
+ }]);
279
+ }(_react.Component);
280
+ (0, _defineProperty2["default"])(PreviewPrompt, "propTypes", {
281
+ prompt: _propTypes["default"].string,
282
+ tagName: _propTypes["default"].string,
283
+ className: _propTypes["default"].string,
284
+ onClick: _propTypes["default"].func,
285
+ defaultClassName: _propTypes["default"].string,
286
+ autoplayAudioEnabled: _propTypes["default"].bool,
287
+ customAudioButton: {
288
+ playImage: _propTypes["default"].string,
289
+ pauseImage: _propTypes["default"].string
290
+ }
291
+ });
292
+ (0, _defineProperty2["default"])(PreviewPrompt, "defaultProps", {
293
+ onClick: function onClick() {}
294
+ });
295
+ var _default = exports["default"] = PreviewPrompt;
296
+ //# sourceMappingURL=preview-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-prompt.js","names":["_react","_interopRequireWildcard","require","_styles","_propTypes","_interopRequireDefault","color","_mathRendering","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","TypeError","a","u","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","apply","Boolean","prototype","valueOf","StyledPromptContainer","styled","_ref","theme","tagName","borderCollapse","backgroundColor","palette","common","black","padding","textAlign","verticalAlign","text","width","fontSize","paddingLeft","spacing","paddingBottom","concat","display","flexDirection","cursor","margin","NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","PreviewPrompt","exports","_Component","_this","_classCallCheck2","_len","arguments","args","_key","_defineProperty2","customAudioButton","props","div","document","createElement","innerHTML","audio","querySelector","source","setAttribute","getAttribute","removeAttribute","appendChild","style","playButton","id","assign","height","backgroundImage","pauseImage","backgroundSize","borderRadius","border","parentNode","insertBefore","_inherits2","_createClass2","key","addCustomAudioButtonControls","_this$props","autoplayAudioEnabled","getElementById","play","then","addEventListener","handleAudioEnded","error","console","handlePlayClick","paused","includes","playImage","handleAudioPlay","handleAudioPause","_handlePlayClick","_handleAudioPlay","_handleAudioPause","_handleAudioEnded","removeCustomAudioButtonListeners","removeEventListener","componentDidMount","alignImages","setupMathRendering","componentDidUpdate","prevProps","prompt","renderMathContent","componentWillUnmount","container","renderMath","previewPrompts","querySelectorAll","forEach","previewPrompt","images","getElementsByTagName","_iterator","_step","image","attributes","alignment","parentElement","copyImage","cloneNode","replaceChild","err","render","_this$props2","className","onClick","defaultClassName","legendClass","customClasses","trim","as","dangerouslySetInnerHTML","__html","parsedText","replace","Component","PropTypes","string","func","bool","_default"],"sources":["../src/preview-prompt.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\nimport * as color from './color';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst StyledPromptContainer = styled('div')(({ theme, tagName }) => ({\n // Base promptTable styles\n '&:not(.MathJax) > table': {\n borderCollapse: 'collapse',\n },\n // Apply vertical striping when first column is a header (th) and NOT mixed with td\n '&:not(.MathJax) > table:has(tbody tr > th:first-child):not(:has(tbody tr > td:first-child)) tbody td:nth-child(even)': {\n backgroundColor: '#f6f8fa',\n color: theme.palette.common.black,\n },\n // Apply horizontal striping for tables where first element is a data cell (td)\n '&:not(.MathJax) > table:has(tbody tr > td:first-child) tbody tr:nth-child(even) td': {\n backgroundColor: '#f6f8fa',\n color: theme.palette.common.black,\n },\n // align table content to left as per STAR requirement PD-3687\n '&:not(.MathJax) table td, &:not(.MathJax) table th': {\n padding: '.6em 1em',\n textAlign: 'left',\n },\n // added this to fix alignment of text in prompt imported from studio (PD-3423)\n '&:not(.MathJax) > table td > p.kds-indent': {\n textAlign: 'initial',\n },\n\n // Conditional styles based on class names\n '&.prompt': {\n verticalAlign: 'middle',\n color: color.text(),\n },\n '&.legend': {\n width: '100%',\n fontSize: 'inherit !important',\n },\n '&.rationale': {\n paddingLeft: theme.spacing(4),\n paddingBottom: theme.spacing(1),\n },\n '&.label': {\n color: `${color.text()} !important`,\n display: 'flex',\n flexDirection: 'column',\n verticalAlign: 'middle',\n cursor: 'pointer',\n '& > p': {\n margin: '0 0 0 0 !important',\n },\n },\n}));\n\n//Used these below to replace \\\\embed{newLine} with \\\\newline from prompt which will get parsed in MathJax\nconst NEWLINE_BLOCK_REGEX = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = '\\\\newline ';\n\nexport class PreviewPrompt extends Component {\n static propTypes = {\n prompt: PropTypes.string,\n tagName: PropTypes.string,\n className: PropTypes.string,\n onClick: PropTypes.func,\n defaultClassName: PropTypes.string,\n autoplayAudioEnabled: PropTypes.bool,\n customAudioButton: {\n playImage: PropTypes.string,\n pauseImage: PropTypes.string,\n },\n };\n\n static defaultProps = {\n onClick: () => {},\n };\n\n parsedText = (text) => {\n const { customAudioButton } = this.props;\n const div = document.createElement('div');\n div.innerHTML = text;\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.setAttribute('id', 'pie-prompt-audio-player');\n\n audio.appendChild(source);\n\n if (customAudioButton) {\n audio.style.display = 'none';\n\n const playButton = document.createElement('div');\n playButton.id = 'play-audio-button';\n\n Object.assign(playButton.style, {\n cursor: 'pointer',\n display: 'block',\n width: '128px',\n height: '128px',\n backgroundImage: `url(${customAudioButton.pauseImage})`,\n backgroundSize: 'cover',\n borderRadius: '50%',\n border: '1px solid #326295',\n });\n\n audio.parentNode.insertBefore(playButton, audio);\n }\n }\n\n return div.innerHTML;\n };\n\n addCustomAudioButtonControls() {\n const { autoplayAudioEnabled, customAudioButton } = this.props;\n const playButton = document.getElementById('play-audio-button');\n const audio = document.getElementById('pie-prompt-audio-player');\n\n if (autoplayAudioEnabled && audio) {\n audio\n .play()\n .then(() => {\n if (playButton && customAudioButton) {\n audio.addEventListener('ended', handleAudioEnded);\n }\n })\n .catch((error) => {\n console.error('Error playing audio', error);\n });\n }\n\n if (!playButton || !audio || !customAudioButton) return;\n\n const handlePlayClick = () => {\n // if already playing, don't play again\n if (!audio.paused) return;\n if (playButton.style.backgroundImage.includes(customAudioButton.pauseImage)) return;\n\n audio.play();\n };\n\n const handleAudioEnded = () => {\n playButton.style.backgroundImage = `url(${customAudioButton.playImage})`;\n };\n\n const handleAudioPlay = () => {\n Object.assign(playButton.style, {\n backgroundImage: `url(${customAudioButton.pauseImage})`,\n border: '1px solid #ccc',\n });\n };\n\n const handleAudioPause = () => {\n Object.assign(playButton.style, {\n backgroundImage: `url(${customAudioButton.playImage})`,\n border: '1px solid #326295',\n });\n };\n\n playButton.addEventListener('click', handlePlayClick);\n audio.addEventListener('play', handleAudioPlay);\n audio.addEventListener('pause', handleAudioPause);\n audio.addEventListener('ended', handleAudioEnded);\n\n // store event handler references so they can be removed later\n this._handlePlayClick = handlePlayClick;\n this._handleAudioPlay = handleAudioPlay;\n this._handleAudioPause = handleAudioPause;\n this._handleAudioEnded = handleAudioEnded;\n }\n\n removeCustomAudioButtonListeners() {\n const playButton = document.getElementById('play-audio-button');\n const audio = document.querySelector('audio');\n\n if (!playButton || !audio) return;\n\n // remove event listeners using stored references\n playButton.removeEventListener('click', this._handlePlayClick);\n audio.removeEventListener('play', this._handleAudioPlay);\n audio.removeEventListener('pause', this._handleAudioPause);\n audio.removeEventListener('ended', this._handleAudioEnded);\n }\n\n componentDidMount() {\n this.alignImages();\n this.addCustomAudioButtonControls();\n this.setupMathRendering();\n }\n\n componentDidUpdate(prevProps) {\n this.alignImages();\n\n if (prevProps.prompt !== this.props.prompt) {\n this.renderMathContent();\n }\n }\n\n componentWillUnmount() {\n this.removeCustomAudioButtonListeners();\n }\n\n setupMathRendering() {\n this.renderMathContent();\n }\n\n renderMathContent() {\n const container = document.getElementById('preview-prompt');\n if (container && typeof renderMath === 'function') {\n renderMath(container);\n }\n }\n\n alignImages() {\n const previewPrompts = document.querySelectorAll('#preview-prompt');\n\n previewPrompts.forEach((previewPrompt) => {\n const images = previewPrompt.getElementsByTagName('img');\n\n if (images && images.length) {\n for (let image of images) {\n // check if alignment property was set\n if (image.attributes && image.attributes.alignment && image.attributes.alignment.value) {\n const parentNode = image.parentElement;\n\n // check if div is not already added to dom and replace current image with wrapped image\n if (\n !(\n parentNode.tagName === 'DIV' &&\n parentNode.style.display === 'flex' &&\n parentNode.style.width === '100%'\n )\n ) {\n const div = document.createElement('div');\n div.style.display = 'flex';\n div.style.width = '100%';\n\n const copyImage = image.cloneNode(true);\n div.appendChild(copyImage);\n parentNode.replaceChild(div, image);\n }\n }\n }\n }\n });\n }\n\n render() {\n const { prompt, tagName, className, onClick, defaultClassName } = this.props;\n // legend tag was added once with accessibility tasks, we need extra style to make it work with images alignment\n const legendClass = tagName === 'legend' ? 'legend' : '';\n const customClasses = `${className || ''} ${defaultClassName || ''} ${legendClass}`.trim();\n\n return (\n <StyledPromptContainer\n as={tagName || 'div'}\n id={'preview-prompt'}\n onClick={onClick}\n className={customClasses}\n tagName={tagName}\n dangerouslySetInnerHTML={{\n __html: this.parsedText(prompt || '').replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX),\n }}\n />\n );\n }\n}\n\nexport default PreviewPrompt;\n"],"mappings":"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","ignoreList":[]}
package/lib/purpose.js ADDED
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var Purpose = function Purpose(props) {
11
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _react["default"].Children.map(props.children, function (child) {
12
+ return /*#__PURE__*/_react["default"].cloneElement(child, {
13
+ 'data-pie-purpose': props.purpose
14
+ });
15
+ }));
16
+ };
17
+ Purpose.propTypes = {
18
+ children: _propTypes["default"].node,
19
+ purpose: _propTypes["default"].string
20
+ };
21
+ var _default = exports["default"] = Purpose;
22
+ //# sourceMappingURL=purpose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purpose.js","names":["_propTypes","_interopRequireDefault","require","_react","Purpose","props","createElement","Fragment","React","Children","map","children","child","cloneElement","purpose","propTypes","PropTypes","node","string","_default","exports"],"sources":["../src/purpose.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst Purpose = (props) => {\n return (\n <>\n {React.Children.map(props.children, (child) => React.cloneElement(child, { 'data-pie-purpose': props.purpose }))}\n </>\n );\n};\n\nPurpose.propTypes = {\n children: PropTypes.node,\n purpose: PropTypes.string,\n};\n\nexport default Purpose;\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAME,OAAO,GAAG,SAAVA,OAAOA,CAAIC,KAAK,EAAK;EACzB,oBACEF,MAAA,YAAAG,aAAA,CAAAH,MAAA,YAAAI,QAAA,QACGC,iBAAK,CAACC,QAAQ,CAACC,GAAG,CAACL,KAAK,CAACM,QAAQ,EAAE,UAACC,KAAK;IAAA,oBAAKJ,iBAAK,CAACK,YAAY,CAACD,KAAK,EAAE;MAAE,kBAAkB,EAAEP,KAAK,CAACS;IAAQ,CAAC,CAAC;EAAA,EAC/G,CAAC;AAEP,CAAC;AAEDV,OAAO,CAACW,SAAS,GAAG;EAClBJ,QAAQ,EAAEK,qBAAS,CAACC,IAAI;EACxBH,OAAO,EAAEE,qBAAS,CAACE;AACrB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEahB,OAAO","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var Readable = function Readable(props) {
11
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _react["default"].Children.map(props.children, function (child) {
12
+ return /*#__PURE__*/_react["default"].cloneElement(child, {
13
+ 'data-pie-readable': props["false"] === undefined
14
+ });
15
+ }));
16
+ };
17
+ Readable.propTypes = {
18
+ children: _propTypes["default"].node,
19
+ "false": _propTypes["default"].bool
20
+ };
21
+ var _default = exports["default"] = Readable;
22
+ //# sourceMappingURL=readable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readable.js","names":["_propTypes","_interopRequireDefault","require","_react","Readable","props","createElement","Fragment","React","Children","map","children","child","cloneElement","undefined","propTypes","PropTypes","node","bool","_default","exports"],"sources":["../src/readable.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst Readable = (props) => {\n return (\n <>\n {React.Children.map(props.children, (child) =>\n React.cloneElement(child, { 'data-pie-readable': props.false === undefined }),\n )}\n </>\n );\n};\n\nReadable.propTypes = {\n children: PropTypes.node,\n false: PropTypes.bool,\n};\n\nexport default Readable;\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAME,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,KAAK,EAAK;EAC1B,oBACEF,MAAA,YAAAG,aAAA,CAAAH,MAAA,YAAAI,QAAA,QACGC,iBAAK,CAACC,QAAQ,CAACC,GAAG,CAACL,KAAK,CAACM,QAAQ,EAAE,UAACC,KAAK;IAAA,oBACxCJ,iBAAK,CAACK,YAAY,CAACD,KAAK,EAAE;MAAE,mBAAmB,EAAEP,KAAK,SAAM,KAAKS;IAAU,CAAC,CAAC;EAAA,CAC/E,CACA,CAAC;AAEP,CAAC;AAEDV,QAAQ,CAACW,SAAS,GAAG;EACnBJ,QAAQ,EAAEK,qBAAS,CAACC,IAAI;EACxB,SAAOD,qBAAS,CAACE;AACnB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEahB,QAAQ","ignoreList":[]}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.PartiallyCorrect = exports.NothingSubmitted = exports.Incorrect = exports.Correct = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+ var icons = _interopRequireWildcard(require("@pie-lib/icons"));
18
+ var _Popover = _interopRequireDefault(require("@mui/material/Popover"));
19
+ var _styles = require("@mui/material/styles");
20
+ var _feedback = _interopRequireDefault(require("./feedback"));
21
+ var _debug = _interopRequireDefault(require("debug"));
22
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
23
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
24
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
25
+ var log = (0, _debug["default"])('pie-libs:render-ui:response-indicators');
26
+ var ResponseIndicatorContainer = (0, _styles.styled)('div')(function (_ref) {
27
+ var hasFeedback = _ref.hasFeedback;
28
+ return {
29
+ cursor: hasFeedback ? 'pointer' : 'default'
30
+ };
31
+ });
32
+ var StyledPopover = (0, _styles.styled)(_Popover["default"])({
33
+ cursor: 'pointer'
34
+ });
35
+ var PopoverPaper = (0, _styles.styled)('div')({
36
+ padding: '0',
37
+ borderRadius: '4px'
38
+ });
39
+ var BuildIndicator = function BuildIndicator(Icon, correctness) {
40
+ var Indicator = /*#__PURE__*/function (_React$Component) {
41
+ function Indicator(props) {
42
+ var _this;
43
+ (0, _classCallCheck2["default"])(this, Indicator);
44
+ _this = _callSuper(this, Indicator, [props]);
45
+ (0, _defineProperty2["default"])(_this, "handlePopoverOpen", function (event) {
46
+ log('[handlePopoverOpen]', event.target);
47
+ _this.setState({
48
+ anchorEl: event.target
49
+ });
50
+ });
51
+ (0, _defineProperty2["default"])(_this, "handlePopoverClose", function () {
52
+ _this.setState({
53
+ anchorEl: null
54
+ });
55
+ });
56
+ _this.state = {};
57
+ return _this;
58
+ }
59
+ (0, _inherits2["default"])(Indicator, _React$Component);
60
+ return (0, _createClass2["default"])(Indicator, [{
61
+ key: "render",
62
+ value: function render() {
63
+ var _this2 = this;
64
+ var feedback = this.props.feedback;
65
+ var anchorEl = this.state.anchorEl;
66
+ return /*#__PURE__*/_react["default"].createElement(ResponseIndicatorContainer, {
67
+ hasFeedback: !!feedback
68
+ }, /*#__PURE__*/_react["default"].createElement("span", {
69
+ ref: function ref(r) {
70
+ return _this2.icon = r;
71
+ },
72
+ onClick: this.handlePopoverOpen
73
+ }, /*#__PURE__*/_react["default"].createElement(Icon, null)), feedback && /*#__PURE__*/_react["default"].createElement(StyledPopover, {
74
+ PaperComponent: PopoverPaper,
75
+ open: !!anchorEl,
76
+ anchorEl: anchorEl,
77
+ anchorOrigin: {
78
+ vertical: 'bottom',
79
+ horizontal: 'left'
80
+ },
81
+ transformOrigin: {
82
+ vertical: 'top',
83
+ horizontal: 'left'
84
+ },
85
+ onClose: this.handlePopoverClose
86
+ }, /*#__PURE__*/_react["default"].createElement(_feedback["default"], {
87
+ feedback: feedback,
88
+ correctness: correctness
89
+ })));
90
+ }
91
+ }]);
92
+ }(_react["default"].Component);
93
+ Indicator.propTypes = {
94
+ feedback: _propTypes["default"].string
95
+ };
96
+ return Indicator;
97
+ };
98
+ var Correct = exports.Correct = BuildIndicator(icons.Correct, 'correct');
99
+ var Incorrect = exports.Incorrect = BuildIndicator(icons.Incorrect, 'incorrect');
100
+ var PartiallyCorrect = exports.PartiallyCorrect = BuildIndicator(icons.PartiallyCorrect, 'partially-correct');
101
+ var NothingSubmitted = exports.NothingSubmitted = BuildIndicator(icons.NothingSubmitted, 'nothing-submitted');
102
+ //# sourceMappingURL=response-indicators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-indicators.js","names":["_react","_interopRequireDefault","require","_propTypes","icons","_interopRequireWildcard","_Popover","_styles","_feedback","_debug","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","log","debug","ResponseIndicatorContainer","styled","_ref","hasFeedback","cursor","StyledPopover","Popover","PopoverPaper","padding","borderRadius","BuildIndicator","Icon","correctness","Indicator","_React$Component","props","_this","_classCallCheck2","_defineProperty2","event","target","setState","anchorEl","state","_inherits2","_createClass2","key","value","render","_this2","feedback","createElement","ref","icon","onClick","handlePopoverOpen","PaperComponent","open","anchorOrigin","vertical","horizontal","transformOrigin","onClose","handlePopoverClose","React","Component","propTypes","PropTypes","string","Correct","exports","Incorrect","PartiallyCorrect","NothingSubmitted"],"sources":["../src/response-indicators.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as icons from '@pie-lib/icons';\nimport Popover from '@mui/material/Popover';\nimport { styled } from '@mui/material/styles';\nimport Feedback from './feedback';\nimport debug from 'debug';\n\nconst log = debug('pie-libs:render-ui:response-indicators');\n\nconst ResponseIndicatorContainer = styled('div')(({ hasFeedback }) => ({\n cursor: hasFeedback ? 'pointer' : 'default',\n}));\n\nconst StyledPopover = styled(Popover)({\n cursor: 'pointer',\n});\n\nconst PopoverPaper = styled('div')({\n padding: '0',\n borderRadius: '4px',\n});\n\nconst BuildIndicator = (Icon, correctness) => {\n class Indicator extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n handlePopoverOpen = (event) => {\n log('[handlePopoverOpen]', event.target);\n this.setState({ anchorEl: event.target });\n };\n\n handlePopoverClose = () => {\n this.setState({ anchorEl: null });\n };\n\n render() {\n const { feedback } = this.props;\n const { anchorEl } = this.state;\n return (\n <ResponseIndicatorContainer hasFeedback={!!feedback}>\n <span ref={(r) => (this.icon = r)} onClick={this.handlePopoverOpen}>\n <Icon />\n </span>\n\n {feedback && (\n <StyledPopover\n PaperComponent={PopoverPaper}\n open={!!anchorEl}\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n onClose={this.handlePopoverClose}\n >\n <Feedback feedback={feedback} correctness={correctness} />\n </StyledPopover>\n )}\n </ResponseIndicatorContainer>\n );\n }\n }\n\n Indicator.propTypes = {\n feedback: PropTypes.string,\n };\n\n return Indicator;\n};\n\nexport const Correct = BuildIndicator(icons.Correct, 'correct');\nexport const Incorrect = BuildIndicator(icons.Incorrect, 'incorrect');\nexport const PartiallyCorrect = BuildIndicator(icons.PartiallyCorrect, 'partially-correct');\nexport const NothingSubmitted = BuildIndicator(icons.NothingSubmitted, 'nothing-submitted');\n"],"mappings":"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","ignoreList":[]}