diff --git a/dash_canvas/DashCanvas.py b/dash_canvas/DashCanvas.py index 3b1de03..102d2d4 100644 --- a/dash_canvas/DashCanvas.py +++ b/dash_canvas/DashCanvas.py @@ -13,9 +13,11 @@ class DashCanvas(Component): - image_content (string; default ''): Image data string, formatted as png or jpg data string. Can be generated by utils.io_utils.array_to_data_string. - zoom (number; default 1): Zoom factor -- width (number; default 500): Width of the canvas -- height (number; default 500): Height of the canvas -- scale (number; default 1): Scaling ratio between canvas width and image width +- width (number; default 0): Width of the canvas. The width of the parent element is used if width is +not passed. +- height (number; default 0): Height of the canvas. If height is not given and a background image +is passed, the height adapts to keep the aspect ratio of the +background image. - tool (string; default "pencil"): Selection of drawing tool, among ["pencil", "pan", "circle", "rectangle", "select", "line"]. - lineWidth (number; default 10): Width of drawing line (in pencil mode) @@ -32,12 +34,12 @@ class DashCanvas(Component): - hide_buttons (list of strings; optional): Names of buttons to hide. Names are "zoom", "pan", "line", "pencil", "rectangle", "undo", "select".""" @_explicitize_args - def __init__(self, id=Component.UNDEFINED, image_content=Component.UNDEFINED, zoom=Component.UNDEFINED, width=Component.UNDEFINED, height=Component.UNDEFINED, scale=Component.UNDEFINED, tool=Component.UNDEFINED, lineWidth=Component.UNDEFINED, lineColor=Component.UNDEFINED, goButtonTitle=Component.UNDEFINED, filename=Component.UNDEFINED, trigger=Component.UNDEFINED, json_data=Component.UNDEFINED, hide_buttons=Component.UNDEFINED, **kwargs): - self._prop_names = ['id', 'image_content', 'zoom', 'width', 'height', 'scale', 'tool', 'lineWidth', 'lineColor', 'goButtonTitle', 'filename', 'trigger', 'json_data', 'hide_buttons'] + def __init__(self, id=Component.UNDEFINED, image_content=Component.UNDEFINED, zoom=Component.UNDEFINED, width=Component.UNDEFINED, height=Component.UNDEFINED, tool=Component.UNDEFINED, lineWidth=Component.UNDEFINED, lineColor=Component.UNDEFINED, goButtonTitle=Component.UNDEFINED, filename=Component.UNDEFINED, trigger=Component.UNDEFINED, json_data=Component.UNDEFINED, hide_buttons=Component.UNDEFINED, **kwargs): + self._prop_names = ['id', 'image_content', 'zoom', 'width', 'height', 'tool', 'lineWidth', 'lineColor', 'goButtonTitle', 'filename', 'trigger', 'json_data', 'hide_buttons'] self._type = 'DashCanvas' self._namespace = 'dash_canvas' self._valid_wildcard_attributes = [] - self.available_properties = ['id', 'image_content', 'zoom', 'width', 'height', 'scale', 'tool', 'lineWidth', 'lineColor', 'goButtonTitle', 'filename', 'trigger', 'json_data', 'hide_buttons'] + self.available_properties = ['id', 'image_content', 'zoom', 'width', 'height', 'tool', 'lineWidth', 'lineColor', 'goButtonTitle', 'filename', 'trigger', 'json_data', 'hide_buttons'] self.available_wildcard_properties = [] _explicit_args = kwargs.pop('_explicit_args') diff --git a/dash_canvas/async~canvas.dev.js b/dash_canvas/async~canvas.dev.js index fa1aaa5..dc0fa2d 100644 --- a/dash_canvas/async~canvas.dev.js +++ b/dash_canvas/async~canvas.dev.js @@ -2727,7 +2727,7 @@ eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn th /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return DashCanvas; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_sketch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-sketch */ \"./node_modules/react-sketch/lib/index.js\");\n/* harmony import */ var react_sketch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_sketch__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var plotly_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! plotly-icons */ \"./node_modules/plotly-icons/lib/index.js\");\n/* harmony import */ var plotly_icons__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(plotly_icons__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_DashCanvas_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/DashCanvas.react */ \"./src/lib/components/DashCanvas.react.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\nvar styles = {\n button: {\n margin: '3px',\n padding: '0px',\n width: '50px',\n height: '50px',\n verticalAlign: 'middle'\n },\n textbutton: _defineProperty({\n verticalAlign: 'top',\n height: '50px',\n color: 'blue'\n }, \"verticalAlign\", 'middle')\n};\n/**\n * Canvas component for drawing on a background image and selecting\n * regions.\n */\n\nvar DashCanvas =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(DashCanvas, _Component);\n\n function DashCanvas(props) {\n var _this;\n\n _classCallCheck(this, DashCanvas);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(DashCanvas).call(this, props));\n _this.state = {\n height: 200\n };\n _this._save = _this._save.bind(_assertThisInitialized(_this));\n _this._undo = _this._undo.bind(_assertThisInitialized(_this));\n _this._zoom = _this._zoom.bind(_assertThisInitialized(_this));\n _this._zoom_factor = _this._zoom_factor.bind(_assertThisInitialized(_this));\n _this._unzoom = _this._unzoom.bind(_assertThisInitialized(_this));\n _this._pantool = _this._pantool.bind(_assertThisInitialized(_this));\n _this._penciltool = _this._penciltool.bind(_assertThisInitialized(_this));\n _this._linetool = _this._linetool.bind(_assertThisInitialized(_this));\n _this._selecttool = _this._selecttool.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DashCanvas, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var sketch = this._sketch;\n\n if (this.props.filename.length > 0 || this.props.image_content.length > 0) {\n var content = this.props.filename.length > 0 ? this.props.filename : this.props.image_content;\n var img = new Image();\n\n img.onload = function () {\n var new_height = _this2.state.height;\n var new_scale = 1;\n var height = img.height;\n var width = img.width;\n new_height = Math.round(height * sketch.props.width / width);\n new_scale = new_height / height;\n\n _this2.setState({\n height: new_height\n });\n\n sketch.clear();\n var opts = {\n left: 0,\n top: 0,\n scale: new_scale\n };\n sketch.addImg(content, opts);\n };\n\n img.src = content;\n } else {\n sketch._fc.setBackgroundColor(sketch.props.backgroundColor);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this3 = this;\n\n var sketch = this._sketch; // Typical usage (don't forget to compare props):\n\n if (this.props.image_content !== prevProps.image_content) {\n var img = new Image();\n var new_height = this.state.height;\n var new_scale = 1;\n\n img.onload = function () {\n var height = img.height;\n var width = img.width;\n new_height = Math.round(height * sketch.props.width / width);\n new_scale = new_height / height;\n\n _this3.setState({\n height: new_height\n });\n\n sketch.clear();\n var opts = {\n left: 0,\n top: 0,\n scale: new_scale\n };\n sketch.addImg(_this3.props.image_content, opts);\n };\n\n img.src = this.props.image_content;\n\n if (this.props.setProps) {\n var JSON_string = JSON.stringify(this._sketch.toJSON());\n this.props.setProps({\n json_data: JSON_string\n });\n }\n\n sketch._fc.setZoom(this.props.zoom);\n }\n\n ;\n }\n }, {\n key: \"_save\",\n value: function _save() {\n var JSON_string = JSON.stringify(this._sketch.toJSON());\n var toggle_value = this.props.trigger + 1;\n\n if (this.props.setProps) {\n this.props.setProps({\n json_data: JSON_string,\n trigger: toggle_value\n });\n }\n }\n }, {\n key: \"_undo\",\n value: function _undo() {\n this._sketch.undo();\n\n this.setState({\n canUndo: this._sketch.canUndo(),\n canRedo: this._sketch.canRedo()\n });\n }\n }, {\n key: \"_redo\",\n value: function _redo() {\n this._sketch.redo();\n\n console.log(this._sketch);\n this.setState({\n canUndo: this._sketch.canUndo(),\n canRedo: this._sketch.canRedo()\n });\n }\n }, {\n key: \"_zoom_factor\",\n value: function _zoom_factor(factor) {\n this._sketch.zoom(factor);\n\n var zoom_factor = this.props.zoom;\n this.props.setProps({\n zoom: factor * zoom_factor\n });\n }\n }, {\n key: \"_zoom\",\n value: function _zoom() {\n this._sketch.zoom(1.25);\n\n var zoom_factor = this.props.zoom;\n this.props.setProps({\n zoom: 1.25 * zoom_factor\n });\n }\n }, {\n key: \"_unzoom\",\n value: function _unzoom() {\n this._sketch.zoom(0.8);\n\n var zoom_factor = this.props.zoom;\n this.props.setProps({\n zoom: 0.8 * zoom_factor\n });\n }\n }, {\n key: \"_pantool\",\n value: function _pantool() {\n this.props.setProps({\n tool: \"pan\"\n });\n }\n }, {\n key: \"_penciltool\",\n value: function _penciltool() {\n this.props.setProps({\n tool: \"pencil\"\n });\n }\n }, {\n key: \"_linetool\",\n value: function _linetool() {\n this.props.setProps({\n tool: \"line\"\n });\n }\n }, {\n key: \"_rectangletool\",\n value: function _rectangletool() {\n this.props.setProps({\n tool: \"rectangle\"\n });\n }\n }, {\n key: \"_selecttool\",\n value: function _selecttool() {\n this.props.setProps({\n tool: \"select\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var toolsArray = {};\n toolsArray[\"pencil\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Pencil;\n toolsArray[\"pan\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Pan;\n toolsArray[\"line\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Line;\n toolsArray[\"circle\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Circle;\n toolsArray[\"select\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Select;\n toolsArray[\"rectangle\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Rectangle;\n var hide_buttons = this.props.hide_buttons;\n var show_line = !hide_buttons.includes(\"line\");\n var show_pan = !hide_buttons.includes(\"pan\");\n var show_zoom = !hide_buttons.includes(\"zoom\");\n var show_pencil = !hide_buttons.includes(\"pencil\");\n var show_undo = !hide_buttons.includes(\"undo\");\n var show_select = !hide_buttons.includes(\"select\");\n var show_rectangle = !hide_buttons.includes(\"rectangle\");\n var width_defined = this.props.width > 0;\n var width = width_defined ? this.props.width : null;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: this.props.className\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"SketchField\"], {\n name: \"sketch\",\n ref: function ref(c) {\n return _this4._sketch = c;\n },\n tool: toolsArray[this.props.tool.toLowerCase()],\n lineColor: this.props.lineColor,\n width: width,\n height: this.state.height,\n forceValue: true,\n backgroundColor: \"#ccddff\",\n lineWidth: this.props.lineWidth\n }), show_zoom && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Zoom in\",\n onClick: function onClick(e) {\n return _this4._zoom();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"ZoomPlusIcon\"], null)), show_zoom && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Zoom out\",\n onClick: function onClick(e) {\n return _this4._unzoom();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"ZoomMinusIcon\"], null)), show_pencil && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Pencil tool\",\n onClick: function onClick(e) {\n return _this4._penciltool();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"EditIcon\"], null)), show_line && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Line tool\",\n onClick: function onClick(e) {\n return _this4._linetool();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"PlotLineIcon\"], null)), show_rectangle && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Rectangle tool\",\n onClick: function onClick(e) {\n return _this4._rectangletool();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"SquareIcon\"], null)), show_pan && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Pan\",\n onClick: function onClick(e) {\n return _this4._pantool();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"PanIcon\"], null)), show_undo && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Undo\",\n onClick: function onClick(e) {\n return _this4._undo();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"ArrowLeftIcon\"], null)), show_undo && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Redo\",\n onClick: function onClick(e) {\n return _this4._redo();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"ArrowRightIcon\"], null)), show_select && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Select\",\n onClick: function onClick(e) {\n return _this4._selecttool();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"TagOutlineIcon\"], null)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.textbutton,\n title: \"Save\",\n onClick: function onClick(e) {\n return _this4._save();\n }\n }, this.props.goButtonTitle));\n }\n }]);\n\n return DashCanvas;\n}(react__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\n\nDashCanvas.defaultProps = _components_DashCanvas_react__WEBPACK_IMPORTED_MODULE_3__[\"defaultProps\"];\nDashCanvas.propTypes = _components_DashCanvas_react__WEBPACK_IMPORTED_MODULE_3__[\"propTypes\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9kYXNoX2NhbnZhcy8uL3NyYy9saWIvZnJhZ21lbnRzL0Rhc2hDYW52YXMucmVhY3QuanM/YWMwMiJdLCJuYW1lcyI6WyJzdHlsZXMiLCJidXR0b24iLCJtYXJnaW4iLCJwYWRkaW5nIiwid2lkdGgiLCJoZWlnaHQiLCJ2ZXJ0aWNhbEFsaWduIiwidGV4dGJ1dHRvbiIsImNvbG9yIiwiRGFzaENhbnZhcyIsInByb3BzIiwic3RhdGUiLCJfc2F2ZSIsImJpbmQiLCJfdW5kbyIsIl96b29tIiwiX3pvb21fZmFjdG9yIiwiX3Vuem9vbSIsIl9wYW50b29sIiwiX3BlbmNpbHRvb2wiLCJfbGluZXRvb2wiLCJfc2VsZWN0dG9vbCIsInNrZXRjaCIsIl9za2V0Y2giLCJmaWxlbmFtZSIsImxlbmd0aCIsImltYWdlX2NvbnRlbnQiLCJjb250ZW50IiwiaW1nIiwiSW1hZ2UiLCJvbmxvYWQiLCJuZXdfaGVpZ2h0IiwibmV3X3NjYWxlIiwiTWF0aCIsInJvdW5kIiwic2V0U3RhdGUiLCJjbGVhciIsIm9wdHMiLCJsZWZ0IiwidG9wIiwic2NhbGUiLCJhZGRJbWciLCJzcmMiLCJfZmMiLCJzZXRCYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwcmV2UHJvcHMiLCJzZXRQcm9wcyIsIkpTT05fc3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsInRvSlNPTiIsImpzb25fZGF0YSIsInNldFpvb20iLCJ6b29tIiwidG9nZ2xlX3ZhbHVlIiwidHJpZ2dlciIsInVuZG8iLCJjYW5VbmRvIiwiY2FuUmVkbyIsInJlZG8iLCJjb25zb2xlIiwibG9nIiwiZmFjdG9yIiwiem9vbV9mYWN0b3IiLCJ0b29sIiwidG9vbHNBcnJheSIsIlRvb2xzIiwiUGVuY2lsIiwiUGFuIiwiTGluZSIsIkNpcmNsZSIsIlNlbGVjdCIsIlJlY3RhbmdsZSIsImhpZGVfYnV0dG9ucyIsInNob3dfbGluZSIsImluY2x1ZGVzIiwic2hvd19wYW4iLCJzaG93X3pvb20iLCJzaG93X3BlbmNpbCIsInNob3dfdW5kbyIsInNob3dfc2VsZWN0Iiwic2hvd19yZWN0YW5nbGUiLCJ3aWR0aF9kZWZpbmVkIiwiY2xhc3NOYW1lIiwiYyIsInRvTG93ZXJDYXNlIiwibGluZUNvbG9yIiwibGluZVdpZHRoIiwiZSIsIl9yZWN0YW5nbGV0b29sIiwiX3JlZG8iLCJnb0J1dHRvblRpdGxlIiwiQ29tcG9uZW50IiwiZGVmYXVsdFByb3BzIiwicHJvcFR5cGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQU1BO0FBRUEsSUFBTUEsTUFBTSxHQUFHO0FBQ2RDLFFBQU0sRUFBRTtBQUNQQyxVQUFNLEVBQUUsS0FERDtBQUVQQyxXQUFPLEVBQUUsS0FGRjtBQUdQQyxTQUFLLEVBQUUsTUFIQTtBQUlQQyxVQUFNLEVBQUUsTUFKRDtBQUtQQyxpQkFBYSxFQUFFO0FBTFIsR0FETTtBQVNkQyxZQUFVO0FBQ1RELGlCQUFhLEVBQUUsS0FETjtBQUVURCxVQUFNLEVBQUUsTUFGQztBQUdURyxTQUFLLEVBQUU7QUFIRSxzQkFJTSxRQUpOO0FBVEksQ0FBZjtBQWlCQTs7Ozs7SUFJcUJDLFU7Ozs7O0FBQ3BCLHNCQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7O0FBQ2xCLG9GQUFNQSxLQUFOO0FBQ0EsVUFBS0MsS0FBTCxHQUFhO0FBQ1pOLFlBQU0sRUFBRTtBQURJLEtBQWI7QUFHQSxVQUFLTyxLQUFMLEdBQWEsTUFBS0EsS0FBTCxDQUFXQyxJQUFYLCtCQUFiO0FBQ0EsVUFBS0MsS0FBTCxHQUFhLE1BQUtBLEtBQUwsQ0FBV0QsSUFBWCwrQkFBYjtBQUNBLFVBQUtFLEtBQUwsR0FBYSxNQUFLQSxLQUFMLENBQVdGLElBQVgsK0JBQWI7QUFDQSxVQUFLRyxZQUFMLEdBQW9CLE1BQUtBLFlBQUwsQ0FBa0JILElBQWxCLCtCQUFwQjtBQUNBLFVBQUtJLE9BQUwsR0FBZSxNQUFLQSxPQUFMLENBQWFKLElBQWIsK0JBQWY7QUFDQSxVQUFLSyxR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SyxFQUFFaEYsTUFBTSxDQUFDQyxNQUF0QjtBQUNDLGFBQUssRUFBQyxNQURQO0FBRUMsZUFBTyxFQUFFLGlCQUFDd0YsQ0FBRDtBQUFBLGlCQUFPLE1BQUksQ0FBQzNFLEtBQUwsRUFBUDtBQUFBO0FBRlYsU0FHQywyREFBQywwREFBRCxPQUhELENBckRGLEVBMkRFa0UsU0FBUyxJQUNUO0FBQVEsYUFBSyxFQUFFaEYsTUFBTSxDQUFDQyxNQUF0QjtBQUNDLGFBQUssRUFBQyxNQURQO0FBRUMsZUFBTyxFQUFFLGlCQUFDd0YsQ0FBRDtBQUFBLGlCQUFPLE1BQUksQ0FBQ0UsS0FBTCxFQUFQO0FBQUE7QUFGVixTQUdDLDJEQUFDLDJEQUFELE9BSEQsQ0E1REYsRUFrRUVWLFdBQVcsSUFDWDtBQUFRLGFBQUssRUFBRWpGLE1BQU0sQ0FBQ0MsTUFBdEI7QUFDQyxhQUFLLEVBQUMsUUFEUDtBQUVDLGVBQU8sRUFBRSxpQkFBQ3dGLENBQUQ7QUFBQSxpQkFBTyxNQUFJLENBQUNwRSxXQUFMLEVBQVA7QUFBQTtBQUZWLFNBR0MsMkRBQUMsMkRBQUQsT0FIRCxDQW5FRixFQTBFQztBQUFRLGFBQUssRUFBRXJCLE1BQU0sQ0FBQ08sVUFBdEI7QUFDQyxhQUFLLEVBQUMsTUFEUDtBQUVDLGVBQU8sRUFBRSxpQkFBQ2tGLENBQUQ7QUFBQSxpQkFBTyxNQUFJLENBQUM3RSxLQUFMLEVBQVA7QUFBQTtBQUZWLFNBR0UsS0FBS0YsS0FBTCxDQUFXa0YsYUFIYixDQTFFRCxDQUREO0FBb0ZBOzs7O0VBalFzQ0MsK0M7OztBQW9ReENwRixVQUFVLENBQUNxRixZQUFYLEdBQTBCQSx5RUFBMUI7QUFDQXJGLFVBQVUsQ0FBQ3NGLFNBQVgsR0FBdUJBLHNFQUF2QiIsImZpbGUiOiIuL3NyYy9saWIvZnJhZ21lbnRzL0Rhc2hDYW52YXMucmVhY3QuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgU2tldGNoRmllbGQsIFRvb2xzIH0gZnJvbSAncmVhY3Qtc2tldGNoJztcbmltcG9ydCB7XG5cdFpvb21NaW51c0ljb24sIFpvb21QbHVzSWNvbiwgRWRpdEljb24sIFBhbkljb24sXG5cdEFycm93TGVmdEljb24sIEFycm93UmlnaHRJY29uLCBQbG90TGluZUljb24sIFNxdWFyZUljb24sIFRhZ091dGxpbmVJY29uXG59XG5cdGZyb20gJ3Bsb3RseS1pY29ucyc7XG5cbmltcG9ydCB7IHByb3BUeXBlcywgZGVmYXVsdFByb3BzIH0gZnJvbSAnLi4vY29tcG9uZW50cy9EYXNoQ2FudmFzLnJlYWN0JztcblxuY29uc3Qgc3R5bGVzID0ge1xuXHRidXR0b246IHtcblx0XHRtYXJnaW46ICczcHgnLFxuXHRcdHBhZGRpbmc6ICcwcHgnLFxuXHRcdHdpZHRoOiAnNTBweCcsXG5cdFx0aGVpZ2h0OiAnNTBweCcsXG5cdFx0dmVydGljYWxBbGlnbjogJ21pZGRsZScsXG5cdH0sXG5cblx0dGV4dGJ1dHRvbjoge1xuXHRcdHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuXHRcdGhlaWdodDogJzUwcHgnLFxuXHRcdGNvbG9yOiAnYmx1ZScsXG5cdFx0dmVydGljYWxBbGlnbjogJ21pZGRsZScsXG5cdH1cbn07XG5cbi8qKlxuICogQ2FudmFzIGNvbXBvbmVudCBmb3IgZHJhd2luZyBvbiBhIGJhY2tncm91bmQgaW1hZ2UgYW5kIHNlbGVjdGluZ1xuICogcmVnaW9ucy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGFzaENhbnZhcyBleHRlbmRzIENvbXBvbmVudCB7XG5cdGNvbnN0cnVjdG9yKHByb3BzKSB7XG5cdFx0c3VwZXIocHJvcHMpO1xuXHRcdHRoaXMuc3RhdGUgPSB7XG5cdFx0XHRoZWlnaHQ6IDIwMFxuXHRcdH07XG5cdFx0dGhpcy5fc2F2ZSA9IHRoaXMuX3NhdmUuYmluZCh0aGlzKTtcblx0XHR0aGlzLl91bmRvID0gdGhpcy5fdW5kby5iaW5kKHRoaXMpO1xuXHRcdHRoaXMuX3pvb20gPSB0aGlzLl96b29tLmJpbmQodGhpcyk7XG5cdFx0dGhpcy5fem9vbV9mYWN0b3IgPSB0aGlzLl96b29tX2ZhY3Rvci5iaW5kKHRoaXMpO1xuXHRcdHRoaXMuX3Vuem9vbSA9IHRoaXMuX3Vuem9vbS5iaW5kKHRoaXMpO1xuXHRcdHRoaXMuX3BhbnRvb2wgPSB0aGlzLl9wYW50b29sLmJpbmQodGhpcyk7XG5cdFx0dGhpcy5fcGVuY2lsdG9vbCA9IHRoaXMuX3BlbmNpbHRvb2wuYmluZCh0aGlzKTtcblx0XHR0aGlzLl9saW5ldG9vbCA9IHRoaXMuX2xpbmV0b29sLmJpbmQodGhpcyk7XG5cdFx0dGhpcy5fc2VsZWN0dG9vbCA9IHRoaXMuX3NlbGVjdHRvb2wuYmluZCh0aGlzKTtcblx0fVxuXG5cblx0Y29tcG9uZW50RGlkTW91bnQoKSB7XG5cdFx0bGV0IHNrZXRjaCA9IHRoaXMuX3NrZXRjaDtcblx0XHRpZiAodGhpcy5wcm9wcy5maWxlbmFtZS5sZW5ndGggPiAwIHx8XG5cdFx0XHR0aGlzLnByb3BzLmltYWdlX2NvbnRlbnQubGVuZ3RoID4gMCkge1xuXHRcdFx0dmFyIGNvbnRlbnQgPSAodGhpcy5wcm9wcy5maWxlbmFtZS5sZW5ndGggPiAwKSA/IHRoaXMucHJvcHMuZmlsZW5hbWUgOlxuXHRcdFx0XHR0aGlzLnByb3BzLmltYWdlX2NvbnRlbnQ7XG5cdFx0XHR2YXIgaW1nID0gbmV3IEltYWdlKCk7XG5cdFx0XHRpbWcub25sb2FkID0gKCkgPT4ge1xuXHRcdFx0XHR2YXIgbmV3X2hlaWdodCA9IHRoaXMuc3RhdGUuaGVpZ2h0O1xuXHRcdFx0XHR2YXIgbmV3X3NjYWxlID0gMTtcblx0XHRcdFx0dmFyIGhlaWdodCA9IGltZy5oZWlnaHQ7XG5cdFx0XHRcdHZhciB3aWR0aCA9IGltZy53aWR0aDtcblx0XHRcdFx0bmV3X2hlaWdodCA9IE1hdGgucm91bmQoaGVpZ2h0ICogc2tldGNoLnByb3BzLndpZHRoIC8gd2lkdGgpO1xuXHRcdFx0XHRuZXdfc2NhbGUgPSBuZXdfaGVpZ2h0IC8gaGVpZ2h0O1xuXHRcdFx0XHR0aGlzLnNldFN0YXRlKHsgaGVpZ2h0OiBuZXdfaGVpZ2h0IH0pO1xuXHRcdFx0XHRza2V0Y2guY2xlYXIoKTtcblx0XHRcdFx0bGV0IG9wdHMgPSB7XG5cdFx0XHRcdFx0bGVmdDogMCxcblx0XHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdFx0c2NhbGU6IG5ld19zY2FsZVxuXHRcdFx0XHR9XG5cdFx0XHRcdHNrZXRjaC5hZGRJbWcoY29udGVudCwgb3B0cyk7XG5cdFx0XHR9XG5cdFx0XHRpbWcuc3JjID0gY29udGVudDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2tldGNoLl9mYy5zZXRCYWNrZ3JvdW5kQ29sb3Ioc2tldGNoLnByb3BzLmJhY2tncm91bmRDb2xvcik7XG5cdFx0fVxuXHR9XG5cblxuXHRjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG5cdFx0bGV0IHNrZXRjaCA9IHRoaXMuX3NrZXRjaDtcblx0XHQvLyBUeXBpY2FsIHVzYWdlIChkb24ndCBmb3JnZXQgdG8gY29tcGFyZSBwcm9wcyk6XG5cdFx0aWYgKFxuXHRcdFx0KHRoaXMucHJvcHMuaW1hZ2VfY29udGVudCAhPT0gcHJldlByb3BzLmltYWdlX2NvbnRlbnQpKSB7XG5cdFx0XHR2YXIgaW1nID0gbmV3IEltYWdlKCk7XG5cdFx0XHR2YXIgbmV3X2hlaWdodCA9IHRoaXMuc3RhdGUuaGVpZ2h0O1xuXHRcdFx0dmFyIG5ld19zY2FsZSA9IDE7XG5cdFx0XHRpbWcub25sb2FkID0gKCkgPT4ge1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gaW1nLmhlaWdodDtcblx0XHRcdFx0dmFyIHdpZHRoID0gaW1nLndpZHRoO1xuXHRcdFx0XHRuZXdfaGVpZ2h0ID0gTWF0aC5yb3VuZChoZWlnaHQgKiBza2V0Y2gucHJvcHMud2lkdGggLyB3aWR0aCk7XG5cdFx0XHRcdG5ld19zY2FsZSA9IG5ld19oZWlnaHQgLyBoZWlnaHQ7XG5cdFx0XHRcdHRoaXMuc2V0U3RhdGUoeyBoZWlnaHQ6IG5ld19oZWlnaHQgfSk7XG5cdFx0XHRcdHNrZXRjaC5jbGVhcigpO1xuXHRcdFx0XHRsZXQgb3B0cyA9IHtcblx0XHRcdFx0XHRsZWZ0OiAwLFxuXHRcdFx0XHRcdHRvcDogMCxcblx0XHRcdFx0XHRzY2FsZTogbmV3X3NjYWxlXG5cdFx0XHRcdH1cblx0XHRcdFx0c2tldGNoLmFkZEltZyh0aGlzLnByb3BzLmltYWdlX2NvbnRlbnQsIG9wdHMpO1xuXHRcdFx0fVxuXHRcdFx0aW1nLnNyYyA9IHRoaXMucHJvcHMuaW1hZ2VfY29udGVudDtcblx0XHRcdGlmICh0aGlzLnByb3BzLnNldFByb3BzKSB7XG5cdFx0XHRcdGxldCBKU09OX3N0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuX3NrZXRjaC50b0pTT04oKSk7XG5cdFx0XHRcdHRoaXMucHJvcHMuc2V0UHJvcHMoeyBqc29uX2RhdGE6IEpTT05fc3RyaW5nIH0pO1xuXHRcdFx0fVxuXG5cdFx0XHRza2V0Y2guX2ZjLnNldFpvb20odGhpcy5wcm9wcy56b29tKTtcblx0XHR9O1xuXHR9O1xuXG5cblx0X3NhdmUoKSB7XG5cdFx0bGV0IEpTT05fc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5fc2tldGNoLnRvSlNPTigpKTtcblx0XHRsZXQgdG9nZ2xlX3ZhbHVlID0gdGhpcy5wcm9wcy50cmlnZ2VyICsgMVxuXHRcdGlmICh0aGlzLnByb3BzLnNldFByb3BzKSB7XG5cdFx0XHR0aGlzLnByb3BzLnNldFByb3BzKHsganNvbl9kYXRhOiBKU09OX3N0cmluZywgdHJpZ2dlcjogdG9nZ2xlX3ZhbHVlIH0pO1xuXHRcdH1cblx0fTtcblxuXG5cdF91bmRvKCkge1xuXHRcdHRoaXMuX3NrZXRjaC51bmRvKCk7XG5cdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRjYW5VbmRvOiB0aGlzLl9za2V0Y2guY2FuVW5kbygpLFxuXHRcdFx0Y2FuUmVkbzogdGhpcy5fc2tldGNoLmNhblJlZG8oKVxuXHRcdH0pXG5cdH07XG5cdF9yZWRvKCkge1xuXHRcdHRoaXMuX3NrZXRjaC5yZWRvKCk7XG5cdFx0Y29uc29sZS5sb2codGhpcy5fc2tldGNoKTtcblx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdGNhblVuZG86IHRoaXMuX3NrZXRjaC5jYW5VbmRvKCksXG5cdFx0XHRjYW5SZWRvOiB0aGlzLl9za2V0Y2guY2FuUmVkbygpXG5cdFx0fSlcblx0fTtcblxuXHRfem9vbV9mYWN0b3IoZmFjdG9yKSB7XG5cdFx0dGhpcy5fc2tldGNoLnpvb20oZmFjdG9yKTtcblx0XHRsZXQgem9vbV9mYWN0b3IgPSB0aGlzLnByb3BzLnpvb207XG5cdFx0dGhpcy5wcm9wcy5zZXRQcm9wcyh7IHpvb206IGZhY3RvciAqIHpvb21fZmFjdG9yIH0pXG5cdH07XG5cblxuXHRfem9vbSgpIHtcblx0XHR0aGlzLl9za2V0Y2guem9vbSgxLjI1KTtcblx0XHRsZXQgem9vbV9mYWN0b3IgPSB0aGlzLnByb3BzLnpvb207XG5cdFx0dGhpcy5wcm9wcy5zZXRQcm9wcyh7IHpvb206IDEuMjUgKiB6b29tX2ZhY3RvciB9KVxuXHR9O1xuXG5cblx0X3Vuem9vbSgpIHtcblx0XHR0aGlzLl9za2V0Y2guem9vbSgwLjgpO1xuXHRcdGxldCB6b29tX2ZhY3RvciA9IHRoaXMucHJvcHMuem9vbTtcblx0XHR0aGlzLnByb3BzLnNldFByb3BzKHsgem9vbTogMC44ICogem9vbV9mYWN0b3IgfSk7XG5cdH07XG5cblxuXHRfcGFudG9vbCgpIHtcblx0XHR0aGlzLnByb3BzLnNldFByb3BzKHsgdG9vbDogXCJwYW5cIiB9KTtcblx0fTtcblxuXG5cdF9wZW5jaWx0b29sKCkge1xuXHRcdHRoaXMucHJvcHMuc2V0UHJvcHMoeyB0b29sOiBcInBlbmNpbFwiIH0pO1xuXHR9O1xuXG5cblx0X2xpbmV0b29sKCkge1xuXHRcdHRoaXMucHJvcHMuc2V0UHJvcHMoeyB0b29sOiBcImxpbmVcIiB9KTtcblx0fTtcblxuXG5cdF9yZWN0YW5nbGV0b29sKCkge1xuXHRcdHRoaXMucHJvcHMuc2V0UHJvcHMoeyB0b29sOiBcInJlY3RhbmdsZVwiIH0pO1xuXHR9O1xuXG5cblxuXHRfc2VsZWN0dG9vbCgpIHtcblx0XHR0aGlzLnByb3BzLnNldFByb3BzKHsgdG9vbDogXCJzZWxlY3RcIiB9KTtcblx0fTtcblxuXG5cblxuXHRyZW5kZXIoKSB7XG5cdFx0dmFyIHRvb2xzQXJyYXkgPSB7fTtcblx0XHR0b29sc0FycmF5W1wicGVuY2lsXCJdID0gVG9vbHMuUGVuY2lsO1xuXHRcdHRvb2xzQXJyYXlbXCJwYW5cIl0gPSBUb29scy5QYW47XG5cdFx0dG9vbHNBcnJheVtcImxpbmVcIl0gPSBUb29scy5MaW5lO1xuXHRcdHRvb2xzQXJyYXlbXCJjaXJjbGVcIl0gPSBUb29scy5DaXJjbGU7XG5cdFx0dG9vbHNBcnJheVtcInNlbGVjdFwiXSA9IFRvb2xzLlNlbGVjdDtcblx0XHR0b29sc0FycmF5W1wicmVjdGFuZ2xlXCJdID0gVG9vbHMuUmVjdGFuZ2xlO1xuXHRcdGNvbnN0IGhpZGVfYnV0dG9ucyA9IHRoaXMucHJvcHMuaGlkZV9idXR0b25zO1xuXHRcdGNvbnN0IHNob3dfbGluZSA9ICEoaGlkZV9idXR0b25zLmluY2x1ZGVzKFwibGluZVwiKSk7XG5cdFx0Y29uc3Qgc2hvd19wYW4gPSAhKGhpZGVfYnV0dG9ucy5pbmNsdWRlcyhcInBhblwiKSk7XG5cdFx0Y29uc3Qgc2hvd196b29tID0gIShoaWRlX2J1dHRvbnMuaW5jbHVkZXMoXCJ6b29tXCIpKTtcblx0XHRjb25zdCBzaG93X3BlbmNpbCA9ICEoaGlkZV9idXR0b25zLmluY2x1ZGVzKFwicGVuY2lsXCIpKTtcblx0XHRjb25zdCBzaG93X3VuZG8gPSAhKGhpZGVfYnV0dG9ucy5pbmNsdWRlcyhcInVuZG9cIikpO1xuXHRcdGNvbnN0IHNob3dfc2VsZWN0ID0gIShoaWRlX2J1dHRvbnMuaW5jbHVkZXMoXCJzZWxlY3RcIikpO1xuXHRcdGNvbnN0IHNob3dfcmVjdGFuZ2xlID0gIShoaWRlX2J1dHRvbnMuaW5jbHVkZXMoXCJyZWN0YW5nbGVcIikpO1xuXHRcdHZhciB3aWR0aF9kZWZpbmVkID0gdGhpcy5wcm9wcy53aWR0aCA+IDA7XG5cdFx0dmFyIHdpZHRoID0gd2lkdGhfZGVmaW5lZCA/IHRoaXMucHJvcHMud2lkdGggOiBudWxsO1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT17dGhpcy5wcm9wcy5jbGFzc05hbWV9PlxuXHRcdFx0XHQ8U2tldGNoRmllbGQgbmFtZT0nc2tldGNoJ1xuXHRcdFx0XHRcdHJlZj17KGMpID0+IHRoaXMuX3NrZXRjaCA9IGN9XG5cdFx0XHRcdFx0dG9vbD17dG9vbHNBcnJheVt0aGlzLnByb3BzLnRvb2wudG9Mb3dlckNhc2UoKV19XG5cdFx0XHRcdFx0bGluZUNvbG9yPXt0aGlzLnByb3BzLmxpbmVDb2xvcn1cblx0XHRcdFx0XHR3aWR0aD17d2lkdGh9XG5cdFx0XHRcdFx0aGVpZ2h0PXt0aGlzLnN0YXRlLmhlaWdodH1cblx0XHRcdFx0XHRmb3JjZVZhbHVlPXt0cnVlfVxuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcj0nI2NjZGRmZidcblx0XHRcdFx0XHRsaW5lV2lkdGg9e3RoaXMucHJvcHMubGluZVdpZHRofSAvPlxuXHRcdFx0XHR7c2hvd196b29tICYmXG5cdFx0XHRcdFx0PGJ1dHRvbiBzdHlsZT17c3R5bGVzLmJ1dHRvbn1cblx0XHRcdFx0XHRcdHRpdGxlPVwiWm9vbSBpblwiXG5cdFx0XHRcdFx0XHRvbkNsaWNrPXsoZSkgPT4gdGhpcy5fem9vbSgpfT5cblx0XHRcdFx0XHRcdDxab29tUGx1c0ljb24gLz5cblx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0fVxuXHRcdFx0XHR7c2hvd196b29tICYmXG5cdFx0XHRcdFx0PGJ1dHRvbiBzdHlsZT17c3R5bGVzLmJ1dHRvbn1cblx0XHRcdFx0XHRcdHRpdGxlPVwiWm9vbSBvdXRcIlxuXHRcdFx0XHRcdFx0b25DbGljaz17KGUpID0+IHRoaXMuX3Vuem9vbSgpfT5cblx0XHRcdFx0XHRcdDxab29tTWludXNJY29uIC8+XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdH1cblx0XHRcdFx0e3Nob3dfcGVuY2lsICYmXG5cdFx0XHRcdFx0PGJ1dHRvbiBzdHlsZT17c3R5bGVzLmJ1dHRvbn1cblx0XHRcdFx0XHRcdHRpdGxlPVwiUGVuY2lsIHRvb2xcIlxuXHRcdFx0XHRcdFx0b25DbGljaz17KGUpID0+IHRoaXMuX3BlbmNpbHRvb2woKX0+XG5cdFx0XHRcdFx0XHQ8RWRpdEljb24gLz5cblx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0fVxuXHRcdFx0XHR7c2hvd19saW5lICYmXG5cdFx0XHRcdFx0PGJ1dHRvbiBzdHlsZT17c3R5bGVzLmJ1dHRvbn1cblx0XHRcdFx0XHRcdHRpdGxlPVwiTGluZSB0b29sXCJcblx0XHRcdFx0XHRcdG9uQ2xpY2s9eyhlKSA9PiB0aGlzLl9saW5ldG9vbCgpfT5cblx0XHRcdFx0XHRcdDxQbG90TGluZUljb24gLz5cblx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0fVxuXHRcdFx0XHR7c2hvd19yZWN0YW5nbGUgJiZcblx0XHRcdFx0XHQ8YnV0dG9uIHN0eWxlPXtzdHlsZXMuYnV0dG9ufVxuXHRcdFx0XHRcdFx0dGl0bGU9XCJSZWN0YW5nbGUgdG9vbFwiXG5cdFx0XHRcdFx0XHRvbkNsaWNrPXsoZSkgPT4gdGhpcy5fcmVjdGFuZ2xldG9vbCgpfT5cblx0XHRcdFx0XHRcdDxTcXVhcmVJY29uIC8+XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdH1cblx0XHRcdFx0e3Nob3dfcGFuICYmXG5cdFx0XHRcdFx0PGJ1dHRvbiBzdHlsZT17c3R5bGVzLmJ1dHRvbn1cblx0XHRcdFx0XHRcdHRpdGxlPVwiUGFuXCJcblx0XHRcdFx0XHRcdG9uQ2xpY2s9eyhlKSA9PiB0aGlzLl9wYW50b29sKCl9PlxuXHRcdFx0XHRcdFx0PFBhbkljb24gLz5cblx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0fVxuXHRcdFx0XHR7c2hvd191bmRvICYmXG5cdFx0XHRcdFx0PGJ1dHRvbiBzdHlsZT17c3R5bGVzLmJ1dHRvbn1cblx0XHRcdFx0XHRcdHRpdGxlPVwiVW5kb1wiXG5cdFx0XHRcdFx0XHRvbkNsaWNrPXsoZSkgPT4gdGhpcy5fdW5kbygpfT5cblx0XHRcdFx0XHRcdDxBcnJvd0xlZnRJY29uIC8+XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdH1cblx0XHRcdFx0e3Nob3dfdW5kbyAmJlxuXHRcdFx0XHRcdDxidXR0b24gc3R5bGU9e3N0eWxlcy5idXR0b259XG5cdFx0XHRcdFx0XHR0aXRsZT1cIlJlZG9cIlxuXHRcdFx0XHRcdFx0b25DbGljaz17KGUpID0+IHRoaXMuX3JlZG8oKX0+XG5cdFx0XHRcdFx0XHQ8QXJyb3dSaWdodEljb24gLz5cblx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0fVxuXHRcdFx0XHR7c2hvd19zZWxlY3QgJiZcblx0XHRcdFx0XHQ8YnV0dG9uIHN0eWxlPXtzdHlsZXMuYnV0dG9ufVxuXHRcdFx0XHRcdFx0dGl0bGU9XCJTZWxlY3RcIlxuXHRcdFx0XHRcdFx0b25DbGljaz17KGUpID0+IHRoaXMuX3NlbGVjdHRvb2woKX0+XG5cdFx0XHRcdFx0XHQ8VGFnT3V0bGluZUljb24gLz5cblx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdDxidXR0b24gc3R5bGU9e3N0eWxlcy50ZXh0YnV0dG9ufVxuXHRcdFx0XHRcdHRpdGxlPVwiU2F2ZVwiXG5cdFx0XHRcdFx0b25DbGljaz17KGUpID0+IHRoaXMuX3NhdmUoKX0+XG5cdFx0XHRcdFx0e3RoaXMucHJvcHMuZ29CdXR0b25UaXRsZX1cblx0XHRcdFx0PC9idXR0b24+XG5cblx0XHRcdDwvZGl2PlxuXG5cdFx0KVxuXHR9XG59XG5cbkRhc2hDYW52YXMuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuRGFzaENhbnZhcy5wcm9wVHlwZXMgPSBwcm9wVHlwZXM7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/lib/fragments/DashCanvas.react.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return DashCanvas; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_sketch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-sketch */ \"./node_modules/react-sketch/lib/index.js\");\n/* harmony import */ var react_sketch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_sketch__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var plotly_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! plotly-icons */ \"./node_modules/plotly-icons/lib/index.js\");\n/* harmony import */ var plotly_icons__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(plotly_icons__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_DashCanvas_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/DashCanvas.react */ \"./src/lib/components/DashCanvas.react.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\nvar styles = {\n button: {\n margin: '3px',\n padding: '0px',\n width: '50px',\n height: '50px',\n verticalAlign: 'middle'\n },\n textbutton: _defineProperty({\n verticalAlign: 'top',\n height: '50px',\n color: 'blue'\n }, \"verticalAlign\", 'middle')\n};\n/**\n * Canvas component for drawing on a background image and selecting\n * regions.\n */\n\nvar DashCanvas =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(DashCanvas, _Component);\n\n function DashCanvas(props) {\n var _this;\n\n _classCallCheck(this, DashCanvas);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(DashCanvas).call(this, props));\n _this.state = {\n height: 200,\n width: 200\n };\n _this._save = _this._save.bind(_assertThisInitialized(_this));\n _this._undo = _this._undo.bind(_assertThisInitialized(_this));\n _this._zoom = _this._zoom.bind(_assertThisInitialized(_this));\n _this._zoom_factor = _this._zoom_factor.bind(_assertThisInitialized(_this));\n _this._unzoom = _this._unzoom.bind(_assertThisInitialized(_this));\n _this._pantool = _this._pantool.bind(_assertThisInitialized(_this));\n _this._penciltool = _this._penciltool.bind(_assertThisInitialized(_this));\n _this._linetool = _this._linetool.bind(_assertThisInitialized(_this));\n _this._selecttool = _this._selecttool.bind(_assertThisInitialized(_this));\n _this.canvasRef = react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef();\n return _this;\n }\n\n _createClass(DashCanvas, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var sketch = this._sketch;\n\n if (this.props.width == 0) {\n this.setState({\n width: this.canvasRef.current.clientWidth\n });\n } else {\n this.setState({\n width: this.props.width\n });\n } // Control resize - does not work at the moment\n\n\n window.addEventListener('resize', this._resize, false);\n\n if (this.props.filename.length > 0 || this.props.image_content.length > 0) {\n var content = this.props.filename.length > 0 ? this.props.filename : this.props.image_content;\n var img = new Image();\n\n img.onload = function () {\n var new_height = _this2.state.height;\n var new_scale = 1;\n var height = img.height;\n var width = img.width;\n new_height = Math.round(height * _this2.state.width / width);\n new_scale = new_height / height;\n\n _this2.setState({\n height: new_height\n });\n\n sketch.clear();\n var opts = {\n left: 0,\n top: 0,\n scale: new_scale\n };\n sketch.addImg(content, opts);\n };\n\n img.src = content;\n } else {\n sketch._fc.setBackgroundColor(sketch.props.backgroundColor);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this3 = this;\n\n var sketch = this._sketch; // Typical usage (don't forget to compare props):\n\n if (this.props.image_content !== prevProps.image_content) {\n var img = new Image();\n var new_height = this.state.height;\n var new_scale = 1;\n\n img.onload = function () {\n var height = img.height;\n var width = img.width;\n new_height = Math.round(height * sketch.state.width / width);\n new_scale = new_height / height;\n\n _this3.setState({\n height: new_height\n });\n\n sketch.clear();\n var opts = {\n left: 0,\n top: 0,\n scale: new_scale\n };\n sketch.addImg(_this3.props.image_content, opts);\n };\n\n img.src = this.props.image_content;\n\n if (this.props.setProps) {\n var JSON_string = JSON.stringify(this._sketch.toJSON());\n this.props.setProps({\n json_data: JSON_string\n });\n }\n\n sketch._fc.setZoom(this.props.zoom);\n }\n\n ;\n }\n }, {\n key: \"_save\",\n value: function _save() {\n var JSON_string = JSON.stringify(this._sketch.toJSON());\n var toggle_value = this.props.trigger + 1;\n\n if (this.props.setProps) {\n this.props.setProps({\n json_data: JSON_string,\n trigger: toggle_value\n });\n }\n }\n }, {\n key: \"_resize\",\n value: function _resize() {\n // not used yet\n this.setState({\n width: this.canvasRef.current.clientWidth\n });\n }\n }, {\n key: \"_undo\",\n value: function _undo() {\n this._sketch.undo();\n\n this.setState({\n canUndo: this._sketch.canUndo(),\n canRedo: this._sketch.canRedo()\n });\n }\n }, {\n key: \"_redo\",\n value: function _redo() {\n this._sketch.redo();\n\n this.setState({\n canUndo: this._sketch.canUndo(),\n canRedo: this._sketch.canRedo()\n });\n }\n }, {\n key: \"_zoom_factor\",\n value: function _zoom_factor(factor) {\n this._sketch.zoom(factor);\n\n var zoom_factor = this.props.zoom;\n this.props.setProps({\n zoom: factor * zoom_factor\n });\n }\n }, {\n key: \"_zoom\",\n value: function _zoom() {\n this._sketch.zoom(1.25);\n\n var zoom_factor = this.props.zoom;\n this.props.setProps({\n zoom: 1.25 * zoom_factor\n });\n }\n }, {\n key: \"_unzoom\",\n value: function _unzoom() {\n this._sketch.zoom(0.8);\n\n var zoom_factor = this.props.zoom;\n this.props.setProps({\n zoom: 0.8 * zoom_factor\n });\n }\n }, {\n key: \"_pantool\",\n value: function _pantool() {\n this.props.setProps({\n tool: \"pan\"\n });\n }\n }, {\n key: \"_penciltool\",\n value: function _penciltool() {\n this.props.setProps({\n tool: \"pencil\"\n });\n }\n }, {\n key: \"_linetool\",\n value: function _linetool() {\n this.props.setProps({\n tool: \"line\"\n });\n }\n }, {\n key: \"_rectangletool\",\n value: function _rectangletool() {\n this.props.setProps({\n tool: \"rectangle\"\n });\n }\n }, {\n key: \"_selecttool\",\n value: function _selecttool() {\n this.props.setProps({\n tool: \"select\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var toolsArray = {};\n toolsArray[\"pencil\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Pencil;\n toolsArray[\"pan\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Pan;\n toolsArray[\"line\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Line;\n toolsArray[\"circle\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Circle;\n toolsArray[\"select\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Select;\n toolsArray[\"rectangle\"] = react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"Tools\"].Rectangle;\n var hide_buttons = this.props.hide_buttons;\n var show_line = !hide_buttons.includes(\"line\");\n var show_pan = !hide_buttons.includes(\"pan\");\n var show_zoom = !hide_buttons.includes(\"zoom\");\n var show_pencil = !hide_buttons.includes(\"pencil\");\n var show_undo = !hide_buttons.includes(\"undo\");\n var show_select = !hide_buttons.includes(\"select\");\n var show_rectangle = !hide_buttons.includes(\"rectangle\");\n var width_defined = this.props.width > 0;\n var width = width_defined ? this.props.width : this.state.width;\n var height_defined = this.props.height > 0;\n var height = height_defined ? this.props.height : this.state.height;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: this.props.className,\n ref: this.canvasRef\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_sketch__WEBPACK_IMPORTED_MODULE_1__[\"SketchField\"], {\n name: \"sketch\",\n ref: function ref(c) {\n return _this4._sketch = c;\n },\n tool: toolsArray[this.props.tool.toLowerCase()],\n lineColor: this.props.lineColor,\n width: width,\n height: height,\n forceValue: true,\n backgroundColor: \"#ccddff\",\n lineWidth: this.props.lineWidth\n }), show_zoom && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Zoom in\",\n onClick: function onClick(e) {\n return _this4._zoom();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"ZoomPlusIcon\"], null)), show_zoom && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Zoom out\",\n onClick: function onClick(e) {\n return _this4._unzoom();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"ZoomMinusIcon\"], null)), show_pencil && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Pencil tool\",\n onClick: function onClick(e) {\n return _this4._penciltool();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"EditIcon\"], null)), show_line && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Line tool\",\n onClick: function onClick(e) {\n return _this4._linetool();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"PlotLineIcon\"], null)), show_rectangle && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Rectangle tool\",\n onClick: function onClick(e) {\n return _this4._rectangletool();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"SquareIcon\"], null)), show_pan && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Pan\",\n onClick: function onClick(e) {\n return _this4._pantool();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"PanIcon\"], null)), show_undo && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Undo\",\n onClick: function onClick(e) {\n return _this4._undo();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"ArrowLeftIcon\"], null)), show_undo && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Redo\",\n onClick: function onClick(e) {\n return _this4._redo();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"ArrowRightIcon\"], null)), show_select && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.button,\n title: \"Select\",\n onClick: function onClick(e) {\n return _this4._selecttool();\n }\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(plotly_icons__WEBPACK_IMPORTED_MODULE_2__[\"TagOutlineIcon\"], null)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n style: styles.textbutton,\n title: \"Save\",\n onClick: function onClick(e) {\n return _this4._save();\n }\n }, this.props.goButtonTitle));\n }\n }]);\n\n return DashCanvas;\n}(react__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\n\nDashCanvas.defaultProps = _components_DashCanvas_react__WEBPACK_IMPORTED_MODULE_3__[\"defaultProps\"];\nDashCanvas.propTypes = _components_DashCanvas_react__WEBPACK_IMPORTED_MODULE_3__[\"propTypes\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9kYXNoX2NhbnZhcy8uL3NyYy9saWIvZnJhZ21lbnRzL0Rhc2hDYW52YXMucmVhY3QuanM/YWMwMiJdLCJuYW1lcyI6WyJzdHlsZXMiLCJidXR0b24iLCJtYXJnaW4iLCJwYWRkaW5nIiwid2lkdGgiLCJoZWlnaHQiLCJ2ZXJ0aWNhbEFsaWduIiwidGV4dGJ1dHRvbiIsImNvbG9yIiwiRGFzaENhbnZhcyIsInByb3BzIiwic3RhdGUiLCJfc2F2ZSIsImJpbmQiLCJfdW5kbyIsIl96b29tIiwiX3pvb21fZmFjdG9yIiwiX3Vuem9vbSIsIl9wYW50b29sIiwiX3BlbmNpbHRvb2wiLCJfbGluZXRvb2wiLCJfc2VsZWN0dG9vbCIsImNhbnZhc1JlZiIsIlJlYWN0IiwiY3JlYXRlUmVmIiwic2tldGNoIiwiX3NrZXRjaCIsInNldFN0YXRlIiwiY3VycmVudCIsImNsaWVudFdpZHRoIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9yZXNpemUiLCJmaWxlbmFtZSIsImxlbmd0aCIsImltYWdlX2NvbnRlbnQiLCJjb250ZW50IiwiaW1nIiwiSW1hZ2UiLCJvbmxvYWQiLCJuZXdfaGVpZ2h0IiwibmV3X3NjYWxlIiwiTWF0aCIsInJvdW5kIiwiY2xlYXIiLCJvcHRzIiwibGVmdCIsInRvcCIsInNjYWxlIiwiYWRkSW1nIiwic3JjIiwiX2ZjIiwic2V0QmFja2dyb3VuZENvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwicHJldlByb3BzIiwic2V0UHJvcHMiLCJKU09OX3N0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b0pTT04iLCJqc29uX2RhdGEiLCJzZXRab29tIiwiem9vbSIsInRvZ2dsZV92YWx1ZSIsInRyaWdnZXIiLCJ1bmRvIiwiY2FuVW5kbyIsImNhblJlZG8iLCJyZWRvIiwiZmFjdG9yIiwiem9vbV9mYWN0b3IiLCJ0b29sIiwidG9vbHNBcnJheSIsIlRvb2xzIiwiUGVuY2lsIiwiUGFuIiwiTGluZSIsIkNpcmNsZSIsIlNlbGVjdCIsIlJlY3RhbmdsZSIsImhpZGVfYnV0dG9ucyIsInNob3dfbGluZSIsImluY2x1ZGVzIiwic2hvd19wYW4iLCJzaG93X3pvb20iLCJzaG93X3BlbmNpbCIsInNob3dfdW5kbyIsInNob3dfc2VsZWN0Iiwic2hvd19yZWN0YW5nbGUiLCJ3aWR0aF9kZWZpbmVkIiwiaGVpZ2h0X2RlZmluZWQiLCJjbGFzc05hbWUiLCJjIiwidG9Mb3dlckNhc2UiLCJsaW5lQ29sb3IiLCJsaW5lV2lkdGgiLCJlIiwiX3JlY3RhbmdsZXRvb2wiLCJfcmVkbyIsImdvQnV0dG9uVGl0bGUiLCJDb21wb25lbnQiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBTUE7QUFFQSxJQUFNQSxNQUFNLEdBQUc7QUFDZEMsUUFBTSxFQUFFO0FBQ1BDLFVBQU0sRUFBRSxLQUREO0FBRVBDLFdBQU8sRUFBRSxLQUZGO0FBR1BDLFNBQUssRUFBRSxNQUhBO0FBSVBDLFVBQU0sRUFBRSxNQUpEO0FBS1BDLGlCQUFhLEVBQUU7QUFMUixHQURNO0FBU2RDLFlBQVU7QUFDVEQsaUJBQWEsRUFBRSxLQUROO0FBRVRELFVBQU0sRUFBRSxNQUZDO0FBR1RHLFNBQUssRUFBRTtBQUhFLHNCQUlNLFFBSk47QUFUSSxDQUFmO0FBaUJBOzs7OztJQUlxQkMsVTs7Ozs7QUFDcEIsc0JBQVlDLEtBQVosRUFBbUI7QUFBQTs7QUFBQTs7QUFDbEIsb0ZBQU1BLEtBQU47QUFDQSxVQUFLQyxLQUFMLEdBQWE7QUFDWk4sWUFBTSxFQUFFLEdBREk7QUFFWkQsV0FBSyxFQUFFO0FBRkssS0FBYjtBQUlBLFVBQUtRLEtBQUwsR0FBYSxNQUFLQSxLQUFMLENBQVdDLElBQVgsK0JBQWI7QUFDQSxVQUFLQyxLQUFMLEdBQWEsTUFBS0EsS0FBTCxDQUFXRCxJQUFYLCtCQUFiO0FBQ0EsVUFBS0UsS0FBTCxHQUFhLE1BQUtBLEtBQUwsQ0FBV0YsSUFBWCwrQkFB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Q0MsYUFBSyxFQUFDLE1BRFA7QUFFQyxlQUFPLEVBQUUsaUJBQUMrRixDQUFEO0FBQUEsaUJBQU8sTUFBSSxDQUFDRSxLQUFMLEVBQVA7QUFBQTtBQUZWLFNBR0MsMkRBQUMsMkRBQUQsT0FIRCxDQTVERixFQWtFRVgsV0FBVyxJQUNYO0FBQVEsYUFBSyxFQUFFdkYsTUFBTSxDQUFDQyxNQUF0QjtBQUNDLGFBQUssRUFBQyxRQURQO0FBRUMsZUFBTyxFQUFFLGlCQUFDK0YsQ0FBRDtBQUFBLGlCQUFPLE1BQUksQ0FBQzNFLFdBQUwsRUFBUDtBQUFBO0FBRlYsU0FHQywyREFBQywyREFBRCxPQUhELENBbkVGLEVBMEVDO0FBQVEsYUFBSyxFQUFFckIsTUFBTSxDQUFDTyxVQUF0QjtBQUNDLGFBQUssRUFBQyxNQURQO0FBRUMsZUFBTyxFQUFFLGlCQUFDeUYsQ0FBRDtBQUFBLGlCQUFPLE1BQUksQ0FBQ3BGLEtBQUwsRUFBUDtBQUFBO0FBRlYsU0FHRSxLQUFLRixLQUFMLENBQVd5RixhQUhiLENBMUVELENBREQ7QUFvRkE7Ozs7RUFqUnNDQywrQzs7O0FBb1J4QzNGLFVBQVUsQ0FBQzRGLFlBQVgsR0FBMEJBLHlFQUExQjtBQUNBNUYsVUFBVSxDQUFDNkYsU0FBWCxHQUF1QkEsc0VBQXZCIiwiZmlsZSI6Ii4vc3JjL2xpYi9mcmFnbWVudHMvRGFzaENhbnZhcy5yZWFjdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTa2V0Y2hGaWVsZCwgVG9vbHMgfSBmcm9tICdyZWFjdC1za2V0Y2gnO1xuaW1wb3J0IHtcblx0Wm9vbU1pbnVzSWNvbiwgWm9vbVBsdXNJY29uLCBFZGl0SWNvbiwgUGFuSWNvbixcblx0QXJyb3dMZWZ0SWNvbiwgQXJyb3dSaWdodEljb24sIFBsb3RMaW5lSWNvbiwgU3F1YXJlSWNvbiwgVGFnT3V0bGluZUljb25cbn1cblx0ZnJvbSAncGxvdGx5LWljb25zJztcblxuaW1wb3J0IHsgcHJvcFR5cGVzLCBkZWZhdWx0UHJvcHMgfSBmcm9tICcuLi9jb21wb25lbnRzL0Rhc2hDYW52YXMucmVhY3QnO1xuXG5jb25zdCBzdHlsZXMgPSB7XG5cdGJ1dHRvbjoge1xuXHRcdG1hcmdpbjogJzNweCcsXG5cdFx0cGFkZGluZzogJzBweCcsXG5cdFx0d2lkdGg6ICc1MHB4Jyxcblx0XHRoZWlnaHQ6ICc1MHB4Jyxcblx0XHR2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcblx0fSxcblxuXHR0ZXh0YnV0dG9uOiB7XG5cdFx0dmVydGljYWxBbGlnbjogJ3RvcCcsXG5cdFx0aGVpZ2h0OiAnNTBweCcsXG5cdFx0Y29sb3I6ICdibHVlJyxcblx0XHR2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcblx0fVxufTtcblxuLyoqXG4gKiBDYW52YXMgY29tcG9uZW50IGZvciBkcmF3aW5nIG9uIGEgYmFja2dyb3VuZCBpbWFnZSBhbmQgc2VsZWN0aW5nXG4gKiByZWdpb25zLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYXNoQ2FudmFzIGV4dGVuZHMgQ29tcG9uZW50IHtcblx0Y29uc3RydWN0b3IocHJvcHMpIHtcblx0XHRzdXBlcihwcm9wcyk7XG5cdFx0dGhpcy5zdGF0ZSA9IHtcblx0XHRcdGhlaWdodDogMjAwLFxuXHRcdFx0d2lkdGg6IDIwMFxuXHRcdH07XG5cdFx0dGhpcy5fc2F2ZSA9IHRoaXMuX3NhdmUuYmluZCh0aGlzKTtcblx0XHR0aGlzLl91bmRvID0gdGhpcy5fdW5kby5iaW5kKHRoaXMpO1xuXHRcdHRoaXMuX3pvb20gPSB0aGlzLl96b29tLmJpbmQodGhpcyk7XG5cdFx0dGhpcy5fem9vbV9mYWN0b3IgPSB0aGlzLl96b29tX2ZhY3Rvci5iaW5kKHRoaXMpO1xuXHRcdHRoaXMuX3Vuem9vbSA9IHRoaXMuX3Vuem9vbS5iaW5kKHRoaXMpO1xuXHRcdHRoaXMuX3BhbnRvb2wgPSB0aGlzLl9wYW50b29sLmJpbmQodGhpcyk7XG5cdFx0dGhpcy5fcGVuY2lsdG9vbCA9IHRoaXMuX3BlbmNpbHRvb2wuYmluZCh0aGlzKTtcblx0XHR0aGlzLl9saW5ldG9vbCA9IHRoaXMuX2xpbmV0b29sLmJpbmQodGhpcyk7XG5cdFx0dGhpcy5fc2VsZWN0dG9vbCA9IHRoaXMuX3NlbGVjdHRvb2wuYmluZCh0aGlzKTtcblx0ICAgICB0aGlzLmNhbnZhc1JlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xuXHR9XG5cblxuXHRjb21wb25lbnREaWRNb3VudCgpIHtcblx0XHRsZXQgc2tldGNoID0gdGhpcy5fc2tldGNoO1xuXHRcdGlmICh0aGlzLnByb3BzLndpZHRoID09IDApIHtcblx0XHQgICAgdGhpcy5zZXRTdGF0ZSh7d2lkdGg6IHRoaXMuY2FudmFzUmVmLmN1cnJlbnQuY2xpZW50V2lkdGh9KTtcblx0XHR9IGVsc2V7XG5cdFx0ICAgIHRoaXMuc2V0U3RhdGUoe3dpZHRoOiB0aGlzLnByb3BzLndpZHRofSk7XG5cdFx0fVxuXG5cdFx0Ly8gQ29udHJvbCByZXNpemUgLSBkb2VzIG5vdCB3b3JrIGF0IHRoZSBtb21lbnRcblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fcmVzaXplLCBmYWxzZSk7XG5cdFx0XG5cdFx0aWYgKHRoaXMucHJvcHMuZmlsZW5hbWUubGVuZ3RoID4gMCB8fFxuXHRcdFx0dGhpcy5wcm9wcy5pbWFnZV9jb250ZW50Lmxlbmd0aCA+IDApIHtcblx0XHRcdHZhciBjb250ZW50ID0gKHRoaXMucHJvcHMuZmlsZW5hbWUubGVuZ3RoID4gMCkgPyB0aGlzLnByb3BzLmZpbGVuYW1lIDpcblx0XHRcdFx0dGhpcy5wcm9wcy5pbWFnZV9jb250ZW50O1xuXHRcdFx0dmFyIGltZyA9IG5ldyBJbWFnZSgpO1xuXHRcdFx0aW1nLm9ubG9hZCA9ICgpID0+IHtcblx0XHRcdFx0dmFyIG5ld19oZWlnaHQgPSB0aGlzLnN0YXRlLmhlaWdodDtcblx0XHRcdFx0dmFyIG5ld19zY2FsZSA9IDE7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSBpbWcuaGVpZ2h0O1xuXHRcdFx0XHR2YXIgd2lkdGggPSBpbWcud2lkdGg7XG5cdFx0XHRcdG5ld19oZWlnaHQgPSBNYXRoLnJvdW5kKGhlaWdodCAqIHRoaXMuc3RhdGUud2lkdGggLyB3aWR0aCk7XG5cdFx0XHRcdG5ld19zY2FsZSA9IG5ld19oZWlnaHQgLyBoZWlnaHQ7XG5cdFx0XHRcdHRoaXMuc2V0U3RhdGUoeyBoZWlnaHQ6IG5ld19oZWlnaHQgfSk7XG5cdFx0XHRcdHNrZXRjaC5jbGVhcigpO1xuXHRcdFx0XHRsZXQgb3B0cyA9IHtcblx0XHRcdFx0XHRsZWZ0OiAwLFxuXHRcdFx0XHRcdHRvcDogMCxcblx0XHRcdFx0XHRzY2FsZTogbmV3X3NjYWxlXG5cdFx0XHRcdH1cblx0XHRcdFx0c2tldGNoLmFkZEltZyhjb250ZW50LCBvcHRzKTtcblx0XHRcdH1cblx0XHRcdGltZy5zcmMgPSBjb250ZW50O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRza2V0Y2guX2ZjLnNldEJhY2tncm91bmRDb2xvcihza2V0Y2gucHJvcHMuYmFja2dyb3VuZENvbG9yKTtcblx0XHR9XG5cdH1cblxuXG5cdGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcblx0XHRsZXQgc2tldGNoID0gdGhpcy5fc2tldGNoO1xuXHRcdC8vIFR5cGljYWwgdXNhZ2UgKGRvbid0IGZvcmdldCB0byBjb21wYXJlIHByb3BzKTpcblx0XHRpZiAoXG5cdFx0XHQodGhpcy5wcm9wcy5pbWFnZV9jb250ZW50ICE9PSBwcmV2UHJvcHMuaW1hZ2VfY29udGVudCkpIHtcblx0XHRcdHZhciBpbWcgPSBuZXcgSW1hZ2UoKTtcblx0XHRcdHZhciBuZXdfaGVpZ2h0ID0gdGhpcy5zdGF0ZS5oZWlnaHQ7XG5cdFx0XHR2YXIgbmV3X3NjYWxlID0gMTtcblx0XHRcdGltZy5vbmxvYWQgPSAoKSA9PiB7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSBpbWcuaGVpZ2h0O1xuXHRcdFx0XHR2YXIgd2lkdGggPSBpbWcud2lkdGg7XG5cdFx0XHRcdG5ld19oZWlnaHQgPSBNYXRoLnJvdW5kKGhlaWdodCAqIHNrZXRjaC5zdGF0ZS53aWR0aCAvIHdpZHRoKTtcblx0XHRcdFx0bmV3X3NjYWxlID0gbmV3X2hlaWdodCAvIGhlaWdodDtcblx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh7IGhlaWdodDogbmV3X2hlaWdodCB9KTtcblx0XHRcdFx0c2tldGNoLmNsZWFyKCk7XG5cdFx0XHRcdGxldCBvcHRzID0ge1xuXHRcdFx0XHRcdGxlZnQ6IDAsXG5cdFx0XHRcdFx0dG9wOiAwLFxuXHRcdFx0XHRcdHNjYWxlOiBuZXdfc2NhbGVcblx0XHRcdFx0fVxuXHRcdFx0XHRza2V0Y2guYWRkSW1nKHRoaXMucHJvcHMuaW1hZ2VfY29udGVudCwgb3B0cyk7XG5cdFx0XHR9XG5cdFx0XHRpbWcuc3JjID0gdGhpcy5wcm9wcy5pbWFnZV9jb250ZW50O1xuXHRcdFx0aWYgKHRoaXMucHJvcHMuc2V0UHJvcHMpIHtcblx0XHRcdFx0bGV0IEpTT05fc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5fc2tldGNoLnRvSlNPTigpKTtcblx0XHRcdFx0dGhpcy5wcm9wcy5zZXRQcm9wcyh7IGpzb25fZGF0YTogSlNPTl9zdHJpbmcgfSk7XG5cdFx0XHR9XG5cblx0XHRcdHNrZXRjaC5fZmMuc2V0Wm9vbSh0aGlzLnByb3BzLnpvb20pO1xuXHRcdH07XG5cdH07XG5cblxuXHRfc2F2ZSgpIHtcblx0XHRsZXQgSlNPTl9zdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLl9za2V0Y2gudG9KU09OKCkpO1xuXHRcdGxldCB0b2dnbGVfdmFsdWUgPSB0aGlzLnByb3BzLnRyaWdnZXIgKyAxXG5cdFx0aWYgKHRoaXMucHJvcHMuc2V0UHJvcHMpIHtcblx0XHRcdHRoaXMucHJvcHMuc2V0UHJvcHMoeyBqc29uX2RhdGE6IEpTT05fc3RyaW5nLCB0cmlnZ2VyOiB0b2dnbGVfdmFsdWUgfSk7XG5cdFx0fVxuXHR9O1xuXG5cdF9yZXNpemUoKSB7XG5cdCAgICAvLyBub3QgdXNlZCB5ZXRcblx0ICAgIHRoaXMuc2V0U3RhdGUoe3dpZHRoOiB0aGlzLmNhbnZhc1JlZi5jdXJyZW50LmNsaWVudFdpZHRofSk7XG5cdH07XG5cblx0X3VuZG8oKSB7XG5cdFx0dGhpcy5fc2tldGNoLnVuZG8oKTtcblx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdGNhblVuZG86IHRoaXMuX3NrZXRjaC5jYW5VbmRvKCksXG5cdFx0XHRjYW5SZWRvOiB0aGlzLl9za2V0Y2guY2FuUmVkbygpXG5cdFx0fSlcblx0fTtcblx0X3JlZG8oKSB7XG5cdFx0dGhpcy5fc2tldGNoLnJlZG8oKTtcblx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdGNhblVuZG86IHRoaXMuX3NrZXRjaC5jYW5VbmRvKCksXG5cdFx0XHRjYW5SZWRvOiB0aGlzLl9za2V0Y2guY2FuUmVkbygpXG5cdFx0fSlcblx0fTtcblxuXHRfem9vbV9mYWN0b3IoZmFjdG9yKSB7XG5cdFx0dGhpcy5fc2tldGNoLnpvb20oZmFjdG9yKTtcblx0XHRsZXQgem9vbV9mYWN0b3IgPSB0aGlzLnByb3BzLnpvb207XG5cdFx0dGhpcy5wcm9wcy5zZXRQcm9wcyh7IHpvb206IGZhY3RvciAqIHpvb21fZmFjdG9yIH0pXG5cdH07XG5cblxuXHRfem9vbSgpIHtcblx0XHR0aGlzLl9za2V0Y2guem9vbSgxLjI1KTtcblx0XHRsZXQgem9vbV9mYWN0b3IgPSB0aGlzLnByb3BzLnpvb207XG5cdFx0dGhpcy5wcm9wcy5zZXRQcm9wcyh7IHpvb206IDEuMjUgKiB6b29tX2ZhY3RvciB9KVxuXHR9O1xuXG5cblx0X3Vuem9vbSgpIHtcblx0XHR0aGlzLl9za2V0Y2guem9vbSgwLjgpO1xuXHRcdGxldCB6b29tX2ZhY3RvciA9IHRoaXMucHJvcHMuem9vbTtcblx0XHR0aGlzLnByb3BzLnNldFByb3BzKHsgem9vbTogMC44ICogem9vbV9mYWN0b3IgfSk7XG5cdH07XG5cblxuXHRfcGFudG9vbCgpIHtcblx0XHR0aGlzLnByb3BzLnNldFByb3BzKHsgdG9vbDogXCJwYW5cIiB9KTtcblx0fTtcblxuXG5cdF9wZW5jaWx0b29sKCkge1xuXHRcdHRoaXMucHJvcHMuc2V0UHJvcHMoeyB0b29sOiBcInBlbmNpbFwiIH0pO1xuXHR9O1xuXG5cblx0X2xpbmV0b29sKCkge1xuXHRcdHRoaXMucHJvcHMuc2V0UHJvcHMoeyB0b29sOiBcImxpbmVcIiB9KTtcblx0fTtcblxuXG5cdF9yZWN0YW5nbGV0b29sKCkge1xuXHRcdHRoaXMucHJvcHMuc2V0UHJvcHMoeyB0b29sOiBcInJlY3RhbmdsZVwiIH0pO1xuXHR9O1xuXG5cblxuXHRfc2VsZWN0dG9vbCgpIHtcblx0XHR0aGlzLnByb3BzLnNldFByb3BzKHsgdG9vbDogXCJzZWxlY3RcIiB9KTtcblx0fTtcblxuXG5cblxuXHRyZW5kZXIoKSB7XG5cdFx0dmFyIHRvb2xzQXJyYXkgPSB7fTtcblx0XHR0b29sc0FycmF5W1wicGVuY2lsXCJdID0gVG9vbHMuUGVuY2lsO1xuXHRcdHRvb2xzQXJyYXlbXCJwYW5cIl0gPSBUb29scy5QYW47XG5cdFx0dG9vbHNBcnJheVtcImxpbmVcIl0gPSBUb29scy5MaW5lO1xuXHRcdHRvb2xzQXJyYXlbXCJjaXJjbGVcIl0gPSBUb29scy5DaXJjbGU7XG5cdFx0dG9vbHNBcnJheVtcInNlbGVjdFwiXSA9IFRvb2xzLlNlbGVjdDtcblx0XHR0b29sc0FycmF5W1wicmVjdGFuZ2xlXCJdID0gVG9vbHMuUmVjdGFuZ2xlO1xuXHRcdGNvbnN0IGhpZGVfYnV0dG9ucyA9IHRoaXMucHJvcHMuaGlkZV9idXR0b25zO1xuXHRcdGNvbnN0IHNob3dfbGluZSA9ICEoaGlkZV9idXR0b25zLmluY2x1ZGVzKFwibGluZVwiKSk7XG5cdFx0Y29uc3Qgc2hvd19wYW4gPSAhKGhpZGVfYnV0dG9ucy5pbmNsdWRlcyhcInBhblwiKSk7XG5cdFx0Y29uc3Qgc2hvd196b29tID0gIShoaWRlX2J1dHRvbnMuaW5jbHVkZXMoXCJ6b29tXCIpKTtcblx0XHRjb25zdCBzaG93X3BlbmNpbCA9ICEoaGlkZV9idXR0b25zLmluY2x1ZGVzKFwicGVuY2lsXCIpKTtcblx0XHRjb25zdCBzaG93X3VuZG8gPSAhKGhpZGVfYnV0dG9ucy5pbmNsdWRlcyhcInVuZG9cIikpO1xuXHRcdGNvbnN0IHNob3dfc2VsZWN0ID0gIShoaWRlX2J1dHRvbnMuaW5jbHVkZXMoXCJzZWxlY3RcIikpO1xuXHRcdGNvbnN0IHNob3dfcmVjdGFuZ2xlID0gIShoaWRlX2J1dHRvbnMuaW5jbHVkZXMoXCJyZWN0YW5nbGVcIikpO1xuXHRcdHZhciB3aWR0aF9kZWZpbmVkID0gdGhpcy5wcm9wcy53aWR0aCA+IDA7XG5cdFx0dmFyIHdpZHRoID0gd2lkdGhfZGVmaW5lZCA/IHRoaXMucHJvcHMud2lkdGggOiB0aGlzLnN0YXRlLndpZHRoO1xuXHRcdHZhciBoZWlnaHRfZGVmaW5lZCA9IHRoaXMucHJvcHMuaGVpZ2h0ID4gMDtcblx0XHR2YXIgaGVpZ2h0ID0gaGVpZ2h0X2RlZmluZWQgPyB0aGlzLnByb3BzLmhlaWdodCA6IHRoaXMuc3RhdGUuaGVpZ2h0O1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT17dGhpcy5wcm9wcy5jbGFzc05hbWV9IHJlZj17dGhpcy5jYW52YXNSZWZ9PlxuXHRcdFx0XHQ8U2tldGNoRmllbGQgbmFtZT0nc2tldGNoJ1xuXHRcdFx0XHRcdHJlZj17KGMpID0+IHRoaXMuX3NrZXRjaCA9IGN9XG5cdFx0XHRcdFx0dG9vbD17dG9vbHNBcnJheVt0aGlzLnByb3BzLnRvb2wudG9Mb3dlckNhc2UoKV19XG5cdFx0XHRcdFx0bGluZUNvbG9yPXt0aGlzLnByb3BzLmxpbmVDb2xvcn1cblx0XHRcdFx0XHR3aWR0aD17d2lkdGh9XG5cdFx0XHRcdFx0aGVpZ2h0PXtoZWlnaHR9XG5cdFx0XHRcdFx0Zm9yY2VWYWx1ZT17dHJ1ZX1cblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I9JyNjY2RkZmYnXG5cdFx0XHRcdFx0bGluZVdpZHRoPXt0aGlzLnByb3BzLmxpbmVXaWR0aH0gLz5cblx0XHRcdFx0e3Nob3dfem9vbSAmJlxuXHRcdFx0XHRcdDxidXR0b24gc3R5bGU9e3N0eWxlcy5idXR0b259XG5cdFx0XHRcdFx0XHR0aXRsZT1cIlpvb20gaW5cIlxuXHRcdFx0XHRcdFx0b25DbGljaz17KGUpID0+IHRoaXMuX3pvb20oKX0+XG5cdFx0XHRcdFx0XHQ8Wm9vbVBsdXNJY29uIC8+XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdH1cblx0XHRcdFx0e3Nob3dfem9vbSAmJlxuXHRcdFx0XHRcdDxidXR0b24gc3R5bGU9e3N0eWxlcy5idXR0b259XG5cdFx0XHRcdFx0XHR0aXRsZT1cIlpvb20gb3V0XCJcblx0XHRcdFx0XHRcdG9uQ2xpY2s9eyhlKSA9PiB0aGlzLl91bnpvb20oKX0+XG5cdFx0XHRcdFx0XHQ8Wm9vbU1pbnVzSWNvbiAvPlxuXHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHR9XG5cdFx0XHRcdHtzaG93X3BlbmNpbCAmJlxuXHRcdFx0XHRcdDxidXR0b24gc3R5bGU9e3N0eWxlcy5idXR0b259XG5cdFx0XHRcdFx0XHR0aXRsZT1cIlBlbmNpbCB0b29sXCJcblx0XHRcdFx0XHRcdG9uQ2xpY2s9eyhlKSA9PiB0aGlzLl9wZW5jaWx0b29sKCl9PlxuXHRcdFx0XHRcdFx0PEVkaXRJY29uIC8+XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdH1cblx0XHRcdFx0e3Nob3dfbGluZSAmJlxuXHRcdFx0XHRcdDxidXR0b24gc3R5bGU9e3N0eWxlcy5idXR0b259XG5cdFx0XHRcdFx0XHR0aXRsZT1cIkxpbmUgdG9vbFwiXG5cdFx0XHRcdFx0XHRvbkNsaWNrPXsoZSkgPT4gdGhpcy5fbGluZXRvb2woKX0+XG5cdFx0XHRcdFx0XHQ8UGxvdExpbmVJY29uIC8+XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdH1cblx0XHRcdFx0e3Nob3dfcmVjdGFuZ2xlICYmXG5cdFx0XHRcdFx0PGJ1dHRvbiBzdHlsZT17c3R5bGVzLmJ1dHRvbn1cblx0XHRcdFx0XHRcdHRpdGxlPVwiUmVjdGFuZ2xlIHRvb2xcIlxuXHRcdFx0XHRcdFx0b25DbGljaz17KGUpID0+IHRoaXMuX3JlY3RhbmdsZXRvb2woKX0+XG5cdFx0XHRcdFx0XHQ8U3F1YXJlSWNvbiAvPlxuXHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHR9XG5cdFx0XHRcdHtzaG93X3BhbiAmJlxuXHRcdFx0XHRcdDxidXR0b24gc3R5bGU9e3N0eWxlcy5idXR0b259XG5cdFx0XHRcdFx0XHR0aXRsZT1cIlBhblwiXG5cdFx0XHRcdFx0XHRvbkNsaWNrPXsoZSkgPT4gdGhpcy5fcGFudG9vbCgpfT5cblx0XHRcdFx0XHRcdDxQYW5JY29uIC8+XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdH1cblx0XHRcdFx0e3Nob3dfdW5kbyAmJlxuXHRcdFx0XHRcdDxidXR0b24gc3R5bGU9e3N0eWxlcy5idXR0b259XG5cdFx0XHRcdFx0XHR0aXRsZT1cIlVuZG9cIlxuXHRcdFx0XHRcdFx0b25DbGljaz17KGUpID0+IHRoaXMuX3VuZG8oKX0+XG5cdFx0XHRcdFx0XHQ8QXJyb3dMZWZ0SWNvbiAvPlxuXHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHR9XG5cdFx0XHRcdHtzaG93X3VuZG8gJiZcblx0XHRcdFx0XHQ8YnV0dG9uIHN0eWxlPXtzdHlsZXMuYnV0dG9ufVxuXHRcdFx0XHRcdFx0dGl0bGU9XCJSZWRvXCJcblx0XHRcdFx0XHRcdG9uQ2xpY2s9eyhlKSA9PiB0aGlzLl9yZWRvKCl9PlxuXHRcdFx0XHRcdFx0PEFycm93UmlnaHRJY29uIC8+XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdH1cblx0XHRcdFx0e3Nob3dfc2VsZWN0ICYmXG5cdFx0XHRcdFx0PGJ1dHRvbiBzdHlsZT17c3R5bGVzLmJ1dHRvbn1cblx0XHRcdFx0XHRcdHRpdGxlPVwiU2VsZWN0XCJcblx0XHRcdFx0XHRcdG9uQ2xpY2s9eyhlKSA9PiB0aGlzLl9zZWxlY3R0b29sKCl9PlxuXHRcdFx0XHRcdFx0PFRhZ091dGxpbmVJY29uIC8+XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQ8YnV0dG9uIHN0eWxlPXtzdHlsZXMudGV4dGJ1dHRvbn1cblx0XHRcdFx0XHR0aXRsZT1cIlNhdmVcIlxuXHRcdFx0XHRcdG9uQ2xpY2s9eyhlKSA9PiB0aGlzLl9zYXZlKCl9PlxuXHRcdFx0XHRcdHt0aGlzLnByb3BzLmdvQnV0dG9uVGl0bGV9XG5cdFx0XHRcdDwvYnV0dG9uPlxuXG5cdFx0XHQ8L2Rpdj5cblxuXHRcdClcblx0fVxufVxuXG5EYXNoQ2FudmFzLmRlZmF1bHRQcm9wcyA9IGRlZmF1bHRQcm9wcztcbkRhc2hDYW52YXMucHJvcFR5cGVzID0gcHJvcFR5cGVzO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/lib/fragments/DashCanvas.react.js\n"); /***/ }) diff --git a/dash_canvas/async~canvas.js b/dash_canvas/async~canvas.js index cb18819..3a35e7d 100644 --- a/dash_canvas/async~canvas.js +++ b/dash_canvas/async~canvas.js @@ -1,4 +1,4 @@ -(window.webpackJsonpdash_canvas=window.webpackJsonpdash_canvas||[]).push([[0],[,,,,,,function(t,e,r){"use strict";r.r(e),r.d(e,"default",(function(){return m}));var n=r(1),i=r.n(n),o=r(10),a=r(13),s=r(2);function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(t,e){for(var r=0;r0||this.props.image_content.length>0){var r=this.props.filename.length>0?this.props.filename:this.props.image_content,n=new Image;n.onload=function(){var i,o=t.state.height,a=n.height,s=n.width;i=(o=Math.round(a*e.props.width/s))/a,t.setState({height:o}),e.clear();var c={left:0,top:0,scale:i};e.addImg(r,c)},n.src=r}else e._fc.setBackgroundColor(e.props.backgroundColor)}},{key:"componentDidUpdate",value:function(t){var e=this,r=this._sketch;if(this.props.image_content!==t.image_content){var n=new Image,i=this.state.height,o=1;if(n.onload=function(){var t=n.height,a=n.width;i=Math.round(t*r.props.width/a),o=i/t,e.setState({height:i}),r.clear();var s={left:0,top:0,scale:o};r.addImg(e.props.image_content,s)},n.src=this.props.image_content,this.props.setProps){var a=JSON.stringify(this._sketch.toJSON());this.props.setProps({json_data:a})}r._fc.setZoom(this.props.zoom)}}},{key:"_save",value:function(){var t=JSON.stringify(this._sketch.toJSON()),e=this.props.trigger+1;this.props.setProps&&this.props.setProps({json_data:t,trigger:e})}},{key:"_undo",value:function(){this._sketch.undo(),this.setState({canUndo:this._sketch.canUndo(),canRedo:this._sketch.canRedo()})}},{key:"_redo",value:function(){this._sketch.redo(),console.log(this._sketch),this.setState({canUndo:this._sketch.canUndo(),canRedo:this._sketch.canRedo()})}},{key:"_zoom_factor",value:function(t){this._sketch.zoom(t);var e=this.props.zoom;this.props.setProps({zoom:t*e})}},{key:"_zoom",value:function(){this._sketch.zoom(1.25);var t=this.props.zoom;this.props.setProps({zoom:1.25*t})}},{key:"_unzoom",value:function(){this._sketch.zoom(.8);var t=this.props.zoom;this.props.setProps({zoom:.8*t})}},{key:"_pantool",value:function(){this.props.setProps({tool:"pan"})}},{key:"_penciltool",value:function(){this.props.setProps({tool:"pencil"})}},{key:"_linetool",value:function(){this.props.setProps({tool:"line"})}},{key:"_rectangletool",value:function(){this.props.setProps({tool:"rectangle"})}},{key:"_selecttool",value:function(){this.props.setProps({tool:"select"})}},{key:"render",value:function(){var t=this,e={};e.pencil=o.Tools.Pencil,e.pan=o.Tools.Pan,e.line=o.Tools.Line,e.circle=o.Tools.Circle,e.select=o.Tools.Select,e.rectangle=o.Tools.Rectangle;var r=this.props.hide_buttons,n=!r.includes("line"),s=!r.includes("pan"),c=!r.includes("zoom"),l=!r.includes("pencil"),h=!r.includes("undo"),u=!r.includes("select"),f=!r.includes("rectangle"),d=this.props.width>0?this.props.width:null;return i.a.createElement("div",{className:this.props.className},i.a.createElement(o.SketchField,{name:"sketch",ref:function(e){return t._sketch=e},tool:e[this.props.tool.toLowerCase()],lineColor:this.props.lineColor,width:d,height:this.state.height,forceValue:!0,backgroundColor:"#ccddff",lineWidth:this.props.lineWidth}),c&&i.a.createElement("button",{style:g.button,title:"Zoom in",onClick:function(e){return t._zoom()}},i.a.createElement(a.ZoomPlusIcon,null)),c&&i.a.createElement("button",{style:g.button,title:"Zoom out",onClick:function(e){return t._unzoom()}},i.a.createElement(a.ZoomMinusIcon,null)),l&&i.a.createElement("button",{style:g.button,title:"Pencil tool",onClick:function(e){return t._penciltool()}},i.a.createElement(a.EditIcon,null)),n&&i.a.createElement("button",{style:g.button,title:"Line tool",onClick:function(e){return t._linetool()}},i.a.createElement(a.PlotLineIcon,null)),f&&i.a.createElement("button",{style:g.button,title:"Rectangle tool",onClick:function(e){return t._rectangletool()}},i.a.createElement(a.SquareIcon,null)),s&&i.a.createElement("button",{style:g.button,title:"Pan",onClick:function(e){return t._pantool()}},i.a.createElement(a.PanIcon,null)),h&&i.a.createElement("button",{style:g.button,title:"Undo",onClick:function(e){return t._undo()}},i.a.createElement(a.ArrowLeftIcon,null)),h&&i.a.createElement("button",{style:g.button,title:"Redo",onClick:function(e){return t._redo()}},i.a.createElement(a.ArrowRightIcon,null)),u&&i.a.createElement("button",{style:g.button,title:"Select",onClick:function(e){return t._selecttool()}},i.a.createElement(a.TagOutlineIcon,null)),i.a.createElement("button",{style:g.textbutton,title:"Save",onClick:function(e){return t._save()}},this.props.goButtonTitle))}}])&&l(r.prototype,n),s&&l(r,s),e}(n.Component);m.defaultProps=s.b,m.propTypes=s.c},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=Object.assign||function(t){for(var e=1;e=0||Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n]);return r}(t,["children","width","height","style"]);return i.default.createElement("svg",n({children:e,fill:"currentColor",preserveAspectRatio:"xMidYMid meet",height:o,width:r,style:s},c))};s.propTypes={children:o.default.node.isRequired,width:o.default.oneOfType([o.default.number,o.default.string]),height:o.default.oneOfType([o.default.number,o.default.string]),style:o.default.object},e.default=s},function(t,e,r){(function(t){var n=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function o(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new o(i.call(setTimeout,n,arguments),clearTimeout)},e.setInterval=function(){return new o(i.call(setInterval,n,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(n,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},r(11),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,r(9))},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(module,exports,__webpack_require__){(function(setImmediate,clearImmediate){var e;"undefined"!=typeof self&&self,e=function(){return function(t){function e(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var r={};return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=76)}([function(t,e){var r=t.exports={version:"2.5.1"};"number"==typeof __e&&(__e=r)},function(t,e){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){var n=r(40)("wks"),i=r(28),o=r(4).Symbol,a="function"==typeof o;(t.exports=function(t){return n[t]||(n[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=n},function(t,e,r){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,e,r){"use strict";e.__esModule=!0;var n=function(t){return t&&t.__esModule?t:{default:t}}(r(135));e.default=function(){function t(t,e){for(var r=0;r1)for(var r=1;r0||this.props.image_content.length>0){var r=this.props.filename.length>0?this.props.filename:this.props.image_content,n=new Image;n.onload=function(){var i,o=t.state.height,a=n.height,s=n.width;i=(o=Math.round(a*t.state.width/s))/a,t.setState({height:o}),e.clear();var c={left:0,top:0,scale:i};e.addImg(r,c)},n.src=r}else e._fc.setBackgroundColor(e.props.backgroundColor)}},{key:"componentDidUpdate",value:function(t){var e=this,r=this._sketch;if(this.props.image_content!==t.image_content){var n=new Image,i=this.state.height,o=1;if(n.onload=function(){var t=n.height,a=n.width;i=Math.round(t*r.state.width/a),o=i/t,e.setState({height:i}),r.clear();var s={left:0,top:0,scale:o};r.addImg(e.props.image_content,s)},n.src=this.props.image_content,this.props.setProps){var a=JSON.stringify(this._sketch.toJSON());this.props.setProps({json_data:a})}r._fc.setZoom(this.props.zoom)}}},{key:"_save",value:function(){var t=JSON.stringify(this._sketch.toJSON()),e=this.props.trigger+1;this.props.setProps&&this.props.setProps({json_data:t,trigger:e})}},{key:"_resize",value:function(){this.setState({width:this.canvasRef.current.clientWidth})}},{key:"_undo",value:function(){this._sketch.undo(),this.setState({canUndo:this._sketch.canUndo(),canRedo:this._sketch.canRedo()})}},{key:"_redo",value:function(){this._sketch.redo(),this.setState({canUndo:this._sketch.canUndo(),canRedo:this._sketch.canRedo()})}},{key:"_zoom_factor",value:function(t){this._sketch.zoom(t);var e=this.props.zoom;this.props.setProps({zoom:t*e})}},{key:"_zoom",value:function(){this._sketch.zoom(1.25);var t=this.props.zoom;this.props.setProps({zoom:1.25*t})}},{key:"_unzoom",value:function(){this._sketch.zoom(.8);var t=this.props.zoom;this.props.setProps({zoom:.8*t})}},{key:"_pantool",value:function(){this.props.setProps({tool:"pan"})}},{key:"_penciltool",value:function(){this.props.setProps({tool:"pencil"})}},{key:"_linetool",value:function(){this.props.setProps({tool:"line"})}},{key:"_rectangletool",value:function(){this.props.setProps({tool:"rectangle"})}},{key:"_selecttool",value:function(){this.props.setProps({tool:"select"})}},{key:"render",value:function(){var t=this,e={};e.pencil=o.Tools.Pencil,e.pan=o.Tools.Pan,e.line=o.Tools.Line,e.circle=o.Tools.Circle,e.select=o.Tools.Select,e.rectangle=o.Tools.Rectangle;var r=this.props.hide_buttons,n=!r.includes("line"),s=!r.includes("pan"),c=!r.includes("zoom"),l=!r.includes("pencil"),h=!r.includes("undo"),u=!r.includes("select"),f=!r.includes("rectangle"),d=this.props.width>0?this.props.width:this.state.width,p=this.props.height>0?this.props.height:this.state.height;return i.a.createElement("div",{className:this.props.className,ref:this.canvasRef},i.a.createElement(o.SketchField,{name:"sketch",ref:function(e){return t._sketch=e},tool:e[this.props.tool.toLowerCase()],lineColor:this.props.lineColor,width:d,height:p,forceValue:!0,backgroundColor:"#ccddff",lineWidth:this.props.lineWidth}),c&&i.a.createElement("button",{style:g.button,title:"Zoom in",onClick:function(e){return t._zoom()}},i.a.createElement(a.ZoomPlusIcon,null)),c&&i.a.createElement("button",{style:g.button,title:"Zoom out",onClick:function(e){return t._unzoom()}},i.a.createElement(a.ZoomMinusIcon,null)),l&&i.a.createElement("button",{style:g.button,title:"Pencil tool",onClick:function(e){return t._penciltool()}},i.a.createElement(a.EditIcon,null)),n&&i.a.createElement("button",{style:g.button,title:"Line tool",onClick:function(e){return t._linetool()}},i.a.createElement(a.PlotLineIcon,null)),f&&i.a.createElement("button",{style:g.button,title:"Rectangle tool",onClick:function(e){return t._rectangletool()}},i.a.createElement(a.SquareIcon,null)),s&&i.a.createElement("button",{style:g.button,title:"Pan",onClick:function(e){return t._pantool()}},i.a.createElement(a.PanIcon,null)),h&&i.a.createElement("button",{style:g.button,title:"Undo",onClick:function(e){return t._undo()}},i.a.createElement(a.ArrowLeftIcon,null)),h&&i.a.createElement("button",{style:g.button,title:"Redo",onClick:function(e){return t._redo()}},i.a.createElement(a.ArrowRightIcon,null)),u&&i.a.createElement("button",{style:g.button,title:"Select",onClick:function(e){return t._selecttool()}},i.a.createElement(a.TagOutlineIcon,null)),i.a.createElement("button",{style:g.textbutton,title:"Save",onClick:function(e){return t._save()}},this.props.goButtonTitle))}}])&&l(r.prototype,n),s&&l(r,s),e}(n.Component);m.defaultProps=s.b,m.propTypes=s.c},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=Object.assign||function(t){for(var e=1;e=0||Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n]);return r}(t,["children","width","height","style"]);return i.default.createElement("svg",n({children:e,fill:"currentColor",preserveAspectRatio:"xMidYMid meet",height:o,width:r,style:s},c))};s.propTypes={children:o.default.node.isRequired,width:o.default.oneOfType([o.default.number,o.default.string]),height:o.default.oneOfType([o.default.number,o.default.string]),style:o.default.object},e.default=s},function(t,e,r){(function(t){var n=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function o(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new o(i.call(setTimeout,n,arguments),clearTimeout)},e.setInterval=function(){return new o(i.call(setInterval,n,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(n,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},r(11),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,r(9))},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(module,exports,__webpack_require__){(function(setImmediate,clearImmediate){var e;"undefined"!=typeof self&&self,e=function(){return function(t){function e(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var r={};return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=76)}([function(t,e){var r=t.exports={version:"2.5.1"};"number"==typeof __e&&(__e=r)},function(t,e){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){var n=r(40)("wks"),i=r(28),o=r(4).Symbol,a="function"==typeof o;(t.exports=function(t){return n[t]||(n[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=n},function(t,e,r){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,e,r){"use strict";e.__esModule=!0;var n=function(t){return t&&t.__esModule?t:{default:t}}(r(135));e.default=function(){function t(t,e){for(var r=0;r1)for(var r=1;r 0 || this.props.image_content.length > 0) { var content = (this.props.filename.length > 0) ? this.props.filename : @@ -59,7 +70,7 @@ export default class DashCanvas extends Component { var new_scale = 1; var height = img.height; var width = img.width; - new_height = Math.round(height * sketch.props.width / width); + new_height = Math.round(height * this.state.width / width); new_scale = new_height / height; this.setState({ height: new_height }); sketch.clear(); @@ -88,7 +99,7 @@ export default class DashCanvas extends Component { img.onload = () => { var height = img.height; var width = img.width; - new_height = Math.round(height * sketch.props.width / width); + new_height = Math.round(height * sketch.state.width / width); new_scale = new_height / height; this.setState({ height: new_height }); sketch.clear(); @@ -118,6 +129,10 @@ export default class DashCanvas extends Component { } }; + _resize() { + // not used yet + this.setState({width: this.canvasRef.current.clientWidth}); + }; _undo() { this._sketch.undo(); @@ -128,7 +143,6 @@ export default class DashCanvas extends Component { }; _redo() { this._sketch.redo(); - console.log(this._sketch); this.setState({ canUndo: this._sketch.canUndo(), canRedo: this._sketch.canRedo() @@ -201,15 +215,17 @@ export default class DashCanvas extends Component { const show_select = !(hide_buttons.includes("select")); const show_rectangle = !(hide_buttons.includes("rectangle")); var width_defined = this.props.width > 0; - var width = width_defined ? this.props.width : null; + var width = width_defined ? this.props.width : this.state.width; + var height_defined = this.props.height > 0; + var height = height_defined ? this.props.height : this.state.height; return ( -
+
this._sketch = c} tool={toolsArray[this.props.tool.toLowerCase()]} lineColor={this.props.lineColor} width={width} - height={this.state.height} + height={height} forceValue={true} backgroundColor='#ccddff' lineWidth={this.props.lineWidth} />