@pie-lib/mask-markup 1.33.2-beta.2 → 1.33.2-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.
- package/LICENSE.md +5 -0
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/choices/choice.js +1 -1
- package/lib/choices/choice.js.map +1 -0
- package/lib/choices/index.js +1 -1
- package/lib/choices/index.js.map +1 -0
- package/lib/componentize.js +1 -1
- package/lib/componentize.js.map +1 -0
- package/lib/components/blank.js +1 -1
- package/lib/components/blank.js.map +1 -0
- package/lib/components/correct-input.js +1 -1
- package/lib/components/correct-input.js.map +1 -0
- package/lib/components/dropdown.js +1 -1
- package/lib/components/dropdown.js.map +1 -0
- package/lib/components/input.js +1 -1
- package/lib/components/input.js.map +1 -0
- package/lib/constructed-response.js +3 -3
- package/lib/constructed-response.js.map +1 -0
- package/lib/customizable.js +1 -1
- package/lib/customizable.js.map +1 -0
- package/lib/drag-in-the-blank.js +1 -1
- package/lib/drag-in-the-blank.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -0
- package/lib/inline-dropdown.js +1 -1
- package/lib/inline-dropdown.js.map +1 -0
- package/lib/mask.js +1 -1
- package/lib/mask.js.map +1 -0
- package/lib/serialization.js +1 -1
- package/lib/serialization.js.map +1 -0
- package/lib/with-mask.js +1 -1
- package/lib/with-mask.js.map +1 -0
- package/package.json +7 -7
- package/src/constructed-response.jsx +1 -1
- package/lib/__tests__/drag-in-the-blank.test.js +0 -71
- package/lib/__tests__/index.test.js +0 -50
- package/lib/__tests__/mask.test.js +0 -149
- package/lib/__tests__/serialization.test.js +0 -45
- package/lib/__tests__/utils.js +0 -17
- package/lib/__tests__/with-mask.test.js +0 -65
- package/lib/choices/__tests__/index.test.js +0 -85
- package/lib/components/__tests__/blank.test.js +0 -234
- package/lib/components/__tests__/correct-input.test.js +0 -63
- package/lib/components/__tests__/dropdown.test.js +0 -70
- package/lib/components/__tests__/input.test.js +0 -64
package/LICENSE.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Copyright 2019 CoreSpring Inc
|
|
2
|
+
|
|
3
|
+
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
|
4
|
+
|
|
5
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
package/lib/choices/choice.js
CHANGED
|
@@ -218,4 +218,4 @@ var DragDropTile = (0, _drag.DragSource)(DRAG_TYPE, tileSource, function (connec
|
|
|
218
218
|
})(BlankContent);
|
|
219
219
|
var _default = DragDropTile;
|
|
220
220
|
exports["default"] = _default;
|
|
221
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaG9pY2VzL2Nob2ljZS5qc3giXSwibmFtZXMiOlsiRFJBR19UWVBFIiwiQmxhbmtDb250ZW50Q29tcCIsInByb3BzIiwiY29ubmVjdERyYWdTb3VyY2UiLCJkaXNhYmxlZCIsImRyYWdDb250YWluZXJSZWYiLCJlIiwicHJldmVudERlZmF1bHQiLCJsb25nUHJlc3NUaW1lciIsInNldFRpbWVvdXQiLCJzdGFydERyYWciLCJjbGVhclRpbWVvdXQiLCJhZGRFdmVudExpc3RlbmVyIiwiaGFuZGxlVG91Y2hTdGFydCIsInBhc3NpdmUiLCJoYW5kbGVUb3VjaEVuZCIsImhhbmRsZVRvdWNoTW92ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyb290UmVmIiwiY2hvaWNlIiwiY2xhc3NlcyIsInJlZiIsIlJlYWN0RE9NIiwiZmluZERPTU5vZGUiLCJjaGlwIiwiY2hpcExhYmVsIiwiaW5uZXJIVE1MIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsImJvb2wiLCJvYmplY3QiLCJmdW5jIiwiQmxhbmtDb250ZW50IiwidGhlbWUiLCJib3JkZXIiLCJwYWxldHRlIiwicHJpbWFyeSIsIm1haW4iLCJib3JkZXJSYWRpdXMiLCJzcGFjaW5nIiwidW5pdCIsIm1hcmdpbiIsInRyYW5zZm9ybSIsImJhY2tncm91bmRDb2xvciIsImNvbG9yIiwid2hpdGUiLCJ0ZXh0IiwiYWxpZ25JdGVtcyIsImRpc3BsYXkiLCJoZWlnaHQiLCJtaW5IZWlnaHQiLCJmb250U2l6ZSIsIndoaXRlU3BhY2UiLCJtYXhXaWR0aCIsInBvaW50ZXJFdmVudHMiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSIsInBhZGRpbmciLCJvcGFjaXR5IiwidGlsZVNvdXJjZSIsImNhbkRyYWciLCJiZWdpbkRyYWciLCJpbnN0YW5jZUlkIiwiRHJhZ0Ryb3BUaWxlIiwiY29ubmVjdCIsIm1vbml0b3IiLCJkcmFnU291cmNlIiwiaXNE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LEdBQUcsc0JBQVdsRSxTQUFYLEVBQXNCOEQsVUFBdEIsRUFBa0MsVUFBQ0ssT0FBRCxFQUFVQyxPQUFWO0FBQUEsU0FBdUI7QUFDNUVqRSxJQUFBQSxpQkFBaUIsRUFBRWdFLE9BQU8sQ0FBQ0UsVUFBUixFQUR5RDtBQUU1RUMsSUFBQUEsVUFBVSxFQUFFRixPQUFPLENBQUNFLFVBQVI7QUFGZ0UsR0FBdkI7QUFBQSxDQUFsQyxFQUdqQm5DLFlBSGlCLENBQXJCO2VBS2UrQixZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IENoaXAgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQ2hpcCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHsgcmVuZGVyTWF0aCB9IGZyb20gJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nJztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IERyYWdTb3VyY2UgfSBmcm9tICdAcGllLWxpYi9kcmFnJztcblxuZXhwb3J0IGNvbnN0IERSQUdfVFlQRSA9ICdNYXNrQmxhbmsnO1xuXG5jbGFzcyBCbGFua0NvbnRlbnRDb21wIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgY2hvaWNlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY29ubmVjdERyYWdTb3VyY2U6IFByb3BUeXBlcy5mdW5jLFxuICB9O1xuXG4gIHN0YXJ0RHJhZyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbm5lY3REcmFnU291cmNlLCBkaXNhYmxlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICBjb25uZWN0RHJhZ1NvdXJjZSh0aGlzLmRyYWdDb250YWluZXJSZWYpO1xuICAgIH1cbiAgfTtcblxuICAvLyBzdGFydCBkcmFnIGFmdGVyIDUwMG1zICh0b3VjaCBhbmQgaG9sZCBkdXJhdGlvbikgZm9yIGNocm9tZWJvb2tzIGFuZCBvdGhlciB0b3VjaCBkZXZpY2VzIFBELTQ4ODhcbiAgaGFuZGxlVG91Y2hTdGFydCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMubG9uZ1ByZXNzVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc3RhcnREcmFnKGUpO1xuICAgIH0sIDUwMCk7XG4gIH07XG5cbiAgaGFuZGxlVG91Y2hFbmQgPSAoKSA9PiB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMubG9uZ1ByZXNzVGltZXIpO1xuICB9O1xuXG4gIGhhbmRsZVRvdWNoTW92ZSA9ICgpID0+IHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5sb25nUHJlc3NUaW1lcik7XG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgaWYgKHRoaXMuZHJhZ0NvbnRhaW5lclJlZikge1xuICAgICAgdGhpcy5kcmFnQ29udGFpbmVyUmVmLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLmhhbmRsZVRvdWNoU3RhcnQsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgICB0aGlzLmRyYWdDb250YWluZXJSZWYuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLmhhbmRsZVRvdWNoRW5kKTtcbiAgICAgIHRoaXMuZHJhZ0NvbnRhaW5lclJlZi5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLmhhbmRsZVRvdWNoTW92ZSk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMuZHJhZ0NvbnRhaW5lclJlZikge1xuICAgICAgdGhpcy5kcmFnQ29udGFpbmVyUmVmLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLmhhbmRsZVRvdWNoU3RhcnQpO1xuICAgICAgdGhpcy5kcmFnQ29udGFpbmVyUmVmLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5oYW5kbGVUb3VjaEVuZCk7XG4gICAgICB0aGlzLmRyYWdDb250YWluZXJSZWYucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5oYW5kbGVUb3VjaE1vdmUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICByZW5kZXJNYXRoKHRoaXMucm9vdFJlZik7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjb25uZWN0RHJhZ1NvdXJjZSwgY2hvaWNlLCBjbGFzc2VzLCBkaXNhYmxlZCB9ID0gdGhpcy5wcm9wcztcblxuICAgIC8vIFRPRE8gdGhlIENoaXAgZWxlbWVudCBpcyBjYXVzaW5nIGRyYWcgcHJvYmxlbXMgb24gdG91Y2ggZGV2aWNlcy4gQXZvaWQgdXNpbmcgQ2hpcCBhbmQgY29uc2lkZXIgcmVmYWN0b3JpbmcgdGhlIGNvZGUuIEtlZXAgaW4gbWluZCB0aGF0IENoaXAgaXMgYSBzcGFuIHdpdGggYSBidXR0b24gcm9sZSwgd2hpY2ggaW50ZXJmZXJlcyB3aXRoIHNlYW1sZXNzIHRvdWNoIGRldmljZSBkcmFnZ2luZy5cblxuICAgIHJldHVybiBjb25uZWN0RHJhZ1NvdXJjZShcbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhjbGFzc2VzLmNob2ljZSwgZGlzYWJsZWQgJiYgY2xhc3Nlcy5kaXNhYmxlZCl9XG4gICAgICAgIHJlZj17KHJlZikgPT4ge1xuICAgICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgdGhpcy5kcmFnQ29udGFpbmVyUmVmID0gUmVhY3RET00uZmluZERPTU5vZGUocmVmKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPENoaXBcbiAgICAgICAgICBjbGlja2FibGU9e2ZhbHNlfVxuICAgICAgICAgIGRpc2FibGVkPXt0cnVlfVxuICAgICAgICAgIHJlZj17KHJlZikgPT4ge1xuICAgICAgICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICAgIHRoaXMucm9vdFJlZiA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHJlZik7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuY2hpcH1cbiAgICAgICAgICBsYWJlbD17XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuY2hpcExhYmVsfVxuICAgICAgICAgICAgICByZWY9eyhyZWYpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICByZWYuaW5uZXJIVE1MID0gY2hvaWNlLnZhbHVlIHx8ICcgJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhcmlhbnQ9e2Rpc2FibGVkID8gJ291dGxpbmVkJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgLz5cbiAgICAgIDwvc3Bhbj4sXG4gICAgICB7fSxcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBCbGFua0NvbnRlbnQgPSB3aXRoU3R5bGVzKCh0aGVtZSkgPT4gKHtcbiAgY2hvaWNlOiB7XG4gICAgYm9yZGVyOiBgc29saWQgMHB4ICR7dGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW59YCxcbiAgICBib3JkZXJSYWRpdXM6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gICAgbWFyZ2luOiB0aGVtZS5zcGFjaW5nLnVuaXQgLyAyLFxuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgwLCAwKScsXG4gIH0sXG4gIGNoaXA6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLndoaXRlKCksXG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7Y29sb3IudGV4dCgpfWAsXG4gICAgY29sb3I6IGNvbG9yLnRleHQoKSxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgIGhlaWdodDogJ2luaXRpYWwnLFxuICAgIG1pbkhlaWdodDogJzMycHgnLFxuICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgd2hpdGVTcGFjZTogJ3ByZS13cmFwJyxcbiAgICBtYXhXaWR0aDogJzM3NHB4JyxcbiAgICAvLyBBZGRlZCBmb3IgdG91Y2ggZGV2aWNlcywgZm9yIGltYWdlIGNvbnRlbnQuXG4gICAgLy8gVGhpcyB3aWxsIHByZXZlbnQgdGhlIGNvbnRleHQgbWVudSBmcm9tIGFwcGVhcmluZyBhbmQgbm90IGFsbG93aW5nIG90aGVyIGludGVyYWN0aW9ucyB3aXRoIHRoZSBpbWFnZS5cbiAgICAvLyBJZiBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgaW1hZ2UgaW4gdGhlIHRva2VuIHdpbGwgYmUgcmVxdWVzdGVkIHdlIHNob3VsZCBoYW5kbGUgb25seSB0aGUgY29udGV4dCBNZW51LlxuICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICBib3JkZXJSYWRpdXM6ICczcHgnLFxuICAgIHBhZGRpbmdUb3A6ICcxMnB4JyxcbiAgICBwYWRkaW5nQm90dG9tOiAnMTJweCcsXG4gIH0sXG4gIGNoaXBMYWJlbDoge1xuICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxuICAgICcmIGltZyc6IHtcbiAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgICBwYWRkaW5nOiAnMnB4IDAnLFxuICAgIH0sXG4gICAgJyYgbWp4LWZyYWMnOiB7XG4gICAgICBmb250U2l6ZTogJzEyMCUgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgfSxcbiAgZGlzYWJsZWQ6IHtcbiAgICBvcGFjaXR5OiAwLjYsXG4gIH0sXG59KSkoQmxhbmtDb250ZW50Q29tcCk7XG5cbmNvbnN0IHRpbGVTb3VyY2UgPSB7XG4gIGNhbkRyYWcocHJvcHMpIHtcbiAgICByZXR1cm4gIXByb3BzLmRpc2FibGVkO1xuICB9LFxuICBiZWdpbkRyYWcocHJvcHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2hvaWNlOiBwcm9wcy5jaG9pY2UsXG4gICAgICBpbnN0YW5jZUlkOiBwcm9wcy5pbnN0YW5jZUlkLFxuICAgIH07XG4gIH0sXG59O1xuXG5jb25zdCBEcmFnRHJvcFRpbGUgPSBEcmFnU291cmNlKERSQUdfVFlQRSwgdGlsZVNvdXJjZSwgKGNvbm5lY3QsIG1vbml0b3IpID0+ICh7XG4gIGNvbm5lY3REcmFnU291cmNlOiBjb25uZWN0LmRyYWdTb3VyY2UoKSxcbiAgaXNEcmFnZ2luZzogbW9uaXRvci5pc0RyYWdnaW5nKCksXG59KSkoQmxhbmtDb250ZW50KTtcblxuZXhwb3J0IGRlZmF1bHQgRHJhZ0Ryb3BUaWxlO1xuIl19
|
|
221
|
+
//# sourceMappingURL=choice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/choices/choice.jsx"],"names":["DRAG_TYPE","BlankContentComp","props","connectDragSource","disabled","dragContainerRef","e","preventDefault","longPressTimer","setTimeout","startDrag","clearTimeout","addEventListener","handleTouchStart","passive","handleTouchEnd","handleTouchMove","removeEventListener","rootRef","choice","classes","ref","ReactDOM","findDOMNode","chip","chipLabel","innerHTML","value","undefined","React","Component","PropTypes","bool","object","func","BlankContent","theme","border","palette","primary","main","borderRadius","spacing","unit","margin","transform","backgroundColor","color","white","text","alignItems","display","height","minHeight","fontSize","whiteSpace","maxWidth","pointerEvents","paddingTop","paddingBottom","padding","opacity","tileSource","canDrag","beginDrag","instanceId","DragDropTile","connect","monitor","dragSource","isDragging"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Chip from '@material-ui/core/Chip';\nimport classnames from 'classnames';\n\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { color } from '@pie-lib/render-ui';\nimport { DragSource } from '@pie-lib/drag';\n\nexport const DRAG_TYPE = 'MaskBlank';\n\nclass BlankContentComp extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n choice: PropTypes.object,\n classes: PropTypes.object,\n connectDragSource: PropTypes.func,\n };\n\n startDrag = () => {\n const { connectDragSource, disabled } = this.props;\n if (!disabled) {\n connectDragSource(this.dragContainerRef);\n }\n };\n\n // start drag after 500ms (touch and hold duration) for chromebooks and other touch devices PD-4888\n handleTouchStart = (e) => {\n e.preventDefault();\n this.longPressTimer = setTimeout(() => {\n this.startDrag(e);\n }, 500);\n };\n\n handleTouchEnd = () => {\n clearTimeout(this.longPressTimer);\n };\n\n handleTouchMove = () => {\n clearTimeout(this.longPressTimer);\n };\n\n componentDidMount() {\n if (this.dragContainerRef) {\n this.dragContainerRef.addEventListener('touchstart', this.handleTouchStart, { passive: false });\n this.dragContainerRef.addEventListener('touchend', this.handleTouchEnd);\n this.dragContainerRef.addEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n componentWillUnmount() {\n if (this.dragContainerRef) {\n this.dragContainerRef.removeEventListener('touchstart', this.handleTouchStart);\n this.dragContainerRef.removeEventListener('touchend', this.handleTouchEnd);\n this.dragContainerRef.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n componentDidUpdate() {\n renderMath(this.rootRef);\n }\n\n render() {\n const { connectDragSource, choice, classes, disabled } = this.props;\n\n // TODO the Chip element is causing drag problems on touch devices. Avoid using Chip and consider refactoring the code. Keep in mind that Chip is a span with a button role, which interferes with seamless touch device dragging.\n\n return connectDragSource(\n <span\n className={classnames(classes.choice, disabled && classes.disabled)}\n ref={(ref) => {\n //eslint-disable-next-line\n this.dragContainerRef = ReactDOM.findDOMNode(ref);\n }}\n >\n <Chip\n clickable={false}\n disabled={true}\n ref={(ref) => {\n //eslint-disable-next-line\n this.rootRef = ReactDOM.findDOMNode(ref);\n }}\n className={classes.chip}\n label={\n <span\n className={classes.chipLabel}\n ref={(ref) => {\n if (ref) {\n ref.innerHTML = choice.value || ' ';\n }\n }}\n >\n {' '}\n </span>\n }\n variant={disabled ? 'outlined' : undefined}\n />\n </span>,\n {},\n );\n }\n}\n\nexport const BlankContent = withStyles((theme) => ({\n choice: {\n border: `solid 0px ${theme.palette.primary.main}`,\n borderRadius: theme.spacing.unit * 2,\n margin: theme.spacing.unit / 2,\n transform: 'translate(0, 0)',\n },\n chip: {\n backgroundColor: color.white(),\n border: `1px solid ${color.text()}`,\n color: color.text(),\n alignItems: 'center',\n display: 'inline-flex',\n height: 'initial',\n minHeight: '32px',\n fontSize: 'inherit',\n whiteSpace: 'pre-wrap',\n maxWidth: '374px',\n // Added for touch devices, for image content.\n // This will prevent the context menu from appearing and not allowing other interactions with the image.\n // If interactions with the image in the token will be requested we should handle only the context Menu.\n pointerEvents: 'none',\n borderRadius: '3px',\n paddingTop: '12px',\n paddingBottom: '12px',\n },\n chipLabel: {\n whiteSpace: 'normal',\n '& img': {\n display: 'block',\n padding: '2px 0',\n },\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n },\n disabled: {\n opacity: 0.6,\n },\n}))(BlankContentComp);\n\nconst tileSource = {\n canDrag(props) {\n return !props.disabled;\n },\n beginDrag(props) {\n return {\n choice: props.choice,\n instanceId: props.instanceId,\n };\n },\n};\n\nconst DragDropTile = DragSource(DRAG_TYPE, tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(BlankContent);\n\nexport default DragDropTile;\n"],"file":"choice.js"}
|
package/lib/choices/index.js
CHANGED
|
@@ -132,4 +132,4 @@ exports["default"] = Choices;
|
|
|
132
132
|
value: _propTypes["default"].object,
|
|
133
133
|
choicePosition: _propTypes["default"].string.isRequired
|
|
134
134
|
});
|
|
135
|
-
//# sourceMappingURL=
|
|
135
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/choices/index.jsx"],"names":["Choices","choicePosition","props","margin","disabled","duplicates","choices","value","filteredChoices","filter","c","foundChoice","v","id","undefined","elementStyle","getStyleForWrapper","minWidth","map","index","React","Component","PropTypes","bool","arrayOf","shape","label","string","object","isRequired"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEqBA,O;;;;;;;;;;;;;;;2GASE,YAAM;AACzB,UAAQC,cAAR,GAA2B,MAAKC,KAAhC,CAAQD,cAAR;;AAEA,cAAQA,cAAR;AACE,aAAK,OAAL;AACE,iBAAO;AACLE,YAAAA,MAAM,EAAE;AADH,WAAP;;AAIF,aAAK,OAAL;AACE,iBAAO;AACLA,YAAAA,MAAM,EAAE;AADH,WAAP;;AAIF,aAAK,OAAL;AACE,iBAAO;AACLA,YAAAA,MAAM,EAAE;AADH,WAAP;;AAIF;AACE,iBAAO;AACLA,YAAAA,MAAM,EAAE;AADH,WAAP;AAjBJ;AAqBD,K;;;;;;WAED,kBAAS;AACP,wBAAiD,KAAKD,KAAtD;AAAA,UAAQE,QAAR,eAAQA,QAAR;AAAA,UAAkBC,UAAlB,eAAkBA,UAAlB;AAAA,UAA8BC,OAA9B,eAA8BA,OAA9B;AAAA,UAAuCC,KAAvC,eAAuCA,KAAvC;AACA,UAAMC,eAAe,GAAGF,OAAO,CAACG,MAAR,CAAe,UAACC,CAAD,EAAO;AAC5C,YAAIL,UAAU,KAAK,IAAnB,EAAyB;AACvB,iBAAO,IAAP;AACD;;AACD,YAAMM,WAAW,GAAG,yBAAQJ,KAAR,EAAe,UAACK,CAAD;AAAA,iBAAOA,CAAC,KAAKF,CAAC,CAACG,EAAf;AAAA,SAAf,CAApB;AACA,eAAOF,WAAW,KAAKG,SAAvB;AACD,OANuB,CAAxB;;AAOA,UAAMC,YAAY,mCAAQ,KAAKC,kBAAL,EAAR;AAAmCC,QAAAA,QAAQ,EAAE;AAA7C,QAAlB;;AAEA,0BACE;AAAK,QAAA,KAAK,EAAEF;AAAZ,sBACE,gCAAC,8BAAD;AAA0B,QAAA,QAAQ,EAAEX;AAApC,SACGI,eAAe,CAACU,GAAhB,CAAoB,UAACR,CAAD,EAAIS,KAAJ;AAAA,4BACnB,gCAAC,kBAAD;AAAQ,UAAA,GAAG,YAAKT,CAAC,CAACH,KAAP,cAAgBY,KAAhB,CAAX;AAAoC,UAAA,QAAQ,EAAEf,QAA9C;AAAwD,UAAA,MAAM,EAAEM;AAAhE,UADmB;AAAA,OAApB,CADH,CADF,CADF;AASD;;;EAvDkCU,kBAAMC,S;;;iCAAtBrB,O,eACA;AACjBI,EAAAA,QAAQ,EAAEkB,sBAAUC,IADH;AAEjBlB,EAAAA,UAAU,EAAEiB,sBAAUC,IAFL;AAGjBjB,EAAAA,OAAO,EAAEgB,sBAAUE,OAAV,CAAkBF,sBAAUG,KAAV,CAAgB;AAAEC,IAAAA,KAAK,EAAEJ,sBAAUK,MAAnB;AAA2BpB,IAAAA,KAAK,EAAEe,sBAAUK;AAA5C,GAAhB,CAAlB,CAHQ;AAIjBpB,EAAAA,KAAK,EAAEe,sBAAUM,MAJA;AAKjB3B,EAAAA,cAAc,EAAEqB,sBAAUK,MAAV,CAAiBE;AALhB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport findKey from 'lodash/findKey';\nimport Choice from './choice';\nimport { DragDroppablePlaceholder } from '@pie-lib/drag';\n\nexport default class Choices extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n duplicates: PropTypes.bool,\n choices: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.string })),\n value: PropTypes.object,\n choicePosition: PropTypes.string.isRequired,\n };\n\n getStyleForWrapper = () => {\n const { choicePosition } = this.props;\n\n switch (choicePosition) {\n case 'above':\n return {\n margin: '0 0 40px 0',\n };\n\n case 'below':\n return {\n margin: '40px 0 0 0',\n };\n\n case 'right':\n return {\n margin: '0 0 0 40px',\n };\n\n default:\n return {\n margin: '0 40px 0 0',\n };\n }\n };\n\n render() {\n const { disabled, duplicates, choices, value } = this.props;\n const filteredChoices = choices.filter((c) => {\n if (duplicates === true) {\n return true;\n }\n const foundChoice = findKey(value, (v) => v === c.id);\n return foundChoice === undefined;\n });\n const elementStyle = { ...this.getStyleForWrapper(), minWidth: '100px' };\n\n return (\n <div style={elementStyle}>\n <DragDroppablePlaceholder disabled={disabled}>\n {filteredChoices.map((c, index) => (\n <Choice key={`${c.value}-${index}`} disabled={disabled} choice={c} />\n ))}\n </DragDroppablePlaceholder>\n </div>\n );\n }\n}\n"],"file":"index.js"}
|
package/lib/componentize.js
CHANGED
|
@@ -22,4 +22,4 @@ var _default = function _default(s, t) {
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
exports["default"] = _default;
|
|
25
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=componentize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/componentize.js"],"names":["REGEX","s","t","markup","replace","match","g"],"mappings":";;;;;;AAAA,IAAMA,KAAK,GAAG,gBAAd;;eAEe,kBAACC,CAAD,EAAIC,CAAJ,EAAU;AACvB,MAAI,CAACD,CAAL,EAAQ;AACN,WAAO;AAAEE,MAAAA,MAAM,EAAE;AAAV,KAAP;AACD;;AAED,MAAMA,MAAM,GAAGF,CAAC,CAACG,OAAF,CAAUJ,KAAV,EAAiB,UAACK,KAAD,EAAQC,CAAR,EAAc;AAC5C,4CAAgCJ,CAAhC,0BAA+CI,CAA/C;AACD,GAFc,CAAf;AAIA,SAAO;AAAEH,IAAAA,MAAM,EAANA;AAAF,GAAP;AACD,C","sourcesContent":["const REGEX = /\\{\\{(\\d+)\\}\\}/g;\n\nexport default (s, t) => {\n if (!s) {\n return { markup: '' };\n }\n\n const markup = s.replace(REGEX, (match, g) => {\n return `<span data-component=\"${t}\" data-id=\"${g}\"></span>`;\n });\n\n return { markup };\n};\n"],"file":"componentize.js"}
|
package/lib/components/blank.js
CHANGED
|
@@ -412,4 +412,4 @@ var DragDropTile = (0, _drag.DragSource)(DRAG_TYPE, tileSource, function (connec
|
|
|
412
412
|
})(DropTile);
|
|
413
413
|
var _default = DragDropTile;
|
|
414
414
|
exports["default"] = _default;
|
|
415
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2JsYW5rLmpzeCJdLCJuYW1lcyI6WyJsb2ciLCJEUkFHX1RZUEUiLCJ1c2VTdHlsZXMiLCJjb250ZW50IiwiYm9yZGVyIiwiY29sb3IiLCJwcmltYXJ5IiwibWluV2lkdGgiLCJ0b3VjaEFjdGlvbiIsIm92ZXJmbG93Iiwid2hpdGVTcGFjZSIsImNoaXAiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwidGV4dCIsImZvbnRTaXplIiwibWF4V2lkdGgiLCJwb3NpdGlvbiIsImJvcmRlclJhZGl1cyIsImNoaXBMYWJlbCIsInBvaW50ZXJFdmVudHMiLCJkaXNwbGF5IiwicGFkZGluZyIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsImhpZGRlbiIsIm9wYWNpdHkiLCJkcmFnZ2VkIiwibGVmdCIsImNvcnJlY3QiLCJpbmNvcnJlY3QiLCJvdmVyIiwicGFyZW50T3ZlciIsImdyZXkiLCJCbGFua0NvbnRlbnQiLCJ1cGRhdGVEaW1lbnNpb25zIiwiZSIsInByZXZlbnREZWZhdWx0IiwidG91Y2hTdGFydFRpbWVyIiwic2V0VGltZW91dCIsInN0YXJ0RHJhZyIsInByb3BzIiwiY29ubmVjdERyYWdTb3VyY2UiLCJkaXNhYmxlZCIsInJvb3RSZWYiLCJzdGF0ZSIsImhlaWdodCIsIndpZHRoIiwiaW1hZ2VFbGVtZW50Iiwic3BhblJlZiIsInF1ZXJ5U2VsZWN0b3IiLCJvbmxvYWQiLCJoYW5kbGVJbWFnZUxvYWQiLCJoYW5kbGVFbGVtZW50cyIsImFkZEV2ZW50TGlzdGVuZXIiLCJoYW5kbGVUb3VjaFN0YXJ0IiwicGFzc2l2ZSIsInByZXZQcm9wcyIsImN1cnJlbnRDaG9pY2UiLCJjaG9pY2UiLCJwcmV2Q2hvaWNlIiwiSlNPTiIsInN0cmluZ2lmeSIsInNldFN0YXRlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInN0eWxlIiwib2Zmc2V0V2lkdGgiLCJvZmZzZXRIZWlnaHQiLCJ3aWR0aFdpdGhQYWRkaW5nIiwiaGVpZ2h0V2l0aFBhZGRpbmciLCJyZXNwb25zZUFyZWFXaWR0aCIsInBhcnNlRmxvYXQiLCJlbXB0eVJlc3BvbnNlQXJlYVdpZHRoIiwicmVzcG9uc2VBcmVhSGVpZ2h0IiwiZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQiLCJhZGp1c3RlZFdpZHRoIiwiYWRqdXN0ZWRIZWlnaHQiLCJwcmV2U3RhdGUiLCJwYXJlbnQiLCJjaGlsZE5vZGVzIiwiZm9yRWFjaCIsImVsZW0iLCJFbGVtZW50IiwiSFRNTERvY3VtZW50Iiwic2V0QXR0cmlidXRlIiwiaXNOYU4iLCJyb290U3R5bGUiLCJtaW5IZWlnaHQiLCJjbGFzc2VzIiwiaXNPdmVyIiwiZHJhZ0l0ZW0iLCJkcmFnZ2VkTGFiZWwiLCJ2YWx1ZSIsImxhYmVsIiwicmVmIiwiUmVhY3RET00iLCJmaW5kRE9NTm9kZSIsImlubmVySFRNTCIsImFkZERyYWdnYWJsZUZhbHNlQXR0cmlidXRlcyIsInVuZGVmaW5lZCIsImdldFJvb3REaW1lbnNpb25zIiwiUmVhY3QiLCJDb21wb25lbnQiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJpZCIsIlByb3BUeXBlcyIsIm9uZU9mVHlwZSIsInN0cmluZyIsIm51bWJlciIsImJvb2wiLCJkdXBsaWNhdGVzIiwib2JqZWN0Iiwib25DaGFuZ2UiLCJmdW5jIiwiU3R5bGVkQmxhbmtDb250ZW50IiwiY29ubmVjdGVkQmxhbmtDb250ZW50IiwiY29ubmVjdERyb3BUYXJnZXQiLCJ0aWxlVGFyZ2V0IiwiZHJvcCIsIm1vbml0b3IiLCJkcmFnZ2VkSXRlbSIsImdldEl0ZW0iLCJpbnN0YW5jZUlkIiwiZHJvcHBlZCIsImNhbkRyb3AiLCJEcm9wVGlsZSIsImNvbm5lY3QiLCJkcm9wVGFyZ2V0IiwidGlsZVNvdXJjZSIsImNhbkRyYWciLCJiZWdpbkRyYWciLCJmcm9tQ2hvaWNlIiwiZW5kRHJhZyIsImRyb3BSZXN1bHQiLCJnZXREcm9wUmVzdWx0IiwiRHJhZ0Ryb3BUaWxlIiwiZHJhZ1NvdXJjZSIsImlzRHJhZ2dpbmci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VUFBVSxFQUFFbEYsS0FBSyxDQUFDa0YsVUFIYjtBQUlMUyxNQUFBQSxVQUFVLEVBQUU7QUFKUCxLQUFQO0FBTUQsR0FYZ0I7QUFZakJDLEVBQUFBLE9BWmlCLG1CQVlUNUYsS0FaUyxFQVlGK0UsT0FaRSxFQVlPO0FBQ3RCO0FBQ0EsUUFBTWMsVUFBVSxHQUFHZCxPQUFPLENBQUNlLGFBQVIsRUFBbkI7O0FBRUEsUUFBSSxDQUFDRCxVQUFELElBQWVBLFVBQVUsQ0FBQ1YsT0FBOUIsRUFBdUM7QUFDckMsVUFBTUgsV0FBVyxHQUFHRCxPQUFPLENBQUNFLE9BQVIsRUFBcEI7O0FBRUEsVUFBSUQsV0FBVyxDQUFDVyxVQUFoQixFQUE0QjtBQUMxQjNGLFFBQUFBLEtBQUssQ0FBQ3dFLFFBQU4sQ0FBZXhFLEtBQUssQ0FBQ2dFLEVBQXJCLEVBQXlCTixTQUF6QjtBQUNEO0FBQ0Y7QUFDRjtBQXZCZ0IsQ0FBbkI7QUEwQkEsSUFBTXFDLFlBQVksR0FBRyxzQkFBV3ZJLFNBQVgsRUFBc0JnSSxVQUF0QixFQUFrQyxVQUFDRixPQUFELEVBQVVQLE9BQVY7QUFBQSxTQUF1QjtBQUM1RTlFLElBQUFBLGlCQUFpQixFQUFFcUYsT0FBTyxDQUFDVSxVQUFSLEVBRHlEO0FBRTVFQyxJQUFBQSxVQUFVLEVBQUVsQixPQUFPLENBQUNrQixVQUFSO0FBRmdFLEdBQXZCO0FBQUEsQ0FBbEMsRUFHakJaLFFBSGlCLENBQXJCO2VBS2VVLFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ3JleSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9jb2xvcnMvZ3JleSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgcmVuZGVyTWF0aCB9IGZyb20gJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBEcmFnU291cmNlLCBEcm9wVGFyZ2V0IH0gZnJvbSAnQHBpZS1saWIvZHJhZyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBDaGlwIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0NoaXAnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdwaWUtbGliOm1hc2stbWFya3VwOmJsYW5rJyk7XG5leHBvcnQgY29uc3QgRFJBR19UWVBFID0gJ01hc2tCbGFuayc7XG5cbmNvbnN0IHVzZVN0eWxlcyA9IHdpdGhTdHlsZXMoKCkgPT4gKHtcbiAgY29udGVudDoge1xuICAgIGJvcmRlcjogYHNvbGlkIDBweCAke2NvbG9yLnByaW1hcnkoKX1gLFxuICAgIG1pbldpZHRoOiAnMjAwcHgnLFxuICAgIHRvdWNoQWN0aW9uOiAnbm9uZScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLCAvLyBQcmV2ZW50IGxpbmUgd3JhcHBpbmdcbiAgfSxcbiAgY2hpcDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxuICAgIGJvcmRlcjogYDJweCBkYXNoZWQgJHtjb2xvci50ZXh0KCl9YCxcbiAgICBjb2xvcjogY29sb3IudGV4dCgpLFxuICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgbWF4V2lkdGg6ICczNzRweCcsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYm9yZGVyUmFkaXVzOiAnM3B4JyxcbiAgfSxcbiAgY2hpcExhYmVsOiB7XG4gICAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gICAgLy8gQWRkZWQgZm9yIHRvdWNoIGRldmljZXMsIGZvciBpbWFnZSBjb250ZW50LlxuICAgIC8vIFRoaXMgd2lsbCBwcmV2ZW50IHRoZSBjb250ZXh0IG1lbnUgZnJvbSBhcHBlYXJpbmcgYW5kIG5vdCBhbGxvd2luZyBvdGhlciBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgaW1hZ2UuXG4gICAgLy8gSWYgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGltYWdlIGluIHRoZSB0b2tlbiB3aWxsIGJlIHJlcXVlc3RlZCB3ZSBzaG91bGQgaGFuZGxlIG9ubHkgdGhlIGNvbnRleHQgTWVudS5cbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgJyYgaW1nJzoge1xuICAgICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICAgIHBhZGRpbmc6ICcycHggMCcsXG4gICAgfSxcbiAgICAvLyBSZW1vdmUgZGVmYXVsdCA8cD4gbWFyZ2lucyB0byBlbnN1cmUgY29uc2lzdGVudCBzcGFjaW5nIGFjcm9zcyBhbGwgd3JhcHBlZCBjb250ZW50IChwLCBzcGFuLCBkaXYsIG1hdGgpXG4gICAgLy8gUGFkZGluZyBmb3IgdG9wIGFuZCBib3R0b20gd2lsbCBpbnN0ZWFkIGJlIGNvbnRyb2xsZWQgYnkgdGhlIGNvbnRhaW5lciBmb3IgY29uc2lzdGVudCBsYXlvdXRcbiAgICAvLyBFbnN1cmVzIGNvbnNpc3RlbnQgYmVoYXZpb3Igd2l0aCBwaWUtYXBpLWJyb3dzZXIsIHdoZXJlIG1hcmdpblRvcCBpcyBhbHJlYWR5IHJlbW92ZWQgYnkgYSBCb290c3RyYXAgc3R5bGVzaGVldFxuICAgICcmIHAnOiB7XG4gICAgICBtYXJnaW5Ub3A6ICcwJyxcbiAgICAgIG1hcmdpbkJvdHRvbTogJzAnLFxuICAgIH0sXG4gICAgJyYgbWp4LWZyYWMnOiB7XG4gICAgICBmb250U2l6ZTogJzEyMCUgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgfSxcbiAgaGlkZGVuOiB7XG4gICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgb3BhY2l0eTogMCxcbiAgfSxcbiAgZHJhZ2dlZDoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIGxlZnQ6IDE2LFxuICAgIG1heFdpZHRoOiAnNjBweCcsXG4gIH0sXG4gIGNvcnJlY3Q6IHtcbiAgICBib3JkZXI6IGBzb2xpZCAxcHggJHtjb2xvci5jb3JyZWN0KCl9YCxcbiAgfSxcbiAgaW5jb3JyZWN0OiB7XG4gICAgYm9yZGVyOiBgc29saWQgMXB4ICR7Y29sb3IuaW5jb3JyZWN0KCl9YCxcbiAgfSxcbiAgb3Zlcjoge1xuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgfSxcbiAgcGFyZW50T3Zlcjoge1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2dyZXlbNTAwXX1gLFxuICAgIGJhY2tncm91bmRDb2xvcjogYCR7Z3JleVszMDBdfWAsXG4gIH0sXG59KSk7XG5cbmV4cG9ydCBjbGFzcyBCbGFua0NvbnRlbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICB3aWR0aDogMCxcbiAgICB9O1xuICB9XG5cbiAgaGFuZGxlSW1hZ2VMb2FkID0gKCkgPT4ge1xuICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xuICB9O1xuXG4gIGhhbmRsZUVsZW1lbnRzKCkge1xuICAgIGNvbnN0IGltYWdlRWxlbWVudCA9IHRoaXMuc3BhblJlZj8ucXVlcnlTZWxlY3RvcignaW1nJyk7XG5cbiAgICBpZiAoaW1hZ2VFbGVtZW50KSB7XG4gICAgICBpbWFnZUVsZW1lbnQub25sb2FkID0gdGhpcy5oYW5kbGVJbWFnZUxvYWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZURpbWVuc2lvbnMoKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5oYW5kbGVFbGVtZW50cygpO1xuICAgIGlmICh0aGlzLnJvb3RSZWYpIHtcbiAgICAgIHRoaXMucm9vdFJlZi5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5oYW5kbGVUb3VjaFN0YXJ0LCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICByZW5kZXJNYXRoKHRoaXMucm9vdFJlZik7XG4gICAgY29uc3QgeyBjaG9pY2U6IGN1cnJlbnRDaG9pY2UgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBjaG9pY2U6IHByZXZDaG9pY2UgfSA9IHByZXZQcm9wcztcblxuICAgIGlmIChKU09OLnN0cmluZ2lmeShjdXJyZW50Q2hvaWNlKSAhPT0gSlNPTi5zdHJpbmdpZnkocHJldkNob2ljZSkpIHtcbiAgICAgIGlmICghY3VycmVudENob2ljZSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmhhbmRsZUVsZW1lbnRzKCk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMucm9vdFJlZikge1xuICAgICAgdGhpcy5yb290UmVmLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLmhhbmRsZVRvdWNoU3RhcnQpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVRvdWNoU3RhcnQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnRvdWNoU3RhcnRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zdGFydERyYWcoKTtcbiAgICB9LCAzMDApOyAvLyBTdGFydCBkcmFnIGFmdGVyIDMwMG1zICh0b3VjaCBhbmQgaG9sZCBkdXJhdGlvbilcbiAgfTtcblxuICBzdGFydERyYWcgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb25uZWN0RHJhZ1NvdXJjZSwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgY29ubmVjdERyYWdTb3VyY2UodGhpcy5yb290UmVmKTtcbiAgICB9XG4gIH07XG5cbiAgdXBkYXRlRGltZW5zaW9ucygpIHtcbiAgICBpZiAodGhpcy5zcGFuUmVmICYmIHRoaXMucm9vdFJlZikge1xuICAgICAgLy8gVGVtcG9yYXJpbHkgc2V0IHJvb3RSZWYgd2lkdGggdG8gJ2F1dG8nIGZvciBuYXR1cmFsIG1lYXN1cmVtZW50XG4gICAgICB0aGlzLnJvb3RSZWYuc3R5bGUud2lkdGggPSAnYXV0byc7XG5cbiAgICAgIC8vIEdldCB0aGUgbmF0dXJhbCBkaW1lbnNpb25zIG9mIHRoZSBjb250ZW50XG4gICAgICBjb25zdCB3aWR0aCA9IHRoaXMuc3BhblJlZi5vZmZzZXRXaWR0aCB8fCAwO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5zcGFuUmVmLm9mZnNldEhlaWdodCB8fCAwO1xuXG4gICAgICBjb25zdCB3aWR0aFdpdGhQYWRkaW5nID0gd2lkdGggKyAyNDsgLy8gMTJweCBwYWRkaW5nIG9uIGVhY2ggc2lkZVxuICAgICAgY29uc3QgaGVpZ2h0V2l0aFBhZGRpbmcgPSBoZWlnaHQgKyAyNDsgLy8gMTJweCBwYWRkaW5nIG9uIHRvcCBhbmQgYm90dG9tXG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlQXJlYVdpZHRoID0gcGFyc2VGbG9hdCh0aGlzLnByb3BzLmVtcHR5UmVzcG9uc2VBcmVhV2lkdGgpIHx8IDA7XG4gICAgICBjb25zdCByZXNwb25zZUFyZWFIZWlnaHQgPSBwYXJzZUZsb2F0KHRoaXMucHJvcHMuZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQpIHx8IDA7XG5cbiAgICAgIGNvbnN0IGFkanVzdGVkV2lkdGggPSB3aWR0aFdpdGhQYWRkaW5nIDw9IHJlc3BvbnNlQXJlYVdpZHRoID8gcmVzcG9uc2VBcmVhV2lkdGggOiB3aWR0aFdpdGhQYWRkaW5nO1xuICAgICAgY29uc3QgYWRqdXN0ZWRIZWlnaHQgPSBoZWlnaHRXaXRoUGFkZGluZyA8PSByZXNwb25zZUFyZWFIZWlnaHQgPyByZXNwb25zZUFyZWFIZWlnaHQgOiBoZWlnaHRXaXRoUGFkZGluZztcblxuICAgICAgdGhpcy5zZXRTdGF0ZSgocHJldlN0YXRlKSA9PiAoe1xuICAgICAgICB3aWR0aDogYWRqdXN0ZWRXaWR0aCA+IHJlc3BvbnNlQXJlYVdpZHRoID8gYWRqdXN0ZWRXaWR0aCA6IHByZXZTdGF0ZS53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBhZGp1c3RlZEhlaWdodCA+IHJlc3BvbnNlQXJlYUhlaWdodCA/IGFkanVzdGVkSGVpZ2h0IDogcHJldlN0YXRlLmhlaWdodCxcbiAgICAgIH0pKTtcblxuICAgICAgdGhpcy5yb290UmVmLnN0eWxlLndpZHRoID0gYCR7YWRqdXN0ZWRXaWR0aH1weGA7XG4gICAgICB0aGlzLnJvb3RSZWYuc3R5bGUuaGVpZ2h0ID0gYCR7YWRqdXN0ZWRIZWlnaHR9cHhgO1xuICAgIH1cbiAgfVxuXG4gIGFkZERyYWdnYWJsZUZhbHNlQXR0cmlidXRlcyhwYXJlbnQpIHtcbiAgICBwYXJlbnQuY2hpbGROb2Rlcy5mb3JFYWNoKChlbGVtKSA9PiB7XG4gICAgICBpZiAoZWxlbSBpbnN0YW5jZW9mIEVsZW1lbnQgfHwgZWxlbSBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCkge1xuICAgICAgICBlbGVtLnNldEF0dHJpYnV0ZSgnZHJhZ2dhYmxlJywgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Um9vdERpbWVuc2lvbnMoKSB7XG4gICAgLy8gSGFuZGxlIHBvdGVudGlhbCBub24tbnVtZXJpYyB2YWx1ZXNcbiAgICBjb25zdCByZXNwb25zZUFyZWFXaWR0aCA9ICFpc05hTihwYXJzZUZsb2F0KHRoaXMucHJvcHMuZW1wdHlSZXNwb25zZUFyZWFXaWR0aCkpXG4gICAgICA/IHBhcnNlRmxvYXQodGhpcy5wcm9wcy5lbXB0eVJlc3BvbnNlQXJlYVdpZHRoKVxuICAgICAgOiAwO1xuICAgIGNvbnN0IHJlc3BvbnNlQXJlYUhlaWdodCA9ICFpc05hTihwYXJzZUZsb2F0KHRoaXMucHJvcHMuZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQpKVxuICAgICAgPyBwYXJzZUZsb2F0KHRoaXMucHJvcHMuZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQpXG4gICAgICA6IDA7XG5cbiAgICBjb25zdCByb290U3R5bGUgPSB7XG4gICAgICBoZWlnaHQ6IHRoaXMuc3RhdGUuaGVpZ2h0IHx8IHJlc3BvbnNlQXJlYUhlaWdodCxcbiAgICAgIHdpZHRoOiB0aGlzLnN0YXRlLndpZHRoIHx8IHJlc3BvbnNlQXJlYVdpZHRoLFxuICAgIH07XG5cbiAgICAvLyBhZGQgbWluV2lkdGgsIG1pbkhlaWdodCBpZiB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBub3QgZGVmaW5lZFxuICAgIC8vIG1pbldpZHRoLCBtaW5IZWlnaHQgd2lsbCBiZSBhbHNvIGluIG1vZGVsIGluIHRoZSBmdXR1cmVcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucm9vdFN0eWxlLFxuICAgICAgLi4uKHJlc3BvbnNlQXJlYVdpZHRoID8ge30gOiB7IG1pbldpZHRoOiA5MCB9KSxcbiAgICAgIC4uLihyZXNwb25zZUFyZWFIZWlnaHQgPyB7fSA6IHsgbWluSGVpZ2h0OiAzMiB9KSxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQsIGNob2ljZSwgY2xhc3NlcywgaXNPdmVyLCBkcmFnSXRlbSwgY29ycmVjdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBkcmFnZ2VkTGFiZWwgPSBkcmFnSXRlbSAmJiBpc092ZXIgJiYgZHJhZ0l0ZW0uY2hvaWNlLnZhbHVlO1xuICAgIGNvbnN0IGxhYmVsID0gY2hvaWNlICYmIGNob2ljZS52YWx1ZTtcblxuICAgIHJldHVybiAoXG4gICAgICAvLyBUT0RPIHRoZSBDaGlwIGVsZW1lbnQgaXMgY2F1c2luZyBkcmFnIHByb2JsZW1zIG9uIHRvdWNoIGRldmljZXMuIEF2b2lkIHVzaW5nIENoaXAgYW5kIGNvbnNpZGVyIHJlZmFjdG9yaW5nIHRoZSBjb2RlLiBLZWVwIGluIG1pbmQgdGhhdCBDaGlwIGlzIGEgc3BhbiB3aXRoIGEgYnV0dG9uIHJvbGUsIHdoaWNoIGludGVyZmVyZXMgd2l0aCBzZWFtbGVzcyB0b3VjaCBkZXZpY2UgZHJhZ2dpbmcuXG4gICAgICA8Q2hpcFxuICAgICAgICBjbGlja2FibGU9e2ZhbHNlfVxuICAgICAgICBkaXNhYmxlZD17dHJ1ZX1cbiAgICAgICAgcmVmPXsocmVmKSA9PiB7XG4gICAgICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICB0aGlzLnJvb3RSZWYgPSBSZWFjdERPTS5maW5kRE9NTm9kZShyZWYpO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnQ9XCJzcGFuXCJcbiAgICAgICAgbGFiZWw9e1xuICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhjbGFzc2VzLmNoaXBMYWJlbCwgaXNPdmVyICYmIGNsYXNzZXMub3Zlciwge1xuICAgICAgICAgICAgICAgIFtjbGFzc2VzLmhpZGRlbl06IGRyYWdnZWRMYWJlbCxcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIHJlZj17KHJlZikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICAgICAgICB0aGlzLnNwYW5SZWYgPSBSZWFjdERPTS5maW5kRE9NTm9kZShyZWYpO1xuICAgICAgICAgICAgICAgICAgcmVmLmlubmVySFRNTCA9IGxhYmVsIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgdGhpcy5hZGREcmFnZ2FibGVGYWxzZUF0dHJpYnV0ZXMocmVmKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB7ZHJhZ2dlZExhYmVsICYmIChcbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoY2xhc3Nlcy5jaGlwTGFiZWwsIGlzT3ZlciAmJiBjbGFzc2VzLm92ZXIsIGNsYXNzZXMuZHJhZ2dlZCl9XG4gICAgICAgICAgICAgICAgcmVmPXsocmVmKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BhblJlZiA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHJlZik7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5pbm5lckhUTUwgPSBkcmFnZ2VkTGFiZWwgfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRHJhZ2dhYmxlRmFsc2VBdHRyaWJ1dGVzKHJlZik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoY2xhc3Nlcy5jaGlwLCBpc092ZXIgJiYgY2xhc3Nlcy5vdmVyLCBpc092ZXIgJiYgY2xhc3Nlcy5wYXJlbnRPdmVyLCB7XG4gICAgICAgICAgW2NsYXNzZXMuY29ycmVjdF06IGNvcnJlY3QgIT09IHVuZGVmaW5lZCAmJiBjb3JyZWN0LFxuICAgICAgICAgIFtjbGFzc2VzLmluY29ycmVjdF06IGNvcnJlY3QgIT09IHVuZGVmaW5lZCAmJiAhY29ycmVjdCxcbiAgICAgICAgfSl9XG4gICAgICAgIHZhcmlhbnQ9e2Rpc2FibGVkID8gJ291dGxpbmVkJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAuLi50aGlzLmdldFJvb3REaW1lbnNpb25zKCksXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cblxuQmxhbmtDb250ZW50LmRlZmF1bHRQcm9wcyA9IHtcbiAgZW1wdHlSZXNwb25zZUFyZWFXaWR0aDogMCxcbiAgZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQ6IDAsXG59O1xuXG5CbGFua0NvbnRlbnQucHJvcFR5cGVzID0ge1xuICBpZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGR1cGxpY2F0ZXM6IFByb3BUeXBlcy5ib29sLFxuICBjaG9pY2U6IFByb3BUeXBlcy5vYmplY3QsXG4gIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGlzT3ZlcjogUHJvcFR5cGVzLmJvb2wsXG4gIGRyYWdJdGVtOiBQcm9wVHlwZXMub2JqZWN0LFxuICBjb3JyZWN0OiBQcm9wVHlwZXMuYm9vbCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBlbXB0eVJlc3BvbnNlQXJlYVdpZHRoOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gIGVtcHR5UmVzcG9uc2VBcmVhSGVpZ2h0OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG59O1xuXG5jb25zdCBTdHlsZWRCbGFua0NvbnRlbnQgPSB1c2VTdHlsZXMoQmxhbmtDb250ZW50KTtcblxuY29uc3QgY29ubmVjdGVkQmxhbmtDb250ZW50ID0gdXNlU3R5bGVzKCh7IGNvbm5lY3REcmFnU291cmNlLCBjb25uZWN0RHJvcFRhcmdldCwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB7IGNsYXNzZXMsIGlzT3ZlciB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIGNvbm5lY3REcm9wVGFyZ2V0KFxuICAgIGNvbm5lY3REcmFnU291cmNlKFxuICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjbGFzc25hbWVzKGNsYXNzZXMuY29udGVudCwgaXNPdmVyICYmIGNsYXNzZXMub3Zlcil9PlxuICAgICAgICA8U3R5bGVkQmxhbmtDb250ZW50IHsuLi5wcm9wc30gLz5cbiAgICAgIDwvc3Bhbj4sXG4gICAgKSxcbiAgKTtcbn0pO1xuXG5jb25zdCB0aWxlVGFyZ2V0ID0ge1xuICBkcm9wKHByb3BzLCBtb25pdG9yKSB7XG4gICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBtb25pdG9yLmdldEl0ZW0oKTtcblxuICAgIGxvZygncHJvcHMuaW5zdGFuY2VJZCcsIHByb3BzLmluc3RhbmNlSWQsICdkcmFnZ2VkSXRlbS5pbnN0YW5jZUlkOicsIGRyYWdnZWRJdGVtLmluc3RhbmNlSWQpO1xuXG4gICAgaWYgKGRyYWdnZWRJdGVtLmlkICE9PSBwcm9wcy5pZCkge1xuICAgICAgcHJvcHMub25DaGFuZ2UocHJvcHMuaWQsIGRyYWdnZWRJdGVtLmNob2ljZS5pZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRyb3BwZWQ6IGRyYWdnZWRJdGVtLmlkICE9PSBwcm9wcy5pZCxcbiAgICB9O1xuICB9LFxuICBjYW5Ecm9wKHByb3BzLCBtb25pdG9yKSB7XG4gICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBtb25pdG9yLmdldEl0ZW0oKTtcblxuICAgIHJldHVybiBkcmFnZ2VkSXRlbS5pbnN0YW5jZUlkID09PSBwcm9wcy5pbnN0YW5jZUlkO1xuICB9LFxufTtcblxuY29uc3QgRHJvcFRpbGUgPSBEcm9wVGFyZ2V0KERSQUdfVFlQRSwgdGlsZVRhcmdldCwgKGNvbm5lY3QsIG1vbml0b3IpID0+ICh7XG4gIGNvbm5lY3REcm9wVGFyZ2V0OiBjb25uZWN0LmRyb3BUYXJnZXQoKSxcbiAgaXNPdmVyOiBtb25pdG9yLmlzT3ZlcigpLFxuICBkcmFnSXRlbTogbW9uaXRvci5nZXRJdGVtKCksXG59KSkoY29ubmVjdGVkQmxhbmtDb250ZW50KTtcblxuY29uc3QgdGlsZVNvdXJjZSA9IHtcbiAgY2FuRHJhZyhwcm9wcykge1xuICAgIHJldHVybiAhcHJvcHMuZGlzYWJsZWQgJiYgISFwcm9wcy5jaG9pY2U7XG4gIH0sXG4gIGJlZ2luRHJhZyhwcm9wcykge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogcHJvcHMuaWQsXG4gICAgICBjaG9pY2U6IHByb3BzLmNob2ljZSxcbiAgICAgIGluc3RhbmNlSWQ6IHByb3BzLmluc3RhbmNlSWQsXG4gICAgICBmcm9tQ2hvaWNlOiB0cnVlLFxuICAgIH07XG4gIH0sXG4gIGVuZERyYWcocHJvcHMsIG1vbml0b3IpIHtcbiAgICAvLyB0aGlzIHdpbGwgYmUgbnVsbCBpZiBpdCBkaWQgbm90IGRyb3BcbiAgICBjb25zdCBkcm9wUmVzdWx0ID0gbW9uaXRvci5nZXREcm9wUmVzdWx0KCk7XG5cbiAgICBpZiAoIWRyb3BSZXN1bHQgfHwgZHJvcFJlc3VsdC5kcm9wcGVkKSB7XG4gICAgICBjb25zdCBkcmFnZ2VkSXRlbSA9IG1vbml0b3IuZ2V0SXRlbSgpO1xuXG4gICAgICBpZiAoZHJhZ2dlZEl0ZW0uZnJvbUNob2ljZSkge1xuICAgICAgICBwcm9wcy5vbkNoYW5nZShwcm9wcy5pZCwgdW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG59O1xuXG5jb25zdCBEcmFnRHJvcFRpbGUgPSBEcmFnU291cmNlKERSQUdfVFlQRSwgdGlsZVNvdXJjZSwgKGNvbm5lY3QsIG1vbml0b3IpID0+ICh7XG4gIGNvbm5lY3REcmFnU291cmNlOiBjb25uZWN0LmRyYWdTb3VyY2UoKSxcbiAgaXNEcmFnZ2luZzogbW9uaXRvci5pc0RyYWdnaW5nKCksXG59KSkoRHJvcFRpbGUpO1xuXG5leHBvcnQgZGVmYXVsdCBEcmFnRHJvcFRpbGU7XG4iXX0=
|
|
415
|
+
//# sourceMappingURL=blank.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/blank.jsx"],"names":["log","DRAG_TYPE","useStyles","content","border","color","primary","minWidth","touchAction","overflow","whiteSpace","chip","backgroundColor","background","text","fontSize","maxWidth","position","borderRadius","chipLabel","pointerEvents","display","padding","marginTop","marginBottom","hidden","opacity","dragged","left","correct","incorrect","over","parentOver","grey","BlankContent","updateDimensions","e","preventDefault","touchStartTimer","setTimeout","startDrag","props","connectDragSource","disabled","rootRef","state","height","width","imageElement","spanRef","querySelector","onload","handleImageLoad","handleElements","addEventListener","handleTouchStart","passive","prevProps","currentChoice","choice","prevChoice","JSON","stringify","setState","removeEventListener","style","offsetWidth","offsetHeight","widthWithPadding","heightWithPadding","responseAreaWidth","parseFloat","emptyResponseAreaWidth","responseAreaHeight","emptyResponseAreaHeight","adjustedWidth","adjustedHeight","prevState","parent","childNodes","forEach","elem","Element","HTMLDocument","setAttribute","isNaN","rootStyle","minHeight","classes","isOver","dragItem","draggedLabel","value","label","ref","ReactDOM","findDOMNode","innerHTML","addDraggableFalseAttributes","undefined","getRootDimensions","React","Component","defaultProps","propTypes","id","PropTypes","oneOfType","string","number","bool","duplicates","object","onChange","func","StyledBlankContent","connectedBlankContent","connectDropTarget","tileTarget","drop","monitor","draggedItem","getItem","instanceId","dropped","canDrop","DropTile","connect","dropTarget","tileSource","canDrag","beginDrag","fromChoice","endDrag","dropResult","getDropResult","DragDropTile","dragSource","isDragging"],"mappings":"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","sourcesContent":["import grey from '@material-ui/core/colors/grey';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\nimport { DragSource, DropTarget } from '@pie-lib/drag';\nimport { withStyles } from '@material-ui/core/styles';\nimport Chip from '@material-ui/core/Chip';\nimport classnames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('pie-lib:mask-markup:blank');\nexport const DRAG_TYPE = 'MaskBlank';\n\nconst useStyles = withStyles(() => ({\n content: {\n border: `solid 0px ${color.primary()}`,\n minWidth: '200px',\n touchAction: 'none',\n overflow: 'hidden',\n whiteSpace: 'nowrap', // Prevent line wrapping\n },\n chip: {\n backgroundColor: color.background(),\n border: `2px dashed ${color.text()}`,\n color: color.text(),\n fontSize: 'inherit',\n maxWidth: '374px',\n position: 'relative',\n borderRadius: '3px',\n },\n chipLabel: {\n whiteSpace: 'normal',\n // Added for touch devices, for image content.\n // This will prevent the context menu from appearing and not allowing other interactions with the image.\n // If interactions with the image in the token will be requested we should handle only the context Menu.\n pointerEvents: 'none',\n '& img': {\n display: 'block',\n padding: '2px 0',\n },\n // Remove default <p> margins to ensure consistent spacing across all wrapped content (p, span, div, math)\n // Padding for top and bottom will instead be controlled by the container for consistent layout\n // Ensures consistent behavior with pie-api-browser, where marginTop is already removed by a Bootstrap stylesheet\n '& p': {\n marginTop: '0',\n marginBottom: '0',\n },\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n },\n hidden: {\n color: 'transparent',\n opacity: 0,\n },\n dragged: {\n position: 'absolute',\n left: 16,\n maxWidth: '60px',\n },\n correct: {\n border: `solid 1px ${color.correct()}`,\n },\n incorrect: {\n border: `solid 1px ${color.incorrect()}`,\n },\n over: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n parentOver: {\n border: `1px solid ${grey[500]}`,\n backgroundColor: `${grey[300]}`,\n },\n}));\n\nexport class BlankContent extends React.Component {\n constructor() {\n super();\n this.state = {\n height: 0,\n width: 0,\n };\n }\n\n handleImageLoad = () => {\n this.updateDimensions();\n };\n\n handleElements() {\n const imageElement = this.spanRef?.querySelector('img');\n\n if (imageElement) {\n imageElement.onload = this.handleImageLoad;\n } else {\n setTimeout(() => {\n this.updateDimensions();\n }, 300);\n }\n }\n\n componentDidMount() {\n this.handleElements();\n if (this.rootRef) {\n this.rootRef.addEventListener('touchstart', this.handleTouchStart, { passive: false });\n }\n }\n\n componentDidUpdate(prevProps) {\n renderMath(this.rootRef);\n const { choice: currentChoice } = this.props;\n const { choice: prevChoice } = prevProps;\n\n if (JSON.stringify(currentChoice) !== JSON.stringify(prevChoice)) {\n if (!currentChoice) {\n this.setState({\n height: 0,\n width: 0,\n });\n return;\n }\n this.handleElements();\n }\n }\n\n componentWillUnmount() {\n if (this.rootRef) {\n this.rootRef.removeEventListener('touchstart', this.handleTouchStart);\n }\n }\n\n handleTouchStart = (e) => {\n e.preventDefault();\n this.touchStartTimer = setTimeout(() => {\n this.startDrag();\n }, 300); // Start drag after 300ms (touch and hold duration)\n };\n\n startDrag = () => {\n const { connectDragSource, disabled } = this.props;\n if (!disabled) {\n connectDragSource(this.rootRef);\n }\n };\n\n updateDimensions() {\n if (this.spanRef && this.rootRef) {\n // Temporarily set rootRef width to 'auto' for natural measurement\n this.rootRef.style.width = 'auto';\n\n // Get the natural dimensions of the content\n const width = this.spanRef.offsetWidth || 0;\n const height = this.spanRef.offsetHeight || 0;\n\n const widthWithPadding = width + 24; // 12px padding on each side\n const heightWithPadding = height + 24; // 12px padding on top and bottom\n\n const responseAreaWidth = parseFloat(this.props.emptyResponseAreaWidth) || 0;\n const responseAreaHeight = parseFloat(this.props.emptyResponseAreaHeight) || 0;\n\n const adjustedWidth = widthWithPadding <= responseAreaWidth ? responseAreaWidth : widthWithPadding;\n const adjustedHeight = heightWithPadding <= responseAreaHeight ? responseAreaHeight : heightWithPadding;\n\n this.setState((prevState) => ({\n width: adjustedWidth > responseAreaWidth ? adjustedWidth : prevState.width,\n height: adjustedHeight > responseAreaHeight ? adjustedHeight : prevState.height,\n }));\n\n this.rootRef.style.width = `${adjustedWidth}px`;\n this.rootRef.style.height = `${adjustedHeight}px`;\n }\n }\n\n addDraggableFalseAttributes(parent) {\n parent.childNodes.forEach((elem) => {\n if (elem instanceof Element || elem instanceof HTMLDocument) {\n elem.setAttribute('draggable', false);\n }\n });\n }\n\n getRootDimensions() {\n // Handle potential non-numeric values\n const responseAreaWidth = !isNaN(parseFloat(this.props.emptyResponseAreaWidth))\n ? parseFloat(this.props.emptyResponseAreaWidth)\n : 0;\n const responseAreaHeight = !isNaN(parseFloat(this.props.emptyResponseAreaHeight))\n ? parseFloat(this.props.emptyResponseAreaHeight)\n : 0;\n\n const rootStyle = {\n height: this.state.height || responseAreaHeight,\n width: this.state.width || responseAreaWidth,\n };\n\n // add minWidth, minHeight if width and height are not defined\n // minWidth, minHeight will be also in model in the future\n return {\n ...rootStyle,\n ...(responseAreaWidth ? {} : { minWidth: 90 }),\n ...(responseAreaHeight ? {} : { minHeight: 32 }),\n };\n }\n\n render() {\n const { disabled, choice, classes, isOver, dragItem, correct } = this.props;\n const draggedLabel = dragItem && isOver && dragItem.choice.value;\n const label = choice && choice.value;\n\n return (\n // TODO the Chip element is causing drag problems on touch devices. Avoid using Chip and consider refactoring the code. Keep in mind that Chip is a span with a button role, which interferes with seamless touch device dragging.\n <Chip\n clickable={false}\n disabled={true}\n ref={(ref) => {\n //eslint-disable-next-line\n this.rootRef = ReactDOM.findDOMNode(ref);\n }}\n component=\"span\"\n label={\n <React.Fragment>\n <span\n className={classnames(classes.chipLabel, isOver && classes.over, {\n [classes.hidden]: draggedLabel,\n })}\n ref={(ref) => {\n if (ref) {\n //eslint-disable-next-line\n this.spanRef = ReactDOM.findDOMNode(ref);\n ref.innerHTML = label || '';\n this.addDraggableFalseAttributes(ref);\n }\n }}\n >\n {' '}\n </span>\n {draggedLabel && (\n <span\n className={classnames(classes.chipLabel, isOver && classes.over, classes.dragged)}\n ref={(ref) => {\n if (ref) {\n //eslint-disable-next-line\n this.spanRef = ReactDOM.findDOMNode(ref);\n ref.innerHTML = draggedLabel || '';\n this.addDraggableFalseAttributes(ref);\n }\n }}\n >\n {' '}\n </span>\n )}\n </React.Fragment>\n }\n className={classnames(classes.chip, isOver && classes.over, isOver && classes.parentOver, {\n [classes.correct]: correct !== undefined && correct,\n [classes.incorrect]: correct !== undefined && !correct,\n })}\n variant={disabled ? 'outlined' : undefined}\n style={{\n ...this.getRootDimensions(),\n }}\n />\n );\n }\n}\n\nBlankContent.defaultProps = {\n emptyResponseAreaWidth: 0,\n emptyResponseAreaHeight: 0,\n};\n\nBlankContent.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n duplicates: PropTypes.bool,\n choice: PropTypes.object,\n classes: PropTypes.object,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n correct: PropTypes.bool,\n onChange: PropTypes.func,\n emptyResponseAreaWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n emptyResponseAreaHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n\nconst StyledBlankContent = useStyles(BlankContent);\n\nconst connectedBlankContent = useStyles(({ connectDragSource, connectDropTarget, ...props }) => {\n const { classes, isOver } = props;\n\n return connectDropTarget(\n connectDragSource(\n <span className={classnames(classes.content, isOver && classes.over)}>\n <StyledBlankContent {...props} />\n </span>,\n ),\n );\n});\n\nconst tileTarget = {\n drop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n log('props.instanceId', props.instanceId, 'draggedItem.instanceId:', draggedItem.instanceId);\n\n if (draggedItem.id !== props.id) {\n props.onChange(props.id, draggedItem.choice.id);\n }\n\n return {\n dropped: draggedItem.id !== props.id,\n };\n },\n canDrop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n return draggedItem.instanceId === props.instanceId;\n },\n};\n\nconst DropTile = DropTarget(DRAG_TYPE, tileTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n dragItem: monitor.getItem(),\n}))(connectedBlankContent);\n\nconst tileSource = {\n canDrag(props) {\n return !props.disabled && !!props.choice;\n },\n beginDrag(props) {\n return {\n id: props.id,\n choice: props.choice,\n instanceId: props.instanceId,\n fromChoice: true,\n };\n },\n endDrag(props, monitor) {\n // this will be null if it did not drop\n const dropResult = monitor.getDropResult();\n\n if (!dropResult || dropResult.dropped) {\n const draggedItem = monitor.getItem();\n\n if (draggedItem.fromChoice) {\n props.onChange(props.id, undefined);\n }\n }\n },\n};\n\nconst DragDropTile = DragSource(DRAG_TYPE, tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(DropTile);\n\nexport default DragDropTile;\n"],"file":"blank.js"}
|
|
@@ -115,4 +115,4 @@ var _default = (0, _styles.withStyles)(function () {
|
|
|
115
115
|
});
|
|
116
116
|
|
|
117
117
|
exports["default"] = _default;
|
|
118
|
-
//# sourceMappingURL=
|
|
118
|
+
//# sourceMappingURL=correct-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/correct-input.jsx"],"names":["correctStyle","color","borderColor","input","text","backgroundColor","background","borderRadius","borderWidth","borderStyle","padding","opacity","cursor","primary","primaryDark","crInput","correct","incorrect","box","fontSize","display","verticalAlign","outlinedInput","border","notchedOutline","props","charactersLimit","classes","disabled","isBox","isConstructedResponse","width","spellCheck","rest","label","undefined","inputProps","maxLength","style","Math","round","disabledInput"],"mappings":"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","sourcesContent":["import React from 'react';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport classnames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/render-ui';\n\nconst correctStyle = (color) => ({\n borderColor: `${color} !important`,\n});\n\nexport default withStyles(() => ({\n input: {\n color: color.text(),\n backgroundColor: color.background(),\n borderRadius: '4px !important',\n borderWidth: '1px',\n borderStyle: 'solid',\n padding: '10px 20px 10px 10px',\n '&:disabled': {\n opacity: 0.8,\n cursor: 'not-allowed !important',\n },\n '&:hover': {\n borderColor: color.primary(),\n '&:disabled': {\n borderColor: 'initial',\n },\n },\n '&:focus': {\n borderColor: color.primaryDark(),\n },\n },\n crInput: {\n padding: '8px !important',\n },\n correct: correctStyle(color.correct()),\n incorrect: correctStyle(color.incorrect()),\n box: {\n fontSize: 'inherit',\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n outlinedInput: {\n padding: '2px',\n borderRadius: '4px',\n '& fieldset': {\n border: 0,\n },\n },\n notchedOutline: {\n borderColor: color.correct(),\n },\n}))((props) => {\n const {\n correct,\n charactersLimit,\n classes,\n disabled,\n isBox,\n isConstructedResponse,\n width,\n spellCheck,\n ...rest\n } = props;\n\n const label = typeof correct === 'boolean' ? (correct ? 'correct' : 'incorrect') : undefined;\n const inputProps = charactersLimit\n ? { maxLength: charactersLimit, 'aria-label': 'Enter answer' }\n : { 'aria-label': 'Enter answer' };\n\n if (width) {\n inputProps.style = {\n width: `${width + Math.round(width / 10) + 1}ch`, // added some extra space for capital letters\n };\n }\n\n return (\n <OutlinedInput\n className={classnames({\n [classes.disabledInput]: disabled,\n [classes.box]: isBox,\n [classes.outlinedInput]: true,\n })}\n classes={{\n input: classnames({\n [classes.input]: true,\n [classes[label]]: label,\n [classes.crInput]: isConstructedResponse,\n }),\n }}\n inputProps={inputProps}\n labelWidth={0}\n disabled={disabled}\n spellCheck={spellCheck}\n {...rest}\n />\n );\n});\n"],"file":"correct-input.js"}
|
|
@@ -495,4 +495,4 @@ var styles = function styles() {
|
|
|
495
495
|
var _default = (0, _styles.withStyles)(styles)(Dropdown);
|
|
496
496
|
|
|
497
497
|
exports["default"] = _default;
|
|
498
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duLmpzeCJdLCJuYW1lcyI6WyJEcm9wZG93biIsInByb3BzIiwiZXZlbnQiLCJzZXRTdGF0ZSIsImFuY2hvckVsIiwiY3VycmVudFRhcmdldCIsInZhbHVlIiwicHJldmlld1ZhbHVlIiwiaGlnaGxpZ2h0ZWRPcHRpb25JZCIsInByZXZpZXdSZWYiLCJjdXJyZW50IiwiaW5uZXJIVE1MIiwiaW5kZXgiLCJpZCIsInN0YXRlVXBkYXRlIiwiY2hvaWNlcyIsIm9uQ2hhbmdlIiwiaGFuZGxlSGlnaGxpZ2h0IiwiaGFuZGxlQ2xvc2UiLCJzZWxlY3RlZFZhbHVlIiwic3RhdGUiLCJyZWYiLCJlbGVtZW50UmVmcyIsInByZXZpZXciLCJtZW51V2lkdGgiLCJoaWRkZW5SZWYiLCJSZWFjdCIsImNyZWF0ZVJlZiIsImJ1dHRvblJlZiIsImNsaWVudFdpZHRoIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwiaGlkZGVuRWwiLCJkcm9wZG93bkp1c3RPcGVuZWQiLCJmb3JFYWNoIiwiY29udGFpbnNMYXRleCIsInF1ZXJ5U2VsZWN0b3IiLCJoYXNNYXRoSmF4IiwibWF0aEhhbmRsZWQiLCJuZXdXaWR0aCIsImZvdW5kIiwiZmluZCIsImNob2ljZSIsImxhYmVsIiwidHJpbSIsInVuZGVmaW5lZCIsImNsYXNzZXMiLCJjb3JyZWN0IiwiZGlzYWJsZWQiLCJzaG93Q29ycmVjdEFuc3dlciIsInNpbmdsZVF1ZXJ5IiwiY29ycmVjdFZhbHVlIiwib3BlbiIsIkJvb2xlYW4iLCJidXR0b25JZCIsIm1lbnVJZCIsInZhbHVlRGlzcGxheUlkIiwiZGlzYWJsZWRDbGFzcyIsImRpc2FibGVkQ29ycmVjdCIsImRpc2FibGVkSW5jb3JyZWN0IiwiaW5jcmVtZW50ZWRJZCIsInBhcnNlSW50IiwibGFiZWxJZCIsImxhYmVsVGV4dCIsImNvcnJlY3RuZXNzSWNvbiIsImNvcnJlY3RuZXNzSW5kaWNhdG9ySWNvbiIsImNvcnJlY3RJY29uIiwiaW5jb3JyZWN0SWNvbiIsInBvc2l0aW9uIiwidmlzaWJpbGl0eSIsInRvcCIsImxlZnQiLCJtYXAiLCJjIiwicm9vdCIsIm1lbnVSb290Iiwic2VsZWN0ZWQiLCJfX2h0bWwiLCJzck9ubHkiLCJtaW5XaWR0aCIsImJvcmRlcldpZHRoIiwidHJhbnNpdGlvbiIsImhhbmRsZUNsaWNrIiwiZ2V0TGFiZWwiLCJzZWxlY3RNZW51IiwidmVydGljYWwiLCJob3Jpem9udGFsIiwic3R5bGUiLCJwYWRkaW5nIiwicm9sZSIsImRpc2FibGVQYWRkaW5nIiwib3B0aW9uSWQiLCJoYW5kbGVTZWxlY3QiLCJoYW5kbGVIb3ZlciIsInNlbGVjdGVkSW5kaWNhdG9yIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiYm9vbCIsImZ1bmMiLCJvYmplY3QiLCJhcnJheU9mIiwic2hhcGUiLCJzdHlsZXMiLCJjb2xvciIsInRleHQiLCJib3JkZXIiLCJib3JkZXJHcmF5IiwiYm9yZGVyUmFkaXVzIiwianVzdGlmeUNvbnRlbnQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwiaGVpZ2h0Iiwid2lkdGgiLCJtYXJnaW4iLCJ0ZXh0VHJhbnNmb3JtIiwicGFkZGluZ1JpZ2h0IiwicmlnaHQiLCJwb2ludGVyRXZlbnRzIiwibWFyZ2luTGVmdCIsIm91dGxpbmUiLCJ0ZXJ0aWFyeSIsIm91dGxpbmVPZmZzZXQiLCJib3JkZXJDb2xvciIsImluY29ycmVjdFdpdGhJY29uIiwiZHJvcGRvd25CYWNrZ3JvdW5kIiwiYm94U2l6aW5nIiwiZm9udFNpemUiLCJvdmVyZmxvdyIsIndoaXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7Ozs7Ozs7O0lBRU1BLFE7Ozs7O0FBY0osb0JBQVlDLEtBQVosRUFBbUI7QUFBQTs7QUFBQTtB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MEZwQnZDLElBQUFBLE1BQU0sRUFBRTtBQUNOVixNQUFBQSxRQUFRLEVBQUUsVUFESjtBQUVORyxNQUFBQSxJQUFJLEVBQUUsVUFGQTtBQUdORCxNQUFBQSxHQUFHLEVBQUUsTUFIQztBQUlOMkMsTUFBQUEsS0FBSyxFQUFFLEtBSkQ7QUFLTkQsTUFBQUEsTUFBTSxFQUFFLEtBTEY7QUFNTmdCLE1BQUFBLFFBQVEsRUFBRTtBQU5KLEtBMUZZO0FBa0dwQi9ELElBQUFBLHdCQUF3QixFQUFFO0FBQ3hCdUMsTUFBQUEsS0FBSyxZQUFLQSxnQkFBTXlCLEtBQU4sRUFBTCxnQkFEbUI7QUFFeEI3RCxNQUFBQSxRQUFRLEVBQUUsVUFGYztBQUd4QkUsTUFBQUEsR0FBRyxFQUFFLGlCQUhtQjtBQUl4QkMsTUFBQUEsSUFBSSxFQUFFLE1BSmtCO0FBS3hCZ0QsTUFBQUEsVUFBVSxFQUFFLGNBTFk7QUFNeEJYLE1BQUFBLFlBQVksRUFBRSxLQU5VO0FBT3hCbUIsTUFBQUEsUUFBUSxFQUFFLE1BUGM7QUFReEJ2QyxNQUFBQSxPQUFPLEVBQUU7QUFSZSxLQWxHTjtBQTRHcEJ0QixJQUFBQSxXQUFXLEVBQUU7QUFDWDRDLE1BQUFBLGVBQWUsRUFBRU4sZ0JBQU16RCxPQUFOO0FBRE4sS0E1R087QUErR3BCb0IsSUFBQUEsYUFBYSxFQUFFO0FBQ2IyQyxNQUFBQSxlQUFlLEVBQUVOLGdCQUFNb0IsaUJBQU47QUFESjtBQS9HSyxHQUFQO0FBQUEsQ0FBZjs7ZUFvSGUsd0JBQVdyQixNQUFYLEVBQW1CdkcsUUFBbkIsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9CdXR0b24nO1xuaW1wb3J0IElucHV0TGFiZWwgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvSW5wdXRMYWJlbCc7XG5pbXBvcnQgTWVudSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9NZW51JztcbmltcG9ydCBNZW51SXRlbSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9NZW51SXRlbSc7XG5pbXBvcnQgQXJyb3dEcm9wRG93bkljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Fycm93RHJvcERvd24nO1xuaW1wb3J0IEFycm93RHJvcFVwSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvQXJyb3dEcm9wVXAnO1xuaW1wb3J0IENsb3NlIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9DbG9zZSc7XG5pbXBvcnQgQ2hlY2sgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0NoZWNrJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IHJlbmRlck1hdGggfSBmcm9tICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZyc7XG5cbmNsYXNzIERyb3Bkb3duIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY29ycmVjdDogUHJvcFR5cGVzLmJvb2wsXG4gICAgY2hvaWNlczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnNoYXBlKHsgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nIH0pKSxcbiAgICBzaG93Q29ycmVjdEFuc3dlcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2luZ2xlUXVlcnk6IFByb3BUeXBlcy5ib29sLFxuICAgIGNvcnJlY3RWYWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBhbmNob3JFbDogbnVsbCxcbiAgICAgIGhpZ2hsaWdodGVkT3B0aW9uSWQ6IG51bGwsXG4gICAgICBtZW51V2lkdGg6IG51bGwsXG4gICAgICBwcmV2aWV3VmFsdWU6IG51bGwsXG4gICAgfTtcbiAgICB0aGlzLmhpZGRlblJlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xuICAgIHRoaXMuYnV0dG9uUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gICAgdGhpcy5wcmV2aWV3UmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gICAgdGhpcy5lbGVtZW50UmVmcyA9IFtdO1xuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgLy8gbWVhc3VyZSBoaWRkZW4gbWVudSB3aWR0aCBvbmNlXG4gICAgaWYgKHRoaXMuaGlkZGVuUmVmLmN1cnJlbnQgJiYgdGhpcy5zdGF0ZS5tZW51V2lkdGggPT09IG51bGwpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBtZW51V2lkdGg6IHRoaXMuaGlkZGVuUmVmLmN1cnJlbnQuY2xpZW50V2lkdGggfSk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlKSB7XG4gICAgY29uc3QgaGlkZGVuRWwgPSB0aGlzLmhpZGRlblJlZi5jdXJyZW50O1xuXG4gICAgY29uc3QgZHJvcGRvd25KdXN0T3BlbmVkID0gIXByZXZTdGF0ZS5hbmNob3JFbCAmJiB0aGlzLnN0YXRlLmFuY2hvckVsO1xuICAgIGlmIChkcm9wZG93bkp1c3RPcGVuZWQpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZnMuZm9yRWFjaCgocmVmKSA9PiB7XG4gICAgICAgIGlmICghcmVmKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgY29udGFpbnNMYXRleCA9IHJlZi5xdWVyeVNlbGVjdG9yKCdbZGF0YS1sYXRleF0sIFtkYXRhLXJhd10nKTtcbiAgICAgICAgY29uc3QgaGFzTWF0aEpheCA9IHJlZi5xdWVyeVNlbGVjdG9yKCdtangtY29udGFpbmVyJyk7XG4gICAgICAgIGNvbnN0IG1hdGhIYW5kbGVkID0gcmVmLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1hdGgtaGFuZGxlZD1cInRydWVcIl0nKTtcblxuICAgICAgICBpZiAoY29udGFpbnNMYXRleCAmJiAoIW1hdGhIYW5kbGVkIHx8ICFoYXNNYXRoSmF4KSkge1xuICAgICAgICAgIHJlbmRlck1hdGgocmVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGhpZGRlbkVsKSB7XG4gICAgICBjb25zdCBuZXdXaWR0aCA9IGhpZGRlbkVsLmNsaWVudFdpZHRoO1xuICAgICAgaWYgKG5ld1dpZHRoICE9PSB0aGlzLnN0YXRlLm1lbnVXaWR0aCkge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWZzLmZvckVhY2goKHJlZikgPT4ge1xuICAgICAgICAgIGlmIChyZWYpIHJlbmRlck1hdGgocmVmKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVuZGVyTWF0aChoaWRkZW5FbCk7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBtZW51V2lkdGg6IG5ld1dpZHRoIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNsaWNrID0gKGV2ZW50KSA9PiB0aGlzLnNldFN0YXRlKHsgYW5jaG9yRWw6IGV2ZW50LmN1cnJlbnRUYXJnZXQgfSk7XG5cbiAgaGFuZGxlQ2xvc2UgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICB0aGlzLnNldFN0YXRlKHsgYW5jaG9yRWw6IG51bGwsIHByZXZpZXdWYWx1ZTogbnVsbCwgaGlnaGxpZ2h0ZWRPcHRpb25JZDogbnVsbCB9KTtcbiAgICAvLyBjbGVhciBkaXNwbGF5ZWQgcHJldmlldyBpZiBubyBzZWxlY3Rpb25cbiAgICBpZiAoIXZhbHVlICYmIHRoaXMucHJldmlld1JlZi5jdXJyZW50KSB7XG4gICAgICB0aGlzLnByZXZpZXdSZWYuY3VycmVudC5pbm5lckhUTUwgPSAnJztcbiAgICB9XG4gIH07XG5cbiAgaGFuZGxlSGlnaGxpZ2h0ID0gKGluZGV4KSA9PiB7XG4gICAgY29uc3QgaGlnaGxpZ2h0ZWRPcHRpb25JZCA9IGBkcm9wZG93bi1vcHRpb24tJHt0aGlzLnByb3BzLmlkfS0ke2luZGV4fWA7XG5cbiAgICAvLyBwcmV2aWV3IG9uIGhvdmVyIGlmIG5vdGhpbmcgc2VsZWN0ZWRcbiAgICBjb25zdCBzdGF0ZVVwZGF0ZSA9IHsgaGlnaGxpZ2h0ZWRPcHRpb25JZCB9O1xuICAgIGlmICghdGhpcy5wcm9wcy52YWx1ZSkge1xuICAgICAgc3RhdGVVcGRhdGUucHJldmlld1ZhbHVlID0gdGhpcy5wcm9wcy5jaG9pY2VzW2luZGV4XS52YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZShzdGF0ZVVwZGF0ZSk7XG4gIH07XG5cbiAgaGFuZGxlU2VsZWN0ID0gKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5wcm9wcy5pZCwgdmFsdWUpO1xuICAgIHRoaXMuaGFuZGxlSGlnaGxpZ2h0KGluZGV4KTtcbiAgICB0aGlzLmhhbmRsZUNsb3NlKCk7XG4gIH07XG5cbiAgaGFuZGxlSG92ZXIgPSAoaW5kZXgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gdGhpcy5wcm9wcy52YWx1ZTtcblxuICAgIGlmIChzZWxlY3RlZFZhbHVlKSByZXR1cm47XG5cbiAgICBjb25zdCBoaWdobGlnaHRlZE9wdGlvbklkID0gYGRyb3Bkb3duLW9wdGlvbi0ke3RoaXMucHJvcHMuaWR9LSR7aW5kZXh9YDtcbiAgICBjb25zdCBwcmV2aWV3VmFsdWUgPSB0aGlzLnN0YXRlLnByZXZpZXdWYWx1ZTtcblxuICAgIHRoaXMuc2V0U3RhdGUoeyBoaWdobGlnaHRlZE9wdGlvbklkLCBwcmV2aWV3VmFsdWUgfSwgKCkgPT4ge1xuICAgICAgLy8gT24gaG92ZXIsIHByZXZpZXcgdGhlIG1hdGgtcmVuZGVyZWQgY29udGVudCBpbnNpZGUgdGhlIGJ1dHRvbiBpZiBubyB2YWx1ZSBpcyBzZWxlY3RlZC5cbiAgICAgIGNvbnN0IHJlZiA9IHRoaXMuZWxlbWVudFJlZnNbaW5kZXhdO1xuICAgICAgY29uc3QgcHJldmlldyA9IHRoaXMucHJldmlld1JlZi5jdXJyZW50O1xuXG4gICAgICBpZiAocmVmICYmIHByZXZpZXcpIHtcbiAgICAgICAgcHJldmlldy5pbm5lckhUTUwgPSByZWYuaW5uZXJIVE1MO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGdldExhYmVsKGNob2ljZXMsIHZhbHVlKSB7XG4gICAgY29uc3QgZm91bmQgPSAoY2hvaWNlcyB8fCBbXSkuZmluZCgoY2hvaWNlKSA9PiBjaG9pY2UudmFsdWUgPT09IHZhbHVlKTtcblxuICAgIHJldHVybiBmb3VuZCA/IGZvdW5kLmxhYmVsLnRyaW0oKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNsYXNzZXMsIGlkLCBjb3JyZWN0LCBkaXNhYmxlZCwgdmFsdWUsIGNob2ljZXMsIHNob3dDb3JyZWN0QW5zd2VyLCBzaW5nbGVRdWVyeSwgY29ycmVjdFZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgYW5jaG9yRWwgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qgb3BlbiA9IEJvb2xlYW4oYW5jaG9yRWwpO1xuICAgIGNvbnN0IGJ1dHRvbklkID0gYGRyb3Bkb3duLWJ1dHRvbi0ke2lkfWA7XG4gICAgY29uc3QgbWVudUlkID0gYGRyb3Bkb3duLW1lbnUtJHtpZH1gO1xuICAgIGNvbnN0IHZhbHVlRGlzcGxheUlkID0gYGRyb3Bkb3duLXZhbHVlLSR7aWR9YDtcblxuICAgIC8vIERldGVybWluZSB0aGUgY2xhc3MgZm9yIGRpc2FibGVkIHN0YXRlLCB2aWV3IG1vZGUgYW5kIGV2YWx1YXRlIG1vZGVcbiAgICBsZXQgZGlzYWJsZWRDbGFzcztcbiAgICAvLyBSZXNldCBlbGVtZW50UmVmcyBiZWZvcmUgZWFjaCByZW5kZXIgdG8gYXZvaWQgc3RhbGUgcmVmZXJlbmNlc1xuICAgIHRoaXMuZWxlbWVudFJlZnMgPSBbXTtcblxuICAgIGlmIChkaXNhYmxlZCAmJiBjb3JyZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRpc2FibGVkQ2xhc3MgPSBjb3JyZWN0IHx8IHNob3dDb3JyZWN0QW5zd2VyID8gY2xhc3Nlcy5kaXNhYmxlZENvcnJlY3QgOiBjbGFzc2VzLmRpc2FibGVkSW5jb3JyZWN0O1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBkaXN0aW5jdCwgdmlzdWFsbHkgaGlkZGVuIGxhYmVscyBmb3IgZWFjaCBkcm9wZG93blxuICAgIGNvbnN0IGluY3JlbWVudGVkSWQgPSBwYXJzZUludChpZCwgMTApICsgMTtcbiAgICBjb25zdCBsYWJlbElkID0gc2luZ2xlUXVlcnkgPyAnUXVlcnktbGFiZWwnIDogYFF1ZXJ5LWxhYmVsLSR7aW5jcmVtZW50ZWRJZH1gO1xuICAgIGNvbnN0IGxhYmVsVGV4dCA9IHNpbmdsZVF1ZXJ5ID8gJ1F1ZXJ5JyA6IGBRdWVyeSAke2luY3JlbWVudGVkSWR9YDtcblxuICAgIC8vIENoYW5nZWQgZnJvbSBTZWxlY3QgdG8gQnV0dG9uIGZvciBkcm9wZG93biB0byBlbmhhbmNlIGFjY2Vzc2liaWxpdHkuIFRoaXMgbW9kaWZpY2F0aW9uIG9mZmVycyBleHBsaWNpdCBjb250cm9sIG92ZXIgYXJpYSBhdHRyaWJ1dGVzIGFuZCBmb2N1c2VzIG1hbmFnZW1lbnQsIGVuc3VyaW5nIHRoZSBkcm9wZG93biBpcyBjb21wbGlhbnQgd2l0aCBhY2Nlc3NpYmlsaXR5IHN0YW5kYXJkcy4gVGhlIHVzZSBvZiBCdXR0b24gYW5kIE1lbnUgY29tcG9uZW50cyBhbGxvd3MgZm9yIGJldHRlciBoYW5kbGluZyBvZiBrZXlib2FyZCBpbnRlcmFjdGlvbnMgYW5kIHByb3ZpZGVzIGFjY2Vzc2libGUgbGFiZWxzIGFuZCBtZW51cywgYWxpZ25pbmcgd2l0aCBXQ0FHIGd1aWRlbGluZXMgYW5kIGltcHJvdmluZyB1c2FiaWxpdHkgZm9yIGFzc2lzdGl2ZSB0ZWNobm9sb2d5IHVzZXJzLlxuICAgIGxldCBjb3JyZWN0bmVzc0ljb24gPSBudWxsO1xuICAgIGlmIChkaXNhYmxlZCAmJiBjb3JyZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvcnJlY3RuZXNzSWNvbiA9XG4gICAgICAgIGNvcnJlY3QgfHwgc2hvd0NvcnJlY3RBbnN3ZXIgPyAoXG4gICAgICAgICAgPENoZWNrIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzLmNvcnJlY3RuZXNzSW5kaWNhdG9ySWNvbiwgY2xhc3Nlcy5jb3JyZWN0SWNvbil9IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPENsb3NlIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzLmNvcnJlY3RuZXNzSW5kaWNhdG9ySWNvbiwgY2xhc3Nlcy5pbmNvcnJlY3RJY29uKX0gLz5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIHJlZj17dGhpcy5oaWRkZW5SZWZ9XG4gICAgICAgICAgc3R5bGU9e3sgcG9zaXRpb246ICdhYnNvbHV0ZScsIHZpc2liaWxpdHk6ICdoaWRkZW4nLCB0b3A6IDAsIGxlZnQ6IDAgfX1cbiAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHsoY2hvaWNlcyB8fCBbXSkubWFwKChjLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPE1lbnVJdGVtXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgIGNsYXNzZXM9e3sgcm9vdDogY2xhc3Nlcy5tZW51Um9vdCwgc2VsZWN0ZWQ6IGNsYXNzZXMuc2VsZWN0ZWQgfX1cbiAgICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzZXMubGFiZWx9IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogYy5sYWJlbCB9fSAvPlxuICAgICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxJbnB1dExhYmVsIGNsYXNzTmFtZT17Y2xhc3Nlcy5zck9ubHl9IGlkPXtsYWJlbElkfSB0YWJJbmRleD17LTF9IGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIHtsYWJlbFRleHR9XG4gICAgICAgIDwvSW5wdXRMYWJlbD5cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIHJlZj17dGhpcy5idXR0b25SZWZ9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIC4uLih0aGlzLnN0YXRlLm1lbnVXaWR0aCAmJiB7IG1pbldpZHRoOiBgY2FsYygke3RoaXMuc3RhdGUubWVudVdpZHRofXB4ICsgOHB4KWAgfSksXG4gICAgICAgICAgICBib3JkZXJXaWR0aDogb3BlbiA/ICcycHgnIDogJzFweCcsXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAnYm9yZGVyLXdpZHRoIDAuMnMgZWFzZS1pbi1vdXQnLFxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1jb250cm9scz17b3BlbiA/IG1lbnVJZCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17b3BlbiA/ICd0cnVlJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9e3RoaXMuc3RhdGUuaGlnaGxpZ2h0ZWRPcHRpb25JZH1cbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZUNsaWNrfVxuICAgICAgICAgIGNsYXNzZXM9e3tcbiAgICAgICAgICAgIHJvb3Q6IGNsYXNzZXMucm9vdCxcbiAgICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZENsYXNzLFxuICAgICAgICAgIH19XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGlkPXtidXR0b25JZH1cbiAgICAgICAgICByb2xlPVwiY29tYm9ib3hcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9e2BTZWxlY3QgYW4gb3B0aW9uIGZvciAke2xhYmVsVGV4dH1gfVxuICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17dmFsdWVEaXNwbGF5SWR9XG4gICAgICAgID5cbiAgICAgICAgICB7Y29ycmVjdG5lc3NJY29ufVxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBpZD17dmFsdWVEaXNwbGF5SWR9XG4gICAgICAgICAgICByZWY9e3RoaXMucHJldmlld1JlZn1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5sYWJlbH1cbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIF9faHRtbDogY29ycmVjdFZhbHVlXG4gICAgICAgICAgICAgICAgPyBjb3JyZWN0VmFsdWVcbiAgICAgICAgICAgICAgICA6IG9wZW4gJiYgdGhpcy5zdGF0ZS5wcmV2aWV3VmFsdWVcbiAgICAgICAgICAgICAgICA/IHRoaXMuZ2V0TGFiZWwoY2hvaWNlcywgdGhpcy5zdGF0ZS5wcmV2aWV3VmFsdWUpXG4gICAgICAgICAgICAgICAgOiB0aGlzLmdldExhYmVsKGNob2ljZXMsIHZhbHVlKSB8fCAnJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7b3BlbiA/IDxBcnJvd0Ryb3BVcEljb24gLz4gOiA8QXJyb3dEcm9wRG93bkljb24gLz59XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgICA8TWVudVxuICAgICAgICAgIGlkPXttZW51SWR9XG4gICAgICAgICAgYW5jaG9yRWw9e2FuY2hvckVsfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5zZWxlY3RNZW51fVxuICAgICAgICAgIGtlZXBNb3VudGVkXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvbkNsb3NlPXt0aGlzLmhhbmRsZUNsb3NlfVxuICAgICAgICAgIGdldENvbnRlbnRBbmNob3JFbD17bnVsbH1cbiAgICAgICAgICBhbmNob3JPcmlnaW49e3sgdmVydGljYWw6ICdib3R0b20nLCBob3Jpem9udGFsOiAnbGVmdCcgfX1cbiAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW49e3sgdmVydGljYWw6ICd0b3AnLCBob3Jpem9udGFsOiAnbGVmdCcgfX1cbiAgICAgICAgICBQYXBlclByb3BzPXt0aGlzLnN0YXRlLm1lbnVXaWR0aCA/IHsgc3R5bGU6IHsgbWluV2lkdGg6IHRoaXMuc3RhdGUubWVudVdpZHRoLCBwYWRkaW5nOiAnNHB4JyB9IH0gOiB1bmRlZmluZWR9XG4gICAgICAgICAgTWVudUxpc3RQcm9wcz17e1xuICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGJ1dHRvbklkLFxuICAgICAgICAgICAgcm9sZTogJ2xpc3Rib3gnLFxuICAgICAgICAgICAgZGlzYWJsZVBhZGRpbmc6IHRydWUsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHsoY2hvaWNlcyB8fCBbXSkubWFwKChjLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uSWQgPSBgZHJvcGRvd24tb3B0aW9uLSR7aWR9LSR7aW5kZXh9YDtcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgaWQ9e29wdGlvbklkfVxuICAgICAgICAgICAgICAgIGNsYXNzZXM9e3sgcm9vdDogY2xhc3Nlcy5tZW51Um9vdCwgc2VsZWN0ZWQ6IGNsYXNzZXMuc2VsZWN0ZWQgfX1cbiAgICAgICAgICAgICAgICBrZXk9e2Ake2MubGFiZWx9LSR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICB2YWx1ZT17Yy52YWx1ZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLmhhbmRsZVNlbGVjdChjLnZhbHVlLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17dGhpcy5zdGF0ZS5oaWdobGlnaHRlZE9wdGlvbklkID09PSBvcHRpb25JZCA/ICd0cnVlJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICBvbk1vdXNlT3Zlcj17KCkgPT4gdGhpcy5oYW5kbGVIb3ZlcihpbmRleCl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgcmVmPXsocmVmKSA9PiAodGhpcy5lbGVtZW50UmVmc1tpbmRleF0gPSByZWYpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBjLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnNlbGVjdGVkSW5kaWNhdG9yfVxuICAgICAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBjLnZhbHVlID09PSB2YWx1ZSA/ICcgJmNoZWNrOycgOiAnJyB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L01lbnU+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlcyA9ICgpID0+ICh7XG4gIHJvb3Q6IHtcbiAgICBjb2xvcjogY29sb3IudGV4dCgpLFxuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2NvbG9yLmJvcmRlckdyYXkoKX1gLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmJhY2tncm91bmQoKSxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBoZWlnaHQ6ICc0NXB4JyxcbiAgICB3aWR0aDogJ2ZpdC1jb250ZW50JyxcbiAgICBtYXJnaW46ICcycHgnLFxuICAgIHRleHRUcmFuc2Zvcm06ICdub25lJyxcbiAgICAnJiBzcGFuJzoge1xuICAgICAgcGFkZGluZ1JpZ2h0OiAnNXB4JyxcbiAgICB9LFxuICAgICcmIHN2Zyc6IHtcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB0b3A6ICdjYWxjKDUwJSAtIDEycHgpJyxcbiAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gICAgICBtYXJnaW5MZWZ0OiAnNXB4JyxcbiAgICB9LFxuICAgICcmOmZvY3VzLCAmOmZvY3VzLXZpc2libGUnOiB7XG4gICAgICBvdXRsaW5lOiBgM3B4IHNvbGlkICR7Y29sb3IudGVydGlhcnkoKX1gLFxuICAgICAgb3V0bGluZU9mZnNldDogJzJweCcsXG4gICAgICBib3JkZXJXaWR0aDogJzNweCcsXG4gICAgfSxcbiAgfSxcbiAgZGlzYWJsZWRDb3JyZWN0OiB7XG4gICAgYm9yZGVyV2lkdGg6ICcycHgnLFxuICAgIGJvcmRlckNvbG9yOiBjb2xvci5jb3JyZWN0KCksXG4gICAgY29sb3I6IGAke2NvbG9yLnRleHQoKX0gIWltcG9ydGFudGAsXG4gIH0sXG4gIGRpc2FibGVkSW5jb3JyZWN0OiB7XG4gICAgYm9yZGVyV2lkdGg6ICcycHgnLFxuICAgIGJvcmRlckNvbG9yOiBjb2xvci5pbmNvcnJlY3RXaXRoSWNvbigpLFxuICAgIGNvbG9yOiBgJHtjb2xvci50ZXh0KCl9ICFpbXBvcnRhbnRgLFxuICB9LFxuICBzZWxlY3RNZW51OiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5iYWNrZ3JvdW5kKCksXG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7Y29sb3IuY29ycmVjdCgpfSAhaW1wb3J0YW50YCxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2NvbG9yLnRleHQoKX0gYCxcbiAgICAgIGJvcmRlckNvbG9yOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgICAnJjpmb2N1cyc6IHtcbiAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2NvbG9yLnRleHQoKX1gLFxuICAgICAgYm9yZGVyQ29sb3I6ICdpbml0aWFsJyxcbiAgICB9LFxuICAgIC8vIHJlbW92ZSBkZWZhdWx0IHBhZGRpbmcgb24gdGhlIGlubmVyIGxpc3RcbiAgICAnJiAuTXVpTGlzdC1yb290Jzoge1xuICAgICAgcGFkZGluZzogMCxcbiAgICB9LFxuICB9LFxuICBzZWxlY3RlZDoge1xuICAgIGNvbG9yOiBgJHtjb2xvci50ZXh0KCl9ICFpbXBvcnRhbnRgLFxuICAgIGJhY2tncm91bmRDb2xvcjogYCR7Y29sb3IuYmFja2dyb3VuZCgpfSAhaW1wb3J0YW50YCxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGAke2NvbG9yLmRyb3Bkb3duQmFja2dyb3VuZCgpfSAhaW1wb3J0YW50YCxcbiAgICB9LFxuICB9LFxuICBtZW51Um9vdDoge1xuICAgIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5iYWNrZ3JvdW5kKCksXG4gICAgJyY6Zm9jdXMsICY6Zm9jdXMtdmlzaWJsZSc6IHtcbiAgICAgIG91dGxpbmU6IGAzcHggc29saWQgJHtjb2xvci50ZXJ0aWFyeSgpfWAsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAnLTFweCcsIC8vIGtlZXBzIGl0IGluc2lkZSB0aGUgaXRlbVxuICAgIH0sXG4gICAgJyY6Zm9jdXMnOiB7XG4gICAgICBjb2xvcjogY29sb3IudGV4dCgpLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5iYWNrZ3JvdW5kKCksXG4gICAgfSxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmRyb3Bkb3duQmFja2dyb3VuZCgpLFxuICAgIH0sXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgcGFkZGluZzogJzI1cHgnLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gIH0sXG4gIGxhYmVsOiB7XG4gICAgZm9udFNpemU6ICdtYXgoMXJlbSwgMTRweCknLFxuICB9LFxuICBzZWxlY3RlZEluZGljYXRvcjoge1xuICAgIGZvbnRTaXplOiAnbWF4KDFyZW0sIDE0cHgpJyxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICByaWdodDogJzEwcHgnLFxuICB9LFxuICBzck9ubHk6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBsZWZ0OiAnLTEwMDAwcHgnLFxuICAgIHRvcDogJ2F1dG8nLFxuICAgIHdpZHRoOiAnMXB4JyxcbiAgICBoZWlnaHQ6ICcxcHgnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgfSxcbiAgY29ycmVjdG5lc3NJbmRpY2F0b3JJY29uOiB7XG4gICAgY29sb3I6IGAke2NvbG9yLndoaXRlKCl9ICFpbXBvcnRhbnRgLFxuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRvcDogJy04cHggIWltcG9ydGFudCcsXG4gICAgbGVmdDogJy04cHgnLFxuICAgIG1hcmdpbkxlZnQ6ICcwICFpbXBvcnRhbnQnLFxuICAgIGJvcmRlclJhZGl1czogJzUwJScsXG4gICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICBwYWRkaW5nOiAnMnB4JyxcbiAgfSxcbiAgY29ycmVjdEljb246IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmNvcnJlY3QoKSxcbiAgfSxcbiAgaW5jb3JyZWN0SWNvbjoge1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuaW5jb3JyZWN0V2l0aEljb24oKSxcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcykoRHJvcGRvd24pO1xuIl19
|
|
498
|
+
//# sourceMappingURL=dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/dropdown.jsx"],"names":["Dropdown","props","event","setState","anchorEl","currentTarget","value","previewValue","highlightedOptionId","previewRef","current","innerHTML","index","id","stateUpdate","choices","onChange","handleHighlight","handleClose","selectedValue","state","ref","elementRefs","preview","menuWidth","hiddenRef","React","createRef","buttonRef","clientWidth","prevProps","prevState","hiddenEl","dropdownJustOpened","forEach","containsLatex","querySelector","hasMathJax","mathHandled","newWidth","found","find","choice","label","trim","undefined","classes","correct","disabled","showCorrectAnswer","singleQuery","correctValue","open","Boolean","buttonId","menuId","valueDisplayId","disabledClass","disabledCorrect","disabledIncorrect","incrementedId","parseInt","labelId","labelText","correctnessIcon","correctnessIndicatorIcon","correctIcon","incorrectIcon","position","visibility","top","left","map","c","root","menuRoot","selected","__html","srOnly","minWidth","borderWidth","transition","handleClick","getLabel","selectMenu","vertical","horizontal","style","padding","role","disablePadding","optionId","handleSelect","handleHover","selectedIndicator","Component","PropTypes","string","bool","func","object","arrayOf","shape","styles","color","text","border","borderGray","borderRadius","justifyContent","backgroundColor","background","height","width","margin","textTransform","paddingRight","right","pointerEvents","marginLeft","outline","tertiary","outlineOffset","borderColor","incorrectWithIcon","dropdownBackground","boxSizing","fontSize","overflow","white"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp';\nimport Close from '@material-ui/icons/Close';\nimport Check from '@material-ui/icons/Check';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nclass Dropdown extends React.Component {\n static propTypes = {\n id: PropTypes.string,\n value: PropTypes.string,\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n classes: PropTypes.object,\n correct: PropTypes.bool,\n choices: PropTypes.arrayOf(PropTypes.shape({ value: PropTypes.string, label: PropTypes.string })),\n showCorrectAnswer: PropTypes.bool,\n singleQuery: PropTypes.bool,\n correctValue: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n anchorEl: null,\n highlightedOptionId: null,\n menuWidth: null,\n previewValue: null,\n };\n this.hiddenRef = React.createRef();\n this.buttonRef = React.createRef();\n this.previewRef = React.createRef();\n this.elementRefs = [];\n }\n\n componentDidMount() {\n // measure hidden menu width once\n if (this.hiddenRef.current && this.state.menuWidth === null) {\n this.setState({ menuWidth: this.hiddenRef.current.clientWidth });\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const hiddenEl = this.hiddenRef.current;\n\n const dropdownJustOpened = !prevState.anchorEl && this.state.anchorEl;\n if (dropdownJustOpened) {\n this.elementRefs.forEach((ref) => {\n if (!ref) return;\n\n const containsLatex = ref.querySelector('[data-latex], [data-raw]');\n const hasMathJax = ref.querySelector('mjx-container');\n const mathHandled = ref.querySelector('[data-math-handled=\"true\"]');\n\n if (containsLatex && (!mathHandled || !hasMathJax)) {\n renderMath(ref);\n }\n });\n }\n\n if (hiddenEl) {\n const newWidth = hiddenEl.clientWidth;\n if (newWidth !== this.state.menuWidth) {\n this.elementRefs.forEach((ref) => {\n if (ref) renderMath(ref);\n });\n\n renderMath(hiddenEl);\n this.setState({ menuWidth: newWidth });\n }\n }\n }\n\n handleClick = (event) => this.setState({ anchorEl: event.currentTarget });\n\n handleClose = () => {\n const { value } = this.props;\n this.setState({ anchorEl: null, previewValue: null, highlightedOptionId: null });\n // clear displayed preview if no selection\n if (!value && this.previewRef.current) {\n this.previewRef.current.innerHTML = '';\n }\n };\n\n handleHighlight = (index) => {\n const highlightedOptionId = `dropdown-option-${this.props.id}-${index}`;\n\n // preview on hover if nothing selected\n const stateUpdate = { highlightedOptionId };\n if (!this.props.value) {\n stateUpdate.previewValue = this.props.choices[index].value;\n }\n this.setState(stateUpdate);\n };\n\n handleSelect = (value, index) => {\n this.props.onChange(this.props.id, value);\n this.handleHighlight(index);\n this.handleClose();\n };\n\n handleHover = (index) => {\n const selectedValue = this.props.value;\n\n if (selectedValue) return;\n\n const highlightedOptionId = `dropdown-option-${this.props.id}-${index}`;\n const previewValue = this.state.previewValue;\n\n this.setState({ highlightedOptionId, previewValue }, () => {\n // On hover, preview the math-rendered content inside the button if no value is selected.\n const ref = this.elementRefs[index];\n const preview = this.previewRef.current;\n\n if (ref && preview) {\n preview.innerHTML = ref.innerHTML;\n }\n });\n };\n\n getLabel(choices, value) {\n const found = (choices || []).find((choice) => choice.value === value);\n\n return found ? found.label.trim() : undefined;\n }\n\n render() {\n const { classes, id, correct, disabled, value, choices, showCorrectAnswer, singleQuery, correctValue } = this.props;\n const { anchorEl } = this.state;\n const open = Boolean(anchorEl);\n const buttonId = `dropdown-button-${id}`;\n const menuId = `dropdown-menu-${id}`;\n const valueDisplayId = `dropdown-value-${id}`;\n\n // Determine the class for disabled state, view mode and evaluate mode\n let disabledClass;\n // Reset elementRefs before each render to avoid stale references\n this.elementRefs = [];\n\n if (disabled && correct !== undefined) {\n disabledClass = correct || showCorrectAnswer ? classes.disabledCorrect : classes.disabledIncorrect;\n }\n\n // Create distinct, visually hidden labels for each dropdown\n const incrementedId = parseInt(id, 10) + 1;\n const labelId = singleQuery ? 'Query-label' : `Query-label-${incrementedId}`;\n const labelText = singleQuery ? 'Query' : `Query ${incrementedId}`;\n\n // Changed from Select to Button for dropdown to enhance accessibility. This modification offers explicit control over aria attributes and focuses management, ensuring the dropdown is compliant with accessibility standards. The use of Button and Menu components allows for better handling of keyboard interactions and provides accessible labels and menus, aligning with WCAG guidelines and improving usability for assistive technology users.\n let correctnessIcon = null;\n if (disabled && correct !== undefined) {\n correctnessIcon =\n correct || showCorrectAnswer ? (\n <Check className={classNames(classes.correctnessIndicatorIcon, classes.correctIcon)} />\n ) : (\n <Close className={classNames(classes.correctnessIndicatorIcon, classes.incorrectIcon)} />\n );\n }\n\n return (\n <>\n <div\n ref={this.hiddenRef}\n style={{ position: 'absolute', visibility: 'hidden', top: 0, left: 0 }}\n tabIndex={-1}\n aria-hidden=\"true\"\n >\n {(choices || []).map((c, index) => (\n <MenuItem\n key={index}\n classes={{ root: classes.menuRoot, selected: classes.selected }}\n tabIndex={-1}\n aria-hidden=\"true\"\n >\n <span className={classes.label} dangerouslySetInnerHTML={{ __html: c.label }} />\n </MenuItem>\n ))}\n </div>\n <InputLabel className={classes.srOnly} id={labelId} tabIndex={-1} aria-hidden=\"true\">\n {labelText}\n </InputLabel>\n <Button\n ref={this.buttonRef}\n style={{\n ...(this.state.menuWidth && { minWidth: `calc(${this.state.menuWidth}px + 8px)` }),\n borderWidth: open ? '2px' : '1px',\n transition: 'border-width 0.2s ease-in-out',\n }}\n aria-controls={open ? menuId : undefined}\n aria-haspopup=\"listbox\"\n aria-expanded={open ? 'true' : undefined}\n aria-activedescendant={this.state.highlightedOptionId}\n onClick={this.handleClick}\n classes={{\n root: classes.root,\n disabled: disabledClass,\n }}\n disabled={disabled}\n id={buttonId}\n role=\"combobox\"\n aria-label={`Select an option for ${labelText}`}\n aria-labelledby={valueDisplayId}\n >\n {correctnessIcon}\n <span\n id={valueDisplayId}\n ref={this.previewRef}\n className={classes.label}\n dangerouslySetInnerHTML={{\n __html: correctValue\n ? correctValue\n : open && this.state.previewValue\n ? this.getLabel(choices, this.state.previewValue)\n : this.getLabel(choices, value) || '',\n }}\n />\n {open ? <ArrowDropUpIcon /> : <ArrowDropDownIcon />}\n </Button>\n <Menu\n id={menuId}\n anchorEl={anchorEl}\n className={classes.selectMenu}\n keepMounted\n open={open}\n onClose={this.handleClose}\n getContentAnchorEl={null}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n PaperProps={this.state.menuWidth ? { style: { minWidth: this.state.menuWidth, padding: '4px' } } : undefined}\n MenuListProps={{\n 'aria-labelledby': buttonId,\n role: 'listbox',\n disablePadding: true,\n }}\n >\n {(choices || []).map((c, index) => {\n const optionId = `dropdown-option-${id}-${index}`;\n\n return (\n <MenuItem\n id={optionId}\n classes={{ root: classes.menuRoot, selected: classes.selected }}\n key={`${c.label}-${index}`}\n value={c.value}\n onClick={() => this.handleSelect(c.value, index)}\n role=\"option\"\n aria-selected={this.state.highlightedOptionId === optionId ? 'true' : undefined}\n onMouseOver={() => this.handleHover(index)}\n >\n <span\n ref={(ref) => (this.elementRefs[index] = ref)}\n className={classes.label}\n dangerouslySetInnerHTML={{ __html: c.label }}\n />\n <span\n className={classes.selectedIndicator}\n dangerouslySetInnerHTML={{ __html: c.value === value ? ' ✓' : '' }}\n />\n </MenuItem>\n );\n })}\n </Menu>\n </>\n );\n }\n}\n\nconst styles = () => ({\n root: {\n color: color.text(),\n border: `1px solid ${color.borderGray()}`,\n borderRadius: '4px',\n justifyContent: 'space-between',\n backgroundColor: color.background(),\n position: 'relative',\n height: '45px',\n width: 'fit-content',\n margin: '2px',\n textTransform: 'none',\n '& span': {\n paddingRight: '5px',\n },\n '& svg': {\n position: 'absolute',\n right: 0,\n top: 'calc(50% - 12px)',\n pointerEvents: 'none',\n color: color.text(),\n marginLeft: '5px',\n },\n '&:focus, &:focus-visible': {\n outline: `3px solid ${color.tertiary()}`,\n outlineOffset: '2px',\n borderWidth: '3px',\n },\n },\n disabledCorrect: {\n borderWidth: '2px',\n borderColor: color.correct(),\n color: `${color.text()} !important`,\n },\n disabledIncorrect: {\n borderWidth: '2px',\n borderColor: color.incorrectWithIcon(),\n color: `${color.text()} !important`,\n },\n selectMenu: {\n backgroundColor: color.background(),\n border: `1px solid ${color.correct()} !important`,\n '&:hover': {\n border: `1px solid ${color.text()} `,\n borderColor: 'initial',\n },\n '&:focus': {\n border: `1px solid ${color.text()}`,\n borderColor: 'initial',\n },\n // remove default padding on the inner list\n '& .MuiList-root': {\n padding: 0,\n },\n },\n selected: {\n color: `${color.text()} !important`,\n backgroundColor: `${color.background()} !important`,\n '&:hover': {\n color: color.text(),\n backgroundColor: `${color.dropdownBackground()} !important`,\n },\n },\n menuRoot: {\n color: color.text(),\n backgroundColor: color.background(),\n '&:focus, &:focus-visible': {\n outline: `3px solid ${color.tertiary()}`,\n outlineOffset: '-1px', // keeps it inside the item\n },\n '&:focus': {\n color: color.text(),\n backgroundColor: color.background(),\n },\n '&:hover': {\n color: color.text(),\n backgroundColor: color.dropdownBackground(),\n },\n boxSizing: 'border-box',\n padding: '25px',\n borderRadius: '4px',\n },\n label: {\n fontSize: 'max(1rem, 14px)',\n },\n selectedIndicator: {\n fontSize: 'max(1rem, 14px)',\n position: 'absolute',\n right: '10px',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n correctnessIndicatorIcon: {\n color: `${color.white()} !important`,\n position: 'absolute',\n top: '-8px !important',\n left: '-8px',\n marginLeft: '0 !important',\n borderRadius: '50%',\n fontSize: '16px',\n padding: '2px',\n },\n correctIcon: {\n backgroundColor: color.correct(),\n },\n incorrectIcon: {\n backgroundColor: color.incorrectWithIcon(),\n },\n});\n\nexport default withStyles(styles)(Dropdown);\n"],"file":"dropdown.js"}
|
package/lib/components/input.js
CHANGED
|
@@ -54,4 +54,4 @@ Input.propTypes = {
|
|
|
54
54
|
};
|
|
55
55
|
var _default = Input;
|
|
56
56
|
exports["default"] = _default;
|
|
57
|
-
//# sourceMappingURL=
|
|
57
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/input.jsx"],"names":["Input","disabled","correct","charactersLimit","id","isConstructedResponse","value","onChange","showCorrectAnswer","spellCheck","width","e","target","propTypes","PropTypes","string","func","bool","number"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG,SAARA,KAAQ,OAWR;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATJC,OASI,QATJA,OASI;AAAA,MARJC,eAQI,QARJA,eAQI;AAAA,MAPJC,EAOI,QAPJA,EAOI;AAAA,MANJC,qBAMI,QANJA,qBAMI;AAAA,MALJC,KAKI,QALJA,KAKI;AAAA,MAJJC,SAII,QAJJA,QAII;AAAA,MAHJC,iBAGI,QAHJA,iBAGI;AAAA,MAFJC,UAEI,QAFJA,UAEI;AAAA,MADJC,KACI,QADJA,KACI;AACJ,sBACE,gCAAC,wBAAD;AACE,IAAA,QAAQ,EAAET,QADZ;AAEE,IAAA,OAAO,EAAEO,iBAAiB,IAAIN,OAFhC;AAGE,IAAA,eAAe,EAAEC,eAHnB;AAIE,IAAA,OAAO,EAAC,UAJV;AAKE,IAAA,KAAK,EAAEG,KALT;AAME,IAAA,qBAAqB,EAAED,qBANzB;AAOE,IAAA,UAAU,EAAEI,UAPd;AAQE,IAAA,KAAK,EAAE,IART;AASE,IAAA,KAAK,EAAEC,KATT;AAUE,IAAA,QAAQ,EAAE,kBAACC,CAAD,EAAO;AACfJ,MAAAA,SAAQ,CAACH,EAAD,EAAKO,CAAC,CAACC,MAAF,CAASN,KAAd,CAAR;AACD;AAZH,IADF;AAgBD,CA5BD;;AA8BAN,KAAK,CAACa,SAAN,GAAkB;AAChBT,EAAAA,EAAE,EAAEU,sBAAUC,MADE;AAEhBT,EAAAA,KAAK,EAAEQ,sBAAUC,MAFD;AAGhBR,EAAAA,QAAQ,EAAEO,sBAAUE,IAHJ;AAIhBf,EAAAA,QAAQ,EAAEa,sBAAUG,IAJJ;AAKhBR,EAAAA,UAAU,EAAEK,sBAAUG,IALN;AAMhBf,EAAAA,OAAO,EAAEY,sBAAUG,IANH;AAOhBT,EAAAA,iBAAiB,EAAEM,sBAAUG,IAPb;AAQhBd,EAAAA,eAAe,EAAEW,sBAAUI,MARX;AAShBR,EAAAA,KAAK,EAAEI,sBAAUI,MATD;AAUhBb,EAAAA,qBAAqB,EAAES,sBAAUG;AAVjB,CAAlB;eAaejB,K","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectInput from './correct-input';\n\nconst Input = ({\n disabled,\n correct,\n charactersLimit,\n id,\n isConstructedResponse,\n value,\n onChange,\n showCorrectAnswer,\n spellCheck,\n width,\n}) => {\n return (\n <CorrectInput\n disabled={disabled}\n correct={showCorrectAnswer || correct}\n charactersLimit={charactersLimit}\n variant=\"outlined\"\n value={value}\n isConstructedResponse={isConstructedResponse}\n spellCheck={spellCheck}\n isBox={true}\n width={width}\n onChange={(e) => {\n onChange(id, e.target.value);\n }}\n />\n );\n};\n\nInput.propTypes = {\n id: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n spellCheck: PropTypes.bool,\n correct: PropTypes.bool,\n showCorrectAnswer: PropTypes.bool,\n charactersLimit: PropTypes.number,\n width: PropTypes.number,\n isConstructedResponse: PropTypes.bool,\n};\n\nexport default Input;\n"],"file":"input.js"}
|
|
@@ -17,7 +17,7 @@ var _classnames2 = _interopRequireDefault(require("classnames"));
|
|
|
17
17
|
|
|
18
18
|
var _renderUi = require("@pie-lib/render-ui");
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
21
21
|
|
|
22
22
|
var _withMask = require("./with-mask");
|
|
23
23
|
|
|
@@ -81,7 +81,7 @@ var MaskedInput = function MaskedInput(props) {
|
|
|
81
81
|
}
|
|
82
82
|
};
|
|
83
83
|
|
|
84
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
84
|
+
return /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
85
85
|
id: dataset.id,
|
|
86
86
|
key: "".concat(node.type, "-input-").concat(dataset.id),
|
|
87
87
|
disabled: showCorrectAnswer || disabled,
|
|
@@ -113,4 +113,4 @@ var MaskedInput = function MaskedInput(props) {
|
|
|
113
113
|
var _default = (0, _styles.withStyles)(styles)((0, _withMask.withMask)('input', MaskedInput));
|
|
114
114
|
|
|
115
115
|
exports["default"] = _default;
|
|
116
|
-
//# sourceMappingURL=
|
|
116
|
+
//# sourceMappingURL=constructed-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/constructed-response.jsx"],"names":["styles","editableHtmlCustom","display","verticalAlign","margin","borderRadius","border","color","black","correct","incorrect","MaskedInput","props","node","data","adjustedLimit","disabled","feedback","showCorrectAnswer","maxLength","spellCheck","classes","pluginProps","onChange","dataset","component","correctAnswer","choices","id","finalValue","label","width","feedbackStatus","isCorrect","isIncorrect","handleInputChange","newValue","updatedValue","handleKeyDown","event","key","keyCode","type","language","minWidth","noBorder","isHidden","characters"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\n\nimport { color } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { withMask } from './with-mask';\n\nconst styles = () => ({\n editableHtmlCustom: {\n display: 'inline-block',\n verticalAlign: 'middle',\n margin: '4px',\n borderRadius: '4px',\n border: `1px solid ${color.black()}`,\n },\n correct: {\n border: `1px solid ${color.correct()}`,\n },\n incorrect: {\n border: `1px solid ${color.incorrect()}`,\n },\n});\n\nconst MaskedInput = (props) => (node, data) => {\n const {\n adjustedLimit,\n disabled,\n feedback,\n showCorrectAnswer,\n maxLength,\n spellCheck,\n classes,\n pluginProps,\n onChange,\n } = props;\n const dataset = node.data?.dataset || {};\n\n if (dataset.component === 'input') {\n const correctAnswer = ((props.choices && dataset && props.choices[dataset.id]) || [])[0];\n const finalValue = showCorrectAnswer ? correctAnswer && correctAnswer.label : data[dataset.id] || '';\n const width = maxLength && maxLength[dataset.id];\n const feedbackStatus = feedback && feedback[dataset.id];\n const isCorrect = showCorrectAnswer || feedbackStatus === 'correct';\n const isIncorrect = !showCorrectAnswer && feedbackStatus === 'incorrect';\n\n const handleInputChange = (newValue) => {\n const updatedValue = {\n ...data,\n [dataset.id]: newValue,\n };\n onChange(updatedValue);\n };\n\n const handleKeyDown = (event) => {\n // the keyCode value for the Enter/Return key is 13\n if (event.key === 'Enter' || event.keyCode === 13) {\n return false;\n }\n };\n\n return (\n <EditableHtml\n id={dataset.id}\n key={`${node.type}-input-${dataset.id}`}\n disabled={showCorrectAnswer || disabled}\n disableUnderline\n onChange={handleInputChange}\n markup={finalValue || ''}\n charactersLimit={adjustedLimit ? width : 25}\n activePlugins={['languageCharacters']}\n pluginProps={pluginProps}\n languageCharactersProps={[{ language: 'spanish' }]}\n spellCheck={spellCheck}\n width={`calc(${width}em + 42px)`} // added 42px for left and right padding of editable-html\n onKeyDown={handleKeyDown}\n autoWidthToolbar\n toolbarOpts={{\n minWidth: 'auto',\n noBorder: true,\n isHidden: !!pluginProps?.characters?.disabled,\n }}\n className={classnames(classes.editableHtmlCustom, {\n [classes.correct]: isCorrect,\n [classes.incorrect]: isIncorrect,\n })}\n />\n );\n }\n};\n\nexport default withStyles(styles)(withMask('input', MaskedInput));\n"],"file":"constructed-response.js"}
|
package/lib/customizable.js
CHANGED
|
@@ -45,4 +45,4 @@ var _default = (0, _withMask.withMask)('input', function (props) {
|
|
|
45
45
|
});
|
|
46
46
|
|
|
47
47
|
exports["default"] = _default;
|
|
48
|
-
//# sourceMappingURL=
|
|
48
|
+
//# sourceMappingURL=customizable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/customizable.jsx"],"names":["props","node","data","onChange","dataset","component","customMarkMarkupComponent","id"],"mappings":";;;;;;;;;AAAA;;AAEA;;AADA;AAGA;eACe,wBAAS,OAAT,EAAkB,UAACA,KAAD;AAAA,SAAW,UAACC,IAAD,EAAOC,IAAP,EAAaC,QAAb,EAA0B;AACpE,QAAMC,OAAO,GAAGH,IAAI,CAACC,IAAL,GAAYD,IAAI,CAACC,IAAL,CAAUE,OAAV,IAAqB,EAAjC,GAAsC,EAAtD;;AACA,QAAIA,OAAO,CAACC,SAAR,KAAsB,OAA1B,EAAmC;AACjC;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA,aAAOL,KAAK,CAACM,yBAAN,CAAgCF,OAAO,CAACG,EAAxC,CAAP,CAViC,CAWjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AACF,GA7BgC;AAAA,CAAlB,C","sourcesContent":["import React from 'react';\n// import Input from './components/input';\nimport { withMask } from './with-mask';\n\n// eslint-disable-next-line react/display-name\nexport default withMask('input', (props) => (node, data, onChange) => {\n const dataset = node.data ? node.data.dataset || {} : {};\n if (dataset.component === 'input') {\n // eslint-disable-next-line react/prop-types\n // const { adjustedLimit, disabled, feedback, showCorrectAnswer, maxLength, spellCheck } = props;\n\n // the first answer is the correct one\n // eslint-disable-next-line react/prop-types\n // const correctAnswer = ((props.choices && dataset && props.choices[dataset.id]) || [])[0];\n // const finalValue = showCorrectAnswer ? correctAnswer && correctAnswer.label : data[dataset.id] || '';\n // const width = maxLength && maxLength[dataset.id];\n\n return props.customMarkMarkupComponent(dataset.id);\n // return (\n // <Input\n // key={`${node.type}-input-${dataset.id}`}\n // correct={feedback && feedback[dataset.id] && feedback[dataset.id] === 'correct'}\n // disabled={showCorrectAnswer || disabled}\n // value={finalValue}\n // id={dataset.id}\n // onChange={onChange}\n // showCorrectAnswer={showCorrectAnswer}\n // width={width}\n // charactersLimit={adjustedLimit ? width : 25}\n // isConstructedResponse={true}\n // spellCheck={spellCheck}\n // />\n // );\n }\n});\n"],"file":"customizable.js"}
|