1 line
9.1 KiB
JavaScript
1 line
9.1 KiB
JavaScript
!function($,e,t,a){"use strict";var o,n,i,r,l,c,s,d,p,h,u="#ff1414",m=1,g=.3,f=t.metabox(),w=f.find(".cmb-repeatable-group"),v=null,b=!1;e.reRender=function(){b||(b=!0),clearTimeout(v),v=setTimeout((function(){y(),b=!1}),250)};var y=function(){if(o){E(),l=o.data("iterator"),i=o.find("input[data-image-url]"),r=$("#_da_hotspots_"+l+"_shape");var e=i.data("image-url");(c=new Image).onload=function(){k()},c.src=e}},k=function(){s=$(c);var e=$('<div id="hotspots-drawing-wrapper-'+l+'" class="hotspots-drawing-wrapper"></div>');e.append(s),i.after(e);var t=$('<div id="hotspots-drawing-container-'+l+'" class="hotspots-drawing-container"></div>'),a=s.width(),o=s.height();t.css({width:a+"px",height:o+"px"}),s.after(t);var r=c.naturalHeight,f=c.naturalWidth;s.data("natW",f),s.data("natH",r);var w=[[0,0],[r,f]],v=[[-50,-50],[r+50,f+50]];n=L.map("hotspots-drawing-container-"+l,{attributionControl:!1,boxZoom:!1,crs:L.CRS.Simple,doubleClickZoom:!0,dragging:!0,keyboard:!1,maxBounds:v,maxBoundsViscosity:1,maxZoom:10,minZoom:-1,scrollWheelZoom:!1,tap:!0,touchZoom:!0,zoomControl:!0,zoomSnap:0});L.imageOverlay(s.attr("src"),w).addTo(n);n.fitBounds(w),h=new L.FeatureGroup,n.addLayer(h),(d=new L.Control.Draw({draw:{circlemarker:!1,marker:!1,polyline:!1}})).setDrawingOptions({rectangle:{shapeOptions:{color:u,weight:m,fillOpacity:g}},circle:{shapeOptions:{color:u,weight:m,fillOpacity:g},showRadius:!1},polygon:{shapeOptions:{color:u,weight:m,fillOpacity:g}}}),n.addControl(d),p=new L.Control.Draw({edit:{featureGroup:h},draw:!1}),n.on(L.Draw.Event.CREATED,(function(e){h.addLayer(e.layer),x(e.layer),S()})),n.on(L.Draw.Event.DELETED,(function(e){0===h.getLayers().length&&A()})),L.Draw.Polyline.prototype._onTouch=L.Util.falseFn,R(),C(),_()},_=function(){L.drawLocal={draw:{toolbar:{actions:{title:"Cancel drawing",text:"Cancel"},finish:{title:"Finish drawing",text:"Finish"},undo:{title:"Delete last point drawn",text:"Delete last point"},buttons:{polyline:"Draw a polyline",polygon:"Draw a polygon",rectangle:"Draw a rectangle",circle:"Draw a circle",marker:"Draw a marker",circlemarker:"Draw a circlemarker"}},handlers:{circle:{tooltip:{start:"Click and drag to draw circle."},radius:""},circlemarker:{tooltip:{start:"Click map to place circle marker."}},marker:{tooltip:{start:"Click map to place marker."}},polygon:{tooltip:{start:"Click to start drawing shape.",cont:"Click to continue drawing shape.",end:"Click first point to close this shape."}},polyline:{error:"<strong>Error:</strong> shape edges cannot cross!",tooltip:{start:"Click to start drawing line.",cont:"Click to continue drawing line.",end:"Click last point to finish line."}},rectangle:{tooltip:{start:"Click and drag to draw rectangle."}},simpleshape:{tooltip:{end:"Release mouse to finish drawing."}}}},edit:{toolbar:{actions:{save:{title:"Save changes",text:"Save"},cancel:{title:"Cancel editing, discards all changes",text:"Cancel"},clearAll:{title:"Clear all layers",text:"Clear All"}},buttons:{edit:"Edit layers",editDisabled:"No layers to edit",remove:"Delete layers",removeDisabled:"No layers to delete"}},handlers:{edit:{tooltip:{text:"Drag handles or markers to edit features.",subtext:"Click cancel to undo changes."}},remove:{tooltip:{text:"Click on a feature to remove."}}}}}},C=function(){n.on("draw:created",(function(e){var t=e.layerType,a=e.layer;switch(O(t),t){case"polygon":case"rectangle":D(a.getLatLngs());break;case"circle":T(a)}})),n.on("draw:edited",(function(e){var t=e.layers,a=r.val();t.eachLayer((function(e){switch(a){case"polygon":case"rectangle":D(e.getLatLngs());break;case"circle":T(e)}}))})),n.on("draw:deleted",(function(e){i.val("")}))},x=function(e){e.on("click",(function(){let e=document.querySelector(".leaflet-draw-edit-edit"),t=document.querySelector(".leaflet-draw-edit-remove"),a=e.classList.contains("leaflet-draw-toolbar-button-enabled"),o=t.classList.contains("leaflet-draw-toolbar-button-enabled");a||o||e.click()}))},D=function(e){var t=new Array;e[0].map((function(e,a){t.push(Math.round(e.lng)),t.push(s.data("natH")-Math.round(e.lat))})),i.val(t)},T=function(e){var t=new Array,a=e.getLatLng();t.push(Math.round(a.lng)),t.push(s.data("natH")-Math.round(a.lat)),t.push(Math.round(e.getRadius())),i.val(t)},O=function(e){r.val(e),o.addClass("shape-"+e)},A=function(){n.addControl(d),n.removeControl(p)},S=function(){n.removeControl(d),n.addControl(p)},E=function(){n&&(n.remove(),$(".hotspots-drawing-wrapper").remove(),n=null)},R=function(){if(i.val()){S();var e=i.val().split(",");switch($("#_da_hotspots_"+l+"_shape").val()){case"polygon":j(e);break;case"circle":M(e);break;case"rectangle":H(e)}}},j=function(e){for(var t=[],a=[],o=0;o<e.length;o++)o%2==0?t.push(e[o]):a.push(e[o]);var n=a.map((function(e,a){return[s.data("natH")-e,t[a]]})),i=L.polygon(n,{className:"da-spot",color:u,weight:m,fillOpacity:g});h.addLayer(i),x(i)},H=function(e){for(var t=[],a=[],o=0;o<e.length;o++)o%2==0?t.push(e[o]):a.push(e[o]);var n=a.map((function(e,a){return[s.data("natH")-e,t[a]]})),i=[n[0],n[2]],r=L.rectangle(i,{className:"da-spot",color:u,weight:m,fillOpacity:g});h.addLayer(r),x(r)},M=function(e){var t=e[0],a=s.data("natH")-e[1],o=e[2],n=L.circle([a,t],{radius:o,color:u,weight:m,fillOpacity:g,showRadius:!1});h.addLayer(n),x(n)},Z=function(e){var t=$(e),a=t.val();if(a){var o,n=(o=t.closest(".cmb-repeatable-grouping").find(".cmb-group-title")).find("span");(o=n.length?n:o).text(a)}},F=function(){"lightbox"===$('input[name="_da_map_layout"]:checked').val()?($("#_da_event_trigger").val("click"),$(".cmb2-id--da-event-trigger").hide()):$(".cmb2-id--da-event-trigger").show()},B=function(e){$(e).find("[data-action]").closest(".cmb-row").hide(),$(e).find(".wp-editor-wrap").closest(".cmb-row").hide();var t=$(e).find(".cmb2_select.action").val();t?$(e).find('[data-action="'+t+'"]').closest(".cmb-row").show():($(e).find('[data-action="more-info"]').closest(".cmb-row").show(),$(e).find(".wp-editor-wrap").closest(".cmb-row").show())},N=function(e){var t=Object.keys(daThemes.themes[e].values);$.each(t,(function(){$('input[name="'+daThemes.cfPrefix+this+'"]').val(daThemes.themes[e].values[this]).trigger("change")}))},Q=function(){var e=$("#styles").find(".cmb-repeatable-grouping"),t=$("#da-theme-pack-select");e.each((function(){var e=$(this),a=e.find("select");if(!a.length){var o=e.data("iterator");a=t.clone().attr("id","colorScheme-"+o);var n=e.find(".cmb2-id--da-styles-"+o+"-title"),i=$("<div></div>",{class:"cmb-row cmb-type-select premade-color-schemes"});$("<div></div>",{class:"cmb-th",html:'<label for="colorScheme-'+o+'">Color Scheme</label>'}).appendTo(i);$("<div></div>",{class:"cmb-td",html:'<p class="cmb2-metabox-description">Quickly apply a color scheme to this style (you can adjust each color afterwards)</p>'}).appendTo(i).prepend(a),n.after(i)}a.on("change",(function(){confirm("Applying a new theme will overwite the current styling you have selected for this hotspot style")?z(e,$(this)):$(this).val("")}))}))},z=function(e,t){var a=t.val(),o=Object.keys(daThemes.themes[a].values);$.each(o,(function(){e.find('input[id$="'+this+'"]').val(daThemes.themes[a].values[this]).trigger("change")}))};e.init=function(){var e;f.off("cmb2_remove_row",".cmb-repeatable-group",t.resetTitlesAndIterator),w.on("cmb2_add_row",(function(e,t){t.siblings(".cmb-repeatable-grouping").addClass("closed"),E(),o=t,y()})),$("#field_group").on("click",".cmb-group-title, .cmbhandle",(function(e){var t=$(e.target).closest(".cmb-row");t.hasClass("closed")||(t.siblings(".cmb-repeatable-grouping").addClass("closed"),E(),o=t,y())})),$(".cmb-repeatable-grouping").addClass("closed"),$('input[name="_da_map_layout"]').on("change",(function(){F()})),F(),$("#field_group").on("keyup click",'input[name$="[title]"]',(function(){var e=$(event.target);Z(e)})),$('input[name$="[title]"]').each((function(){Z($(this))})),$(".cmb2-wrap .cmb-repeatable-grouping").each((function(){B(this)})),$(".cmb2-wrap").on("change",".cmb2_select.action",(function(){var e=$(this).closest(".cmb-repeatable-grouping");B(e)})),$("#da-theme-pack-select").on("change",(function(){confirm("Applying a new theme will overwrite the current styling you have selected")?N($(this).val()):$("#da-theme-pack-select").val("")})),$(".cmb-type-opacity input").on("change",(function(){var e=100*($(this).val()-.01);e=e.toFixed(0),$(this).parent().find(".opacity-percentage-value").html(e)})),$(".da-disable-third-party-js").hide(),(e=$("#_da_hotspots_repeat")).length&&e.sortable({items:".cmb-repeatable-grouping",handle:".cmbhandle-title"}),function(){var e=$("#_da_always_visible");function t(){var t=$("#cmb2-metabox-highlight_styling_metabox"),a=$("#cmb2-metabox-styles");e.is(":checked")?(t.addClass("always-visible"),a.addClass("always-visible")):(t.removeClass("always-visible"),a.removeClass("always-visible"))}t(),e.on("change",t)}(),function(){var e=$("#_da_has_multiple_styles");function t(){var t=$("#styles"),a=$("#field_group").find('select[id$="_style"]').parents(".cmb-repeat-group-field");e.is(":checked")?(t.show(),a.show()):(t.hide(),a.hide())}t(),e.on("change",t)}(),Q(),$("#styles .cmb-repeatable-group").on("cmb2_add_row",(function(){Q()}))}}(jQuery,window.hotspotAdmin=window.hotspotAdmin||{},window.CMB2),jQuery(document).on("cmb_init",(function(){hotspotAdmin.init()})),jQuery(window).on("resize orientationchange",(function(e){hotspotAdmin.reRender()})); |