{"version":3,"sources":["../src/signature.js"],"names":["canvas","document","querySelector","getCanvasRelativeToViewport","viewportOffset","getBoundingClientRect","top","left","clearCanvas","canvasContext","confirm","window","ctx","clearRect","width","height","sigImg","value","generateImage","sourceCanvas","target","sourceCanvasResized","resizeCanvas","signatureImage","toDataURL","oldCanvas","newCanvas","createElement","context","getContext","drawImage","sketch","sketch_style","getComputedStyle","parseInt","getPropertyValue","tmp_canvas","tmp_ctx","id","className","appendChild","lineWidth","lineJoin","lineCap","strokeStyle","fillStyle","position","x","y","last_position","ppts","addEventListener","e","offsetX","layerX","offsetY","layerY","onPaint","push","removeEventListener","preventDefault","canvasPos","console","log","changedTouches","clientX","clientY","passive","length","b","beginPath","arc","Math","PI","fill","closePath","moveTo","i","c","d","quadraticCurveTo","stroke","clearButton"],"mappings":"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","sourcesContent":["(() => {\r\n\r\n var canvas = document.querySelector('#signatureCanvas');\r\n if (canvas){\r\n var ctx = canvas.getContext('2d');\r\n \r\n var sketch = document.querySelector('#signaturePanel');\r\n var sketch_style = getComputedStyle(sketch);\r\n canvas.width = parseInt(sketch_style.getPropertyValue('width'));\r\n canvas.height = parseInt(sketch_style.getPropertyValue('height'));\r\n \r\n // Hiden input field we'll write our image to.\r\n const sigImg = document.querySelector(\"#sigImg\");\r\n \r\n // Creating a tmp canvas\r\n var tmp_canvas = document.createElement('canvas');\r\n var tmp_ctx = tmp_canvas.getContext('2d');\r\n tmp_canvas.id = 'tmp_canvas';\r\n tmp_canvas.className = 'c-field__signature-canvas';\r\n tmp_canvas.width = canvas.width;\r\n tmp_canvas.height = canvas.height;\r\n \r\n sketch.appendChild(tmp_canvas);\r\n \r\n /* Line Drawing Settings */\r\n tmp_ctx.lineWidth = 5;\r\n tmp_ctx.lineJoin = 'round';\r\n tmp_ctx.lineCap = 'round';\r\n tmp_ctx.strokeStyle = '#123256';\r\n tmp_ctx.fillStyle = '#123256';\r\n \r\n var position = { x: 0, y: 0 };\r\n var last_position = { x: 0, y: 0 };\r\n \r\n // Pencil Points\r\n var ppts = [];\r\n \r\n /**\r\n * Mouse Capturing Work\r\n */\r\n tmp_canvas.addEventListener('mousemove', function (e) {\r\n position.x = typeof e.offsetX !== 'undefined' ? e.offsetX : e.layerX;\r\n position.y = typeof e.offsetY !== 'undefined' ? e.offsetY : e.layerY;\r\n }, false);\r\n \r\n tmp_canvas.addEventListener('mousedown', function (e) {\r\n tmp_canvas.addEventListener('mousemove', onPaint, false);\r\n \r\n position.x = typeof e.offsetX !== 'undefined' ? e.offsetX : e.layerX;\r\n position.y = typeof e.offsetY !== 'undefined' ? e.offsetY : e.layerY;\r\n \r\n ppts.push({ x: position.x, y: position.y });\r\n \r\n onPaint();\r\n }, false);\r\n \r\n tmp_canvas.addEventListener('mouseup', function () {\r\n tmp_canvas.removeEventListener('mousemove', onPaint, false);\r\n \r\n // Writing down to real canvas now\r\n ctx.drawImage(tmp_canvas, 0, 0);\r\n // Clearing tmp canvas\r\n tmp_ctx.clearRect(0, 0, tmp_canvas.width, tmp_canvas.height);\r\n \r\n // Emptying up Pencil Points\r\n ppts = [];\r\n \r\n generateImage(canvas, sigImg);\r\n }, false);\r\n \r\n /**\r\n * Touch Capturing Work\r\n */\r\n \r\n tmp_canvas.addEventListener('touchmove', function (e) {\r\n e.preventDefault();\r\n var canvasPos = getCanvasRelativeToViewport(tmp_canvas);\r\n console.log(\"Moved: \", e.changedTouches[0]);\r\n console.log(canvasPos.left, canvasPos.top);\r\n \r\n position.x = e.changedTouches[0].clientX - canvasPos.left;\r\n position.y = e.changedTouches[0].clientY - canvasPos.top;\r\n \r\n }, { passive: false });\r\n \r\n tmp_canvas.addEventListener('touchstart', function (e) {\r\n e.preventDefault();\r\n var canvasPos = getCanvasRelativeToViewport(tmp_canvas);\r\n tmp_canvas.addEventListener('touchmove', onPaint, { passive: false });\r\n \r\n console.log(\"Started: \", e.changedTouches[0]);\r\n \r\n position.x = e.changedTouches[0].clientX - canvasPos.left;\r\n position.y = e.changedTouches[0].clientY - canvasPos.top;\r\n \r\n ppts.push({ x: position.x, y: position.y });\r\n \r\n onPaint();\r\n }, { passive: false });\r\n \r\n tmp_canvas.addEventListener('touchend', function () {\r\n tmp_canvas.removeEventListener('touchmove', onPaint, { passive: false });\r\n \r\n // Writing down to real canvas now\r\n ctx.drawImage(tmp_canvas, 0, 0);\r\n // Clearing tmp canvas\r\n tmp_ctx.clearRect(0, 0, tmp_canvas.width, tmp_canvas.height);\r\n \r\n // Emptying up Pencil Points\r\n ppts = [];\r\n \r\n generateImage(canvas, sigImg);\r\n }, { passive: false });\r\n \r\n \r\n var onPaint = function () {\r\n // Saving all the points in an array\r\n ppts.push({ x: position.x, y: position.y });\r\n // console.log(position.x, position.y);\r\n \r\n if (ppts.length < 3) {\r\n var b = ppts[0];\r\n tmp_ctx.beginPath();\r\n tmp_ctx.arc(b.x, b.y, tmp_ctx.lineWidth / 2, 0, Math.PI * 2, !0);\r\n tmp_ctx.fill();\r\n tmp_ctx.closePath();\r\n return;\r\n }\r\n \r\n // Tmp canvas is always cleared up before drawing.\r\n tmp_ctx.clearRect(0, 0, tmp_canvas.width, tmp_canvas.height);\r\n \r\n tmp_ctx.beginPath();\r\n tmp_ctx.moveTo(ppts[0].x, ppts[0].y);\r\n \r\n for (var i = 1; i < ppts.length - 2; i++) {\r\n var c = (ppts[i].x + ppts[i + 1].x) / 2;\r\n var d = (ppts[i].y + ppts[i + 1].y) / 2;\r\n \r\n tmp_ctx.quadraticCurveTo(ppts[i].x, ppts[i].y, c, d);\r\n }\r\n \r\n // For the last 2 points\r\n tmp_ctx.quadraticCurveTo(\r\n ppts[i].x,\r\n ppts[i].y,\r\n ppts[i + 1].x,\r\n ppts[i + 1].y\r\n );\r\n \r\n tmp_ctx.stroke();\r\n \r\n };\r\n \r\n function getCanvasRelativeToViewport(canvas) {\r\n var viewportOffset = canvas.getBoundingClientRect();\r\n \r\n return {\r\n top: viewportOffset.top,\r\n left: viewportOffset.left\r\n }\r\n }\r\n \r\n // Clear the canvas\r\n const clearButton = document.querySelector('.js-clear_signature');\r\n clearButton.addEventListener('click', (e) => { e.preventDefault(); clearCanvas(ctx) });\r\n \r\n function clearCanvas(canvasContext) {\r\n var confirm = window.confirm('Clear the signature?');\r\n \r\n if (confirm == true) {\r\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\r\n sigImg.value = null;\r\n } else {\r\n return\r\n }\r\n }\r\n \r\n function generateImage(sourceCanvas, target) {\r\n var sourceCanvasResized = resizeCanvas(sourceCanvas);\r\n \r\n var signatureImage = sourceCanvasResized.toDataURL(\"image/png\");\r\n target.value = signatureImage;\r\n }\r\n\r\n function resizeCanvas(oldCanvas) {\r\n var newCanvas = document.createElement('canvas');\r\n var context = newCanvas.getContext('2d');\r\n \r\n //set dimensions\r\n newCanvas.width = oldCanvas.width / 2;\r\n newCanvas.height = oldCanvas.height / 2;\r\n \r\n //apply the old canvas to the new one\r\n context.drawImage(oldCanvas, 0, 0, oldCanvas.width / 2, oldCanvas.height / 2);\r\n \r\n //return the new canvas\r\n return newCanvas;\r\n }\r\n }\r\n\r\n})();"],"file":"signature.js"}