From aec8ed1332d72aec8accca79ef56e0e2fef1632f Mon Sep 17 00:00:00 2001
From: plocket <52798256+plocket@users.noreply.github.com>
Date: Wed, 25 Jan 2023 14:47:21 -0500
Subject: [PATCH 1/7] Preserve canvas content when window resized/zoomed/etc.
---
docassemble_webapp/docassemble/webapp/static/app/app.js | 9 +++++++++
.../docassemble/webapp/static/app/app.min.js | 2 +-
.../docassemble/webapp/static/app/bundle.js | 2 +-
.../docassemble/webapp/static/app/bundlenojquery.js | 2 +-
.../docassemble/webapp/static/app/bundlewrapjquery.js | 2 +-
5 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/docassemble_webapp/docassemble/webapp/static/app/app.js b/docassemble_webapp/docassemble/webapp/static/app/app.js
index 8be19de06..596c96f4d 100644
--- a/docassemble_webapp/docassemble/webapp/static/app/app.js
+++ b/docassemble_webapp/docassemble/webapp/static/app/app.js
@@ -68,7 +68,16 @@ function daInitializeSignature() {
function daResizeCanvas() {
//var cheight = $(window).height()-($("#sigheader").height() + $("#sigtoppart").height() + $("#sigbottompart").height());
setTimeout(function () {
+ // store current canvas content
+ var canvas = $("#dasigcanvas")[0];
+ var daCtx = canvas.getContext("2d");
+ var imgData = daCtx.getImageData(0, 0, canvas.width, canvas.height);
+
daNewCanvas();
+
+ // restore previous canvas content onto new canvas element
+ daCtx = $("#dasigcanvas")[0].getContext("2d");
+ daCtx.putImageData(imgData, 0, 0);
}, 200);
//console.log("I resized");
return;
diff --git a/docassemble_webapp/docassemble/webapp/static/app/app.min.js b/docassemble_webapp/docassemble/webapp/static/app/app.min.js
index 9f0c9805e..fbc815624 100644
--- a/docassemble_webapp/docassemble/webapp/static/app/app.min.js
+++ b/docassemble_webapp/docassemble/webapp/static/app/app.min.js
@@ -1 +1 @@
-if(typeof $=="undefined")var $=jQuery.noConflict(),daCtx,daColor,daTheWidth,daAspectRatio,daTheBorders,daIsEmpty,daAutocomplete;daColor="#000";function daInitializeSignature(){daAspectRatio=.4,daTheBorders=30,daIsEmpty=1,setTimeout(function(){isCanvasSupported()||daPost({da_success:0,da_ajax:1}),daNewCanvas(),$(document).on("touchmove",function(e){window.matchMedia("(max-width: 575px)").matches&&e.preventDefault()})},500),$(window).on("resize",function(){daResizeCanvas()}),$(window).on("orientationchange",function(){daResizeCanvas()}),$(".dasigclear").click(function(e){return e.preventDefault(),daNewCanvas(),!1}),$(".dasigsave").click(function(e){return e.preventDefault(),daIsEmpty&&document.getElementById("da_sig_required").value=="1"?($("#daerrormess").removeClass("dasignotshowing"),setTimeout(function(){$("#daerrormess").addClass("dasignotshowing")},3e3)):($(".dasigclear").attr("disabled",!0),$(".dasigsave").attr("disabled",!0),daSaveCanvas()),!1})}function daResizeCanvas(){setTimeout(function(){daNewCanvas()},200)}function daSaveCanvas(){var e=document.getElementById("dasigcanvas").toDataURL();daSpinnerTimeout=setTimeout(daShowSpinner,1e3),daPost({da_success:1,da_the_image:e,da_ajax:1})}function daNewCanvas(){var e,n,o,t=$(window).width()-daTheBorders,s=$("#dasigpage").outerWidth(!0);t>s&&(t=s),e=t*daAspectRatio,n=$("#dasigheader").outerHeight(!0)+$("#dasigtoppart").outerHeight(!0)+$("#dasigmidpart").outerHeight(!0)+$("#dasigbottompart").outerHeight(!0),e>$(window).height()-n&&(e=$(window).height()-n),(e>275||e<30)&&(e=275),$("#dasigcontent").height(e),o='',$("#dasigcontent").html(o),daTheWidth=daThicknessScalingFactor*t/100,daTheWidth<1&&(daTheWidth=1),$("#dasigcanvas").each(function(){daCtx=$(this)[0].getContext("2d"),daCtx.strokeStyle=daColor,daCtx.lineWidth=daTheWidth}),$("#dasigcanvas").drawTouch(),$("#dasigcanvas").drawPointer(),$("#dasigcanvas").drawMouse(),daIsEmpty=1,setTimeout(function(){daJsEmbed?($(daTargetDiv)[0].scrollTo(0,1),daSteps>1&&$(daTargetDiv)[0].scrollIntoView()):window.scrollTo(0,1)},10)}$.fn.drawTouch=function(){var n=function(e){e=e.originalEvent,x=e.changedTouches[0].pageX-$("#dasigcanvas").offset().left,y=e.changedTouches[0].pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.lineJoin="round",daCtx.moveTo(x,y),daIsEmpty&&($(".dasigsave").prop("disabled",!1),daIsEmpty=0)},e=function(e){e.preventDefault(),e=e.originalEvent,x=e.changedTouches[0].pageX-$("#dasigcanvas").offset().left,y=e.changedTouches[0].pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daIsEmpty&&(daIsEmpty=0)},t=function(t){e(t)},s=function(e){e.preventDefault(),e=e.originalEvent,daCtx.lineJoin="round",x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)};$(this).on("click",s),$(this).on("touchend",t),$(this).on("touchcancel",t),$(this).on("touchstart",n),$(this).on("touchmove",e)},$.fn.drawPointer=function(){var t=function(e){e=e.originalEvent,daCtx.beginPath(),daCtx.lineJoin="round",x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},e=function(e){e.preventDefault(),e=e.originalEvent,x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},n=function(t){e(t)};$(this).on("MSPointerDown",t),$(this).on("MSPointerMove",e),$(this).on("MSPointerUp",n)},$.fn.drawMouse=function(){var e=0,n=function(t){e=1,x=t.pageX-$("#dasigcanvas").offset().left,y=t.pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.lineJoin="round",daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},t=function(t){e&&(x=t.pageX-$("#dasigcanvas").offset().left,y=t.pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0))},s=function(n){return t(n),e=0,!0};$(this).on("mousedown",n),$(this).on("mousemove",t),$(window).on("mouseup",s)};function daPost(e){for(t in e)if(e.hasOwnProperty(t)){var t,n=document.getElementById(t);if(n!=null)n.setAttribute("value",e[t]);else{console.log("Key does not exist: "+t);return}}$("#dasigform").submit()}function isCanvasSupported(){var e=document.createElement("canvas");return!!(e.getContext&&e.getContext("2d"))}daAutocomplete=Object();function daInitAutocomplete(e){var t=0;try{google}catch{t=1e3}setTimeout(function(){for(var t,s,n=0;n1&&maps[t].map.fitBounds(s)}},t)}function daAddMap(e,t,n){var s=new google.maps.Map(document.getElementById("map"+e),{zoom:11,center:new google.maps.LatLng(t,n),mapTypeId:google.maps.MapTypeId.ROADMAP}),o=new google.maps.InfoWindow;return{map:s,infowindow:o}}function daAddMarker(e,t,n){var s;return t.icon?t.icon.path&&(t.icon.path=google.maps.SymbolPath[t.icon.path]):t.icon=null,s=new google.maps.Marker({position:new google.maps.LatLng(t.latitude,t.longitude),map:e.map,icon:t.icon}),t.info&&google.maps.event.addListener(s,"click",function(t,n){return function(){e.infowindow.setContent(n),e.infowindow.open(e.map,t)}}(s,t.info)),n&&(e.infowindow.setContent(t.info),e.infowindow.open(e.map,s)),s}function daFillInAddress(e){daVarLookupRev[e]?m=daVarLookupRev[e]:m=e;var n,s,o,i,a,r,l,d,u,h,m,f=atob(m).replace(/.[a-zA-Z0-9_]+$/,""),f=f.replace(/[[\]]/g,"."),v=new RegExp("^"+f+"\\.(.*)"),p={locality:"long_name",sublocality:"long_name",administrative_area_level_3:"long_name",administrative_area_level_2:"long_name",administrative_area_level_1:"short_name",country:"short_name",postal_code:"short_name"},c={locality:"city",administrative_area_level_2:"county",administrative_area_level_1:"state",country:"country",postal_code:"zip"},g=["address","city","county","state","zip","neighborhood","sublocality","administrative_area_level_3","postal_code"],t={};$("input, select").each(function(){var e,n,s=$(this).attr("id");if(typeof s!==typeof void 0&&s!==!1)try{e=atob($(this).attr("id")),e.indexOf("_field_")==0&&(e=atob(daVarLookupRev[$(this).attr("id")])),n=v.exec(e),n.length>0&&(t[n[1]]=$(this).attr("id"))}catch{}}),n=daAutocomplete[e].getPlace(),typeof t.address!="undefined"&&document.getElementById(t.address)!=null&&(document.getElementById(t.address).value="");for(d in g)typeof t[d]!="undefined"&&document.getElementById(t[d])!=null&&(document.getElementById(t[d]).value="");a={},r=[];for(o=0;os&&(t=s),e=t*daAspectRatio,n=$("#dasigheader").outerHeight(!0)+$("#dasigtoppart").outerHeight(!0)+$("#dasigmidpart").outerHeight(!0)+$("#dasigbottompart").outerHeight(!0),e>$(window).height()-n&&(e=$(window).height()-n),(e>275||e<30)&&(e=275),$("#dasigcontent").height(e),o='',$("#dasigcontent").html(o),daTheWidth=daThicknessScalingFactor*t/100,daTheWidth<1&&(daTheWidth=1),$("#dasigcanvas").each(function(){daCtx=$(this)[0].getContext("2d"),daCtx.strokeStyle=daColor,daCtx.lineWidth=daTheWidth}),$("#dasigcanvas").drawTouch(),$("#dasigcanvas").drawPointer(),$("#dasigcanvas").drawMouse(),daIsEmpty=1,setTimeout(function(){daJsEmbed?($(daTargetDiv)[0].scrollTo(0,1),daSteps>1&&$(daTargetDiv)[0].scrollIntoView()):window.scrollTo(0,1)},10)}$.fn.drawTouch=function(){var n=function(e){e=e.originalEvent,x=e.changedTouches[0].pageX-$("#dasigcanvas").offset().left,y=e.changedTouches[0].pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.lineJoin="round",daCtx.moveTo(x,y),daIsEmpty&&($(".dasigsave").prop("disabled",!1),daIsEmpty=0)},e=function(e){e.preventDefault(),e=e.originalEvent,x=e.changedTouches[0].pageX-$("#dasigcanvas").offset().left,y=e.changedTouches[0].pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daIsEmpty&&(daIsEmpty=0)},t=function(t){e(t)},s=function(e){e.preventDefault(),e=e.originalEvent,daCtx.lineJoin="round",x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)};$(this).on("click",s),$(this).on("touchend",t),$(this).on("touchcancel",t),$(this).on("touchstart",n),$(this).on("touchmove",e)},$.fn.drawPointer=function(){var t=function(e){e=e.originalEvent,daCtx.beginPath(),daCtx.lineJoin="round",x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},e=function(e){e.preventDefault(),e=e.originalEvent,x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},n=function(t){e(t)};$(this).on("MSPointerDown",t),$(this).on("MSPointerMove",e),$(this).on("MSPointerUp",n)},$.fn.drawMouse=function(){var e=0,n=function(t){e=1,x=t.pageX-$("#dasigcanvas").offset().left,y=t.pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.lineJoin="round",daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},t=function(t){e&&(x=t.pageX-$("#dasigcanvas").offset().left,y=t.pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0))},s=function(n){return t(n),e=0,!0};$(this).on("mousedown",n),$(this).on("mousemove",t),$(window).on("mouseup",s)};function daPost(e){for(t in e)if(e.hasOwnProperty(t)){var t,n=document.getElementById(t);if(n!=null)n.setAttribute("value",e[t]);else{console.log("Key does not exist: "+t);return}}$("#dasigform").submit()}function isCanvasSupported(){var e=document.createElement("canvas");return!!(e.getContext&&e.getContext("2d"))}daAutocomplete=Object();function daInitAutocomplete(e){var t=0;try{google}catch{t=1e3}setTimeout(function(){for(var t,s,n=0;n1&&maps[t].map.fitBounds(s)}},t)}function daAddMap(e,t,n){var s=new google.maps.Map(document.getElementById("map"+e),{zoom:11,center:new google.maps.LatLng(t,n),mapTypeId:google.maps.MapTypeId.ROADMAP}),o=new google.maps.InfoWindow;return{map:s,infowindow:o}}function daAddMarker(e,t,n){var s;return t.icon?t.icon.path&&(t.icon.path=google.maps.SymbolPath[t.icon.path]):t.icon=null,s=new google.maps.Marker({position:new google.maps.LatLng(t.latitude,t.longitude),map:e.map,icon:t.icon}),t.info&&google.maps.event.addListener(s,"click",function(t,n){return function(){e.infowindow.setContent(n),e.infowindow.open(e.map,t)}}(s,t.info)),n&&(e.infowindow.setContent(t.info),e.infowindow.open(e.map,s)),s}function daFillInAddress(e){daVarLookupRev[e]?m=daVarLookupRev[e]:m=e;var n,s,o,i,a,r,l,d,u,h,m,f=atob(m).replace(/.[a-zA-Z0-9_]+$/,""),f=f.replace(/[[\]]/g,"."),v=new RegExp("^"+f+"\\.(.*)"),p={locality:"long_name",sublocality:"long_name",administrative_area_level_3:"long_name",administrative_area_level_2:"long_name",administrative_area_level_1:"short_name",country:"short_name",postal_code:"short_name"},c={locality:"city",administrative_area_level_2:"county",administrative_area_level_1:"state",country:"country",postal_code:"zip"},g=["address","city","county","state","zip","neighborhood","sublocality","administrative_area_level_3","postal_code"],t={};$("input, select").each(function(){var e,n,s=$(this).attr("id");if(typeof s!==typeof void 0&&s!==!1)try{e=atob($(this).attr("id")),e.indexOf("_field_")==0&&(e=atob(daVarLookupRev[$(this).attr("id")])),n=v.exec(e),n.length>0&&(t[n[1]]=$(this).attr("id"))}catch{}}),n=daAutocomplete[e].getPlace(),typeof t.address!="undefined"&&document.getElementById(t.address)!=null&&(document.getElementById(t.address).value="");for(d in g)typeof t[d]!="undefined"&&document.getElementById(t[d])!=null&&(document.getElementById(t[d]).value="");a={},r=[];for(o=0;o',uploadIcon:'',uploadRetryIcon:'',downloadIcon:'',zoomIcon:'',dragIcon:'',indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorPaused:''},layoutTemplates:{fileIcon:' '},previewZoomButtonIcons:{prev:'',next:'',toggleheader:'',fullscreen:'',borderless:'',close:''},previewFileIcon:'',browseIcon:'',removeIcon:'',cancelIcon:'',pauseIcon:'',uploadIcon:'',msgValidationErrorIcon:' '}})(window.jQuery);
-if(typeof $=="undefined")var $=jQuery.noConflict(),daCtx,daColor,daTheWidth,daAspectRatio,daTheBorders,daIsEmpty,daAutocomplete;daColor="#000";function daInitializeSignature(){daAspectRatio=.4,daTheBorders=30,daIsEmpty=1,setTimeout(function(){isCanvasSupported()||daPost({da_success:0,da_ajax:1}),daNewCanvas(),$(document).on("touchmove",function(e){window.matchMedia("(max-width: 575px)").matches&&e.preventDefault()})},500),$(window).on("resize",function(){daResizeCanvas()}),$(window).on("orientationchange",function(){daResizeCanvas()}),$(".dasigclear").click(function(e){return e.preventDefault(),daNewCanvas(),!1}),$(".dasigsave").click(function(e){return e.preventDefault(),daIsEmpty&&document.getElementById("da_sig_required").value=="1"?($("#daerrormess").removeClass("dasignotshowing"),setTimeout(function(){$("#daerrormess").addClass("dasignotshowing")},3e3)):($(".dasigclear").attr("disabled",!0),$(".dasigsave").attr("disabled",!0),daSaveCanvas()),!1})}function daResizeCanvas(){setTimeout(function(){daNewCanvas()},200)}function daSaveCanvas(){var e=document.getElementById("dasigcanvas").toDataURL();daSpinnerTimeout=setTimeout(daShowSpinner,1e3),daPost({da_success:1,da_the_image:e,da_ajax:1})}function daNewCanvas(){var e,n,o,t=$(window).width()-daTheBorders,s=$("#dasigpage").outerWidth(!0);t>s&&(t=s),e=t*daAspectRatio,n=$("#dasigheader").outerHeight(!0)+$("#dasigtoppart").outerHeight(!0)+$("#dasigmidpart").outerHeight(!0)+$("#dasigbottompart").outerHeight(!0),e>$(window).height()-n&&(e=$(window).height()-n),(e>275||e<30)&&(e=275),$("#dasigcontent").height(e),o='',$("#dasigcontent").html(o),daTheWidth=daThicknessScalingFactor*t/100,daTheWidth<1&&(daTheWidth=1),$("#dasigcanvas").each(function(){daCtx=$(this)[0].getContext("2d"),daCtx.strokeStyle=daColor,daCtx.lineWidth=daTheWidth}),$("#dasigcanvas").drawTouch(),$("#dasigcanvas").drawPointer(),$("#dasigcanvas").drawMouse(),daIsEmpty=1,setTimeout(function(){daJsEmbed?($(daTargetDiv)[0].scrollTo(0,1),daSteps>1&&$(daTargetDiv)[0].scrollIntoView()):window.scrollTo(0,1)},10)}$.fn.drawTouch=function(){var n=function(e){e=e.originalEvent,x=e.changedTouches[0].pageX-$("#dasigcanvas").offset().left,y=e.changedTouches[0].pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.lineJoin="round",daCtx.moveTo(x,y),daIsEmpty&&($(".dasigsave").prop("disabled",!1),daIsEmpty=0)},e=function(e){e.preventDefault(),e=e.originalEvent,x=e.changedTouches[0].pageX-$("#dasigcanvas").offset().left,y=e.changedTouches[0].pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daIsEmpty&&(daIsEmpty=0)},t=function(t){e(t)},s=function(e){e.preventDefault(),e=e.originalEvent,daCtx.lineJoin="round",x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)};$(this).on("click",s),$(this).on("touchend",t),$(this).on("touchcancel",t),$(this).on("touchstart",n),$(this).on("touchmove",e)},$.fn.drawPointer=function(){var t=function(e){e=e.originalEvent,daCtx.beginPath(),daCtx.lineJoin="round",x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},e=function(e){e.preventDefault(),e=e.originalEvent,x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},n=function(t){e(t)};$(this).on("MSPointerDown",t),$(this).on("MSPointerMove",e),$(this).on("MSPointerUp",n)},$.fn.drawMouse=function(){var e=0,n=function(t){e=1,x=t.pageX-$("#dasigcanvas").offset().left,y=t.pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.lineJoin="round",daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},t=function(t){e&&(x=t.pageX-$("#dasigcanvas").offset().left,y=t.pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0))},s=function(n){return t(n),e=0,!0};$(this).on("mousedown",n),$(this).on("mousemove",t),$(window).on("mouseup",s)};function daPost(e){for(t in e)if(e.hasOwnProperty(t)){var t,n=document.getElementById(t);if(n!=null)n.setAttribute("value",e[t]);else{console.log("Key does not exist: "+t);return}}$("#dasigform").submit()}function isCanvasSupported(){var e=document.createElement("canvas");return!!(e.getContext&&e.getContext("2d"))}daAutocomplete=Object();function daInitAutocomplete(e){var t=0;try{google}catch{t=1e3}setTimeout(function(){for(var t,s,n=0;n1&&maps[t].map.fitBounds(s)}},t)}function daAddMap(e,t,n){var s=new google.maps.Map(document.getElementById("map"+e),{zoom:11,center:new google.maps.LatLng(t,n),mapTypeId:google.maps.MapTypeId.ROADMAP}),o=new google.maps.InfoWindow;return{map:s,infowindow:o}}function daAddMarker(e,t,n){var s;return t.icon?t.icon.path&&(t.icon.path=google.maps.SymbolPath[t.icon.path]):t.icon=null,s=new google.maps.Marker({position:new google.maps.LatLng(t.latitude,t.longitude),map:e.map,icon:t.icon}),t.info&&google.maps.event.addListener(s,"click",function(t,n){return function(){e.infowindow.setContent(n),e.infowindow.open(e.map,t)}}(s,t.info)),n&&(e.infowindow.setContent(t.info),e.infowindow.open(e.map,s)),s}function daFillInAddress(e){daVarLookupRev[e]?m=daVarLookupRev[e]:m=e;var n,s,o,i,a,r,l,d,u,h,m,f=atob(m).replace(/.[a-zA-Z0-9_]+$/,""),f=f.replace(/[[\]]/g,"."),v=new RegExp("^"+f+"\\.(.*)"),p={locality:"long_name",sublocality:"long_name",administrative_area_level_3:"long_name",administrative_area_level_2:"long_name",administrative_area_level_1:"short_name",country:"short_name",postal_code:"short_name"},c={locality:"city",administrative_area_level_2:"county",administrative_area_level_1:"state",country:"country",postal_code:"zip"},g=["address","city","county","state","zip","neighborhood","sublocality","administrative_area_level_3","postal_code"],t={};$("input, select").each(function(){var e,n,s=$(this).attr("id");if(typeof s!==typeof void 0&&s!==!1)try{e=atob($(this).attr("id")),e.indexOf("_field_")==0&&(e=atob(daVarLookupRev[$(this).attr("id")])),n=v.exec(e),n.length>0&&(t[n[1]]=$(this).attr("id"))}catch{}}),n=daAutocomplete[e].getPlace(),typeof t.address!="undefined"&&document.getElementById(t.address)!=null&&(document.getElementById(t.address).value="");for(d in g)typeof t[d]!="undefined"&&document.getElementById(t[d])!=null&&(document.getElementById(t[d]).value="");a={},r=[];for(o=0;os&&(t=s),e=t*daAspectRatio,n=$("#dasigheader").outerHeight(!0)+$("#dasigtoppart").outerHeight(!0)+$("#dasigmidpart").outerHeight(!0)+$("#dasigbottompart").outerHeight(!0),e>$(window).height()-n&&(e=$(window).height()-n),(e>275||e<30)&&(e=275),$("#dasigcontent").height(e),o='',$("#dasigcontent").html(o),daTheWidth=daThicknessScalingFactor*t/100,daTheWidth<1&&(daTheWidth=1),$("#dasigcanvas").each(function(){daCtx=$(this)[0].getContext("2d"),daCtx.strokeStyle=daColor,daCtx.lineWidth=daTheWidth}),$("#dasigcanvas").drawTouch(),$("#dasigcanvas").drawPointer(),$("#dasigcanvas").drawMouse(),daIsEmpty=1,setTimeout(function(){daJsEmbed?($(daTargetDiv)[0].scrollTo(0,1),daSteps>1&&$(daTargetDiv)[0].scrollIntoView()):window.scrollTo(0,1)},10)}$.fn.drawTouch=function(){var n=function(e){e=e.originalEvent,x=e.changedTouches[0].pageX-$("#dasigcanvas").offset().left,y=e.changedTouches[0].pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.lineJoin="round",daCtx.moveTo(x,y),daIsEmpty&&($(".dasigsave").prop("disabled",!1),daIsEmpty=0)},e=function(e){e.preventDefault(),e=e.originalEvent,x=e.changedTouches[0].pageX-$("#dasigcanvas").offset().left,y=e.changedTouches[0].pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daIsEmpty&&(daIsEmpty=0)},t=function(t){e(t)},s=function(e){e.preventDefault(),e=e.originalEvent,daCtx.lineJoin="round",x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)};$(this).on("click",s),$(this).on("touchend",t),$(this).on("touchcancel",t),$(this).on("touchstart",n),$(this).on("touchmove",e)},$.fn.drawPointer=function(){var t=function(e){e=e.originalEvent,daCtx.beginPath(),daCtx.lineJoin="round",x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},e=function(e){e.preventDefault(),e=e.originalEvent,x=e.pageX-$("#dasigcanvas").offset().left,y=e.pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},n=function(t){e(t)};$(this).on("MSPointerDown",t),$(this).on("MSPointerMove",e),$(this).on("MSPointerUp",n)},$.fn.drawMouse=function(){var e=0,n=function(t){e=1,x=t.pageX-$("#dasigcanvas").offset().left,y=t.pageY-$("#dasigcanvas").offset().top,daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.lineJoin="round",daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0)},t=function(t){e&&(x=t.pageX-$("#dasigcanvas").offset().left,y=t.pageY-$("#dasigcanvas").offset().top,daCtx.lineTo(x,y),daCtx.stroke(),daCtx.beginPath(),daCtx.arc(x,y,.5*daTheWidth,0,2*Math.PI),daCtx.fill(),daCtx.beginPath(),daCtx.moveTo(x,y),daIsEmpty&&(daIsEmpty=0))},s=function(n){return t(n),e=0,!0};$(this).on("mousedown",n),$(this).on("mousemove",t),$(window).on("mouseup",s)};function daPost(e){for(t in e)if(e.hasOwnProperty(t)){var t,n=document.getElementById(t);if(n!=null)n.setAttribute("value",e[t]);else{console.log("Key does not exist: "+t);return}}$("#dasigform").submit()}function isCanvasSupported(){var e=document.createElement("canvas");return!!(e.getContext&&e.getContext("2d"))}daAutocomplete=Object();function daInitAutocomplete(e){var t=0;try{google}catch{t=1e3}setTimeout(function(){for(var t,s,n=0;n1&&maps[t].map.fitBounds(s)}},t)}function daAddMap(e,t,n){var s=new google.maps.Map(document.getElementById("map"+e),{zoom:11,center:new google.maps.LatLng(t,n),mapTypeId:google.maps.MapTypeId.ROADMAP}),o=new google.maps.InfoWindow;return{map:s,infowindow:o}}function daAddMarker(e,t,n){var s;return t.icon?t.icon.path&&(t.icon.path=google.maps.SymbolPath[t.icon.path]):t.icon=null,s=new google.maps.Marker({position:new google.maps.LatLng(t.latitude,t.longitude),map:e.map,icon:t.icon}),t.info&&google.maps.event.addListener(s,"click",function(t,n){return function(){e.infowindow.setContent(n),e.infowindow.open(e.map,t)}}(s,t.info)),n&&(e.infowindow.setContent(t.info),e.infowindow.open(e.map,s)),s}function daFillInAddress(e){daVarLookupRev[e]?m=daVarLookupRev[e]:m=e;var n,s,o,i,a,r,l,d,u,h,m,f=atob(m).replace(/.[a-zA-Z0-9_]+$/,""),f=f.replace(/[[\]]/g,"."),v=new RegExp("^"+f+"\\.(.*)"),p={locality:"long_name",sublocality:"long_name",administrative_area_level_3:"long_name",administrative_area_level_2:"long_name",administrative_area_level_1:"short_name",country:"short_name",postal_code:"short_name"},c={locality:"city",administrative_area_level_2:"county",administrative_area_level_1:"state",country:"country",postal_code:"zip"},g=["address","city","county","state","zip","neighborhood","sublocality","administrative_area_level_3","postal_code"],t={};$("input, select").each(function(){var e,n,s=$(this).attr("id");if(typeof s!==typeof void 0&&s!==!1)try{e=atob($(this).attr("id")),e.indexOf("_field_")==0&&(e=atob(daVarLookupRev[$(this).attr("id")])),n=v.exec(e),n.length>0&&(t[n[1]]=$(this).attr("id"))}catch{}}),n=daAutocomplete[e].getPlace(),typeof t.address!="undefined"&&document.getElementById(t.address)!=null&&(document.getElementById(t.address).value="");for(d in g)typeof t[d]!="undefined"&&document.getElementById(t[d])!=null&&(document.getElementById(t[d]).value="");a={},r=[];for(o=0;o
':''},disable:function(){this.$element.prop("disabled",!0),this.$button.attr("disabled",!0),this.disabled=!0,this.$container.addClass("combobox-disabled")},enable:function(){this.$element.prop("disabled",!1),this.$button.attr("disabled",!1),this.disabled=!1,this.$container.removeClass("combobox-disabled")},parse:function(){var a=this,n={},s={},o=[],t=!1,i="";return this.$source.find("option").each(function(){var r=e(this);if(r.val()===""){a.options.placeholder=r.text();return}n[r.text()]=r.val(),s[r.val()]=r.text(),o.push(r.text()),r.prop("selected")&&(t=r.text(),i=r.val())}),this.map=n,this.revMap=s,t?(this.$element.val(t),this.$target.val(i),this.$container.addClass("combobox-selected"),this.selected=!0):(this.$container.removeClass("combobox-selected"),this.selected=!1),o},transferAttributes:function(){if(this.options.placeholder=this.$source.attr("data-placeholder")||this.options.placeholder,this.options.appendId!=="undefined"&&(this.$element.attr("id",this.$source.attr("id")),this.$source.attr("id",this.$source.attr("id")+this.options.appendId),daComboBoxes[this.$element.attr("id")]=this),this.$menu.attr("id",this.$element.attr("id")+"menu"),this.$element.attr("aria-controls",this.$menu.attr("id")),this.$element.attr("aria-owns",this.$menu.attr("id")),this.$button.attr("aria-controls",this.$menu.attr("id")),this.$button.attr("aria-label",this.$source.attr("aria-label")),this.$button.attr("aria-labelledby",this.$source.attr("aria-labelledby")),this.$button.attr("aria-describedby",this.$source.attr("aria-describedby")),this.$element.attr("placeholder",this.options.placeholder),this.$target.prop("name",this.$source.prop("name")),this.$target.val(this.$source.val()),this.$source.removeAttr("name"),this.$element.attr("required",this.$source.attr("required")),this.$element.attr("rel",this.$source.attr("rel")),this.$element.attr("title",this.$source.attr("title")),this.$element.attr("class",this.$source.attr("class")),this.$element.attr("tabindex",this.$source.attr("tabindex")),this.$source.removeAttr("tabindex"),!this.$target.val()&&this.$source.data("default")){var e=this.$source.data("default");this.$element.val(e),this.$target.val(e)}this.$source.attr("disabled")!==void 0&&this.disable()},select:function(){var t,e=this.$menu.find(".active").attr("data-value");this.$container.parent().find(".da-has-error").remove(),this.$element.val(this.updater(e)),t=this.$target.val(),t!=this.map[e]&&this.$target.val(this.map[e]),t=this.$source.val(),t!=this.map[e]&&this.$source.val(this.map[e]).trigger("change"),this.$container.addClass("combobox-selected"),this.selected=!0,this.hide()},manualSelect:function(e){var t,n=!1;this.$container.parent().find(".da-has-error").remove(),e!==""&&this.revMap[e]!==void 0?(this.$element.val(this.revMap[e]),n=!0):this.$element.val(e),t=this.$target.val(),t!=e&&this.$target.val(e),t=this.$source.val(),t!=e&&this.$source.val(e).trigger("change"),e!==""&&n&&(this.$container.addClass("combobox-selected"),this.selected=!0)},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.hidden=!1,this.$element.attr("aria-expanded",!0),this.$button.attr("aria-expanded",!0),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.hidden=!0,this.$element.on("blur",e.proxy(this.blur,this)),this.$element.attr("aria-expanded",!1),this.$button.attr("aria-expanded",!1),this.shown=!1,this},lookup:function(){this.query=this.$element.val(),this.process(this.source)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){for(var t,n=[],s=[],o=[];t=e.shift();)t.toLowerCase().indexOf(this.query.toLowerCase())?~t.indexOf(this.query)?s.push(t):o.push(t):n.push(t);return n.concat(s,o)},highlighter:function(e){var t=this.query.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");return t?e.replace(new RegExp("("+t+")","ig"),function(e,t){return""+t+""}):e},render:function(t){var n=this;return t=e(t).map(function(t,s){return t=e(n.options.item).attr("data-value",s).attr("aria-label",s),t.attr("id",n.$element.attr("id")+"-option-"+s),t.html(n.highlighter(s)),t[0]}),this.setActive(t.first()),this.$menu.html(t),this},setActive:function(e){e.addClass("active").attr("aria-selected",!0),this.$element.attr("aria-activedescendant",e.attr("id"))},swapActive:function(e,t){e.removeClass("active").attr("aria-selected",!1),this.setActive(t)},next:function(){var s=this.$menu.find('[aria-selected="true"]'),n=s.next();n.length||(n=e(this.$menu.find("li")[0])),this.swapActive(s,n)},prev:function(){var n=this.$menu.find('[aria-selected="true"]'),t=n.prev();t.length||(t=this.$menu.find("li").last()),this.swapActive(n,t)},toggle:function(e){return this.disabled||(this.$container.hasClass("combobox-selected")?(this.clearTarget(),this.$source.trigger("change"),this.clearElement(),this.$element.attr("aria-expanded",!1),this.$button.attr("aria-expanded",!1)):this.shown?(this.$element.attr("aria-expanded",!1),this.$button.attr("aria-expanded",!1),this.hide()):(this.$element.attr("aria-expanded",!0),this.$button.attr("aria-expanded",!0),this.clearElement(),this.lookup())),e&&(e.preventDefault(),e.stopPropagation()),!1},clearElement:function(){this.$element.val("").focus()},clearTarget:function(){this.$source.val(""),this.$target.val(""),this.$container.removeClass("combobox-selected"),this.selected=!1},refresh:function(){this.source=this.parse(),this.options.items=this.source.length},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("change",e.proxy(this.change,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this)).on("mousedown","li",e.proxy(this.mousedown,this)),this.$button.on("click touchend",e.proxy(this.toggle,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t=typeof this.$element[e]=="function"),t},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev(),this.fixMenuScroll();break;case 40:e.preventDefault(),this.next(),this.fixMenuScroll();break}e.stopPropagation()},fixMenuScroll:function(){var t,n,s,o,e=this.$menu.find(".active");e.length&&(this.$element.attr("aria-activedescendant",e.attr("id")),t=e.position().top,n=t+e.height(),s=this.$menu.scrollTop(),o=this.$menu.height(),n>o?this.$menu.scrollTop(s+n-o):t<0&&this.$menu.scrollTop(s+t))},setActiveDescendant:function(t){this.mousedover&&this.swapActive(this.$menu.find(".active"),e(t.currentTarget))},keydown:function(t){this.suppressKeyPressRepeat=~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(t){switch(t.keyCode){case 40:this.shown||this.toggle();break;case 39:case 38:case 37:case 36:case 35:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;if(this.selected){for(var i=this.$element.val(),s=this.$menu.find("li"),o=s.length,n=0;n