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

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/package.json +5 -5
  3. package/src/index.js +0 -2
  4. package/src/ui-layout.jsx +6 -7
  5. package/lib/__tests__/color.test.js +0 -15
  6. package/lib/__tests__/has-media.test.js +0 -20
  7. package/lib/__tests__/has-text.test.js +0 -18
  8. package/lib/__tests__/html-and-math.test.js +0 -48
  9. package/lib/__tests__/preview-prompt.test.js +0 -57
  10. package/lib/__tests__/purpose.test.js +0 -40
  11. package/lib/__tests__/readable.test.js +0 -46
  12. package/lib/__tests__/response-indicators.test.js +0 -178
  13. package/lib/__tests__/ui-layout.test.js +0 -66
  14. package/lib/__tests__/withUndoReset.test.js +0 -239
  15. package/lib/append-css-rules.js +0 -61
  16. package/lib/append-css-rules.js.map +0 -1
  17. package/lib/assets/enableAudioAutoplayImage.js +0 -8
  18. package/lib/assets/enableAudioAutoplayImage.js.map +0 -1
  19. package/lib/collapsible/__tests__/index.test.js +0 -60
  20. package/lib/collapsible/index.js +0 -105
  21. package/lib/collapsible/index.js.map +0 -1
  22. package/lib/color.js +0 -200
  23. package/lib/color.js.map +0 -1
  24. package/lib/feedback.js +0 -112
  25. package/lib/feedback.js.map +0 -1
  26. package/lib/has-media.js +0 -22
  27. package/lib/has-media.js.map +0 -1
  28. package/lib/has-text.js +0 -22
  29. package/lib/has-text.js.map +0 -1
  30. package/lib/html-and-math.js +0 -54
  31. package/lib/html-and-math.js.map +0 -1
  32. package/lib/index.js +0 -113
  33. package/lib/index.js.map +0 -1
  34. package/lib/input-container.js +0 -59
  35. package/lib/input-container.js.map +0 -1
  36. package/lib/preview-layout.js +0 -65
  37. package/lib/preview-layout.js.map +0 -1
  38. package/lib/preview-prompt.js +0 -296
  39. package/lib/preview-prompt.js.map +0 -1
  40. package/lib/purpose.js +0 -22
  41. package/lib/purpose.js.map +0 -1
  42. package/lib/readable.js +0 -22
  43. package/lib/readable.js.map +0 -1
  44. package/lib/response-indicators.js +0 -102
  45. package/lib/response-indicators.js.map +0 -1
  46. package/lib/ui-layout.js +0 -126
  47. package/lib/ui-layout.js.map +0 -1
  48. package/lib/withUndoReset.js +0 -135
  49. package/lib/withUndoReset.js.map +0 -1
  50. package/src/append-css-rules.js +0 -51
