"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireWildcard(require("react")),_signature_pad=_interopRequireDefault(require("signature_pad")),_ErrorBoundary=_interopRequireDefault(require("../../hoc/ErrorBoundary")),_react2=require("@lingui/react");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}function _typeof(obj){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}function _possibleConstructorReturn(self,call){return call&&("object"===_typeof(call)||"function"==typeof call)?call:_assertThisInitialized(self)}function _assertThisInitialized(self){if(void 0===self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return self}function _getPrototypeOf(o){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(o){return o.__proto__||Object.getPrototypeOf(o)},_getPrototypeOf(o)}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function");subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:!0,configurable:!0}}),superClass&&_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){return _setPrototypeOf=Object.setPrototypeOf||function(o,p){return o.__proto__=p,o},_setPrototypeOf(o,p)}var Signature=/*#__PURE__*/function(_Component){function Signature(){return _classCallCheck(this,Signature),_possibleConstructorReturn(this,_getPrototypeOf(Signature).apply(this,arguments))}return _inherits(Signature,_Component),_createClass(Signature,[{key:"componentDidMount",value:function componentDidMount(){if("undefined"!=typeof document){var wrapper=document.getElementById("signature-pad");if(wrapper){// Adjust canvas coordinate space taking into account pixel ratio,
// to make it look crisp on mobile devices.
// This also causes canvas to be cleared.
var resizeCanvas=function(){// When zoomed out to less than 100%, for some very strange reason,
// some browsers report devicePixelRatio as less than 1
// and only part of the canvas is cleared then.
var ratio=Math.max(window.devicePixelRatio||1,1);canvas.width=canvas.offsetWidth*ratio,canvas.height=canvas.offsetHeight*ratio,canvas.getContext("2d").scale(ratio,ratio)},clearButton=wrapper.querySelector("[data-action=clear]"),savePNGButton=wrapper.querySelector("[data-action=save-png]"),saveSVGButton=wrapper.querySelector("[data-action=save-svg]"),canvas=wrapper.querySelector("canvas");window.onresize=resizeCanvas,resizeCanvas();var signaturePad=new _signature_pad.default(canvas);clearButton.addEventListener("click",function(){signaturePad.clear()}),savePNGButton.addEventListener("click",function(){signaturePad.isEmpty()||window.open(signaturePad.toDataURL())}),saveSVGButton.addEventListener("click",function(){signaturePad.isEmpty()||window.open(signaturePad.toDataURL("image/svg+xml"))})}}}},{key:"render",value:function render(){return _react.default.createElement(_ErrorBoundary.default,null,_react.default.createElement("div",null,_react.default.createElement("div",{id:"signature-pad",className:"m-signature-pad"},_react.default.createElement("div",{className:"m-signature-pad--body"},_react.default.createElement("canvas",null)),_react.default.createElement("div",{className:"m-signature-pad--footer"},_react.default.createElement("div",{className:"description"},_react.default.createElement(_react2.Trans,{id:"Sign above"})),_react.default.createElement("div",{className:"left"},_react.default.createElement("button",{type:"button",className:"btn clear_btn clear","data-action":"clear"},_react.default.createElement(_react2.Trans,{id:"Clear"}))),_react.default.createElement("div",{className:"right"},_react.default.createElement("button",{type:"button",className:"btn save_btn save","data-action":"save-png"},_react.default.createElement(_react2.Trans,{id:"Save as PNG"})),_react.default.createElement("button",{type:"button",className:"btn save_btn save","data-action":"save-svg"},_react.default.createElement(_react2.Trans,{id:"Save as SVG"})))))))}}]),Signature}(_react.Component),_default=Signature;exports.default=_default;