Plugin Directory

Changeset 1646815


Ignore:
Timestamp:
04/27/2017 05:24:48 PM (9 years ago)
Author:
thomaspark
Message:

v0.4.13

Location:
snowball/trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • snowball/trunk/modules/googlemaps/admin.js

    r1530748 r1646815  
    66  });
    77
    8   $("#snowball-main").on("change keyup", ".snowball-block-googlemaps .map-user", function() {
     8  $("#snowball-main").on("change keyup", ".snowball-block-googlemaps .map-user", debounce(function() {
    99    var block = $(this).closest(".snowball-block-googlemaps");
    1010    var url = $(this).val();
    1111    var props = mapParse(url);
    1212
    13     block.find("[data-target='lat']").val(props.lat);
    14     block.find("[data-target='lon']").val(props.lon);
    15     block.find("[data-target='zoom']").val(props.zoom);
    16     block.find(".zoom-output").text(props.zoom);
    17     block.find("[data-target='maptype'][value='" + props.maptype +  "']").prop("checked", true);
     13    var lat = props && props.lat ? props.lat : '39.9581888';
     14    var lon = props && props.lon ? props.lon : '-75.1887621';
     15    var zoom = props && props.zoom ? props.zoom : '14';
     16    var maptype = props && props.maptype ? props.maptype : 'roadmap';
     17
     18    block.find("[data-target='lat']").val(lat);
     19    block.find("[data-target='lon']").val(lon);
     20    block.find("[data-target='zoom']").val(zoom);
     21    block.find(".zoom-output").text(zoom);
     22    block.find("[data-target='maptype'][value='" + maptype +  "']").prop("checked", true);
    1823
    1924    block.trigger("render");
    20   });
     25  }, 250));
    2126
    22   $("#snowball-main").on("input change", ".snowball-block-googlemaps .zoom", function() {
     27  $("#snowball-main").on("input change", ".snowball-block-googlemaps .zoom", debounce(function() {
    2328    var block = $(this).closest(".snowball-block-googlemaps");
    2429    var zoom = $(this).val();
    2530
    2631    block.find(".zoom-output").text(zoom);
    27   });
     32  }, 50));
    2833
    2934  function mapParse(url) {
  • snowball/trunk/modules/soundcloud/admin.js

    r1278994 r1646815  
    1616  function getSoundCloudUrl(id, options) {
    1717    var soundCloudUrl = "https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/";
    18     soundCloudUrl = soundCloudUrl + id + "&show_reposts=false&auto_play=false"
     18    soundCloudUrl = soundCloudUrl + id + "&show_reposts=false&auto_play=false";
     19
    1920    for (var key in options) {
    2021      if (options.hasOwnProperty(key)) {
     
    4647  });
    4748
    48   $("#snowball-main").on("change keyup", ".snowball-block-soundcloud", function() {
     49  $("#snowball-main").on("change keyup", ".snowball-block-soundcloud", debounce(function() {
    4950    var block = $(this).closest(".snowball-block-soundcloud");
    5051    var soundCloudLink = $(block).find("input[data-target=embed-link]").val();
     
    6566    $(block).find(".track-url").val(trackUrl);
    6667    block.trigger("render");
    67   });
     68  }, 250));
    6869})(jQuery);
  • snowball/trunk/modules/twitter/admin.js

    r1278994 r1646815  
    99  });
    1010
    11   $("#snowball-main").on("change keyup", ".snowball-block-twitter [data-target='tweet-url']", function() {
     11  $("#snowball-main").on("change keyup", ".snowball-block-twitter [data-target='tweet-url']", debounce(function() {
    1212    var block = $(this).closest(".snowball-block-twitter");
    1313    var tweetUrl = $(this).val().trim();
     
    1515
    1616    block.find("[data-target='id']").val(tweetID);
    17   });
     17  }, 250));
    1818
    1919  $("#snowball-main").on("rendered", ".snowball-block-twitter", function() {
  • snowball/trunk/modules/vimeo/admin.html

    r1278994 r1646815  
    11<form>
    22  <p>URL<br>
    3     <input type="text" class="video-url large-text" data-target="video-url" value="https://vimeo.com/124847087">
     3    <input type="text" class="video-url large-text" data-target="video-url" value="https://vimeo.com/65982111">
    44    <input type="hidden" class="video-id" data-target="video-id">
    55  </p>
  • snowball/trunk/modules/vimeo/admin.js

    r1278994 r1646815  
    88  });
    99
    10   $("#snowball-main").on("change keyup", ".snowball-block-vimeo .video-url", function() {
     10  $("#snowball-main").on("change keyup", ".snowball-block-vimeo .video-url", debounce(function() {
    1111    var block = $(this).closest(".snowball-block-vimeo");
    1212    var videoUrl = $(this).val();
     
    1515    block.find(".video-id").val(videoID);
    1616    block.trigger("render");
    17   });
     17  }, 250));
    1818
    1919  $("#snowball-main").on("change keyup", ".snowball-block-vimeo [data-target='control-color-input']", function() {
     
    3434
    3535    var matches = re.exec(videoUrl);
     36    var match = matches && matches[1] ? matches[1] : "65982111";
    3637
    37     return matches[1];
     38    return match;
    3839  }
    3940})(jQuery);
  • snowball/trunk/modules/vine/admin.html

    r1278994 r1646815  
    11<form>
    22  <p>URL<br>
    3     <input type="text" class="video-url large-text" data-target="video-url" value="https://vine.co/v/enh7za76blI">
     3    <input type="text" class="video-url large-text" data-target="video-url" value="https://vine.co/v/bjHh0zHdgZT">
    44    <input type="hidden" class="video-id" data-target="video-id">
    55  </p>
  • snowball/trunk/modules/vine/admin.js

    r1278994 r1646815  
    99  });
    1010
    11   $("#snowball-main").on("change keyup", ".snowball-block-vine .video-url", function() {
     11  $("#snowball-main").on("change keyup", ".snowball-block-vine .video-url", debounce(function() {
    1212    var block = $(this).closest(".snowball-block-vine");
    1313    var videoUrl = $(this).val();
     
    1616    block.find(".video-id").val(videoID);
    1717    block.trigger("render");
    18   });
     18  }, 250));
    1919
    2020  function parseVideoURL(videoUrl) {
     
    2828
    2929    var matches = re.exec(videoUrl);
    30     return matches[1];
     30    var match = matches && matches[1] ? matches[1] : "bjHh0zHdgZT";
     31
     32    return match;
    3133  }
    3234})(jQuery);
  • snowball/trunk/modules/vine/template.html

    r1278994 r1646815  
    11<section class="snowball-block snowball-block-vine">
    2     <iframe src="https://vine.co/v/bjHh0zHdgZT/embed/{{presentation-type}}{{autoplay}}" width="{{size}}" height="{{size}}" frameborder="0"></iframe>
     2    <iframe src="https://vine.co/v/{{video-id}}/embed/{{presentation-type}}{{autoplay}}" width="{{size}}" height="{{size}}" frameborder="0"></iframe>
    33    <script src="https://platform.vine.co/static/scripts/embed.js"></script>
    44</section>
  • snowball/trunk/modules/youtube/admin.js

    r1278994 r1646815  
    99  });
    1010
    11   $("#snowball-main").on("change keyup", ".snowball-block-youtube .video-url", function() {
     11  $("#snowball-main").on("change keyup", ".snowball-block-youtube .video-url", debounce(function() {
    1212    var block = $(this).closest(".snowball-block-youtube");
    1313    var videoUrl = $(this).val();
     
    1616    block.find(".video-id").val(videoID);
    1717    block.trigger("render");
    18   });
     18  }, 250));
    1919
    2020  function parseVideoURL(videoUrl) {
     
    2828
    2929    var matches = re.exec(videoUrl);
     30    var match = matches && matches[1] ? matches[1] : "124847087";
    3031
    31     return matches[1];
     32    return match;
    3233  }
    3334})(jQuery);
  • snowball/trunk/readme.txt

    r1631583 r1646815  
    44Requires at least: 3.0.1
    55Tested up to: 4.7
    6 Stable tag: 0.4.12
     6Stable tag: 0.4.13
    77License: GPLv2
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    103103== Changelog ==
    104104
     105= 0.4.13 =
     106* Handle invalid urls for Google Maps, Vimeo, Vine, and YouTube modules
     107* Fix Vine module not updating url
     108* Debounce change events that lead to network calls on all modules
     109
    105110= 0.4.12 =
    106111* Fix Quicktags not getting loaded properly
  • snowball/trunk/scripts/min/admins.min.js

    r1631583 r1646815  
    1 !function(t){function n(n){var a=n.find(".table").get(0),o=n.find("[data-target='json']").val();if(o){var i=JSON.parse(o);e(n,a,i)}else{var l=snowball.pluginsUrl+"/modules/bargraph/snowline.json";t.getJSON(l,function(t){e(n,a,t)})}}function e(t,n,e){var o=["Label","Values"],i=[{data:"label",type:"text"},{data:"value",type:"numeric"}],l=new Handsontable(n,{data:e,rowHeaders:!1,fixedRowsTop:0,colHeaders:o,columns:i,columnSorting:!1,manualColumnMove:!1,manualColumnResize:!1,contextMenu:!0,multiSelect:!0,persistantState:!0,fillHandle:!0,observeChanges:!0,search:!0,undo:!0,readOnly:!1,stretchH:"all",afterChange:function(n,e){var o=this.getData();a(t,o),"loadData"!==e&&t.trigger("render")},afterLoadData:function(){var n=this.getData();a(t,n)},afterInit:function(){t.trigger("render")}});t.data("hot",l)}function a(t,n,e){var a=n,o=JSON.stringify(a);t.find("[data-target='json']").val(o)}function o(t){var n=t.find(".snowball-preview"),e=n.contents().find(".chart").html(),a=btoa(unescape(encodeURIComponent(e)));t.find(".export a").attr({"href-lang":"image/svg+xml",href:"data:image/svg+xml;base64,\n"+a})}t("#snowball-main").on("open",".snowball-block-bargraph",function(){var e=t(this),a=Math.floor(100*t(this).find(".spacing").val())+"%";t(this).find(".spacing-output").text(a),t(this).find(".export a").on("mouseover",function(){o(e)}),n(e)}),t("#snowball-main").on("input change",".snowball-block-bargraph .spacing",function(){var n=t(this).closest(".snowball-block-bargraph"),e=Math.floor(100*t(this).val())+"%";n.find(".spacing-output").text(e),n.trigger("render")}),t("#snowball-main").on("rendered",".snowball-block-bargraph",function(){var n=t(this),e=n.find(".snowball-preview"),a=e.contents().find(".chart"),o=e[0].contentWindow.drawBargraph;a&&o&&o(e.contents().find(".snowball-block-bargraph"))})}(jQuery),function(t){function n(n){var e,o=n.find(".table").get(0),i=n.find("[data-target='map-type']").val();if(e="usa"===i?n.find("[data-target='json-usa']").val():n.find("[data-target='json-world']").val()){var l=JSON.parse(e);a(n,o,l,i)}else{var r=snowball.pluginsUrl+"/modules/choropleth/precipitation-"+i+".json";t.getJSON(r,function(t){a(n,o,t,i)})}}function e(n,e){var a,o,i=(n.find(".table").get(0),n.data("hot"));if("usa"===e?(o=n.find("[data-target='json-usa']").val(),a=["fips","State","Value"]):(o=n.find("[data-target='json-world']").val(),a=["fips","Country","Value"]),o){var l=JSON.parse(o);i.updateSettings({colHeaders:a}),i.loadData(l),i.render()}else{var r=snowball.pluginsUrl+"/modules/choropleth/precipitation-"+e+".json";t.getJSON(r,function(t){i.updateSettings({colHeaders:a}),i.loadData(t),i.render()})}}function a(t,n,e,a){var i=["fips","Country","Value"];"usa"===a&&(i=["fips","State","Value"]);var l=new Handsontable(n,{data:e,rowHeaders:!1,fixedRowsTop:0,colHeaders:i,columns:[{data:"fips",readOnly:!0},{data:"State",readOnly:!0},{data:"Value"}],columnSorting:!1,manualColumnMove:!1,manualColumnResize:!1,contextMenu:!0,multiSelect:!0,persistantState:!0,fillHandle:!0,observeChanges:!0,search:!0,undo:!0,readOnly:!1,stretchH:"all",afterChange:function(n,e){var a=this.getData();o(t,a),"loadData"!==e&&t.trigger("render")},afterLoadData:function(){var n=this.getData();o(t,n)},afterInit:function(){t.trigger("render")}});t.data("hot",l)}function o(t,n,e){var a=n,o=JSON.stringify(a),i=t.find("[data-target='map-type']").val();t.find("[data-target='json-"+i+"']").val(o)}function i(t){var n=t.find(".snowball-preview"),e=n.contents().find(".map").html(),a=btoa(unescape(encodeURIComponent(e)));t.find(".export a").attr({"href-lang":"image/svg+xml",href:"data:image/svg+xml;base64,\n"+a})}t("#snowball-main").on("open",".snowball-block-choropleth",function(){var e=t(this),a=e.find("[data-target='quantize']").val();t(this).find(".quantize-output").text(a),t(this).find(".export a").on("mouseover",function(){i(e)}),n(e)}),t("#snowball-main").on("rendered",".snowball-block-choropleth",function(){var n=t(this),e=n.find(".snowball-preview"),a=e.contents().find(".map"),o=e[0].contentWindow.drawMap;a&&o&&o(e.contents().find(".snowball-block-choropleth"))}),t("#snowball-main").on("change",".snowball-block-choropleth [data-target='map-type']",function(){var n=t(this).closest(".snowball-block-choropleth"),a=t(this).val();e(n,a)}),t("#snowball-main").on("input change",".snowball-block-choropleth [data-target='quantize']",function(){var n=t(this).closest(".snowball-block-choropleth"),e=(n.data("hot"),t(this).val());n.find(".quantize-output").text(e)})}(jQuery),function(t){function n(t){var n=CodeMirror.fromTextArea(t[0],{mode:"htmlmixed",lineNumbers:!0,lineWrapping:!0,indentUnit:2,tabSize:2,theme:"monokai"});n.setSize("100%","100%"),n.on("change",function(){n.save(),t.trigger("change")}),t.data("codeMirrorInstance",n)}function e(e,a){e.find(".toggle-button").eq(a).addClass("show");var o=e.find(".column-textarea").eq(a);n(o),e.find(".toggle-buttons .toggle-button").each(function(n){n===a?t(this).addClass("active"):t(this).removeClass("active")}),e.find(".snowball-tinker .CodeMirror").each(function(n){n===a?t(this).show():t(this).hide()});var i=e.find('[type="checkbox"]').eq(a);i.prop("checked",!0)}function a(n,e){n.find(".show").each(function(n){n===e?t(this).addClass("active"):t(this).removeClass("active")})}function o(n,e){n.find(".snowball-tinker .CodeMirror").each(function(n){n===e?t(this).show():t(this).hide()})}t("#snowball-main").on("open",".snowball-block-columns",function(){var e=t(this);e.find('input[type="checkbox"]').each(function(a){if(t(this).prop("checked")){var o=e.find(".column-textarea").eq(a);n(o),e.find(".toggle-button").eq(a).addClass("show")}}),e.find(".CodeMirror").hide().eq(0).show(),e.find(".toggle-button").eq(0).addClass("active");var a=e.find(".show").length;4==a&&e.find(".add-button").hide(),1==a&&e.find(".show .delete-column").hide()}),t("#snowball-main").on("click",".snowball-block-columns .toggle-button",function(n){var e=t(this).closest(".snowball-block-columns"),i=e.find(".toggle-buttons .toggle-button").index(t(this));a(e,i),o(e,i)}),t("#snowball-main").on("click",".snowball-block-columns .add-button",function(n){var a=t(this).closest(".snowball-block-columns"),o=a.find(".show").length;1==o&&a.find(".toggle-button").eq(0).find("span").show(),3==o&&a.find(".add-button").hide(),a.find('[type="checkbox"]').each(function(n){if(!t(this).prop("checked"))return e(a,n),!1}),a.trigger("render")}),t("#snowball-main").on("click",".snowball-block-columns .delete-column",function(e){if(e.stopPropagation(),confirm("Are you sure you want to delete this column?")){var i,l,r,s=t(this).closest(".snowball-block-columns"),d=t(this).closest(".toggle-button"),c=s.find(".toggle-buttons .toggle-button").index(d),u=s.find(".show").length;if(2==u&&s.find(".toggle-button").eq(0).find("span").hide(),c==u-1)i=s.find(".column-textarea").eq(c),l=i.data("codeMirrorInstance"),r=s.find('[type="checkbox"]').eq(c),r.prop("checked",!1),l.toTextArea(),i.val(""),s.find(".show").eq(c).removeClass("show"),s.find(".CodeMirror").eq(c-1).show();else for(;c<u-1;){i=s.find(".column-textarea").eq(c),l=i.data("codeMirrorInstance"),l.toTextArea(),r=s.find('[type="checkbox"]').eq(c),r.prop("checked",!0);var f=s.find(".column-textarea").eq(c+1),b=f.data("codeMirrorInstance");b.toTextArea();var h=s.find('[type="checkbox"]').eq(c+1);h.prop("checked",!1),i.val(f.val()),n(i),c==u-2&&(s.find(".show").eq(c+1).removeClass("show"),u=s.find(".show").length,s.find(".column-textarea").eq(c+1).val("")),c+=1}s.trigger("render"),a(s,c-1),o(s,c-1)}t(this).closest(".snowball-block-columns").find(".add-button").show()})}(jQuery),function(t){function n(n){var a=e();"undefined"==typeof n?t(".snowball-block-contents").each(function(){var n=t(this);t(this).find(".html").val(a),n.trigger("render")}):(n.find(".html").val(a),n.trigger("render"))}function e(){var n=[],e="<ul>";return t(".snowball-block").each(function(){var e=t(this).find(".snowball-title").text(),a="[id]",o=t(this).find(".snowball-preview").contents().find(a);"Contents"!==e&&o.each(function(){var e={id:t(this).attr("id"),text:t(this).text()};n.push(e)})}),n.forEach(function(t,n){var a="<li><a href='#"+t.id+"'>"+t.text+"</a></li>";e+=a}),e+="</ul>"}t(document).ready(function(){n()}),t("#snowball-main").on("rendered",".snowball-block",function(){t(this).hasClass("snowball-block-contents")||n()}),t("#snowball-main").on("open",".snowball-block-contents",function(){n(t(this))})}(jQuery),function(t){function n(t){var n=/google.[a-z.]+\/maps\/.*@(-?\d+.\d+),(-?\d+.\d+),(\d+)([mz])/,a=n.exec(t);if(null!==a){var o=a[3],i=a[4],l="600x400";return"m"===i?(i="satellite",o=e(o)):i="roadmap",{lat:a[1],lon:a[2],maptype:i,zoom:o,size:l}}}function e(t){var n=56819712,e=n/parseInt(t,10);return e=Math.round(1+Math.log(e)/Math.LN2)}t("#snowball-main").on("open",".snowball-block-googlemaps",function(){var n=t(this).find(".zoom").val();t(this).find(".zoom-output").text(n)}),t("#snowball-main").on("change keyup",".snowball-block-googlemaps .map-user",function(){var e=t(this).closest(".snowball-block-googlemaps"),a=t(this).val(),o=n(a);e.find("[data-target='lat']").val(o.lat),e.find("[data-target='lon']").val(o.lon),e.find("[data-target='zoom']").val(o.zoom),e.find(".zoom-output").text(o.zoom),e.find("[data-target='maptype'][value='"+o.maptype+"']").prop("checked",!0),e.trigger("render")}),t("#snowball-main").on("input change",".snowball-block-googlemaps .zoom",function(){var n=t(this).closest(".snowball-block-googlemaps"),e=t(this).val();n.find(".zoom-output").text(e)})}(jQuery),function(t){t("#snowball-main").on("open",".snowball-block-html",function(){var n=t(this),e=n.find("textarea"),a=CodeMirror.fromTextArea(e[0],{mode:"htmlmixed",lineNumbers:!0,lineWrapping:!0,indentUnit:2,tabSize:2,theme:"monokai"});a.setSize("100%","100%"),a.on("change",function(){a.save(),e.trigger("change")})})}(jQuery),function(t){t("#snowball-main").on("open",".snowball-block-image",function(){var n=t(this).find(".img-border-radius").val()+"%";t(this).find(".img-border-radius-output").text(n)}),t(document).ready(function(){var n,e,a=wp.media.model.settings.post.id,o=snowball.id;t("#snowball-main").on("click",".snowball-block-image .upload-image-button",function(){var i=t(this).closest(".snowball-block");return e=t(".snowball-block").index(i),n?(n.uploader.uploader.param("post_id",o),void n.open()):(wp.media.model.settings.post.id=o,n=wp.media.frames.file_frame=wp.media({title:t(this).data("uploader_title"),button:{text:t(this).data("uploader_button_text")},frame:"post",multiple:!1}),n.on("insert select",function(){var o,i=t(".snowball-block").eq(e),l=n.state().attributes.id;"embed"===l?o=n.state().props.attributes.url:"insert"===l&&(o=n.state().get("selection").first().toJSON().url),i.find(".upload-image").val(o).trigger("change"),wp.media.model.settings.post.id=a}),void n.open())}),t("#snowball-main").on("input change",".snowball-block-image .img-border-radius",function(){var n=t(this).closest(".snowball-block-image"),e=t(this).val()+"%";n.find(".img-border-radius-output").text(e),n.trigger("render")})})}(jQuery),function(t){t("#snowball-main").on("open",".snowball-block-imageslider",function(){var n=t(this).find(".img-border-radius").val()+"%";t(this).find(".img-border-radius-output").text(n)}),t(document).ready(function(){var n,e,a,o=wp.media.model.settings.post.id,i=snowball.id;t("#snowball-main").on("click",".snowball-block-imageslider .upload-image-button",function(){var l=t(this).closest(".snowball-block");return e=t(".snowball-block").index(l),a=l.find(".upload-image-button").index(t(this)),n?(n.uploader.uploader.param("post_id",i),void n.open()):(wp.media.model.settings.post.id=i,n=wp.media.frames.file_frame=wp.media({title:t(this).data("uploader_title"),button:{text:t(this).data("uploader_button_text")},frame:"post",multiple:!1}),n.on("insert select",function(){var i,l=t(".snowball-block").eq(e),r=n.state().attributes.id;"embed"===r?i=n.state().props.attributes.url:"insert"===r&&(i=n.state().get("selection").first().toJSON().url),l.find(".upload-image").eq(a).val(i).trigger("change"),wp.media.model.settings.post.id=o}),void n.open())}),t("#snowball-main").on("input change",".snowball-block-image .img-border-radius",function(){var n=t(this).closest(".snowball-block-image"),e=t(this).val()+"%";n.find(".img-border-radius-output").text(e),n.trigger("render")})})}(jQuery),function(t){function n(n){var a=n.find(".table").get(0),o=n.find("[data-target='json']").val();if(o){var i=JSON.parse(o);e(n,a,i)}else{var l=snowball.pluginsUrl+"/modules/scatterplot/snowline.json";t.getJSON(l,function(t){e(n,a,t)})}}function e(t,n,e){var o=["Label","X","Y"],i=[{data:"Label",type:"text"},{data:"X",type:"numeric"},{data:"Y",type:"numeric"}],l=new Handsontable(n,{data:e,rowHeaders:!1,fixedRowsTop:0,colHeaders:o,columns:i,columnSorting:!1,manualColumnMove:!1,manualColumnResize:!1,contextMenu:!0,multiSelect:!0,persistantState:!0,fillHandle:!0,observeChanges:!0,search:!0,undo:!0,readOnly:!1,stretchH:"all",afterChange:function(n,e){var o=this.getData();a(t,o),"loadData"!==e&&t.trigger("render")},afterLoadData:function(){var n=this.getData();a(t,n)},afterInit:function(){t.trigger("render")}});t.data("hot",l)}function a(t,n,e){var a=n,o=JSON.stringify(a);t.find("[data-target='json']").val(o)}function o(t){var n=t.find(".snowball-preview"),e=n.contents().find(".chart").html(),a=btoa(unescape(encodeURIComponent(e)));t.find(".export a").attr({"href-lang":"image/svg+xml",href:"data:image/svg+xml;base64,\n"+a})}t("#snowball-main").on("open",".snowball-block-scatterplot",function(){var e=t(this),a=t(this).find(".size").val()+"px";t(this).find(".size-output").text(a),t(this).find(".export a").on("mouseover",function(){o(e)}),n(e)}),t("#snowball-main").on("input change",".snowball-block-scatterplot .size",function(){var n=t(this).closest(".snowball-block-scatterplot"),e=t(this).val()+"px";n.find(".size-output").text(e),n.trigger("render")}),t("#snowball-main").on("rendered",".snowball-block-scatterplot",function(){var n=t(this),e=n.find(".snowball-preview"),a=e.contents().find(".chart"),o=e[0].contentWindow.drawScatterplot;a&&o&&o(e.contents().find(".snowball-block-scatterplot"))})}(jQuery),function(t){function n(t){var n;if(t&&t.indexOf("api.soundcloud.com/tracks")>=0){n=/api.soundcloud.com\/tracks\/(\d+&)/;var e=n.exec(t);if(e[1])return e[1]}return""}function e(t,n){var e="https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/";e=e+t+"&show_reposts=false&auto_play=false";for(var a in n)n.hasOwnProperty(a)&&(e=e+"&"+a+"="+n[a]);return e}t("#snowball-main").on("open",".snowball-block-soundcloud",function(){var a=t(this).closest(".snowball-block-soundcloud"),o=t(a).find("input[data-target=embed-link]").val(),i=(t(a).find(".snowball-preview").contents().find(".embed-iframe"),t(a).find("input[data-target=show-user]").prop("checked")),l=t(a).find("input[data-target=show-comments]").prop("checked"),r=t(a).find("input[data-target=visual]").prop("checked"),s={show_user:i,show_comments:l,visual:r},d=n(o),c=e(d,s);t(a).find(".track-url").val(c),a.trigger("render")}),t("#snowball-main").on("change keyup",".snowball-block-soundcloud",function(){var a=t(this).closest(".snowball-block-soundcloud"),o=t(a).find("input[data-target=embed-link]").val(),i=(t(a).find(".snowball-preview").contents().find(".embed-iframe"),t(a).find("input[data-target=show-user]").prop("checked")),l=t(a).find("input[data-target=show-comments]").prop("checked"),r=t(a).find("input[data-target=visual]").prop("checked"),s={show_user:i,show_comments:l,visual:r},d=n(o),c=e(d,s);t(a).find(".track-url").val(c),a.trigger("render")})}(jQuery),function(t){var n=0;t("#snowball-main").on("open",".snowball-block-splash",function(){var e=t(this).find("textarea"),a="snowball-block-splash-textarea-"+n;e.attr("id",a),n++,quicktags({id:a,buttons:"strong,em,link,blockquote,del,code,close"}),QTags._buttonsInit();var o=t(this).find(".darken-bg"),i=Math.floor(100*o.val()/o.attr("max"))+"%";t(this).find(".darken-bg-output").text(i)}),t("#snowball-main").on("click",".snowball-block-splash .quicktags-toolbar .button",function(){t(this).closest(".snowball-block").trigger("render")}),t(document).ready(function(){var n,e,a=wp.media.model.settings.post.id,o=snowball.id;t("#snowball-main").on("click",".snowball-block-splash .upload-image-button",function(){var i=t(this).closest(".snowball-block");return e=t(".snowball-block").index(i),n?(n.uploader.uploader.param("post_id",o),void n.open()):(wp.media.model.settings.post.id=o,n=wp.media.frames.file_frame=wp.media({title:t(this).data("uploader_title"),button:{text:t(this).data("uploader_button_text")},frame:"post",multiple:!1}),n.on("insert select",function(){var o,i=t(".snowball-block").eq(e),l=n.state().attributes.id;"embed"===l?o=n.state().props.attributes.url:"insert"===l&&(o=n.state().get("selection").first().toJSON().url),i.find(".upload-image").val(o).trigger("change"),wp.media.model.settings.post.id=a}),void n.open())}),t("#snowball-main").on("input change",".snowball-block-splash .darken-bg",function(){var n=t(this).closest(".snowball-block-splash"),e=Math.floor(100*t(this).val()/t(this).attr("max"))+"%";n.find(".darken-bg-output").text(e),n.trigger("render")})})}(jQuery),function(t){function n(t,n){var a=JSON.stringify(n);t.find("[data-target='JSON']").val(a),t.find("[data-target='HTML']").val(e(n)),t.find(".handsontableInput").trigger("change")}function e(t){for(var n="  <table>\n",e=t.length,a=0;a<e;a++){0===a?n+="    <thead>\n":1===a&&(n+="    </thead>\n    <tbody>\n"),n+="      <tr>\n";for(var o=0;o<t[a].length;o++)null===t[a][o]&&(t[a][o]=""),n=0===a?n+"        <th>"+t[a][o]+"</th>\n":n+"        <td>"+t[a][o]+"</td>\n";n+="      </tr>\n"}return n+="    </tbody>\n  </table>"}t("#snowball-main").on("open",".snowball-block-table",function(){var e=t(this),a=e.find(".table").get(0),o=JSON.parse(e.find("[data-target='JSON']").val()),i=new Handsontable(a,{data:o,rowHeaders:!1,fixedRowsTop:1,colHeaders:!0,columnSorting:!1,manualColumnMove:!1,manualColumnResize:!1,contextMenu:!0,multiSelect:!0,persistantState:!0,fillHandle:!0,observeChanges:!0,search:!0,undo:!0,readOnly:!1,stretchH:"all",afterInit:function(t){n(e,o),e.trigger("render")},afterChange:function(t){n(e,o)},afterCreateRow:function(t){n(e,o)},afterCreateCol:function(t){n(e,o)},afterRemoveRow:function(t){n(e,o)},afterRemoveCol:function(t){n(e,o)}});e.data("hot",i)})}(jQuery),function(t){var n=0;QTags.addButton("eg_hr","hr","<hr />","","h","Horizontal rule line",70),t("#snowball-main").on("open",".snowball-block-text",function(){var e=t(this).find("textarea"),a="snowball-block-text-textarea-"+n;e.attr("id",a),n++,quicktags({id:a,buttons:"strong,em,link,blockquote,del,code,ul,ol,li,code,close"}),QTags._buttonsInit()}),t("#snowball-main").on("click",".snowball-block-text .quicktags-toolbar .button",function(){t(this).closest(".snowball-block").trigger("render")})}(jQuery),function(t){function n(t){var n=/^https?:\/\/twitter.com\/(\w+)\/status(es)?\/(\d+)$/,e=n.exec(t);return e&&e[3]?e[3]:""}t("#snowball-main").on("open",".snowball-block-twitter",function(){var e=t(this).find("[data-target='tweet-url']").val().trim(),a=n(e);t(this).find("[data-target='id']").val(a),t(this).trigger("render")}),t("#snowball-main").on("change keyup",".snowball-block-twitter [data-target='tweet-url']",function(){var e=t(this).closest(".snowball-block-twitter"),a=t(this).val().trim(),o=n(a);e.find("[data-target='id']").val(o)}),t("#snowball-main").on("rendered",".snowball-block-twitter",function(){var n=t(this),e=n.find(".snowball-preview"),a=e[0].contentWindow.createTweet;a&&a(e.contents().find(".snowball-block-twitter"))})}(jQuery),function(t){function n(t){var n;n=t.indexOf("video")>=0?/vimeo.com.*video\/(\S*)"/:/vimeo.com\/(.*)/;var e=n.exec(t);return e[1]}t("#snowball-main").on("open",".snowball-block-vimeo",function(){var e=t(this).find(".video-url").val(),a=n(e);t(this).find(".video-id").val(a),t(this).trigger("render")}),t("#snowball-main").on("change keyup",".snowball-block-vimeo .video-url",function(){var e=t(this).closest(".snowball-block-vimeo"),a=t(this).val(),o=n(a);e.find(".video-id").val(o),e.trigger("render")}),t("#snowball-main").on("change keyup",".snowball-block-vimeo [data-target='control-color-input']",function(){var n=(t(this).closest(".snowball-block-vimeo"),t(this).val()),e="&color="+n.substring(1);t("[data-target='control-color-output']").val(e)})}(jQuery),function(t){function n(t){var n;n=t.indexOf("embed")>=0?/vine.co\/v\/(.*)\/embed/:/vine.co\/v\/(.*)/;var e=n.exec(t);return e[1]}t("#snowball-main").on("open",".snowball-block-vine",function(){var e=t(this).find(".video-url").val(),a=n(e);t(this).find(".video-id").val(a),t(this).trigger("render")}),t("#snowball-main").on("change keyup",".snowball-block-vine .video-url",function(){var e=t(this).closest(".snowball-block-vine"),a=t(this).val(),o=n(a);e.find(".video-id").val(o),e.trigger("render")})}(jQuery),function(t){function n(t){var n;n=t.indexOf("embed")>=0?/youtube.com.*embed\/(\S*)"/:/youtube.com.*v=(.*)/;var e=n.exec(t);return e[1]}t("#snowball-main").on("open",".snowball-block-youtube",function(){var e=t(this).find(".video-url").val(),a=n(e);t(this).find(".video-id").val(a),t(this).trigger("render")}),t("#snowball-main").on("change keyup",".snowball-block-youtube .video-url",function(){var e=t(this).closest(".snowball-block-youtube"),a=t(this).val(),o=n(a);e.find(".video-id").val(o),e.trigger("render")})}(jQuery);
     1!function(t){function n(n){var e,o=n.find(".table").get(0),i=n.find("[data-target='map-type']").val();if(e="usa"===i?n.find("[data-target='json-usa']").val():n.find("[data-target='json-world']").val()){var l=JSON.parse(e);a(n,o,l,i)}else{var r=snowball.pluginsUrl+"/modules/choropleth/precipitation-"+i+".json";t.getJSON(r,function(t){a(n,o,t,i)})}}function e(n,e){var a,o,i=(n.find(".table").get(0),n.data("hot"));if("usa"===e?(o=n.find("[data-target='json-usa']").val(),a=["fips","State","Value"]):(o=n.find("[data-target='json-world']").val(),a=["fips","Country","Value"]),o){var l=JSON.parse(o);i.updateSettings({colHeaders:a}),i.loadData(l),i.render()}else{var r=snowball.pluginsUrl+"/modules/choropleth/precipitation-"+e+".json";t.getJSON(r,function(t){i.updateSettings({colHeaders:a}),i.loadData(t),i.render()})}}function a(t,n,e,a){var i=["fips","Country","Value"];"usa"===a&&(i=["fips","State","Value"]);var l=new Handsontable(n,{data:e,rowHeaders:!1,fixedRowsTop:0,colHeaders:i,columns:[{data:"fips",readOnly:!0},{data:"State",readOnly:!0},{data:"Value"}],columnSorting:!1,manualColumnMove:!1,manualColumnResize:!1,contextMenu:!0,multiSelect:!0,persistantState:!0,fillHandle:!0,observeChanges:!0,search:!0,undo:!0,readOnly:!1,stretchH:"all",afterChange:function(n,e){var a=this.getData();o(t,a),"loadData"!==e&&t.trigger("render")},afterLoadData:function(){var n=this.getData();o(t,n)},afterInit:function(){t.trigger("render")}});t.data("hot",l)}function o(t,n,e){var a=n,o=JSON.stringify(a),i=t.find("[data-target='map-type']").val();t.find("[data-target='json-"+i+"']").val(o)}function i(t){var n=t.find(".snowball-preview"),e=n.contents().find(".map").html(),a=btoa(unescape(encodeURIComponent(e)));t.find(".export a").attr({"href-lang":"image/svg+xml",href:"data:image/svg+xml;base64,\n"+a})}t("#snowball-main").on("open",".snowball-block-choropleth",function(){var e=t(this),a=e.find("[data-target='quantize']").val();t(this).find(".quantize-output").text(a),t(this).find(".export a").on("mouseover",function(){i(e)}),n(e)}),t("#snowball-main").on("rendered",".snowball-block-choropleth",function(){var n=t(this),e=n.find(".snowball-preview"),a=e.contents().find(".map"),o=e[0].contentWindow.drawMap;a&&o&&o(e.contents().find(".snowball-block-choropleth"))}),t("#snowball-main").on("change",".snowball-block-choropleth [data-target='map-type']",function(){var n=t(this).closest(".snowball-block-choropleth"),a=t(this).val();e(n,a)}),t("#snowball-main").on("input change",".snowball-block-choropleth [data-target='quantize']",function(){var n=t(this).closest(".snowball-block-choropleth"),e=(n.data("hot"),t(this).val());n.find(".quantize-output").text(e)})}(jQuery),function(t){function n(n){var a=n.find(".table").get(0),o=n.find("[data-target='json']").val();if(o){var i=JSON.parse(o);e(n,a,i)}else{var l=snowball.pluginsUrl+"/modules/bargraph/snowline.json";t.getJSON(l,function(t){e(n,a,t)})}}function e(t,n,e){var o=["Label","Values"],i=[{data:"label",type:"text"},{data:"value",type:"numeric"}],l=new Handsontable(n,{data:e,rowHeaders:!1,fixedRowsTop:0,colHeaders:o,columns:i,columnSorting:!1,manualColumnMove:!1,manualColumnResize:!1,contextMenu:!0,multiSelect:!0,persistantState:!0,fillHandle:!0,observeChanges:!0,search:!0,undo:!0,readOnly:!1,stretchH:"all",afterChange:function(n,e){var o=this.getData();a(t,o),"loadData"!==e&&t.trigger("render")},afterLoadData:function(){var n=this.getData();a(t,n)},afterInit:function(){t.trigger("render")}});t.data("hot",l)}function a(t,n,e){var a=n,o=JSON.stringify(a);t.find("[data-target='json']").val(o)}function o(t){var n=t.find(".snowball-preview"),e=n.contents().find(".chart").html(),a=btoa(unescape(encodeURIComponent(e)));t.find(".export a").attr({"href-lang":"image/svg+xml",href:"data:image/svg+xml;base64,\n"+a})}t("#snowball-main").on("open",".snowball-block-bargraph",function(){var e=t(this),a=Math.floor(100*t(this).find(".spacing").val())+"%";t(this).find(".spacing-output").text(a),t(this).find(".export a").on("mouseover",function(){o(e)}),n(e)}),t("#snowball-main").on("input change",".snowball-block-bargraph .spacing",function(){var n=t(this).closest(".snowball-block-bargraph"),e=Math.floor(100*t(this).val())+"%";n.find(".spacing-output").text(e),n.trigger("render")}),t("#snowball-main").on("rendered",".snowball-block-bargraph",function(){var n=t(this),e=n.find(".snowball-preview"),a=e.contents().find(".chart"),o=e[0].contentWindow.drawBargraph;a&&o&&o(e.contents().find(".snowball-block-bargraph"))})}(jQuery),function(t){function n(t){var n=CodeMirror.fromTextArea(t[0],{mode:"htmlmixed",lineNumbers:!0,lineWrapping:!0,indentUnit:2,tabSize:2,theme:"monokai"});n.setSize("100%","100%"),n.on("change",function(){n.save(),t.trigger("change")}),t.data("codeMirrorInstance",n)}function e(e,a){e.find(".toggle-button").eq(a).addClass("show");var o=e.find(".column-textarea").eq(a);n(o),e.find(".toggle-buttons .toggle-button").each(function(n){n===a?t(this).addClass("active"):t(this).removeClass("active")}),e.find(".snowball-tinker .CodeMirror").each(function(n){n===a?t(this).show():t(this).hide()});var i=e.find('[type="checkbox"]').eq(a);i.prop("checked",!0)}function a(n,e){n.find(".show").each(function(n){n===e?t(this).addClass("active"):t(this).removeClass("active")})}function o(n,e){n.find(".snowball-tinker .CodeMirror").each(function(n){n===e?t(this).show():t(this).hide()})}t("#snowball-main").on("open",".snowball-block-columns",function(){var e=t(this);e.find('input[type="checkbox"]').each(function(a){if(t(this).prop("checked")){var o=e.find(".column-textarea").eq(a);n(o),e.find(".toggle-button").eq(a).addClass("show")}}),e.find(".CodeMirror").hide().eq(0).show(),e.find(".toggle-button").eq(0).addClass("active");var a=e.find(".show").length;4==a&&e.find(".add-button").hide(),1==a&&e.find(".show .delete-column").hide()}),t("#snowball-main").on("click",".snowball-block-columns .toggle-button",function(n){var e=t(this).closest(".snowball-block-columns"),i=e.find(".toggle-buttons .toggle-button").index(t(this));a(e,i),o(e,i)}),t("#snowball-main").on("click",".snowball-block-columns .add-button",function(n){var a=t(this).closest(".snowball-block-columns"),o=a.find(".show").length;1==o&&a.find(".toggle-button").eq(0).find("span").show(),3==o&&a.find(".add-button").hide(),a.find('[type="checkbox"]').each(function(n){if(!t(this).prop("checked"))return e(a,n),!1}),a.trigger("render")}),t("#snowball-main").on("click",".snowball-block-columns .delete-column",function(e){if(e.stopPropagation(),confirm("Are you sure you want to delete this column?")){var i,l,r,s=t(this).closest(".snowball-block-columns"),d=t(this).closest(".toggle-button"),c=s.find(".toggle-buttons .toggle-button").index(d),u=s.find(".show").length;if(2==u&&s.find(".toggle-button").eq(0).find("span").hide(),c==u-1)i=s.find(".column-textarea").eq(c),l=i.data("codeMirrorInstance"),r=s.find('[type="checkbox"]').eq(c),r.prop("checked",!1),l.toTextArea(),i.val(""),s.find(".show").eq(c).removeClass("show"),s.find(".CodeMirror").eq(c-1).show();else for(;c<u-1;){i=s.find(".column-textarea").eq(c),l=i.data("codeMirrorInstance"),l.toTextArea(),r=s.find('[type="checkbox"]').eq(c),r.prop("checked",!0);var f=s.find(".column-textarea").eq(c+1),b=f.data("codeMirrorInstance");b.toTextArea();var h=s.find('[type="checkbox"]').eq(c+1);h.prop("checked",!1),i.val(f.val()),n(i),c==u-2&&(s.find(".show").eq(c+1).removeClass("show"),u=s.find(".show").length,s.find(".column-textarea").eq(c+1).val("")),c+=1}s.trigger("render"),a(s,c-1),o(s,c-1)}t(this).closest(".snowball-block-columns").find(".add-button").show()})}(jQuery),function(t){function n(n){var a=e();"undefined"==typeof n?t(".snowball-block-contents").each(function(){var n=t(this);t(this).find(".html").val(a),n.trigger("render")}):(n.find(".html").val(a),n.trigger("render"))}function e(){var n=[],e="<ul>";return t(".snowball-block").each(function(){var e=t(this).find(".snowball-title").text(),a="[id]",o=t(this).find(".snowball-preview").contents().find(a);"Contents"!==e&&o.each(function(){var e={id:t(this).attr("id"),text:t(this).text()};n.push(e)})}),n.forEach(function(t,n){var a="<li><a href='#"+t.id+"'>"+t.text+"</a></li>";e+=a}),e+="</ul>"}t(document).ready(function(){n()}),t("#snowball-main").on("rendered",".snowball-block",function(){t(this).hasClass("snowball-block-contents")||n()}),t("#snowball-main").on("open",".snowball-block-contents",function(){n(t(this))})}(jQuery),function(t){function n(t){var n=/google.[a-z.]+\/maps\/.*@(-?\d+.\d+),(-?\d+.\d+),(\d+)([mz])/,a=n.exec(t);if(null!==a){var o=a[3],i=a[4],l="600x400";return"m"===i?(i="satellite",o=e(o)):i="roadmap",{lat:a[1],lon:a[2],maptype:i,zoom:o,size:l}}}function e(t){var n=56819712,e=n/parseInt(t,10);return e=Math.round(1+Math.log(e)/Math.LN2)}t("#snowball-main").on("open",".snowball-block-googlemaps",function(){var n=t(this).find(".zoom").val();t(this).find(".zoom-output").text(n)}),t("#snowball-main").on("change keyup",".snowball-block-googlemaps .map-user",debounce(function(){var e=t(this).closest(".snowball-block-googlemaps"),a=t(this).val(),o=n(a),i=o&&o.lat?o.lat:"39.9581888",l=o&&o.lon?o.lon:"-75.1887621",r=o&&o.zoom?o.zoom:"14",s=o&&o.maptype?o.maptype:"roadmap";e.find("[data-target='lat']").val(i),e.find("[data-target='lon']").val(l),e.find("[data-target='zoom']").val(r),e.find(".zoom-output").text(r),e.find("[data-target='maptype'][value='"+s+"']").prop("checked",!0),e.trigger("render")},250)),t("#snowball-main").on("input change",".snowball-block-googlemaps .zoom",debounce(function(){var n=t(this).closest(".snowball-block-googlemaps"),e=t(this).val();n.find(".zoom-output").text(e)},50))}(jQuery),function(t){t("#snowball-main").on("open",".snowball-block-html",function(){var n=t(this),e=n.find("textarea"),a=CodeMirror.fromTextArea(e[0],{mode:"htmlmixed",lineNumbers:!0,lineWrapping:!0,indentUnit:2,tabSize:2,theme:"monokai"});a.setSize("100%","100%"),a.on("change",function(){a.save(),e.trigger("change")})})}(jQuery),function(t){t("#snowball-main").on("open",".snowball-block-image",function(){var n=t(this).find(".img-border-radius").val()+"%";t(this).find(".img-border-radius-output").text(n)}),t(document).ready(function(){var n,e,a=wp.media.model.settings.post.id,o=snowball.id;t("#snowball-main").on("click",".snowball-block-image .upload-image-button",function(){var i=t(this).closest(".snowball-block");return e=t(".snowball-block").index(i),n?(n.uploader.uploader.param("post_id",o),void n.open()):(wp.media.model.settings.post.id=o,n=wp.media.frames.file_frame=wp.media({title:t(this).data("uploader_title"),button:{text:t(this).data("uploader_button_text")},frame:"post",multiple:!1}),n.on("insert select",function(){var o,i=t(".snowball-block").eq(e),l=n.state().attributes.id;"embed"===l?o=n.state().props.attributes.url:"insert"===l&&(o=n.state().get("selection").first().toJSON().url),i.find(".upload-image").val(o).trigger("change"),wp.media.model.settings.post.id=a}),void n.open())}),t("#snowball-main").on("input change",".snowball-block-image .img-border-radius",function(){var n=t(this).closest(".snowball-block-image"),e=t(this).val()+"%";n.find(".img-border-radius-output").text(e),n.trigger("render")})})}(jQuery),function(t){t("#snowball-main").on("open",".snowball-block-imageslider",function(){var n=t(this).find(".img-border-radius").val()+"%";t(this).find(".img-border-radius-output").text(n)}),t(document).ready(function(){var n,e,a,o=wp.media.model.settings.post.id,i=snowball.id;t("#snowball-main").on("click",".snowball-block-imageslider .upload-image-button",function(){var l=t(this).closest(".snowball-block");return e=t(".snowball-block").index(l),a=l.find(".upload-image-button").index(t(this)),n?(n.uploader.uploader.param("post_id",i),void n.open()):(wp.media.model.settings.post.id=i,n=wp.media.frames.file_frame=wp.media({title:t(this).data("uploader_title"),button:{text:t(this).data("uploader_button_text")},frame:"post",multiple:!1}),n.on("insert select",function(){var i,l=t(".snowball-block").eq(e),r=n.state().attributes.id;"embed"===r?i=n.state().props.attributes.url:"insert"===r&&(i=n.state().get("selection").first().toJSON().url),l.find(".upload-image").eq(a).val(i).trigger("change"),wp.media.model.settings.post.id=o}),void n.open())}),t("#snowball-main").on("input change",".snowball-block-image .img-border-radius",function(){var n=t(this).closest(".snowball-block-image"),e=t(this).val()+"%";n.find(".img-border-radius-output").text(e),n.trigger("render")})})}(jQuery),function(t){function n(n){var a=n.find(".table").get(0),o=n.find("[data-target='json']").val();if(o){var i=JSON.parse(o);e(n,a,i)}else{var l=snowball.pluginsUrl+"/modules/scatterplot/snowline.json";t.getJSON(l,function(t){e(n,a,t)})}}function e(t,n,e){var o=["Label","X","Y"],i=[{data:"Label",type:"text"},{data:"X",type:"numeric"},{data:"Y",type:"numeric"}],l=new Handsontable(n,{data:e,rowHeaders:!1,fixedRowsTop:0,colHeaders:o,columns:i,columnSorting:!1,manualColumnMove:!1,manualColumnResize:!1,contextMenu:!0,multiSelect:!0,persistantState:!0,fillHandle:!0,observeChanges:!0,search:!0,undo:!0,readOnly:!1,stretchH:"all",afterChange:function(n,e){var o=this.getData();a(t,o),"loadData"!==e&&t.trigger("render")},afterLoadData:function(){var n=this.getData();a(t,n)},afterInit:function(){t.trigger("render")}});t.data("hot",l)}function a(t,n,e){var a=n,o=JSON.stringify(a);t.find("[data-target='json']").val(o)}function o(t){var n=t.find(".snowball-preview"),e=n.contents().find(".chart").html(),a=btoa(unescape(encodeURIComponent(e)));t.find(".export a").attr({"href-lang":"image/svg+xml",href:"data:image/svg+xml;base64,\n"+a})}t("#snowball-main").on("open",".snowball-block-scatterplot",function(){var e=t(this),a=t(this).find(".size").val()+"px";t(this).find(".size-output").text(a),t(this).find(".export a").on("mouseover",function(){o(e)}),n(e)}),t("#snowball-main").on("input change",".snowball-block-scatterplot .size",function(){var n=t(this).closest(".snowball-block-scatterplot"),e=t(this).val()+"px";n.find(".size-output").text(e),n.trigger("render")}),t("#snowball-main").on("rendered",".snowball-block-scatterplot",function(){var n=t(this),e=n.find(".snowball-preview"),a=e.contents().find(".chart"),o=e[0].contentWindow.drawScatterplot;a&&o&&o(e.contents().find(".snowball-block-scatterplot"))})}(jQuery),function(t){function n(t){var n;if(t&&t.indexOf("api.soundcloud.com/tracks")>=0){n=/api.soundcloud.com\/tracks\/(\d+&)/;var e=n.exec(t);if(e[1])return e[1]}return""}function e(t,n){var e="https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/";e=e+t+"&show_reposts=false&auto_play=false";for(var a in n)n.hasOwnProperty(a)&&(e=e+"&"+a+"="+n[a]);return e}t("#snowball-main").on("open",".snowball-block-soundcloud",function(){var a=t(this).closest(".snowball-block-soundcloud"),o=t(a).find("input[data-target=embed-link]").val(),i=(t(a).find(".snowball-preview").contents().find(".embed-iframe"),t(a).find("input[data-target=show-user]").prop("checked")),l=t(a).find("input[data-target=show-comments]").prop("checked"),r=t(a).find("input[data-target=visual]").prop("checked"),s={show_user:i,show_comments:l,visual:r},d=n(o),c=e(d,s);t(a).find(".track-url").val(c),a.trigger("render")}),t("#snowball-main").on("change keyup",".snowball-block-soundcloud",debounce(function(){var a=t(this).closest(".snowball-block-soundcloud"),o=t(a).find("input[data-target=embed-link]").val(),i=(t(a).find(".snowball-preview").contents().find(".embed-iframe"),t(a).find("input[data-target=show-user]").prop("checked")),l=t(a).find("input[data-target=show-comments]").prop("checked"),r=t(a).find("input[data-target=visual]").prop("checked"),s={show_user:i,show_comments:l,visual:r},d=n(o),c=e(d,s);t(a).find(".track-url").val(c),a.trigger("render")},250))}(jQuery),function(t){var n=0;t("#snowball-main").on("open",".snowball-block-splash",function(){var e=t(this).find("textarea"),a="snowball-block-splash-textarea-"+n;e.attr("id",a),n++,quicktags({id:a,buttons:"strong,em,link,blockquote,del,code,close"}),QTags._buttonsInit();var o=t(this).find(".darken-bg"),i=Math.floor(100*o.val()/o.attr("max"))+"%";t(this).find(".darken-bg-output").text(i)}),t("#snowball-main").on("click",".snowball-block-splash .quicktags-toolbar .button",function(){t(this).closest(".snowball-block").trigger("render")}),t(document).ready(function(){var n,e,a=wp.media.model.settings.post.id,o=snowball.id;t("#snowball-main").on("click",".snowball-block-splash .upload-image-button",function(){var i=t(this).closest(".snowball-block");return e=t(".snowball-block").index(i),n?(n.uploader.uploader.param("post_id",o),void n.open()):(wp.media.model.settings.post.id=o,n=wp.media.frames.file_frame=wp.media({title:t(this).data("uploader_title"),button:{text:t(this).data("uploader_button_text")},frame:"post",multiple:!1}),n.on("insert select",function(){var o,i=t(".snowball-block").eq(e),l=n.state().attributes.id;"embed"===l?o=n.state().props.attributes.url:"insert"===l&&(o=n.state().get("selection").first().toJSON().url),i.find(".upload-image").val(o).trigger("change"),wp.media.model.settings.post.id=a}),void n.open())}),t("#snowball-main").on("input change",".snowball-block-splash .darken-bg",function(){var n=t(this).closest(".snowball-block-splash"),e=Math.floor(100*t(this).val()/t(this).attr("max"))+"%";n.find(".darken-bg-output").text(e),n.trigger("render")})})}(jQuery),function(t){function n(t,n){var a=JSON.stringify(n);t.find("[data-target='JSON']").val(a),t.find("[data-target='HTML']").val(e(n)),t.find(".handsontableInput").trigger("change")}function e(t){for(var n="  <table>\n",e=t.length,a=0;a<e;a++){0===a?n+="    <thead>\n":1===a&&(n+="    </thead>\n    <tbody>\n"),n+="      <tr>\n";for(var o=0;o<t[a].length;o++)null===t[a][o]&&(t[a][o]=""),n=0===a?n+"        <th>"+t[a][o]+"</th>\n":n+"        <td>"+t[a][o]+"</td>\n";n+="      </tr>\n"}return n+="    </tbody>\n  </table>"}t("#snowball-main").on("open",".snowball-block-table",function(){var e=t(this),a=e.find(".table").get(0),o=JSON.parse(e.find("[data-target='JSON']").val()),i=new Handsontable(a,{data:o,rowHeaders:!1,fixedRowsTop:1,colHeaders:!0,columnSorting:!1,manualColumnMove:!1,manualColumnResize:!1,contextMenu:!0,multiSelect:!0,persistantState:!0,fillHandle:!0,observeChanges:!0,search:!0,undo:!0,readOnly:!1,stretchH:"all",afterInit:function(t){n(e,o),e.trigger("render")},afterChange:function(t){n(e,o)},afterCreateRow:function(t){n(e,o)},afterCreateCol:function(t){n(e,o)},afterRemoveRow:function(t){n(e,o)},afterRemoveCol:function(t){n(e,o)}});e.data("hot",i)})}(jQuery),function(t){var n=0;QTags.addButton("eg_hr","hr","<hr />","","h","Horizontal rule line",70),t("#snowball-main").on("open",".snowball-block-text",function(){var e=t(this).find("textarea"),a="snowball-block-text-textarea-"+n;e.attr("id",a),n++,quicktags({id:a,buttons:"strong,em,link,blockquote,del,code,ul,ol,li,code,close"}),QTags._buttonsInit()}),t("#snowball-main").on("click",".snowball-block-text .quicktags-toolbar .button",function(){t(this).closest(".snowball-block").trigger("render")})}(jQuery),function(t){function n(t){var n=/^https?:\/\/twitter.com\/(\w+)\/status(es)?\/(\d+)$/,e=n.exec(t);return e&&e[3]?e[3]:""}t("#snowball-main").on("open",".snowball-block-twitter",function(){var e=t(this).find("[data-target='tweet-url']").val().trim(),a=n(e);t(this).find("[data-target='id']").val(a),t(this).trigger("render")}),t("#snowball-main").on("change keyup",".snowball-block-twitter [data-target='tweet-url']",debounce(function(){var e=t(this).closest(".snowball-block-twitter"),a=t(this).val().trim(),o=n(a);e.find("[data-target='id']").val(o)},250)),t("#snowball-main").on("rendered",".snowball-block-twitter",function(){var n=t(this),e=n.find(".snowball-preview"),a=e[0].contentWindow.createTweet;a&&a(e.contents().find(".snowball-block-twitter"))})}(jQuery),function(t){function n(t){var n;n=t.indexOf("video")>=0?/vimeo.com.*video\/(\S*)"/:/vimeo.com\/(.*)/;var e=n.exec(t),a=e&&e[1]?e[1]:"65982111";return a}t("#snowball-main").on("open",".snowball-block-vimeo",function(){var e=t(this).find(".video-url").val(),a=n(e);t(this).find(".video-id").val(a),t(this).trigger("render")}),t("#snowball-main").on("change keyup",".snowball-block-vimeo .video-url",debounce(function(){var e=t(this).closest(".snowball-block-vimeo"),a=t(this).val(),o=n(a);e.find(".video-id").val(o),e.trigger("render")},250)),t("#snowball-main").on("change keyup",".snowball-block-vimeo [data-target='control-color-input']",function(){var n=(t(this).closest(".snowball-block-vimeo"),t(this).val()),e="&color="+n.substring(1);t("[data-target='control-color-output']").val(e)})}(jQuery),function(t){function n(t){var n;n=t.indexOf("embed")>=0?/vine.co\/v\/(.*)\/embed/:/vine.co\/v\/(.*)/;var e=n.exec(t),a=e&&e[1]?e[1]:"bjHh0zHdgZT";return a}t("#snowball-main").on("open",".snowball-block-vine",function(){var e=t(this).find(".video-url").val(),a=n(e);t(this).find(".video-id").val(a),t(this).trigger("render")}),t("#snowball-main").on("change keyup",".snowball-block-vine .video-url",debounce(function(){var e=t(this).closest(".snowball-block-vine"),a=t(this).val(),o=n(a);e.find(".video-id").val(o),e.trigger("render")},250))}(jQuery),function(t){function n(t){var n;n=t.indexOf("embed")>=0?/youtube.com.*embed\/(\S*)"/:/youtube.com.*v=(.*)/;var e=n.exec(t),a=e&&e[1]?e[1]:"124847087";return a}t("#snowball-main").on("open",".snowball-block-youtube",function(){var e=t(this).find(".video-url").val(),a=n(e);t(this).find(".video-id").val(a),t(this).trigger("render")}),t("#snowball-main").on("change keyup",".snowball-block-youtube .video-url",debounce(function(){var e=t(this).closest(".snowball-block-youtube"),a=t(this).val(),o=n(a);e.find(".video-id").val(o),e.trigger("render")},250))}(jQuery);
    22//# sourceMappingURL=admins.min.js.map
  • snowball/trunk/scripts/min/admins.min.js.map

    r1631583 r1646815  
    1 {"version":3,"sources":["bargraph/admin.js","choropleth/admin.js","columns/admin.js","contents/admin.js","googlemaps/admin.js","html/admin.js","image/admin.js","imageslider/admin.js","scatterplot/admin.js","soundcloud/admin.js","splash/admin.js","table/admin.js","text/admin.js","twitter/admin.js","vimeo/admin.js","vine/admin.js","youtube/admin.js"],"names":["$","loadData","block","container","find","get","json","val","data","JSON","parse","initTable","url","snowball","pluginsUrl","getJSON","colHeaders","columns","type","hot","Handsontable","rowHeaders","fixedRowsTop","columnSorting","manualColumnMove","manualColumnResize","contextMenu","multiSelect","persistantState","fillHandle","observeChanges","search","undo","readOnly","stretchH","afterChange","changes","source","this","getData","refreshOnChange","trigger","afterLoadData","afterInit","generatedJSON","jsonString","stringify","exportSVG","iframe","svg","contents","html","b64","btoa","unescape","encodeURIComponent","attr","href-lang","href","on","spacing","Math","floor","text","closest","map","draw","contentWindow","drawBargraph","jQuery","mapType","reloadData","updateSettings","render","quantize","drawMap","initializeEditorAt","textarea","editor","CodeMirror","fromTextArea","mode","lineNumbers","lineWrapping","indentUnit","tabSize","theme","setSize","save","addNewColumn","selection","eq","addClass","each","index","removeClass","show","hide","checkbox","prop","activateSelectedButton","activateSelectedEditor","activeEditors","length","event","selectedIndex","stopPropagation","confirm","codeMirrorInstance","button","toTextArea","temp_textarea","temp_codeMirrorInstance","temp_checkbox","updateContents","buildContents","title","match","matches","elem","id","push","forEach","content","document","ready","hasClass","mapParse","re","exec","zoom","maptype","size","mToZ","lat","lon","m","c","z","parseInt","round","log","LN2","props","borderradius","file_frame","wp_media_post_id","wp","media","model","settings","post","set_to_post_id","uploader","param","open","frames","frame","multiple","attachment","insertingFrom","state","attributes","first","toJSON","blockIndex","urlIndex","drawScatterplot","getTrackId","indexOf","getSoundCloudUrl","options","soundCloudUrl","key","hasOwnProperty","soundCloudLink","show_user","show_comments","visual","soundcloud_options","trackId","trackUrl","counter","quicktags","buttons","QTags","_buttonsInit","darkenInput","bgDarkenVal","createTable","HTML","numRows","i","j","e","afterCreateRow","afterCreateCol","afterRemoveRow","afterRemoveCol","addButton","parseTweetUrl","tweetUrl","trim","tweetID","createTweet","parseVideoURL","videoUrl","videoID","inputColor","outputColor","substring"],"mappings":"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","file":"admins.min.js","sourcesContent":["(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-bargraph\", function() {\n    var block = $(this);\n    var spacing = Math.floor($(this).find(\".spacing\").val()*100) + \"%\";\n    $(this).find(\".spacing-output\").text(spacing);\n\n    $(this).find(\".export a\").on(\"mouseover\", function() {\n      exportSVG(block);\n    });\n\n    loadData(block);\n  });\n\n  $(\"#snowball-main\").on(\"input change\", \".snowball-block-bargraph .spacing\", function() {\n    var block = $(this).closest(\".snowball-block-bargraph\");\n    var spacing = Math.floor($(this).val()*100) + \"%\";\n\n    block.find(\".spacing-output\").text(spacing);\n    block.trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"rendered\", \".snowball-block-bargraph\", function() {\n    var block = $(this);\n    var iframe = block.find(\".snowball-preview\");\n    var map = iframe.contents().find(\".chart\");\n    var draw = iframe[0].contentWindow.drawBargraph;\n\n    if (map && draw) {\n      draw(iframe.contents().find(\".snowball-block-bargraph\"));\n    }\n  });\n\n  function loadData(block) {\n    var container = block.find(\".table\").get(0);\n    var json = block.find(\"[data-target='json']\").val();\n\n    if (json) {\n      var data = JSON.parse(json);\n      initTable(block, container, data);\n    } else {\n      var url = snowball.pluginsUrl + \"/modules/bargraph/snowline.json\";\n\n      $.getJSON(url, function(data) {\n        initTable(block, container, data);\n      });\n    }\n  }\n\n  function reloadData(block) {\n    var container = block.find(\".table\").get(0);\n    var hot = block.data(\"hot\");\n    var json = block.find(\"[data-target='json']\").val();\n    var colHeaders = [\"label\", \"value\"];\n\n    if (json) {\n      var data = JSON.parse(json);\n      hot.updateSettings({\n        colHeaders: colHeaders\n      });\n      hot.loadData(data);\n      hot.render();\n    } else {\n      var url = snowball.pluginsUrl + \"/modules/bargraph/snowline.json\";\n\n      $.getJSON(url, function(data) {\n        hot.updateSettings({\n          colHeaders: colHeaders,\n        });\n        hot.loadData(data);\n        hot.render();\n      });\n    }\n  }\n\n  function initTable(block, container, data) {\n    var colHeaders = [\"Label\", \"Values\"];\n    var columns = [{data: \"label\", type: \"text\"}, {data: \"value\", type: \"numeric\"}];\n\n    var hot = new Handsontable(container, {\n      data: data,\n      rowHeaders: false,\n      fixedRowsTop: 0,\n      colHeaders: colHeaders,\n      columns: columns,\n      columnSorting: false,\n      manualColumnMove: false,\n      manualColumnResize: false,\n      contextMenu: true,\n      multiSelect: true,\n      persistantState: true,\n      fillHandle: true,\n      observeChanges: true,\n      search: true,\n      undo: true,\n      readOnly: false,\n      stretchH: \"all\",\n      afterChange: function(changes, source) {\n        var data = this.getData();\n        refreshOnChange(block, data);\n        if (source !== \"loadData\") {\n          block.trigger(\"render\");\n        }\n      },\n      afterLoadData: function() {\n        var data = this.getData();\n        refreshOnChange(block, data);\n      },\n      afterInit: function() {\n        block.trigger(\"render\");\n      }\n    });\n\n    block.data(\"hot\", hot);\n  }\n\n  function refreshOnChange(block, data, source) {\n    var generatedJSON = data;\n    var jsonString = JSON.stringify(generatedJSON);\n\n    block.find(\"[data-target='json']\").val(jsonString);\n  }\n\n  function exportSVG(block) {\n    var iframe = block.find(\".snowball-preview\");\n    var svg = iframe.contents().find(\".chart\").html();\n    var b64 = btoa(unescape(encodeURIComponent(svg)));\n\n    block.find(\".export a\").attr({\"href-lang\": \"image/svg+xml\", \"href\": \"data:image/svg+xml;base64,\\n\"+b64});\n  }\n\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-choropleth\", function() {\n    var block = $(this);\n    var quantize = block.find(\"[data-target='quantize']\").val();\n\n    $(this).find(\".quantize-output\").text(quantize);\n\n    $(this).find(\".export a\").on(\"mouseover\", function() {\n      exportSVG(block);\n    });\n\n    loadData(block);\n  });\n\n  $(\"#snowball-main\").on(\"rendered\", \".snowball-block-choropleth\", function() {\n    var block = $(this);\n    var iframe = block.find(\".snowball-preview\");\n    var map = iframe.contents().find(\".map\");\n    var draw = iframe[0].contentWindow.drawMap;\n\n    if (map && draw) {\n      draw(iframe.contents().find(\".snowball-block-choropleth\"));\n    }\n  });\n\n  $(\"#snowball-main\").on(\"change\", \".snowball-block-choropleth [data-target='map-type']\", function() {\n    var block = $(this).closest(\".snowball-block-choropleth\");\n    var mapType = $(this).val();\n\n    reloadData(block, mapType);\n  });\n\n  $(\"#snowball-main\").on(\"input change\", \".snowball-block-choropleth [data-target='quantize']\", function() {\n    var block = $(this).closest(\".snowball-block-choropleth\");\n    var hot = block.data(\"hot\");\n    var quantize = $(this).val();\n\n    block.find(\".quantize-output\").text(quantize);\n  });\n\n  function loadData(block) {\n    var container = block.find(\".table\").get(0);\n    var mapType = block.find(\"[data-target='map-type']\").val();\n    var json;\n\n    if (mapType === \"usa\") {\n      json = block.find(\"[data-target='json-usa']\").val();\n    } else {\n      json = block.find(\"[data-target='json-world']\").val();\n    }\n\n    if (json) {\n      var data = JSON.parse(json);\n      initTable(block, container, data, mapType); \n    } else {\n      var url = snowball.pluginsUrl + \"/modules/choropleth/precipitation-\" + mapType + \".json\";\n\n      $.getJSON(url, function(data) {\n        initTable(block, container, data, mapType);\n      });\n    }\n  }\n\n  function reloadData(block, mapType) {\n    var container = block.find(\".table\").get(0);\n    var hot = block.data(\"hot\");\n    var colHeaders;\n    var json;\n\n    if (mapType === \"usa\") {\n      json = block.find(\"[data-target='json-usa']\").val();\n      colHeaders = [\"fips\", \"State\", \"Value\"];\n    } else {\n      json = block.find(\"[data-target='json-world']\").val();\n      colHeaders = [\"fips\", \"Country\", \"Value\"];\n    }\n\n    if (json) {\n      var data = JSON.parse(json);\n      hot.updateSettings({\n        colHeaders: colHeaders\n      });\n      hot.loadData(data);\n      hot.render();\n    } else {\n      var url = snowball.pluginsUrl + \"/modules/choropleth/precipitation-\" + mapType + \".json\";\n\n      $.getJSON(url, function(data) {\n        hot.updateSettings({\n          colHeaders: colHeaders,\n        });\n        hot.loadData(data);\n        hot.render();\n      });\n    }\n  }\n\n  function initTable(block, container, data, mapType) {\n    var colHeaders = [\"fips\", \"Country\", \"Value\"];\n\n    if (mapType === \"usa\") {\n      colHeaders = [\"fips\", \"State\", \"Value\"];\n    }\n\n    var hot = new Handsontable(container, {\n      data: data,\n      rowHeaders: false,\n      fixedRowsTop: 0,\n      colHeaders: colHeaders,\n      columns: [{data: \"fips\", readOnly: true}, {data: \"State\", readOnly: true}, {data: \"Value\"}],\n      columnSorting: false,\n      manualColumnMove: false,\n      manualColumnResize: false,\n      contextMenu: true,\n      multiSelect: true,\n      persistantState: true,\n      fillHandle: true,\n      observeChanges: true,\n      search: true,\n      undo: true,\n      readOnly: false,\n      stretchH: \"all\",\n      afterChange: function(changes, source) {\n        var data = this.getData();\n        refreshOnChange(block, data);\n        if (source !== \"loadData\") {\n          block.trigger(\"render\");\n        }\n      },\n      afterLoadData: function() {\n        var data = this.getData();\n        refreshOnChange(block, data);\n      },\n      afterInit: function() {\n        block.trigger(\"render\");\n      }\n    });\n\n    block.data(\"hot\", hot);\n  }\n\n  function refreshOnChange(block, data, source) {\n    var generatedJSON = data;\n    var jsonString = JSON.stringify(generatedJSON);\n    var mapType = block.find(\"[data-target='map-type']\").val();\n\n    block.find(\"[data-target='json-\" + mapType + \"']\").val(jsonString);\n  }\n\n  function exportSVG(block) {\n    var iframe = block.find(\".snowball-preview\");\n    var svg = iframe.contents().find(\".map\").html();\n    var b64 = btoa(unescape(encodeURIComponent(svg)));\n\n    block.find(\".export a\").attr({\"href-lang\": \"image/svg+xml\", \"href\": \"data:image/svg+xml;base64,\\n\"+b64});\n  }\n\n})(jQuery);\n","(function ($) {\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-columns\", function() {\n    var block = $(this);\n\n    block.find('input[type=\"checkbox\"]').each(function(index) {\n      if ($(this).prop(\"checked\")) {\n        var textarea = block.find(\".column-textarea\").eq(index);\n        initializeEditorAt(textarea);\n        block.find(\".toggle-button\").eq(index).addClass(\"show\");\n      }\n    });\n\n    block.find(\".CodeMirror\").hide().eq(0).show();\n    block.find(\".toggle-button\").eq(0).addClass(\"active\");\n\n    var activeEditors = block.find(\".show\").length;\n    if (activeEditors == 4) {\n      block.find(\".add-button\").hide();\n    }\n\n    if(activeEditors == 1) {\n      block.find(\".show .delete-column\").hide();\n    }\n  });\n\n  function initializeEditorAt(textarea) {\n    var editor = CodeMirror.fromTextArea(textarea[0], {\n      mode: \"htmlmixed\",\n      lineNumbers: true,\n      lineWrapping: true,\n      indentUnit: 2,\n      tabSize: 2,\n      theme: \"monokai\"\n    });\n\n    editor.setSize(\"100%\", \"100%\");\n\n    editor.on(\"change\", function() {\n      editor.save();\n      textarea.trigger(\"change\");\n    });\n\n    textarea.data(\"codeMirrorInstance\", editor);\n  }\n\n  $(\"#snowball-main\").on(\"click\", \".snowball-block-columns .toggle-button\", function(event) {\n    var block = $(this).closest(\".snowball-block-columns\");\n    var selectedIndex = block.find(\".toggle-buttons .toggle-button\").index($(this));\n\n    activateSelectedButton(block, selectedIndex);\n    activateSelectedEditor(block, selectedIndex);\n  });\n\n  $(\"#snowball-main\").on(\"click\", \".snowball-block-columns .add-button\", function(event) {\n    var block= $(this).closest(\".snowball-block-columns\");\n\n    var activeEditors = block.find(\".show\").length;\n    if (activeEditors == 1) {\n        block.find(\".toggle-button\").eq(0).find(\"span\").show();\n    }\n\n    if (activeEditors == 3) {\n      block.find(\".add-button\").hide();\n    }\n\n    block.find( '[type=\"checkbox\"]' ).each(function(index) {\n      if (!($(this).prop(\"checked\"))) {\n        addNewColumn(block, index);\n        return false;\n      }\n    });\n    block.trigger(\"render\");\n  });\n\n  function addNewColumn(block, selection) {\n    block.find(\".toggle-button\").eq(selection).addClass(\"show\");\n\n    var textarea = block.find(\".column-textarea\").eq(selection);\n    initializeEditorAt(textarea);\n\n    block.find(\".toggle-buttons .toggle-button\").each(function(index) {\n      if (index === selection) {\n        $(this).addClass(\"active\");\n      } else {\n        $(this).removeClass(\"active\");\n      }\n    });\n\n    block.find(\".snowball-tinker .CodeMirror\").each(function(index) {\n      if (index === selection) {\n        $(this).show();\n      } else {\n        $(this).hide();\n      }\n    });\n\n    var checkbox = block.find('[type=\"checkbox\"]').eq(selection);\n    checkbox.prop(\"checked\", true);\n  }\n\n  $(\"#snowball-main\").on(\"click\", \".snowball-block-columns .delete-column\", function(event) {\n    event.stopPropagation();\n\n    if (confirm(\"Are you sure you want to delete this column?\")) {\n      var block = $(this).closest(\".snowball-block-columns\");\n      var button = $(this).closest(\".toggle-button\");\n      var selectedIndex = block.find(\".toggle-buttons .toggle-button\").index(button);\n      var activeEditors = block.find(\".show\").length;\n      var textarea;\n      var codeMirrorInstance;\n      var checkbox;\n\n      if (activeEditors == 2) {\n        block.find(\".toggle-button\").eq(0).find(\"span\").hide();\n      }\n\n      if (selectedIndex == (activeEditors - 1)) {\n        textarea = block.find(\".column-textarea\").eq(selectedIndex);\n        codeMirrorInstance = textarea.data(\"codeMirrorInstance\");\n\n        checkbox = block.find( '[type=\"checkbox\"]' ).eq(selectedIndex);\n        checkbox.prop(\"checked\", false);\n\n        codeMirrorInstance.toTextArea();\n        textarea.val(\"\");\n\n        block.find(\".show\").eq(selectedIndex).removeClass(\"show\");\n\n        block.find(\".CodeMirror\").eq((selectedIndex - 1)).show();\n      } else {\n        while (selectedIndex < (activeEditors - 1)) {\n          textarea = block.find(\".column-textarea\").eq(selectedIndex);\n          codeMirrorInstance = textarea.data(\"codeMirrorInstance\");\n\n          codeMirrorInstance.toTextArea();\n\n          checkbox = block.find( '[type=\"checkbox\"]' ).eq((selectedIndex));\n          checkbox.prop(\"checked\", true);\n\n          var temp_textarea = block.find(\".column-textarea\").eq((selectedIndex + 1));\n          var temp_codeMirrorInstance = temp_textarea.data(\"codeMirrorInstance\");\n\n          temp_codeMirrorInstance.toTextArea();\n\n          var temp_checkbox = block.find( '[type=\"checkbox\"]' ).eq((selectedIndex + 1));\n          temp_checkbox.prop(\"checked\", false);\n\n          textarea.val((temp_textarea.val()));\n          initializeEditorAt(textarea);\n\n          if (selectedIndex == (activeEditors - 2)) {\n            block.find(\".show\").eq((selectedIndex + 1)).removeClass(\"show\");\n            activeEditors = block.find(\".show\").length;\n\n            block.find(\".column-textarea\").eq((selectedIndex + 1)).val(\"\");\n          }\n\n          selectedIndex = selectedIndex + 1;\n        }\n      }\n\n      block.trigger(\"render\");\n      activateSelectedButton(block, (selectedIndex - 1));\n      activateSelectedEditor(block, (selectedIndex - 1));\n    }\n\n    $(this).closest(\".snowball-block-columns\").find(\".add-button\").show();\n  });\n\n  function activateSelectedButton(block, selection) {\n    block.find(\".show\").each(function(index) {\n      if (index === selection) {\n        $(this).addClass(\"active\");\n      } else {\n        $(this).removeClass(\"active\");\n      }\n    });\n  }\n\n  function activateSelectedEditor(block, selection) {\n    block.find(\".snowball-tinker .CodeMirror\").each(function(index) {\n      if (index === selection) {\n        $(this).show();\n      } else {\n        $(this).hide();\n      }\n    });\n  }\n})(jQuery);","(function($) {\n\n  $(document).ready(function() {\n    updateContents();\n  });\n\n  $(\"#snowball-main\").on(\"rendered\", \".snowball-block\", function() {\n\n    if ($(this).hasClass(\"snowball-block-contents\")) {\n      return;\n    }\n\n    updateContents();\n  });\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-contents\", function() {\n    updateContents($(this));\n  });\n\n  function updateContents(block) {\n    var html = buildContents();\n\n    if (typeof block == \"undefined\") {\n      $(\".snowball-block-contents\").each(function() {\n        var block = $(this);\n        $(this).find(\".html\").val(html);\n        block.trigger(\"render\");\n      });\n    } else {\n      block.find(\".html\").val(html);\n      block.trigger(\"render\");\n    }\n  }\n\n  function buildContents() {\n    var contents = [];\n    var html = \"<ul>\";\n\n    $(\".snowball-block\").each(function() {\n      var title = $(this).find(\".snowball-title\").text();\n      var match = \"[id]\";\n      var matches = $(this).find(\".snowball-preview\").contents().find(match);\n\n      if (title !== \"Contents\") {\n        matches.each(function() {\n          var elem = {\n            id: $(this).attr(\"id\"),\n            text: $(this).text()\n          };\n\n          contents.push(elem);\n        });\n      }\n    });\n\n    contents.forEach(function(elem, index) {\n      var content = \"<li><a href='#\" + elem.id + \"'>\" + elem.text + \"</a></li>\";\n      html = html + content; \n    });\n\n    html = html + \"</ul>\";\n\n    return html;\n  }\n\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-googlemaps\", function() {\n    var zoom = $(this).find(\".zoom\").val();\n    $(this).find(\".zoom-output\").text(zoom);\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-googlemaps .map-user\", function() {\n    var block = $(this).closest(\".snowball-block-googlemaps\");\n    var url = $(this).val();\n    var props = mapParse(url);\n\n    block.find(\"[data-target='lat']\").val(props.lat);\n    block.find(\"[data-target='lon']\").val(props.lon);\n    block.find(\"[data-target='zoom']\").val(props.zoom);\n    block.find(\".zoom-output\").text(props.zoom);\n    block.find(\"[data-target='maptype'][value='\" + props.maptype +  \"']\").prop(\"checked\", true);\n\n    block.trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"input change\", \".snowball-block-googlemaps .zoom\", function() {\n    var block = $(this).closest(\".snowball-block-googlemaps\");\n    var zoom = $(this).val();\n\n    block.find(\".zoom-output\").text(zoom);\n  });\n\n  function mapParse(url) {\n    var re = /google.[a-z.]+\\/maps\\/.*@(-?\\d+.\\d+),(-?\\d+.\\d+),(\\d+)([mz])/;\n    var matches = re.exec(url);\n\n    if (matches !== null) {\n      var zoom = matches[3];\n      var maptype = matches[4];\n      var size = \"600x400\";\n\n      if (maptype === \"m\") {\n        maptype = \"satellite\";\n        zoom = mToZ(zoom);\n      } else {\n        maptype = \"roadmap\";\n      }\n\n      return {\n        \"lat\": matches[1],\n        \"lon\": matches[2],\n        \"maptype\": maptype,\n        \"zoom\": zoom,\n        \"size\": size\n      };\n    }\n  }\n\n  function mToZ(m) {\n    var c = 56819712;\n    var z = c / parseInt(m, 10);\n\n    z = Math.round(1 + (Math.log(z) / Math.LN2));\n\n    return z;\n  }\n\n})(jQuery);\n","(function($) {\n\n    $(\"#snowball-main\").on(\"open\", \".snowball-block-html\", function() {\n\n      var block = $(this);\n      var textarea = block.find(\"textarea\");\n\n      var editor = CodeMirror.fromTextArea(textarea[0], {\n        mode: \"htmlmixed\",\n        lineNumbers: true,\n        lineWrapping: true,\n        indentUnit: 2,\n        tabSize: 2,\n        theme: \"monokai\"\n      });\n\n      editor.setSize(\"100%\", \"100%\");\n\n      editor.on(\"change\", function() {\n        editor.save();\n        textarea.trigger(\"change\");\n      });\n    });\n\n})(jQuery);\n","(function($) {\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-image\", function() {\n    var borderradius = $(this).find(\".img-border-radius\").val() + \"%\";\n    $(this).find(\".img-border-radius-output\").text(borderradius);\n  });\n\n  $(document).ready(function() {\n    var file_frame;\n    var wp_media_post_id = wp.media.model.settings.post.id;\n    var set_to_post_id = snowball.id;\n\n    var index;\n\n    $(\"#snowball-main\").on(\"click\", \".snowball-block-image .upload-image-button\", function() {\n      var block = $(this).closest(\".snowball-block\");\n      index = $(\".snowball-block\").index(block);\n\n      if (file_frame) {\n        file_frame.uploader.uploader.param(\"post_id\", set_to_post_id);\n        file_frame.open();\n        return;\n      } else {\n        wp.media.model.settings.post.id = set_to_post_id;\n      }\n\n      file_frame = wp.media.frames.file_frame = wp.media({\n        title: $(this).data(\"uploader_title\"),\n        button: {\n          text: $(this).data(\"uploader_button_text\")\n        },\n        frame: \"post\",\n        multiple: false\n      });\n\n      file_frame.on(\"insert select\", function() {\n        var block = $(\".snowball-block\").eq(index);\n        var insertingFrom = file_frame.state().attributes.id;\n        var attachment;\n\n        if (insertingFrom === \"embed\") {\n          attachment = file_frame.state().props.attributes.url;\n        } else if (insertingFrom === \"insert\") {\n          attachment = file_frame.state().get(\"selection\").first().toJSON().url;\n        }\n\n        block.find(\".upload-image\").val(attachment).trigger(\"change\");\n        wp.media.model.settings.post.id = wp_media_post_id;\n      });\n\n      file_frame.open();\n    });\n\n    $(\"#snowball-main\").on(\"input change\", \".snowball-block-image .img-border-radius\", function() {\n      var block = $(this).closest(\".snowball-block-image\");\n      var borderradius = $(this).val() + \"%\";\n\n      block.find(\".img-border-radius-output\").text(borderradius);\n      block.trigger(\"render\");\n    });\n  });\n\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-imageslider\", function() {\n    var borderradius = $(this).find(\".img-border-radius\").val() + \"%\";\n    $(this).find(\".img-border-radius-output\").text(borderradius);\n  });\n\n  $(document).ready(function() {\n    var file_frame;\n    var wp_media_post_id = wp.media.model.settings.post.id;\n    var set_to_post_id = snowball.id;\n\n    var blockIndex;\n    var urlIndex;\n\n    $(\"#snowball-main\").on(\"click\", \".snowball-block-imageslider .upload-image-button\", function() {\n      var block = $(this).closest(\".snowball-block\");\n      blockIndex = $(\".snowball-block\").index(block);\n      urlIndex = block.find(\".upload-image-button\").index($(this));\n\n      if (file_frame) {\n        file_frame.uploader.uploader.param(\"post_id\", set_to_post_id);\n        file_frame.open();\n        return;\n      } else {\n        wp.media.model.settings.post.id = set_to_post_id;\n      }\n\n      file_frame = wp.media.frames.file_frame = wp.media({\n        title: $(this).data(\"uploader_title\"),\n        button: {\n          text: $(this).data(\"uploader_button_text\")\n        },\n        frame: \"post\",\n        multiple: false\n      });\n\n      file_frame.on(\"insert select\", function() {\n        var block = $(\".snowball-block\").eq(blockIndex);\n        var insertingFrom = file_frame.state().attributes.id;\n        var attachment;\n\n        if (insertingFrom === \"embed\") {\n          attachment = file_frame.state().props.attributes.url;\n        } else if (insertingFrom === \"insert\") {\n          attachment = file_frame.state().get(\"selection\").first().toJSON().url;\n        }\n\n        block.find(\".upload-image\").eq(urlIndex).val(attachment).trigger(\"change\");\n        wp.media.model.settings.post.id = wp_media_post_id;\n      });\n\n      file_frame.open();\n    });\n\n    $(\"#snowball-main\").on(\"input change\", \".snowball-block-image .img-border-radius\", function() {\n      var block = $(this).closest(\".snowball-block-image\");\n      var borderradius = $(this).val() + \"%\";\n\n      block.find(\".img-border-radius-output\").text(borderradius);\n      block.trigger(\"render\");\n    });\n  });\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-scatterplot\", function() {\n    var block = $(this);\n    var size = $(this).find(\".size\").val() + \"px\";\n    $(this).find(\".size-output\").text(size);\n\n    $(this).find(\".export a\").on(\"mouseover\", function() {\n      exportSVG(block);\n    });\n\n    loadData(block);\n  });\n\n  $(\"#snowball-main\").on(\"input change\", \".snowball-block-scatterplot .size\", function() {\n    var block = $(this).closest(\".snowball-block-scatterplot\");\n    var size = $(this).val() + \"px\";\n\n    block.find(\".size-output\").text(size);\n    block.trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"rendered\", \".snowball-block-scatterplot\", function() {\n    var block = $(this);\n    var iframe = block.find(\".snowball-preview\");\n    var map = iframe.contents().find(\".chart\");\n    var draw = iframe[0].contentWindow.drawScatterplot;\n\n    if (map && draw) {\n      draw(iframe.contents().find(\".snowball-block-scatterplot\"));\n    }\n  });\n\n  function loadData(block) {\n    var container = block.find(\".table\").get(0);\n    var json = block.find(\"[data-target='json']\").val();\n\n    if (json) {\n      var data = JSON.parse(json);\n      initTable(block, container, data); \n    } else {\n      var url = snowball.pluginsUrl + \"/modules/scatterplot/snowline.json\";\n\n      $.getJSON(url, function(data) {\n        initTable(block, container, data);\n      });\n    }\n  }\n\n  function reloadData(block) {\n    var container = block.find(\".table\").get(0);\n    var hot = block.data(\"hot\");\n    var json = block.find(\"[data-target='json']\").val();\n    var colHeaders = [\"Label\", \"X\", \"Y\"];\n\n    if (json) {\n      var data = JSON.parse(json);\n      hot.updateSettings({\n        colHeaders: colHeaders\n      });\n      hot.loadData(data);\n      hot.render();\n    } else {\n      var url = snowball.pluginsUrl + \"/modules/choropleth/snowline.json\";\n\n      $.getJSON(url, function(data) {\n        hot.updateSettings({\n          colHeaders: colHeaders,\n        });\n        hot.loadData(data);\n        hot.render();\n      });\n    }\n  }\n\n  function initTable(block, container, data) {\n    var colHeaders = [\"Label\", \"X\", \"Y\"];\n    var columns = [{data: \"Label\", type: \"text\"}, {data: \"X\", type: \"numeric\"}, {data: \"Y\", type: \"numeric\"}];\n\n    var hot = new Handsontable(container, {\n      data: data,\n      rowHeaders: false,\n      fixedRowsTop: 0,\n      colHeaders: colHeaders,\n      columns: columns,\n      columnSorting: false,\n      manualColumnMove: false,\n      manualColumnResize: false,\n      contextMenu: true,\n      multiSelect: true,\n      persistantState: true,\n      fillHandle: true,\n      observeChanges: true,\n      search: true,\n      undo: true,\n      readOnly: false,\n      stretchH: \"all\",\n      afterChange: function(changes, source) {\n        var data = this.getData();\n        refreshOnChange(block, data);\n        if (source !== \"loadData\") {\n          block.trigger(\"render\");\n        }\n      },\n      afterLoadData: function() {\n        var data = this.getData();\n        refreshOnChange(block, data);\n      },\n      afterInit: function() {\n        block.trigger(\"render\");\n      }\n    });\n\n    block.data(\"hot\", hot);\n  }\n\n  function refreshOnChange(block, data, source) {\n    var generatedJSON = data;\n    var jsonString = JSON.stringify(generatedJSON);\n\n    block.find(\"[data-target='json']\").val(jsonString);\n  }\n\n  function exportSVG(block) {\n    var iframe = block.find(\".snowball-preview\");\n    var svg = iframe.contents().find(\".chart\").html();\n    var b64 = btoa(unescape(encodeURIComponent(svg)));\n\n    block.find(\".export a\").attr({\"href-lang\": \"image/svg+xml\", \"href\": \"data:image/svg+xml;base64,\\n\"+b64});\n  }\n\n})(jQuery);\n","(function($) {\n  function getTrackId(url) {\n    var re;\n\n    if (url && url.indexOf(\"api.soundcloud.com/tracks\") >= 0) {\n      re = /api.soundcloud.com\\/tracks\\/(\\d+&)/;\n      var matches = re.exec(url);\n      if (matches[1]) {\n        return matches[1];\n      }\n    }\n\n    return \"\";\n  }\n\n  function getSoundCloudUrl(id, options) {\n    var soundCloudUrl = \"https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/\";\n    soundCloudUrl = soundCloudUrl + id + \"&show_reposts=false&auto_play=false\"\n    for (var key in options) {\n      if (options.hasOwnProperty(key)) {\n        soundCloudUrl = soundCloudUrl + \"&\" + key + \"=\" + options[key];\n      }\n    }\n    return soundCloudUrl;\n  }\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-soundcloud\", function() {\n    var block = $(this).closest(\".snowball-block-soundcloud\");\n    var soundCloudLink = $(block).find(\"input[data-target=embed-link]\").val();\n    var embedIframe = $(block)\n                        .find(\".snowball-preview\").contents()\n                        .find(\".embed-iframe\");\n    var show_user = $(block).find(\"input[data-target=show-user]\").prop(\"checked\");\n    var show_comments = $(block).find(\"input[data-target=show-comments]\").prop(\"checked\");\n    var visual = $(block).find(\"input[data-target=visual]\").prop(\"checked\");\n    var soundcloud_options = {\n      \"show_user\": show_user,\n      \"show_comments\": show_comments,\n      \"visual\": visual\n    };\n    var trackId = getTrackId(soundCloudLink);\n    var trackUrl = getSoundCloudUrl(trackId, soundcloud_options);\n    $(block).find(\".track-url\").val(trackUrl);\n\n    block.trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-soundcloud\", function() {\n    var block = $(this).closest(\".snowball-block-soundcloud\");\n    var soundCloudLink = $(block).find(\"input[data-target=embed-link]\").val();\n    var embedIframe = $(block)\n                        .find(\".snowball-preview\").contents()\n                        .find(\".embed-iframe\");\n    var show_user = $(block).find(\"input[data-target=show-user]\").prop(\"checked\");\n    var show_comments = $(block).find(\"input[data-target=show-comments]\").prop(\"checked\");\n    var visual = $(block).find(\"input[data-target=visual]\").prop(\"checked\");\n    var soundcloud_options = {\n      \"show_user\": show_user,\n      \"show_comments\": show_comments,\n      \"visual\": visual\n    };\n    var trackId = getTrackId(soundCloudLink);\n    var trackUrl = getSoundCloudUrl(trackId, soundcloud_options);\n\n    $(block).find(\".track-url\").val(trackUrl);\n    block.trigger(\"render\");\n  });\n})(jQuery);\n","(function($) {\n\n  var counter = 0;\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-splash\", function() {\n    var textarea = $(this).find(\"textarea\");\n    var id = \"snowball-block-splash-textarea-\" + counter;\n    textarea.attr(\"id\", id);\n    counter++;\n\n    quicktags({\n      id : id,\n      buttons: \"strong,em,link,blockquote,del,code,close\"\n    });\n\n    QTags._buttonsInit();\n\n    var darkenInput = $(this).find('.darken-bg');\n    var bgDarkenVal = Math.floor((darkenInput.val() * 100) / darkenInput.attr('max')) + \"%\";\n    $(this).find('.darken-bg-output').text(bgDarkenVal);\n  });\n\n  $(\"#snowball-main\").on(\"click\", \".snowball-block-splash .quicktags-toolbar .button\", function() {\n    $(this).closest(\".snowball-block\").trigger(\"render\");\n  });\n\n  $(document).ready(function() {\n    var file_frame;\n    var wp_media_post_id = wp.media.model.settings.post.id;\n    var set_to_post_id = snowball.id;\n\n    var index;\n\n    $(\"#snowball-main\").on(\"click\", \".snowball-block-splash .upload-image-button\", function() {\n      var block = $(this).closest(\".snowball-block\");\n      index = $(\".snowball-block\").index(block);\n\n      if (file_frame) {\n        file_frame.uploader.uploader.param(\"post_id\", set_to_post_id);\n        file_frame.open();\n        return;\n      } else {\n        wp.media.model.settings.post.id = set_to_post_id;\n      }\n\n      file_frame = wp.media.frames.file_frame = wp.media({\n        title: $(this).data(\"uploader_title\"),\n        button: {\n          text: $(this).data(\"uploader_button_text\")\n        },\n        frame: \"post\",\n        multiple: false\n      });\n\n      file_frame.on(\"insert select\", function() {\n        var block = $(\".snowball-block\").eq(index);\n        var insertingFrom = file_frame.state().attributes.id;\n        var attachment;\n\n        if (insertingFrom === \"embed\") {\n          attachment = file_frame.state().props.attributes.url;\n        } else if (insertingFrom === \"insert\") {\n          attachment = file_frame.state().get(\"selection\").first().toJSON().url;\n        }\n\n        block.find(\".upload-image\").val(attachment).trigger(\"change\");\n        wp.media.model.settings.post.id = wp_media_post_id;\n      });\n\n      file_frame.open();\n    });\n\n    $(\"#snowball-main\").on(\"input change\", \".snowball-block-splash .darken-bg\", function() {\n      var block = $(this).closest(\".snowball-block-splash\");\n      var bgDarkenVal = Math.floor(($(this).val() * 100) / $(this).attr('max')) + \"%\";\n\n      block.find(\".darken-bg-output\").text(bgDarkenVal);\n      block.trigger(\"render\");\n    });\n  });\n\n})(jQuery);\n","(function($) {\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-table\", function() {\n    var block = $(this);\n    var container = block.find(\".table\").get(0);\n    var data = JSON.parse(block.find(\"[data-target='JSON']\").val());\n\n    var hot = new Handsontable(container, {\n      data: data,\n      rowHeaders: false,\n      fixedRowsTop: 1,\n      colHeaders: true,\n      columnSorting: false,\n      manualColumnMove: false,\n      manualColumnResize: false,\n      contextMenu: true,\n      multiSelect: true,\n      persistantState: true,\n      fillHandle: true,\n      observeChanges: true,\n      search: true,\n      undo: true,\n      readOnly: false,\n      stretchH: \"all\",\n      afterInit: function(e) {\n        refreshOnChange(block, data);\n        block.trigger(\"render\");\n      },\n      afterChange: function (e) {\n        refreshOnChange(block, data);\n      },\n      afterCreateRow: function (e) {\n        refreshOnChange(block, data);\n      },\n      afterCreateCol: function (e) {\n        refreshOnChange(block, data);\n      },\n      afterRemoveRow: function (e) {\n        refreshOnChange(block, data);\n      },\n      afterRemoveCol: function (e) {\n        refreshOnChange(block, data);\n      }\n    });\n\n    block.data(\"hot\", hot);\n  });\n\n  function refreshOnChange(block, data) {\n    var jsonString = JSON.stringify(data);\n\n    block.find(\"[data-target='JSON']\").val(jsonString);\n    block.find(\"[data-target='HTML']\").val(createTable(data));\n\n    block.find(\".handsontableInput\").trigger(\"change\");\n  }\n\n  function createTable(JSON) {\n    var HTML = \"  <table>\\n\";\n    var numRows = JSON.length;\n\n    for (var i = 0; i < numRows; i++) {\n      if (i === 0) {\n        HTML = HTML + \"    <thead>\\n\";\n      } else if (i === 1) {\n        HTML = HTML + \"    </thead>\\n    <tbody>\\n\";\n      }\n      HTML = HTML + \"      <tr>\\n\";\n      for (var j = 0; j < JSON[i].length; j++) {\n        if (JSON[i][j] === null) {\n          JSON[i][j] = \"\";\n        }\n\n        if (i === 0) {\n          HTML = HTML + \"        <th>\" + JSON[i][j] + \"</th>\\n\";\n        } else {\n          HTML = HTML + \"        <td>\" + JSON[i][j] + \"</td>\\n\";\n        }\n      }\n\n      HTML = HTML + \"      </tr>\\n\";\n    }\n\n    HTML = HTML + \"    </tbody>\\n  </table>\";\n\n    return HTML;\n  }\n\n})(jQuery);","(function($) {\n    var counter = 0;\n    QTags.addButton(\"eg_hr\", \"hr\", \"<hr />\", \"\", \"h\", \"Horizontal rule line\", 70);\n\n    $(\"#snowball-main\").on(\"open\", \".snowball-block-text\", function() {\n      var textarea = $(this).find(\"textarea\");\n      var id = \"snowball-block-text-textarea-\" + counter;\n      textarea.attr(\"id\", id);\n      counter++;\n\n      quicktags({\n        id : id,\n        buttons: \"strong,em,link,blockquote,del,code,ul,ol,li,code,close\"\n      });\n\n      QTags._buttonsInit();\n    });\n\n    $(\"#snowball-main\").on(\"click\", \".snowball-block-text .quicktags-toolbar .button\", function() {\n      $(this).closest(\".snowball-block\").trigger(\"render\");\n    });\n\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-twitter\", function() {\n    var tweetUrl = $(this).find(\"[data-target='tweet-url']\").val().trim();\n    var tweetID = parseTweetUrl(tweetUrl);\n\n    $(this).find(\"[data-target='id']\").val(tweetID);\n    $(this).trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-twitter [data-target='tweet-url']\", function() {\n    var block = $(this).closest(\".snowball-block-twitter\");\n    var tweetUrl = $(this).val().trim();\n    var tweetID = parseTweetUrl(tweetUrl);\n\n    block.find(\"[data-target='id']\").val(tweetID);\n  });\n\n  $(\"#snowball-main\").on(\"rendered\", \".snowball-block-twitter\", function() {\n    var block = $(this);\n    var iframe = block.find(\".snowball-preview\");\n    var createTweet = iframe[0].contentWindow.createTweet;\n\n    if (createTweet) {\n      createTweet(iframe.contents().find(\".snowball-block-twitter\"));\n    }\n  });\n\n  function parseTweetUrl(url) {\n    var re = /^https?:\\/\\/twitter.com\\/(\\w+)\\/status(es)?\\/(\\d+)$/;\n    var matches = re.exec(url);\n\n    if (matches && matches[3]) {\n      return matches[3];\n    } else {\n      return \"\";\n    }\n  }\n\n})(jQuery);\n","(function($) {\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-vimeo\", function() {\n    var videoUrl = $(this).find(\".video-url\").val();\n    var videoID = parseVideoURL(videoUrl);\n\n    $(this).find(\".video-id\").val(videoID);\n    $(this).trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-vimeo .video-url\", function() {\n    var block = $(this).closest(\".snowball-block-vimeo\");\n    var videoUrl = $(this).val();\n    var videoID = parseVideoURL(videoUrl);\n\n    block.find(\".video-id\").val(videoID);\n    block.trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-vimeo [data-target='control-color-input']\", function() {\n    var block = $(this).closest(\".snowball-block-vimeo\");\n    var inputColor = $(this).val();\n    var outputColor = \"&color=\" + inputColor.substring(1);\n    $(\"[data-target='control-color-output']\").val(outputColor);\n  });\n\n  function parseVideoURL(videoUrl) {\n    var re;\n\n    if (videoUrl.indexOf(\"video\") >= 0) {\n      re = /vimeo.com.*video\\/(\\S*)\"/;\n    } else {\n      re = /vimeo.com\\/(.*)/;\n    }\n\n    var matches = re.exec(videoUrl);\n\n    return matches[1];\n  }\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-vine\", function() {\n    var videoUrl = $(this).find(\".video-url\").val();\n    var videoID = parseVideoURL(videoUrl);\n\n    $(this).find(\".video-id\").val(videoID);\n    $(this).trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-vine .video-url\", function() {\n    var block = $(this).closest(\".snowball-block-vine\");\n    var videoUrl = $(this).val();\n    var videoID = parseVideoURL(videoUrl);\n\n    block.find(\".video-id\").val(videoID);\n    block.trigger(\"render\");\n  });\n\n  function parseVideoURL(videoUrl) {\n    var re;\n\n    if (videoUrl.indexOf(\"embed\") >= 0) {\n      re = /vine.co\\/v\\/(.*)\\/embed/;\n    } else {\n      re = /vine.co\\/v\\/(.*)/;\n    }\n\n    var matches = re.exec(videoUrl);\n    return matches[1];\n  }\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-youtube\", function() {\n    var videoUrl = $(this).find(\".video-url\").val();\n    var videoID = parseVideoURL(videoUrl);\n\n    $(this).find(\".video-id\").val(videoID);\n    $(this).trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-youtube .video-url\", function() {\n    var block = $(this).closest(\".snowball-block-youtube\");\n    var videoUrl = $(this).val();\n    var videoID = parseVideoURL(videoUrl);\n\n    block.find(\".video-id\").val(videoID);\n    block.trigger(\"render\");\n  });\n\n  function parseVideoURL(videoUrl) {\n    var re;\n\n    if (videoUrl.indexOf(\"embed\") >= 0) {\n      re = /youtube.com.*embed\\/(\\S*)\"/;\n    } else {\n      re = /youtube.com.*v=(.*)/;\n    }\n\n    var matches = re.exec(videoUrl);\n\n    return matches[1];\n  }\n})(jQuery);\n"]}
     1{"version":3,"sources":["choropleth/admin.js","bargraph/admin.js","columns/admin.js","contents/admin.js","googlemaps/admin.js","html/admin.js","image/admin.js","imageslider/admin.js","scatterplot/admin.js","soundcloud/admin.js","splash/admin.js","table/admin.js","text/admin.js","twitter/admin.js","vimeo/admin.js","vine/admin.js","youtube/admin.js"],"names":["$","loadData","block","json","container","find","get","mapType","val","data","JSON","parse","initTable","url","snowball","pluginsUrl","getJSON","reloadData","colHeaders","hot","updateSettings","render","Handsontable","rowHeaders","fixedRowsTop","columns","readOnly","columnSorting","manualColumnMove","manualColumnResize","contextMenu","multiSelect","persistantState","fillHandle","observeChanges","search","undo","stretchH","afterChange","changes","source","this","getData","refreshOnChange","trigger","afterLoadData","afterInit","generatedJSON","jsonString","stringify","exportSVG","iframe","svg","contents","html","b64","btoa","unescape","encodeURIComponent","attr","href-lang","href","on","quantize","text","map","draw","contentWindow","drawMap","closest","jQuery","type","spacing","Math","floor","drawBargraph","initializeEditorAt","textarea","editor","CodeMirror","fromTextArea","mode","lineNumbers","lineWrapping","indentUnit","tabSize","theme","setSize","save","addNewColumn","selection","eq","addClass","each","index","removeClass","show","hide","checkbox","prop","activateSelectedButton","activateSelectedEditor","activeEditors","length","event","selectedIndex","stopPropagation","confirm","codeMirrorInstance","button","toTextArea","temp_textarea","temp_codeMirrorInstance","temp_checkbox","updateContents","buildContents","title","match","matches","elem","id","push","forEach","content","document","ready","hasClass","mapParse","re","exec","zoom","maptype","size","mToZ","lat","lon","m","c","z","parseInt","round","log","LN2","debounce","props","borderradius","file_frame","wp_media_post_id","wp","media","model","settings","post","set_to_post_id","uploader","param","open","frames","frame","multiple","attachment","insertingFrom","state","attributes","first","toJSON","blockIndex","urlIndex","drawScatterplot","getTrackId","indexOf","getSoundCloudUrl","options","soundCloudUrl","key","hasOwnProperty","soundCloudLink","show_user","show_comments","visual","soundcloud_options","trackId","trackUrl","counter","quicktags","buttons","QTags","_buttonsInit","darkenInput","bgDarkenVal","createTable","HTML","numRows","i","j","e","afterCreateRow","afterCreateCol","afterRemoveRow","afterRemoveCol","addButton","parseTweetUrl","tweetUrl","trim","tweetID","createTweet","parseVideoURL","videoUrl","videoID","inputColor","outputColor","substring"],"mappings":"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","file":"admins.min.js","sourcesContent":["(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-choropleth\", function() {\n    var block = $(this);\n    var quantize = block.find(\"[data-target='quantize']\").val();\n\n    $(this).find(\".quantize-output\").text(quantize);\n\n    $(this).find(\".export a\").on(\"mouseover\", function() {\n      exportSVG(block);\n    });\n\n    loadData(block);\n  });\n\n  $(\"#snowball-main\").on(\"rendered\", \".snowball-block-choropleth\", function() {\n    var block = $(this);\n    var iframe = block.find(\".snowball-preview\");\n    var map = iframe.contents().find(\".map\");\n    var draw = iframe[0].contentWindow.drawMap;\n\n    if (map && draw) {\n      draw(iframe.contents().find(\".snowball-block-choropleth\"));\n    }\n  });\n\n  $(\"#snowball-main\").on(\"change\", \".snowball-block-choropleth [data-target='map-type']\", function() {\n    var block = $(this).closest(\".snowball-block-choropleth\");\n    var mapType = $(this).val();\n\n    reloadData(block, mapType);\n  });\n\n  $(\"#snowball-main\").on(\"input change\", \".snowball-block-choropleth [data-target='quantize']\", function() {\n    var block = $(this).closest(\".snowball-block-choropleth\");\n    var hot = block.data(\"hot\");\n    var quantize = $(this).val();\n\n    block.find(\".quantize-output\").text(quantize);\n  });\n\n  function loadData(block) {\n    var container = block.find(\".table\").get(0);\n    var mapType = block.find(\"[data-target='map-type']\").val();\n    var json;\n\n    if (mapType === \"usa\") {\n      json = block.find(\"[data-target='json-usa']\").val();\n    } else {\n      json = block.find(\"[data-target='json-world']\").val();\n    }\n\n    if (json) {\n      var data = JSON.parse(json);\n      initTable(block, container, data, mapType); \n    } else {\n      var url = snowball.pluginsUrl + \"/modules/choropleth/precipitation-\" + mapType + \".json\";\n\n      $.getJSON(url, function(data) {\n        initTable(block, container, data, mapType);\n      });\n    }\n  }\n\n  function reloadData(block, mapType) {\n    var container = block.find(\".table\").get(0);\n    var hot = block.data(\"hot\");\n    var colHeaders;\n    var json;\n\n    if (mapType === \"usa\") {\n      json = block.find(\"[data-target='json-usa']\").val();\n      colHeaders = [\"fips\", \"State\", \"Value\"];\n    } else {\n      json = block.find(\"[data-target='json-world']\").val();\n      colHeaders = [\"fips\", \"Country\", \"Value\"];\n    }\n\n    if (json) {\n      var data = JSON.parse(json);\n      hot.updateSettings({\n        colHeaders: colHeaders\n      });\n      hot.loadData(data);\n      hot.render();\n    } else {\n      var url = snowball.pluginsUrl + \"/modules/choropleth/precipitation-\" + mapType + \".json\";\n\n      $.getJSON(url, function(data) {\n        hot.updateSettings({\n          colHeaders: colHeaders,\n        });\n        hot.loadData(data);\n        hot.render();\n      });\n    }\n  }\n\n  function initTable(block, container, data, mapType) {\n    var colHeaders = [\"fips\", \"Country\", \"Value\"];\n\n    if (mapType === \"usa\") {\n      colHeaders = [\"fips\", \"State\", \"Value\"];\n    }\n\n    var hot = new Handsontable(container, {\n      data: data,\n      rowHeaders: false,\n      fixedRowsTop: 0,\n      colHeaders: colHeaders,\n      columns: [{data: \"fips\", readOnly: true}, {data: \"State\", readOnly: true}, {data: \"Value\"}],\n      columnSorting: false,\n      manualColumnMove: false,\n      manualColumnResize: false,\n      contextMenu: true,\n      multiSelect: true,\n      persistantState: true,\n      fillHandle: true,\n      observeChanges: true,\n      search: true,\n      undo: true,\n      readOnly: false,\n      stretchH: \"all\",\n      afterChange: function(changes, source) {\n        var data = this.getData();\n        refreshOnChange(block, data);\n        if (source !== \"loadData\") {\n          block.trigger(\"render\");\n        }\n      },\n      afterLoadData: function() {\n        var data = this.getData();\n        refreshOnChange(block, data);\n      },\n      afterInit: function() {\n        block.trigger(\"render\");\n      }\n    });\n\n    block.data(\"hot\", hot);\n  }\n\n  function refreshOnChange(block, data, source) {\n    var generatedJSON = data;\n    var jsonString = JSON.stringify(generatedJSON);\n    var mapType = block.find(\"[data-target='map-type']\").val();\n\n    block.find(\"[data-target='json-\" + mapType + \"']\").val(jsonString);\n  }\n\n  function exportSVG(block) {\n    var iframe = block.find(\".snowball-preview\");\n    var svg = iframe.contents().find(\".map\").html();\n    var b64 = btoa(unescape(encodeURIComponent(svg)));\n\n    block.find(\".export a\").attr({\"href-lang\": \"image/svg+xml\", \"href\": \"data:image/svg+xml;base64,\\n\"+b64});\n  }\n\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-bargraph\", function() {\n    var block = $(this);\n    var spacing = Math.floor($(this).find(\".spacing\").val()*100) + \"%\";\n    $(this).find(\".spacing-output\").text(spacing);\n\n    $(this).find(\".export a\").on(\"mouseover\", function() {\n      exportSVG(block);\n    });\n\n    loadData(block);\n  });\n\n  $(\"#snowball-main\").on(\"input change\", \".snowball-block-bargraph .spacing\", function() {\n    var block = $(this).closest(\".snowball-block-bargraph\");\n    var spacing = Math.floor($(this).val()*100) + \"%\";\n\n    block.find(\".spacing-output\").text(spacing);\n    block.trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"rendered\", \".snowball-block-bargraph\", function() {\n    var block = $(this);\n    var iframe = block.find(\".snowball-preview\");\n    var map = iframe.contents().find(\".chart\");\n    var draw = iframe[0].contentWindow.drawBargraph;\n\n    if (map && draw) {\n      draw(iframe.contents().find(\".snowball-block-bargraph\"));\n    }\n  });\n\n  function loadData(block) {\n    var container = block.find(\".table\").get(0);\n    var json = block.find(\"[data-target='json']\").val();\n\n    if (json) {\n      var data = JSON.parse(json);\n      initTable(block, container, data);\n    } else {\n      var url = snowball.pluginsUrl + \"/modules/bargraph/snowline.json\";\n\n      $.getJSON(url, function(data) {\n        initTable(block, container, data);\n      });\n    }\n  }\n\n  function reloadData(block) {\n    var container = block.find(\".table\").get(0);\n    var hot = block.data(\"hot\");\n    var json = block.find(\"[data-target='json']\").val();\n    var colHeaders = [\"label\", \"value\"];\n\n    if (json) {\n      var data = JSON.parse(json);\n      hot.updateSettings({\n        colHeaders: colHeaders\n      });\n      hot.loadData(data);\n      hot.render();\n    } else {\n      var url = snowball.pluginsUrl + \"/modules/bargraph/snowline.json\";\n\n      $.getJSON(url, function(data) {\n        hot.updateSettings({\n          colHeaders: colHeaders,\n        });\n        hot.loadData(data);\n        hot.render();\n      });\n    }\n  }\n\n  function initTable(block, container, data) {\n    var colHeaders = [\"Label\", \"Values\"];\n    var columns = [{data: \"label\", type: \"text\"}, {data: \"value\", type: \"numeric\"}];\n\n    var hot = new Handsontable(container, {\n      data: data,\n      rowHeaders: false,\n      fixedRowsTop: 0,\n      colHeaders: colHeaders,\n      columns: columns,\n      columnSorting: false,\n      manualColumnMove: false,\n      manualColumnResize: false,\n      contextMenu: true,\n      multiSelect: true,\n      persistantState: true,\n      fillHandle: true,\n      observeChanges: true,\n      search: true,\n      undo: true,\n      readOnly: false,\n      stretchH: \"all\",\n      afterChange: function(changes, source) {\n        var data = this.getData();\n        refreshOnChange(block, data);\n        if (source !== \"loadData\") {\n          block.trigger(\"render\");\n        }\n      },\n      afterLoadData: function() {\n        var data = this.getData();\n        refreshOnChange(block, data);\n      },\n      afterInit: function() {\n        block.trigger(\"render\");\n      }\n    });\n\n    block.data(\"hot\", hot);\n  }\n\n  function refreshOnChange(block, data, source) {\n    var generatedJSON = data;\n    var jsonString = JSON.stringify(generatedJSON);\n\n    block.find(\"[data-target='json']\").val(jsonString);\n  }\n\n  function exportSVG(block) {\n    var iframe = block.find(\".snowball-preview\");\n    var svg = iframe.contents().find(\".chart\").html();\n    var b64 = btoa(unescape(encodeURIComponent(svg)));\n\n    block.find(\".export a\").attr({\"href-lang\": \"image/svg+xml\", \"href\": \"data:image/svg+xml;base64,\\n\"+b64});\n  }\n\n})(jQuery);\n","(function ($) {\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-columns\", function() {\n    var block = $(this);\n\n    block.find('input[type=\"checkbox\"]').each(function(index) {\n      if ($(this).prop(\"checked\")) {\n        var textarea = block.find(\".column-textarea\").eq(index);\n        initializeEditorAt(textarea);\n        block.find(\".toggle-button\").eq(index).addClass(\"show\");\n      }\n    });\n\n    block.find(\".CodeMirror\").hide().eq(0).show();\n    block.find(\".toggle-button\").eq(0).addClass(\"active\");\n\n    var activeEditors = block.find(\".show\").length;\n    if (activeEditors == 4) {\n      block.find(\".add-button\").hide();\n    }\n\n    if(activeEditors == 1) {\n      block.find(\".show .delete-column\").hide();\n    }\n  });\n\n  function initializeEditorAt(textarea) {\n    var editor = CodeMirror.fromTextArea(textarea[0], {\n      mode: \"htmlmixed\",\n      lineNumbers: true,\n      lineWrapping: true,\n      indentUnit: 2,\n      tabSize: 2,\n      theme: \"monokai\"\n    });\n\n    editor.setSize(\"100%\", \"100%\");\n\n    editor.on(\"change\", function() {\n      editor.save();\n      textarea.trigger(\"change\");\n    });\n\n    textarea.data(\"codeMirrorInstance\", editor);\n  }\n\n  $(\"#snowball-main\").on(\"click\", \".snowball-block-columns .toggle-button\", function(event) {\n    var block = $(this).closest(\".snowball-block-columns\");\n    var selectedIndex = block.find(\".toggle-buttons .toggle-button\").index($(this));\n\n    activateSelectedButton(block, selectedIndex);\n    activateSelectedEditor(block, selectedIndex);\n  });\n\n  $(\"#snowball-main\").on(\"click\", \".snowball-block-columns .add-button\", function(event) {\n    var block= $(this).closest(\".snowball-block-columns\");\n\n    var activeEditors = block.find(\".show\").length;\n    if (activeEditors == 1) {\n        block.find(\".toggle-button\").eq(0).find(\"span\").show();\n    }\n\n    if (activeEditors == 3) {\n      block.find(\".add-button\").hide();\n    }\n\n    block.find( '[type=\"checkbox\"]' ).each(function(index) {\n      if (!($(this).prop(\"checked\"))) {\n        addNewColumn(block, index);\n        return false;\n      }\n    });\n    block.trigger(\"render\");\n  });\n\n  function addNewColumn(block, selection) {\n    block.find(\".toggle-button\").eq(selection).addClass(\"show\");\n\n    var textarea = block.find(\".column-textarea\").eq(selection);\n    initializeEditorAt(textarea);\n\n    block.find(\".toggle-buttons .toggle-button\").each(function(index) {\n      if (index === selection) {\n        $(this).addClass(\"active\");\n      } else {\n        $(this).removeClass(\"active\");\n      }\n    });\n\n    block.find(\".snowball-tinker .CodeMirror\").each(function(index) {\n      if (index === selection) {\n        $(this).show();\n      } else {\n        $(this).hide();\n      }\n    });\n\n    var checkbox = block.find('[type=\"checkbox\"]').eq(selection);\n    checkbox.prop(\"checked\", true);\n  }\n\n  $(\"#snowball-main\").on(\"click\", \".snowball-block-columns .delete-column\", function(event) {\n    event.stopPropagation();\n\n    if (confirm(\"Are you sure you want to delete this column?\")) {\n      var block = $(this).closest(\".snowball-block-columns\");\n      var button = $(this).closest(\".toggle-button\");\n      var selectedIndex = block.find(\".toggle-buttons .toggle-button\").index(button);\n      var activeEditors = block.find(\".show\").length;\n      var textarea;\n      var codeMirrorInstance;\n      var checkbox;\n\n      if (activeEditors == 2) {\n        block.find(\".toggle-button\").eq(0).find(\"span\").hide();\n      }\n\n      if (selectedIndex == (activeEditors - 1)) {\n        textarea = block.find(\".column-textarea\").eq(selectedIndex);\n        codeMirrorInstance = textarea.data(\"codeMirrorInstance\");\n\n        checkbox = block.find( '[type=\"checkbox\"]' ).eq(selectedIndex);\n        checkbox.prop(\"checked\", false);\n\n        codeMirrorInstance.toTextArea();\n        textarea.val(\"\");\n\n        block.find(\".show\").eq(selectedIndex).removeClass(\"show\");\n\n        block.find(\".CodeMirror\").eq((selectedIndex - 1)).show();\n      } else {\n        while (selectedIndex < (activeEditors - 1)) {\n          textarea = block.find(\".column-textarea\").eq(selectedIndex);\n          codeMirrorInstance = textarea.data(\"codeMirrorInstance\");\n\n          codeMirrorInstance.toTextArea();\n\n          checkbox = block.find( '[type=\"checkbox\"]' ).eq((selectedIndex));\n          checkbox.prop(\"checked\", true);\n\n          var temp_textarea = block.find(\".column-textarea\").eq((selectedIndex + 1));\n          var temp_codeMirrorInstance = temp_textarea.data(\"codeMirrorInstance\");\n\n          temp_codeMirrorInstance.toTextArea();\n\n          var temp_checkbox = block.find( '[type=\"checkbox\"]' ).eq((selectedIndex + 1));\n          temp_checkbox.prop(\"checked\", false);\n\n          textarea.val((temp_textarea.val()));\n          initializeEditorAt(textarea);\n\n          if (selectedIndex == (activeEditors - 2)) {\n            block.find(\".show\").eq((selectedIndex + 1)).removeClass(\"show\");\n            activeEditors = block.find(\".show\").length;\n\n            block.find(\".column-textarea\").eq((selectedIndex + 1)).val(\"\");\n          }\n\n          selectedIndex = selectedIndex + 1;\n        }\n      }\n\n      block.trigger(\"render\");\n      activateSelectedButton(block, (selectedIndex - 1));\n      activateSelectedEditor(block, (selectedIndex - 1));\n    }\n\n    $(this).closest(\".snowball-block-columns\").find(\".add-button\").show();\n  });\n\n  function activateSelectedButton(block, selection) {\n    block.find(\".show\").each(function(index) {\n      if (index === selection) {\n        $(this).addClass(\"active\");\n      } else {\n        $(this).removeClass(\"active\");\n      }\n    });\n  }\n\n  function activateSelectedEditor(block, selection) {\n    block.find(\".snowball-tinker .CodeMirror\").each(function(index) {\n      if (index === selection) {\n        $(this).show();\n      } else {\n        $(this).hide();\n      }\n    });\n  }\n})(jQuery);","(function($) {\n\n  $(document).ready(function() {\n    updateContents();\n  });\n\n  $(\"#snowball-main\").on(\"rendered\", \".snowball-block\", function() {\n\n    if ($(this).hasClass(\"snowball-block-contents\")) {\n      return;\n    }\n\n    updateContents();\n  });\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-contents\", function() {\n    updateContents($(this));\n  });\n\n  function updateContents(block) {\n    var html = buildContents();\n\n    if (typeof block == \"undefined\") {\n      $(\".snowball-block-contents\").each(function() {\n        var block = $(this);\n        $(this).find(\".html\").val(html);\n        block.trigger(\"render\");\n      });\n    } else {\n      block.find(\".html\").val(html);\n      block.trigger(\"render\");\n    }\n  }\n\n  function buildContents() {\n    var contents = [];\n    var html = \"<ul>\";\n\n    $(\".snowball-block\").each(function() {\n      var title = $(this).find(\".snowball-title\").text();\n      var match = \"[id]\";\n      var matches = $(this).find(\".snowball-preview\").contents().find(match);\n\n      if (title !== \"Contents\") {\n        matches.each(function() {\n          var elem = {\n            id: $(this).attr(\"id\"),\n            text: $(this).text()\n          };\n\n          contents.push(elem);\n        });\n      }\n    });\n\n    contents.forEach(function(elem, index) {\n      var content = \"<li><a href='#\" + elem.id + \"'>\" + elem.text + \"</a></li>\";\n      html = html + content; \n    });\n\n    html = html + \"</ul>\";\n\n    return html;\n  }\n\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-googlemaps\", function() {\n    var zoom = $(this).find(\".zoom\").val();\n    $(this).find(\".zoom-output\").text(zoom);\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-googlemaps .map-user\", debounce(function() {\n    var block = $(this).closest(\".snowball-block-googlemaps\");\n    var url = $(this).val();\n    var props = mapParse(url);\n\n    var lat = props && props.lat ? props.lat : '39.9581888';\n    var lon = props && props.lon ? props.lon : '-75.1887621';\n    var zoom = props && props.zoom ? props.zoom : '14';\n    var maptype = props && props.maptype ? props.maptype : 'roadmap';\n\n    block.find(\"[data-target='lat']\").val(lat);\n    block.find(\"[data-target='lon']\").val(lon);\n    block.find(\"[data-target='zoom']\").val(zoom);\n    block.find(\".zoom-output\").text(zoom);\n    block.find(\"[data-target='maptype'][value='\" + maptype +  \"']\").prop(\"checked\", true);\n\n    block.trigger(\"render\");\n  }, 250));\n\n  $(\"#snowball-main\").on(\"input change\", \".snowball-block-googlemaps .zoom\", debounce(function() {\n    var block = $(this).closest(\".snowball-block-googlemaps\");\n    var zoom = $(this).val();\n\n    block.find(\".zoom-output\").text(zoom);\n  }, 50));\n\n  function mapParse(url) {\n    var re = /google.[a-z.]+\\/maps\\/.*@(-?\\d+.\\d+),(-?\\d+.\\d+),(\\d+)([mz])/;\n    var matches = re.exec(url);\n\n    if (matches !== null) {\n      var zoom = matches[3];\n      var maptype = matches[4];\n      var size = \"600x400\";\n\n      if (maptype === \"m\") {\n        maptype = \"satellite\";\n        zoom = mToZ(zoom);\n      } else {\n        maptype = \"roadmap\";\n      }\n\n      return {\n        \"lat\": matches[1],\n        \"lon\": matches[2],\n        \"maptype\": maptype,\n        \"zoom\": zoom,\n        \"size\": size\n      };\n    }\n  }\n\n  function mToZ(m) {\n    var c = 56819712;\n    var z = c / parseInt(m, 10);\n\n    z = Math.round(1 + (Math.log(z) / Math.LN2));\n\n    return z;\n  }\n\n})(jQuery);\n","(function($) {\n\n    $(\"#snowball-main\").on(\"open\", \".snowball-block-html\", function() {\n\n      var block = $(this);\n      var textarea = block.find(\"textarea\");\n\n      var editor = CodeMirror.fromTextArea(textarea[0], {\n        mode: \"htmlmixed\",\n        lineNumbers: true,\n        lineWrapping: true,\n        indentUnit: 2,\n        tabSize: 2,\n        theme: \"monokai\"\n      });\n\n      editor.setSize(\"100%\", \"100%\");\n\n      editor.on(\"change\", function() {\n        editor.save();\n        textarea.trigger(\"change\");\n      });\n    });\n\n})(jQuery);\n","(function($) {\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-image\", function() {\n    var borderradius = $(this).find(\".img-border-radius\").val() + \"%\";\n    $(this).find(\".img-border-radius-output\").text(borderradius);\n  });\n\n  $(document).ready(function() {\n    var file_frame;\n    var wp_media_post_id = wp.media.model.settings.post.id;\n    var set_to_post_id = snowball.id;\n\n    var index;\n\n    $(\"#snowball-main\").on(\"click\", \".snowball-block-image .upload-image-button\", function() {\n      var block = $(this).closest(\".snowball-block\");\n      index = $(\".snowball-block\").index(block);\n\n      if (file_frame) {\n        file_frame.uploader.uploader.param(\"post_id\", set_to_post_id);\n        file_frame.open();\n        return;\n      } else {\n        wp.media.model.settings.post.id = set_to_post_id;\n      }\n\n      file_frame = wp.media.frames.file_frame = wp.media({\n        title: $(this).data(\"uploader_title\"),\n        button: {\n          text: $(this).data(\"uploader_button_text\")\n        },\n        frame: \"post\",\n        multiple: false\n      });\n\n      file_frame.on(\"insert select\", function() {\n        var block = $(\".snowball-block\").eq(index);\n        var insertingFrom = file_frame.state().attributes.id;\n        var attachment;\n\n        if (insertingFrom === \"embed\") {\n          attachment = file_frame.state().props.attributes.url;\n        } else if (insertingFrom === \"insert\") {\n          attachment = file_frame.state().get(\"selection\").first().toJSON().url;\n        }\n\n        block.find(\".upload-image\").val(attachment).trigger(\"change\");\n        wp.media.model.settings.post.id = wp_media_post_id;\n      });\n\n      file_frame.open();\n    });\n\n    $(\"#snowball-main\").on(\"input change\", \".snowball-block-image .img-border-radius\", function() {\n      var block = $(this).closest(\".snowball-block-image\");\n      var borderradius = $(this).val() + \"%\";\n\n      block.find(\".img-border-radius-output\").text(borderradius);\n      block.trigger(\"render\");\n    });\n  });\n\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-imageslider\", function() {\n    var borderradius = $(this).find(\".img-border-radius\").val() + \"%\";\n    $(this).find(\".img-border-radius-output\").text(borderradius);\n  });\n\n  $(document).ready(function() {\n    var file_frame;\n    var wp_media_post_id = wp.media.model.settings.post.id;\n    var set_to_post_id = snowball.id;\n\n    var blockIndex;\n    var urlIndex;\n\n    $(\"#snowball-main\").on(\"click\", \".snowball-block-imageslider .upload-image-button\", function() {\n      var block = $(this).closest(\".snowball-block\");\n      blockIndex = $(\".snowball-block\").index(block);\n      urlIndex = block.find(\".upload-image-button\").index($(this));\n\n      if (file_frame) {\n        file_frame.uploader.uploader.param(\"post_id\", set_to_post_id);\n        file_frame.open();\n        return;\n      } else {\n        wp.media.model.settings.post.id = set_to_post_id;\n      }\n\n      file_frame = wp.media.frames.file_frame = wp.media({\n        title: $(this).data(\"uploader_title\"),\n        button: {\n          text: $(this).data(\"uploader_button_text\")\n        },\n        frame: \"post\",\n        multiple: false\n      });\n\n      file_frame.on(\"insert select\", function() {\n        var block = $(\".snowball-block\").eq(blockIndex);\n        var insertingFrom = file_frame.state().attributes.id;\n        var attachment;\n\n        if (insertingFrom === \"embed\") {\n          attachment = file_frame.state().props.attributes.url;\n        } else if (insertingFrom === \"insert\") {\n          attachment = file_frame.state().get(\"selection\").first().toJSON().url;\n        }\n\n        block.find(\".upload-image\").eq(urlIndex).val(attachment).trigger(\"change\");\n        wp.media.model.settings.post.id = wp_media_post_id;\n      });\n\n      file_frame.open();\n    });\n\n    $(\"#snowball-main\").on(\"input change\", \".snowball-block-image .img-border-radius\", function() {\n      var block = $(this).closest(\".snowball-block-image\");\n      var borderradius = $(this).val() + \"%\";\n\n      block.find(\".img-border-radius-output\").text(borderradius);\n      block.trigger(\"render\");\n    });\n  });\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-scatterplot\", function() {\n    var block = $(this);\n    var size = $(this).find(\".size\").val() + \"px\";\n    $(this).find(\".size-output\").text(size);\n\n    $(this).find(\".export a\").on(\"mouseover\", function() {\n      exportSVG(block);\n    });\n\n    loadData(block);\n  });\n\n  $(\"#snowball-main\").on(\"input change\", \".snowball-block-scatterplot .size\", function() {\n    var block = $(this).closest(\".snowball-block-scatterplot\");\n    var size = $(this).val() + \"px\";\n\n    block.find(\".size-output\").text(size);\n    block.trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"rendered\", \".snowball-block-scatterplot\", function() {\n    var block = $(this);\n    var iframe = block.find(\".snowball-preview\");\n    var map = iframe.contents().find(\".chart\");\n    var draw = iframe[0].contentWindow.drawScatterplot;\n\n    if (map && draw) {\n      draw(iframe.contents().find(\".snowball-block-scatterplot\"));\n    }\n  });\n\n  function loadData(block) {\n    var container = block.find(\".table\").get(0);\n    var json = block.find(\"[data-target='json']\").val();\n\n    if (json) {\n      var data = JSON.parse(json);\n      initTable(block, container, data); \n    } else {\n      var url = snowball.pluginsUrl + \"/modules/scatterplot/snowline.json\";\n\n      $.getJSON(url, function(data) {\n        initTable(block, container, data);\n      });\n    }\n  }\n\n  function reloadData(block) {\n    var container = block.find(\".table\").get(0);\n    var hot = block.data(\"hot\");\n    var json = block.find(\"[data-target='json']\").val();\n    var colHeaders = [\"Label\", \"X\", \"Y\"];\n\n    if (json) {\n      var data = JSON.parse(json);\n      hot.updateSettings({\n        colHeaders: colHeaders\n      });\n      hot.loadData(data);\n      hot.render();\n    } else {\n      var url = snowball.pluginsUrl + \"/modules/choropleth/snowline.json\";\n\n      $.getJSON(url, function(data) {\n        hot.updateSettings({\n          colHeaders: colHeaders,\n        });\n        hot.loadData(data);\n        hot.render();\n      });\n    }\n  }\n\n  function initTable(block, container, data) {\n    var colHeaders = [\"Label\", \"X\", \"Y\"];\n    var columns = [{data: \"Label\", type: \"text\"}, {data: \"X\", type: \"numeric\"}, {data: \"Y\", type: \"numeric\"}];\n\n    var hot = new Handsontable(container, {\n      data: data,\n      rowHeaders: false,\n      fixedRowsTop: 0,\n      colHeaders: colHeaders,\n      columns: columns,\n      columnSorting: false,\n      manualColumnMove: false,\n      manualColumnResize: false,\n      contextMenu: true,\n      multiSelect: true,\n      persistantState: true,\n      fillHandle: true,\n      observeChanges: true,\n      search: true,\n      undo: true,\n      readOnly: false,\n      stretchH: \"all\",\n      afterChange: function(changes, source) {\n        var data = this.getData();\n        refreshOnChange(block, data);\n        if (source !== \"loadData\") {\n          block.trigger(\"render\");\n        }\n      },\n      afterLoadData: function() {\n        var data = this.getData();\n        refreshOnChange(block, data);\n      },\n      afterInit: function() {\n        block.trigger(\"render\");\n      }\n    });\n\n    block.data(\"hot\", hot);\n  }\n\n  function refreshOnChange(block, data, source) {\n    var generatedJSON = data;\n    var jsonString = JSON.stringify(generatedJSON);\n\n    block.find(\"[data-target='json']\").val(jsonString);\n  }\n\n  function exportSVG(block) {\n    var iframe = block.find(\".snowball-preview\");\n    var svg = iframe.contents().find(\".chart\").html();\n    var b64 = btoa(unescape(encodeURIComponent(svg)));\n\n    block.find(\".export a\").attr({\"href-lang\": \"image/svg+xml\", \"href\": \"data:image/svg+xml;base64,\\n\"+b64});\n  }\n\n})(jQuery);\n","(function($) {\n  function getTrackId(url) {\n    var re;\n\n    if (url && url.indexOf(\"api.soundcloud.com/tracks\") >= 0) {\n      re = /api.soundcloud.com\\/tracks\\/(\\d+&)/;\n      var matches = re.exec(url);\n      if (matches[1]) {\n        return matches[1];\n      }\n    }\n\n    return \"\";\n  }\n\n  function getSoundCloudUrl(id, options) {\n    var soundCloudUrl = \"https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/\";\n    soundCloudUrl = soundCloudUrl + id + \"&show_reposts=false&auto_play=false\";\n\n    for (var key in options) {\n      if (options.hasOwnProperty(key)) {\n        soundCloudUrl = soundCloudUrl + \"&\" + key + \"=\" + options[key];\n      }\n    }\n    return soundCloudUrl;\n  }\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-soundcloud\", function() {\n    var block = $(this).closest(\".snowball-block-soundcloud\");\n    var soundCloudLink = $(block).find(\"input[data-target=embed-link]\").val();\n    var embedIframe = $(block)\n                        .find(\".snowball-preview\").contents()\n                        .find(\".embed-iframe\");\n    var show_user = $(block).find(\"input[data-target=show-user]\").prop(\"checked\");\n    var show_comments = $(block).find(\"input[data-target=show-comments]\").prop(\"checked\");\n    var visual = $(block).find(\"input[data-target=visual]\").prop(\"checked\");\n    var soundcloud_options = {\n      \"show_user\": show_user,\n      \"show_comments\": show_comments,\n      \"visual\": visual\n    };\n    var trackId = getTrackId(soundCloudLink);\n    var trackUrl = getSoundCloudUrl(trackId, soundcloud_options);\n    $(block).find(\".track-url\").val(trackUrl);\n\n    block.trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-soundcloud\", debounce(function() {\n    var block = $(this).closest(\".snowball-block-soundcloud\");\n    var soundCloudLink = $(block).find(\"input[data-target=embed-link]\").val();\n    var embedIframe = $(block)\n                        .find(\".snowball-preview\").contents()\n                        .find(\".embed-iframe\");\n    var show_user = $(block).find(\"input[data-target=show-user]\").prop(\"checked\");\n    var show_comments = $(block).find(\"input[data-target=show-comments]\").prop(\"checked\");\n    var visual = $(block).find(\"input[data-target=visual]\").prop(\"checked\");\n    var soundcloud_options = {\n      \"show_user\": show_user,\n      \"show_comments\": show_comments,\n      \"visual\": visual\n    };\n    var trackId = getTrackId(soundCloudLink);\n    var trackUrl = getSoundCloudUrl(trackId, soundcloud_options);\n\n    $(block).find(\".track-url\").val(trackUrl);\n    block.trigger(\"render\");\n  }, 250));\n})(jQuery);\n","(function($) {\n\n  var counter = 0;\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-splash\", function() {\n    var textarea = $(this).find(\"textarea\");\n    var id = \"snowball-block-splash-textarea-\" + counter;\n    textarea.attr(\"id\", id);\n    counter++;\n\n    quicktags({\n      id : id,\n      buttons: \"strong,em,link,blockquote,del,code,close\"\n    });\n\n    QTags._buttonsInit();\n\n    var darkenInput = $(this).find('.darken-bg');\n    var bgDarkenVal = Math.floor((darkenInput.val() * 100) / darkenInput.attr('max')) + \"%\";\n    $(this).find('.darken-bg-output').text(bgDarkenVal);\n  });\n\n  $(\"#snowball-main\").on(\"click\", \".snowball-block-splash .quicktags-toolbar .button\", function() {\n    $(this).closest(\".snowball-block\").trigger(\"render\");\n  });\n\n  $(document).ready(function() {\n    var file_frame;\n    var wp_media_post_id = wp.media.model.settings.post.id;\n    var set_to_post_id = snowball.id;\n\n    var index;\n\n    $(\"#snowball-main\").on(\"click\", \".snowball-block-splash .upload-image-button\", function() {\n      var block = $(this).closest(\".snowball-block\");\n      index = $(\".snowball-block\").index(block);\n\n      if (file_frame) {\n        file_frame.uploader.uploader.param(\"post_id\", set_to_post_id);\n        file_frame.open();\n        return;\n      } else {\n        wp.media.model.settings.post.id = set_to_post_id;\n      }\n\n      file_frame = wp.media.frames.file_frame = wp.media({\n        title: $(this).data(\"uploader_title\"),\n        button: {\n          text: $(this).data(\"uploader_button_text\")\n        },\n        frame: \"post\",\n        multiple: false\n      });\n\n      file_frame.on(\"insert select\", function() {\n        var block = $(\".snowball-block\").eq(index);\n        var insertingFrom = file_frame.state().attributes.id;\n        var attachment;\n\n        if (insertingFrom === \"embed\") {\n          attachment = file_frame.state().props.attributes.url;\n        } else if (insertingFrom === \"insert\") {\n          attachment = file_frame.state().get(\"selection\").first().toJSON().url;\n        }\n\n        block.find(\".upload-image\").val(attachment).trigger(\"change\");\n        wp.media.model.settings.post.id = wp_media_post_id;\n      });\n\n      file_frame.open();\n    });\n\n    $(\"#snowball-main\").on(\"input change\", \".snowball-block-splash .darken-bg\", function() {\n      var block = $(this).closest(\".snowball-block-splash\");\n      var bgDarkenVal = Math.floor(($(this).val() * 100) / $(this).attr('max')) + \"%\";\n\n      block.find(\".darken-bg-output\").text(bgDarkenVal);\n      block.trigger(\"render\");\n    });\n  });\n\n})(jQuery);\n","(function($) {\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-table\", function() {\n    var block = $(this);\n    var container = block.find(\".table\").get(0);\n    var data = JSON.parse(block.find(\"[data-target='JSON']\").val());\n\n    var hot = new Handsontable(container, {\n      data: data,\n      rowHeaders: false,\n      fixedRowsTop: 1,\n      colHeaders: true,\n      columnSorting: false,\n      manualColumnMove: false,\n      manualColumnResize: false,\n      contextMenu: true,\n      multiSelect: true,\n      persistantState: true,\n      fillHandle: true,\n      observeChanges: true,\n      search: true,\n      undo: true,\n      readOnly: false,\n      stretchH: \"all\",\n      afterInit: function(e) {\n        refreshOnChange(block, data);\n        block.trigger(\"render\");\n      },\n      afterChange: function (e) {\n        refreshOnChange(block, data);\n      },\n      afterCreateRow: function (e) {\n        refreshOnChange(block, data);\n      },\n      afterCreateCol: function (e) {\n        refreshOnChange(block, data);\n      },\n      afterRemoveRow: function (e) {\n        refreshOnChange(block, data);\n      },\n      afterRemoveCol: function (e) {\n        refreshOnChange(block, data);\n      }\n    });\n\n    block.data(\"hot\", hot);\n  });\n\n  function refreshOnChange(block, data) {\n    var jsonString = JSON.stringify(data);\n\n    block.find(\"[data-target='JSON']\").val(jsonString);\n    block.find(\"[data-target='HTML']\").val(createTable(data));\n\n    block.find(\".handsontableInput\").trigger(\"change\");\n  }\n\n  function createTable(JSON) {\n    var HTML = \"  <table>\\n\";\n    var numRows = JSON.length;\n\n    for (var i = 0; i < numRows; i++) {\n      if (i === 0) {\n        HTML = HTML + \"    <thead>\\n\";\n      } else if (i === 1) {\n        HTML = HTML + \"    </thead>\\n    <tbody>\\n\";\n      }\n      HTML = HTML + \"      <tr>\\n\";\n      for (var j = 0; j < JSON[i].length; j++) {\n        if (JSON[i][j] === null) {\n          JSON[i][j] = \"\";\n        }\n\n        if (i === 0) {\n          HTML = HTML + \"        <th>\" + JSON[i][j] + \"</th>\\n\";\n        } else {\n          HTML = HTML + \"        <td>\" + JSON[i][j] + \"</td>\\n\";\n        }\n      }\n\n      HTML = HTML + \"      </tr>\\n\";\n    }\n\n    HTML = HTML + \"    </tbody>\\n  </table>\";\n\n    return HTML;\n  }\n\n})(jQuery);","(function($) {\n    var counter = 0;\n    QTags.addButton(\"eg_hr\", \"hr\", \"<hr />\", \"\", \"h\", \"Horizontal rule line\", 70);\n\n    $(\"#snowball-main\").on(\"open\", \".snowball-block-text\", function() {\n      var textarea = $(this).find(\"textarea\");\n      var id = \"snowball-block-text-textarea-\" + counter;\n      textarea.attr(\"id\", id);\n      counter++;\n\n      quicktags({\n        id : id,\n        buttons: \"strong,em,link,blockquote,del,code,ul,ol,li,code,close\"\n      });\n\n      QTags._buttonsInit();\n    });\n\n    $(\"#snowball-main\").on(\"click\", \".snowball-block-text .quicktags-toolbar .button\", function() {\n      $(this).closest(\".snowball-block\").trigger(\"render\");\n    });\n\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-twitter\", function() {\n    var tweetUrl = $(this).find(\"[data-target='tweet-url']\").val().trim();\n    var tweetID = parseTweetUrl(tweetUrl);\n\n    $(this).find(\"[data-target='id']\").val(tweetID);\n    $(this).trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-twitter [data-target='tweet-url']\", debounce(function() {\n    var block = $(this).closest(\".snowball-block-twitter\");\n    var tweetUrl = $(this).val().trim();\n    var tweetID = parseTweetUrl(tweetUrl);\n\n    block.find(\"[data-target='id']\").val(tweetID);\n  }, 250));\n\n  $(\"#snowball-main\").on(\"rendered\", \".snowball-block-twitter\", function() {\n    var block = $(this);\n    var iframe = block.find(\".snowball-preview\");\n    var createTweet = iframe[0].contentWindow.createTweet;\n\n    if (createTweet) {\n      createTweet(iframe.contents().find(\".snowball-block-twitter\"));\n    }\n  });\n\n  function parseTweetUrl(url) {\n    var re = /^https?:\\/\\/twitter.com\\/(\\w+)\\/status(es)?\\/(\\d+)$/;\n    var matches = re.exec(url);\n\n    if (matches && matches[3]) {\n      return matches[3];\n    } else {\n      return \"\";\n    }\n  }\n\n})(jQuery);\n","(function($) {\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-vimeo\", function() {\n    var videoUrl = $(this).find(\".video-url\").val();\n    var videoID = parseVideoURL(videoUrl);\n\n    $(this).find(\".video-id\").val(videoID);\n    $(this).trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-vimeo .video-url\", debounce(function() {\n    var block = $(this).closest(\".snowball-block-vimeo\");\n    var videoUrl = $(this).val();\n    var videoID = parseVideoURL(videoUrl);\n\n    block.find(\".video-id\").val(videoID);\n    block.trigger(\"render\");\n  }, 250));\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-vimeo [data-target='control-color-input']\", function() {\n    var block = $(this).closest(\".snowball-block-vimeo\");\n    var inputColor = $(this).val();\n    var outputColor = \"&color=\" + inputColor.substring(1);\n    $(\"[data-target='control-color-output']\").val(outputColor);\n  });\n\n  function parseVideoURL(videoUrl) {\n    var re;\n\n    if (videoUrl.indexOf(\"video\") >= 0) {\n      re = /vimeo.com.*video\\/(\\S*)\"/;\n    } else {\n      re = /vimeo.com\\/(.*)/;\n    }\n\n    var matches = re.exec(videoUrl);\n    var match = matches && matches[1] ? matches[1] : \"65982111\";\n\n    return match;\n  }\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-vine\", function() {\n    var videoUrl = $(this).find(\".video-url\").val();\n    var videoID = parseVideoURL(videoUrl);\n\n    $(this).find(\".video-id\").val(videoID);\n    $(this).trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-vine .video-url\", debounce(function() {\n    var block = $(this).closest(\".snowball-block-vine\");\n    var videoUrl = $(this).val();\n    var videoID = parseVideoURL(videoUrl);\n\n    block.find(\".video-id\").val(videoID);\n    block.trigger(\"render\");\n  }, 250));\n\n  function parseVideoURL(videoUrl) {\n    var re;\n\n    if (videoUrl.indexOf(\"embed\") >= 0) {\n      re = /vine.co\\/v\\/(.*)\\/embed/;\n    } else {\n      re = /vine.co\\/v\\/(.*)/;\n    }\n\n    var matches = re.exec(videoUrl);\n    var match = matches && matches[1] ? matches[1] : \"bjHh0zHdgZT\";\n\n    return match;\n  }\n})(jQuery);\n","(function($) {\n\n  $(\"#snowball-main\").on(\"open\", \".snowball-block-youtube\", function() {\n    var videoUrl = $(this).find(\".video-url\").val();\n    var videoID = parseVideoURL(videoUrl);\n\n    $(this).find(\".video-id\").val(videoID);\n    $(this).trigger(\"render\");\n  });\n\n  $(\"#snowball-main\").on(\"change keyup\", \".snowball-block-youtube .video-url\", debounce(function() {\n    var block = $(this).closest(\".snowball-block-youtube\");\n    var videoUrl = $(this).val();\n    var videoID = parseVideoURL(videoUrl);\n\n    block.find(\".video-id\").val(videoID);\n    block.trigger(\"render\");\n  }, 250));\n\n  function parseVideoURL(videoUrl) {\n    var re;\n\n    if (videoUrl.indexOf(\"embed\") >= 0) {\n      re = /youtube.com.*embed\\/(\\S*)\"/;\n    } else {\n      re = /youtube.com.*v=(.*)/;\n    }\n\n    var matches = re.exec(videoUrl);\n    var match = matches && matches[1] ? matches[1] : \"124847087\";\n\n    return match;\n  }\n})(jQuery);\n"]}
  • snowball/trunk/scripts/min/snowball-admin.min.js

    r1631583 r1646815  
    1 !function(l){function t(){l("#publish, #save-post").on("click",function(){"publish"==l(this).attr("id")?(snowball.status="publish",v.push({action:"save",type:"publish"})):(snowball.status="draft",v.push({action:"save",type:"draft"})),m=!1}),l("#title").on("input",p(function(){snowball.title=l(this).val(),l(".snowball-block").each(function(){l(this).trigger("render")})},250)),l("#snowball-toolbar").css("width",l("#snowball-toolbar").parent().width()).fixedsticky(),l("#snowball-toolbar .block-button").on("click",function(){var t=l(this).data("type");e(t),w(),v.push({action:"add",type:t})}),l("#snowball-toolbar .tag").on("click",function(){var t=l(this).attr("data-tag");l(".tag.active").removeClass("active"),l(this).addClass("active"),"all"===t?l("#snowball-toolbar .buttons .button").removeClass("hidden"):l("#snowball-toolbar .buttons .button").addClass("hidden").filter("."+t).removeClass("hidden")}),l("#snowball-toolbar .settings .button").on("click",function(){var t=l(this).attr("data-click");l(t).click()}),l("#snowball-toolbar .menu-toggle").on("click",function(){var t=l(this).next(".dialog"),o=t.find(".CodeMirror");if(t.addClass("modal"),l("body").toggleClass("modal"),0===o.length&&t.hasClass("settings-dropdown")){var e=t.find("textarea").get(0);o=CodeMirror.fromTextArea(e,{mode:{name:"htmlmixed",htmlMode:!0},lineNumbers:!0,lineWrapping:!0,indentUnit:2,tabSize:2,theme:"monokai"})}}),l("#snowball-toolbar .menu .close").on("click",function(){var t=l(this).closest(".dialog"),o=t.find(".CodeMirror")[0].CodeMirror.getValue();o&&v.push({action:"code",type:"head",data:o}),t.removeClass("modal"),l("body").removeClass("modal")}),l("#snowball-settings .toggle").on("click",function(){l("#snowball-settings ul").toggle()}),l("#snowball-main").on("render",".snowball-block",function(){var t=l(this);n(t)}).on("mousedown",".snowball-block",function(){l("#snowball-main").height(l("#snowball-main").height())}).on("mouseup",".snowball-block",function(){l("#snowball-main").height("auto")}).on("input change paste",".snowball-tinker input, .snowball-tinker textarea, .snowball-tinker select",p(function(){var t=l(this).closest(".snowball-block");t.trigger("render"),b(t),w()},250)).on("click",".snowball-delete",function(){var t=l(this).closest(".snowball-block");t.data("type");u(t)}).on("click",".snowball-copy",function(){var t=l(this).closest(".snowball-block"),o=t.data("type");d(t),w(),v.push({action:"copy",type:o})}).on("click",".snowball-zoom-toggle",function(){var t=l(this).closest(".snowball-block"),o=t.data("type");if(t.find(".snowball-code, .snowball-copy, .snowball-delete, .snowball-top, .snowball-bottom").toggle(),t.toggleClass("modal"),l("body").toggleClass("modal"),s(t),!t.hasClass("modal")){var e=t.find(".snowball-css .CodeMirror")[0].CodeMirror,n=c(e);v.push({action:"code",type:o,data:n})}t.find(".CodeMirror").each(function(l,t){t.CodeMirror.refresh()})}).on("click",".snowball-top",function(){var t=l(this).closest(".snowball-block");t.index()>0&&(t.parent().prepend(t),w())}).on("click",".snowball-bottom",function(){var t=l(this).closest(".snowball-block");t.index()<l(".snowball-block").length-1&&(t.parent().append(t),w())}).on("mouseover",".snowball-zoom-toggle",function(){var t=l(this).closest(".snowball-block");0===t.find(".snowball-code .CodeMirror").length&&i(t)}).on("change",".handsontable",function(){w()}).sortable({axis:"y",cancel:".snowball-block.modal, .snowball-title-button, button, textarea, input, select, .handsontable .wtHider, .CodeMirror, .button, .toggle-buttons",change:function(){w()},containment:"#snowball-main",cursor:"move",tolerance:"pointer"}),l("body").on("click","#modal-bg",function(){l(".snowball-block.modal .snowball-zoom-toggle, .settings-dropdown.modal .close").click(),l(".modal").removeClass("modal")}).on("keydown",function(t){27===t.keyCode&&(l(".snowball-block.modal .snowball-zoom-toggle, .settings-dropdown.modal .close").click(),l(".modal").removeClass("modal"))}),l(window).resize(p(function(){s(),l(".fixedsticky").fixedsticky("destroy").fixedsticky()},250)).resize(function(){var t=l(".fixedsticky");t.css("width",t.parent().width())}).on("load",function(){l(".fixedsticky").fixedsticky("destroy").fixedsticky()}).on("beforeunload",function(l){if(f(),m)return"You may have unsaved changes."}),l("#collapse-menu").click(function(){var t=l(".fixedsticky");t.css("width",t.parent().width()),s()}),l(".hndle, #adv-settings input, .columns-prefs input").on("click",function(){var t=l(".fixedsticky");t.css("width",t.parent().width()),t.fixedsticky("destroy").fixedsticky()}),l("#show-settings-link").on("click",function(){setTimeout(function(){l(".fixedsticky").fixedsticky("destroy").fixedsticky()},200)})}function o(){for(var l in snowball.savedblocks){var t=snowball.savedblocks[l],o=t.blockType.toLowerCase();delete t.blockType,delete t.orderNumber,e(o,t)}}function e(t,o,e){var a=snowball.blocks[t],i=snowball.names[t],r=l("<div class='snowball-block'><div class='snowball-gui'><div class='snowball-tinker'><div><div class='snowball-title'></div><div class='snowball-title-button-group'><div class='snowball-title-button snowball-copy' title='Copy block'><i class='fa fa-files-o'></i></div><div class='snowball-title-button snowball-delete' title='Delete block'>&times;</div></div><div class='snowball-title-button-group'><div class='snowball-title-button snowball-top' title='Move block to top'><i class='fa fa-angle-double-up'></i></div><div class='snowball-title-button snowball-bottom' title='Move block to bottom'><i class='fa fa-angle-double-down'></i></div></div><div class='snowball-title-button-group'><div class='snowball-title-button snowball-zoom-toggle' title='Edit code'><i class='fa fa-code'></i></div></div></div></div><iframe class='snowball-preview'></iframe></div><div class='snowball-code'><div class='snowball-html snowball-editor'><div class='snowball-code-title'>HTML</div><textarea class='snowball-editor-box' data-mode='xml'></textarea></div><div class='snowball-css snowball-editor'><div class='snowball-code-title'>CSS</div><textarea class='snowball-editor-box' data-mode='css'></textarea></div></div></div>");if(r.addClass("snowball-block-"+t).attr("data-type",t).attr("data-name",i).find(".snowball-title").text(i).end().find(".snowball-tinker").append(a).end(),o)for(var c in o){if(o.hasOwnProperty(c)){var d="[data-target='"+c+"']",b=r.find(d),u=o[c];b&&(b.is(":radio")?b.filter("[value='"+u+"']").prop("checked",!0):b.is(":checkbox")?b.prop("checked","true"==u||u===!0):b.val(u))}o.customCss&&r.find("textarea[data-mode='css']").html(o.customCss)}else{var w={blockType:t};snowball.savedblocks.push(w)}r.find(".snowball-preview").load(function(){n(r)}).end().find(".wp-color-picker").wpColorPicker({change:p(function(t){l(this).trigger("change").attr("value",l(this).val())},250)}),"undefined"==typeof e?r.appendTo("#snowball-main"):r.insertAfter(l(".snowball-block").eq(e)),s(r),r.trigger("open")}function n(t){var o=t.data("type"),e=t.find(".snowball-preview").contents(),n=snowball.templates[o],i="input[type='text'][data-target], input[type='email'][data-target], input[type='range'][data-target], input[type='hidden'][data-target], input[type='radio'][data-target]:checked, input[type='checkbox'][data-target]:checked, textarea[data-target], select[data-target]",r=t.find(i);r.each(function(t,e){var a=l(this).data("target"),s=l(this).val();"text"===o&&l(this).is("textarea")&&(s=s.replace(/\n([ \t]*\n)+/g,"</p><p>").replace(/\n/g,"<br />").replace(/<\/p><p>/g,"</p>\n\t<p>"));var i=new RegExp("{{"+a+"}}","g");n=n.replace(i,s)}),n=n.replace(/{{.+}}/g,""),n=n.replace(/\[author\]/g,snowball.author).replace(/\[blogname\]/g,snowball.blogname).replace(/\[blogurl\]/g,snowball.blogurl).replace(/\[date\]/g,snowball.date).replace(/\[url\]/g,snowball.url),snowball.title&&(n=n.replace(/\[title\]/g,snowball.title));var c=l(n),d=c.find("script").detach();e.find("body").empty().append(c),a(d,t),t.width()&&s(t),t.trigger("rendered")}function a(t,o){function e(l){var t=s.get(0).contentDocument.createElement("script");t.src=h[l],l<h.length-1?t.onload=function(){e(l+1)}:t.onload=function(){n(0)},r[0].appendChild(t)}function n(l){if(l<t.length){var o=t.eq(l).attr("src"),e=s.get(0).contentDocument.createElement("script");o?(e.src=o,e.onload=function(){n(l+1)}):e.innerHTML=t.eq(l).html(),d.find(".snowball-block").get(0).appendChild(e)}}var a,s=o.find(".snowball-preview"),i=s.contents(),r=i.find("head"),d=i.find("body"),b=o.find(".snowball-code .CodeMirror"),u="",w=snowball.pluginsUrl,p=snowball.includesUrl;if(b.length){var f=b[1].CodeMirror;a=c(f)}else a=o.find("textarea[data-mode='css']").html();if(a){var m=l("<style></style>").attr({"data-type":"custom",scoped:"scoped"});m.html(a),d.find(".snowball-block").append(m)}var v=[w+"/lib/d3-geomap/css/d3.geomap.css",w+"/lib/font-awesome/css/font-awesome.min.css",w+"/styles/min/snowball.min.css",w+"/styles/min/snowball-theme.min.css",w+"/styles/min/snowball-preview.min.css"],h=[p+"js/jquery/jquery.js","https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js","https://cdnjs.cloudflare.com/ajax/libs/topojson/1.6.19/topojson.min.js",w+"/lib/d3-geomap/vendor/d3.geomap.dependencies.min.js",w+"/lib/d3-geomap/js/d3.geomap.min.js",w+"/scripts/min/snowball-preview.min.js",w+"/scripts/min/templates.min.js"];v.forEach(function(l){var t="<link rel='stylesheet' href='"+l+"'>\n";u+=t}),r.is(":empty")?(r.html("<meta charset='utf-8'>"),r.append(u),r.append(l("#snowball-custom-code").val()),e(0)):n(0)}function s(t){var o,e,n;t?(o=t.width()/2,e=o<800?o/800:1,n="scale("+e+")",t.find(".snowball-preview").contents().find("html").css({"-webkit-transform":n,transform:n})):l(".snowball-preview").each(function(){o=l(this).closest(".snowball-block").width()/2,e=o<800?o/800:1,n="scale("+e+")",l(this).contents().find("html").css({"-webkit-transform":n,transform:n})})}function i(t){var o=t.find(".snowball-preview").contents().find("body"),e=t.find(".snowball-editor-box");e.each(function(t,e){var a=l(e).attr("data-mode"),s="xml"===a,i=CodeMirror.fromTextArea(e,{mode:{name:a,htmlMode:!0},readOnly:s,lineNumbers:!0,lineWrapping:!0,indentUnit:2,tabSize:2,theme:"monokai"});r(o,a,i),i.on("change",p(function(){var t=l(e).closest(".snowball-block");n(t),w()},250))})}function r(t,o,e,n){var a="",s=0;if("css"==o){t.find("style:not([data-type='custom'])").each(function(){a+=l(this).html()}),a?(a=a.replace(/^\n+|\n+$/g,""),a+="\n\n",s=a.split(/\r\n|\r|\n/).length-1):a="",n&&(a+=n);var i=c(e);i&&(a+=i)}else if("xml"===o){var r=t.clone();r.find("style").remove(),a=r.html().replace("\n\n</section>","\n</section>"),s=a.split(/\r\n|\r|\n/).length}var d=e.getCursor(),b=e.getScrollInfo().top,u={line:0,ch:0},w={line:s,ch:0},p={readOnly:!0,inclusiveLeft:!0};e.setValue(a),e.markText(u,w,p);for(var f=0;f<s;f++)e.addLineClass(f,"background","readonly");e.setCursor(d),e.scrollTo(null,b)}function c(l){var t=l.getAllMarks(),o=l.getValue();if(t.length){var e=t[0],n=e.lines.length;if(n<2)o=l.getValue();else{var a={line:n-1,ch:0},s={line:l.lastLine()+1,ch:0};o=l.getRange(a,s)}}return o}function d(l){var t=l.data("type"),o=parseBlock(l),n=l.index();o&&e(t,o,n)}function b(l){var t=l.find(".snowball-code .CodeMirror");if(t.length){var o=t[0].CodeMirror,e=t[1].CodeMirror,n=l.find(".snowball-preview").contents().find("body");r(n,"xml",o),r(n,"css",e)}}function u(l){var t=confirm("Are you sure you want to delete this block?");if(t){var o=l.data("type");l.trigger("close").remove(),w(),v.push({action:"delete",type:o})}}function w(){m=!0,l("#snowball-toolbar .settings .draft, #snowball-toolbar .settings .save").addClass("unsaved")}function p(l,t){var o=null;return function(){var e=this,n=arguments;clearTimeout(o),o=setTimeout(function(){l.apply(e,n)},t)}}function f(){var t,o=[],e=[],n=[],a=l(".settings-dropdown .CodeMirror");t=a.length>0?a[0].CodeMirror.getValue():l("#snowball-custom-code").val(),l(".snowball-block").each(function(){var t,a=l(this),s=a.data("type"),i=a.find(".snowball-css .CodeMirror");if(o.push(s),t=i.length>0?c(i[0].CodeMirror):a.find(".snowball-editor-box").val(),n.push({type:s,code:t}),"html"===s){var r=a.find(".snowball-tinker .CodeMirror")[0].CodeMirror.getValue();e.push(r)}}),Parse.initialize("FwVMmzHookZZ5j9F9ILc2E5MT5ufabuV7hCXKSeu"),Parse.serverURL="http://129.25.12.218:1337/parse";var s=Parse.Object.extend("Snowball"),i=new s;i.save({blogname:snowball.blogname,blogurl:snowball.blogurl,url:snowball.url,postid:snowball.id,status:snowball.status,author:snowball.authorLogin,user:snowball.userLogin,article:o,size:o.length,actions:v,head:t,css:n,html:e}),v=[]}var m=!1,v=[];snowball.status=0===l("#save-post").length?"publish":"draft",jQuery(document).ready(function(){0!==snowball.savedblocks.length&&"null"!==snowball.savedblocks?(l("#snowball_meta").removeClass("closed"),snowball.savedblocks=JSON.parse(snowball.savedblocks),o()):snowball.savedblocks=[],t()})}(jQuery);
     1function debounce(e,l){var o=null;return function(){var t=this,n=arguments;clearTimeout(o),o=setTimeout(function(){e.apply(t,n)},l)}}!function(e){function l(){e("#publish, #save-post").on("click",function(){"publish"==e(this).attr("id")?(snowball.status="publish",m.push({action:"save",type:"publish"})):(snowball.status="draft",m.push({action:"save",type:"draft"})),f=!1}),e("#title").on("input",debounce(function(){snowball.title=e(this).val(),e(".snowball-block").each(function(){e(this).trigger("render")})},250)),e("#snowball-toolbar").css("width",e("#snowball-toolbar").parent().width()).fixedsticky(),e("#snowball-toolbar .block-button").on("click",function(){var l=e(this).data("type");t(l),w(),m.push({action:"add",type:l})}),e("#snowball-toolbar .tag").on("click",function(){var l=e(this).attr("data-tag");e(".tag.active").removeClass("active"),e(this).addClass("active"),"all"===l?e("#snowball-toolbar .buttons .button").removeClass("hidden"):e("#snowball-toolbar .buttons .button").addClass("hidden").filter("."+l).removeClass("hidden")}),e("#snowball-toolbar .settings .button").on("click",function(){var l=e(this).attr("data-click");e(l).click()}),e("#snowball-toolbar .menu-toggle").on("click",function(){var l=e(this).next(".dialog"),o=l.find(".CodeMirror");if(l.addClass("modal"),e("body").toggleClass("modal"),0===o.length&&l.hasClass("settings-dropdown")){var t=l.find("textarea").get(0);o=CodeMirror.fromTextArea(t,{mode:{name:"htmlmixed",htmlMode:!0},lineNumbers:!0,lineWrapping:!0,indentUnit:2,tabSize:2,theme:"monokai"})}}),e("#snowball-toolbar .menu .close").on("click",function(){var l=e(this).closest(".dialog"),o=l.find(".CodeMirror")[0].CodeMirror.getValue();o&&m.push({action:"code",type:"head",data:o}),l.removeClass("modal"),e("body").removeClass("modal")}),e("#snowball-settings .toggle").on("click",function(){e("#snowball-settings ul").toggle()}),e("#snowball-main").on("render",".snowball-block",function(){var l=e(this);n(l)}).on("mousedown",".snowball-block",function(){e("#snowball-main").height(e("#snowball-main").height())}).on("mouseup",".snowball-block",function(){e("#snowball-main").height("auto")}).on("input change paste",".snowball-tinker input, .snowball-tinker textarea, .snowball-tinker select",debounce(function(){var l=e(this).closest(".snowball-block");l.trigger("render"),b(l),w()},250)).on("click",".snowball-delete",function(){var l=e(this).closest(".snowball-block");l.data("type");u(l)}).on("click",".snowball-copy",function(){var l=e(this).closest(".snowball-block"),o=l.data("type");d(l),w(),m.push({action:"copy",type:o})}).on("click",".snowball-zoom-toggle",function(){var l=e(this).closest(".snowball-block"),o=l.data("type");if(l.find(".snowball-code, .snowball-copy, .snowball-delete, .snowball-top, .snowball-bottom").toggle(),l.toggleClass("modal"),e("body").toggleClass("modal"),s(l),!l.hasClass("modal")){var t=l.find(".snowball-css .CodeMirror")[0].CodeMirror,n=c(t);m.push({action:"code",type:o,data:n})}l.find(".CodeMirror").each(function(e,l){l.CodeMirror.refresh()})}).on("click",".snowball-top",function(){var l=e(this).closest(".snowball-block");l.index()>0&&(l.parent().prepend(l),w())}).on("click",".snowball-bottom",function(){var l=e(this).closest(".snowball-block");l.index()<e(".snowball-block").length-1&&(l.parent().append(l),w())}).on("mouseover",".snowball-zoom-toggle",function(){var l=e(this).closest(".snowball-block");0===l.find(".snowball-code .CodeMirror").length&&i(l)}).on("change",".handsontable",function(){w()}).sortable({axis:"y",cancel:".snowball-block.modal, .snowball-title-button, button, textarea, input, select, .handsontable .wtHider, .CodeMirror, .button, .toggle-buttons",change:function(){w()},containment:"#snowball-main",cursor:"move",tolerance:"pointer"}),e("body").on("click","#modal-bg",function(){e(".snowball-block.modal .snowball-zoom-toggle, .settings-dropdown.modal .close").click(),e(".modal").removeClass("modal")}).on("keydown",function(l){27===l.keyCode&&(e(".snowball-block.modal .snowball-zoom-toggle, .settings-dropdown.modal .close").click(),e(".modal").removeClass("modal"))}),e(window).resize(debounce(function(){s(),e(".fixedsticky").fixedsticky("destroy").fixedsticky()},250)).resize(function(){var l=e(".fixedsticky");l.css("width",l.parent().width())}).on("load",function(){e(".fixedsticky").fixedsticky("destroy").fixedsticky()}).on("beforeunload",function(e){if(p(),f)return"You may have unsaved changes."}),e("#collapse-menu").click(function(){var l=e(".fixedsticky");l.css("width",l.parent().width()),s()}),e(".hndle, #adv-settings input, .columns-prefs input").on("click",function(){var l=e(".fixedsticky");l.css("width",l.parent().width()),l.fixedsticky("destroy").fixedsticky()}),e("#show-settings-link").on("click",function(){setTimeout(function(){e(".fixedsticky").fixedsticky("destroy").fixedsticky()},200)})}function o(){for(var e in snowball.savedblocks){var l=snowball.savedblocks[e],o=l.blockType.toLowerCase();delete l.blockType,delete l.orderNumber,t(o,l)}}function t(l,o,t){var a=snowball.blocks[l],i=snowball.names[l],r=e("<div class='snowball-block'><div class='snowball-gui'><div class='snowball-tinker'><div><div class='snowball-title'></div><div class='snowball-title-button-group'><div class='snowball-title-button snowball-copy' title='Copy block'><i class='fa fa-files-o'></i></div><div class='snowball-title-button snowball-delete' title='Delete block'>&times;</div></div><div class='snowball-title-button-group'><div class='snowball-title-button snowball-top' title='Move block to top'><i class='fa fa-angle-double-up'></i></div><div class='snowball-title-button snowball-bottom' title='Move block to bottom'><i class='fa fa-angle-double-down'></i></div></div><div class='snowball-title-button-group'><div class='snowball-title-button snowball-zoom-toggle' title='Edit code'><i class='fa fa-code'></i></div></div></div></div><iframe class='snowball-preview'></iframe></div><div class='snowball-code'><div class='snowball-html snowball-editor'><div class='snowball-code-title'>HTML</div><textarea class='snowball-editor-box' data-mode='xml'></textarea></div><div class='snowball-css snowball-editor'><div class='snowball-code-title'>CSS</div><textarea class='snowball-editor-box' data-mode='css'></textarea></div></div></div>");if(r.addClass("snowball-block-"+l).attr("data-type",l).attr("data-name",i).find(".snowball-title").text(i).end().find(".snowball-tinker").append(a).end(),o)for(var c in o){if(o.hasOwnProperty(c)){var d="[data-target='"+c+"']",b=r.find(d),u=o[c];b&&(b.is(":radio")?b.filter("[value='"+u+"']").prop("checked",!0):b.is(":checkbox")?b.prop("checked","true"==u||u===!0):b.val(u))}o.customCss&&r.find("textarea[data-mode='css']").html(o.customCss)}else{var w={blockType:l};snowball.savedblocks.push(w)}r.find(".snowball-preview").load(function(){n(r)}).end().find(".wp-color-picker").wpColorPicker({change:debounce(function(l){e(this).trigger("change").attr("value",e(this).val())},250)}),"undefined"==typeof t?r.appendTo("#snowball-main"):r.insertAfter(e(".snowball-block").eq(t)),s(r),r.trigger("open")}function n(l){var o=l.data("type"),t=l.find(".snowball-preview").contents(),n=snowball.templates[o],i="input[type='text'][data-target], input[type='email'][data-target], input[type='range'][data-target], input[type='hidden'][data-target], input[type='radio'][data-target]:checked, input[type='checkbox'][data-target]:checked, textarea[data-target], select[data-target]",r=l.find(i);r.each(function(l,t){var a=e(this).data("target"),s=e(this).val();"text"===o&&e(this).is("textarea")&&(s=s.replace(/\n([ \t]*\n)+/g,"</p><p>").replace(/\n/g,"<br />").replace(/<\/p><p>/g,"</p>\n\t<p>"));var i=new RegExp("{{"+a+"}}","g");n=n.replace(i,s)}),n=n.replace(/{{.+}}/g,""),n=n.replace(/\[author\]/g,snowball.author).replace(/\[blogname\]/g,snowball.blogname).replace(/\[blogurl\]/g,snowball.blogurl).replace(/\[date\]/g,snowball.date).replace(/\[url\]/g,snowball.url),snowball.title&&(n=n.replace(/\[title\]/g,snowball.title));var c=e(n),d=c.find("script").detach();t.find("body").empty().append(c),a(d,l),l.width()&&s(l),l.trigger("rendered")}function a(l,o){function t(e){var l=s.get(0).contentDocument.createElement("script");l.src=h[e],e<h.length-1?l.onload=function(){t(e+1)}:l.onload=function(){n(0)},r[0].appendChild(l)}function n(e){if(e<l.length){var o=l.eq(e).attr("src"),t=s.get(0).contentDocument.createElement("script");o?(t.src=o,t.onload=function(){n(e+1)}):t.innerHTML=l.eq(e).html(),d.find(".snowball-block").get(0).appendChild(t)}}var a,s=o.find(".snowball-preview"),i=s.contents(),r=i.find("head"),d=i.find("body"),b=o.find(".snowball-code .CodeMirror"),u="",w=snowball.pluginsUrl,p=snowball.includesUrl;if(b.length){var f=b[1].CodeMirror;a=c(f)}else a=o.find("textarea[data-mode='css']").html();if(a){var m=e("<style></style>").attr({"data-type":"custom",scoped:"scoped"});m.html(a),d.find(".snowball-block").append(m)}var v=[w+"/lib/d3-geomap/css/d3.geomap.css",w+"/lib/font-awesome/css/font-awesome.min.css",w+"/styles/min/snowball.min.css",w+"/styles/min/snowball-theme.min.css",w+"/styles/min/snowball-preview.min.css"],h=[p+"js/jquery/jquery.js","https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js","https://cdnjs.cloudflare.com/ajax/libs/topojson/1.6.19/topojson.min.js",w+"/lib/d3-geomap/vendor/d3.geomap.dependencies.min.js",w+"/lib/d3-geomap/js/d3.geomap.min.js",w+"/scripts/min/snowball-preview.min.js",w+"/scripts/min/templates.min.js"];v.forEach(function(e){var l="<link rel='stylesheet' href='"+e+"'>\n";u+=l}),r.is(":empty")?(r.html("<meta charset='utf-8'>"),r.append(u),r.append(e("#snowball-custom-code").val()),t(0)):n(0)}function s(l){var o,t,n;l?(o=l.width()/2,t=o<800?o/800:1,n="scale("+t+")",l.find(".snowball-preview").contents().find("html").css({"-webkit-transform":n,transform:n})):e(".snowball-preview").each(function(){o=e(this).closest(".snowball-block").width()/2,t=o<800?o/800:1,n="scale("+t+")",e(this).contents().find("html").css({"-webkit-transform":n,transform:n})})}function i(l){var o=l.find(".snowball-preview").contents().find("body"),t=l.find(".snowball-editor-box");t.each(function(l,t){var a=e(t).attr("data-mode"),s="xml"===a,i=CodeMirror.fromTextArea(t,{mode:{name:a,htmlMode:!0},readOnly:s,lineNumbers:!0,lineWrapping:!0,indentUnit:2,tabSize:2,theme:"monokai"});r(o,a,i),i.on("change",debounce(function(){var l=e(t).closest(".snowball-block");n(l),w()},250))})}function r(l,o,t,n){var a="",s=0;if("css"==o){l.find("style:not([data-type='custom'])").each(function(){a+=e(this).html()}),a?(a=a.replace(/^\n+|\n+$/g,""),a+="\n\n",s=a.split(/\r\n|\r|\n/).length-1):a="",n&&(a+=n);var i=c(t);i&&(a+=i)}else if("xml"===o){var r=l.clone();r.find("style").remove(),a=r.html().replace("\n\n</section>","\n</section>"),s=a.split(/\r\n|\r|\n/).length}var d=t.getCursor(),b=t.getScrollInfo().top,u={line:0,ch:0},w={line:s,ch:0},p={readOnly:!0,inclusiveLeft:!0};t.setValue(a),t.markText(u,w,p);for(var f=0;f<s;f++)t.addLineClass(f,"background","readonly");t.setCursor(d),t.scrollTo(null,b)}function c(e){var l=e.getAllMarks(),o=e.getValue();if(l.length){var t=l[0],n=t.lines.length;if(n<2)o=e.getValue();else{var a={line:n-1,ch:0},s={line:e.lastLine()+1,ch:0};o=e.getRange(a,s)}}return o}function d(e){var l=e.data("type"),o=parseBlock(e),n=e.index();o&&t(l,o,n)}function b(e){var l=e.find(".snowball-code .CodeMirror");if(l.length){var o=l[0].CodeMirror,t=l[1].CodeMirror,n=e.find(".snowball-preview").contents().find("body");r(n,"xml",o),r(n,"css",t)}}function u(e){var l=confirm("Are you sure you want to delete this block?");if(l){var o=e.data("type");e.trigger("close").remove(),w(),m.push({action:"delete",type:o})}}function w(){f=!0,e("#snowball-toolbar .settings .draft, #snowball-toolbar .settings .save").addClass("unsaved")}function p(){var l,o=[],t=[],n=[],a=e(".settings-dropdown .CodeMirror");l=a.length>0?a[0].CodeMirror.getValue():e("#snowball-custom-code").val(),e(".snowball-block").each(function(){var l,a=e(this),s=a.data("type"),i=a.find(".snowball-css .CodeMirror");if(o.push(s),l=i.length>0?c(i[0].CodeMirror):a.find(".snowball-editor-box").val(),n.push({type:s,code:l}),"html"===s){var r=a.find(".snowball-tinker .CodeMirror")[0].CodeMirror.getValue();t.push(r)}}),Parse.initialize("FwVMmzHookZZ5j9F9ILc2E5MT5ufabuV7hCXKSeu"),Parse.serverURL="http://129.25.12.218:1337/parse";var s=Parse.Object.extend("Snowball"),i=new s;i.save({blogname:snowball.blogname,blogurl:snowball.blogurl,url:snowball.url,postid:snowball.id,status:snowball.status,author:snowball.authorLogin,user:snowball.userLogin,article:o,size:o.length,actions:m,head:l,css:n,html:t}),m=[]}var f=!1,m=[];snowball.status=0===e("#save-post").length?"publish":"draft",jQuery(document).ready(function(){0!==snowball.savedblocks.length&&"null"!==snowball.savedblocks?(e("#snowball_meta").removeClass("closed"),snowball.savedblocks=JSON.parse(snowball.savedblocks),o()):snowball.savedblocks=[],l()})}(jQuery);
    22//# sourceMappingURL=snowball-admin.min.js.map
  • snowball/trunk/scripts/min/snowball-admin.min.js.map

    r1527674 r1646815  
    1 {"version":3,"sources":["snowball-admin.js"],"names":["$","setHandlers","on","this","attr","snowball","status","actions","push","action","type","changesMade","debounce","title","val","each","trigger","css","parent","width","fixedsticky","data","addBlock","unsavedChanges","tag","removeClass","addClass","filter","click","dialog","next","editor","find","toggleClass","length","hasClass","elem","get","CodeMirror","fromTextArea","mode","name","htmlMode","lineNumbers","lineWrapping","indentUnit","tabSize","theme","closest","getValue","toggle","block","renderPreview","height","refreshEditors","confirmDelete","copyBlock","zoomPreview","retrieveNonReadOnlyText","index","refresh","prepend","append","initEditors","sortable","axis","cancel","change","containment","cursor","tolerance","e","keyCode","window","resize","logger","setTimeout","populateSavedBlocks","b","savedblocks","toLowerCase","at","blockCode","blocks","names","text","end","key","hasOwnProperty","selector","input","value","is","prop","customCss","html","dataBlock","blockType","load","wpColorPicker","event","appendTo","insertAfter","eq","preview","contents","templates","fields","element","target","replace","regex","RegExp","author","blogname","blogurl","date","url","$html","blockScripts","detach","empty","previewScripts","callback","i","script","iframe","contentDocument","createElement","src","defaultScripts","onload","callback2","head","appendChild","innerHTML","body","style","cm","defaultCss","pluginsUrl","includesUrl","cssEditor","customStyle","data-type","scoped","defaultStylesheets","forEach","href","code","zoom","scale","-webkit-transform","transform","editors","modeType","isReadOnly","readOnly","renderEditor","cssCode","split","nonReadOnlyCode","clone","remove","cursorPos","getCursor","scrollPos","getScrollInfo","top","startLine","line","ch","endLine","options","inclusiveLeft","setValue","markText","addLineClass","setCursor","scrollTo","readOnlyMark","getAllMarks","mark","lastReadOnlyLine","lines","fromLine","toLine","lastLine","getRange","parseBlock","htmlEditor","result","confirm","fn","delay","timer","context","args","arguments","clearTimeout","apply","article","headEditor","Parse","initialize","Blocks","Object","extend","set","postid","id","authorLogin","user","userLogin","size","save","jQuery","document","ready","JSON","parse"],"mappings":"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","file":"snowball-admin.min.js","sourcesContent":["(function($) {\n  var changesMade = false;\n  var actions = [];\n  snowball.status = $(\"#save-post\").length === 0 ? \"publish\" : \"draft\";\n\n  jQuery(document).ready(function() {\n    if ((snowball.savedblocks.length !== 0) && (snowball.savedblocks !== \"null\")) {\n      $(\"#snowball_meta\").removeClass(\"closed\");\n\n      snowball.savedblocks = JSON.parse(snowball.savedblocks);\n      populateSavedBlocks();\n    } else {\n      snowball.savedblocks = [];\n    }\n\n    setHandlers();\n  });\n\n  function setHandlers() {\n    $(\"#publish, #save-post\").on(\"click\", function() {\n      if ($(this).attr(\"id\") == \"publish\") {\n        snowball.status = \"publish\";\n        actions.push({\n          action: \"save\",\n          type: \"publish\"\n        });\n      } else {\n        snowball.status = \"draft\";\n        actions.push({\n          action: \"save\",\n          type: \"draft\"\n        });\n      }\n\n      changesMade = false;\n    });\n\n    $(\"#title\").on(\"input\", debounce(function() {\n      snowball.title = $(this).val();\n      $(\".snowball-block\").each(function() {\n        $(this).trigger(\"render\");\n      });\n    }, 250));\n\n    $(\"#snowball-toolbar\")\n      .css(\"width\", $(\"#snowball-toolbar\").parent().width())\n      .fixedsticky();\n\n    $(\"#snowball-toolbar .block-button\").on(\"click\", function() {\n      var type = $(this).data(\"type\");\n      addBlock(type);\n      unsavedChanges();\n\n      actions.push({\n        action: \"add\",\n        type: type\n      });\n    });\n\n    $(\"#snowball-toolbar .tag\").on(\"click\", function() {\n      var tag = $(this).attr(\"data-tag\");\n      $(\".tag.active\").removeClass(\"active\");\n      $(this).addClass(\"active\");\n\n      if (tag === \"all\") {\n        $(\"#snowball-toolbar .buttons .button\").removeClass(\"hidden\");\n      } else {\n        $(\"#snowball-toolbar .buttons .button\").addClass(\"hidden\").filter(\".\" + tag).removeClass(\"hidden\");\n      }\n    });\n\n    $(\"#snowball-toolbar .settings .button\").on(\"click\", function() {\n      var click = $(this).attr(\"data-click\");\n      $(click).click();\n    });\n\n    $(\"#snowball-toolbar .menu-toggle\").on(\"click\", function() {\n      var dialog = $(this).next(\".dialog\");\n      var editor = dialog.find(\".CodeMirror\");\n\n      dialog.addClass(\"modal\");\n      $(\"body\").toggleClass(\"modal\");\n\n      if ((editor.length === 0) && dialog.hasClass(\"settings-dropdown\")) {\n        var elem = dialog.find(\"textarea\").get(0);\n        editor = CodeMirror.fromTextArea(elem, {\n            mode: {name: \"htmlmixed\", htmlMode: true},\n            lineNumbers: true,\n            lineWrapping: true,\n            indentUnit: 2,\n            tabSize: 2,\n            theme: \"monokai\"\n        });\n      }\n\n    });\n\n    $(\"#snowball-toolbar .menu .close\").on(\"click\", function() {\n      var dialog = $(this).closest(\".dialog\");\n      var css = dialog.find(\".CodeMirror\")[0].CodeMirror.getValue();\n\n      if (css) {\n        actions.push({\n          action: \"code\",\n          type: \"head\",\n          data: css\n        });\n      }\n\n      dialog.removeClass(\"modal\");\n      $(\"body\").removeClass(\"modal\");\n    });\n\n    $(\"#snowball-settings .toggle\").on(\"click\", function() {\n      $(\"#snowball-settings ul\").toggle();\n    });\n\n    $(\"#snowball-main\")\n      .on(\"render\", \".snowball-block\", function() {\n        var block = $(this);\n        renderPreview(block);\n      })\n      .on(\"mousedown\", \".snowball-block\", function() {\n        $(\"#snowball-main\").height($(\"#snowball-main\").height());\n      })\n      .on(\"mouseup\", \".snowball-block\", function() {\n        $(\"#snowball-main\").height(\"auto\");\n      })\n      .on(\"input change paste\", \".snowball-tinker input, .snowball-tinker textarea, .snowball-tinker select\", debounce(function() {\n        var block = $(this).closest(\".snowball-block\");\n        block.trigger(\"render\");\n        refreshEditors(block);\n        unsavedChanges();\n      }, 250))\n      .on(\"click\", \".snowball-delete\", function() {\n        var block = $(this).closest(\".snowball-block\");\n        var type = block.data(\"type\");\n\n        confirmDelete(block);\n      })\n      .on(\"click\", \".snowball-copy\", function() {\n        var block = $(this).closest(\".snowball-block\");\n        var type = block.data(\"type\");\n\n        copyBlock(block);\n        unsavedChanges();\n\n        actions.push({\n          action: \"copy\",\n          type: type\n        });\n      })\n      .on(\"click\", \".snowball-zoom-toggle\", function() {\n        var block = $(this).closest(\".snowball-block\");\n        var type = block.data(\"type\");\n\n        block.find(\".snowball-code, .snowball-copy, .snowball-delete, .snowball-top, .snowball-bottom\").toggle();\n\n        block.toggleClass(\"modal\");\n        $(\"body\").toggleClass(\"modal\");\n        zoomPreview(block);\n\n        if (!block.hasClass(\"modal\")) {\n          var editor = block.find(\".snowball-css .CodeMirror\")[0].CodeMirror;\n          var css = retrieveNonReadOnlyText(editor);\n\n          actions.push({\n            action: \"code\",\n            type: type,\n            data: css\n          });\n        }\n\n        block.find(\".CodeMirror\").each(function(index, editor) {\n          editor.CodeMirror.refresh();\n        });\n      })\n      .on(\"click\", \".snowball-top\", function() {\n        var block = $(this).closest(\".snowball-block\");\n\n        if (block.index() > 0) {\n          block.parent().prepend(block);\n          unsavedChanges();\n        }\n      })\n      .on(\"click\", \".snowball-bottom\", function() {\n        var block = $(this).closest(\".snowball-block\");\n\n        if (block.index() < ($(\".snowball-block\").length) - 1) {\n          block.parent().append(block);\n          unsavedChanges();\n        }\n      })\n      .on(\"mouseover\", \".snowball-zoom-toggle\", function() {\n        var block = $(this).closest(\".snowball-block\");\n\n        if (block.find(\".snowball-code .CodeMirror\").length === 0) {\n          initEditors(block);\n        }\n      })\n      .on(\"change\", \".handsontable\", function() {\n        unsavedChanges();\n      })\n      .sortable({\n        axis: \"y\",\n        cancel: \".snowball-block.modal, .snowball-title-button, button, textarea, input, select, .handsontable .wtHider, .CodeMirror, .button, .toggle-buttons\",\n        change: function() {\n          unsavedChanges();\n        },\n        containment: \"#snowball-main\",\n        cursor: \"move\",\n        tolerance: \"pointer\"\n      });\n\n    $(\"body\")\n      .on(\"click\", \"#modal-bg\", function() {\n        $(\".snowball-block.modal .snowball-zoom-toggle, .settings-dropdown.modal .close\").click();\n        $(\".modal\").removeClass(\"modal\");\n      })\n      .on(\"keydown\", function (e) {\n        if (e.keyCode === 27) { // ESC\n          $(\".snowball-block.modal .snowball-zoom-toggle, .settings-dropdown.modal .close\").click();\n          $(\".modal\").removeClass(\"modal\");\n        }\n      });\n\n    $(window)\n      .resize(debounce(function() {\n        zoomPreview();\n        $(\".fixedsticky\").fixedsticky(\"destroy\").fixedsticky();\n      }, 250))\n      .resize(function() {\n        var fixedsticky = $(\".fixedsticky\");\n        fixedsticky.css(\"width\", fixedsticky.parent().width());\n      })\n      .on(\"load\", function() {\n        $(\".fixedsticky\").fixedsticky(\"destroy\").fixedsticky();\n      })\n      .on(\"beforeunload\", function(e) {\n        logger();\n\n        if (changesMade) {\n          return \"You may have unsaved changes.\";\n        }\n      });\n\n    $(\"#collapse-menu\").click(function() {\n      var fixedsticky = $(\".fixedsticky\");\n      fixedsticky.css(\"width\", fixedsticky.parent().width());\n      zoomPreview();\n    });\n\n    $(\".hndle, #adv-settings input, .columns-prefs input\").on(\"click\", function() {\n      var fixedsticky = $(\".fixedsticky\");\n      fixedsticky.css(\"width\", fixedsticky.parent().width());\n      fixedsticky.fixedsticky(\"destroy\").fixedsticky();\n    });\n\n    $(\"#show-settings-link\").on(\"click\", function() {\n      setTimeout(function() {\n        $(\".fixedsticky\").fixedsticky(\"destroy\").fixedsticky();\n      }, 200);\n    });\n  }\n\n  function populateSavedBlocks() {\n    for (var b in snowball.savedblocks) {\n      var block = snowball.savedblocks[b];\n      var type = block[\"blockType\"].toLowerCase();\n      // need to delete so snowball.addBlock works properly\n      delete block[\"blockType\"];\n      delete block[\"orderNumber\"];\n\n      addBlock(type, block);\n    }\n  }\n\n  function addBlock(type, data, at) {\n    var blockCode = snowball.blocks[type];\n    var name = snowball.names[type];\n    var block = $(\"<div class='snowball-block'>\" +\n                    \"<div class='snowball-gui'>\" +\n                      \"<div class='snowball-tinker'>\" +\n                        \"<div>\" +\n                          \"<div class='snowball-title'></div>\" +\n                          \"<div class='snowball-title-button-group'>\" +\n                            \"<div class='snowball-title-button snowball-copy' title='Copy block'><i class='fa fa-files-o'></i></div>\" +\n                            \"<div class='snowball-title-button snowball-delete' title='Delete block'>&times;</div>\" +\n                          \"</div>\" +\n                          \"<div class='snowball-title-button-group'>\" +\n                            \"<div class='snowball-title-button snowball-top' title='Move block to top'><i class='fa fa-angle-double-up'></i></div>\" +\n                            \"<div class='snowball-title-button snowball-bottom' title='Move block to bottom'><i class='fa fa-angle-double-down'></i></div>\" +\n                          \"</div>\" +\n                          \"<div class='snowball-title-button-group'>\" +\n                            \"<div class='snowball-title-button snowball-zoom-toggle' title='Edit code'><i class='fa fa-code'></i></div>\" +\n                          \"</div>\" +\n                        \"</div>\" +\n                      \"</div>\" +\n                      \"<iframe class='snowball-preview'></iframe>\" +\n                    \"</div>\" +\n                    \"<div class='snowball-code'>\" +\n                      \"<div class='snowball-html snowball-editor'>\" +\n                        \"<div class='snowball-code-title'>HTML</div>\" +\n                        \"<textarea class='snowball-editor-box' data-mode='xml'></textarea>\" +\n                      \"</div>\" +\n                      \"<div class='snowball-css snowball-editor'>\" +\n                        \"<div class='snowball-code-title'>CSS</div>\" +\n                        \"<textarea class='snowball-editor-box' data-mode='css'></textarea>\" +\n                      \"</div>\" +\n                    \"</div>\" +\n                  \"</div>\");\n\n    block\n      .addClass(\"snowball-block-\" + type)\n      .attr(\"data-type\", type)\n      .attr(\"data-name\", name)\n      .find(\".snowball-title\").text(name).end()\n      .find(\".snowball-tinker\").append(blockCode).end();\n\n    if (data) {\n      for (var key in data) {\n        if (data.hasOwnProperty(key)) {\n          var selector = \"[data-target='\" + key + \"']\";\n          var input = block.find(selector);\n          var value = data[key];\n          if (input) {\n            if (input.is(\":radio\")) {\n              input.filter(\"[value='\" +  value + \"']\").prop(\"checked\", true);\n            } else if (input.is(\":checkbox\")) {\n              input.prop(\"checked\", ((value == \"true\") || value === true));\n            } else {\n              input.val(value);\n            }\n          }\n        }\n\n        if (data.customCss) {\n          block.find(\"textarea[data-mode='css']\").html(data.customCss);\n        }\n      }\n\n\n    } else {\n      var dataBlock = {\n        blockType: type\n      };\n\n      snowball.savedblocks.push(dataBlock);\n    }\n\n    block\n      .find(\".snowball-preview\").load(function() {\n        renderPreview(block);\n      }).end()\n      .find(\".wp-color-picker\").wpColorPicker({\n        change: debounce(function (event) {\n          $(this)\n            .trigger(\"change\")\n            .attr(\"value\", $(this).val());\n        }, 250)\n      });\n\n    if (typeof at == \"undefined\") {\n      block.appendTo(\"#snowball-main\");\n    } else {\n      block.insertAfter($(\".snowball-block\").eq(at));\n    }\n    \n    zoomPreview(block);\n    block.trigger(\"open\");\n  }\n\n  function renderPreview(block) {\n    var type = block.data(\"type\");\n    var preview = block.find(\".snowball-preview\").contents();\n    var html = snowball.templates[type];\n    var selector = \"input[type='text'][data-target], input[type='email'][data-target], input[type='range'][data-target], input[type='hidden'][data-target], input[type='radio'][data-target]:checked, input[type='checkbox'][data-target]:checked, textarea[data-target], select[data-target]\";\n    var fields = block.find(selector);\n\n    fields.each(function(index, element) {\n      var target = $(this).data(\"target\");\n      var value = $(this).val();\n\n      if ((type === \"text\") && $(this).is(\"textarea\")) {\n        // For text blocks, replace \\n\\n with <p>\n        value = value.replace(/\\n([ \\t]*\\n)+/g, '</p><p>')\n                 .replace(/\\n/g, '<br />')\n                 .replace(/<\\/p><p>/g, '</p>\\n\\t<p>');\n      }\n      var regex = new RegExp(\"{{\" + target + \"}}\", \"g\");\n      html = html.replace(regex, value);\n    });\n\n    html = html.replace(/{{.+}}/g, \"\");\n\n    html = html.replace(/\\[author\\]/g, snowball.author)\n               .replace(/\\[blogname\\]/g, snowball.blogname)\n               .replace(/\\[blogurl\\]/g, snowball.blogurl)\n               .replace(/\\[date\\]/g, snowball.date)\n               .replace(/\\[url\\]/g, snowball.url);\n\n    if (snowball.title) {\n      html = html.replace(/\\[title\\]/g, snowball.title);\n    }\n\n    var $html = $(html);\n    var blockScripts = $html.find(\"script\").detach();\n\n    preview.find(\"body\").empty().append($html);\n    previewScripts(blockScripts, block);\n\n    if (block.width()) {\n      zoomPreview(block);\n    }\n\n    block.trigger(\"rendered\");\n  }\n\n  // create script elements from iframe document so js is executed in iframe's context\n  // append default scripts to head so they aren't repeated in article for each block\n  // append block scripts to body so they are included in article\n  // only block scripts with src are re-appended here\n  // block scripts with innerhtml must be evaled in snowball-preview.js\n\n  function previewScripts(blockScripts, block) {\n    var iframe = block.find(\".snowball-preview\");\n    var preview = iframe.contents();\n    var head = preview.find(\"head\");\n    var body = preview.find(\"body\");\n    var cm = block.find('.snowball-code .CodeMirror');\n    var defaultCss = \"\";\n\n    var pluginsUrl = snowball.pluginsUrl;\n    var includesUrl = snowball.includesUrl;\n\n    var style;\n\n    if (cm.length) {\n      var cssEditor = cm[1].CodeMirror;\n      style = retrieveNonReadOnlyText(cssEditor);\n    } else {\n      style = block.find(\"textarea[data-mode='css']\").html();\n    }\n\n    if (style) {\n      var customStyle = $(\"<style></style>\").attr({\"data-type\": \"custom\", \"scoped\": \"scoped\"});\n      customStyle.html(style);\n      body.find(\".snowball-block\").append(customStyle);\n    }\n\n    var defaultStylesheets = [\n                                pluginsUrl + \"/lib/d3-geomap/css/d3.geomap.css\",\n                                pluginsUrl + \"/lib/font-awesome/css/font-awesome.min.css\",\n                                pluginsUrl + \"/styles/min/snowball.min.css\",\n                                pluginsUrl + \"/styles/min/snowball-theme.min.css\",\n                                pluginsUrl + \"/styles/min/snowball-preview.min.css\"\n                              ];\n\n    var defaultScripts = [\n                            includesUrl + \"js/jquery/jquery.js\",\n                            \"https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js\",\n                            \"https://cdnjs.cloudflare.com/ajax/libs/topojson/1.6.19/topojson.min.js\",\n                            pluginsUrl + \"/lib/d3-geomap/vendor/d3.geomap.dependencies.min.js\",\n                            pluginsUrl + \"/lib/d3-geomap/js/d3.geomap.min.js\",\n                            pluginsUrl + \"/scripts/min/snowball-preview.min.js\",\n                            pluginsUrl + \"/scripts/min/templates.min.js\"\n                          ];\n\n    defaultStylesheets.forEach(function(href) {\n      var code = \"<link rel='stylesheet' href='\" + href + \"'>\\n\";\n      defaultCss = defaultCss + code;\n    });\n\n    if(head.is(\":empty\")) {\n      head.html(\"<meta charset='utf-8'>\");\n      head.append(defaultCss);\n      head.append($(\"#snowball-custom-code\").val());\n      callback(0);\n    } else {\n      callback2(0);\n    }\n\n    function callback(i) {\n      var script = iframe.get(0).contentDocument.createElement(\"script\");\n      script.src = defaultScripts[i];\n\n      if (i < defaultScripts.length - 1) {\n        script.onload = function() {\n          callback(i+1);\n        };\n      } else {\n        script.onload = function() {\n          callback2(0);\n        };\n      }\n\n      head[0].appendChild(script);\n    }\n\n    function callback2(i) {\n      if (i < blockScripts.length) {\n        var src = blockScripts.eq(i).attr(\"src\");\n        var script = iframe.get(0).contentDocument.createElement(\"script\");\n\n        if (src) {\n          script.src = src;\n          script.onload = function() {\n            callback2(i+1);\n          };\n        } else {\n          script.innerHTML = blockScripts.eq(i).html();\n        }\n\n        body.find(\".snowball-block\").get(0).appendChild(script);\n      }\n    }\n  }\n\n  function zoomPreview(block) {\n    var width;\n    var zoom;\n    var scale;\n\n    if (block) {\n      width = block.width() / 2;\n      zoom = (width < 800) ? width/800 : 1;\n      scale = \"scale(\" + zoom + \")\";\n\n      block.find(\".snowball-preview\").contents().find(\"html\").css({\"-webkit-transform\": scale, \"transform\": scale});\n    } else {\n      $(\".snowball-preview\").each(function() {\n        width = $(this).closest(\".snowball-block\").width() / 2;\n        zoom = (width < 800) ? width/800 : 1;\n        scale = \"scale(\" + zoom + \")\";\n\n        $(this).contents().find(\"html\").css({\"-webkit-transform\": scale, \"transform\": scale});\n      });\n    }\n  }\n\n  function initEditors(block) {\n    var preview = block.find(\".snowball-preview\").contents().find(\"body\");\n    var editors = block.find(\".snowball-editor-box\");\n\n    editors.each(function(index, elem) {\n      var modeType = $(elem).attr(\"data-mode\");\n      var isReadOnly = (modeType === \"xml\") ? true : false;\n\n      var editor = CodeMirror.fromTextArea(elem, {\n          mode: {name: modeType, htmlMode: true},\n          readOnly: isReadOnly,\n          lineNumbers: true,\n          lineWrapping: true,\n          indentUnit: 2,\n          tabSize: 2,\n          theme: \"monokai\"\n      });\n\n      renderEditor(preview, modeType, editor);\n\n      editor.on(\"change\", debounce(function() {\n        var block = $(elem).closest(\".snowball-block\");\n        renderPreview(block);\n        unsavedChanges();\n      }, 250));\n\n    });\n  }\n\n  function renderEditor(preview, modeType, editor, cssCode) {\n    var code = \"\";\n    var length = 0;\n    if (modeType == \"css\") {\n      preview.find(\"style:not([data-type='custom'])\").each(function() {\n        code = code + $(this).html();\n      });\n      // code = preview.find(\"style:not([data-type='custom'])\").html();\n\n      if (code) {\n        code = code.replace(/^\\n+|\\n+$/g, '');\n        code = code + \"\\n\\n\";\n        length = code.split(/\\r\\n|\\r|\\n/).length - 1;\n      } else {\n        code = \"\";\n      }\n\n      if (cssCode) {\n        code = code + cssCode;\n      }\n\n      var nonReadOnlyCode = retrieveNonReadOnlyText(editor);\n      if (nonReadOnlyCode) {\n        code = code + nonReadOnlyCode;\n      }\n    } else if (modeType === \"xml\") {\n      var clone = preview.clone();\n      clone.find(\"style\").remove();\n      code = clone.html().replace(\"\\n\\n</section>\", \"\\n</section>\");\n      length = code.split(/\\r\\n|\\r|\\n/).length;\n    }\n\n    var cursorPos = editor.getCursor();\n    var scrollPos = editor.getScrollInfo().top;\n    var startLine = {line: 0, ch: 0};\n    var endLine = {line: length, ch: 0};\n    var options = {readOnly: true, inclusiveLeft: true};\n\n    editor.setValue(code);\n    editor.markText(startLine, endLine, options);\n\n    for (var i = 0; i < length; i++) {\n      editor.addLineClass(i, \"background\", \"readonly\");\n    }\n\n    editor.setCursor(cursorPos);\n    editor.scrollTo(null, scrollPos);\n  }\n\n  function retrieveNonReadOnlyText(editor) {\n    // there should only be one marked text object in editor.getAllMarks()\n    var readOnlyMark = editor.getAllMarks();\n    var code = editor.getValue();\n\n    if (readOnlyMark.length) {\n      var mark = readOnlyMark[0];\n      var lastReadOnlyLine = mark.lines.length;\n\n      if (lastReadOnlyLine < 2) {\n        code = editor.getValue();\n      } else {\n        var fromLine = {line:lastReadOnlyLine-1, ch:0};\n        var toLine = {line:editor.lastLine()+1, ch:0};\n        code = editor.getRange(fromLine, toLine);\n      }\n    }\n\n    return code;\n  }\n\n  function copyBlock(block) {\n    var type = block.data(\"type\");\n    var data = parseBlock(block);\n    var index = block.index();\n\n    if (data) {\n      addBlock(type, data, index);\n    }\n  }\n\n  function refreshEditors(block) {\n    var cm = block.find('.snowball-code .CodeMirror');\n\n    if (cm.length) {\n      var htmlEditor = cm[0].CodeMirror;\n      var cssEditor = cm[1].CodeMirror;\n      var preview = block.find(\".snowball-preview\").contents().find(\"body\");\n      renderEditor(preview, \"xml\", htmlEditor);\n      renderEditor(preview, \"css\", cssEditor);\n    }\n  }\n\n  function confirmDelete(block) {\n    var result = confirm(\"Are you sure you want to delete this block?\");\n    if (result) {\n      var type = block.data(\"type\");\n      \n      block\n        .trigger(\"close\")\n        .remove();\n\n      unsavedChanges();\n\n      actions.push({\n        action: \"delete\",\n        type: type\n      });\n    }\n  }\n\n  function unsavedChanges() {\n    changesMade = true;\n    $(\"#snowball-toolbar .settings .draft, #snowball-toolbar .settings .save\").addClass(\"unsaved\");\n  }\n\n  function debounce(fn, delay) {\n    var timer = null;\n    return function () {\n      var context = this, args = arguments;\n      clearTimeout(timer);\n      timer = setTimeout(function () {\n        fn.apply(context, args);\n      }, delay);\n    };\n  }\n\n  function logger() {\n    var article = [];\n    var html = [];\n    var css = [];\n    var head;\n    var headEditor = $(\".settings-dropdown .CodeMirror\");\n\n    if (headEditor.length > 0) {\n      head = headEditor[0].CodeMirror.getValue();\n    } else {\n      head = $(\"#snowball-custom-code\").val();\n    }\n\n    $(\".snowball-block\").each(function() {\n      var block = $(this);\n      var type = block.data(\"type\");\n      var cssEditor = block.find(\".snowball-css .CodeMirror\");\n      var cssCode;\n\n      article.push(type);\n\n      if (cssEditor.length > 0) {\n        cssCode = retrieveNonReadOnlyText(cssEditor[0].CodeMirror);\n      } else {\n        cssCode = block.find(\".snowball-editor-box\").val();\n      }\n\n      css.push({\n        \"type\": type,\n        \"code\": cssCode\n      });\n\n      if (type === \"html\") {\n        var code = block.find(\".snowball-tinker .CodeMirror\")[0].CodeMirror.getValue();\n        html.push(code);\n      }\n    });\n\n    Parse.initialize(\"FwVMmzHookZZ5j9F9ILc2E5MT5ufabuV7hCXKSeu\",\"Q069j2TUEegDfQJXxxYp7OIZrgu7ySYcqmSU05pQ\");\n    var Blocks = Parse.Object.extend(\"Blocks\");\n    var blocks = new Blocks();\n\n    blocks.set({\n      'blogname': snowball.blogname,\n      'blogurl':  snowball.blogurl,\n      'url':      snowball.url,\n      'postid':   snowball.id,\n      'status':   snowball.status,\n      'author':   snowball.authorLogin,\n      'user':     snowball.userLogin,\n      'article':  article,\n      'size':     article.length,\n      'actions':  actions,\n      'head':     head,\n      'css':      css,\n      'html':     html\n    });\n\n    blocks.save();\n    actions = [];\n  }\n\n})(jQuery);\n"]}
     1{"version":3,"sources":["snowball-admin.js"],"names":["debounce","fn","delay","timer","context","this","args","arguments","clearTimeout","setTimeout","apply","$","setHandlers","on","attr","snowball","status","actions","push","action","type","changesMade","title","val","each","trigger","css","parent","width","fixedsticky","data","addBlock","unsavedChanges","tag","removeClass","addClass","filter","click","dialog","next","editor","find","toggleClass","length","hasClass","elem","get","CodeMirror","fromTextArea","mode","name","htmlMode","lineNumbers","lineWrapping","indentUnit","tabSize","theme","closest","getValue","toggle","block","renderPreview","height","refreshEditors","confirmDelete","copyBlock","zoomPreview","retrieveNonReadOnlyText","index","refresh","prepend","append","initEditors","sortable","axis","cancel","change","containment","cursor","tolerance","e","keyCode","window","resize","logger","populateSavedBlocks","b","savedblocks","toLowerCase","at","blockCode","blocks","names","text","end","key","hasOwnProperty","selector","input","value","is","prop","customCss","html","dataBlock","blockType","load","wpColorPicker","event","appendTo","insertAfter","eq","preview","contents","templates","fields","element","target","replace","regex","RegExp","author","blogname","blogurl","date","url","$html","blockScripts","detach","empty","previewScripts","callback","i","script","iframe","contentDocument","createElement","src","defaultScripts","onload","callback2","head","appendChild","innerHTML","body","style","cm","defaultCss","pluginsUrl","includesUrl","cssEditor","customStyle","data-type","scoped","defaultStylesheets","forEach","href","code","zoom","scale","-webkit-transform","transform","editors","modeType","isReadOnly","readOnly","renderEditor","cssCode","split","nonReadOnlyCode","clone","remove","cursorPos","getCursor","scrollPos","getScrollInfo","top","startLine","line","ch","endLine","options","inclusiveLeft","setValue","markText","addLineClass","setCursor","scrollTo","readOnlyMark","getAllMarks","mark","lastReadOnlyLine","lines","fromLine","toLine","lastLine","getRange","parseBlock","htmlEditor","result","confirm","article","headEditor","Parse","initialize","serverURL","Blocks","Object","extend","save","postid","id","authorLogin","user","userLogin","size","jQuery","document","ready","JSON","parse"],"mappings":"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","file":"snowball-admin.min.js","sourcesContent":["(function($) {\n  var changesMade = false;\n  var actions = [];\n  snowball.status = $(\"#save-post\").length === 0 ? \"publish\" : \"draft\";\n\n  jQuery(document).ready(function() {\n    if ((snowball.savedblocks.length !== 0) && (snowball.savedblocks !== \"null\")) {\n      $(\"#snowball_meta\").removeClass(\"closed\");\n\n      snowball.savedblocks = JSON.parse(snowball.savedblocks);\n      populateSavedBlocks();\n    } else {\n      snowball.savedblocks = [];\n    }\n\n    setHandlers();\n  });\n\n  function setHandlers() {\n    $(\"#publish, #save-post\").on(\"click\", function() {\n      if ($(this).attr(\"id\") == \"publish\") {\n        snowball.status = \"publish\";\n        actions.push({\n          action: \"save\",\n          type: \"publish\"\n        });\n      } else {\n        snowball.status = \"draft\";\n        actions.push({\n          action: \"save\",\n          type: \"draft\"\n        });\n      }\n\n      changesMade = false;\n    });\n\n    $(\"#title\").on(\"input\", debounce(function() {\n      snowball.title = $(this).val();\n      $(\".snowball-block\").each(function() {\n        $(this).trigger(\"render\");\n      });\n    }, 250));\n\n    $(\"#snowball-toolbar\")\n      .css(\"width\", $(\"#snowball-toolbar\").parent().width())\n      .fixedsticky();\n\n    $(\"#snowball-toolbar .block-button\").on(\"click\", function() {\n      var type = $(this).data(\"type\");\n      addBlock(type);\n      unsavedChanges();\n\n      actions.push({\n        action: \"add\",\n        type: type\n      });\n    });\n\n    $(\"#snowball-toolbar .tag\").on(\"click\", function() {\n      var tag = $(this).attr(\"data-tag\");\n      $(\".tag.active\").removeClass(\"active\");\n      $(this).addClass(\"active\");\n\n      if (tag === \"all\") {\n        $(\"#snowball-toolbar .buttons .button\").removeClass(\"hidden\");\n      } else {\n        $(\"#snowball-toolbar .buttons .button\").addClass(\"hidden\").filter(\".\" + tag).removeClass(\"hidden\");\n      }\n    });\n\n    $(\"#snowball-toolbar .settings .button\").on(\"click\", function() {\n      var click = $(this).attr(\"data-click\");\n      $(click).click();\n    });\n\n    $(\"#snowball-toolbar .menu-toggle\").on(\"click\", function() {\n      var dialog = $(this).next(\".dialog\");\n      var editor = dialog.find(\".CodeMirror\");\n\n      dialog.addClass(\"modal\");\n      $(\"body\").toggleClass(\"modal\");\n\n      if ((editor.length === 0) && dialog.hasClass(\"settings-dropdown\")) {\n        var elem = dialog.find(\"textarea\").get(0);\n        editor = CodeMirror.fromTextArea(elem, {\n            mode: {name: \"htmlmixed\", htmlMode: true},\n            lineNumbers: true,\n            lineWrapping: true,\n            indentUnit: 2,\n            tabSize: 2,\n            theme: \"monokai\"\n        });\n      }\n\n    });\n\n    $(\"#snowball-toolbar .menu .close\").on(\"click\", function() {\n      var dialog = $(this).closest(\".dialog\");\n      var css = dialog.find(\".CodeMirror\")[0].CodeMirror.getValue();\n\n      if (css) {\n        actions.push({\n          action: \"code\",\n          type: \"head\",\n          data: css\n        });\n      }\n\n      dialog.removeClass(\"modal\");\n      $(\"body\").removeClass(\"modal\");\n    });\n\n    $(\"#snowball-settings .toggle\").on(\"click\", function() {\n      $(\"#snowball-settings ul\").toggle();\n    });\n\n    $(\"#snowball-main\")\n      .on(\"render\", \".snowball-block\", function() {\n        var block = $(this);\n        renderPreview(block);\n      })\n      .on(\"mousedown\", \".snowball-block\", function() {\n        $(\"#snowball-main\").height($(\"#snowball-main\").height());\n      })\n      .on(\"mouseup\", \".snowball-block\", function() {\n        $(\"#snowball-main\").height(\"auto\");\n      })\n      .on(\"input change paste\", \".snowball-tinker input, .snowball-tinker textarea, .snowball-tinker select\", debounce(function() {\n        var block = $(this).closest(\".snowball-block\");\n        block.trigger(\"render\");\n        refreshEditors(block);\n        unsavedChanges();\n      }, 250))\n      .on(\"click\", \".snowball-delete\", function() {\n        var block = $(this).closest(\".snowball-block\");\n        var type = block.data(\"type\");\n\n        confirmDelete(block);\n      })\n      .on(\"click\", \".snowball-copy\", function() {\n        var block = $(this).closest(\".snowball-block\");\n        var type = block.data(\"type\");\n\n        copyBlock(block);\n        unsavedChanges();\n\n        actions.push({\n          action: \"copy\",\n          type: type\n        });\n      })\n      .on(\"click\", \".snowball-zoom-toggle\", function() {\n        var block = $(this).closest(\".snowball-block\");\n        var type = block.data(\"type\");\n\n        block.find(\".snowball-code, .snowball-copy, .snowball-delete, .snowball-top, .snowball-bottom\").toggle();\n\n        block.toggleClass(\"modal\");\n        $(\"body\").toggleClass(\"modal\");\n        zoomPreview(block);\n\n        if (!block.hasClass(\"modal\")) {\n          var editor = block.find(\".snowball-css .CodeMirror\")[0].CodeMirror;\n          var css = retrieveNonReadOnlyText(editor);\n\n          actions.push({\n            action: \"code\",\n            type: type,\n            data: css\n          });\n        }\n\n        block.find(\".CodeMirror\").each(function(index, editor) {\n          editor.CodeMirror.refresh();\n        });\n      })\n      .on(\"click\", \".snowball-top\", function() {\n        var block = $(this).closest(\".snowball-block\");\n\n        if (block.index() > 0) {\n          block.parent().prepend(block);\n          unsavedChanges();\n        }\n      })\n      .on(\"click\", \".snowball-bottom\", function() {\n        var block = $(this).closest(\".snowball-block\");\n\n        if (block.index() < ($(\".snowball-block\").length) - 1) {\n          block.parent().append(block);\n          unsavedChanges();\n        }\n      })\n      .on(\"mouseover\", \".snowball-zoom-toggle\", function() {\n        var block = $(this).closest(\".snowball-block\");\n\n        if (block.find(\".snowball-code .CodeMirror\").length === 0) {\n          initEditors(block);\n        }\n      })\n      .on(\"change\", \".handsontable\", function() {\n        unsavedChanges();\n      })\n      .sortable({\n        axis: \"y\",\n        cancel: \".snowball-block.modal, .snowball-title-button, button, textarea, input, select, .handsontable .wtHider, .CodeMirror, .button, .toggle-buttons\",\n        change: function() {\n          unsavedChanges();\n        },\n        containment: \"#snowball-main\",\n        cursor: \"move\",\n        tolerance: \"pointer\"\n      });\n\n    $(\"body\")\n      .on(\"click\", \"#modal-bg\", function() {\n        $(\".snowball-block.modal .snowball-zoom-toggle, .settings-dropdown.modal .close\").click();\n        $(\".modal\").removeClass(\"modal\");\n      })\n      .on(\"keydown\", function (e) {\n        if (e.keyCode === 27) { // ESC\n          $(\".snowball-block.modal .snowball-zoom-toggle, .settings-dropdown.modal .close\").click();\n          $(\".modal\").removeClass(\"modal\");\n        }\n      });\n\n    $(window)\n      .resize(debounce(function() {\n        zoomPreview();\n        $(\".fixedsticky\").fixedsticky(\"destroy\").fixedsticky();\n      }, 250))\n      .resize(function() {\n        var fixedsticky = $(\".fixedsticky\");\n        fixedsticky.css(\"width\", fixedsticky.parent().width());\n      })\n      .on(\"load\", function() {\n        $(\".fixedsticky\").fixedsticky(\"destroy\").fixedsticky();\n      })\n      .on(\"beforeunload\", function(e) {\n        logger();\n\n        if (changesMade) {\n          return \"You may have unsaved changes.\";\n        }\n      });\n\n    $(\"#collapse-menu\").click(function() {\n      var fixedsticky = $(\".fixedsticky\");\n      fixedsticky.css(\"width\", fixedsticky.parent().width());\n      zoomPreview();\n    });\n\n    $(\".hndle, #adv-settings input, .columns-prefs input\").on(\"click\", function() {\n      var fixedsticky = $(\".fixedsticky\");\n      fixedsticky.css(\"width\", fixedsticky.parent().width());\n      fixedsticky.fixedsticky(\"destroy\").fixedsticky();\n    });\n\n    $(\"#show-settings-link\").on(\"click\", function() {\n      setTimeout(function() {\n        $(\".fixedsticky\").fixedsticky(\"destroy\").fixedsticky();\n      }, 200);\n    });\n  }\n\n  function populateSavedBlocks() {\n    for (var b in snowball.savedblocks) {\n      var block = snowball.savedblocks[b];\n      var type = block[\"blockType\"].toLowerCase();\n      // need to delete so snowball.addBlock works properly\n      delete block[\"blockType\"];\n      delete block[\"orderNumber\"];\n\n      addBlock(type, block);\n    }\n  }\n\n  function addBlock(type, data, at) {\n    var blockCode = snowball.blocks[type];\n    var name = snowball.names[type];\n    var block = $(\"<div class='snowball-block'>\" +\n                    \"<div class='snowball-gui'>\" +\n                      \"<div class='snowball-tinker'>\" +\n                        \"<div>\" +\n                          \"<div class='snowball-title'></div>\" +\n                          \"<div class='snowball-title-button-group'>\" +\n                            \"<div class='snowball-title-button snowball-copy' title='Copy block'><i class='fa fa-files-o'></i></div>\" +\n                            \"<div class='snowball-title-button snowball-delete' title='Delete block'>&times;</div>\" +\n                          \"</div>\" +\n                          \"<div class='snowball-title-button-group'>\" +\n                            \"<div class='snowball-title-button snowball-top' title='Move block to top'><i class='fa fa-angle-double-up'></i></div>\" +\n                            \"<div class='snowball-title-button snowball-bottom' title='Move block to bottom'><i class='fa fa-angle-double-down'></i></div>\" +\n                          \"</div>\" +\n                          \"<div class='snowball-title-button-group'>\" +\n                            \"<div class='snowball-title-button snowball-zoom-toggle' title='Edit code'><i class='fa fa-code'></i></div>\" +\n                          \"</div>\" +\n                        \"</div>\" +\n                      \"</div>\" +\n                      \"<iframe class='snowball-preview'></iframe>\" +\n                    \"</div>\" +\n                    \"<div class='snowball-code'>\" +\n                      \"<div class='snowball-html snowball-editor'>\" +\n                        \"<div class='snowball-code-title'>HTML</div>\" +\n                        \"<textarea class='snowball-editor-box' data-mode='xml'></textarea>\" +\n                      \"</div>\" +\n                      \"<div class='snowball-css snowball-editor'>\" +\n                        \"<div class='snowball-code-title'>CSS</div>\" +\n                        \"<textarea class='snowball-editor-box' data-mode='css'></textarea>\" +\n                      \"</div>\" +\n                    \"</div>\" +\n                  \"</div>\");\n\n    block\n      .addClass(\"snowball-block-\" + type)\n      .attr(\"data-type\", type)\n      .attr(\"data-name\", name)\n      .find(\".snowball-title\").text(name).end()\n      .find(\".snowball-tinker\").append(blockCode).end();\n\n    if (data) {\n      for (var key in data) {\n        if (data.hasOwnProperty(key)) {\n          var selector = \"[data-target='\" + key + \"']\";\n          var input = block.find(selector);\n          var value = data[key];\n          if (input) {\n            if (input.is(\":radio\")) {\n              input.filter(\"[value='\" +  value + \"']\").prop(\"checked\", true);\n            } else if (input.is(\":checkbox\")) {\n              input.prop(\"checked\", ((value == \"true\") || value === true));\n            } else {\n              input.val(value);\n            }\n          }\n        }\n\n        if (data.customCss) {\n          block.find(\"textarea[data-mode='css']\").html(data.customCss);\n        }\n      }\n\n\n    } else {\n      var dataBlock = {\n        blockType: type\n      };\n\n      snowball.savedblocks.push(dataBlock);\n    }\n\n    block\n      .find(\".snowball-preview\").load(function() {\n        renderPreview(block);\n      }).end()\n      .find(\".wp-color-picker\").wpColorPicker({\n        change: debounce(function (event) {\n          $(this)\n            .trigger(\"change\")\n            .attr(\"value\", $(this).val());\n        }, 250)\n      });\n\n    if (typeof at == \"undefined\") {\n      block.appendTo(\"#snowball-main\");\n    } else {\n      block.insertAfter($(\".snowball-block\").eq(at));\n    }\n    \n    zoomPreview(block);\n    block.trigger(\"open\");\n  }\n\n  function renderPreview(block) {\n    var type = block.data(\"type\");\n    var preview = block.find(\".snowball-preview\").contents();\n    var html = snowball.templates[type];\n    var selector = \"input[type='text'][data-target], input[type='email'][data-target], input[type='range'][data-target], input[type='hidden'][data-target], input[type='radio'][data-target]:checked, input[type='checkbox'][data-target]:checked, textarea[data-target], select[data-target]\";\n    var fields = block.find(selector);\n\n    fields.each(function(index, element) {\n      var target = $(this).data(\"target\");\n      var value = $(this).val();\n\n      if ((type === \"text\") && $(this).is(\"textarea\")) {\n        // For text blocks, replace \\n\\n with <p>\n        value = value.replace(/\\n([ \\t]*\\n)+/g, '</p><p>')\n                 .replace(/\\n/g, '<br />')\n                 .replace(/<\\/p><p>/g, '</p>\\n\\t<p>');\n      }\n      var regex = new RegExp(\"{{\" + target + \"}}\", \"g\");\n      html = html.replace(regex, value);\n    });\n\n    html = html.replace(/{{.+}}/g, \"\");\n\n    html = html.replace(/\\[author\\]/g, snowball.author)\n               .replace(/\\[blogname\\]/g, snowball.blogname)\n               .replace(/\\[blogurl\\]/g, snowball.blogurl)\n               .replace(/\\[date\\]/g, snowball.date)\n               .replace(/\\[url\\]/g, snowball.url);\n\n    if (snowball.title) {\n      html = html.replace(/\\[title\\]/g, snowball.title);\n    }\n\n    var $html = $(html);\n    var blockScripts = $html.find(\"script\").detach();\n\n    preview.find(\"body\").empty().append($html);\n    previewScripts(blockScripts, block);\n\n    if (block.width()) {\n      zoomPreview(block);\n    }\n\n    block.trigger(\"rendered\");\n  }\n\n  // create script elements from iframe document so js is executed in iframe's context\n  // append default scripts to head so they aren't repeated in article for each block\n  // append block scripts to body so they are included in article\n  // only block scripts with src are re-appended here\n  // block scripts with innerhtml must be evaled in snowball-preview.js\n\n  function previewScripts(blockScripts, block) {\n    var iframe = block.find(\".snowball-preview\");\n    var preview = iframe.contents();\n    var head = preview.find(\"head\");\n    var body = preview.find(\"body\");\n    var cm = block.find('.snowball-code .CodeMirror');\n    var defaultCss = \"\";\n\n    var pluginsUrl = snowball.pluginsUrl;\n    var includesUrl = snowball.includesUrl;\n\n    var style;\n\n    if (cm.length) {\n      var cssEditor = cm[1].CodeMirror;\n      style = retrieveNonReadOnlyText(cssEditor);\n    } else {\n      style = block.find(\"textarea[data-mode='css']\").html();\n    }\n\n    if (style) {\n      var customStyle = $(\"<style></style>\").attr({\"data-type\": \"custom\", \"scoped\": \"scoped\"});\n      customStyle.html(style);\n      body.find(\".snowball-block\").append(customStyle);\n    }\n\n    var defaultStylesheets = [\n                                pluginsUrl + \"/lib/d3-geomap/css/d3.geomap.css\",\n                                pluginsUrl + \"/lib/font-awesome/css/font-awesome.min.css\",\n                                pluginsUrl + \"/styles/min/snowball.min.css\",\n                                pluginsUrl + \"/styles/min/snowball-theme.min.css\",\n                                pluginsUrl + \"/styles/min/snowball-preview.min.css\"\n                              ];\n\n    var defaultScripts = [\n                            includesUrl + \"js/jquery/jquery.js\",\n                            \"https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js\",\n                            \"https://cdnjs.cloudflare.com/ajax/libs/topojson/1.6.19/topojson.min.js\",\n                            pluginsUrl + \"/lib/d3-geomap/vendor/d3.geomap.dependencies.min.js\",\n                            pluginsUrl + \"/lib/d3-geomap/js/d3.geomap.min.js\",\n                            pluginsUrl + \"/scripts/min/snowball-preview.min.js\",\n                            pluginsUrl + \"/scripts/min/templates.min.js\"\n                          ];\n\n    defaultStylesheets.forEach(function(href) {\n      var code = \"<link rel='stylesheet' href='\" + href + \"'>\\n\";\n      defaultCss = defaultCss + code;\n    });\n\n    if(head.is(\":empty\")) {\n      head.html(\"<meta charset='utf-8'>\");\n      head.append(defaultCss);\n      head.append($(\"#snowball-custom-code\").val());\n      callback(0);\n    } else {\n      callback2(0);\n    }\n\n    function callback(i) {\n      var script = iframe.get(0).contentDocument.createElement(\"script\");\n      script.src = defaultScripts[i];\n\n      if (i < defaultScripts.length - 1) {\n        script.onload = function() {\n          callback(i+1);\n        };\n      } else {\n        script.onload = function() {\n          callback2(0);\n        };\n      }\n\n      head[0].appendChild(script);\n    }\n\n    function callback2(i) {\n      if (i < blockScripts.length) {\n        var src = blockScripts.eq(i).attr(\"src\");\n        var script = iframe.get(0).contentDocument.createElement(\"script\");\n\n        if (src) {\n          script.src = src;\n          script.onload = function() {\n            callback2(i+1);\n          };\n        } else {\n          script.innerHTML = blockScripts.eq(i).html();\n        }\n\n        body.find(\".snowball-block\").get(0).appendChild(script);\n      }\n    }\n  }\n\n  function zoomPreview(block) {\n    var width;\n    var zoom;\n    var scale;\n\n    if (block) {\n      width = block.width() / 2;\n      zoom = (width < 800) ? width/800 : 1;\n      scale = \"scale(\" + zoom + \")\";\n\n      block.find(\".snowball-preview\").contents().find(\"html\").css({\"-webkit-transform\": scale, \"transform\": scale});\n    } else {\n      $(\".snowball-preview\").each(function() {\n        width = $(this).closest(\".snowball-block\").width() / 2;\n        zoom = (width < 800) ? width/800 : 1;\n        scale = \"scale(\" + zoom + \")\";\n\n        $(this).contents().find(\"html\").css({\"-webkit-transform\": scale, \"transform\": scale});\n      });\n    }\n  }\n\n  function initEditors(block) {\n    var preview = block.find(\".snowball-preview\").contents().find(\"body\");\n    var editors = block.find(\".snowball-editor-box\");\n\n    editors.each(function(index, elem) {\n      var modeType = $(elem).attr(\"data-mode\");\n      var isReadOnly = (modeType === \"xml\") ? true : false;\n\n      var editor = CodeMirror.fromTextArea(elem, {\n          mode: {name: modeType, htmlMode: true},\n          readOnly: isReadOnly,\n          lineNumbers: true,\n          lineWrapping: true,\n          indentUnit: 2,\n          tabSize: 2,\n          theme: \"monokai\"\n      });\n\n      renderEditor(preview, modeType, editor);\n\n      editor.on(\"change\", debounce(function() {\n        var block = $(elem).closest(\".snowball-block\");\n        renderPreview(block);\n        unsavedChanges();\n      }, 250));\n\n    });\n  }\n\n  function renderEditor(preview, modeType, editor, cssCode) {\n    var code = \"\";\n    var length = 0;\n    if (modeType == \"css\") {\n      preview.find(\"style:not([data-type='custom'])\").each(function() {\n        code = code + $(this).html();\n      });\n      // code = preview.find(\"style:not([data-type='custom'])\").html();\n\n      if (code) {\n        code = code.replace(/^\\n+|\\n+$/g, '');\n        code = code + \"\\n\\n\";\n        length = code.split(/\\r\\n|\\r|\\n/).length - 1;\n      } else {\n        code = \"\";\n      }\n\n      if (cssCode) {\n        code = code + cssCode;\n      }\n\n      var nonReadOnlyCode = retrieveNonReadOnlyText(editor);\n      if (nonReadOnlyCode) {\n        code = code + nonReadOnlyCode;\n      }\n    } else if (modeType === \"xml\") {\n      var clone = preview.clone();\n      clone.find(\"style\").remove();\n      code = clone.html().replace(\"\\n\\n</section>\", \"\\n</section>\");\n      length = code.split(/\\r\\n|\\r|\\n/).length;\n    }\n\n    var cursorPos = editor.getCursor();\n    var scrollPos = editor.getScrollInfo().top;\n    var startLine = {line: 0, ch: 0};\n    var endLine = {line: length, ch: 0};\n    var options = {readOnly: true, inclusiveLeft: true};\n\n    editor.setValue(code);\n    editor.markText(startLine, endLine, options);\n\n    for (var i = 0; i < length; i++) {\n      editor.addLineClass(i, \"background\", \"readonly\");\n    }\n\n    editor.setCursor(cursorPos);\n    editor.scrollTo(null, scrollPos);\n  }\n\n  function retrieveNonReadOnlyText(editor) {\n    // there should only be one marked text object in editor.getAllMarks()\n    var readOnlyMark = editor.getAllMarks();\n    var code = editor.getValue();\n\n    if (readOnlyMark.length) {\n      var mark = readOnlyMark[0];\n      var lastReadOnlyLine = mark.lines.length;\n\n      if (lastReadOnlyLine < 2) {\n        code = editor.getValue();\n      } else {\n        var fromLine = {line:lastReadOnlyLine-1, ch:0};\n        var toLine = {line:editor.lastLine()+1, ch:0};\n        code = editor.getRange(fromLine, toLine);\n      }\n    }\n\n    return code;\n  }\n\n  function copyBlock(block) {\n    var type = block.data(\"type\");\n    var data = parseBlock(block);\n    var index = block.index();\n\n    if (data) {\n      addBlock(type, data, index);\n    }\n  }\n\n  function refreshEditors(block) {\n    var cm = block.find('.snowball-code .CodeMirror');\n\n    if (cm.length) {\n      var htmlEditor = cm[0].CodeMirror;\n      var cssEditor = cm[1].CodeMirror;\n      var preview = block.find(\".snowball-preview\").contents().find(\"body\");\n      renderEditor(preview, \"xml\", htmlEditor);\n      renderEditor(preview, \"css\", cssEditor);\n    }\n  }\n\n  function confirmDelete(block) {\n    var result = confirm(\"Are you sure you want to delete this block?\");\n    if (result) {\n      var type = block.data(\"type\");\n      \n      block\n        .trigger(\"close\")\n        .remove();\n\n      unsavedChanges();\n\n      actions.push({\n        action: \"delete\",\n        type: type\n      });\n    }\n  }\n\n  function unsavedChanges() {\n    changesMade = true;\n    $(\"#snowball-toolbar .settings .draft, #snowball-toolbar .settings .save\").addClass(\"unsaved\");\n  }\n\n  function logger() {\n    var article = [];\n    var html = [];\n    var css = [];\n    var head;\n    var headEditor = $(\".settings-dropdown .CodeMirror\");\n\n    if (headEditor.length > 0) {\n      head = headEditor[0].CodeMirror.getValue();\n    } else {\n      head = $(\"#snowball-custom-code\").val();\n    }\n\n    $(\".snowball-block\").each(function() {\n      var block = $(this);\n      var type = block.data(\"type\");\n      var cssEditor = block.find(\".snowball-css .CodeMirror\");\n      var cssCode;\n\n      article.push(type);\n\n      if (cssEditor.length > 0) {\n        cssCode = retrieveNonReadOnlyText(cssEditor[0].CodeMirror);\n      } else {\n        cssCode = block.find(\".snowball-editor-box\").val();\n      }\n\n      css.push({\n        \"type\": type,\n        \"code\": cssCode\n      });\n\n      if (type === \"html\") {\n        var code = block.find(\".snowball-tinker .CodeMirror\")[0].CodeMirror.getValue();\n        html.push(code);\n      }\n    });\n\n    Parse.initialize(\"FwVMmzHookZZ5j9F9ILc2E5MT5ufabuV7hCXKSeu\");\n    Parse.serverURL = 'http://129.25.12.218:1337/parse';\n    var Blocks = Parse.Object.extend(\"Snowball\");\n    var blocks = new Blocks();\n\n    blocks.save({\n      'blogname': snowball.blogname,\n      'blogurl':  snowball.blogurl,\n      'url':      snowball.url,\n      'postid':   snowball.id,\n      'status':   snowball.status,\n      'author':   snowball.authorLogin,\n      'user':     snowball.userLogin,\n      'article':  article,\n      'size':     article.length,\n      'actions':  actions,\n      'head':     head,\n      'css':      css,\n      'html':     html\n    });\n\n    actions = [];\n  }\n\n})(jQuery);\n\n\n\nfunction debounce(fn, delay) {\n  var timer = null;\n  return function () {\n    var context = this, args = arguments;\n    clearTimeout(timer);\n    timer = setTimeout(function () {\n      fn.apply(context, args);\n    }, delay);\n  };\n}\n"]}
  • snowball/trunk/scripts/snowball-admin.js

    r1631583 r1646815  
    683683  }
    684684
    685   function debounce(fn, delay) {
    686     var timer = null;
    687     return function () {
    688       var context = this, args = arguments;
    689       clearTimeout(timer);
    690       timer = setTimeout(function () {
    691         fn.apply(context, args);
    692       }, delay);
    693     };
    694   }
    695 
    696685  function logger() {
    697686    var article = [];
     
    757746
    758747})(jQuery);
     748
     749
     750
     751function debounce(fn, delay) {
     752  var timer = null;
     753  return function () {
     754    var context = this, args = arguments;
     755    clearTimeout(timer);
     756    timer = setTimeout(function () {
     757      fn.apply(context, args);
     758    }, delay);
     759  };
     760}
  • snowball/trunk/snowball.php

    r1631583 r1646815  
    55 * Plugin URI: http://snowball.openhtml.org
    66 * Description: A block-based editor for authoring modern, immersive longform web articles
    7  * Version: 0.4.12
     7 * Version: 0.4.13
    88 * Author: openHTML
    99 * Author URI: http://openhtml.org
Note: See TracChangeset for help on using the changeset viewer.