@@ -1,296 +0,0 @@
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=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVzIiwiX3Byb3BUeXBlcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJjb2xvciIsIl9tYXRoUmVuZGVyaW5nIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsImRvbmUiLCJ2YWx1ZSIsIlR5cGVFcnJvciIsImEiLCJ1IiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJTdHlsZWRQcm9tcHRDb250YWluZXIiLCJzdHlsZWQiLCJfcmVmIiwidGhlbWUiLCJ0YWdOYW1lIiwiYm9yZGVyQ29sbGFwc2UiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwYWxldHRlIiwiY29tbW9uIiwiYmxhY2siLCJwYWRkaW5nIiwidGV4dEFsaWduIiwidmVydGljYWxBbGlnbiIsInRleHQiLCJ3aWR0aCIsImZvbnRTaXplIiwicGFkZGluZ0xlZnQiLCJzcGFjaW5nIiwicGFkZGluZ0JvdHRvbSIsImNvbmNhdCIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiY3Vyc29yIiwibWFyZ2luIiwiTkVXTElORV9CTE9DS19SRUdFWCIsIk5FV0xJTkVfTEFURVgiLCJQcmV2aWV3UHJvbXB0IiwiZXhwb3J0cyIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJndW1lbnRzIiwiYXJncyIsIl9rZXkiLCJfZGVmaW5lUHJvcGVydHkyIiwiY3VzdG9tQXVkaW9CdXR0b24iLCJwcm9wcyIsImRpdiIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsImF1ZGlvIiwicXVlcnlTZWxlY3RvciIsInNvdXJjZSIsInNldEF0dHJpYnV0ZSIsImdldEF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsImFwcGVuZENoaWxkIiwic3R5bGUiLCJwbGF5QnV0dG9uIiwiaWQiLCJhc3NpZ24iLCJoZWlnaHQiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJwYXVzZUltYWdlIiwiYmFja2dyb3VuZFNpemUiLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJwYXJlbnROb2RlIiwiaW5zZXJ0QmVmb3JlIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJhZGRDdXN0b21BdWRpb0J1dHRvbkNvbnRyb2xzIiwiX3RoaXMkcHJvcHMiLCJhdXRvcGxheUF1ZGlvRW5hYmxlZCIsImdldEVsZW1lbnRCeUlkIiwicGxheSIsInRoZW4iLCJhZGRFdmVudExpc3RlbmVyIiwiaGFuZGxlQXVkaW9FbmRlZCIsImVycm9yIiwiY29uc29sZSIsImhhbmRsZVBsYXlDbGljayIsInBhdXNlZCIsImluY2x1ZGVzIiwicGxheUltYWdlIiwiaGFuZGxlQXVkaW9QbGF5IiwiaGFuZGxlQXVkaW9QYXVzZSIsIl9oYW5kbGVQbGF5Q2xpY2siLCJfaGFuZGxlQXVkaW9QbGF5IiwiX2hhbmRsZUF1ZGlvUGF1c2UiLCJfaGFuZGxlQXVkaW9FbmRlZCIsInJlbW92ZUN1c3RvbUF1ZGlvQnV0dG9uTGlzdGVuZXJzIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNvbXBvbmVudERpZE1vdW50IiwiYWxpZ25JbWFnZXMiLCJzZXR1cE1hdGhSZW5kZXJpbmciLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJwcm9tcHQiLCJyZW5kZXJNYXRoQ29udGVudCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiY29udGFpbmVyIiwicmVuZGVyTWF0aCIsInByZXZpZXdQcm9tcHRzIiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJwcmV2aWV3UHJvbXB0IiwiaW1hZ2VzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImltYWdlIiwiYXR0cmlidXRlcyIsImFsaWdubWVudCIsInBhcmVudEVsZW1lbnQiLCJjb3B5SW1hZ2UiLCJjbG9uZU5vZGUiLCJyZXBsYWNlQ2hpbGQiLCJlcnIiLCJyZW5kZXIiLCJfdGhpcyRwcm9wczIiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwiZGVmYXVsdENsYXNzTmFtZSIsImxlZ2VuZENsYXNzIiwiY3VzdG9tQ2xhc3NlcyIsInRyaW0iLCJhcyIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwicGFyc2VkVGV4dCIsInJlcGxhY2UiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJmdW5jIiwiYm9vbCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL3ByZXZpZXctcHJvbXB0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCAqIGFzIGNvbG9yIGZyb20gJy4vY29sb3InO1xuaW1wb3J0IHsgcmVuZGVyTWF0aCB9IGZyb20gJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nJztcblxuY29uc3QgU3R5bGVkUHJvbXB0Q29udGFpbmVyID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSwgdGFnTmFtZSB9KSA9PiAoe1xuICAvLyBCYXNlIHByb21wdFRhYmxlIHN0eWxlc1xuICAnJjpub3QoLk1hdGhKYXgpID4gdGFibGUnOiB7XG4gICAgYm9yZGVyQ29sbGFwc2U6ICdjb2xsYXBzZScsXG4gIH0sXG4gIC8vIEFwcGx5IHZlcnRpY2FsIHN0cmlwaW5nIHdoZW4gZmlyc3QgY29sdW1uIGlzIGEgaGVhZGVyICh0aCkgYW5kIE5PVCBtaXhlZCB3aXRoIHRkXG4gICcmOm5vdCguTWF0aEpheCkgPiB0YWJsZTpoYXModGJvZHkgdHIgPiB0aDpmaXJzdC1jaGlsZCk6bm90KDpoYXModGJvZHkgdHIgPiB0ZDpmaXJzdC1jaGlsZCkpIHRib2R5IHRkOm50aC1jaGlsZChldmVuKSc6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZjZmOGZhJyxcbiAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5jb21tb24uYmxhY2ssXG4gIH0sXG4gIC8vIEFwcGx5IGhvcml6b250YWwgc3RyaXBpbmcgZm9yIHRhYmxlcyB3aGVyZSBmaXJzdCBlbGVtZW50IGlzIGEgZGF0YSBjZWxsICh0ZClcbiAgJyY6bm90KC5NYXRoSmF4KSA+IHRhYmxlOmhhcyh0Ym9keSB0ciA+IHRkOmZpcnN0LWNoaWxkKSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGQnOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiAnI2Y2ZjhmYScsXG4gICAgY29sb3I6IHRoZW1lLnBhbGV0dGUuY29tbW9uLmJsYWNrLFxuICB9LFxuICAvLyBhbGlnbiB0YWJsZSBjb250ZW50IHRvIGxlZnQgYXMgcGVyIFNUQVIgcmVxdWlyZW1lbnQgUEQtMzY4N1xuICAnJjpub3QoLk1hdGhKYXgpIHRhYmxlIHRkLCAmOm5vdCguTWF0aEpheCkgdGFibGUgdGgnOiB7XG4gICAgcGFkZGluZzogJy42ZW0gMWVtJyxcbiAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgfSxcbiAgLy8gYWRkZWQgdGhpcyB0byBmaXggYWxpZ25tZW50IG9mIHRleHQgaW4gcHJvbXB0IGltcG9ydGVkIGZyb20gc3R1ZGlvIChQRC0zNDIzKVxuICAnJjpub3QoLk1hdGhKYXgpID4gdGFibGUgdGQgPiBwLmtkcy1pbmRlbnQnOiB7XG4gICAgdGV4dEFsaWduOiAnaW5pdGlhbCcsXG4gIH0sXG5cbiAgLy8gQ29uZGl0aW9uYWwgc3R5bGVzIGJhc2VkIG9uIGNsYXNzIG5hbWVzXG4gICcmLnByb21wdCc6IHtcbiAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbiAgICBjb2xvcjogY29sb3IudGV4dCgpLFxuICB9LFxuICAnJi5sZWdlbmQnOiB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBmb250U2l6ZTogJ2luaGVyaXQgIWltcG9ydGFudCcsXG4gIH0sXG4gICcmLnJhdGlvbmFsZSc6IHtcbiAgICBwYWRkaW5nTGVmdDogdGhlbWUuc3BhY2luZyg0KSxcbiAgICBwYWRkaW5nQm90dG9tOiB0aGVtZS5zcGFjaW5nKDEpLFxuICB9LFxuICAnJi5sYWJlbCc6IHtcbiAgICBjb2xvcjogYCR7Y29sb3IudGV4dCgpfSAhaW1wb3J0YW50YCxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgdmVydGljYWxBbGlnbjogJ21pZGRsZScsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgJyYgPiBwJzoge1xuICAgICAgbWFyZ2luOiAnMCAwIDAgMCAhaW1wb3J0YW50JyxcbiAgICB9LFxuICB9LFxufSkpO1xuXG4vL1VzZWQgdGhlc2UgYmVsb3cgdG8gcmVwbGFjZSBcXFxcZW1iZWR7bmV3TGluZX0gd2l0aCBcXFxcbmV3bGluZSBmcm9tIHByb21wdCB3aGljaCB3aWxsIGdldCBwYXJzZWQgaW4gTWF0aEpheFxuY29uc3QgTkVXTElORV9CTE9DS19SRUdFWCA9IC9cXFxcZW1iZWRcXHtuZXdMaW5lXFx9XFxbXFxdL2c7XG5jb25zdCBORVdMSU5FX0xBVEVYID0gJ1xcXFxuZXdsaW5lICc7XG5cbmV4cG9ydCBjbGFzcyBQcmV2aWV3UHJvbXB0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBwcm9tcHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgdGFnTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZGVmYXVsdENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBhdXRvcGxheUF1ZGlvRW5hYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VzdG9tQXVkaW9CdXR0b246IHtcbiAgICAgIHBsYXlJbWFnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHBhdXNlSW1hZ2U6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgfSxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG9uQ2xpY2s6ICgpID0+IHt9LFxuICB9O1xuXG4gIHBhcnNlZFRleHQgPSAodGV4dCkgPT4ge1xuICAgIGNvbnN0IHsgY3VzdG9tQXVkaW9CdXR0b24gfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZGl2LmlubmVySFRNTCA9IHRleHQ7XG5cbiAgICBjb25zdCBhdWRpbyA9IGRpdi5xdWVyeVNlbGVjdG9yKCdhdWRpbycpO1xuICAgIGlmIChhdWRpbykge1xuICAgICAgY29uc3Qgc291cmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc291cmNlJyk7XG5cbiAgICAgIHNvdXJjZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnYXVkaW8vbXAzJyk7XG4gICAgICBzb3VyY2Uuc2V0QXR0cmlidXRlKCdzcmMnLCBhdWRpby5nZXRBdHRyaWJ1dGUoJ3NyYycpKTtcblxuICAgICAgYXVkaW8ucmVtb3ZlQXR0cmlidXRlKCdzcmMnKTtcbiAgICAgIGF1ZGlvLnNldEF0dHJpYnV0ZSgnaWQnLCAncGllLXByb21wdC1hdWRpby1wbGF5ZXInKTtcblxuICAgICAgYXVkaW8uYXBwZW5kQ2hpbGQoc291cmNlKTtcblxuICAgICAgaWYgKGN1c3RvbUF1ZGlvQnV0dG9uKSB7XG4gICAgICAgIGF1ZGlvLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cbiAgICAgICAgY29uc3QgcGxheUJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBwbGF5QnV0dG9uLmlkID0gJ3BsYXktYXVkaW8tYnV0dG9uJztcblxuICAgICAgICBPYmplY3QuYXNzaWduKHBsYXlCdXR0b24uc3R5bGUsIHtcbiAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgICAgIHdpZHRoOiAnMTI4cHgnLFxuICAgICAgICAgIGhlaWdodDogJzEyOHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IGB1cmwoJHtjdXN0b21BdWRpb0J1dHRvbi5wYXVzZUltYWdlfSlgLFxuICAgICAgICAgIGJhY2tncm91bmRTaXplOiAnY292ZXInLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogJzUwJScsXG4gICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICMzMjYyOTUnLFxuICAgICAgICB9KTtcblxuICAgICAgICBhdWRpby5wYXJlbnROb2RlLmluc2VydEJlZm9yZShwbGF5QnV0dG9uLCBhdWRpbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpdi5pbm5lckhUTUw7XG4gIH07XG5cbiAgYWRkQ3VzdG9tQXVkaW9CdXR0b25Db250cm9scygpIHtcbiAgICBjb25zdCB7IGF1dG9wbGF5QXVkaW9FbmFibGVkLCBjdXN0b21BdWRpb0J1dHRvbiB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBwbGF5QnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsYXktYXVkaW8tYnV0dG9uJyk7XG4gICAgY29uc3QgYXVkaW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGllLXByb21wdC1hdWRpby1wbGF5ZXInKTtcblxuICAgIGlmIChhdXRvcGxheUF1ZGlvRW5hYmxlZCAmJiBhdWRpbykge1xuICAgICAgYXVkaW9cbiAgICAgICAgLnBsYXkoKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgaWYgKHBsYXlCdXR0b24gJiYgY3VzdG9tQXVkaW9CdXR0b24pIHtcbiAgICAgICAgICAgIGF1ZGlvLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZGVkJywgaGFuZGxlQXVkaW9FbmRlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcGxheWluZyBhdWRpbycsIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCFwbGF5QnV0dG9uIHx8ICFhdWRpbyB8fCAhY3VzdG9tQXVkaW9CdXR0b24pIHJldHVybjtcblxuICAgIGNvbnN0IGhhbmRsZVBsYXlDbGljayA9ICgpID0+IHtcbiAgICAgIC8vIGlmIGFscmVhZHkgcGxheWluZywgZG9uJ3QgcGxheSBhZ2FpblxuICAgICAgaWYgKCFhdWRpby5wYXVzZWQpIHJldHVybjtcbiAgICAgIGlmIChwbGF5QnV0dG9uLnN0eWxlLmJhY2tncm91bmRJbWFnZS5pbmNsdWRlcyhjdXN0b21BdWRpb0J1dHRvbi5wYXVzZUltYWdlKSkgcmV0dXJuO1xuXG4gICAgICBhdWRpby5wbGF5KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUF1ZGlvRW5kZWQgPSAoKSA9PiB7XG4gICAgICBwbGF5QnV0dG9uLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoJHtjdXN0b21BdWRpb0J1dHRvbi5wbGF5SW1hZ2V9KWA7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUF1ZGlvUGxheSA9ICgpID0+IHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocGxheUJ1dHRvbi5zdHlsZSwge1xuICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IGB1cmwoJHtjdXN0b21BdWRpb0J1dHRvbi5wYXVzZUltYWdlfSlgLFxuICAgICAgICBib3JkZXI6ICcxcHggc29saWQgI2NjYycsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQXVkaW9QYXVzZSA9ICgpID0+IHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocGxheUJ1dHRvbi5zdHlsZSwge1xuICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IGB1cmwoJHtjdXN0b21BdWRpb0J1dHRvbi5wbGF5SW1hZ2V9KWAsXG4gICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjMzI2Mjk1JyxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBwbGF5QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlUGxheUNsaWNrKTtcbiAgICBhdWRpby5hZGRFdmVudExpc3RlbmVyKCdwbGF5JywgaGFuZGxlQXVkaW9QbGF5KTtcbiAgICBhdWRpby5hZGRFdmVudExpc3RlbmVyKCdwYXVzZScsIGhhbmRsZUF1ZGlvUGF1c2UpO1xuICAgIGF1ZGlvLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZGVkJywgaGFuZGxlQXVkaW9FbmRlZCk7XG5cbiAgICAvLyBzdG9yZSBldmVudCBoYW5kbGVyIHJlZmVyZW5jZXMgc28gdGhleSBjYW4gYmUgcmVtb3ZlZCBsYXRlclxuICAgIHRoaXMuX2hhbmRsZVBsYXlDbGljayA9IGhhbmRsZVBsYXlDbGljaztcbiAgICB0aGlzLl9oYW5kbGVBdWRpb1BsYXkgPSBoYW5kbGVBdWRpb1BsYXk7XG4gICAgdGhpcy5faGFuZGxlQXVkaW9QYXVzZSA9IGhhbmRsZUF1ZGlvUGF1c2U7XG4gICAgdGhpcy5faGFuZGxlQXVkaW9FbmRlZCA9IGhhbmRsZUF1ZGlvRW5kZWQ7XG4gIH1cblxuICByZW1vdmVDdXN0b21BdWRpb0J1dHRvbkxpc3RlbmVycygpIHtcbiAgICBjb25zdCBwbGF5QnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsYXktYXVkaW8tYnV0dG9uJyk7XG4gICAgY29uc3QgYXVkaW8gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhdWRpbycpO1xuXG4gICAgaWYgKCFwbGF5QnV0dG9uIHx8ICFhdWRpbykgcmV0dXJuO1xuXG4gICAgLy8gcmVtb3ZlIGV2ZW50IGxpc3RlbmVycyB1c2luZyBzdG9yZWQgcmVmZXJlbmNlc1xuICAgIHBsYXlCdXR0b24ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYW5kbGVQbGF5Q2xpY2spO1xuICAgIGF1ZGlvLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BsYXknLCB0aGlzLl9oYW5kbGVBdWRpb1BsYXkpO1xuICAgIGF1ZGlvLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BhdXNlJywgdGhpcy5faGFuZGxlQXVkaW9QYXVzZSk7XG4gICAgYXVkaW8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignZW5kZWQnLCB0aGlzLl9oYW5kbGVBdWRpb0VuZGVkKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuYWxpZ25JbWFnZXMoKTtcbiAgICB0aGlzLmFkZEN1c3RvbUF1ZGlvQnV0dG9uQ29udHJvbHMoKTtcbiAgICB0aGlzLnNldHVwTWF0aFJlbmRlcmluZygpO1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgIHRoaXMuYWxpZ25JbWFnZXMoKTtcblxuICAgIGlmIChwcmV2UHJvcHMucHJvbXB0ICE9PSB0aGlzLnByb3BzLnByb21wdCkge1xuICAgICAgdGhpcy5yZW5kZXJNYXRoQ29udGVudCgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMucmVtb3ZlQ3VzdG9tQXVkaW9CdXR0b25MaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHNldHVwTWF0aFJlbmRlcmluZygpIHtcbiAgICB0aGlzLnJlbmRlck1hdGhDb250ZW50KCk7XG4gIH1cblxuICByZW5kZXJNYXRoQ29udGVudCgpIHtcbiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJldmlldy1wcm9tcHQnKTtcbiAgICBpZiAoY29udGFpbmVyICYmIHR5cGVvZiByZW5kZXJNYXRoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZW5kZXJNYXRoKGNvbnRhaW5lcik7XG4gICAgfVxuICB9XG5cbiAgYWxpZ25JbWFnZXMoKSB7XG4gICAgY29uc3QgcHJldmlld1Byb21wdHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjcHJldmlldy1wcm9tcHQnKTtcblxuICAgIHByZXZpZXdQcm9tcHRzLmZvckVhY2goKHByZXZpZXdQcm9tcHQpID0+IHtcbiAgICAgIGNvbnN0IGltYWdlcyA9IHByZXZpZXdQcm9tcHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpO1xuXG4gICAgICBpZiAoaW1hZ2VzICYmIGltYWdlcy5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChsZXQgaW1hZ2Ugb2YgaW1hZ2VzKSB7XG4gICAgICAgICAgLy8gY2hlY2sgaWYgYWxpZ25tZW50IHByb3BlcnR5IHdhcyBzZXRcbiAgICAgICAgICBpZiAoaW1hZ2UuYXR0cmlidXRlcyAmJiBpbWFnZS5hdHRyaWJ1dGVzLmFsaWdubWVudCAmJiBpbWFnZS5hdHRyaWJ1dGVzLmFsaWdubWVudC52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IGltYWdlLnBhcmVudEVsZW1lbnQ7XG5cbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIGRpdiBpcyBub3QgYWxyZWFkeSBhZGRlZCB0byBkb20gYW5kIHJlcGxhY2UgY3VycmVudCBpbWFnZSB3aXRoIHdyYXBwZWQgaW1hZ2VcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLnRhZ05hbWUgPT09ICdESVYnICYmXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5zdHlsZS5kaXNwbGF5ID09PSAnZmxleCcgJiZcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLnN0eWxlLndpZHRoID09PSAnMTAwJSdcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICBkaXYuc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICAgICAgICAgICAgZGl2LnN0eWxlLndpZHRoID0gJzEwMCUnO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGNvcHlJbWFnZSA9IGltYWdlLmNsb25lTm9kZSh0cnVlKTtcbiAgICAgICAgICAgICAgZGl2LmFwcGVuZENoaWxkKGNvcHlJbWFnZSk7XG4gICAgICAgICAgICAgIHBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGRpdiwgaW1hZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgcHJvbXB0LCB0YWdOYW1lLCBjbGFzc05hbWUsIG9uQ2xpY2ssIGRlZmF1bHRDbGFzc05hbWUgfSA9IHRoaXMucHJvcHM7XG4gICAgLy8gbGVnZW5kIHRhZyB3YXMgYWRkZWQgb25jZSB3aXRoIGFjY2Vzc2liaWxpdHkgdGFza3MsIHdlIG5lZWQgZXh0cmEgc3R5bGUgdG8gbWFrZSBpdCB3b3JrIHdpdGggaW1hZ2VzIGFsaWdubWVudFxuICAgIGNvbnN0IGxlZ2VuZENsYXNzID0gdGFnTmFtZSA9PT0gJ2xlZ2VuZCcgPyAnbGVnZW5kJyA6ICcnO1xuICAgIGNvbnN0IGN1c3RvbUNsYXNzZXMgPSBgJHtjbGFzc05hbWUgfHwgJyd9ICR7ZGVmYXVsdENsYXNzTmFtZSB8fCAnJ30gJHtsZWdlbmRDbGFzc31gLnRyaW0oKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkUHJvbXB0Q29udGFpbmVyXG4gICAgICAgIGFzPXt0YWdOYW1lIHx8ICdkaXYnfVxuICAgICAgICBpZD17J3ByZXZpZXctcHJvbXB0J31cbiAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgICAgY2xhc3NOYW1lPXtjdXN0b21DbGFzc2VzfVxuICAgICAgICB0YWdOYW1lPXt0YWdOYW1lfVxuICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgIF9faHRtbDogdGhpcy5wYXJzZWRUZXh0KHByb21wdCB8fCAnJykucmVwbGFjZShORVdMSU5FX0JMT0NLX1JFR0VYLCBORVdMSU5FX0xBVEVYKSxcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBQcmV2aWV3UHJvbXB0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQUwsT0FBQTtBQUFxRCxTQUFBRCx3QkFBQU8sQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQVQsdUJBQUEsWUFBQUEsd0JBQUFPLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNB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
@@ -1 +0,0 @@
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 DELETED
@@ -1,22 +0,0 @@
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=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJQdXJwb3NlIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJSZWFjdCIsIkNoaWxkcmVuIiwibWFwIiwiY2hpbGRyZW4iLCJjaGlsZCIsImNsb25lRWxlbWVudCIsInB1cnBvc2UiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJub2RlIiwic3RyaW5nIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL3B1cnBvc2UuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5jb25zdCBQdXJwb3NlID0gKHByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtSZWFjdC5DaGlsZHJlbi5tYXAocHJvcHMuY2hpbGRyZW4sIChjaGlsZCkgPT4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7ICdkYXRhLXBpZS1wdXJwb3NlJzogcHJvcHMucHVycG9zZSB9KSl9XG4gICAgPC8+XG4gICk7XG59O1xuXG5QdXJwb3NlLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICBwdXJwb3NlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgUHVycG9zZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQU1FLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFJQyxLQUFLLEVBQUs7RUFDekIsb0JBQ0VGLE1BQUEsWUFBQUcsYUFBQSxDQUFBSCxNQUFBLFlBQUFJLFFBQUEsUUFDR0MsaUJBQUssQ0FBQ0MsUUFBUSxDQUFDQyxHQUFHLENBQUNMLEtBQUssQ0FBQ00sUUFBUSxFQUFFLFVBQUNDLEtBQUs7SUFBQSxvQkFBS0osaUJBQUssQ0FBQ0ssWUFBWSxDQUFDRCxLQUFLLEVBQUU7TUFBRSxrQkFBa0IsRUFBRVAsS0FBSyxDQUFDUztJQUFRLENBQUMsQ0FBQztFQUFBLEVBQy9HLENBQUM7QUFFUCxDQUFDO0FBRURWLE9BQU8sQ0FBQ1csU0FBUyxHQUFHO0VBQ2xCSixRQUFRLEVBQUVLLHFCQUFTLENBQUNDLElBQUk7RUFDeEJILE9BQU8sRUFBRUUscUJBQVMsQ0FBQ0U7QUFDckIsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FBQUMsT0FBQSxjQUVhaEIsT0FBTyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1 +0,0 @@
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":[]}
package/lib/readable.js DELETED
@@ -1,22 +0,0 @@
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=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJSZWFkYWJsZSIsInByb3BzIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiUmVhY3QiLCJDaGlsZHJlbiIsIm1hcCIsImNoaWxkcmVuIiwiY2hpbGQiLCJjbG9uZUVsZW1lbnQiLCJ1bmRlZmluZWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJub2RlIiwiYm9vbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFkYWJsZS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFJlYWRhYmxlID0gKHByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtSZWFjdC5DaGlsZHJlbi5tYXAocHJvcHMuY2hpbGRyZW4sIChjaGlsZCkgPT5cbiAgICAgICAgUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7ICdkYXRhLXBpZS1yZWFkYWJsZSc6IHByb3BzLmZhbHNlID09PSB1bmRlZmluZWQgfSksXG4gICAgICApfVxuICAgIDwvPlxuICApO1xufTtcblxuUmVhZGFibGUucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIGZhbHNlOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJlYWRhYmxlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBTUUsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLEtBQUssRUFBSztFQUMxQixvQkFDRUYsTUFBQSxZQUFBRyxhQUFBLENBQUFILE1BQUEsWUFBQUksUUFBQSxRQUNHQyxpQkFBSyxDQUFDQyxRQUFRLENBQUNDLEdBQUcsQ0FBQ0wsS0FBSyxDQUFDTSxRQUFRLEVBQUUsVUFBQ0MsS0FBSztJQUFBLG9CQUN4Q0osaUJBQUssQ0FBQ0ssWUFBWSxDQUFDRCxLQUFLLEVBQUU7TUFBRSxtQkFBbUIsRUFBRVAsS0FBSyxTQUFNLEtBQUtTO0lBQVUsQ0FBQyxDQUFDO0VBQUEsQ0FDL0UsQ0FDQSxDQUFDO0FBRVAsQ0FBQztBQUVEVixRQUFRLENBQUNXLFNBQVMsR0FBRztFQUNuQkosUUFBUSxFQUFFSyxxQkFBUyxDQUFDQyxJQUFJO0VBQ3hCLFNBQU9ELHFCQUFTLENBQUNFO0FBQ25CLENBQUM7QUFBQyxJQUFBQyxRQUFBLEdBQUFDLE9BQUEsY0FFYWhCLFFBQVEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1 +0,0 @@
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":[]}
@@ -1,102 +0,0 @@
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=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJpY29ucyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX1BvcG92ZXIiLCJfc3R5bGVzIiwiX2ZlZWRiYWNrIiwiX2RlYnVnIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwibG9nIiwiZGVidWciLCJSZXNwb25zZUluZGljYXRvckNvbnRhaW5lciIsInN0eWxlZCIsIl9yZWYiLCJoYXNGZWVkYmFjayIsImN1cnNvciIsIlN0eWxlZFBvcG92ZXIiLCJQb3BvdmVyIiwiUG9wb3ZlclBhcGVyIiwicGFkZGluZyIsImJvcmRlclJhZGl1cyIsIkJ1aWxkSW5kaWNhdG9yIiwiSWNvbiIsImNvcnJlY3RuZXNzIiwiSW5kaWNhdG9yIiwiX1JlYWN0JENvbXBvbmVudCIsInByb3BzIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2RlZmluZVByb3BlcnR5MiIsImV2ZW50IiwidGFyZ2V0Iiwic2V0U3RhdGUiLCJhbmNob3JFbCIsInN0YXRlIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsInJlbmRlciIsIl90aGlzMiIsImZlZWRiYWNrIiwiY3JlYXRlRWxlbWVudCIsInJlZiIsImljb24iLCJvbkNsaWNrIiwiaGFuZGxlUG9wb3Zlck9wZW4iLCJQYXBlckNvbXBvbmVudCIsIm9wZW4iLCJhbmNob3JPcmlnaW4iLCJ2ZXJ0aWNhbCIsImhvcml6b250YWwiLCJ0cmFuc2Zvcm1PcmlnaW4iLCJvbkNsb3NlIiwiaGFuZGxlUG9wb3ZlckNsb3NlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJDb3JyZWN0IiwiZXhwb3J0cyIsIkluY29ycmVjdCIsIlBhcnRpYWxseUNvcnJlY3QiLCJOb3RoaW5nU3VibWl0dGVkIl0sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc3BvbnNlLWluZGljYXRvcnMuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0ICogYXMgaWNvbnMgZnJvbSAnQHBpZS1saWIvaWNvbnMnO1xuaW1wb3J0IFBvcG92ZXIgZnJvbSAnQG11aS9tYXRlcmlhbC9Qb3BvdmVyJztcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCBGZWVkYmFjayBmcm9tICcuL2ZlZWRiYWNrJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdwaWUtbGliczpyZW5kZXItdWk6cmVzcG9uc2UtaW5kaWNhdG9ycycpO1xuXG5jb25zdCBSZXNwb25zZUluZGljYXRvckNvbnRhaW5lciA9IHN0eWxlZCgnZGl2JykoKHsgaGFzRmVlZGJhY2sgfSkgPT4gKHtcbiAgY3Vyc29yOiBoYXNGZWVkYmFjayA/ICdwb2ludGVyJyA6ICdkZWZhdWx0Jyxcbn0pKTtcblxuY29uc3QgU3R5bGVkUG9wb3ZlciA9IHN0eWxlZChQb3BvdmVyKSh7XG4gIGN1cnNvcjogJ3BvaW50ZXInLFxufSk7XG5cbmNvbnN0IFBvcG92ZXJQYXBlciA9IHN0eWxlZCgnZGl2Jykoe1xuICBwYWRkaW5nOiAnMCcsXG4gIGJvcmRlclJhZGl1czogJzRweCcsXG59KTtcblxuY29uc3QgQnVpbGRJbmRpY2F0b3IgPSAoSWNvbiwgY29ycmVjdG5lc3MpID0+IHtcbiAgY2xhc3MgSW5kaWNhdG9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgdGhpcy5zdGF0ZSA9IHt9O1xuICAgIH1cblxuICAgIGhhbmRsZVBvcG92ZXJPcGVuID0gKGV2ZW50KSA9PiB7XG4gICAgICBsb2coJ1toYW5kbGVQb3BvdmVyT3Blbl0nLCBldmVudC50YXJnZXQpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFuY2hvckVsOiBldmVudC50YXJnZXQgfSk7XG4gICAgfTtcblxuICAgIGhhbmRsZVBvcG92ZXJDbG9zZSA9ICgpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBhbmNob3JFbDogbnVsbCB9KTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgeyBmZWVkYmFjayB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHsgYW5jaG9yRWwgfSA9IHRoaXMuc3RhdGU7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8UmVzcG9uc2VJbmRpY2F0b3JDb250YWluZXIgaGFzRmVlZGJhY2s9eyEhZmVlZGJhY2t9PlxuICAgICAgICAgIDxzcGFuIHJlZj17KHIpID0+ICh0aGlzLmljb24gPSByKX0gb25DbGljaz17dGhpcy5oYW5kbGVQb3BvdmVyT3Blbn0+XG4gICAgICAgICAgICA8SWNvbiAvPlxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgIHtmZWVkYmFjayAmJiAoXG4gICAgICAgICAgICA8U3R5bGVkUG9wb3ZlclxuICAgICAgICAgICAgICBQYXBlckNvbXBvbmVudD17UG9wb3ZlclBhcGVyfVxuICAgICAgICAgICAgICBvcGVuPXshIWFuY2hvckVsfVxuICAgICAgICAgICAgICBhbmNob3JFbD17YW5jaG9yRWx9XG4gICAgICAgICAgICAgIGFuY2hvck9yaWdpbj17e1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsOiAnbGVmdCcsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbj17e1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsOiAndG9wJyxcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsOiAnbGVmdCcsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuaGFuZGxlUG9wb3ZlckNsb3NlfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RmVlZGJhY2sgZmVlZGJhY2s9e2ZlZWRiYWNrfSBjb3JyZWN0bmVzcz17Y29ycmVjdG5lc3N9IC8+XG4gICAgICAgICAgICA8L1N0eWxlZFBvcG92ZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9SZXNwb25zZUluZGljYXRvckNvbnRhaW5lcj5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgSW5kaWNhdG9yLnByb3BUeXBlcyA9IHtcbiAgICBmZWVkYmFjazogUHJvcFR5cGVzLnN0cmluZyxcbiAgfTtcblxuICByZXR1cm4gSW5kaWNhdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IENvcnJlY3QgPSBCdWlsZEluZGljYXRvcihpY29ucy5Db3JyZWN0LCAnY29ycmVjdCcpO1xuZXhwb3J0IGNvbnN0IEluY29ycmVjdCA9IEJ1aWxkSW5kaWNhdG9yKGljb25zLkluY29ycmVjdCwgJ2luY29ycmVjdCcpO1xuZXhwb3J0IGNvbnN0IFBhcnRpYWxseUNvcnJlY3QgPSBCdWlsZEluZGljYXRvcihpY29ucy5QYXJ0aWFsbHlDb3JyZWN0LCAncGFydGlhbGx5LWNvcnJlY3QnKTtcbmV4cG9ydCBjb25zdCBOb3RoaW5nU3VibWl0dGVkID0gQnVpbGRJbmRpY2F0b3IoaWNv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
@@ -1 +0,0 @@
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":[]}