diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..16014361a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true + +[*.{haml,html,js,scss,rake,rb,yml}] +charset = utf-8 +indent_size = 2 +indent_style = space +trim_trailing_whitespace = true diff --git a/Gemfile b/Gemfile index aea82425d..e6d77a9ab 100644 --- a/Gemfile +++ b/Gemfile @@ -16,7 +16,7 @@ gem 'therubyracer', platforms: :ruby # Use jquery as the JavaScript library gem 'jquery-rails' # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks -gem 'turbolinks', '~> 2.5' +gem 'turbolinks', '~> 5.0' # bundle exec rake doc:rails generates the API under doc/api. gem 'sdoc', '~> 0.4.0', group: :doc diff --git a/Gemfile.lock b/Gemfile.lock index 3eb20b63b..40665e46f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -95,7 +95,7 @@ GEM bootstrap-wysihtml5-rails (0.3.3.8) railties (>= 3.0) browser (2.3.0) - builder (3.2.2) + builder (3.2.3) byebug (9.0.6) capybara (2.11.0) addressable @@ -120,8 +120,8 @@ GEM coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.11.1) - concurrent-ruby (1.0.2) + coffee-script-source (1.12.2) + concurrent-ruby (1.0.5) connection_pool (2.2.1) crack (0.4.3) safe_yaml (~> 1.0.0) @@ -331,7 +331,7 @@ GEM domain_name (~> 0.5) http_parser.rb (0.6.0) httpclient (2.8.3) - i18n (0.7.0) + i18n (0.8.1) inflecto (0.0.2) ipaddress (0.8.3) jquery-rails (4.2.1) @@ -452,9 +452,9 @@ GEM actionpack (~> 5.x) actionview (~> 5.x) activesupport (~> 5.x) - rails-dom-testing (2.0.1) + rails-dom-testing (2.0.2) activesupport (>= 4.2.0, < 6.0) - nokogiri (~> 1.6.0) + nokogiri (~> 1.6) rails-html-sanitizer (1.0.3) loofah (~> 2.0) railties (5.0.0.1) @@ -585,13 +585,14 @@ GEM libv8 (~> 3.16.14.0) ref thor (0.19.4) - thread_safe (0.3.5) + thread_safe (0.3.6) tilt (2.0.5) timecop (0.8.1) trollop (2.1.2) - turbolinks (2.5.3) - coffee-rails - tzinfo (1.2.2) + turbolinks (5.0.1) + turbolinks-source (~> 5) + turbolinks-source (5.0.0) + tzinfo (1.2.3) thread_safe (~> 0.1) uglifier (3.0.4) execjs (>= 0.3.0, < 3) @@ -707,7 +708,7 @@ DEPENDENCIES sqlite3 therubyracer timecop - turbolinks (~> 2.5) + turbolinks (~> 5.0) uglifier (>= 1.3.0) unicode_utils unicorn diff --git a/app/assets/images/landing_background_old.png b/app/assets/images/landing_background_old.png deleted file mode 100644 index 77e4b9b0e..000000000 Binary files a/app/assets/images/landing_background_old.png and /dev/null differ diff --git a/app/assets/images/logo_FC_02.png b/app/assets/images/logo_FC_02.png deleted file mode 100644 index d3d246d48..000000000 Binary files a/app/assets/images/logo_FC_02.png and /dev/null differ diff --git a/app/assets/images/logos-02V.png b/app/assets/images/logos-02V.png deleted file mode 100644 index 3712d2d8b..000000000 Binary files a/app/assets/images/logos-02V.png and /dev/null differ diff --git a/app/assets/images/logos/logo-opensimplif.jpg b/app/assets/images/logos/logo-opensimplif.jpg deleted file mode 100644 index a4e3bc9f9..000000000 Binary files a/app/assets/images/logos/logo-opensimplif.jpg and /dev/null differ diff --git a/app/assets/images/logos/logo-tps_old.png b/app/assets/images/logos/logo-tps_old.png deleted file mode 100644 index 7d785b1f2..000000000 Binary files a/app/assets/images/logos/logo-tps_old.png and /dev/null differ diff --git a/app/assets/javascripts/action_btn_rules.js b/app/assets/javascripts/action_btn_rules.js index 7202d53b6..7ade4a9f9 100644 --- a/app/assets/javascripts/action_btn_rules.js +++ b/app/assets/javascripts/action_btn_rules.js @@ -1,5 +1,4 @@ -$(document).on('page:load', init_action_btn_rules); -$(document).ready(init_action_btn_rules); +$(document).on('turbolinks:load', init_action_btn_rules); function init_action_btn_rules() { $('.btn-send').click(function () { diff --git a/app/assets/javascripts/address_typeahead.js b/app/assets/javascripts/address_typeahead.js index d0f8a434f..26925f476 100644 --- a/app/assets/javascripts/address_typeahead.js +++ b/app/assets/javascripts/address_typeahead.js @@ -1,22 +1,22 @@ function address_type_init() { - display = 'label'; + display = 'label'; - var bloodhound = new Bloodhound({ - datumTokenizer: Bloodhound.tokenizers.obj.whitespace(display), - queryTokenizer: Bloodhound.tokenizers.whitespace, + var bloodhound = new Bloodhound({ + datumTokenizer: Bloodhound.tokenizers.obj.whitespace(display), + queryTokenizer: Bloodhound.tokenizers.whitespace, - remote: { - url: '/ban/search?request=%QUERY', - wildcard: '%QUERY' - } - }); - bloodhound.initialize(); + remote: { + url: '/ban/search?request=%QUERY', + wildcard: '%QUERY' + } + }); + bloodhound.initialize(); - $("input[type='address']").typeahead({ - minLength: 1 - }, { - display: display, - source: bloodhound, - limit: 5 - }); -} \ No newline at end of file + $("input[type='address']").typeahead({ + minLength: 1 + }, { + display: display, + source: bloodhound, + limit: 5 + }); +} diff --git a/app/assets/javascripts/admin.js b/app/assets/javascripts/admin.js index 967633a7b..435a42006 100644 --- a/app/assets/javascripts/admin.js +++ b/app/assets/javascripts/admin.js @@ -1,47 +1,46 @@ -$(document).on('page:load', init_admin); -$(document).ready(init_admin); +$(document).on('turbolinks:load', init_admin); function init_admin(){ - destroy_action(); - on_change_type_de_champ_select(); + destroy_action(); + on_change_type_de_champ_select(); } function destroy_action(){ - $(".delete").on('click', function(){ - $(this).hide(); - $(this).closest('td').find(".confirm").show(); - }); + $(".delete").on('click', function(){ + $(this).hide(); + $(this).closest('td').find(".confirm").show(); + }); - $(".cancel").on('click', function(){ - $(this).closest('td').find(".delete").show(); - $(this).closest('td').find(".confirm").hide(); - }); + $(".cancel").on('click', function(){ + $(this).closest('td').find(".delete").show(); + $(this).closest('td').find(".confirm").hide(); + }); - $("#liste_gestionnaire #libelle").on('click', function(){ - setTimeout(destroy_action, 500); - }); + $("#liste_gestionnaire #libelle").on('click', function(){ + setTimeout(destroy_action, 500); + }); } function on_change_type_de_champ_select (){ - $("select.form-control.type_champ").on('change', function(e){ + $("select.form-control.type_champ").on('change', function(e){ - parent = $(this).parent().parent(); + parent = $(this).parent().parent(); - parent.removeClass('header_section'); - parent.children(".drop_down_list").removeClass('show_inline'); - $('.mandatory', parent).show(); + parent.removeClass('header_section'); + parent.children(".drop_down_list").removeClass('show_inline'); + $('.mandatory', parent).show(); - switch(this.value){ - case 'header_section': - parent.addClass('header_section'); - break; - case 'drop_down_list': - case 'multiple_drop_down_list': - parent.children(".drop_down_list").addClass('show_inline'); - break; - case 'explication': - $('.mandatory', parent).hide(); - break; - } - }); + switch(this.value){ + case 'header_section': + parent.addClass('header_section'); + break; + case 'drop_down_list': + case 'multiple_drop_down_list': + parent.children(".drop_down_list").addClass('show_inline'); + break; + case 'explication': + $('.mandatory', parent).hide(); + break; + } + }); } diff --git a/app/assets/javascripts/admin_procedures_modal.js b/app/assets/javascripts/admin_procedures_modal.js index 38112328c..b5059bf29 100644 --- a/app/assets/javascripts/admin_procedures_modal.js +++ b/app/assets/javascripts/admin_procedures_modal.js @@ -1,98 +1,97 @@ -$(document).on('page:load', init_path_modal); -$(document).ready(init_path_modal); +$(document).on('turbolinks:load', init_path_modal); function init_path_modal() { - path_modal_action(); - path_validation_action(); - path_type_init(); - path_validation($("input[id='procedure_path']")); + path_modal_action(); + path_validation_action(); + path_type_init(); + path_validation($("input[id='procedure_path']")); } function path_modal_action() { - $('#publishModal').on('show.bs.modal', function (event) { - $("#publishModal .modal-body .table .tr_content").hide(); + $('#publishModal').on('show.bs.modal', function (event) { + $("#publishModal .modal-body .table .tr_content").hide(); - var button = $(event.relatedTarget) // Button that triggered the modal - var modal_title = button.data('modal_title'); // Extract info from data-* attributes - var modal_index = button.data('modal_index'); // Extract info from data-* attributes + var button = $(event.relatedTarget) // Button that triggered the modal + var modal_title = button.data('modal_title'); // Extract info from data-* attributes + var modal_index = button.data('modal_index'); // Extract info from data-* attributes - var modal = $(this) - modal.find('#publishModal_title').html(modal_title); - $("#publishModal .modal-body .table #"+modal_index).show(); - }) + var modal = $(this) + modal.find('#publishModal_title').html(modal_title); + $("#publishModal .modal-body .table #"+modal_index).show(); + }) } function path_validation_action() { - $("input[id='procedure_path']").keyup(function (key) { - if (key.keyCode != 13) - path_validation(this); - }); + $("input[id='procedure_path']").keyup(function (key) { + if (key.keyCode != 13) + path_validation(this); + }); } function togglePathMessage(valid, mine) { - $('#path_messages .message').hide(); + $('#path_messages .message').hide(); - if (valid === true && mine === true) { - $('#path_is_mine').show(); - } else if (valid === true && mine === false) { - $('#path_is_not_mine').show(); - } else if (valid === false && mine === null) { - $('#path_is_invalid').show(); - } + if (valid === true && mine === true) { + $('#path_is_mine').show(); + } else if (valid === true && mine === false) { + $('#path_is_not_mine').show(); + } else if (valid === false && mine === null) { + $('#path_is_invalid').show(); + } - if ((valid && mine === null) || mine === true) - $('#publishModal #publish').removeAttr('disabled') - else - $('#publishModal #publish').attr('disabled', 'disabled') + if ((valid && mine === null) || mine === true) + $('#publishModal #publish').removeAttr('disabled') + else + $('#publishModal #publish').attr('disabled', 'disabled') } function path_validation(el) { - var valid = validatePath($(el).val()); - toggleErrorClass(el, valid); - togglePathMessage(valid, null); + var valid = validatePath($(el).val()); + toggleErrorClass(el, valid); + togglePathMessage(valid, null); } function validatePath(path) { - var re = /^[a-z0-9_]{3,30}$/; - return re.test(path); + var re = /^[a-z0-9_]{3,30}$/; + return re.test(path); } function path_type_init() { - display = 'label'; + display = 'label'; - var bloodhound = new Bloodhound({ - datumTokenizer: Bloodhound.tokenizers.obj.whitespace(display), - queryTokenizer: Bloodhound.tokenizers.whitespace, + var bloodhound = new Bloodhound({ + datumTokenizer: Bloodhound.tokenizers.obj.whitespace(display), + queryTokenizer: Bloodhound.tokenizers.whitespace, - remote: { - url: '/admin/procedures/path_list?request=%QUERY', - wildcard: '%QUERY' - } - }); - bloodhound.initialize(); + remote: { + url: '/admin/procedures/path_list?request=%QUERY', + wildcard: '%QUERY' + } + }); + bloodhound.initialize(); - $("#procedure_path").typeahead({ - minLength: 1 - }, { - display: display, - source: bloodhound, - templates: { - empty: 'Ce lien est disponible !', - suggestion: Handlebars.compile("
{{label}}
") - }, - limit: 5 - }); + $("#procedure_path").typeahead({ + minLength: 1 + }, { + display: display, + source: bloodhound, + templates: { + empty: 'Ce lien est disponible !', + suggestion: Handlebars.compile("
{{label}}
") + }, + limit: 5 + }); - $('#procedure_path').bind('typeahead:select', function(ev, suggestion) { - togglePathMessage(true, suggestion['mine']); - }); + $('#procedure_path').bind('typeahead:select', function(ev, suggestion) { + togglePathMessage(true, suggestion['mine']); + }); } function transfer_errors_message(show) { - if(show){ - $("#not_found_admin").slideDown(100) - } - else { - $("#not_found_admin").slideUp(100) - } -} \ No newline at end of file + if(show){ + $("#not_found_admin").slideDown(100) + } + else { + $("#not_found_admin").slideUp(100) + } +} diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index a7827dfc8..5f6f5aebd 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -33,26 +33,24 @@ //= require typeahead.bundle //= require select2 -$(document).on('page:load', application_init); -$(document).ready(application_init); +$(document).on('turbolinks:load', application_init); function application_init(){ - tooltip_init(); - scroll_to(); + tooltip_init(); + scroll_to(); } function tooltip_init() { - $('.action_button[data-toggle="tooltip"]').tooltip({delay: { "show": 100, "hide": 100 }}); - $('[data-toggle="tooltip"]').tooltip({delay: { "show": 800, "hide": 100 }}); + $('.action_button[data-toggle="tooltip"]').tooltip({delay: { "show": 100, "hide": 100 }}); + $('[data-toggle="tooltip"]').tooltip({delay: { "show": 800, "hide": 100 }}); } function scroll_to() { - $('.js-scrollTo').on('click', function () { // Au clic sur un élément - var page = $(this).attr('cible'); // Page cible - var speed = 600; // Durée de l'animation (en ms) - $('html, body').animate({scrollTop: $(page).offset().top - 200}, speed); // Go - return false; - }); + $('.js-scrollTo').on('click', function () { // Au clic sur un élément + var page = $(this).attr('cible'); // Page cible + var speed = 600; // Durée de l'animation (en ms) + $('html, body').animate({scrollTop: $(page).offset().top - 200}, speed); // Go + return false; + }); } - diff --git a/app/assets/javascripts/archive.js b/app/assets/javascripts/archive.js index 7497960e5..6f42481a7 100644 --- a/app/assets/javascripts/archive.js +++ b/app/assets/javascripts/archive.js @@ -1,14 +1,13 @@ -$(document).on('page:load', buttons_archived); -$(document).ready(buttons_archived); +$(document).on('turbolinks:load', buttons_archived); function buttons_archived(){ - $("button#archive").on('click', function(){ - $("button#archive").hide(); - $("#confirm").show(); - }); + $("button#archive").on('click', function(){ + $("button#archive").hide(); + $("#confirm").show(); + }); - $("#confirm #cancel").on('click', function(){ - $("button#archive").show(); - $("#confirm").hide(); - }); -} \ No newline at end of file + $("#confirm #cancel").on('click', function(){ + $("button#archive").show(); + $("#confirm").hide(); + }); +} diff --git a/app/assets/javascripts/bootstrap_wysihtml5.js b/app/assets/javascripts/bootstrap_wysihtml5.js index b0606ce8a..a100651b3 100644 --- a/app/assets/javascripts/bootstrap_wysihtml5.js +++ b/app/assets/javascripts/bootstrap_wysihtml5.js @@ -1,8 +1,7 @@ -$(document).ready(wysihtml5_active); -$(document).on('page:load', wysihtml5_active); +$(document).on('turbolinks:load', wysihtml5_active); function wysihtml5_active (){ - $('.wysihtml5').each(function(i, elem) { - $(elem).wysihtml5({ toolbar:{ "fa": true, "link": false, "color": false }, "locale": "fr-FR" }); - }); + $('.wysihtml5').each(function(i, elem) { + $(elem).wysihtml5({ toolbar:{ "fa": true, "link": false, "color": false }, "locale": "fr-FR" }); + }); } diff --git a/app/assets/javascripts/cable.js b/app/assets/javascripts/cable.js index daa54bbb2..32eb6c12f 100644 --- a/app/assets/javascripts/cable.js +++ b/app/assets/javascripts/cable.js @@ -6,8 +6,8 @@ //= require_tree ./channels //(function() { -// this.App || (this.App = {}); +// this.App || (this.App = {}); // -// App.cable = ActionCable.createConsumer(); +// App.cable = ActionCable.createConsumer(); // //}).call(this); diff --git a/app/assets/javascripts/carte/cadastre.js b/app/assets/javascripts/carte/cadastre.js index 9ee82261d..ea9de02a8 100644 --- a/app/assets/javascripts/carte/cadastre.js +++ b/app/assets/javascripts/carte/cadastre.js @@ -1,60 +1,60 @@ function cadastre_active() { - return $("#map.cadastre").length > 0 + return $("#map.cadastre").length > 0 } function get_cadastre(coordinates) { - if (!cadastre_active()) - return; + if (!cadastre_active()) + return; - var cadastre; + var cadastre; - $.ajax({ - method: 'post', - url: '/users/dossiers/' + dossier_id + '/carte/cadastre', - data: {coordinates: JSON.stringify(coordinates)}, - dataType: 'json', - async: false - }).done(function (data) { - cadastre = data - }); + $.ajax({ + method: 'post', + url: '/users/dossiers/' + dossier_id + '/carte/cadastre', + data: {coordinates: JSON.stringify(coordinates)}, + dataType: 'json', + async: false + }).done(function (data) { + cadastre = data + }); - return cadastre['cadastres']; + return cadastre['cadastres']; } function display_cadastre(cadastre_array) { - if (!cadastre_active()) - return; + if (!cadastre_active()) + return; - $("#cadastre.list ul").html(''); - new_cadastreLayer(); + $("#cadastre.list ul").html(''); + new_cadastreLayer(); - if (cadastre_array.length == 1 && cadastre_array[0]['zoom_error']) - $("#cadastre.list ul").html('
  • Merci de dessiner une surface plus petite afin de récupérer les parcelles cadastrales.
  • '); + if (cadastre_array.length == 1 && cadastre_array[0]['zoom_error']) + $("#cadastre.list ul").html('
  • Merci de dessiner une surface plus petite afin de récupérer les parcelles cadastrales.
  • '); - else if (cadastre_array.length > 0) { - cadastre_array.forEach(function (cadastre) { - $("#cadastre.list ul").append('
  • Parcelle n°' + cadastre.numero + ' - Feuille ' + cadastre.code_arr + ' ' + cadastre.section + ' ' + cadastre.feuille+ '
  • '); + else if (cadastre_array.length > 0) { + cadastre_array.forEach(function (cadastre) { + $("#cadastre.list ul").append('
  • Parcelle n°' + cadastre.numero + ' - Feuille ' + cadastre.code_arr + ' ' + cadastre.section + ' ' + cadastre.feuille+ '
  • '); - cadastreItems.addData(cadastre.geometry); - }); + cadastreItems.addData(cadastre.geometry); + }); - cadastreItems.setStyle({ - fillColor: '#8a6d3b', - weight: 2, - opacity: 0.3, - color: 'white', - dashArray: '3', - fillOpacity: 0.7 - }) - } - else - $("#cadastre.list ul").html('
  • AUCUN
  • '); + cadastreItems.setStyle({ + fillColor: '#8a6d3b', + weight: 2, + opacity: 0.3, + color: 'white', + dashArray: '3', + fillOpacity: 0.7 + }) + } + else + $("#cadastre.list ul").html('
  • AUCUN
  • '); } function new_cadastreLayer() { - if (typeof cadastreItems != 'undefined') - map.removeLayer(cadastreItems); + if (typeof cadastreItems != 'undefined') + map.removeLayer(cadastreItems); - cadastreItems = new L.GeoJSON(); - cadastreItems.addTo(map); -} \ No newline at end of file + cadastreItems = new L.GeoJSON(); + cadastreItems.addTo(map); +} diff --git a/app/assets/javascripts/carte/carte.js b/app/assets/javascripts/carte/carte.js index af6ac5cf4..6966e3791 100644 --- a/app/assets/javascripts/carte/carte.js +++ b/app/assets/javascripts/carte/carte.js @@ -2,162 +2,162 @@ var LON = '2.428462'; var LAT = '46.538192'; function initCarto() { - OSM = L.tileLayer("http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png", { - attribution: '© OpenStreetMap' + OSM = L.tileLayer("http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png", { + attribution: '© OpenStreetMap' + }); + + position = get_position() || default_gestionnaire_position(); + + map = L.map("map", { + center: new L.LatLng(position.lat, position.lon), + zoom: position.zoom, + layers: [OSM], + scrollWheelZoom: false + }); + + icon = L.icon({ + iconUrl: '/assets/marker-icon.png', + //shadowUrl: 'leaf-shadow.png', + + iconSize: [34.48, 40], // size of the icon + //shadowSize: [50, 64], // size of the shadow + iconAnchor: [20, 20] // point of the icon which will correspond to marker's location + //shadowAnchor: [4, 62], // the same for the shadow + //popupAnchor: [-3, -76] // point from which the popup should open relative to the iconAnchor + }); + + if (qp_active()) + display_qp(JSON.parse($("#quartier_prioritaires").val())); + + if (cadastre_active()) + display_cadastre(JSON.parse($("#cadastres").val())); + + freeDraw = new L.FreeDraw(); + freeDraw.options.setSmoothFactor(4); + freeDraw.options.simplifyPolygon = false; + + map.addLayer(freeDraw); + + if ($("#json_latlngs").val() != '' && $("#json_latlngs").val() != '[]') { + map.setZoom(18); + + $.each($.parseJSON($("#json_latlngs").val()), function (i, val) { + freeDraw.createPolygon(val); }); - position = get_position() || default_gestionnaire_position(); + map.fitBounds(freeDraw.polygons[0].getBounds()); + } + else if (position.lat == LAT && position.lon == LON) + map.setView(new L.LatLng(position.lat, position.lon), position.zoom); - map = L.map("map", { - center: new L.LatLng(position.lat, position.lon), - zoom: position.zoom, - layers: [OSM], - scrollWheelZoom: false - }); - - icon = L.icon({ - iconUrl: '/assets/marker-icon.png', - //shadowUrl: 'leaf-shadow.png', - - iconSize: [34.48, 40], // size of the icon - //shadowSize: [50, 64], // size of the shadow - iconAnchor: [20, 20] // point of the icon which will correspond to marker's location - //shadowAnchor: [4, 62], // the same for the shadow - //popupAnchor: [-3, -76] // point from which the popup should open relative to the iconAnchor - }); - - if (qp_active()) - display_qp(JSON.parse($("#quartier_prioritaires").val())); - - if (cadastre_active()) - display_cadastre(JSON.parse($("#cadastres").val())); - - freeDraw = new L.FreeDraw(); - freeDraw.options.setSmoothFactor(4); - freeDraw.options.simplifyPolygon = false; - - map.addLayer(freeDraw); - - if ($("#json_latlngs").val() != '' && $("#json_latlngs").val() != '[]') { - map.setZoom(18); - - $.each($.parseJSON($("#json_latlngs").val()), function (i, val) { - freeDraw.createPolygon(val); - }); - - map.fitBounds(freeDraw.polygons[0].getBounds()); - } - else if (position.lat == LAT && position.lon == LON) - map.setView(new L.LatLng(position.lat, position.lon), position.zoom); - - add_event_freeDraw(); - add_event_search_address(); + add_event_freeDraw(); + add_event_search_address(); } function default_gestionnaire_position() { - return {lon: LON, lat: LAT, zoom: 5} + return {lon: LON, lat: LAT, zoom: 5} } function get_external_data(latLngs) { - if (qp_active()) - display_qp(get_qp(latLngs)); + if (qp_active()) + display_qp(get_qp(latLngs)); - if (cadastre_active()) { - polygons = {"type": "FeatureCollection", "features": []}; + if (cadastre_active()) { + polygons = {"type": "FeatureCollection", "features": []}; - for (i = 0; i < latLngs.length; i++) - polygons.features.push(feature_polygon_latLngs(latLngs[i])) + for (i = 0; i < latLngs.length; i++) + polygons.features.push(feature_polygon_latLngs(latLngs[i])) - cadastre_list = [{zoom_error: true}]; + cadastre_list = [{zoom_error: true}]; - if (turf_area(polygons) < 300000) - cadastre_list = get_cadastre(latLngs); + if (turf_area(polygons) < 300000) + cadastre_list = get_cadastre(latLngs); - display_cadastre(cadastre_list); - } + display_cadastre(cadastre_list); + } } function feature_polygon_latLngs(coordinates) { - return ({ - "type": "Feature", - "properties": {}, - "geometry": { - "type": "Polygon", - "coordinates": [ - JSON.parse(L.FreeDraw.Utilities.getJsonPolygons([coordinates]))['latLngs'] - ] - } - }) + return ({ + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [ + JSON.parse(L.FreeDraw.Utilities.getJsonPolygons([coordinates]))['latLngs'] + ] + } + }) } function add_event_freeDraw() { - freeDraw.on('markers', function (e) { - $("#json_latlngs").val(JSON.stringify(e.latLngs)); + freeDraw.on('markers', function (e) { + $("#json_latlngs").val(JSON.stringify(e.latLngs)); - add_event_edit(); + add_event_edit(); - get_external_data(e.latLngs); - }); + get_external_data(e.latLngs); + }); - $("#map").on('click', function(){ - freeDraw.setMode(L.FreeDraw.MODES.VIEW); - }); + $("#map").on('click', function(){ + freeDraw.setMode(L.FreeDraw.MODES.VIEW); + }); - $("#new").on('click', function (e) { - freeDraw.setMode(L.FreeDraw.MODES.CREATE); - }); + $("#new").on('click', function (e) { + freeDraw.setMode(L.FreeDraw.MODES.CREATE); + }); - $("#delete").on('click', function (e) { - freeDraw.setMode(L.FreeDraw.MODES.DELETE); - }); + $("#delete").on('click', function (e) { + freeDraw.setMode(L.FreeDraw.MODES.DELETE); + }); } function add_event_edit (){ - $(".leaflet-container g path").on('click', function (e) { - setTimeout(function(){freeDraw.setMode(L.FreeDraw.MODES.EDIT | L.FreeDraw.MODES.DELETE)}, 50); - }); + $(".leaflet-container g path").on('click', function (e) { + setTimeout(function(){freeDraw.setMode(L.FreeDraw.MODES.EDIT | L.FreeDraw.MODES.DELETE)}, 50); + }); } function get_position() { - var position; + var position; - $.ajax({ - url: '/users/dossiers/' + dossier_id + '/carte/position', - dataType: 'json', - async: false - }).done(function (data) { - position = data - }); + $.ajax({ + url: '/users/dossiers/' + dossier_id + '/carte/position', + dataType: 'json', + async: false + }).done(function (data) { + position = data + }); - return position; + return position; } function get_address_point(request) { - $.ajax({ - url: '/ban/address_point?request=' + request, - dataType: 'json', - async: true - }).done(function (data) { - if (data.lat != null) { - map.setView(new L.LatLng(data.lat, data.lon), data.zoom); - //L.marker([data.lat, data.lon], {icon: icon}).addTo(map); - } - }); + $.ajax({ + url: '/ban/address_point?request=' + request, + dataType: 'json', + async: true + }).done(function (data) { + if (data.lat != null) { + map.setView(new L.LatLng(data.lat, data.lon), data.zoom); + //L.marker([data.lat, data.lon], {icon: icon}).addTo(map); + } + }); } function jsObject_to_array(qp_list) { - return Object.keys(qp_list).map(function (v) { - return qp_list[v]; - }); + return Object.keys(qp_list).map(function (v) { + return qp_list[v]; + }); } function add_event_search_address() { - $("#search_by_address input[type='address']").bind('typeahead:select', function (ev, seggestion) { - get_address_point(seggestion['label']); - }); + $("#search_by_address input[type='address']").bind('typeahead:select', function (ev, seggestion) { + get_address_point(seggestion['label']); + }); - $("#search_by_address input[type='address']").keypress(function (e) { - if (e.keyCode == 13) - get_address_point($(this).val()); - }); + $("#search_by_address input[type='address']").keypress(function (e) { + if (e.keyCode == 13) + get_address_point($(this).val()); + }); } diff --git a/app/assets/javascripts/carte/qp.js b/app/assets/javascripts/carte/qp.js index c53fdc1f2..0a9ad576c 100644 --- a/app/assets/javascripts/carte/qp.js +++ b/app/assets/javascripts/carte/qp.js @@ -1,60 +1,60 @@ function qp_active() { - return $("#map.qp").length > 0 + return $("#map.qp").length > 0 } function get_qp(coordinates) { - if (!qp_active()) - return; + if (!qp_active()) + return; - var qp; + var qp; - $.ajax({ - method: 'post', - url: '/users/dossiers/' + dossier_id + '/carte/qp', - data: {coordinates: JSON.stringify(coordinates)}, - dataType: 'json', - async: false - }).done(function (data) { - qp = data - }); + $.ajax({ + method: 'post', + url: '/users/dossiers/' + dossier_id + '/carte/qp', + data: {coordinates: JSON.stringify(coordinates)}, + dataType: 'json', + async: false + }).done(function (data) { + qp = data + }); - return qp['quartier_prioritaires']; + return qp['quartier_prioritaires']; } function display_qp(qp_list) { - if (!qp_active()) - return; + if (!qp_active()) + return; - qp_array = jsObject_to_array(qp_list); + qp_array = jsObject_to_array(qp_list); - $("#qp.list ul").html(''); + $("#qp.list ul").html(''); - new_qpLayer(); + new_qpLayer(); - if (qp_array.length > 0) { - qp_array.forEach(function (qp) { - $("#qp.list ul").append('
  • ' + qp.commune + ' : ' + qp.nom + '
  • '); + if (qp_array.length > 0) { + qp_array.forEach(function (qp) { + $("#qp.list ul").append('
  • ' + qp.commune + ' : ' + qp.nom + '
  • '); - qpItems.addData(qp.geometry); - }); + qpItems.addData(qp.geometry); + }); - qpItems.setStyle({ - fillColor: '#31708f', - weight: 2, - opacity: 0.3, - color: 'white', - dashArray: '3', - fillOpacity: 0.7 - }) - } - else - $("#qp.list ul").html('
  • AUCUN
  • '); + qpItems.setStyle({ + fillColor: '#31708f', + weight: 2, + opacity: 0.3, + color: 'white', + dashArray: '3', + fillOpacity: 0.7 + }) + } + else + $("#qp.list ul").html('
  • AUCUN
  • '); } function new_qpLayer() { - if (typeof qpItems != 'undefined') - map.removeLayer(qpItems); + if (typeof qpItems != 'undefined') + map.removeLayer(qpItems); - qpItems = new L.GeoJSON(); - qpItems.addTo(map); -} \ No newline at end of file + qpItems = new L.GeoJSON(); + qpItems.addTo(map); +} diff --git a/app/assets/javascripts/cgu.js b/app/assets/javascripts/cgu.js index b0008d676..fdee1cf96 100644 --- a/app/assets/javascripts/cgu.js +++ b/app/assets/javascripts/cgu.js @@ -1,9 +1,8 @@ -$(document).on('page:load', buttons_anchor); -$(document).ready(buttons_anchor); +$(document).on('turbolinks:load', buttons_anchor); function buttons_anchor(){ - $("#cgu_menu_block").on('click', 'a', function(){ - event.preventDefault(); - $('html,body').animate({scrollTop:$(this.hash).offset().top-80}, 500); - }); -} \ No newline at end of file + $("#cgu_menu_block").on('click', 'a', function(){ + event.preventDefault(); + $('html,body').animate({scrollTop:$(this.hash).offset().top-80}, 500); + }); +} diff --git a/app/assets/javascripts/channels/notifications.js b/app/assets/javascripts/channels/notifications.js index 4445c9110..7a76c26b6 100644 --- a/app/assets/javascripts/channels/notifications.js +++ b/app/assets/javascripts/channels/notifications.js @@ -1,23 +1,23 @@ //App.messages = App.cable.subscriptions.create('NotificationsChannel', { -// received: function (data) { -// if (window.location.href.indexOf('backoffice') !== -1) { -// $("#notification_alert").html(data['message']); +// received: function (data) { +// if (window.location.href.indexOf('backoffice') !== -1) { +// $("#notification_alert").html(data['message']); // -// slideIn_notification_alert(); -// } +// slideIn_notification_alert(); // } +// } //}); function slideIn_notification_alert (){ - $("#notification_alert").animate({ - right: '20px' - }, 250); + $("#notification_alert").animate({ + right: '20px' + }, 250); - setTimeout(slideOut_notification_alert, 3500); + setTimeout(slideOut_notification_alert, 3500); } function slideOut_notification_alert (){ - $("#notification_alert").animate({ - right: '-250px' - }, 200); -} \ No newline at end of file + $("#notification_alert").animate({ + right: '-250px' + }, 200); +} diff --git a/app/assets/javascripts/default_data_block.js b/app/assets/javascripts/default_data_block.js index 1ff875ddf..107681782 100644 --- a/app/assets/javascripts/default_data_block.js +++ b/app/assets/javascripts/default_data_block.js @@ -1,34 +1,33 @@ -$(document).on('page:load', init_default_data_block); -$(document).ready(init_default_data_block); +$(document).on('turbolinks:load', init_default_data_block); function init_default_data_block() { - $('.default_data_block #dossier .body').toggle(); - $('.default_data_block #dossier .carret-right').toggle(); - $('.default_data_block #dossier .carret-down').toggle(); + $('.default_data_block #dossier .body').toggle(); + $('.default_data_block #dossier .carret-right').toggle(); + $('.default_data_block #dossier .carret-down').toggle(); - $('.default_data_block .title').click(function () { - toggle_default_data_bloc(this, 400); - }); + $('.default_data_block .title').click(function () { + toggle_default_data_bloc(this, 400); + }); - $('.new-action').click(function () { - var messages_block = $(this).parents().closest('.default_data_block').find('.title') - toggle_default_data_bloc(messages_block, 400); - }); + $('.new-action').click(function () { + var messages_block = $(this).parents().closest('.default_data_block').find('.title') + toggle_default_data_bloc(messages_block, 400); + }); - $('.default_data_block.default_visible').each(function() { - toggle_default_data_bloc($(this).find('.title'), 0); - }); + $('.default_data_block.default_visible').each(function() { + toggle_default_data_bloc($(this).find('.title'), 0); + }); - function toggle_default_data_bloc(element, duration) { - var block = $(element).parents('.show-block'); - if (block.attr('id') == 'messages') { - block.children('.last-commentaire').toggle(); - $(".commentaires").animate({ scrollTop: $(this).height() }, "slow"); - } - - block.children('.body').slideToggle(duration); - - block.find('.carret-right').toggle(); - block.find('.carret-down').toggle(); + function toggle_default_data_bloc(element, duration) { + var block = $(element).parents('.show-block'); + if (block.attr('id') == 'messages') { + block.children('.last-commentaire').toggle(); + $(".commentaires").animate({ scrollTop: $(this).height() }, "slow"); } + + block.children('.body').slideToggle(duration); + + block.find('.carret-right').toggle(); + block.find('.carret-down').toggle(); + } } diff --git a/app/assets/javascripts/description.js b/app/assets/javascripts/description.js index 6df9f436d..40d22ec69 100644 --- a/app/assets/javascripts/description.js +++ b/app/assets/javascripts/description.js @@ -1,48 +1,47 @@ -$(document).on('page:load', action_type_de_champs); -$(document).ready(action_type_de_champs); +$(document).on('turbolinks:load', action_type_de_champs); function action_type_de_champs() { - $("input[type='email']").on('change', function () { - toggleErrorClass(this, validateEmail($(this).val())); - }); + $("input[type='email']").on('change', function () { + toggleErrorClass(this, validateEmail($(this).val())); + }); - $("input[type='number']").on('change', function () { - toggleErrorClass(this, validateNumber($(this).val())); - }); + $("input[type='number']").on('change', function () { + toggleErrorClass(this, validateNumber($(this).val())); + }); - $("input[type='phone']").on('change', function () { - val = $(this).val(); - val = val.replace(/[ ]/g, ''); + $("input[type='phone']").on('change', function () { + val = $(this).val(); + val = val.replace(/[ ]/g, ''); - toggleErrorClass(this, validatePhone(val)); - }); + toggleErrorClass(this, validatePhone(val)); + }); - address_type_init(); + address_type_init(); } function toggleErrorClass(node, boolean) { - if (boolean) - $(node).removeClass('input-error'); - else - $(node).addClass('input-error'); + if (boolean) + $(node).removeClass('input-error'); + else + $(node).addClass('input-error'); } function validatePhone(phone) { - var re = /^(0|(\+[1-9]{2})|(00[1-9]{2}))[1-9][0-9]{8}$/; - return validateInput(phone, re) + var re = /^(0|(\+[1-9]{2})|(00[1-9]{2}))[1-9][0-9]{8}$/; + return validateInput(phone, re) } function validateEmail(email) { - var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - return validateInput(email, re) + var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + return validateInput(email, re) } function validateNumber(number) { - var re = /^[0-9]+$/; - return validateInput(number, re) + var re = /^[0-9]+$/; + return validateInput(number, re) } function validateInput(input, regex) { - return regex.test(input); + return regex.test(input); } diff --git a/app/assets/javascripts/dossier_commentaires_modal.js b/app/assets/javascripts/dossier_commentaires_modal.js index ee6610c89..99ebd382a 100644 --- a/app/assets/javascripts/dossier_commentaires_modal.js +++ b/app/assets/javascripts/dossier_commentaires_modal.js @@ -1,16 +1,15 @@ -$(document).on('page:load', init_modal_commentaire); -$(document).ready(init_modal_commentaire); +$(document).on('turbolinks:load', init_modal_commentaire); function init_modal_commentaire() { - var modal = $("#modalCommentairesDossierParChamp"); - var body = modal.find(".modal-body"); - var originalBody = body.html(); + var modal = $("#modalCommentairesDossierParChamp"); + var body = modal.find(".modal-body"); + var originalBody = body.html(); - modal.on("show.bs.modal", function (e) { - body.load(e.relatedTarget.getAttribute("data-href")); - }); + modal.on("show.bs.modal", function (e) { + body.load(e.relatedTarget.getAttribute("data-href")); + }); - $("#modalCommentairesDossierParChamp").on("hidden.bs.modal", function (e) { - body.html(originalBody); - }); + $("#modalCommentairesDossierParChamp").on("hidden.bs.modal", function (e) { + body.html(originalBody); + }); } diff --git a/app/assets/javascripts/dossiers.js b/app/assets/javascripts/dossiers.js index c294b6c16..4e0d1836c 100644 --- a/app/assets/javascripts/dossiers.js +++ b/app/assets/javascripts/dossiers.js @@ -1,7 +1,5 @@ -$(document).on('page:load', the_terms); -$(document).ready(the_terms); -$(document).on('page:load', pannel_switch); -$(document).ready(pannel_switch); +$(document).on('turbolinks:load', the_terms); +$(document).on('turbolinks:load', pannel_switch); function pannel_switch() { $('#switch-notifications').click(function () { @@ -19,43 +17,43 @@ function pannel_switch() { } function the_terms() { - var the_terms = $("#dossier_autorisation_donnees"); + var the_terms = $("#dossier_autorisation_donnees"); - if (the_terms.size() == 0) - return; + if (the_terms.size() == 0) + return; + check_value(the_terms); + + the_terms.click(function () { check_value(the_terms); + }); - the_terms.click(function () { - check_value(the_terms); - }); - - function check_value(the_terms) { - if (the_terms.is(":checked")) { - $("#etape_suivante").removeAttr("disabled"); - } else { - $("#etape_suivante").attr("disabled", "disabled"); - } + function check_value(the_terms) { + if (the_terms.is(":checked")) { + $("#etape_suivante").removeAttr("disabled"); + } else { + $("#etape_suivante").attr("disabled", "disabled"); } + } } function error_form_siret(invalid_siret) { - setTimeout(function () { - $("input[type='submit']").val('Erreur SIRET'); - }, 10); + setTimeout(function () { + $("input[type='submit']").val('Erreur SIRET'); + }, 10); - $("input[type='submit']").removeClass('btn-success').addClass('btn-danger'); + $("input[type='submit']").removeClass('btn-success').addClass('btn-danger'); - $("#dossier_siret").addClass('input-error').val(invalid_siret).on('input', reset_form_siret); + $("#dossier_siret").addClass('input-error').val(invalid_siret).on('input', reset_form_siret); } function reset_form_siret() { - $("input[type='submit']").removeClass('btn-danger').addClass('btn-success').val('Valider'); - $("#dossier_siret").removeClass('input-error'); + $("input[type='submit']").removeClass('btn-danger').addClass('btn-success').val('Valider'); + $("#dossier_siret").removeClass('input-error'); } function toggle_etape_1() { - $('.row.etape.etape_1 .etapes_menu #logos').toggle(100); - $('.row.etape.etape_1 .etapes_informations #description_procedure').toggle(100); + $('.row.etape.etape_1 .etapes_menu #logos').toggle(100); + $('.row.etape.etape_1 .etapes_informations #description_procedure').toggle(100); } diff --git a/app/assets/javascripts/dossiers_list_filter.js b/app/assets/javascripts/dossiers_list_filter.js index 389eb6199..7627d7ad6 100644 --- a/app/assets/javascripts/dossiers_list_filter.js +++ b/app/assets/javascripts/dossiers_list_filter.js @@ -1,45 +1,44 @@ -$(document).on('page:load', filters_init); -$(document).ready(filters_init); +$(document).on('turbolinks:load', filters_init); function filters_init() { - $('html').click(function(event) { - var visible_filter = $('.filter_framed:visible') - if(visible_filter.length) { - if (!$(event.target).closest('.filter_framed').is(":visible")) { - visible_filter.hide(); - } - } - }); + $('html').click(function(event) { + var visible_filter = $('.filter_framed:visible') + if(visible_filter.length) { + if (!$(event.target).closest('.filter_framed').is(":visible")) { + visible_filter.hide(); + } + } + }); - $(".filter").on('click', function (event) { - filter_framed_show(event); - filter_framed_close_all_excepted(framed_id(event)); - event.stopPropagation(); - }); + $(".filter").on('click', function (event) { + filter_framed_show(event); + filter_framed_close_all_excepted(framed_id(event)); + event.stopPropagation(); + }); - $(".erase-filter").on('click', function (event) { - $(this).parent().find(".filter_input").val(""); - }); + $(".erase-filter").on('click', function (event) { + $(this).parent().find(".filter_input").val(""); + }); } function filter_framed_close_all_excepted(id) { - $(".filter_framed:not("+id+")").hide(); + $(".filter_framed:not("+id+")").hide(); - $(id).toggle(); + $(id).toggle(); } function framed_id(event) { - return "#framed_" + event.target.id + return "#framed_" + event.target.id } function filter_framed_show(event) { - dom_object = $(framed_id(event)); + dom_object = $(framed_id(event)); - var offset = $('#main-container').offset(); + var offset = $('#main-container').offset(); - var y = event.pageY - offset.top; - var x = event.pageX - offset.left; + var y = event.pageY - offset.top; + var x = event.pageX - offset.left; - dom_object.css('top', (y + 7) + 'px'); - dom_object.css('left', (x + 7) + 'px'); + dom_object.css('top', (y + 7) + 'px'); + dom_object.css('left', (x + 7) + 'px'); } diff --git a/app/assets/javascripts/dossiers_list_link.js b/app/assets/javascripts/dossiers_list_link.js index 09fb31542..147e109a3 100644 --- a/app/assets/javascripts/dossiers_list_link.js +++ b/app/assets/javascripts/dossiers_list_link.js @@ -1,5 +1,4 @@ -$(document).on('page:load', link_init); -$(document).ready(link_init); +$(document).on('turbolinks:load', link_init); function link_init() { $('#dossiers_list tr').on('click', function () { diff --git a/app/assets/javascripts/franceconnect_kit.js b/app/assets/javascripts/franceconnect_kit.js index 29b4b5f37..1d4565c86 100644 --- a/app/assets/javascripts/franceconnect_kit.js +++ b/app/assets/javascripts/franceconnect_kit.js @@ -1,7 +1,5 @@ -$(document).on('page:load', franceconnect_kit); -$(document).ready(franceconnect_kit); +$(document).on('turbolinks:load', franceconnect_kit); function franceconnect_kit() { - franceConnectKit.init() + franceConnectKit.init() } - diff --git a/app/assets/javascripts/gestionnaire_dossier_modal.js b/app/assets/javascripts/gestionnaire_dossier_modal.js index 2632ab407..bb02ca501 100644 --- a/app/assets/javascripts/gestionnaire_dossier_modal.js +++ b/app/assets/javascripts/gestionnaire_dossier_modal.js @@ -1,16 +1,15 @@ -$(document).on('page:load', modal_action); -$(document).ready(modal_action); +$(document).on('turbolinks:load', modal_action); function modal_action() { - $('#PJmodal').on('show.bs.modal', function (event) { - $("#PJmodal .modal-body .table .tr_content").hide(); + $('#PJmodal').on('show.bs.modal', function (event) { + $("#PJmodal .modal-body .table .tr_content").hide(); - var button = $(event.relatedTarget) // Button that triggered the modal - var modal_title = button.data('modal_title'); // Extract info from data-* attributes - var modal_index = button.data('modal_index'); // Extract info from data-* attributes + var button = $(event.relatedTarget) // Button that triggered the modal + var modal_title = button.data('modal_title'); // Extract info from data-* attributes + var modal_index = button.data('modal_index'); // Extract info from data-* attributes - var modal = $(this) - modal.find('#PJmodal_title').html(modal_title); - $("#PJmodal .modal-body .table #"+modal_index).show(); - }) + var modal = $(this) + modal.find('#PJmodal_title').html(modal_title); + $("#PJmodal .modal-body .table #"+modal_index).show(); + }) } diff --git a/app/assets/javascripts/pref_list_dossier.js b/app/assets/javascripts/pref_list_dossier.js index 977778ff1..21e7966df 100644 --- a/app/assets/javascripts/pref_list_dossier.js +++ b/app/assets/javascripts/pref_list_dossier.js @@ -1,33 +1,32 @@ -$(document).on('page:load', pref_list_dossier_actions); -$(document).ready(pref_list_dossier_actions); +$(document).on('turbolinks:load', pref_list_dossier_actions); function pref_list_dossier_actions() { - pref_list_dossier_open_action(); - pref_list_dossier_close_action(); + pref_list_dossier_open_action(); + pref_list_dossier_close_action(); } function pref_list_dossier_open_action() { - $("#pref_list_dossier_open_action").on('click', function () { - $("#pref_list_menu").css('display', 'block'); - $("#pref_list_menu").css('visibility', 'visible'); + $("#pref_list_dossier_open_action").on('click', function () { + $("#pref_list_menu").css('display', 'block'); + $("#pref_list_menu").css('visibility', 'visible'); - $("#pref_list_menu").animate({ - right: 0 - }, 250); - }); + $("#pref_list_menu").animate({ + right: 0 + }, 250); + }); } function pref_list_dossier_close_action() { - $("#pref_list_dossier_close_action").on('click', function () { - $("#pref_list_menu").animate({ - right: parseInt($("#pref_list_menu").css('width'), 10)*(-1)+'px' - },{ - duration: 250, - complete: function () { - $("#pref_list_menu").css('display', 'none'); - $("#pref_list_menu").css('visibility', 'hidden'); - } - } - ) - }); + $("#pref_list_dossier_close_action").on('click', function () { + $("#pref_list_menu").animate({ + right: parseInt($("#pref_list_menu").css('width'), 10)*(-1)+'px' + },{ + duration: 250, + complete: function () { + $("#pref_list_menu").css('display', 'none'); + $("#pref_list_menu").css('visibility', 'hidden'); + } + } + ) + }); } diff --git a/app/assets/javascripts/procedure.js b/app/assets/javascripts/procedure.js index b3fa21dd3..d4f89f012 100644 --- a/app/assets/javascripts/procedure.js +++ b/app/assets/javascripts/procedure.js @@ -1,38 +1,37 @@ -$(document).on('page:load', button_edit_procedure_init); -$(document).ready(button_edit_procedure_init); +$(document).on('turbolinks:load', button_edit_procedure_init); function button_edit_procedure_init(){ - buttons_api_carto(); - button_cerfa(); - button_individual(); + buttons_api_carto(); + button_cerfa(); + button_individual(); } function buttons_api_carto () { - $("#procedure_module_api_carto_use_api_carto").on('change', function() { - $("#modules_api_carto").toggle() - }); + $("#procedure_module_api_carto_use_api_carto").on('change', function() { + $("#modules_api_carto").toggle() + }); - if ($('#procedure_module_api_carto_use_api_carto').is(':checked')) - $("#modules_api_carto").show(); + if ($('#procedure_module_api_carto_use_api_carto').is(':checked')) + $("#modules_api_carto").show(); } function button_cerfa () { - $("#procedure_cerfa_flag").on('change', function() { - $("#procedure_lien_demarche").toggle() - }); + $("#procedure_cerfa_flag").on('change', function() { + $("#procedure_lien_demarche").toggle() + }); - if ($('#procedure_cerfa_flag').is(':checked')) - $("#procedure_lien_demarche").show(); + if ($('#procedure_cerfa_flag').is(':checked')) + $("#procedure_lien_demarche").show(); } function button_individual () { - $("#procedure_for_individual").on('change', function() { - $("#individual_with_siret").toggle() - }); + $("#procedure_for_individual").on('change', function() { + $("#individual_with_siret").toggle() + }); - if ($('#procedure_for_individual').is(':checked')) - $("#individual_with_siret").show(); -} \ No newline at end of file + if ($('#procedure_for_individual').is(':checked')) + $("#individual_with_siret").show(); +} diff --git a/app/assets/javascripts/search.js b/app/assets/javascripts/search.js index 689f65f37..bfbc7aded 100644 --- a/app/assets/javascripts/search.js +++ b/app/assets/javascripts/search.js @@ -1,60 +1,59 @@ -$(document).on('page:load', init_search_anim); -$(document).ready(init_search_anim); +$(document).on('turbolinks:load', init_search_anim); function init_search_anim(){ - $("#search_area").on('click', search_fadeIn); + $("#search_area").on('click', search_fadeIn); } function search_fadeIn(){ - var search_area = $("#search_area"); - var body_dom = $('body'); - var positions = search_area.position(); - var width = search_area.width(); + var search_area = $("#search_area"); + var body_dom = $('body'); + var positions = search_area.position(); + var width = search_area.width(); - search_area.css('position', 'fixed'); - search_area.css('top', positions.top + $('.navbar').height()); - search_area.css('left', positions.left); - search_area.css('z-index', 300); - search_area.css('width', width); - search_area.find('#q').animate({ height: '50px' }); - search_area.find('#search_button').animate({ height: '50px' }); + search_area.css('position', 'fixed'); + search_area.css('top', positions.top + $('.navbar').height()); + search_area.css('left', positions.left); + search_area.css('z-index', 300); + search_area.css('width', width); + search_area.find('#q').animate({ height: '50px' }); + search_area.find('#search_button').animate({ height: '50px' }); - body_dom.append(search_area); - $('#mask_search').fadeIn(200); + body_dom.append(search_area); + $('#mask_search').fadeIn(200); - var body_width = body_dom.width(); + var body_width = body_dom.width(); - var search_area_width = body_width/2.5; + var search_area_width = body_width/2.5; - search_area.animate({ - width: search_area_width, - left: (body_width/2 - search_area_width/2 + 40) - }, 400, function() { - search_area.off(); - $("#search_area input").focus(); + search_area.animate({ + width: search_area_width, + left: (body_width/2 - search_area_width/2 + 40) + }, 400, function() { + search_area.off(); + $("#search_area input").focus(); - $('#mask_search').on('click', search_fadeOut) - }); + $('#mask_search').on('click', search_fadeOut) + }); } function search_fadeOut(){ - var search_area = $("#search_area"); + var search_area = $("#search_area"); - $('#mask_search').fadeOut(200); + $('#mask_search').fadeOut(200); - search_area.fadeOut(200, function(){ - search_area.css('position', 'static'); - search_area.css('top', ''); - search_area.css('left', ''); - search_area.css('z-index', ''); - search_area.css('width', 'auto'); - search_area.find('#q').css('height', 34); - search_area.find('#search_button').css('height', 34); + search_area.fadeOut(200, function(){ + search_area.css('position', 'static'); + search_area.css('top', ''); + search_area.css('left', ''); + search_area.css('z-index', ''); + search_area.css('width', 'auto'); + search_area.find('#q').css('height', 34); + search_area.find('#search_button').css('height', 34); - $('#search-block').append(search_area); - search_area.fadeIn(200); + $('#search-block').append(search_area); + search_area.fadeIn(200); - init_search_anim(); - }); + init_search_anim(); + }); } diff --git a/app/assets/javascripts/start.js b/app/assets/javascripts/start.js index 6a5ab827c..c261ae1fc 100644 --- a/app/assets/javascripts/start.js +++ b/app/assets/javascripts/start.js @@ -1,3 +1,3 @@ function show_dossier_id_input (){ - $("#btn_show_dossier_id_input").hide() -} \ No newline at end of file + $("#btn_show_dossier_id_input").hide() +} diff --git a/app/assets/javascripts/user/description.js b/app/assets/javascripts/user/description.js index cdae9a4c1..c1ac0aabf 100644 --- a/app/assets/javascripts/user/description.js +++ b/app/assets/javascripts/user/description.js @@ -1,5 +1,4 @@ -$(document).on('page:load', activeSelect2); -$(document).ready(activeSelect2); +$(document).on('turbolinks:load', activeSelect2); function activeSelect2() { $('select.select2').select2({ theme: "bootstrap", width: '100%' }); diff --git a/app/assets/stylesheets/_card.scss b/app/assets/stylesheets/_card.scss index 5e1e54578..813406a9f 100644 --- a/app/assets/stylesheets/_card.scss +++ b/app/assets/stylesheets/_card.scss @@ -3,4 +3,4 @@ padding: 15px; box-shadow: 0 1px 3px rgba(0, 0, 0, .15); border-radius: 2px; -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/_helpers.scss b/app/assets/stylesheets/_helpers.scss index 6d861a826..0e0b3a549 100644 --- a/app/assets/stylesheets/_helpers.scss +++ b/app/assets/stylesheets/_helpers.scss @@ -18,4 +18,4 @@ $default-spacer: 15px; .ml-1 { margin-left: $default-spacer; -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/_turbolinks.scss b/app/assets/stylesheets/_turbolinks.scss new file mode 100644 index 000000000..3a6401063 --- /dev/null +++ b/app/assets/stylesheets/_turbolinks.scss @@ -0,0 +1,5 @@ +@import "variables"; + +.turbolinks-progress-bar { + background-color: $light-blue; +} diff --git a/app/assets/stylesheets/_variables.scss b/app/assets/stylesheets/_variables.scss index daf479d2c..701b59ca1 100644 --- a/app/assets/stylesheets/_variables.scss +++ b/app/assets/stylesheets/_variables.scss @@ -1 +1,5 @@ -$font-size-base: 16px; \ No newline at end of file +// colors +$light-blue: #F2F6FA; + +// Bootstrap variables +$font-size-base: 16px; diff --git a/app/assets/stylesheets/admin_index.scss b/app/assets/stylesheets/admin_index.scss index 3c8e9eb11..8a4d10b22 100644 --- a/app/assets/stylesheets/admin_index.scss +++ b/app/assets/stylesheets/admin_index.scss @@ -20,4 +20,3 @@ } } } - diff --git a/app/assets/stylesheets/admin_procedures_modal.scss b/app/assets/stylesheets/admin_procedures_modal.scss index 320752d3c..2ef9d03b0 100644 --- a/app/assets/stylesheets/admin_procedures_modal.scss +++ b/app/assets/stylesheets/admin_procedures_modal.scss @@ -15,4 +15,4 @@ .tt-menu { width: 300px; } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 6d4168935..dd10a3f2b 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -27,7 +27,7 @@ @import "bootstrap"; body { - background-color: #F2F6FA; + background-color: $light-blue; } html, body { @@ -63,7 +63,7 @@ form { } #footer { - background-color: #F2F6FA; + background-color: $light-blue; text-align: center; padding: 0; a, p { diff --git a/app/assets/stylesheets/cgu.scss b/app/assets/stylesheets/cgu.scss index 5053eaa4b..f2e89d748 100644 --- a/app/assets/stylesheets/cgu.scss +++ b/app/assets/stylesheets/cgu.scss @@ -1,4 +1,4 @@ #cgu { margin-left: 2em; margin-right: 2em; -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/default_data_block.scss b/app/assets/stylesheets/default_data_block.scss index 9de8963fe..9590ce8ff 100644 --- a/app/assets/stylesheets/default_data_block.scss +++ b/app/assets/stylesheets/default_data_block.scss @@ -1,3 +1,5 @@ +@import "variables"; + .default_data_block { font-family: Arial; @@ -53,7 +55,7 @@ color: #FFFFFF; } .action:hover { - color: #F2F6FA; + color: $light-blue; } .count { font-size: 16px; diff --git a/app/assets/stylesheets/france_connect_particulier.scss b/app/assets/stylesheets/france_connect_particulier.scss index 5ac915a79..98cb7738e 100644 --- a/app/assets/stylesheets/france_connect_particulier.scss +++ b/app/assets/stylesheets/france_connect_particulier.scss @@ -2,4 +2,4 @@ width: 300px; margin-left:auto; margin-right:auto; -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/login.scss b/app/assets/stylesheets/login.scss index 78437e863..364a3176b 100644 --- a/app/assets/stylesheets/login.scss +++ b/app/assets/stylesheets/login.scss @@ -30,4 +30,4 @@ h4 { text-align: left; } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index bf35549e1..1ed38032d 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -1,3 +1,5 @@ +@import "variables"; + #header { top: 0; left: 0; @@ -185,7 +187,7 @@ } } .button-navbar-action:hover { - color: #F2F6FA; + color: $light-blue; } .button_navbar:hover, .button-navbar-action:hover { diff --git a/app/assets/stylesheets/notification_alert.scss b/app/assets/stylesheets/notification_alert.scss index caf95bdf9..6ba4e8f0b 100644 --- a/app/assets/stylesheets/notification_alert.scss +++ b/app/assets/stylesheets/notification_alert.scss @@ -9,4 +9,4 @@ height: 80px; border: solid black 1px; -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/pj_modal.scss b/app/assets/stylesheets/pj_modal.scss index 1c29218b1..4f3ab1c4b 100644 --- a/app/assets/stylesheets/pj_modal.scss +++ b/app/assets/stylesheets/pj_modal.scss @@ -6,4 +6,4 @@ } } } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/pref_list_menu.scss b/app/assets/stylesheets/pref_list_menu.scss index 3251d69fb..af4a430a7 100644 --- a/app/assets/stylesheets/pref_list_menu.scss +++ b/app/assets/stylesheets/pref_list_menu.scss @@ -17,4 +17,4 @@ .open_pref_list { right: 0 !important; display: block !important; -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/siret.scss b/app/assets/stylesheets/siret.scss index 0bf56056a..c5eac6f02 100644 --- a/app/assets/stylesheets/siret.scss +++ b/app/assets/stylesheets/siret.scss @@ -9,4 +9,4 @@ #titre_procedure { margin-top: 3%; margin-bottom: 2%; -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/support_navigator_banner.scss b/app/assets/stylesheets/support_navigator_banner.scss index d786918f5..bb6651142 100644 --- a/app/assets/stylesheets/support_navigator_banner.scss +++ b/app/assets/stylesheets/support_navigator_banner.scss @@ -12,4 +12,4 @@ a{ color: #c3d9ff; } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/switch_menu.scss b/app/assets/stylesheets/switch_menu.scss index 95d6b0b30..a7c66e6c1 100644 --- a/app/assets/stylesheets/switch_menu.scss +++ b/app/assets/stylesheets/switch_menu.scss @@ -3,4 +3,4 @@ left: 10px; bottom: 10px; z-index: 300; -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/typeahead.scss b/app/assets/stylesheets/typeahead.scss index 8d4c2a37c..c22dbf622 100644 --- a/app/assets/stylesheets/typeahead.scss +++ b/app/assets/stylesheets/typeahead.scss @@ -31,4 +31,4 @@ color: #fff; background-color: #0097cf; -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/ul.scss b/app/assets/stylesheets/ul.scss index e3ef474dc..25f26e3a5 100644 --- a/app/assets/stylesheets/ul.scss +++ b/app/assets/stylesheets/ul.scss @@ -11,4 +11,4 @@ li:last-child { border: none; } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/users.scss b/app/assets/stylesheets/users.scss index 8b734bee7..bdf586ad3 100644 --- a/app/assets/stylesheets/users.scss +++ b/app/assets/stylesheets/users.scss @@ -1,3 +1,5 @@ +@import "variables"; + #users_index, #admins_index{ margin-left: 2rem; margin-right: 2rem; @@ -48,7 +50,7 @@ padding: 10px; } .action:hover { - color: #F2F6FA; + color: $light-blue; } .padding-left-30 { padding-left: 30px; diff --git a/app/channels/notifications_channel.rb b/app/channels/notifications_channel.rb index a57c0f242..4bdd4fd85 100644 --- a/app/channels/notifications_channel.rb +++ b/app/channels/notifications_channel.rb @@ -2,4 +2,4 @@ class NotificationsChannel < ApplicationCable::Channel def subscribed stream_from 'notifications' end -end \ No newline at end of file +end diff --git a/app/controllers/admin/accompagnateurs_controller.rb b/app/controllers/admin/accompagnateurs_controller.rb index 6d11c6192..dcdb3ae46 100644 --- a/app/controllers/admin/accompagnateurs_controller.rb +++ b/app/controllers/admin/accompagnateurs_controller.rb @@ -35,4 +35,4 @@ class Admin::AccompagnateursController < AdminController flash.notice = "Assignement effectué" redirect_to admin_procedure_accompagnateurs_path, procedure_id: params[:procedure_id] end -end \ No newline at end of file +end diff --git a/app/controllers/admin/change_dossier_state_controller.rb b/app/controllers/admin/change_dossier_state_controller.rb index 0b199b3f8..a1d03dd65 100644 --- a/app/controllers/admin/change_dossier_state_controller.rb +++ b/app/controllers/admin/change_dossier_state_controller.rb @@ -16,4 +16,4 @@ class Admin::ChangeDossierStateController < AdminController return redirect_to admin_change_dossier_state_path end end -end \ No newline at end of file +end diff --git a/app/controllers/admin/previsualisations_controller.rb b/app/controllers/admin/previsualisations_controller.rb index 257de657b..f3a78abf5 100644 --- a/app/controllers/admin/previsualisations_controller.rb +++ b/app/controllers/admin/previsualisations_controller.rb @@ -15,4 +15,4 @@ class Admin::PrevisualisationsController < AdminController acc end end -end \ No newline at end of file +end diff --git a/app/controllers/admin/types_de_champ_private_controller.rb b/app/controllers/admin/types_de_champ_private_controller.rb index 25252b88c..28fb9330f 100644 --- a/app/controllers/admin/types_de_champ_private_controller.rb +++ b/app/controllers/admin/types_de_champ_private_controller.rb @@ -46,4 +46,4 @@ class Admin::TypesDeChampPrivateController < AdminController def create_facade @types_de_champ_facade = AdminTypesDeChampFacades.new true, @procedure end -end \ No newline at end of file +end diff --git a/app/controllers/api/v1/dossiers_controller.rb b/app/controllers/api/v1/dossiers_controller.rb index 2849fd8c1..0cf231f7b 100644 --- a/app/controllers/api/v1/dossiers_controller.rb +++ b/app/controllers/api/v1/dossiers_controller.rb @@ -56,4 +56,4 @@ class API::V1::DossiersController < APIController nombre_de_page: dossiers.total_pages } end -end \ No newline at end of file +end diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb index 8c636918d..80a9b982e 100644 --- a/app/controllers/api_controller.rb +++ b/app/controllers/api_controller.rb @@ -19,4 +19,4 @@ class APIController < ApplicationController def default_format_json request.format = "json" unless request.params[:format] end -end \ No newline at end of file +end diff --git a/app/controllers/backoffice/commentaires_controller.rb b/app/controllers/backoffice/commentaires_controller.rb index 319411bda..796feec51 100644 --- a/app/controllers/backoffice/commentaires_controller.rb +++ b/app/controllers/backoffice/commentaires_controller.rb @@ -4,4 +4,4 @@ class Backoffice::CommentairesController < CommentairesController def is_gestionnaire? true end -end \ No newline at end of file +end diff --git a/app/controllers/backoffice/dossiers_controller.rb b/app/controllers/backoffice/dossiers_controller.rb index 7edc11989..4a27784ad 100644 --- a/app/controllers/backoffice/dossiers_controller.rb +++ b/app/controllers/backoffice/dossiers_controller.rb @@ -39,16 +39,13 @@ class Backoffice::DossiersController < Backoffice::DossiersListController end def download_dossiers_tps - if procedure = Procedure.find_by(id: params[:procedure_id]) - dossiers = dossiers_list_facade(param_liste).dossiers_to_display - respond_with Dossier.export_full_generation(dossiers, request.format) unless dossiers.empty? - else - dossiers = dossiers_list_facade(param_liste).dossiers_to_display - respond_to do |format| - format.xlsx { render xlsx: dossiers } - format.ods { render ods: dossiers } - format.csv { render csv: dossiers } - end + procedure = Procedure.find_by(id: params[:procedure_id]) + export = procedure.generate_export + + respond_to do |format| + format.csv { send_data(SpreadsheetArchitect.to_csv(data: export[:data], headers: export[:headers]), filename: 'dossiers.csv') } + format.xlsx { send_data(SpreadsheetArchitect.to_xlsx(data: export[:data], headers: export[:headers]), filename: 'dossiers.xlsx') } + format.ods { send_data(SpreadsheetArchitect.to_ods(data: export[:data], headers: export[:headers]), filename: 'dossiers.ods') } end end diff --git a/app/controllers/backoffice/private_formulaires_controller.rb b/app/controllers/backoffice/private_formulaires_controller.rb index 4ad2ff671..8a9283959 100644 --- a/app/controllers/backoffice/private_formulaires_controller.rb +++ b/app/controllers/backoffice/private_formulaires_controller.rb @@ -16,4 +16,4 @@ class Backoffice::PrivateFormulairesController < ApplicationController render 'backoffice/dossiers/formulaire_private', formats: :js end -end \ No newline at end of file +end diff --git a/app/controllers/backoffice_controller.rb b/app/controllers/backoffice_controller.rb index ace16f103..7cad9b2a4 100644 --- a/app/controllers/backoffice_controller.rb +++ b/app/controllers/backoffice_controller.rb @@ -7,4 +7,4 @@ class BackofficeController < ApplicationController redirect_to(:backoffice_dossiers) end end -end \ No newline at end of file +end diff --git a/app/controllers/ban/search_controller.rb b/app/controllers/ban/search_controller.rb index 55780de7b..92113f474 100644 --- a/app/controllers/ban/search_controller.rb +++ b/app/controllers/ban/search_controller.rb @@ -17,4 +17,4 @@ class Ban::SearchController < ApplicationController render json: {lon: lon, lat: lat, zoom: '14', dossier_id: params[:dossier_id]} end -end \ No newline at end of file +end diff --git a/app/controllers/cgu_controller.rb b/app/controllers/cgu_controller.rb index 95bb4ab15..2c7b968d8 100644 --- a/app/controllers/cgu_controller.rb +++ b/app/controllers/cgu_controller.rb @@ -2,4 +2,4 @@ class CguController < ApplicationController def index end -end \ No newline at end of file +end diff --git a/app/controllers/france_connect/particulier_controller.rb b/app/controllers/france_connect/particulier_controller.rb index a62393990..a625d0440 100644 --- a/app/controllers/france_connect/particulier_controller.rb +++ b/app/controllers/france_connect/particulier_controller.rb @@ -117,4 +117,4 @@ class FranceConnect::ParticulierController < ApplicationController france_connect_information = FranceConnectInformation.find(params[:fci_id]) FranceConnectSaltService.new(france_connect_information).valid? params[:salt] end -end \ No newline at end of file +end diff --git a/app/controllers/users/commentaires_controller.rb b/app/controllers/users/commentaires_controller.rb index bc3eb562c..95495b1a2 100644 --- a/app/controllers/users/commentaires_controller.rb +++ b/app/controllers/users/commentaires_controller.rb @@ -1,3 +1,3 @@ class Users::CommentairesController < CommentairesController before_action :authenticate_user! -end \ No newline at end of file +end diff --git a/app/controllers/users/dossiers/add_siret_controller.rb b/app/controllers/users/dossiers/add_siret_controller.rb index 5e6591197..4190e304f 100644 --- a/app/controllers/users/dossiers/add_siret_controller.rb +++ b/app/controllers/users/dossiers/add_siret_controller.rb @@ -10,4 +10,4 @@ class Users::Dossiers::AddSiretController < ApplicationController flash.alert = t('errors.messages.dossier_not_found') redirect_to url_for users_dossiers_path end -end \ No newline at end of file +end diff --git a/app/controllers/users/dossiers/commentaires_controller.rb b/app/controllers/users/dossiers/commentaires_controller.rb index b3e55c940..ad37ba45a 100644 --- a/app/controllers/users/dossiers/commentaires_controller.rb +++ b/app/controllers/users/dossiers/commentaires_controller.rb @@ -1,3 +1,3 @@ class Users::Dossiers::CommentairesController < CommentairesController before_action :authenticate_user! -end \ No newline at end of file +end diff --git a/app/controllers/users/dossiers/invites_controller.rb b/app/controllers/users/dossiers/invites_controller.rb index 56ca6497d..c10f93d0a 100644 --- a/app/controllers/users/dossiers/invites_controller.rb +++ b/app/controllers/users/dossiers/invites_controller.rb @@ -15,4 +15,4 @@ class Users::Dossiers::InvitesController < UsersController flash.alert = t('errors.messages.dossier_not_found') redirect_to url_for users_dossiers_path end -end \ No newline at end of file +end diff --git a/app/controllers/users/dossiers_controller.rb b/app/controllers/users/dossiers_controller.rb index 2e5e6b46b..fe4421dab 100644 --- a/app/controllers/users/dossiers_controller.rb +++ b/app/controllers/users/dossiers_controller.rb @@ -122,7 +122,7 @@ class Users::DossiersController < UsersController @facade = facade params[:dossier][:id] if checked_autorisation_donnees? - unless Dossier.find(@facade.dossier.id).update_attributes update_params + unless Dossier.find(@facade.dossier.id).update_attributes update_params_with_formatted_birthdate flash.alert = @facade.dossier.errors.full_messages.join('
    ').html_safe return redirect_to users_dossier_path(id: @facade.dossier.id) @@ -171,6 +171,25 @@ class Users::DossiersController < UsersController params.require(:dossier).permit(:id, :autorisation_donnees, individual_attributes: [:gender, :nom, :prenom, :birthdate]) end + def update_params_with_formatted_birthdate + editable_params = update_params + + # If the user was shown a date input field (if its browser supports it), + # the returned param will follow the YYYY-MM-DD pattern, which we need + # do convert to the DD/MM/YYYY pattern we use + if editable_params && + editable_params[:individual_attributes] && + editable_params[:individual_attributes][:birthdate] && + editable_params[:individual_attributes][:birthdate] =~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/ + + original_birthdate = editable_params[:individual_attributes][:birthdate] + formatted_birthdate = I18n.l(original_birthdate.to_date, format: '%d/%m/%Y') + editable_params[:individual_attributes][:birthdate] = formatted_birthdate + end + + editable_params + end + def checked_autorisation_donnees? update_params[:autorisation_donnees] == '1' end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index dfc3689f3..67c94e85f 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -29,4 +29,4 @@ class UsersController < ApplicationController flash.alert = message redirect_to url_for root_path end -end \ No newline at end of file +end diff --git a/app/decorators/dossiers_decorator.rb b/app/decorators/dossiers_decorator.rb index 0960972b1..6e8571b6f 100644 --- a/app/decorators/dossiers_decorator.rb +++ b/app/decorators/dossiers_decorator.rb @@ -1,4 +1,4 @@ class DossiersDecorator < Draper::CollectionDecorator delegate :current_page, :per_page, :offset, :total_entries, :total_pages - + end diff --git a/app/decorators/type_de_champ_private_decorator.rb b/app/decorators/type_de_champ_private_decorator.rb index 1adcaca84..31d4d3299 100644 --- a/app/decorators/type_de_champ_private_decorator.rb +++ b/app/decorators/type_de_champ_private_decorator.rb @@ -1,3 +1,3 @@ class TypeDeChampPrivateDecorator < TypeDeChampDecorator -end \ No newline at end of file +end diff --git a/app/decorators/type_de_piece_justificative_decorator.rb b/app/decorators/type_de_piece_justificative_decorator.rb index 284c1b854..a0737cafc 100644 --- a/app/decorators/type_de_piece_justificative_decorator.rb +++ b/app/decorators/type_de_piece_justificative_decorator.rb @@ -1,4 +1,3 @@ - class TypeDePieceJustificativeDecorator < Draper::Decorator delegate_all def button_up params @@ -34,4 +33,4 @@ class TypeDePieceJustificativeDecorator < Draper::Decorator def count_type_de_piece_justificative @count_type_de_piece_justificative ||= procedure.types_de_piece_justificative.count end -end \ No newline at end of file +end diff --git a/app/facades/admin_procedures_show_facades.rb b/app/facades/admin_procedures_show_facades.rb index 6b9c7f07a..650959746 100644 --- a/app/facades/admin_procedures_show_facades.rb +++ b/app/facades/admin_procedures_show_facades.rb @@ -43,4 +43,4 @@ class AdminProceduresShowFacades def dossiers_termine_total dossiers.where(state: :termine).size end -end \ No newline at end of file +end diff --git a/app/facades/admin_types_de_champ_facades.rb b/app/facades/admin_types_de_champ_facades.rb index 9ee482dff..d6488193d 100644 --- a/app/facades/admin_types_de_champ_facades.rb +++ b/app/facades/admin_types_de_champ_facades.rb @@ -45,4 +45,4 @@ class AdminTypesDeChampFacades def add_button_id @private ? :add_type_de_champ_private : :add_type_de_champ end -end \ No newline at end of file +end diff --git a/app/facades/invite_dossier_facades.rb b/app/facades/invite_dossier_facades.rb index 3c2a8086f..ce52f0b3c 100644 --- a/app/facades/invite_dossier_facades.rb +++ b/app/facades/invite_dossier_facades.rb @@ -4,4 +4,4 @@ class InviteDossierFacades < DossierFacades def initialize id, email @dossier = Invite.where(email: email, id: id).first!.dossier end -end \ No newline at end of file +end diff --git a/app/lib/file_size_validator.rb b/app/lib/file_size_validator.rb index 10621e793..d3b58baeb 100644 --- a/app/lib/file_size_validator.rb +++ b/app/lib/file_size_validator.rb @@ -71,4 +71,4 @@ class FileSizeValidator < ActiveModel::EachValidator include Singleton include ActionView::Helpers::NumberHelper end -end \ No newline at end of file +end diff --git a/app/lib/siade/exercices_adapter.rb b/app/lib/siade/exercices_adapter.rb index bc2d0df2a..866e2e317 100644 --- a/app/lib/siade/exercices_adapter.rb +++ b/app/lib/siade/exercices_adapter.rb @@ -20,4 +20,4 @@ class SIADE::ExercicesAdapter :dateFinExercice, :date_fin_exercice_timestamp] end -end \ No newline at end of file +end diff --git a/app/models/assign_to.rb b/app/models/assign_to.rb index 64e2f5e30..07af61ccf 100644 --- a/app/models/assign_to.rb +++ b/app/models/assign_to.rb @@ -1,4 +1,4 @@ class AssignTo < ActiveRecord::Base belongs_to :procedure belongs_to :gestionnaire -end \ No newline at end of file +end diff --git a/app/models/cerfa.rb b/app/models/cerfa.rb index 6d6d0c702..bfa0fda50 100644 --- a/app/models/cerfa.rb +++ b/app/models/cerfa.rb @@ -28,4 +28,4 @@ class Cerfa < ActiveRecord::Base NotificationService.new('cerfa', self.dossier.id).notify end end -end \ No newline at end of file +end diff --git a/app/models/dossier.rb b/app/models/dossier.rb index 7002b2ab9..5cf14b5ea 100644 --- a/app/models/dossier.rb +++ b/app/models/dossier.rb @@ -201,6 +201,8 @@ class Dossier < ActiveRecord::Base scope :archived, -> { where(archived: true) } + scope :downloadable, -> { all_state } + def cerfa_available? procedure.cerfa_flag? && cerfa.size != 0 end @@ -261,23 +263,6 @@ class Dossier < ActiveRecord::Base return headers end - def self.export_full_generation(dossiers, format) - if dossiers && !dossiers.empty? - data = [] - headers = dossiers.first.export_headers - dossiers.each do |dossier| - data << dossier.convert_specific_array_values_to_string(dossier.data_with_champs) - end - if ["csv"].include?(format) - return SpreadsheetArchitect.to_csv(data: data, headers: headers) - elsif ["xlsx"].include?(format) - return SpreadsheetArchitect.to_xlsx(data: data, headers: headers) - elsif ["ods"].include?(format) - return SpreadsheetArchitect.to_ods(data: data, headers: headers) - end - end - end - def followers_gestionnaires_emails follows.includes(:gestionnaire).map { |f| f.gestionnaire }.pluck(:email).join(' ') end diff --git a/app/models/follow.rb b/app/models/follow.rb index d554d8fe6..53e234f7e 100644 --- a/app/models/follow.rb +++ b/app/models/follow.rb @@ -3,4 +3,4 @@ class Follow < ActiveRecord::Base belongs_to :dossier validates_uniqueness_of :gestionnaire_id, :scope => :dossier_id -end \ No newline at end of file +end diff --git a/app/models/france_connect_information.rb b/app/models/france_connect_information.rb index d6e64c442..6bf7f7a85 100644 --- a/app/models/france_connect_information.rb +++ b/app/models/france_connect_information.rb @@ -6,4 +6,4 @@ class FranceConnectInformation < ActiveRecord::Base def self.find_by_france_connect_particulier user_info FranceConnectInformation.find_by(france_connect_particulier_id: user_info[:france_connect_particulier_id]) end -end \ No newline at end of file +end diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 1d791e9d8..0ffbc4714 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -130,4 +130,18 @@ class Procedure < ActiveRecord::Base self.dossiers.where.not(state: :draft).size end + def generate_export + exportable_dossiers = dossiers.downloadable + + headers = exportable_dossiers.any? ? exportable_dossiers.first.export_headers : [] + data = exportable_dossiers.map do |dossier| + dossier.convert_specific_array_values_to_string(dossier.data_with_champs) + end + + { + headers: headers, + data: data + } + end + end diff --git a/app/models/procedure_path.rb b/app/models/procedure_path.rb index 579544c12..e68942ff1 100644 --- a/app/models/procedure_path.rb +++ b/app/models/procedure_path.rb @@ -5,4 +5,4 @@ class ProcedurePath < ActiveRecord::Base belongs_to :procedure belongs_to :administrateur -end \ No newline at end of file +end diff --git a/app/models/type_de_champ_private.rb b/app/models/type_de_champ_private.rb index 804bb2e99..1b4e7ed3f 100644 --- a/app/models/type_de_champ_private.rb +++ b/app/models/type_de_champ_private.rb @@ -1,3 +1,3 @@ class TypeDeChampPrivate < TypeDeChamp -end \ No newline at end of file +end diff --git a/app/models/type_de_champ_public.rb b/app/models/type_de_champ_public.rb index 90052b762..8e9fb760d 100644 --- a/app/models/type_de_champ_public.rb +++ b/app/models/type_de_champ_public.rb @@ -1,3 +1,3 @@ class TypeDeChampPublic < TypeDeChamp -end \ No newline at end of file +end diff --git a/app/serializers/cerfa_serializer.rb b/app/serializers/cerfa_serializer.rb index 5580dca10..a5b832936 100644 --- a/app/serializers/cerfa_serializer.rb +++ b/app/serializers/cerfa_serializer.rb @@ -3,4 +3,4 @@ class CerfaSerializer < ActiveModel::Serializer :content_url has_one :user -end \ No newline at end of file +end diff --git a/app/serializers/champ_private_serializer.rb b/app/serializers/champ_private_serializer.rb index be0320f55..b26cf274f 100644 --- a/app/serializers/champ_private_serializer.rb +++ b/app/serializers/champ_private_serializer.rb @@ -2,4 +2,4 @@ class ChampPrivateSerializer < ActiveModel::Serializer attributes :value has_one :type_de_champ -end \ No newline at end of file +end diff --git a/app/serializers/champ_public_serializer.rb b/app/serializers/champ_public_serializer.rb index 528a4f850..66806c982 100644 --- a/app/serializers/champ_public_serializer.rb +++ b/app/serializers/champ_public_serializer.rb @@ -2,4 +2,4 @@ class ChampPublicSerializer < ActiveModel::Serializer attributes :value has_one :type_de_champ -end \ No newline at end of file +end diff --git a/app/serializers/commentaire_serializer.rb b/app/serializers/commentaire_serializer.rb index 5b1407917..587cde833 100644 --- a/app/serializers/commentaire_serializer.rb +++ b/app/serializers/commentaire_serializer.rb @@ -2,4 +2,4 @@ class CommentaireSerializer < ActiveModel::Serializer attributes :email, :body, :created_at -end \ No newline at end of file +end diff --git a/app/serializers/dossiers_serializer.rb b/app/serializers/dossiers_serializer.rb index 0179a0667..e2b53b679 100644 --- a/app/serializers/dossiers_serializer.rb +++ b/app/serializers/dossiers_serializer.rb @@ -1,4 +1,4 @@ class DossiersSerializer < ActiveModel::Serializer attributes :id, :updated_at -end \ No newline at end of file +end diff --git a/app/serializers/entreprise_serializer.rb b/app/serializers/entreprise_serializer.rb index 04d37be4d..b293b3142 100644 --- a/app/serializers/entreprise_serializer.rb +++ b/app/serializers/entreprise_serializer.rb @@ -11,4 +11,4 @@ class EntrepriseSerializer < ActiveModel::Serializer :date_creation, :nom, :prenom -end \ No newline at end of file +end diff --git a/app/serializers/etablissement_csv_serializer.rb b/app/serializers/etablissement_csv_serializer.rb index ec33919bd..1d6e28315 100644 --- a/app/serializers/etablissement_csv_serializer.rb +++ b/app/serializers/etablissement_csv_serializer.rb @@ -2,4 +2,4 @@ class EtablissementCsvSerializer < EtablissementSerializer def adresse object.adresse.chomp.gsub("\r\n", ' ').gsub("\r", '') end -end \ No newline at end of file +end diff --git a/app/serializers/etablissement_serializer.rb b/app/serializers/etablissement_serializer.rb index b0bcd0c19..11b4ce969 100644 --- a/app/serializers/etablissement_serializer.rb +++ b/app/serializers/etablissement_serializer.rb @@ -12,4 +12,4 @@ class EtablissementSerializer < ActiveModel::Serializer :localite, :code_insee_localite -end \ No newline at end of file +end diff --git a/app/serializers/module_api_carto_serializer.rb b/app/serializers/module_api_carto_serializer.rb index 6fbdcc7b1..671b754bf 100644 --- a/app/serializers/module_api_carto_serializer.rb +++ b/app/serializers/module_api_carto_serializer.rb @@ -4,4 +4,4 @@ class ModuleApiCartoSerializer < ActiveModel::Serializer :cadastre -end \ No newline at end of file +end diff --git a/app/serializers/piece_justificative_serializer.rb b/app/serializers/piece_justificative_serializer.rb index 9f999bfe1..1b460e320 100644 --- a/app/serializers/piece_justificative_serializer.rb +++ b/app/serializers/piece_justificative_serializer.rb @@ -4,4 +4,4 @@ class PieceJustificativeSerializer < ActiveModel::Serializer :content_url has_one :user -end \ No newline at end of file +end diff --git a/app/serializers/type_de_champ_serializer.rb b/app/serializers/type_de_champ_serializer.rb index 32f10627c..bec424797 100644 --- a/app/serializers/type_de_champ_serializer.rb +++ b/app/serializers/type_de_champ_serializer.rb @@ -4,4 +4,4 @@ class TypeDeChampSerializer < ActiveModel::Serializer :type_champ, :order_place, :description -end \ No newline at end of file +end diff --git a/app/serializers/user_serializer.rb b/app/serializers/user_serializer.rb index 2e74355ad..4665c89d7 100644 --- a/app/serializers/user_serializer.rb +++ b/app/serializers/user_serializer.rb @@ -1,3 +1,3 @@ class UserSerializer < ActiveModel::Serializer attributes :email -end \ No newline at end of file +end diff --git a/app/services/accompagnateur_service.rb b/app/services/accompagnateur_service.rb index df4e56825..d526167a0 100644 --- a/app/services/accompagnateur_service.rb +++ b/app/services/accompagnateur_service.rb @@ -22,4 +22,4 @@ class AccompagnateurService @accompagnateur.build_default_preferences_list_dossier @procedure.id end -end \ No newline at end of file +end diff --git a/app/services/browser_service.rb b/app/services/browser_service.rb index 09f0837a4..a11c030c1 100644 --- a/app/services/browser_service.rb +++ b/app/services/browser_service.rb @@ -16,4 +16,4 @@ class BrowserService true end -end \ No newline at end of file +end diff --git a/app/services/clamav_service.rb b/app/services/clamav_service.rb index 3d9b54de9..5d1142c96 100644 --- a/app/services/clamav_service.rb +++ b/app/services/clamav_service.rb @@ -13,4 +13,4 @@ class ClamavService return false if response.first.class == ClamAV::VirusResponse true end -end \ No newline at end of file +end diff --git a/app/services/dossier_service.rb b/app/services/dossier_service.rb index 01c1fc6a0..511e4e1d9 100644 --- a/app/services/dossier_service.rb +++ b/app/services/dossier_service.rb @@ -53,4 +53,4 @@ class DossierService false end -end \ No newline at end of file +end diff --git a/app/services/dossiers_list_user_service.rb b/app/services/dossiers_list_user_service.rb index 6013e16af..24ec93b0f 100644 --- a/app/services/dossiers_list_user_service.rb +++ b/app/services/dossiers_list_user_service.rb @@ -40,4 +40,4 @@ class DossiersListUserService def termine @termine ||= @current_devise_profil.dossiers.termine end -end \ No newline at end of file +end diff --git a/app/services/france_connect_salt_service.rb b/app/services/france_connect_salt_service.rb index 9b3a440f2..f1d766e44 100644 --- a/app/services/france_connect_salt_service.rb +++ b/app/services/france_connect_salt_service.rb @@ -14,4 +14,4 @@ class FranceConnectSaltService def salt Digest::MD5.hexdigest(model.france_connect_particulier_id + model.given_name + model.family_name + FRANCE_CONNECT.particulier_secret + DateTime.now.to_date.to_s) end -end \ No newline at end of file +end diff --git a/app/services/geojson_service.rb b/app/services/geojson_service.rb index 785a5d3a0..7bc175fbe 100644 --- a/app/services/geojson_service.rb +++ b/app/services/geojson_service.rb @@ -26,4 +26,4 @@ class GeojsonService polygon.to_json end -end \ No newline at end of file +end diff --git a/app/services/number_service.rb b/app/services/number_service.rb index 24a52f9b2..722b5cac4 100644 --- a/app/services/number_service.rb +++ b/app/services/number_service.rb @@ -2,4 +2,4 @@ class NumberService def self.to_number string string.to_s if Float(string) rescue nil end -end \ No newline at end of file +end diff --git a/app/services/pieces_justificatives_service.rb b/app/services/pieces_justificatives_service.rb index f0402b1da..266c4fffa 100644 --- a/app/services/pieces_justificatives_service.rb +++ b/app/services/pieces_justificatives_service.rb @@ -37,4 +37,4 @@ class PiecesJustificativesService piece_justificative end -end \ No newline at end of file +end diff --git a/app/services/previsualisation_service.rb b/app/services/previsualisation_service.rb index 316c0a4cd..1dc0f7739 100644 --- a/app/services/previsualisation_service.rb +++ b/app/services/previsualisation_service.rb @@ -2,4 +2,4 @@ class PrevisualisationService def self.destroy_all_champs dossier Champ.where(dossier_id: dossier.id, type_de_champ_id: dossier.procedure.types_de_champ.ids).destroy_all end -end \ No newline at end of file +end diff --git a/app/services/switch_devise_profile_service.rb b/app/services/switch_devise_profile_service.rb index 64e0ed29b..dc8d45490 100644 --- a/app/services/switch_devise_profile_service.rb +++ b/app/services/switch_devise_profile_service.rb @@ -22,4 +22,4 @@ class SwitchDeviseProfileService def administrateur_signed_in? !@warden.authenticate(:scope => :administrateur).nil? end -end \ No newline at end of file +end diff --git a/app/services/user_routes_authorization_service.rb b/app/services/user_routes_authorization_service.rb index ef58f28e9..57b6f5af7 100644 --- a/app/services/user_routes_authorization_service.rb +++ b/app/services/user_routes_authorization_service.rb @@ -6,4 +6,4 @@ class UserRoutesAuthorizationService auth[:states].include?(dossier.state.to_sym) && (auth[:api_carto].nil? ? true : auth[:api_carto] == dossier.procedure.use_api_carto) end -end \ No newline at end of file +end diff --git a/app/uploaders/base_uploader.rb b/app/uploaders/base_uploader.rb index f7023f4f2..5ee0d6321 100644 --- a/app/uploaders/base_uploader.rb +++ b/app/uploaders/base_uploader.rb @@ -8,4 +8,4 @@ class BaseUploader < CarrierWave::Uploader::Base '/tmp/tps-dev-cache' end end -end \ No newline at end of file +end diff --git a/app/views/admin/change_dossier_state/change.html.haml b/app/views/admin/change_dossier_state/change.html.haml index 36316f51f..4249e6907 100644 --- a/app/views/admin/change_dossier_state/change.html.haml +++ b/app/views/admin/change_dossier_state/change.html.haml @@ -13,4 +13,4 @@ %br %br - = link_to 'Réaliser un autre dossier', 'change_dossier_state' \ No newline at end of file + = link_to 'Réaliser un autre dossier', 'change_dossier_state' diff --git a/app/views/admin/change_dossier_state/check.html.haml b/app/views/admin/change_dossier_state/check.html.haml index c77a2a61c..796518ae7 100644 --- a/app/views/admin/change_dossier_state/check.html.haml +++ b/app/views/admin/change_dossier_state/check.html.haml @@ -14,4 +14,4 @@ - Dossier.states.each do |state| %option{value: state[0]} =DossierDecorator.case_state_fr state[1] - = f.submit 'Valider' \ No newline at end of file + = f.submit 'Valider' diff --git a/app/views/admin/mail_templates/edit.html.haml b/app/views/admin/mail_templates/edit.html.haml index 35efe2506..31ff8fd7f 100644 --- a/app/views/admin/mail_templates/edit.html.haml +++ b/app/views/admin/mail_templates/edit.html.haml @@ -3,8 +3,8 @@ = @mail_template.class.const_get(:DISPLAYED_NAME) = simple_form_for @mail_template, - as: 'mail_template', - url: admin_procedure_mail_template_path(@procedure, @mail_template.class.slug), + as: 'mail_template', + url: admin_procedure_mail_template_path(@procedure, @mail_template.class.slug), method: :put do |f| .row .col-md-6 diff --git a/app/views/admin/procedures/_informations.html.haml b/app/views/admin/procedures/_informations.html.haml index c379ac924..b1aef83f2 100644 --- a/app/views/admin/procedures/_informations.html.haml +++ b/app/views/admin/procedures/_informations.html.haml @@ -1,4 +1,3 @@ - - if @procedure.locked? .alert.alert-info Cette procédure est publiée, certains éléments de la description ne sont plus modifiables @@ -85,11 +84,8 @@ %h4 Options avancées %label{ for: :auto_archive_on} Archivage automatique le - = f.text_field :auto_archive_on, id: 'auto_archive_on', value: @procedure.auto_archive_on.try{ |d| d.strftime("%d-%m-%Y") }, data: { provide: 'datepicker', 'date-format' => 'dd/mm/yyyy' } + = f.text_field :auto_archive_on, id: 'auto_archive_on', value: @procedure.auto_archive_on.try{ |d| d.strftime("%d-%m-%Y") }, data: { provide: 'datepicker', 'date-language' => 'fr', 'date-format' => 'dd/mm/yyyy' } (à 00h00) %p.help-block %i.fa.fa-info-circle L'archivage automatique de la procédure entrainera le passage en instruction de tous les dossiers en construction. - - - diff --git a/app/views/admin/procedures/_onglets.html.haml b/app/views/admin/procedures/_onglets.html.haml index 99835a39b..ca258a54d 100644 --- a/app/views/admin/procedures/_onglets.html.haml +++ b/app/views/admin/procedures/_onglets.html.haml @@ -14,4 +14,4 @@ %a{:href => "#{url_for :admin_procedures_archived}"} %h5{style: 'color: black'} ="Archivées" -%br \ No newline at end of file +%br diff --git a/app/views/admin/profile/show.html.haml b/app/views/admin/profile/show.html.haml index 615d5331e..2a2cc723c 100644 --- a/app/views/admin/profile/show.html.haml +++ b/app/views/admin/profile/show.html.haml @@ -3,4 +3,4 @@ %hr %p API TOKEN : - = @administrateur.api_token \ No newline at end of file + = @administrateur.api_token diff --git a/app/views/admin/types_de_champ/_fields.html.haml b/app/views/admin/types_de_champ/_fields.html.haml index 01c60cdd9..d69bf51a3 100644 --- a/app/views/admin/types_de_champ/_fields.html.haml +++ b/app/views/admin/types_de_champ/_fields.html.haml @@ -46,5 +46,3 @@ = link_to("", @types_de_champ_facade.delete_url(ff), method: :delete, remote: true, id: "delete_type_de_champ_#{ff.object.id}", class: %w(form-control btn btn-danger fa fa-trash-o) ) %div{ style: 'background-color: rgb(204, 204, 204); height: 1px; margin: 30px auto;' } - - diff --git a/app/views/administrateurs/sessions/new.html.haml b/app/views/administrateurs/sessions/new.html.haml index 4dda316e2..a2b8d0435 100644 --- a/app/views/administrateurs/sessions/new.html.haml +++ b/app/views/administrateurs/sessions/new.html.haml @@ -26,4 +26,4 @@ %br .actions = f.submit "Se connecter", class:'btn btn-primary' - %br \ No newline at end of file + %br diff --git a/app/views/administrations/index.html.haml b/app/views/administrations/index.html.haml index 07351a196..4e83c9cfc 100644 --- a/app/views/administrations/index.html.haml +++ b/app/views/administrations/index.html.haml @@ -16,4 +16,4 @@ %br .text-center - =link_to 'Deconnexion', '/administrations/sign_out', method: :delete \ No newline at end of file + =link_to 'Deconnexion', '/administrations/sign_out', method: :delete diff --git a/app/views/backoffice/dossiers/_followers.html.haml b/app/views/backoffice/dossiers/_followers.html.haml index 11c6c37b5..c9cd2b528 100644 --- a/app/views/backoffice/dossiers/_followers.html.haml +++ b/app/views/backoffice/dossiers/_followers.html.haml @@ -11,5 +11,3 @@ = follower.email - else Aucune personne ne suit ce dossier - - diff --git a/app/views/backoffice/dossiers/_pref_list.html.haml b/app/views/backoffice/dossiers/_pref_list.html.haml index 15fe33893..00fe0f247 100644 --- a/app/views/backoffice/dossiers/_pref_list.html.haml +++ b/app/views/backoffice/dossiers/_pref_list.html.haml @@ -44,4 +44,3 @@ = columns.second[:libelle] %button.btn.btn-default.btn-xs{type: :submit, id: "add_pref_list_#{columns.second[:table]}_#{columns.second[:attr]}"} %i.fa.fa-plus - diff --git a/app/views/backoffice/dossiers/search.html.haml b/app/views/backoffice/dossiers/search.html.haml index 1f6383b21..8700346d4 100644 --- a/app/views/backoffice/dossiers/search.html.haml +++ b/app/views/backoffice/dossiers/search.html.haml @@ -14,4 +14,3 @@ dossiers %div.body = smart_listing_render :search - diff --git a/app/views/backoffice/dossiers/show.html.haml b/app/views/backoffice/dossiers/show.html.haml index cb7d90ad2..be9e5d17d 100644 --- a/app/views/backoffice/dossiers/show.html.haml +++ b/app/views/backoffice/dossiers/show.html.haml @@ -1,2 +1,2 @@ #backoffice_dossier_show.col-xs-12 - = render partial: "dossiers/dossier_show" \ No newline at end of file + = render partial: "dossiers/dossier_show" diff --git a/app/views/cgu/index.html.haml b/app/views/cgu/index.html.haml index 37b16adb6..cb51ab8dc 100644 --- a/app/views/cgu/index.html.haml +++ b/app/views/cgu/index.html.haml @@ -171,4 +171,4 @@ Conception & Réalisation %p SGMAP %p   - %p   \ No newline at end of file + %p   diff --git a/app/views/commencer/archived.html.haml b/app/views/commencer/archived.html.haml index 5ad9c0f18..d550d24e4 100644 --- a/app/views/commencer/archived.html.haml +++ b/app/views/commencer/archived.html.haml @@ -12,4 +12,4 @@ %p Si vous avez déjà déposé un ou plusieurs dossiers : %a.btn.btn-lg.btn-info{href: new_user_session_path} - Accéder à mon espace en ligne. \ No newline at end of file + Accéder à mon espace en ligne. diff --git a/app/views/demo/_list.html.haml b/app/views/demo/_list.html.haml index 5340fcfb1..ebc52f855 100644 --- a/app/views/demo/_list.html.haml +++ b/app/views/demo/_list.html.haml @@ -24,4 +24,4 @@ = smart_listing.paginate = smart_listing.pagination_per_page_links - else - %p Aucune procédure trouvée \ No newline at end of file + %p Aucune procédure trouvée diff --git a/app/views/demo/index.html.haml b/app/views/demo/index.html.haml index 034bbba87..c29e1ff71 100644 --- a/app/views/demo/index.html.haml +++ b/app/views/demo/index.html.haml @@ -1 +1 @@ -= smart_listing_render :procedures \ No newline at end of file += smart_listing_render :procedures diff --git a/app/views/dossiers/_commentaires_files.html.haml b/app/views/dossiers/_commentaires_files.html.haml index ab6d55a1f..86980162a 100644 --- a/app/views/dossiers/_commentaires_files.html.haml +++ b/app/views/dossiers/_commentaires_files.html.haml @@ -20,4 +20,3 @@ - else %h4.text-primary Pas de fichier dans le flux de commentaires. - diff --git a/app/views/dossiers/_download_dossiers.html.haml b/app/views/dossiers/_download_dossiers.html.haml index cfd478d8c..71a010a84 100644 --- a/app/views/dossiers/_download_dossiers.html.haml +++ b/app/views/dossiers/_download_dossiers.html.haml @@ -1,13 +1,8 @@ -%div.dropdown.pull-right#download-menu - - if @facade_data_view.dossiers_to_display.count > 400 - %button.btn.btn-error.dropdown-toggle#dropdownDownloadMenu{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false, class: 'disabled'} - %span{'data-toggle' => :tooltip, "data-placement" => :left, title: 'Pour réduire le nombre de dossiers et ne pas dépasser la limite autorisée de 400, merci de bien vouloir appliquer des filtres.'} - = t('dynamics.backoffice.limit_excess_download_all_dossiers') - - else - %a.dropdown-toggle#dropdownDownloadMenu.button_navbar{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false } - %i.fa.fa-download - = t('dynamics.backoffice.download_all_dossiers') - %span.caret +.dropdown.pull-right#download-menu + %a.dropdown-toggle.button_navbar{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false } + %i.fa.fa-download + Télécharger tous les dossiers + %span.caret %ul.dropdown-menu.dropdown-menu-right %li = link_to backoffice_download_dossiers_tps_path(format: :csv, procedure_id: params[:id]), { class: 'btn btn-sm export-link' } do diff --git a/app/views/dossiers/_infos_dossier.html.haml b/app/views/dossiers/_infos_dossier.html.haml index 91d85a427..39772f897 100644 --- a/app/views/dossiers/_infos_dossier.html.haml +++ b/app/views/dossiers/_infos_dossier.html.haml @@ -25,7 +25,7 @@ - unless @facade.champs.nil? - @facade.champs.each do |champ| - - next if champ.type_champ == 'explication' + - next if champ.type_champ == 'explication' - if champ.type_champ == 'header_section' .row.title-row.margin-top-40 %div.col-xs-3.split-hr diff --git a/app/views/dossiers/_infos_entreprise.html.haml b/app/views/dossiers/_infos_entreprise.html.haml index f1395b513..599c9b7bb 100644 --- a/app/views/dossiers/_infos_entreprise.html.haml +++ b/app/views/dossiers/_infos_entreprise.html.haml @@ -57,4 +57,3 @@ %div.col-xs-12.split-hr - unless @facade.entreprise.rna_information.nil? = render partial: '/dossiers/infos_rna' - diff --git a/app/views/dossiers/_infos_rna.html.haml b/app/views/dossiers/_infos_rna.html.haml index 3a582bac7..0685a2afa 100644 --- a/app/views/dossiers/_infos_rna.html.haml +++ b/app/views/dossiers/_infos_rna.html.haml @@ -20,4 +20,3 @@ %dt Capital déclaration : %dd= @facade.entreprise.rna_information.date_declaration - diff --git a/app/views/dossiers/_invites.html.haml b/app/views/dossiers/_invites.html.haml index a84af7849..88bead8bb 100644 --- a/app/views/dossiers/_invites.html.haml +++ b/app/views/dossiers/_invites.html.haml @@ -15,4 +15,3 @@ = form_tag invites_dossier_path(dossier_id: @facade.dossier.id), method: :post, class: 'form-inline' do = text_field_tag :email, '', class: 'form-control', placeholder: 'Envoyer une invitation' = submit_tag 'Ajouter', class: 'btn btn-success', id: 'send-invitation', data: {confirm: "Envoyer l'invitation ?"} - diff --git a/app/views/dossiers/etapes/etape_2/_individual.html.haml b/app/views/dossiers/etapes/etape_2/_individual.html.haml index 8e8a457e3..48bc13797 100644 --- a/app/views/dossiers/etapes/etape_2/_individual.html.haml +++ b/app/views/dossiers/etapes/etape_2/_individual.html.haml @@ -31,7 +31,7 @@ %label %h4 Date de naissance * - = ff.text_field :birthdate, {class: 'form-control', 'data-provide' => 'datepicker', 'data-date-format' => 'dd/mm/yyyy'} + = ff.date_field :birthdate, {class: 'form-control', placeholder: 'jj/mm/aaaa'} %p %label{ style:'font-weight:normal' } diff --git a/app/views/dossiers/show.html.haml b/app/views/dossiers/show.html.haml index 74930f900..8df80b688 100644 --- a/app/views/dossiers/show.html.haml +++ b/app/views/dossiers/show.html.haml @@ -1 +1 @@ -= render partial: 'show' \ No newline at end of file += render partial: 'show' diff --git a/app/views/france_connect/particulier/check_email.html.haml b/app/views/france_connect/particulier/check_email.html.haml index 9c7200d68..9ec330f2b 100644 --- a/app/views/france_connect/particulier/check_email.html.haml +++ b/app/views/france_connect/particulier/check_email.html.haml @@ -20,4 +20,4 @@ = f.password_field :password, class: "form-control", placeholder: "Entrez votre mot de passe" = hidden_field_tag :fci_id, params[:fci_id] = hidden_field_tag :salt, params[:salt] - = f.submit 'Terminer', class: %w(btn btn-lg btn-success), style: 'margin-top:20px;', id: 'valid_new_fcp' \ No newline at end of file + = f.submit 'Terminer', class: %w(btn btn-lg btn-success), style: 'margin-top:20px;', id: 'valid_new_fcp' diff --git a/app/views/france_connect/particulier/new.html.haml b/app/views/france_connect/particulier/new.html.haml index 0d0ec508e..494d40c6b 100644 --- a/app/views/france_connect/particulier/new.html.haml +++ b/app/views/france_connect/particulier/new.html.haml @@ -29,4 +29,4 @@ = f.text_field :email_france_connect, class: "form-control", placeholder: "Entrez votre email" = hidden_field_tag :fci_id, params[:fci_id] = hidden_field_tag :salt, params[:salt] - = f.submit 'Terminer', class: %w(btn btn-lg btn-success), style: 'margin-top:20px;', id: 'valid_new_fcp' \ No newline at end of file + = f.submit 'Terminer', class: %w(btn btn-lg btn-success), style: 'margin-top:20px;', id: 'valid_new_fcp' diff --git a/app/views/gestionnaires/passwords/edit.html.haml b/app/views/gestionnaires/passwords/edit.html.haml index a0d7ed99c..7e41675f0 100644 --- a/app/views/gestionnaires/passwords/edit.html.haml +++ b/app/views/gestionnaires/passwords/edit.html.haml @@ -28,4 +28,4 @@ %br .actions = f.submit "Changer", class:'btn btn-primary' - %br \ No newline at end of file + %br diff --git a/app/views/gestionnaires/passwords/new.html.haml b/app/views/gestionnaires/passwords/new.html.haml index a8c09db1f..45e53763f 100644 --- a/app/views/gestionnaires/passwords/new.html.haml +++ b/app/views/gestionnaires/passwords/new.html.haml @@ -20,4 +20,4 @@ %br .actions = f.submit "Renvoyer", class:'btn btn-primary' - %br \ No newline at end of file + %br diff --git a/app/views/gestionnaires/shared/_links.html.erb b/app/views/gestionnaires/shared/_links.html.erb index 51021059c..85b2b356f 100644 --- a/app/views/gestionnaires/shared/_links.html.erb +++ b/app/views/gestionnaires/shared/_links.html.erb @@ -1,2 +1 @@ <%= link_to "Mot de passe oublié ?", new_password_path(resource_name) %>
    - diff --git a/app/views/layouts/_ie_lt_10.html.haml b/app/views/layouts/_ie_lt_10.html.haml index 3dcbb4a40..1c2ebbad5 100644 --- a/app/views/layouts/_ie_lt_10.html.haml +++ b/app/views/layouts/_ie_lt_10.html.haml @@ -6,4 +6,3 @@ Votre version d'Internet Explorer est trop ancienne pour être utilisée sur le service TPS. Version minimum : Internet Explorer 10 ="".html_safe - diff --git a/app/views/layouts/_switch_devise_profile_module.html.haml b/app/views/layouts/_switch_devise_profile_module.html.haml index c8f3e6705..53d89fe35 100644 --- a/app/views/layouts/_switch_devise_profile_module.html.haml +++ b/app/views/layouts/_switch_devise_profile_module.html.haml @@ -22,4 +22,4 @@ = link_to(admin_procedures_path) do %i.fa.fa-user   - Administrateur \ No newline at end of file + Administrateur diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index c4e7e86ce..ab1caee1b 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -1,6 +1,7 @@ %html %head %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/ + %meta{ name: "turbolinks-cache-control", content: "no-cache" } %title =t('dynamics.page_title') %meta{'http-equiv' => "X-UA-Compatible", :content => "IE=edge"} diff --git a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_archived.html.haml b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_archived.html.haml index 640ef345e..36682366a 100644 --- a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_archived.html.haml +++ b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_archived.html.haml @@ -1 +1 @@ -=render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_index' \ No newline at end of file +=render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_index' diff --git a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_draft.html.haml b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_draft.html.haml index 640ef345e..36682366a 100644 --- a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_draft.html.haml +++ b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_draft.html.haml @@ -1 +1 @@ -=render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_index' \ No newline at end of file +=render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_index' diff --git a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml index 8a05145b8..fe18dc18d 100644 --- a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml +++ b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml @@ -1,4 +1,3 @@ - %div#first-block %div.en-cours -unless @procedure.logo.blank? diff --git a/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_search.html.haml b/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_search.html.haml index 7d73865db..b4114cab1 100644 --- a/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_search.html.haml +++ b/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_search.html.haml @@ -1,2 +1 @@ = render partial: 'layouts/left_panels/left_panel_backoffice_dossierscontroller_index' - diff --git a/app/views/layouts/left_panels/_left_panel_cgucontroller_index.html.haml b/app/views/layouts/left_panels/_left_panel_cgucontroller_index.html.haml index 199d3cb54..dacf8761d 100644 --- a/app/views/layouts/left_panels/_left_panel_cgucontroller_index.html.haml +++ b/app/views/layouts/left_panels/_left_panel_cgucontroller_index.html.haml @@ -51,4 +51,3 @@ %div.procedure_list_element %div.procedure_list_element - diff --git a/app/views/layouts/left_panels/_left_panel_default.html.haml b/app/views/layouts/left_panels/_left_panel_default.html.haml index a8cd3d0b8..d6c626d3a 100644 --- a/app/views/layouts/left_panels/_left_panel_default.html.haml +++ b/app/views/layouts/left_panels/_left_panel_default.html.haml @@ -1,2 +1,2 @@ %div - Default Left Panel \ No newline at end of file + Default Left Panel diff --git a/app/views/layouts/left_panels/_left_panel_users_dossiers_invitescontroller_show.html.haml b/app/views/layouts/left_panels/_left_panel_users_dossiers_invitescontroller_show.html.haml index 4b47b5093..69f564d57 100644 --- a/app/views/layouts/left_panels/_left_panel_users_dossiers_invitescontroller_show.html.haml +++ b/app/views/layouts/left_panels/_left_panel_users_dossiers_invitescontroller_show.html.haml @@ -1 +1 @@ -= render partial: 'layouts/left_panels/left_panel_users_recapitulatifcontroller_show' \ No newline at end of file += render partial: 'layouts/left_panels/left_panel_users_recapitulatifcontroller_show' diff --git a/app/views/layouts/left_panels/_search_area.html.haml b/app/views/layouts/left_panels/_search_area.html.haml index 3dfc58840..09577eaa6 100644 --- a/app/views/layouts/left_panels/_search_area.html.haml +++ b/app/views/layouts/left_panels/_search_area.html.haml @@ -4,4 +4,4 @@ = text_field_tag('q', "#{@search_terms unless @search_terms.nil? }", id: 'q', placeholder: "Recherchez parmi tous vos dossiers", class:'form-control') %span.input-group-btn %button.btn.btn-default{ id:'search_button' } - %i.fa.fa-search \ No newline at end of file + %i.fa.fa-search diff --git a/app/views/layouts/mailer.text.haml b/app/views/layouts/mailer.text.haml index f1d0cc898..0a90f092c 100644 --- a/app/views/layouts/mailer.text.haml +++ b/app/views/layouts/mailer.text.haml @@ -1 +1 @@ -= yield \ No newline at end of file += yield diff --git a/app/views/layouts/navbars/_navbar_admin_gestionnairescontroller_index.html.haml b/app/views/layouts/navbars/_navbar_admin_gestionnairescontroller_index.html.haml index b1e64c1e2..1ff68e01a 100644 --- a/app/views/layouts/navbars/_navbar_admin_gestionnairescontroller_index.html.haml +++ b/app/views/layouts/navbars/_navbar_admin_gestionnairescontroller_index.html.haml @@ -1 +1 @@ -= render partial: 'layouts/navbars/navbar_admin_procedurescontroller_index' \ No newline at end of file += render partial: 'layouts/navbars/navbar_admin_procedurescontroller_index' diff --git a/app/views/layouts/navbars/_navbar_admin_procedurescontroller_archived.html.haml b/app/views/layouts/navbars/_navbar_admin_procedurescontroller_archived.html.haml index b1e64c1e2..1ff68e01a 100644 --- a/app/views/layouts/navbars/_navbar_admin_procedurescontroller_archived.html.haml +++ b/app/views/layouts/navbars/_navbar_admin_procedurescontroller_archived.html.haml @@ -1 +1 @@ -= render partial: 'layouts/navbars/navbar_admin_procedurescontroller_index' \ No newline at end of file += render partial: 'layouts/navbars/navbar_admin_procedurescontroller_index' diff --git a/app/views/layouts/navbars/_navbar_admin_procedurescontroller_draft.html.haml b/app/views/layouts/navbars/_navbar_admin_procedurescontroller_draft.html.haml index b1e64c1e2..1ff68e01a 100644 --- a/app/views/layouts/navbars/_navbar_admin_procedurescontroller_draft.html.haml +++ b/app/views/layouts/navbars/_navbar_admin_procedurescontroller_draft.html.haml @@ -1 +1 @@ -= render partial: 'layouts/navbars/navbar_admin_procedurescontroller_index' \ No newline at end of file += render partial: 'layouts/navbars/navbar_admin_procedurescontroller_index' diff --git a/app/views/layouts/navbars/_navbar_admin_profilecontroller_show.html.haml b/app/views/layouts/navbars/_navbar_admin_profilecontroller_show.html.haml index b1e64c1e2..1ff68e01a 100644 --- a/app/views/layouts/navbars/_navbar_admin_profilecontroller_show.html.haml +++ b/app/views/layouts/navbars/_navbar_admin_profilecontroller_show.html.haml @@ -1 +1 @@ -= render partial: 'layouts/navbars/navbar_admin_procedurescontroller_index' \ No newline at end of file += render partial: 'layouts/navbars/navbar_admin_procedurescontroller_index' diff --git a/app/views/layouts/navbars/_navbar_log_options.html.haml b/app/views/layouts/navbars/_navbar_log_options.html.haml index a5d8ca7e1..56d847d1c 100644 --- a/app/views/layouts/navbars/_navbar_log_options.html.haml +++ b/app/views/layouts/navbars/_navbar_log_options.html.haml @@ -12,4 +12,4 @@ = render partial: 'layouts/credentials' -else #sign_in.col-xs-2 - = link_to "Connexion", new_user_session_path, :class => 'btn btn-lg btn-primary' \ No newline at end of file + = link_to "Connexion", new_user_session_path, :class => 'btn btn-lg btn-primary' diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index dbe92beaa..2326d629d 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -85,5 +85,3 @@ = link_to 'Demander un accès administrateur', 'https://tps.apientreprise.fr/users/dossiers/new?procedure_id=31', {class: 'btn btn-lg background-tps', target: '_blank'} .split-hr-left - - diff --git a/app/views/users/carte/_init_carto.html.haml b/app/views/users/carte/_init_carto.html.haml index fdb2f12cc..8516fe270 100644 --- a/app/views/users/carte/_init_carto.html.haml +++ b/app/views/users/carte/_init_carto.html.haml @@ -1,4 +1,3 @@ %script{type: 'text/javascript'} ="var dossier_id =#{dossier.id}" - $(document).on('page:load', initCarto); - $(document).ready(initCarto); \ No newline at end of file + $(document).on('turbolinks:load', initCarto); diff --git a/app/views/users/carte/_map.html.haml b/app/views/users/carte/_map.html.haml index 1f165dccf..db98c073b 100644 --- a/app/views/users/carte/_map.html.haml +++ b/app/views/users/carte/_map.html.haml @@ -10,4 +10,3 @@ #cadastre.list %h3.text-warning Cadastres %ul - diff --git a/app/views/users/description/_pieces_justificatives.html.haml b/app/views/users/description/_pieces_justificatives.html.haml index 5dce35c68..c7905af28 100644 --- a/app/views/users/description/_pieces_justificatives.html.haml +++ b/app/views/users/description/_pieces_justificatives.html.haml @@ -1,4 +1,3 @@ - %table.table - if dossier.procedure.cerfa_flag %tr diff --git a/app/views/users/description/champs/_civilite.html.haml b/app/views/users/description/champs/_civilite.html.haml index c6fcf6525..70071d5a8 100644 --- a/app/views/users/description/champs/_civilite.html.haml +++ b/app/views/users/description/champs/_civilite.html.haml @@ -5,4 +5,4 @@ %label.radio-inline = radio_button_tag "champs['#{champ.id}']", "Mme", champ.value == 'Mme' - Madame \ No newline at end of file + Madame diff --git a/app/views/users/description/champs/_datetime.html.haml b/app/views/users/description/champs/_datetime.html.haml index 557704485..b79cb05c6 100644 --- a/app/views/users/description/champs/_datetime.html.haml +++ b/app/views/users/description/champs/_datetime.html.haml @@ -18,4 +18,4 @@ h - if num.to_i%5 == 0 %option{value: num, selected: (:selected if champ.same_minute?(num))} = num -min \ No newline at end of file +min diff --git a/app/views/users/description/champs/_yes_no.html.haml b/app/views/users/description/champs/_yes_no.html.haml index 58cfac7e4..e914d1bb3 100644 --- a/app/views/users/description/champs/_yes_no.html.haml +++ b/app/views/users/description/champs/_yes_no.html.haml @@ -5,4 +5,4 @@ %label.radio-inline = radio_button_tag "champs['#{champ.id}']", "false", champ.value == 'false' - Non \ No newline at end of file + Non diff --git a/app/views/users/description/show.html.haml b/app/views/users/description/show.html.haml index 74930f900..8df80b688 100644 --- a/app/views/users/description/show.html.haml +++ b/app/views/users/description/show.html.haml @@ -1 +1 @@ -= render partial: 'show' \ No newline at end of file += render partial: 'show' diff --git a/app/views/users/dossiers/add_siret/show.html.haml b/app/views/users/dossiers/add_siret/show.html.haml index 56d7c3162..9cf12e4a3 100644 --- a/app/views/users/dossiers/add_siret/show.html.haml +++ b/app/views/users/dossiers/add_siret/show.html.haml @@ -1,2 +1,2 @@ .row.etape.etape_2 - = render partial: 'dossiers/etapes/etape_2/entreprise' \ No newline at end of file + = render partial: 'dossiers/etapes/etape_2/entreprise' diff --git a/app/views/users/dossiers/show.html.haml b/app/views/users/dossiers/show.html.haml index 299da569b..914452765 100644 --- a/app/views/users/dossiers/show.html.haml +++ b/app/views/users/dossiers/show.html.haml @@ -1 +1 @@ -= render partial: '/dossiers/show' \ No newline at end of file += render partial: '/dossiers/show' diff --git a/app/views/users/passwords/edit.html.haml b/app/views/users/passwords/edit.html.haml index ac6f21c5f..204370695 100644 --- a/app/views/users/passwords/edit.html.haml +++ b/app/views/users/passwords/edit.html.haml @@ -57,4 +57,4 @@ %br .actions = f.submit "Changer", class:'btn btn-primary' - %br \ No newline at end of file + %br diff --git a/app/views/users/passwords/new.html.haml b/app/views/users/passwords/new.html.haml index 93b4becbd..79e45d45c 100644 --- a/app/views/users/passwords/new.html.haml +++ b/app/views/users/passwords/new.html.haml @@ -49,4 +49,4 @@ %br .actions = f.submit "Renvoyer", class:'btn btn-primary' - %br \ No newline at end of file + %br diff --git a/app/views/users/registrations/new.html.haml b/app/views/users/registrations/new.html.haml index d8270c4a9..9a0fd5934 100644 --- a/app/views/users/registrations/new.html.haml +++ b/app/views/users/registrations/new.html.haml @@ -61,4 +61,4 @@ %br .actions = f.submit "S'enregistrer", class:'btn btn-primary' - %br \ No newline at end of file + %br diff --git a/app/views/users/sessions/new.html.haml b/app/views/users/sessions/new.html.haml index 7b242bab4..30847c93e 100644 --- a/app/views/users/sessions/new.html.haml +++ b/app/views/users/sessions/new.html.haml @@ -25,6 +25,3 @@ - if @user.email != DemoEmails[:gestionnaire] && @user.email != DemoEmails[:admin] = render "users/shared/links" - - - diff --git a/app/views/users/siret/index.html.haml b/app/views/users/siret/index.html.haml index 246f1cd91..a56f21779 100644 --- a/app/views/users/siret/index.html.haml +++ b/app/views/users/siret/index.html.haml @@ -1,4 +1,3 @@ .container.center#users_siret_index .row = render partial: 'pro' - diff --git a/circle.yml b/circle.yml index 5352df363..5f073c4fd 100644 --- a/circle.yml +++ b/circle.yml @@ -1,3 +1,3 @@ database: override: - - bundle exec rake db:drop db:create db:migrate RAILS_ENV=test \ No newline at end of file + - bundle exec rake db:drop db:create db:migrate RAILS_ENV=test diff --git a/config/database.yml b/config/database.yml index 00832cfbc..76a34a338 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,4 +1,3 @@ - development: adapter: postgresql encoding: unicode diff --git a/config/deploy.rb b/config/deploy.rb index bc9960d27..c3eb4342d 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -85,7 +85,6 @@ set :shared_paths, [ "config/initializers/super_admin.rb", "config/unicorn.rb", "config/initializers/raven.rb", - "config/locales/dynamics/fr.yml", 'config/france_connect.yml', 'config/initializers/mailjet.rb', 'config/initializers/storage_url.rb', diff --git a/config/initializers/active_model_serializer.rb b/config/initializers/active_model_serializer.rb index 8cedccfe2..d4702c3d5 100644 --- a/config/initializers/active_model_serializer.rb +++ b/config/initializers/active_model_serializer.rb @@ -1 +1 @@ -ActiveModelSerializers.config.default_includes = '**' \ No newline at end of file +ActiveModelSerializers.config.default_includes = '**' diff --git a/config/initializers/browser.rb b/config/initializers/browser.rb index d00cff7ca..1c850f41e 100644 --- a/config/initializers/browser.rb +++ b/config/initializers/browser.rb @@ -1,3 +1,3 @@ BROWSER = Hashie::Mash.new ({ value: nil - }) \ No newline at end of file + }) diff --git a/config/initializers/clamav.rb b/config/initializers/clamav.rb index 13df38f7a..24122c84a 100644 --- a/config/initializers/clamav.rb +++ b/config/initializers/clamav.rb @@ -1,4 +1,4 @@ CLAMAV = Hashie::Mash.new ({ mock?: true, response: true - }) \ No newline at end of file + }) diff --git a/config/initializers/demo_emails.rb b/config/initializers/demo_emails.rb index e9e52c963..79a9df5bd 100644 --- a/config/initializers/demo_emails.rb +++ b/config/initializers/demo_emails.rb @@ -2,4 +2,4 @@ DemoEmails = { user: 'demo@tps.fr', gestionnaire: 'gestionnaire@apientreprise.fr', admin: 'admin@tps.fr' -} \ No newline at end of file +} diff --git a/config/initializers/features.yml b/config/initializers/features.yml index efd3e5324..e91fb5346 100644 --- a/config/initializers/features.yml +++ b/config/initializers/features.yml @@ -1 +1 @@ -remote_storage: false \ No newline at end of file +remote_storage: false diff --git a/config/initializers/logstasher.rb b/config/initializers/logstasher.rb index 0591d543b..04877b73a 100644 --- a/config/initializers/logstasher.rb +++ b/config/initializers/logstasher.rb @@ -1,5 +1,5 @@ if LogStasher.enabled LogStasher.add_custom_fields do |fields| - fields[:type] = "tps" + fields[:type] = "tps" end end diff --git a/config/initializers/open_id_connect.rb b/config/initializers/open_id_connect.rb index ff380c704..333374682 100644 --- a/config/initializers/open_id_connect.rb +++ b/config/initializers/open_id_connect.rb @@ -2,4 +2,4 @@ OpenIDConnect.debug! OpenIDConnect.logger = Rails.logger Rack::OAuth2.logger = Rails.logger # Webfinger.logger = Rails.logger -SWD.logger = Rails.logger \ No newline at end of file +SWD.logger = Rails.logger diff --git a/config/initializers/openstack_version.rb b/config/initializers/openstack_version.rb index e71e1f19f..0ebdec459 100644 --- a/config/initializers/openstack_version.rb +++ b/config/initializers/openstack_version.rb @@ -1 +1 @@ -OpenStack::VERSION = 2.0 \ No newline at end of file +OpenStack::VERSION = 2.0 diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index f5dd670d6..a61ed5e57 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -4,4 +4,3 @@ Sidekiq.configure_server do |config| schedule_file = "config/schedule.yml" Sidekiq::Cron::Job.load_from_hash YAML.load_file(schedule_file) end - diff --git a/config/initializers/storage_url.rb b/config/initializers/storage_url.rb index 0a1cf0f93..65165ab2e 100644 --- a/config/initializers/storage_url.rb +++ b/config/initializers/storage_url.rb @@ -1 +1 @@ -STORAGE_URL = "https://storage.apientreprise.fr/" + CarrierWave::Uploader::Base.fog_directory + '/' \ No newline at end of file +STORAGE_URL = "https://storage.apientreprise.fr/" + CarrierWave::Uploader::Base.fog_directory + '/' diff --git a/config/initializers/urls.rb b/config/initializers/urls.rb index bb49d1437..801c2d941 100644 --- a/config/initializers/urls.rb +++ b/config/initializers/urls.rb @@ -2,4 +2,4 @@ if Rails.env.production? SIADEURL = 'https://api.apientreprise.fr' else SIADEURL = 'https://api-dev.apientreprise.fr' -end \ No newline at end of file +end diff --git a/config/initializers/will_paginate.rb b/config/initializers/will_paginate.rb index 454b8abfb..5afa4b2c6 100644 --- a/config/initializers/will_paginate.rb +++ b/config/initializers/will_paginate.rb @@ -1,3 +1,3 @@ require 'will_paginate' -WillPaginate.per_page = 12 \ No newline at end of file +WillPaginate.per_page = 12 diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index d1c57ae1f..6dd683b39 100755 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -59,4 +59,4 @@ fr: not_locked: "n'était pas verrouillé(e)" not_saved: one: "1 erreur a empêché ce(tte) %{resource} d'être sauvegardé(e) :" - other: "%{count} erreurs ont empêché ce(tte) %{resource} d'être sauvegardé(e) :" \ No newline at end of file + other: "%{count} erreurs ont empêché ce(tte) %{resource} d'être sauvegardé(e) :" diff --git a/config/locales/dynamics/fr.yml b/config/locales/dynamics/fr.yml index ecc9c2b8d..72c3aa0f2 100644 --- a/config/locales/dynamics/fr.yml +++ b/config/locales/dynamics/fr.yml @@ -1,6 +1,6 @@ fr: dynamics: - page_title: TPS - Téléprocédures simplifiées + page_title: 'TPS - Téléprocédures simplifiées' contact_email: contact@tps.apientreprise.fr users: connexion_title: Connexion @@ -12,8 +12,6 @@ fr: pref_list: title: 'Gestion de colonnes affichées' description: 'Ce menu vous permet de choisir les différentes colonnes que vous souhaitez voir apparaître dans votre interface de suivi des dossiers.' - download_all_dossiers: 'Télécharger mes dossiers' - limit_excess_download_all_dossiers: 'Limite de dossiers fixée à 400 pour le téléchargement' format_csv: 'Au format CSV' format_xlsx: 'Au format XLSX' format_ods: 'Au format ODS' diff --git a/config/locales/models/dossier/fr.yml b/config/locales/models/dossier/fr.yml index 9b4b80766..562adc110 100644 --- a/config/locales/models/dossier/fr.yml +++ b/config/locales/models/dossier/fr.yml @@ -30,4 +30,3 @@ fr: blank: 'doit être rempli' date_previsionnelle: blank: 'doit être remplie' - diff --git a/config/locales/models/individual/fr.yml b/config/locales/models/individual/fr.yml index 88aba8e77..60c02a37c 100644 --- a/config/locales/models/individual/fr.yml +++ b/config/locales/models/individual/fr.yml @@ -15,5 +15,3 @@ fr: blank: 'doit être rempli' birthdate: blank: 'doit être rempli' - - diff --git a/config/locales/models/procedure/fr.yml b/config/locales/models/procedure/fr.yml index f6b8afe4a..399f8da40 100644 --- a/config/locales/models/procedure/fr.yml +++ b/config/locales/models/procedure/fr.yml @@ -9,4 +9,4 @@ fr: description: blank: Attribut manquant lien_demarche: - blank: Attribut manquant \ No newline at end of file + blank: Attribut manquant diff --git a/config/locales/smart_listing.fr.yml b/config/locales/smart_listing.fr.yml index b5448ecac..d7c99854e 100644 --- a/config/locales/smart_listing.fr.yml +++ b/config/locales/smart_listing.fr.yml @@ -12,4 +12,4 @@ fr: pagination: per_page: Par page unlimited: Unlimited - total: Total \ No newline at end of file + total: Total diff --git a/config/sidekiq.yml b/config/sidekiq.yml index 9431fe006..0fe0c4360 100644 --- a/config/sidekiq.yml +++ b/config/sidekiq.yml @@ -4,4 +4,4 @@ staging: production: :concurrency: 2 :queues: - - default \ No newline at end of file + - default diff --git a/db/migrate/20150813095939_rename_dossier_pdfintof_piece_jointe.rb b/db/migrate/20150813095939_rename_dossier_pdfintof_piece_jointe.rb index 43bf00714..17f80be02 100644 --- a/db/migrate/20150813095939_rename_dossier_pdfintof_piece_jointe.rb +++ b/db/migrate/20150813095939_rename_dossier_pdfintof_piece_jointe.rb @@ -1,5 +1,5 @@ class RenameDossierPdfintofPieceJointe < ActiveRecord::Migration def change - rename_table :dossier_pdfs, :pieces_jointes + rename_table :dossier_pdfs, :pieces_jointes end end diff --git a/lib/tasks/cloud_storage.rake b/lib/tasks/cloud_storage.rake index 23ef7b5a4..92789fa65 100644 --- a/lib/tasks/cloud_storage.rake +++ b/lib/tasks/cloud_storage.rake @@ -111,4 +111,4 @@ namespace :cloudstorage do } end -end \ No newline at end of file +end diff --git a/spec/controllers/admin/accompagnateurs_controller_spec.rb b/spec/controllers/admin/accompagnateurs_controller_spec.rb index 748e3a815..945398f8d 100644 --- a/spec/controllers/admin/accompagnateurs_controller_spec.rb +++ b/spec/controllers/admin/accompagnateurs_controller_spec.rb @@ -31,4 +31,4 @@ describe Admin::AccompagnateursController, type: :controller do end end end -end \ No newline at end of file +end diff --git a/spec/controllers/admin/pieces_justificatives_controller_spec.rb b/spec/controllers/admin/pieces_justificatives_controller_spec.rb index 53f3212b7..8520a3186 100644 --- a/spec/controllers/admin/pieces_justificatives_controller_spec.rb +++ b/spec/controllers/admin/pieces_justificatives_controller_spec.rb @@ -168,4 +168,4 @@ describe Admin::PiecesJustificativesController, type: :controller do end end end -end \ No newline at end of file +end diff --git a/spec/controllers/admin/previsualisations_controller_spec.rb b/spec/controllers/admin/previsualisations_controller_spec.rb index b418b672e..6ca5b8768 100644 --- a/spec/controllers/admin/previsualisations_controller_spec.rb +++ b/spec/controllers/admin/previsualisations_controller_spec.rb @@ -13,4 +13,4 @@ describe Admin::PrevisualisationsController, type: :controller do it { expect(subject.status).to eq(200) } end -end \ No newline at end of file +end diff --git a/spec/controllers/admin/profile_controller_spec.rb b/spec/controllers/admin/profile_controller_spec.rb index 556c04316..9e9babf8c 100644 --- a/spec/controllers/admin/profile_controller_spec.rb +++ b/spec/controllers/admin/profile_controller_spec.rb @@ -2,4 +2,4 @@ require 'spec_helper' describe Admin::ProfileController, type: :controller do it { expect(described_class).to be < AdminController } -end \ No newline at end of file +end diff --git a/spec/controllers/administrateur/sessions_controller_spec.rb b/spec/controllers/administrateur/sessions_controller_spec.rb index 2499e2e0e..5eb92ecf0 100644 --- a/spec/controllers/administrateur/sessions_controller_spec.rb +++ b/spec/controllers/administrateur/sessions_controller_spec.rb @@ -29,4 +29,4 @@ describe Administrateurs::SessionsController, type: :controller do describe '.create' do it { expect(described_class).to be < Sessions::SessionsController } end -end \ No newline at end of file +end diff --git a/spec/controllers/api_controller_spec.rb b/spec/controllers/api_controller_spec.rb index a5ff814e5..c0c92a9ec 100644 --- a/spec/controllers/api_controller_spec.rb +++ b/spec/controllers/api_controller_spec.rb @@ -27,4 +27,4 @@ describe APIController, type: :controller do it { expect(subject.status).to eq(200) } end end -end \ No newline at end of file +end diff --git a/spec/controllers/backoffice/dossiers/procedure_controller_spec.rb b/spec/controllers/backoffice/dossiers/procedure_controller_spec.rb index 3dc9f34bd..411e53121 100644 --- a/spec/controllers/backoffice/dossiers/procedure_controller_spec.rb +++ b/spec/controllers/backoffice/dossiers/procedure_controller_spec.rb @@ -55,4 +55,4 @@ describe Backoffice::Dossiers::ProcedureController, type: :controller do it { is_expected.to redirect_to backoffice_dossiers_procedure_path(id: procedure.id) } end -end \ No newline at end of file +end diff --git a/spec/controllers/cgu_controller_spec.rb b/spec/controllers/cgu_controller_spec.rb index d49b16ed2..c656c0ca1 100644 --- a/spec/controllers/cgu_controller_spec.rb +++ b/spec/controllers/cgu_controller_spec.rb @@ -7,4 +7,4 @@ describe CguController, type: :controller do it { expect(subject.status).to eq 200 } end -end \ No newline at end of file +end diff --git a/spec/controllers/demo_controller_spec.rb b/spec/controllers/demo_controller_spec.rb index 6541d1efc..4411a2848 100644 --- a/spec/controllers/demo_controller_spec.rb +++ b/spec/controllers/demo_controller_spec.rb @@ -15,4 +15,4 @@ describe DemoController, type: :controller do it { expect(subject.status).to eq 302 } end end -end \ No newline at end of file +end diff --git a/spec/controllers/gestionnaires/sessions_controller_spec.rb b/spec/controllers/gestionnaires/sessions_controller_spec.rb index ff30e6cb7..6266e429f 100644 --- a/spec/controllers/gestionnaires/sessions_controller_spec.rb +++ b/spec/controllers/gestionnaires/sessions_controller_spec.rb @@ -29,4 +29,4 @@ describe Gestionnaires::SessionsController, type: :controller do describe '.create' do it { expect(described_class).to be < Sessions::SessionsController } end -end \ No newline at end of file +end diff --git a/spec/controllers/ping_controller_spec.rb b/spec/controllers/ping_controller_spec.rb index dfa381838..91a05ee16 100644 --- a/spec/controllers/ping_controller_spec.rb +++ b/spec/controllers/ping_controller_spec.rb @@ -16,4 +16,4 @@ describe PingController, type: :controller do it { expect(subject.status).to eq 500 } end end -end \ No newline at end of file +end diff --git a/spec/controllers/sessions/sessions_controller_spec.rb b/spec/controllers/sessions/sessions_controller_spec.rb index 7fa9c0d66..d2e58dd57 100644 --- a/spec/controllers/sessions/sessions_controller_spec.rb +++ b/spec/controllers/sessions/sessions_controller_spec.rb @@ -60,4 +60,4 @@ describe Sessions::SessionsController, type: :controller do post :create end end -end \ No newline at end of file +end diff --git a/spec/controllers/users/carte_controller_shared_example.rb b/spec/controllers/users/carte_controller_shared_example.rb index d6d0eb0a5..6e5fe11a1 100644 --- a/spec/controllers/users/carte_controller_shared_example.rb +++ b/spec/controllers/users/carte_controller_shared_example.rb @@ -271,4 +271,4 @@ shared_examples 'carte_controller_spec' do it { expect(subject['QPCODE1234']['geometry']['coordinates']).to eq([[[[2.38715792094576, 48.8723062632126], [2.38724851642619, 48.8721392348061]]]]) } end end -end \ No newline at end of file +end diff --git a/spec/controllers/users/dossiers/invites_controller_spec.rb b/spec/controllers/users/dossiers/invites_controller_spec.rb index f45c34326..e80f94632 100644 --- a/spec/controllers/users/dossiers/invites_controller_spec.rb +++ b/spec/controllers/users/dossiers/invites_controller_spec.rb @@ -75,4 +75,4 @@ describe Users::Dossiers::InvitesController, type: :controller do it { is_expected.to redirect_to users_dossiers_path } end end -end \ No newline at end of file +end diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index c04cdf687..a5a7b8558 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -28,4 +28,3 @@ describe UsersController, type: :controller do end end end - diff --git a/spec/decorators/procedure_decorator_spec.rb b/spec/decorators/procedure_decorator_spec.rb index d94025473..26540d80f 100644 --- a/spec/decorators/procedure_decorator_spec.rb +++ b/spec/decorators/procedure_decorator_spec.rb @@ -26,4 +26,4 @@ describe ProcedureDecorator do it { expect(subject.cadastre).to be_falsey } end -end \ No newline at end of file +end diff --git a/spec/decorators/procedures_decorator_spec.rb b/spec/decorators/procedures_decorator_spec.rb index be53606b2..e298b1180 100644 --- a/spec/decorators/procedures_decorator_spec.rb +++ b/spec/decorators/procedures_decorator_spec.rb @@ -17,4 +17,4 @@ describe ProceduresDecorator do it { expect(subject.offset).not_to be_nil } it { expect(subject.total_entries).not_to be_nil } it { expect(subject.total_pages).not_to be_nil } -end \ No newline at end of file +end diff --git a/spec/decorators/type_de_champ_decorator_spec.rb b/spec/decorators/type_de_champ_decorator_spec.rb index dd5d75307..88779c782 100644 --- a/spec/decorators/type_de_champ_decorator_spec.rb +++ b/spec/decorators/type_de_champ_decorator_spec.rb @@ -1,4 +1,3 @@ - require 'spec_helper' describe TypeDeChampDecorator do diff --git a/spec/decorators/type_de_piece_justificative_decorator_spec.rb b/spec/decorators/type_de_piece_justificative_decorator_spec.rb index 45e0d401d..f9b9d3a61 100644 --- a/spec/decorators/type_de_piece_justificative_decorator_spec.rb +++ b/spec/decorators/type_de_piece_justificative_decorator_spec.rb @@ -51,4 +51,4 @@ describe TypeDePieceJustificativeDecorator do end -end \ No newline at end of file +end diff --git a/spec/facades/dossiers_list_facades_spec.rb b/spec/facades/dossiers_list_facades_spec.rb index f10826990..455550a4a 100644 --- a/spec/facades/dossiers_list_facades_spec.rb +++ b/spec/facades/dossiers_list_facades_spec.rb @@ -133,4 +133,4 @@ describe DossiersListFacades do end end end -end \ No newline at end of file +end diff --git a/spec/factories/administrateur.rb b/spec/factories/administrateur.rb index aa3aaadbc..05cfc88a2 100644 --- a/spec/factories/administrateur.rb +++ b/spec/factories/administrateur.rb @@ -4,4 +4,4 @@ FactoryGirl.define do email { generate(:administrateur_email) } password 'password' end -end \ No newline at end of file +end diff --git a/spec/factories/administration.rb b/spec/factories/administration.rb index 8313af360..216a5b70c 100644 --- a/spec/factories/administration.rb +++ b/spec/factories/administration.rb @@ -4,4 +4,4 @@ FactoryGirl.define do email { generate(:administration_email) } password 'password' end -end \ No newline at end of file +end diff --git a/spec/factories/gestionnaire.rb b/spec/factories/gestionnaire.rb index 63004f8e9..88043eecf 100644 --- a/spec/factories/gestionnaire.rb +++ b/spec/factories/gestionnaire.rb @@ -4,4 +4,4 @@ FactoryGirl.define do email { generate(:gestionnaire_email) } password 'password' end -end \ No newline at end of file +end diff --git a/spec/factories/user.rb b/spec/factories/user.rb index 4612d1e12..184da4b0a 100644 --- a/spec/factories/user.rb +++ b/spec/factories/user.rb @@ -4,4 +4,4 @@ FactoryGirl.define do email { generate(:user_email) } password 'password' end -end \ No newline at end of file +end diff --git a/spec/features/backoffice/lateral_page_pref_list_dossier_backoffice_spec.rb b/spec/features/backoffice/lateral_page_pref_list_dossier_backoffice_spec.rb index 4de962762..13c176b46 100644 --- a/spec/features/backoffice/lateral_page_pref_list_dossier_backoffice_spec.rb +++ b/spec/features/backoffice/lateral_page_pref_list_dossier_backoffice_spec.rb @@ -77,4 +77,4 @@ feature 'usage of pref list dossier lateral panel', js: true do end end end -end \ No newline at end of file +end diff --git a/spec/features/backoffice/lateral_page_pref_list_dossier_by_procedure_backoffice_spec.rb b/spec/features/backoffice/lateral_page_pref_list_dossier_by_procedure_backoffice_spec.rb index 34c9dac39..0255d9a46 100644 --- a/spec/features/backoffice/lateral_page_pref_list_dossier_by_procedure_backoffice_spec.rb +++ b/spec/features/backoffice/lateral_page_pref_list_dossier_by_procedure_backoffice_spec.rb @@ -79,4 +79,4 @@ feature 'usage of pref list dossier lateral panel by procedure', js: true do end end end -end \ No newline at end of file +end diff --git a/spec/features/description_page/upload_piece_justificative_spec.rb b/spec/features/description_page/upload_piece_justificative_spec.rb index 1ee2c1360..4f999037c 100644 --- a/spec/features/description_page/upload_piece_justificative_spec.rb +++ b/spec/features/description_page/upload_piece_justificative_spec.rb @@ -54,4 +54,4 @@ feature 'user is on description page' do end end end -end \ No newline at end of file +end diff --git a/spec/features/users/complete_demande_spec.rb b/spec/features/users/complete_demande_spec.rb index dc6145cce..6554a4004 100644 --- a/spec/features/users/complete_demande_spec.rb +++ b/spec/features/users/complete_demande_spec.rb @@ -90,4 +90,4 @@ feature 'user path for dossier creation' do expect(page).to have_content('La procédure n\'existe pas') end end -end \ No newline at end of file +end diff --git a/spec/features/users/dossier_creation_spec.rb b/spec/features/users/dossier_creation_spec.rb index d1a970275..4adf0e190 100644 --- a/spec/features/users/dossier_creation_spec.rb +++ b/spec/features/users/dossier_creation_spec.rb @@ -9,19 +9,36 @@ feature 'As a User I wanna create a dossier' do let(:procedure_with_siret) { create(:procedure, :published, :with_api_carto, :with_type_de_champ, :with_two_type_de_piece_justificative) } let(:procedure_for_individual) { create(:procedure, :published, :for_individual, :with_api_carto, :with_type_de_champ, :with_two_type_de_piece_justificative) } - scenario 'Identification for individual' do - login_as user, scope: :user - visit commencer_path(procedure_path: procedure_for_individual.path) - fill_in 'dossier_individual_attributes_nom', with: 'Nom' - fill_in 'dossier_individual_attributes_prenom', with: 'Prenom' - fill_in 'dossier_individual_attributes_birthdate', with: '14/10/1987' - find(:css, "#dossier_autorisation_donnees[value='1']").set(true) - page.find_by_id('etape_suivante').click - expect(page).to have_current_path(users_dossier_carte_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) - page.find_by_id('etape_suivante').click - fill_in "champs_#{procedure_for_individual.dossiers.last.champs.first.id}", with: 'contenu du champ 1' - page.find_by_id('suivant').click - expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) + context 'Identification for individual' do + before do + login_as user, scope: :user + visit commencer_path(procedure_path: procedure_for_individual.path) + fill_in 'dossier_individual_attributes_nom', with: 'Nom' + fill_in 'dossier_individual_attributes_prenom', with: 'Prenom' + find(:css, "#dossier_autorisation_donnees[value='1']").set(true) + end + + scenario "with a proper date input field for birthdate (type='date' supported)" do + fill_in 'dossier_individual_attributes_birthdate', with: '1987-10-14' + page.find_by_id('etape_suivante').click + expect(page).to have_current_path(users_dossier_carte_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) + page.find_by_id('etape_suivante').click + fill_in "champs_#{procedure_for_individual.dossiers.last.champs.first.id}", with: 'contenu du champ 1' + page.find_by_id('suivant').click + expect(user.dossiers.first.individual.birthdate).to eq("14/10/1987") + expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) + end + + scenario "with a basic text input field for birthdate (type='date' unsupported)" do + fill_in 'dossier_individual_attributes_birthdate', with: '14/10/1987' + page.find_by_id('etape_suivante').click + expect(page).to have_current_path(users_dossier_carte_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) + page.find_by_id('etape_suivante').click + fill_in "champs_#{procedure_for_individual.dossiers.last.champs.first.id}", with: 'contenu du champ 1' + page.find_by_id('suivant').click + expect(user.dossiers.first.individual.birthdate).to eq("14/10/1987") + expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) + end end scenario 'Identification through siret', vcr: {cassette_name: 'search_ban_paris'}, js: true do diff --git a/spec/features/users/drawing_a_zone_with_freedraw_spec.rb b/spec/features/users/drawing_a_zone_with_freedraw_spec.rb index 78e7c25be..b7a4f8495 100644 --- a/spec/features/users/drawing_a_zone_with_freedraw_spec.rb +++ b/spec/features/users/drawing_a_zone_with_freedraw_spec.rb @@ -70,4 +70,4 @@ feature 'drawing a zone with freedraw' do end end end -end \ No newline at end of file +end diff --git a/spec/fixtures/cassettes/admin_procedure_edit.yml b/spec/fixtures/cassettes/admin_procedure_edit.yml index a4f8431cf..40ff5e50e 100644 --- a/spec/fixtures/cassettes/admin_procedure_edit.yml +++ b/spec/fixtures/cassettes/admin_procedure_edit.yml @@ -1339,6 +1339,6 @@ http_interactions: body: encoding: UTF-8 string: '' - http_version: + http_version: recorded_at: Wed, 29 Jun 2016 14:09:51 GMT recorded_with: VCR 3.0.1 diff --git a/spec/fixtures/cassettes/ban_search_nothing.yml b/spec/fixtures/cassettes/ban_search_nothing.yml index 5e36790fd..b2f2c63a5 100644 --- a/spec/fixtures/cassettes/ban_search_nothing.yml +++ b/spec/fixtures/cassettes/ban_search_nothing.yml @@ -37,6 +37,6 @@ http_interactions: string: '{"limit": 1, "attribution": "BAN", "version": "draft", "licence": "ODbL 1.0", "query": "je recherche pas grand chose", "type": "FeatureCollection", "features": []}' - http_version: + http_version: recorded_at: Fri, 16 Dec 2016 14:17:40 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/cassettes/ban_search_paris.yml b/spec/fixtures/cassettes/ban_search_paris.yml index d61951ec1..8de476502 100644 --- a/spec/fixtures/cassettes/ban_search_paris.yml +++ b/spec/fixtures/cassettes/ban_search_paris.yml @@ -40,6 +40,6 @@ http_interactions: "6", "citycode": "75056", "name": "Paris", "city": "Paris", "postcode": "75000", "context": "75, \u00cele-de-France", "score": 1.0, "label": "Paris", "id": "75056", "type": "city", "population": "2244"}, "type": "Feature"}]}' - http_version: + http_version: recorded_at: Fri, 16 Dec 2016 14:16:43 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/cassettes/bano_octo.yml b/spec/fixtures/cassettes/bano_octo.yml index ddf8b0b82..9f8ac6c40 100644 --- a/spec/fixtures/cassettes/bano_octo.yml +++ b/spec/fixtures/cassettes/bano_octo.yml @@ -42,6 +42,6 @@ http_interactions: "score": 0.7561038961038961, "label": "50 Avenue des Champs \u00c9lys\u00e9es 75008 Paris", "city": "Paris", "housenumber": "50", "street": "Avenue des Champs \u00c9lys\u00e9es"}, "type": "Feature"}]}' - http_version: + http_version: recorded_at: Fri, 16 Dec 2016 16:22:23 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/cassettes/bano_search_nothing.yml b/spec/fixtures/cassettes/bano_search_nothing.yml index 597c71025..8eb0b3adf 100644 --- a/spec/fixtures/cassettes/bano_search_nothing.yml +++ b/spec/fixtures/cassettes/bano_search_nothing.yml @@ -37,6 +37,6 @@ http_interactions: string: '{"limit": 5, "attribution": "BAN", "version": "draft", "licence": "ODbL 1.0", "query": "je recherche pas grand chose", "type": "FeatureCollection", "features": []}' - http_version: + http_version: recorded_at: Fri, 16 Dec 2016 16:45:53 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/cassettes/bano_search_paris.yml b/spec/fixtures/cassettes/bano_search_paris.yml index 571c86ffe..dd4aee086 100644 --- a/spec/fixtures/cassettes/bano_search_paris.yml +++ b/spec/fixtures/cassettes/bano_search_paris.yml @@ -58,6 +58,6 @@ http_interactions: "Bourgueil", "context": "37, Indre-et-Loire, Centre Val-de-Loire", "score": 0.8235454545454545, "label": "Paris Buton 37140 Bourgueil", "id": "37031_X027_0a5e7a", "type": "locality"}, "type": "Feature"}]}' - http_version: + http_version: recorded_at: Fri, 16 Dec 2016 16:43:34 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/cassettes/call_geo_api_departements.yml b/spec/fixtures/cassettes/call_geo_api_departements.yml index c33905578..a1ff74c3c 100644 --- a/spec/fixtures/cassettes/call_geo_api_departements.yml +++ b/spec/fixtures/cassettes/call_geo_api_departements.yml @@ -65,6 +65,6 @@ http_interactions: N+uzXJ5dyOK7NmjOGeG9r6owU3bcGdur3h5zt88s8GDrk5Vr0XU0k+55AF0I s/CpjoySBUCFk5yHTSkj07kVuSy0/cFiguvi0tfujRJMsSy4M3O7F8FmkmAW irOb5smWiq/kLAnauNjrmi/YzF+Jb/8A5ygzwMEMAAA= - http_version: + http_version: recorded_at: Wed, 19 Oct 2016 09:31:33 GMT recorded_with: VCR 3.0.1 diff --git a/spec/fixtures/cassettes/complete_demande_spec.yml b/spec/fixtures/cassettes/complete_demande_spec.yml index 95841bbea..caa571ec8 100644 --- a/spec/fixtures/cassettes/complete_demande_spec.yml +++ b/spec/fixtures/cassettes/complete_demande_spec.yml @@ -96,6 +96,6 @@ http_interactions: z2SJApORaZaCKuZpGNKAsDNaNNYF8frdH6I8w6Js5tIqibc3b9/wLh0nHWuy u7m8BrwmSaXSFXPVdiuu4KgxpMJ7B/xNLcQ0Vj0N3/vm97RkD/8BJlYZoPAL AAA= - http_version: + http_version: recorded_at: Thu, 09 Jun 2016 14:42:08 GMT recorded_with: VCR 3.0.1 diff --git a/spec/fixtures/cassettes/geoapi_departements.yml b/spec/fixtures/cassettes/geoapi_departements.yml index 6eee3d2bf..5f827279d 100644 --- a/spec/fixtures/cassettes/geoapi_departements.yml +++ b/spec/fixtures/cassettes/geoapi_departements.yml @@ -65,6 +65,6 @@ http_interactions: N+uzXJ5dyOK7NmjOGeG9r6owU3bcGdur3h5zt88s8GDrk5Vr0XU0k+55AF0I s/CpjoySBUCFk5yHTSkj07kVuSy0/cFiguvi0tfujRJMsSy4M3O7F8FmkmAW irOb5smWiq/kLAnauNjrmi/YzF+Jb/8A5ygzwMEMAAA= - http_version: + http_version: recorded_at: Fri, 16 Dec 2016 09:25:37 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/cassettes/geoapi_regions.yml b/spec/fixtures/cassettes/geoapi_regions.yml index 2de462046..7519677b9 100644 --- a/spec/fixtures/cassettes/geoapi_regions.yml +++ b/spec/fixtures/cassettes/geoapi_regions.yml @@ -52,6 +52,6 @@ http_interactions: vITGxXAG/udbcvktKR9lhzxL3kZ2CdrHLaLQNQanrShRewzREPVXVG5grpaj Hu0xKImVOPQ8p41BK/ZaalE21LW2a0dUXmEWropi1MOpu8XE5syx61FMwqvq i/4Biby7eZXIu+w90GBswyPlSI7F3fRqb99L+pyA3QIAAA== - http_version: + http_version: recorded_at: Fri, 16 Dec 2016 09:24:25 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/cassettes/github_lastrelease.yml b/spec/fixtures/cassettes/github_lastrelease.yml index 163e5bdea..251adc06c 100644 --- a/spec/fixtures/cassettes/github_lastrelease.yml +++ b/spec/fixtures/cassettes/github_lastrelease.yml @@ -88,6 +88,6 @@ http_interactions: MsC0IZpxkADm3tm4bNnpxecB+3J2Ef3+/N3FkL1DrTrQ4K5WqIy667x3ahI8 qCS5omo3ShFsugfGRc9Uf2pgQWVa90f7eBvTqToJNRraltKlBsbyUYwGlx3I EAhlg5VDW2QyJPYzKNZKRjtiOlVgqzz+4AgY6e7UtgdoZtf/AIfUb6aECAAA - http_version: + http_version: recorded_at: Thu, 15 Dec 2016 15:48:21 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/cassettes/search_ban_paris.yml b/spec/fixtures/cassettes/search_ban_paris.yml index b13b545b5..40973bfb0 100644 --- a/spec/fixtures/cassettes/search_ban_paris.yml +++ b/spec/fixtures/cassettes/search_ban_paris.yml @@ -43,7 +43,7 @@ http_interactions: "label": "50 Avenue des Champs \u00c9lys\u00e9es 75008 Paris", "city": "Paris", "housenumber": "50", "street": "Avenue des Champs \u00c9lys\u00e9es"}, "type": "Feature"}]}' - http_version: + http_version: recorded_at: Tue, 03 Jan 2017 13:00:54 GMT - request: method: get @@ -88,6 +88,6 @@ http_interactions: "label": "50 Avenue des Champs \u00c9lys\u00e9es 75008 Paris", "city": "Paris", "housenumber": "50", "street": "Avenue des Champs \u00c9lys\u00e9es"}, "type": "Feature"}]}' - http_version: + http_version: recorded_at: Tue, 03 Jan 2017 13:00:55 GMT recorded_with: VCR 3.0.3 diff --git a/spec/lib/carto/geo_api/driver_spec.rb b/spec/lib/carto/geo_api/driver_spec.rb index 25ca47dd5..417bf0ba9 100644 --- a/spec/lib/carto/geo_api/driver_spec.rb +++ b/spec/lib/carto/geo_api/driver_spec.rb @@ -32,4 +32,4 @@ describe Carto::GeoAPI::Driver do it { is_expected.to eq 'https://geo.api.gouv.fr/regions' } end -end \ No newline at end of file +end diff --git a/spec/lib/file_size_validator_spec.rb b/spec/lib/file_size_validator_spec.rb index aafde89c2..081b107ff 100644 --- a/spec/lib/file_size_validator_spec.rb +++ b/spec/lib/file_size_validator_spec.rb @@ -45,4 +45,4 @@ describe FileSizeValidator, lib: true do expect(note.errors).not_to have_key(:content) end end -end \ No newline at end of file +end diff --git a/spec/lib/siade/exercices_adapter_spec.rb b/spec/lib/siade/exercices_adapter_spec.rb index 99cbb858d..b6735b4c3 100644 --- a/spec/lib/siade/exercices_adapter_spec.rb +++ b/spec/lib/siade/exercices_adapter_spec.rb @@ -30,4 +30,4 @@ describe SIADE::ExercicesAdapter do expect(subject[0][:date_fin_exercice_timestamp]).to eq(1388444400) end end -end \ No newline at end of file +end diff --git a/spec/models/champ_private_spec.rb b/spec/models/champ_private_spec.rb index 635cf4fbf..733505696 100644 --- a/spec/models/champ_private_spec.rb +++ b/spec/models/champ_private_spec.rb @@ -4,4 +4,4 @@ describe ChampPrivate do require 'models/champ_shared_example.rb' it_should_behave_like "champ_spec" -end \ No newline at end of file +end diff --git a/spec/models/champ_public_spec.rb b/spec/models/champ_public_spec.rb index b52c3e1f6..a981702c7 100644 --- a/spec/models/champ_public_spec.rb +++ b/spec/models/champ_public_spec.rb @@ -4,4 +4,4 @@ describe ChampPublic do require 'models/champ_shared_example.rb' it_should_behave_like "champ_spec" -end \ No newline at end of file +end diff --git a/spec/models/champ_shared_example.rb b/spec/models/champ_shared_example.rb index fdef3929a..9922fd38d 100644 --- a/spec/models/champ_shared_example.rb +++ b/spec/models/champ_shared_example.rb @@ -41,4 +41,4 @@ shared_examples 'champ_spec' do it { expect(subject).to include '99 - Étranger' } end -end \ No newline at end of file +end diff --git a/spec/models/champ_spec.rb b/spec/models/champ_spec.rb index 66114be2d..868001afc 100644 --- a/spec/models/champ_spec.rb +++ b/spec/models/champ_spec.rb @@ -4,4 +4,4 @@ describe Champ do require 'models/champ_shared_example.rb' it_should_behave_like "champ_spec" -end \ No newline at end of file +end diff --git a/spec/models/dossier_spec.rb b/spec/models/dossier_spec.rb index 182b8c60b..ddc469b50 100644 --- a/spec/models/dossier_spec.rb +++ b/spec/models/dossier_spec.rb @@ -603,7 +603,6 @@ describe Dossier do let(:dossier) { create(:dossier, :with_entreprise, user: user, procedure: procedure, follows: [follow], initiated_at: date1, received_at: date2, processed_at: date3) } describe '#export_headers' do - subject { dossier.export_headers } it { expect(subject).to include(:description) } @@ -611,7 +610,6 @@ describe Dossier do end describe '#data_with_champs' do - subject { dossier.data_with_champs } it { expect(subject[0]).to be_a_kind_of(Integer) } @@ -670,7 +668,6 @@ describe Dossier do it { expect(subject[:entreprise_prenom]).to be_nil } end - describe '#Dossier.to_xlsx' do let!(:procedure) { create(:procedure) } let!(:dossier) { create(:dossier, :with_entreprise, user: user, procedure: procedure) } @@ -966,4 +963,17 @@ describe Dossier do end end + + describe '.downloadable' do + let(:procedure) { create(:procedure) } + let!(:dossier) { create(:dossier, :with_entreprise, procedure: procedure, state: :draft) } + let!(:dossier2) { create(:dossier, :with_entreprise, procedure: procedure, state: :initiated) } + let!(:dossier3) { create(:dossier, :with_entreprise, procedure: procedure, state: :received) } + + subject { procedure.dossiers.downloadable } + + it { is_expected.not_to include(dossier)} + it { is_expected.to include(dossier2)} + it { is_expected.to include(dossier3)} + end end diff --git a/spec/models/france_connect_particulier_client_spec.rb b/spec/models/france_connect_particulier_client_spec.rb index 5828d87d1..7f3168d13 100644 --- a/spec/models/france_connect_particulier_client_spec.rb +++ b/spec/models/france_connect_particulier_client_spec.rb @@ -14,4 +14,4 @@ describe FranceConnectParticulierClient do end end end -end \ No newline at end of file +end diff --git a/spec/models/invite_spec.rb b/spec/models/invite_spec.rb index a2d376db2..29b53f41a 100644 --- a/spec/models/invite_spec.rb +++ b/spec/models/invite_spec.rb @@ -35,4 +35,4 @@ describe Invite do end end -end \ No newline at end of file +end diff --git a/spec/models/procedure_path_spec.rb b/spec/models/procedure_path_spec.rb index eaf75f411..fa7ceb7d4 100644 --- a/spec/models/procedure_path_spec.rb +++ b/spec/models/procedure_path_spec.rb @@ -35,4 +35,4 @@ describe ProcedurePath do end end -end \ No newline at end of file +end diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index c841cb0cb..a020e5677 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -256,4 +256,29 @@ describe Procedure do it { is_expected.to eq 2 } end + + describe '#generate_export' do + let(:procedure) { create :procedure } + subject { procedure.generate_export } + + context 'when there are no dossiers' do + it { expect(subject[:data]).to eq([]) } + it { expect(subject[:headers]).to eq([]) } + end + + context 'when there are some dossiers' do + let!(:dossier){ create(:dossier, procedure: procedure, state: 'initiated') } + let!(:dossier2){ create(:dossier, procedure: procedure, state: 'closed') } + + it { expect(subject[:data].size).to eq(2) } + it { expect(subject[:headers]).to eq(dossier.export_headers) } + end + + context 'when there is a draft dossier' do + let!(:dossier_not_exportable){ create(:dossier, procedure: procedure, state: 'draft') } + + it { expect(subject[:data]).to eq([]) } + it { expect(subject[:headers]).to eq([]) } + end + end end diff --git a/spec/models/type_de_champ_shared_example.rb b/spec/models/type_de_champ_shared_example.rb index e4ca86e0f..c1b37a8f6 100644 --- a/spec/models/type_de_champ_shared_example.rb +++ b/spec/models/type_de_champ_shared_example.rb @@ -52,4 +52,4 @@ shared_examples 'type_de_champ_spec' do it { expect(type_de_champ_no_1.field_for_list?).to be_falsey } it { expect(type_de_champ_no_2.field_for_list?).to be_falsey } end -end \ No newline at end of file +end diff --git a/spec/models/type_de_champ_spec.rb b/spec/models/type_de_champ_spec.rb index 9649c4078..702b8d64f 100644 --- a/spec/models/type_de_champ_spec.rb +++ b/spec/models/type_de_champ_spec.rb @@ -6,4 +6,3 @@ describe TypeDeChamp do it_should_behave_like "type_de_champ_spec" end - diff --git a/spec/services/accompagnateur_service_spec.rb b/spec/services/accompagnateur_service_spec.rb index 54ae39dda..0d01b9f29 100644 --- a/spec/services/accompagnateur_service_spec.rb +++ b/spec/services/accompagnateur_service_spec.rb @@ -63,4 +63,4 @@ describe AccompagnateurService do end end end -end \ No newline at end of file +end diff --git a/spec/services/clamav_service_spec.rb b/spec/services/clamav_service_spec.rb index 36bf7e20a..440d8862e 100644 --- a/spec/services/clamav_service_spec.rb +++ b/spec/services/clamav_service_spec.rb @@ -17,4 +17,4 @@ describe ClamavService do subject end end -end \ No newline at end of file +end diff --git a/spec/services/france_connect_salt_service_spec.rb b/spec/services/france_connect_salt_service_spec.rb index 7e2a19e8c..ff77a1ef7 100644 --- a/spec/services/france_connect_salt_service_spec.rb +++ b/spec/services/france_connect_salt_service_spec.rb @@ -38,4 +38,4 @@ describe FranceConnectSaltService do it { is_expected.to be_falsey } end end -end \ No newline at end of file +end diff --git a/spec/services/france_connect_service_spec.rb b/spec/services/france_connect_service_spec.rb index 799f5eed1..7374ecb32 100644 --- a/spec/services/france_connect_service_spec.rb +++ b/spec/services/france_connect_service_spec.rb @@ -40,4 +40,4 @@ describe FranceConnectService do expect(subject.france_connect_particulier_id).to eq(france_connect_particulier_id) end end -end \ No newline at end of file +end diff --git a/spec/services/notification_service_spec.rb b/spec/services/notification_service_spec.rb index d091c69b2..df7fe448b 100644 --- a/spec/services/notification_service_spec.rb +++ b/spec/services/notification_service_spec.rb @@ -26,4 +26,4 @@ describe NotificationService do describe 'text_for_notif' do pending end -end \ No newline at end of file +end diff --git a/spec/services/previsualisation_service_spec.rb b/spec/services/previsualisation_service_spec.rb index 2fcc4ee00..81f84e5ab 100644 --- a/spec/services/previsualisation_service_spec.rb +++ b/spec/services/previsualisation_service_spec.rb @@ -28,4 +28,4 @@ describe PrevisualisationService do it { expect(Champ.first.type_de_champ).to eq procedure_2.types_de_champ.first } end end -end \ No newline at end of file +end diff --git a/spec/services/user_routes_authorization_service_spec.rb b/spec/services/user_routes_authorization_service_spec.rb index b67b463be..231e4685b 100644 --- a/spec/services/user_routes_authorization_service_spec.rb +++ b/spec/services/user_routes_authorization_service_spec.rb @@ -158,4 +158,4 @@ describe UserRoutesAuthorizationService do end end end -end \ No newline at end of file +end diff --git a/spec/support/controller_helpers.rb b/spec/support/controller_helpers.rb index 97f2a814b..de422d081 100644 --- a/spec/support/controller_helpers.rb +++ b/spec/support/controller_helpers.rb @@ -1,4 +1,3 @@ - RSpec.configure do |config| # config.include Devise::TestHelpers, type: :controller end diff --git a/spec/support/factory_girl.rb b/spec/support/factory_girl.rb index 9794b58a0..eec437fb3 100644 --- a/spec/support/factory_girl.rb +++ b/spec/support/factory_girl.rb @@ -1,3 +1,3 @@ RSpec.configure do |config| config.include FactoryGirl::Syntax::Methods -end \ No newline at end of file +end diff --git a/spec/uploaders/base_uploader_spec.rb b/spec/uploaders/base_uploader_spec.rb index 0aa66297d..d3c9b1f2e 100644 --- a/spec/uploaders/base_uploader_spec.rb +++ b/spec/uploaders/base_uploader_spec.rb @@ -19,4 +19,4 @@ describe BaseUploader do it { is_expected.to eq '/tmp/tps-cache' } end end -end \ No newline at end of file +end diff --git a/spec/uploaders/remote_downloader_spec.rb b/spec/uploaders/remote_downloader_spec.rb index f2e7e7770..0f0629ee3 100644 --- a/spec/uploaders/remote_downloader_spec.rb +++ b/spec/uploaders/remote_downloader_spec.rb @@ -9,4 +9,4 @@ describe RemoteDownloader do describe '#url' do it { expect(subject.url).to eq 'https://storage.apientreprise.fr/tps_dev/file_name.pdf' } end -end \ No newline at end of file +end diff --git a/spec/views/admin/accompagnateurs/show.html.haml_spec.rb b/spec/views/admin/accompagnateurs/show.html.haml_spec.rb index 624bdc8a9..4593795ec 100644 --- a/spec/views/admin/accompagnateurs/show.html.haml_spec.rb +++ b/spec/views/admin/accompagnateurs/show.html.haml_spec.rb @@ -58,4 +58,4 @@ describe 'admin/accompagnateurs/show.html.haml', type: :view do it { expect(rendered).to have_content(accompagnateur_1.email) } it { expect(rendered).to have_content(accompagnateur_2.email) } end -end \ No newline at end of file +end diff --git a/spec/views/admin/gestionnaires/index.html.haml_spec.rb b/spec/views/admin/gestionnaires/index.html.haml_spec.rb index 9c57ee063..0ec5c815b 100644 --- a/spec/views/admin/gestionnaires/index.html.haml_spec.rb +++ b/spec/views/admin/gestionnaires/index.html.haml_spec.rb @@ -31,4 +31,4 @@ describe 'admin/gestionnaires/index.html.haml', type: :view do end it { expect(rendered).to match(/gest\d+@plop.com/) } end -end \ No newline at end of file +end diff --git a/spec/views/admin/procedures/edit.html.haml_spec.rb b/spec/views/admin/procedures/edit.html.haml_spec.rb index ba4492a5c..3e928fe08 100644 --- a/spec/views/admin/procedures/edit.html.haml_spec.rb +++ b/spec/views/admin/procedures/edit.html.haml_spec.rb @@ -14,4 +14,4 @@ describe 'admin/procedures/edit.html.haml', type: :view, vcr: { cassette_name: ' expect(rendered).to have_selector('#preview_procedure_logo') end end -end \ No newline at end of file +end diff --git a/spec/views/admin/procedures/show.html.haml_spec.rb b/spec/views/admin/procedures/show.html.haml_spec.rb index a6de0fb07..d974cac37 100644 --- a/spec/views/admin/procedures/show.html.haml_spec.rb +++ b/spec/views/admin/procedures/show.html.haml_spec.rb @@ -79,4 +79,4 @@ describe 'admin/procedures/show.html.haml', type: :view do end -end \ No newline at end of file +end diff --git a/spec/views/admin/profile/show.html.haml_spec.rb b/spec/views/admin/profile/show.html.haml_spec.rb index 631cc3d92..e6b0bed8d 100644 --- a/spec/views/admin/profile/show.html.haml_spec.rb +++ b/spec/views/admin/profile/show.html.haml_spec.rb @@ -8,4 +8,4 @@ describe 'admin/profile/show.html.haml', type: :view do render end it { expect(rendered).to have_content(token) } -end \ No newline at end of file +end diff --git a/spec/views/admin/types_de_piece_justificative/show.html.haml_spec.rb b/spec/views/admin/types_de_piece_justificative/show.html.haml_spec.rb index 6434a7ddd..73b1be675 100644 --- a/spec/views/admin/types_de_piece_justificative/show.html.haml_spec.rb +++ b/spec/views/admin/types_de_piece_justificative/show.html.haml_spec.rb @@ -45,4 +45,4 @@ describe 'admin/pieces_justificatives/show.html.haml', type: :view do it { expect(subject).not_to have_css('#btn_down_1') } end end -end \ No newline at end of file +end diff --git a/spec/views/backoffice/dossiers/index_html.haml_spec.rb b/spec/views/backoffice/dossiers/index_html.haml_spec.rb index 3de97bd7a..4951907d1 100644 --- a/spec/views/backoffice/dossiers/index_html.haml_spec.rb +++ b/spec/views/backoffice/dossiers/index_html.haml_spec.rb @@ -90,4 +90,4 @@ describe 'backoffice/dossiers/index.html.haml', type: :view do it { is_expected.to have_content('plep') } it { is_expected.to have_content('plup') } it { is_expected.to have_content('plyp') } -end \ No newline at end of file +end diff --git a/spec/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_show_spec.rb b/spec/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_show_spec.rb index 53be1ef91..dd61a7578 100644 --- a/spec/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_show_spec.rb +++ b/spec/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_show_spec.rb @@ -152,4 +152,4 @@ describe 'layouts/left_panels/_left_panel_backoffice_dossierscontroller_show.htm end end -end \ No newline at end of file +end diff --git a/spec/views/layouts/left_panels/_left_panel_users_recapitulatifcontroller_show_spec.rb b/spec/views/layouts/left_panels/_left_panel_users_recapitulatifcontroller_show_spec.rb index d696534d3..7996e3d1f 100644 --- a/spec/views/layouts/left_panels/_left_panel_users_recapitulatifcontroller_show_spec.rb +++ b/spec/views/layouts/left_panels/_left_panel_users_recapitulatifcontroller_show_spec.rb @@ -83,4 +83,4 @@ describe 'layouts/left_panels/_left_panel_users_recapitulatifcontroller_show.htm end end -end \ No newline at end of file +end diff --git a/spec/views/users/carte/show.html.haml_spec.rb b/spec/views/users/carte/show.html.haml_spec.rb index a20b907f0..b30733034 100644 --- a/spec/views/users/carte/show.html.haml_spec.rb +++ b/spec/views/users/carte/show.html.haml_spec.rb @@ -4,11 +4,11 @@ describe 'users/carte/show.html.haml', type: :view do let(:state) { 'draft' } let(:dossier) { create(:dossier, state: state) } let(:dossier_id) { dossier.id } - + before do assign(:dossier, dossier) end - + context 'sur la page de la carte d\'une demande' do before do render @@ -20,23 +20,23 @@ describe 'users/carte/show.html.haml', type: :view do it 'la carte est bien présente' do expect(rendered).to have_selector('#map') end - + context 'présence des inputs hidden' do it 'stockage du json des polygons dessinés' do expect(rendered).to have_selector('input[type=hidden][id=json_latlngs][name=json_latlngs]', visible: false) end end - + context 'si la page précédente n\'est pas recapitulatif' do it 'le bouton "Etape suivante" est présent' do expect(rendered).to have_selector('#etape_suivante') end - + # it 'le bouton Etape suivante possède un onclick correct' do # expect(rendered).to have_selector('input[type=submit][id=etape_suivante][onclick=\'submit_check_draw(event)\']') # end end - + context 'si la page précédente est recapitularif' do let(:state) { 'initiated' } @@ -47,11 +47,11 @@ describe 'users/carte/show.html.haml', type: :view do it 'le bouton "Modification terminé" est présent' do expect(rendered).to have_selector('#modification_terminee') end - + # it 'le bouton "Modification terminé" possède un onclick correct' do # expect(rendered).to have_selector('input[type=submit][id=modification_terminee][onclick=\'submit_check_draw(event)\']') # end - + it 'le lien de retour au récapitulatif est présent' do expect(rendered).to have_selector("a[href='/users/dossiers/#{dossier_id}/recapitulatif']") end diff --git a/spec/views/users/dossiers/index_html.haml_spec.rb b/spec/views/users/dossiers/index_html.haml_spec.rb index fcd4f141f..09e787e99 100644 --- a/spec/views/users/dossiers/index_html.haml_spec.rb +++ b/spec/views/users/dossiers/index_html.haml_spec.rb @@ -100,4 +100,4 @@ describe 'users/dossiers/index.html.haml', type: :view do let(:decorate_dossier_at_check) { decorate_dossier_invite } end end -end \ No newline at end of file +end diff --git a/spec/views/users/sessions/new.html.haml_spec.rb b/spec/views/users/sessions/new.html.haml_spec.rb index d7f6989b9..6e1dbeec9 100644 --- a/spec/views/users/sessions/new.html.haml_spec.rb +++ b/spec/views/users/sessions/new.html.haml_spec.rb @@ -31,4 +31,4 @@ describe 'users/sessions/new.html.haml', type: :view do it { expect(rendered).to have_selector('#form_login #logo_tps') } end -end \ No newline at end of file +end diff --git a/spec/views/users/siret/index.html.haml_spec.rb b/spec/views/users/siret/index.html.haml_spec.rb index 4ba45d6c6..49de45ecc 100644 --- a/spec/views/users/siret/index.html.haml_spec.rb +++ b/spec/views/users/siret/index.html.haml_spec.rb @@ -32,4 +32,4 @@ describe 'users/siret/index.html.haml', type: :view do expect(rendered).to have_content(procedure.libelle) end end -end \ No newline at end of file +end diff --git a/vendor/assets/javascripts/clipper.js b/vendor/assets/javascripts/clipper.js index 391912924..690959b74 100644 --- a/vendor/assets/javascripts/clipper.js +++ b/vendor/assets/javascripts/clipper.js @@ -241,4 +241,4 @@ f,g,h,l,k,m,p,q,r,s,t,u,v,x=a.length,y=b*b,w=[];for(c=0;cn)return 0;b&&(a[n]=a[0],n++);for(;--n;)g=a[n],k=g.X,g=g.Y,h=a[n-1],m=h.X,h=h.Y,d+=e((k-m)*(k-m)+(g-h)*(g-h));b&&a.pop();return d/c};d.JS.PerimeterOfPaths= function(a,b,c){c||(c=1);for(var e=0,f=0;f created on 2015-01-23 */ -!function(a){"use strict";var b=function(a,b){var c=this.convertLatLngs(a);this.points=c.points,this.maxDistance=isFinite(b)?b:c.maxDistance+1};b.prototype={points:[],maxDistance:0,convertLatLngs:function(a){var b=0,c=a.map(function(c,d){if(c.x=c.lng,c.y=this.lat2y(c),a[d-1]){var e=this.distanceTo(c,a[d-1]);e>b&&(b=e)}return c}.bind(this));return{points:c,maxDistance:b}},distanceTo:function(b,c){var d=6378137,e=a.PI/180,f=(c.lat-b.lat)*e,g=(c.lng-b.lng)*e,h=b.lat*e,i=c.lat*e,j=a.sin(f/2),k=a.sin(g/2),l=j*j+k*k*a.cos(h)*a.cos(i);return 2*d*a.atan2(a.sqrt(l),a.sqrt(1-l))},getLatLngs:function(){if(this.length<=3)return this.points;var a=this.points.slice().sort(function(a,b){return a.y-b.y}),b=[],c=a[0],d=c,e={x:d.x,y:d.y-1};b.push(c);for(var f,g=0,h=function(a,b){return this.getAngle(d,e,b)-this.getAngle(d,e,a)}.bind(this);;){g++;for(var i=this.points.slice().sort(h),j=0,k=i.length;k>j;j++)if(this.distanceTo(d,i[j])1e3)return this.points}},isIntersecting:function(a,b){for(var c=1,d=a.length-1;d>c;c++)if(this.intersect(a[c-1],a[c],a[d],b))return!0;return!1},intersect:function(a,b,c,d){return a.x===c.x&&a.y===c.y||b.x===d.x&&b.y===d.y||a.x===d.x&&a.y===d.y||b.x===c.x&&b.y===c.y?!1:this.ccw(a,b,c)*this.ccw(a,b,d)<=0&&this.ccw(c,d,a)*this.ccw(c,d,b)<=0},lat2y:function(b){return 180/a.PI*a.log(a.tan(a.PI/4+b.lat*(a.PI/180)/2))},ccw:function(a,b,c){var d=1e-13,e=b.x-a.x,f=b.y-a.y,g=c.x-a.x,h=c.y-a.y,i=e*h-f*g;return i>d?1:-d>i?-1:-d>e*g||-d>f*h?-1:g*g+h*h+d>e*e+f*f?1:0},getAngle:function(b,c,d){if(d.x===b.x&&d.y===b.y)return-9e3;if(d.x===c.x&&d.y===c.y)return-360;var e,f={x:b.x-c.x,y:b.y-c.y},g={x:d.x-b.x,y:d.y-b.y},h=f.x*g.y-g.x*f.y,i=f.x*g.x+f.y*g.y;return 0===i?(h>0&&(e=90),0>h&&(e=-90)):(e=180*a.atan(h/i)/a.PI,0>i&&(h>=0&&(e+=180),0>h&&(e-=180))),360===e&&(e=0),180-e}},function(){return"undefined"!=typeof module&&module.exports?void(module.exports=b):"function"==typeof define&&define.amd?void define(function(){return b}):void(window.ConcaveHull=b)}()}(Math); \ No newline at end of file +!function(a){"use strict";var b=function(a,b){var c=this.convertLatLngs(a);this.points=c.points,this.maxDistance=isFinite(b)?b:c.maxDistance+1};b.prototype={points:[],maxDistance:0,convertLatLngs:function(a){var b=0,c=a.map(function(c,d){if(c.x=c.lng,c.y=this.lat2y(c),a[d-1]){var e=this.distanceTo(c,a[d-1]);e>b&&(b=e)}return c}.bind(this));return{points:c,maxDistance:b}},distanceTo:function(b,c){var d=6378137,e=a.PI/180,f=(c.lat-b.lat)*e,g=(c.lng-b.lng)*e,h=b.lat*e,i=c.lat*e,j=a.sin(f/2),k=a.sin(g/2),l=j*j+k*k*a.cos(h)*a.cos(i);return 2*d*a.atan2(a.sqrt(l),a.sqrt(1-l))},getLatLngs:function(){if(this.length<=3)return this.points;var a=this.points.slice().sort(function(a,b){return a.y-b.y}),b=[],c=a[0],d=c,e={x:d.x,y:d.y-1};b.push(c);for(var f,g=0,h=function(a,b){return this.getAngle(d,e,b)-this.getAngle(d,e,a)}.bind(this);;){g++;for(var i=this.points.slice().sort(h),j=0,k=i.length;k>j;j++)if(this.distanceTo(d,i[j])1e3)return this.points}},isIntersecting:function(a,b){for(var c=1,d=a.length-1;d>c;c++)if(this.intersect(a[c-1],a[c],a[d],b))return!0;return!1},intersect:function(a,b,c,d){return a.x===c.x&&a.y===c.y||b.x===d.x&&b.y===d.y||a.x===d.x&&a.y===d.y||b.x===c.x&&b.y===c.y?!1:this.ccw(a,b,c)*this.ccw(a,b,d)<=0&&this.ccw(c,d,a)*this.ccw(c,d,b)<=0},lat2y:function(b){return 180/a.PI*a.log(a.tan(a.PI/4+b.lat*(a.PI/180)/2))},ccw:function(a,b,c){var d=1e-13,e=b.x-a.x,f=b.y-a.y,g=c.x-a.x,h=c.y-a.y,i=e*h-f*g;return i>d?1:-d>i?-1:-d>e*g||-d>f*h?-1:g*g+h*h+d>e*e+f*f?1:0},getAngle:function(b,c,d){if(d.x===b.x&&d.y===b.y)return-9e3;if(d.x===c.x&&d.y===c.y)return-360;var e,f={x:b.x-c.x,y:b.y-c.y},g={x:d.x-b.x,y:d.y-b.y},h=f.x*g.y-g.x*f.y,i=f.x*g.x+f.y*g.y;return 0===i?(h>0&&(e=90),0>h&&(e=-90)):(e=180*a.atan(h/i)/a.PI,0>i&&(h>=0&&(e+=180),0>h&&(e-=180))),360===e&&(e=0),180-e}},function(){return"undefined"!=typeof module&&module.exports?void(module.exports=b):"function"==typeof define&&define.amd?void define(function(){return b}):void(window.ConcaveHull=b)}()}(Math); diff --git a/vendor/assets/javascripts/d3.min.js b/vendor/assets/javascripts/d3.min.js index e3aa5c60d..ea124a8a2 100644 --- a/vendor/assets/javascripts/d3.min.js +++ b/vendor/assets/javascripts/d3.min.js @@ -2,4 +2,4 @@ i(f=n,h=t),g=M,p=x,v=b,d=_,m=w,S.point=i}function s(){u(M,x,y,b,_,w,g,p,f,v,d,m,o,t),S.lineEnd=a,a()}var f,h,g,p,v,d,m,y,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:a,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,o,l,c,s,f,h,g,p,v,d,m){var y=s-t,M=f-e,x=y*y+M*M;if(x>4*i&&d--){var b=o+g,_=l+p,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=Ma(Ma(w)-1)i||Ma((y*z+M*L)/x-.5)>.3||a>o*g+l*p+c*v)&&(u(t,e,r,o,l,c,A,C,N,b/=S,_/=S,w,d,m),m.point(A,C),u(A,C,N,b,_,w,s,f,h,g,p,v,d,m))}}var i=.5,a=Math.cos(30*Oa),o=16;return t.precision=function(n){return arguments.length?(o=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function re(n){var t=ee(function(t,e){return n([t*Ia,e*Ia])});return function(n){return le(t(n))}}function ue(n){this.stream=n}function ie(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function ae(n){return oe(function(){return n})()}function oe(n){function t(n){return n=o(n[0]*Oa,n[1]*Oa),[n[0]*h+l,c-n[1]*h]}function e(n){return n=o.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Ia,n[1]*Ia]}function r(){o=Ct(a=fe(m,M,x),i);var n=i(v,d);return l=g-n[0]*h,c=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,a,o,l,c,s,f=ee(function(n,t){return n=i(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,M=0,x=0,b=Uo,_=y,w=null,S=null;return t.stream=function(n){return s&&(s.valid=!1),s=le(b(a,f(_(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Uo):It((w=+n)*Oa),u()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):y,u()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Oa,d=n[1]%360*Oa,r()):[v*Ia,d*Ia]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Oa,M=n[1]%360*Oa,x=n.length>2?n[2]%360*Oa:0,r()):[m*Ia,M*Ia,x*Ia]},oa.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function le(n){return ie(n,function(t,e){n.point(t*Oa,e*Oa)})}function ce(n,t){return[n,t]}function se(n,t){return[n>ja?n-Ua:-ja>n?n+Ua:n,t]}function fe(n,t,e){return n?t||e?Ct(ge(n),pe(t,e)):ge(n):t||e?pe(t,e):se}function he(n){return function(t,e){return t+=n,[t>ja?t-Ua:-ja>t?t+Ua:t,e]}}function ge(n){var t=he(n);return t.invert=he(-n),t}function pe(n,t){function e(n,t){var e=Math.cos(t),o=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),s=c*r+o*u;return[Math.atan2(l*i-s*a,o*r-c*u),tn(s*i+l*a)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),a=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),o=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),s=c*i-l*a;return[Math.atan2(l*i+c*a,o*r+s*u),tn(s*r-o*u)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,a,o){var l=a*t;null!=u?(u=de(e,u),i=de(e,i),(a>0?i>u:u>i)&&(u+=a*Ua)):(u=n+a*Ua,i=n-.5*l);for(var c,s=u;a>0?s>i:i>s;s-=l)o.point((c=_t([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Da)%(2*Math.PI)}function me(n,t,e){var r=oa.range(n,t-Da,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function ye(n,t,e){var r=oa.range(n,t-Da,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),a=Math.cos(r),o=Math.sin(r),l=u*Math.cos(n),c=u*Math.sin(n),s=a*Math.cos(e),f=a*Math.sin(e),h=2*Math.asin(Math.sqrt(an(r-t)+u*a*an(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*l+t*s,u=e*c+t*f,a=e*i+t*o;return[Math.atan2(u,r)*Ia,Math.atan2(a,Math.sqrt(r*r+u*u))*Ia]}:function(){return[n*Ia,t*Ia]};return p.distance=h,p}function _e(){function n(n,u){var i=Math.sin(u*=Oa),a=Math.cos(u),o=Ma((n*=Oa)-t),l=Math.cos(o);Wo+=Math.atan2(Math.sqrt((o=a*Math.sin(o))*o+(o=r*i-e*a*l)*o),e*i+r*a*l),t=n,e=i,r=a}var t,e,r;Jo.point=function(u,i){t=u*Oa,e=Math.sin(i*=Oa),r=Math.cos(i),Jo.point=n},Jo.lineEnd=function(){Jo.point=Jo.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),a=Math.cos(u);return[Math.atan2(n*i,r*a),Math.asin(r&&e*i/r)]},e}function Se(n,t){function e(n,t){a>0?-Ha+Da>t&&(t=-Ha+Da):t>Ha-Da&&(t=Ha-Da);var e=a/Math.pow(u(t),i);return[e*Math.sin(i*n),a-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(ja/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),a=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=a-t,r=K(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(a/r,1/i))-Ha]},e):Ne}function ke(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return Ma(u)u;u++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var u=n[0],i=e[0],a=t[0]-u,o=r[0]-i,l=n[1],c=e[1],s=t[1]-l,f=r[1]-c,h=(o*(l-c)-f*(u-i))/(f*a-o*s);return[u+h*a,l+h*s]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function je(n){var t=ll.pop()||new Pe;return t.site=n,t}function Ue(n){Be(n),il.remove(n),ll.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,a=n.N,o=[n];Ue(n);for(var l=i;l.circle&&Ma(e-l.circle.x)s;++s)c=o[s],l=o[s-1],nr(c.edge,l.site,c.site,u);l=o[0],c=o[f-1],c.edge=Ke(l.site,c.site,null,u),$e(l),$e(c)}function He(n){for(var t,e,r,u,i=n.x,a=n.y,o=il._;o;)if(r=Oe(o,a)-i,r>Da)o=o.L;else{if(u=i-Ie(o,a),!(u>Da)){r>-Da?(t=o.P,e=o):u>-Da?(t=o,e=o.N):t=e=o;break}if(!o.R){t=o;break}o=o.R}var l=je(n);if(il.insert(t,l),t||e){if(t===e)return Be(t),e=je(t.site),il.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,s=c.x,f=c.y,h=n.x-s,g=n.y-f,p=e.site,v=p.x-s,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,M=v*v+d*d,x={x:(d*y-g*M)/m+s,y:(h*M-v*y)/m+f};nr(e.edge,c,p,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,p,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var a=n.P;if(!a)return-(1/0);e=a.site;var o=e.x,l=e.y,c=l-t;if(!c)return o;var s=o-r,f=1/i-1/c,h=s/c;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*c)-l+c/2+u-i/2)))/f+r:(r+o)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,u,i,a,o,l,c,s,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=ul,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(o=i.edges,l=o.length,a=0;l>a;)s=o[a].end(),r=s.x,u=s.y,c=o[++a%l].start(),t=c.x,e=c.y,(Ma(r-t)>Da||Ma(u-e)>Da)&&(o.splice(a,0,new tr(Qe(i.site,s,Ma(r-f)Da?{x:f,y:Ma(t-f)Da?{x:Ma(e-p)Da?{x:h,y:Ma(t-h)Da?{x:Ma(e-g)=-Pa)){var g=l*l+c*c,p=s*s+f*f,v=(f*g-c*p)/h,d=(l*p-s*g)/h,f=d+o,m=cl.pop()||new Xe;m.arc=n,m.site=u,m.x=v+a,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,M=ol._;M;)if(m.yd||d>=o)return;if(h>p){if(i){if(i.y>=c)return}else i={x:d,y:l};e={x:d,y:c}}else{if(i){if(i.yr||r>1)if(h>p){if(i){if(i.y>=c)return}else i={x:(l-u)/r,y:l};e={x:(c-u)/r,y:c}}else{if(i){if(i.yg){if(i){if(i.x>=o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}else{if(i){if(i.xi||f>a||r>h||u>g)){if(p=n.point){var p,v=t-n.x,d=e-n.y,m=v*v+d*d;if(l>m){var y=Math.sqrt(l=m);r=t-y,u=e-y,i=t+y,a=e+y,o=p}}for(var M=n.nodes,x=.5*(s+h),b=.5*(f+g),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,s,f,x,b);break;case 1:c(n,x,f,h,b);break;case 2:c(n,s,b,x,g);break;case 3:c(n,x,b,h,g)}}}(n,r,u,i,a),o}function vr(n,t){n=oa.rgb(n),t=oa.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,a=t.g-r,o=t.b-u;return function(n){return"#"+bn(Math.round(e+i*n))+bn(Math.round(r+a*n))+bn(Math.round(u+o*n))}}function dr(n,t){var e,r={},u={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function mr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function yr(n,t){var e,r,u,i=fl.lastIndex=hl.lastIndex=0,a=-1,o=[],l=[];for(n+="",t+="";(e=fl.exec(n))&&(r=hl.exec(t));)(u=r.index)>i&&(u=t.slice(i,u),o[a]?o[a]+=u:o[++a]=u),(e=e[0])===(r=r[0])?o[a]?o[a]+=r:o[++a]=r:(o[++a]=null,l.push({i:a,x:mr(e,r)})),i=hl.lastIndex;return ir;++r)o[(e=l[r]).i]=e.x(n);return o.join("")})}function Mr(n,t){for(var e,r=oa.interpolators.length;--r>=0&&!(e=oa.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],u=[],i=n.length,a=t.length,o=Math.min(n.length,t.length);for(e=0;o>e;++e)r.push(Mr(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;a>e;++e)u[e]=t[e];return function(n){for(e=0;o>e;++e)u[e]=r[e](n);return u}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Ha)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ua*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ua/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=oa.hcl(n),t=oa.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,a=t.c-r,o=t.l-u;return isNaN(a)&&(a=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return fn(e+i*n,r+a*n,u+o*n)+""}}function Dr(n,t){n=oa.hsl(n),t=oa.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,a=t.s-r,o=t.l-u;return isNaN(a)&&(a=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return cn(e+i*n,r+a*n,u+o*n)+""}}function Pr(n,t){n=oa.lab(n),t=oa.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,a=t.a-r,o=t.b-u;return function(n){return gn(e+i*n,r+a*n,u+o*n)+""}}function jr(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Ur(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),u=Fr(t,e),i=Hr(Or(e,t,-u))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:mr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:mr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var u=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:u-4,x:mr(n[0],t[0])},{i:u-2,x:mr(n[1],t[1])})}else(1!==t[0]||1!==t[1])&&e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=oa.transform(n),t=oa.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,u=-1,i=r.length;++u=0;)e.push(u[r])}function au(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,a=-1;++ae;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function mu(n){return n.reduce(yu,0)}function yu(n,t){return n+t[1]}function Mu(n,t){return xu(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xu(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function bu(n){return[oa.min(n),oa.max(n)]}function _u(n,t){return n.value-t.value}function wu(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Su(n,t){n._pack_next=t,t._pack_prev=n}function ku(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function Nu(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(c=e.length)){var e,r,u,i,a,o,l,c,s=1/0,f=-(1/0),h=1/0,g=-(1/0);if(e.forEach(Eu),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(u=e[1],u.x=u.r,u.y=0,t(u),c>2))for(i=e[2],zu(r,u,i),t(i),wu(r,i),r._pack_prev=i,wu(i,u),u=r._pack_next,a=3;c>a;a++){zu(r,u,i=e[a]);var p=0,v=1,d=1;for(o=u._pack_next;o!==u;o=o._pack_next,v++)if(ku(o,i)){p=1;break}if(1==p)for(l=r._pack_prev;l!==o._pack_prev&&!ku(l,i);l=l._pack_prev,d++);p?(d>v||v==d&&u.ra;a++)i=e[a],i.x-=m,i.y-=y,M=Math.max(M,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=M,e.forEach(Au)}}function Eu(n){n._pack_next=n._pack_prev=n}function Au(n){delete n._pack_next,delete n._pack_prev}function Cu(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,a=u.length;++i=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pu(n,t,e){return n.a.parent===t.parent?n.a:e}function ju(n){return 1+oa.max(n,function(n){return n.y})}function Uu(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fu(n){var t=n.children;return t&&t.length?Fu(t[0]):n}function Hu(n){var t,e=n.children;return e&&(t=e.length)?Hu(e[t-1]):n}function Ou(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Iu(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Yu(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zu(n){return n.rangeExtent?n.rangeExtent():Yu(n.range())}function Vu(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Xu(n,t){var e,r=0,u=n.length-1,i=n[r],a=n[u];return i>a&&(e=r,r=u,u=e,e=i,i=a,a=e),n[r]=t.floor(i),n[u]=t.ceil(a),n}function $u(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:wl}function Bu(n,t,e,r){var u=[],i=[],a=0,o=Math.min(n.length,t.length)-1;for(n[o]2?Bu:Vu,l=r?Wr:Br;return a=u(n,t,l,e),o=u(t,n,l,Mr),i}function i(n){return a(n)}var a,o;return i.invert=function(n){return o(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(jr)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Qu(n,t)},i.tickFormat=function(t,e){return ni(n,t,e)},i.nice=function(t){return Gu(n,t),u()},i.copy=function(){return Wu(n,t,e,r)},u()}function Ju(n,t){return oa.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gu(n,t){return Xu(n,$u(Ku(n,t)[2]))}function Ku(n,t){null==t&&(t=10);var e=Yu(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Qu(n,t){return oa.range.apply(oa,Ku(n,t))}function ni(n,t,e){var r=Ku(n,t);if(e){var u=so.exec(e);if(u.shift(),"s"===u[8]){var i=oa.formatPrefix(Math.max(Ma(r[0]),Ma(r[1])));return u[7]||(u[7]="."+ti(i.scale(r[2]))),u[8]="f",e=oa.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+ei(u[8],r)),e=u.join("")}else e=",."+ti(r[2])+"f";return oa.format(e)}function ti(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function ei(n,t){var e=ti(t[2]);return n in Sl?Math.abs(e-ti(Math.max(Ma(t[0]),Ma(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ri(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function a(t){return n(u(t))}return a.invert=function(t){return i(n.invert(t))},a.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),a):r},a.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),a):t},a.nice=function(){var t=Xu(r.map(u),e?Math:Nl);return n.domain(t),r=t.map(i),a},a.ticks=function(){var n=Yu(r),a=[],o=n[0],l=n[1],c=Math.floor(u(o)),s=Math.ceil(u(l)),f=t%1?2:t;if(isFinite(s-c)){if(e){for(;s>c;c++)for(var h=1;f>h;h++)a.push(i(c)*h);a.push(i(c))}else for(a.push(i(c));c++0;h--)a.push(i(c)*h);for(c=0;a[c]l;s--);a=a.slice(c,s)}return a},a.tickFormat=function(n,t){if(!arguments.length)return kl;arguments.length<2?t=kl:"function"!=typeof t&&(t=oa.format(t));var r,o=Math.max(.1,n/a.ticks().length),l=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(l(u(n)+r))<=o?t(n):""}},a.copy=function(){return ri(n.copy(),t,e,r)},Ju(a,n)}function ui(n,t,e){function r(t){return n(u(t))}var u=ii(t),i=ii(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Qu(e,n)},r.tickFormat=function(n,t){return ni(e,n,t)},r.nice=function(n){return r.domain(Gu(e,n))},r.exponent=function(a){return arguments.length?(u=ii(t=a),i=ii(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return ui(n.copy(),t,e)},Ju(r,n)}function ii(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ai(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):NaN))-1)%i.length]}function r(t,e){return oa.range(n.length).map(function(n){return t+e*n})}var u,i,a;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new c;for(var i,a=-1,o=r.length;++ae?[NaN,NaN]:[e>0?o[e-1]:n[0],et?NaN:t/i+n,[t,t+1/i]},r.copy=function(){return li(n,t,e)},u()}function ci(n,t){function e(e){return e>=e?t[oa.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return ci(n,t)},e}function si(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qu(n,t)},t.tickFormat=function(t,e){return ni(n,t,e)},t.copy=function(){return si(n)},t}function fi(){return 0}function hi(n){return n.innerRadius}function gi(n){return n.outerRadius}function pi(n){return n.startAngle}function vi(n){return n.endAngle}function di(n){return n&&n.padAngle}function mi(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function yi(n,t,e,r,u){var i=n[0]-t[0],a=n[1]-t[1],o=(u?r:-r)/Math.sqrt(i*i+a*a),l=o*a,c=-o*i,s=n[0]+l,f=n[1]+c,h=t[0]+l,g=t[1]+c,p=(s+h)/2,v=(f+g)/2,d=h-s,m=g-f,y=d*d+m*m,M=e-r,x=s*g-h*f,b=(0>m?-1:1)*Math.sqrt(Math.max(0,M*M*y-x*x)),_=(x*m-d*b)/y,w=(-x*d-m*b)/y,S=(x*m+d*b)/y,k=(-x*d+m*b)/y,N=_-p,E=w-v,A=S-p,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mi(n){function t(t){function a(){c.push("M",i(n(s),o))}for(var l,c=[],s=[],f=-1,h=t.length,g=En(e),p=En(r);++f1?n.join("L"):n+"Z"}function bi(n){return n.join("L")+"Z"}function _i(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t1&&u.push("H",r[0]),u.join("")}function wi(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t1){o=t[1],i=n[l],l++,r+="C"+(u[0]+a[0])+","+(u[1]+a[1])+","+(i[0]-o[0])+","+(i[1]-o[1])+","+i[0]+","+i[1];for(var c=2;c9&&(u=3*t/Math.sqrt(u),a[o]=u*e,a[o+1]=u*r));for(o=-1;++o<=l;)u=(n[Math.min(l,o+1)][0]-n[Math.max(0,o-1)][0])/(6*(1+a[o]*a[o])),i.push([u||0,a[o]*u||0]);return i}function Fi(n){return n.length<3?xi(n):n[0]+Ai(n,Ui(n))}function Hi(n){for(var t,e,r,u=-1,i=n.length;++u=t?a(n-t):void(s.c=a)}function a(e){var u=p.active,i=p[u];i&&(i.timer.c=null,i.timer.t=NaN,--p.count,delete p[u],i.event&&i.event.interrupt.call(n,n.__data__,i.index));for(var a in p)if(r>+a){var c=p[a];c.timer.c=null,c.timer.t=NaN,--p.count,delete p[a]}s.c=o,qn(function(){return s.c&&o(e||1)&&(s.c=null,s.t=NaN),1},0,l),p.active=r,v.event&&v.event.start.call(n,n.__data__,t),g=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&g.push(r)}),h=v.ease,f=v.duration}function o(u){for(var i=u/f,a=h(i),o=g.length;o>0;)g[--o].call(n,a);return i>=1?(v.event&&v.event.end.call(n,n.__data__,t),--p.count?delete p[r]:delete n[e],1):void 0}var l,s,f,h,g,p=n[e]||(n[e]={active:0,count:0}),v=p[r];v||(l=u.time,s=qn(i,0,l),v=p[r]={tween:new c,time:l,timer:s,delay:u.delay,duration:u.duration,ease:u.ease,index:t},u=null,++p.count)}function na(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function ta(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function ea(n){return n.toISOString()}function ra(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=oa.bisect(Gl,u);return i==Gl.length?[t.year,Ku(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Gl[i-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=ua(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=ua(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yu(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],ua(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ra(n.copy(),t,e)},Ju(r,n)}function ua(n){return new Date(n)}function ia(n){return JSON.parse(n.responseText)}function aa(n){var t=sa.createRange();return t.selectNode(sa.body),t.createContextualFragment(n.responseText)}var oa={version:"3.5.9"},la=[].slice,ca=function(n){return la.call(n)},sa=this.document;if(sa)try{ca(sa.documentElement.childNodes)[0].nodeType}catch(fa){ca=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),sa)try{sa.createElement("DIV").style.setProperty("opacity",0,"")}catch(ha){var ga=this.Element.prototype,pa=ga.setAttribute,va=ga.setAttributeNS,da=this.CSSStyleDeclaration.prototype,ma=da.setProperty;ga.setAttribute=function(n,t){pa.call(this,n,t+"")},ga.setAttributeNS=function(n,t,e){va.call(this,n,t,e+"")},da.setProperty=function(n,t,e){ma.call(this,n,t+"",e)}}oa.ascending=e,oa.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},oa.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=r){e=r;break}for(;++ur&&(e=r)}else{for(;++u=r){e=r;break}for(;++ur&&(e=r)}return e},oa.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=r){e=r;break}for(;++ue&&(e=r)}else{for(;++u=r){e=r;break}for(;++ue&&(e=r)}return e},oa.extent=function(n,t){var e,r,u,i=-1,a=n.length;if(1===arguments.length){for(;++i=r){e=u=r;break}for(;++ir&&(e=r),r>u&&(u=r))}else{for(;++i=r){e=u=r;break}for(;++ir&&(e=r),r>u&&(u=r))}return[e,u]},oa.sum=function(n,t){var e,r=0,i=n.length,a=-1;if(1===arguments.length)for(;++a1?l/(s-1):void 0},oa.deviation=function(){var n=oa.variance.apply(this,arguments);return n?Math.sqrt(n):n};var ya=i(e);oa.bisectLeft=ya.left,oa.bisect=oa.bisectRight=ya.right,oa.bisector=function(n){return i(1===n.length?function(t,r){return e(n(t),r)}:n)},oa.shuffle=function(n,t,e){(i=arguments.length)<3&&(e=n.length,2>i&&(t=0));for(var r,u,i=e-t;i;)u=Math.random()*i--|0,r=n[i+t],n[i+t]=n[u+t],n[u+t]=r;return n},oa.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},oa.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},oa.zip=function(){if(!(r=arguments.length))return[];for(var n=-1,t=oa.min(arguments,a),e=new Array(t);++n=0;)for(r=n[u],t=r.length;--t>=0;)e[--a]=r[t];return e};var Ma=Math.abs;oa.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,u=[],i=o(Ma(e)),a=-1;if(n*=i,t*=i,e*=i,0>e)for(;(r=n+e*++a)>t;)u.push(r/i);else for(;(r=n+e*++a)=i.length)return r?r.call(u,a):e?a.sort(e):a;for(var l,s,f,h,g=-1,p=a.length,v=i[o++],d=new c;++g=i.length)return n;var r=[],u=a[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],a=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(oa.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return a[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},oa.set=function(n){var t=new m;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(m,{has:h,add:function(n){return this._[s(n+="")]=!0,n},remove:g,values:p,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t))}}),oa.behavior={},oa.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},oa.event=null,oa.requote=function(n){return n.replace(wa,"\\$&")};var wa=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,Sa={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},ka=function(n,t){return t.querySelector(n)},Na=function(n,t){return t.querySelectorAll(n)},Ea=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ea=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(ka=function(n,t){return Sizzle(n,t)[0]||null},Na=Sizzle,Ea=Sizzle.matchesSelector),oa.selection=function(){return oa.select(sa.documentElement)};var Aa=oa.selection.prototype=[];Aa.select=function(n){var t,e,r,u,i=[];n=A(n);for(var a=-1,o=this.length;++a=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Ca.hasOwnProperty(e)?{space:Ca[e],local:n}:n}},Aa.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=oa.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Aa.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,u=-1;if(t=e.classList){for(;++uu){if("string"!=typeof n){2>u&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>u){var i=this.node();return t(i).getComputedStyle(i,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Aa.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(j(t,n[t]));return this}return this.each(j(n,t))},Aa.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Aa.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Aa.append=function(n){return n=U(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Aa.insert=function(n,t){return n=U(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Aa.remove=function(){return this.each(F)},Aa.data=function(n,t){function e(n,e){var r,u,i,a=n.length,f=e.length,h=Math.min(a,f),g=new Array(f),p=new Array(f),v=new Array(a);if(t){var d,m=new c,y=new Array(a);for(r=-1;++rr;++r)p[r]=H(e[r]);for(;a>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,o.push(p),l.push(g),s.push(v)}var r,u,i=-1,a=this.length;if(!arguments.length){for(n=new Array(a=(r=this[0]).length);++ii;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var o=0,l=e.length;l>o;o++)(r=e[o])&&n.call(r,r.__data__,o,i)&&t.push(r)}return E(u)},Aa.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},Aa.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},Aa.size=function(){var n=0;return Y(this,function(){++n}),n};var za=[];oa.selection.enter=Z,oa.selection.enter.prototype=za,za.append=Aa.append,za.empty=Aa.empty,za.node=Aa.node,za.call=Aa.call,za.size=Aa.size,za.select=function(n){for(var t,e,r,u,i,a=[],o=-1,l=this.length;++or){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var La=oa.map({mouseenter:"mouseover",mouseleave:"mouseout"});sa&&La.forEach(function(n){"on"+n in sa&&La.remove(n)});var qa,Ta=0;oa.mouse=function(n){return J(n,k())};var Ra=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;oa.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return J(n,r)},oa.behavior.drag=function(){function n(){this.on("mousedown.drag",i).on("touchstart.drag",a)}function e(n,t,e,i,a){return function(){function o(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],p|=n|e,M=r,g({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(m.on(i+d,null).on(a+d,null),y(p),g({type:"dragend"}))}var c,s=this,f=oa.event.target,h=s.parentNode,g=r.of(s,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=oa.select(e(f)).on(i+d,o).on(a+d,l),y=W(f),M=t(h,v);u?(c=u.apply(s,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],g({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),u=null,i=e(b,oa.mouse,t,"mousemove","mouseup"),a=e(G,oa.touch,y,"touchmove","touchend");return n.origin=function(t){return arguments.length?(u=t,n):u},oa.rebind(n,r,"on")},oa.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?ca(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Da=1e-6,Pa=Da*Da,ja=Math.PI,Ua=2*ja,Fa=Ua-Da,Ha=ja/2,Oa=ja/180,Ia=180/ja,Ya=Math.SQRT2,Za=2,Va=4;oa.interpolateZoom=function(n,t){var e,r,u=n[0],i=n[1],a=n[2],o=t[0],l=t[1],c=t[2],s=o-u,f=l-i,h=s*s+f*f;if(Pa>h)r=Math.log(c/a)/Ya,e=function(n){return[u+n*s,i+n*f,a*Math.exp(Ya*n*r)]};else{var g=Math.sqrt(h),p=(c*c-a*a+Va*h)/(2*a*Za*g),v=(c*c-a*a-Va*h)/(2*c*Za*g),d=Math.log(Math.sqrt(p*p+1)-p),m=Math.log(Math.sqrt(v*v+1)-v);r=(m-d)/Ya,e=function(n){var t=n*r,e=rn(d),o=a/(Za*g)*(e*un(Ya*t+d)-en(d));return[u+o*s,i+o*f,a*e/rn(Ya*t+d)]}}return e.duration=1e3*r,e},oa.behavior.zoom=function(){function n(n){n.on(L,f).on($a+".zoom",g).on("dblclick.zoom",p).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function u(n){k.k=Math.max(A[0],Math.min(A[1],n))}function i(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function a(t,e,r,a){t.__chart__={x:k.x,y:k.y,k:k.k},u(Math.pow(2,a)),i(d=e,r),t=oa.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function o(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){o(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function s(n){--z||(n({type:"zoomend"}),d=null)}function f(){function n(){o=1,i(oa.mouse(u),h),c(a)}function r(){f.on(q,null).on(T,null),g(o),s(a)}var u=this,a=D.of(u,arguments),o=0,f=oa.select(t(u)).on(q,n).on(T,r),h=e(oa.mouse(u)),g=W(u);Ol.call(u),l(a)}function h(){function n(){var n=oa.touches(p);return g=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=oa.event.target;oa.select(t).on(x,r).on(b,o),_.push(t);for(var e=oa.event.changedTouches,u=0,i=e.length;i>u;++u)d[e[u].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var s=l[0];a(p,s,d[s.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var s=l[0],f=l[1],h=s[0]-f[0],g=s[1]-f[1];m=h*h+g*g}}function r(){var n,t,e,r,a=oa.touches(p);Ol.call(p);for(var o=0,l=a.length;l>o;++o,r=null)if(e=a[o],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var s=(s=e[0]-n[0])*s+(s=e[1]-n[1])*s,f=m&&Math.sqrt(s/m);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],u(f*g)}M=null,i(n,t),c(v)}function o(){if(oa.event.touches.length){for(var t=oa.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var u in d)return void n()}oa.selectAll(_).on(y,null),w.on(L,f).on(R,h),N(),s(v)}var g,p=this,v=D.of(p,arguments),d={},m=0,y=".zoom-"+oa.event.changedTouches[0].identifier,x="touchmove"+y,b="touchend"+y,_=[],w=oa.select(p),N=W(p);t(),l(v),w.on(L,null).on(R,t)}function g(){var n=D.of(this,arguments);y?clearTimeout(y):(Ol.call(this),v=e(d=m||oa.mouse(this)),l(n)),y=setTimeout(function(){y=null,s(n)},50),S(),u(Math.pow(2,.002*Xa())*k.k),i(d,v),c(n)}function p(){var n=oa.mouse(this),t=Math.log(k.k)/Math.LN2;a(this,n,e(n),oa.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,m,y,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Ba,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return $a||($a="onwheel"in sa?(Xa=function(){return-oa.event.deltaY*(oa.event.deltaMode?120:1)},"wheel"):"onmousewheel"in sa?(Xa=function(){return oa.event.wheelDelta},"mousewheel"):(Xa=function(){return-oa.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Fl?oa.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],u=d?d[0]:e/2,i=d?d[1]:r/2,a=oa.interpolateZoom([(u-k.x)/k.k,(i-k.y)/k.k,e/k.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=a(t),o=e/r[2];this.__chart__=k={x:u-r[0]*o,y:i-r[1]*o,k:o},c(n)}}).each("interrupt.zoom",function(){s(n)}).each("end.zoom",function(){s(n)}):(this.__chart__=k,l(n),c(n),s(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},o(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},u(+t),o(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Ba:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(m=t&&[+t[0],+t[1]],n):m},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},oa.rebind(n,D,"on")};var Xa,$a,Ba=[0,1/0];oa.color=on,on.prototype.toString=function(){return this.rgb()+""},oa.hsl=ln;var Wa=ln.prototype=new on;Wa.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Wa.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Wa.rgb=function(){return cn(this.h,this.s,this.l)},oa.hcl=sn;var Ja=sn.prototype=new on;Ja.brighter=function(n){return new sn(this.h,this.c,Math.min(100,this.l+Ga*(arguments.length?n:1)))},Ja.darker=function(n){return new sn(this.h,this.c,Math.max(0,this.l-Ga*(arguments.length?n:1)))},Ja.rgb=function(){return fn(this.h,this.c,this.l).rgb()},oa.lab=hn;var Ga=18,Ka=.95047,Qa=1,no=1.08883,to=hn.prototype=new on;to.brighter=function(n){return new hn(Math.min(100,this.l+Ga*(arguments.length?n:1)),this.a,this.b)},to.darker=function(n){return new hn(Math.max(0,this.l-Ga*(arguments.length?n:1)),this.a,this.b)},to.rgb=function(){return gn(this.l,this.a,this.b)},oa.rgb=yn;var eo=yn.prototype=new on;eo.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new yn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new yn(u,u,u)},eo.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new yn(n*this.r,n*this.g,n*this.b)},eo.hsl=function(){return wn(this.r,this.g,this.b)},eo.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ro=oa.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ro.forEach(function(n,t){ro.set(n,Mn(t))}),oa.functor=En,oa.xhr=An(y),oa.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var a=Cn(n,t,null==e?r:u(e),i);return a.row=function(n){return arguments.length?a.response(null==(e=n)?r:u(n)):e},a}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(a).join(n)}function a(n){return o.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var o=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(s>=c)return a;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++s;){var r=n.charCodeAt(s++),o=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(s)&&(++s,++o);else if(r!==l)continue;return n.slice(t,s-o)}return n.slice(t)}for(var r,u,i={},a={},o=[],c=n.length,s=0,f=0;(r=e())!==a;){for(var h=[];r!==i&&r!==a;)h.push(r),r=e();t&&null==(h=t(h,f++))||o.push(h)}return o},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new m,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(a).join(n)].concat(t.map(function(t){return u.map(function(n){return a(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},oa.csv=oa.dsv(",","text/csv"),oa.tsv=oa.dsv(" ","text/tab-separated-values");var uo,io,ao,oo,lo=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};oa.timer=function(){qn.apply(this,arguments)},oa.timer.flush=function(){Rn(),Dn()},oa.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var co=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(jn);oa.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=oa.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),co[8+e/3]};var so=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,fo=oa.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=oa.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ho=oa.time={},go=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){po.setUTCDate.apply(this._,arguments)},setDay:function(){po.setUTCDay.apply(this._,arguments)},setFullYear:function(){po.setUTCFullYear.apply(this._,arguments)},setHours:function(){po.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){po.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){po.setUTCMinutes.apply(this._,arguments)},setMonth:function(){po.setUTCMonth.apply(this._,arguments)},setSeconds:function(){po.setUTCSeconds.apply(this._,arguments)},setTime:function(){po.setTime.apply(this._,arguments)}};var po=Date.prototype;ho.year=On(function(n){return n=ho.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ho.years=ho.year.range,ho.years.utc=ho.year.utc.range,ho.day=On(function(n){var t=new go(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ho.days=ho.day.range,ho.days.utc=ho.day.utc.range,ho.dayOfYear=function(n){var t=ho.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ho[n]=On(function(n){return(n=ho.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ho.year(n).getDay();return Math.floor((ho.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ho[n+"s"]=e.range,ho[n+"s"].utc=e.utc.range,ho[n+"OfYear"]=function(n){var e=ho.year(n).getDay();return Math.floor((ho.dayOfYear(n)+(e+t)%7)/7)}}),ho.week=ho.sunday,ho.weeks=ho.sunday.range,ho.weeks.utc=ho.sunday.utc.range,ho.weekOfYear=ho.sundayOfYear;var vo={"-":"",_:" ",0:"0"},mo=/^\s*\d+/,yo=/^%/;oa.locale=function(n){return{numberFormat:Un(n),timeFormat:Yn(n)}};var Mo=oa.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});oa.format=Mo.numberFormat,oa.geo={},st.prototype={s:0,t:0,add:function(n){ft(n,this.t,xo),ft(xo.s,this.s,this),this.s?this.t+=xo.t:this.s=xo.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var xo=new st;oa.geo.stream=function(n,t){n&&bo.hasOwnProperty(n.type)?bo[n.type](n,t):ht(n,t)};var bo={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++rn?4*ja+n:n,ko.lineStart=ko.lineEnd=ko.point=b}};oa.geo.bounds=function(){function n(n,t){M.push(x=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=dt([t*Oa,e*Oa]);if(m){var u=yt(m,r),i=[u[1],-u[0],0],a=yt(i,u);bt(a),a=_t(a);var l=t-p,c=l>0?1:-1,v=a[0]*Ia*c,d=Ma(l)>180;if(d^(v>c*p&&c*t>v)){var y=a[1]*Ia;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>c*p&&c*t>v)){var y=-a[1]*Ia;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?o(s,t)>o(s,h)&&(h=t):o(t,h)>o(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?o(s,t)>o(s,h)&&(h=t):o(t,h)>o(s,h)&&(s=t)}else n(t,e);m=r,p=t}function e(){b.point=t}function r(){x[0]=s,x[1]=h,b.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=Ma(r)>180?r+(r>0?360:-360):r}else v=n,d=e;ko.point(n,e),t(n,e)}function i(){ko.lineStart()}function a(){u(v,d),ko.lineEnd(),Ma(y)>Da&&(s=-(h=180)),x[0]=s,x[1]=h,m=null}function o(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nSo?(s=-(h=180),f=-(g=90)):y>Da?g=90:-Da>y&&(f=-90),x[0]=s,x[1]=h}};return function(n){g=h=-(s=f=1/0),M=[],oa.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,u=M[0],i=[u];t>r;++r)e=M[r],c(e[0],u)||c(e[1],u)?(o(u[0],e[1])>o(u[0],u[1])&&(u[1]=e[1]),o(e[0],u[1])>o(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var a,e,p=-(1/0),t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(a=o(u[1],e[0]))>p&&(p=a,s=e[0],h=u[1])}return M=x=null,s===1/0||f===1/0?[[NaN,NaN],[NaN,NaN]]:[[s,f],[h,g]]}}(),oa.geo.centroid=function(n){No=Eo=Ao=Co=zo=Lo=qo=To=Ro=Do=Po=0,oa.geo.stream(n,jo);var t=Ro,e=Do,r=Po,u=t*t+e*e+r*r;return Pa>u&&(t=Lo,e=qo,r=To,Da>Eo&&(t=Ao,e=Co,r=zo),u=t*t+e*e+r*r,Pa>u)?[NaN,NaN]:[Math.atan2(e,t)*Ia,tn(r/Math.sqrt(u))*Ia]};var No,Eo,Ao,Co,zo,Lo,qo,To,Ro,Do,Po,jo={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){jo.lineStart=At},polygonEnd:function(){jo.lineStart=Nt}},Uo=Rt(zt,Ut,Ht,[-ja,-ja/2]),Fo=1e9;oa.geo.clipExtent=function(){var n,t,e,r,u,i,a={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(o){return arguments.length?(i=Zt(n=+o[0][0],t=+o[0][1],e=+o[1][0],r=+o[1][1]),u&&(u.valid=!1,u=null),a):[[n,t],[e,r]]}};return a.extent([[0,0],[960,500]])},(oa.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,oa.geo.albers=function(){return oa.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},oa.geo.albersUsa=function(){function n(n){var i=n[0],a=n[1];return t=null,e(i,a),t||(r(i,a),t)||u(i,a),t}var t,e,r,u,i=oa.geo.albers(),a=oa.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),o=oa.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?a:u>=.166&&.234>u&&r>=-.214&&-.115>r?o:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=a.stream(n),r=o.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),a.precision(t),o.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),a.scale(.35*t),o.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var c=i.scale(),s=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[s-.455*c,f-.238*c],[s+.455*c,f+.238*c]]).stream(l).point,r=a.translate([s-.307*c,f+.201*c]).clipExtent([[s-.425*c+Da,f+.12*c+Da],[s-.214*c-Da,f+.234*c-Da]]).stream(l).point,u=o.translate([s-.205*c,f+.212*c]).clipExtent([[s-.214*c+Da,f+.166*c+Da],[s-.115*c-Da,f+.234*c-Da]]).stream(l).point,n},n.scale(1070)};var Ho,Oo,Io,Yo,Zo,Vo,Xo={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Oo=0,Xo.lineStart=$t},polygonEnd:function(){Xo.lineStart=Xo.lineEnd=Xo.point=b,Ho+=Ma(Oo/2)}},$o={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Bo={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Bo.lineStart=ne},polygonEnd:function(){Bo.point=Gt,Bo.lineStart=Kt,Bo.lineEnd=Qt}};oa.geo.path=function(){function n(n){return n&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),a&&a.valid||(a=u(i)),oa.geo.stream(n,a)),i.result()}function t(){return a=null,n}var e,r,u,i,a,o=4.5;return n.area=function(n){return Ho=0,oa.geo.stream(n,u(Xo)),Ho},n.centroid=function(n){return Ao=Co=zo=Lo=qo=To=Ro=Do=Po=0,oa.geo.stream(n,u(Bo)),Po?[Ro/Po,Do/Po]:To?[Lo/To,qo/To]:zo?[Ao/zo,Co/zo]:[NaN,NaN]},n.bounds=function(n){return Zo=Vo=-(Io=Yo=1/0),oa.geo.stream(n,u($o)),[[Io,Yo],[Zo,Vo]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||re(n):y,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new Wt:new te(n),"function"!=typeof o&&i.pointRadius(o),t()):r},n.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(i.pointRadius(+t),+t),n):o},n.projection(oa.geo.albersUsa()).context(null)},oa.geo.transform=function(n){return{stream:function(t){var e=new ue(t);for(var r in n)e[r]=n[r];return e}}},ue.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},oa.geo.projection=ae,oa.geo.projectionMutator=oe,(oa.geo.equirectangular=function(){return ae(ce)}).raw=ce.invert=ce,oa.geo.rotation=function(n){function t(t){return t=n(t[0]*Oa,t[1]*Oa),t[0]*=Ia,t[1]*=Ia,t}return n=fe(n[0]%360*Oa,n[1]*Oa,n.length>2?n[2]*Oa:0),t.invert=function(t){return t=n.invert(t[0]*Oa,t[1]*Oa),t[0]*=Ia,t[1]*=Ia,t},t},se.invert=ce,oa.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=fe(-n[0]*Oa,-n[1]*Oa,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Ia,n[1]*=Ia}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Oa,u*Oa),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Oa,(u=+r)*Oa),n):u},n.angle(90)},oa.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Oa,u=n[1]*Oa,i=t[1]*Oa,a=Math.sin(r),o=Math.cos(r),l=Math.sin(u),c=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*a)*e+(e=c*s-l*f*o)*e),l*s+c*f*o)},oa.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return oa.range(Math.ceil(i/d)*d,u,d).map(h).concat(oa.range(Math.ceil(c/m)*m,l,m).map(g)).concat(oa.range(Math.ceil(r/p)*p,e,p).filter(function(n){return Ma(n%d)>Da}).map(s)).concat(oa.range(Math.ceil(o/v)*v,a,v).filter(function(n){return Ma(n%m)>Da}).map(f))}var e,r,u,i,a,o,l,c,s,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(l).slice(1),h(u).reverse().slice(1),g(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],c=+t[0][1],l=+t[1][1],i>u&&(t=i,i=u,u=t),c>l&&(t=c,c=l,l=t),n.precision(y)):[[i,c],[u,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],o=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),o>a&&(t=o,o=a,a=t),n.precision(y)):[[r,o],[e,a]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,s=me(o,a,90),f=ye(r,e,y),h=me(c,l,90),g=ye(i,u,y),n):y},n.majorExtent([[-180,-90+Da],[180,90-Da]]).minorExtent([[-180,-80-Da],[180,80+Da]])},oa.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=Me,u=xe;return n.distance=function(){return oa.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},oa.geo.interpolate=function(n,t){return be(n[0]*Oa,n[1]*Oa,t[0]*Oa,t[1]*Oa)},oa.geo.length=function(n){return Wo=0,oa.geo.stream(n,Jo),Wo};var Wo,Jo={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Go=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(oa.geo.azimuthalEqualArea=function(){return ae(Go)}).raw=Go;var Ko=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},y);(oa.geo.azimuthalEquidistant=function(){return ae(Ko)}).raw=Ko,(oa.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(oa.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var Qo=we(function(n){return 1/n},Math.atan);(oa.geo.gnomonic=function(){return ae(Qo)}).raw=Qo,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ha]},(oa.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var nl=we(function(){return 1},Math.asin);(oa.geo.orthographic=function(){return ae(nl)}).raw=nl;var tl=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(oa.geo.stereographic=function(){return ae(tl)}).raw=tl,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ha]},(oa.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,oa.geom={},oa.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=En(e),i=En(r),a=n.length,o=[],l=[];for(t=0;a>t;t++)o.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(o.sort(qe),t=0;a>t;t++)l.push([o[t][0],-o[t][1]]);var c=Le(o),s=Le(l),f=s[0]===c[0],h=s[s.length-1]===c[c.length-1],g=[];for(t=c.length-1;t>=0;--t)g.push(n[o[c[t]][2]]);for(t=+f;t=r&&c.x<=i&&c.y>=u&&c.y<=a?[[r,a],[i,a],[i,u],[r,u]]:[];s.point=n[o]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Da)*Da,y:Math.round(a(n,t)/Da)*Da,i:t}})}var r=Ce,u=ze,i=r,a=u,o=sl;return n?t(n):(t.links=function(n){return or(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return or(e(n)).cells.forEach(function(e,r){for(var u,i,a=e.site,o=e.edges.sort(Ve),l=-1,c=o.length,s=o[c-1].edge,f=s.l===a?s.r:s.l;++l=c,h=r>=s,g=h<<1|f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=hr()),f?u=c:o=c,h?a=s:l=s,i(n,t,e,r,u,a,o,l)}var s,f,h,g,p,v,d,m,y,M=En(o),x=En(l);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,a)for(g=0;p>g;++g)s=n[g],s.xm&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var b=+M(s=n[g],g),_=+x(s,g);v>b&&(v=b),d>_&&(d=_),b>m&&(m=b),_>y&&(y=_),f.push(b),h.push(_)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=hr();if(k.add=function(n){i(k,n,+M(n,++g),+x(n,g),v,d,m,y)},k.visit=function(n){gr(n,k,v,d,m,y)},k.find=function(n){return pr(k,n[0],n[1],v,d,m,y)},g=-1,null==t){for(;++g=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=pl.get(e)||gl,r=vl.get(r)||y,br(r(e.apply(null,la.call(arguments,1))))},oa.interpolateHcl=Rr,oa.interpolateHsl=Dr,oa.interpolateLab=Pr,oa.interpolateRound=jr,oa.transform=function(n){var t=sa.createElementNS(oa.ns.prefix.svg,"g");return(oa.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Ur(e?e.matrix:dl)})(n)},Ur.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var dl={a:1,b:0,c:0,d:1,e:0,f:0};oa.interpolateTransform=$r,oa.layout={},oa.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++eo*o/m){if(v>l){var c=t.charge/l;n.px-=i*c,n.py-=a*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=i*c,n.py-=a*c}}return!t.charge}}function t(n){n.px=oa.event.x,n.py=oa.event.y,l.resume()}var e,r,u,i,a,o,l={},c=oa.dispatch("start","tick","end"),s=[1,1],f=.9,h=ml,g=yl,p=-30,v=Ml,d=.1,m=.64,M=[],x=[];return l.tick=function(){if((u*=.99)<.005)return e=null,c.end({type:"end",alpha:u=0}),!0;var t,r,l,h,g,v,m,y,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,g=l.target,y=g.x-h.x,b=g.y-h.y,(v=y*y+b*b)&&(v=u*a[r]*((v=Math.sqrt(v))-i[r])/v,y*=v,b*=v,g.x-=y*(m=h.weight+g.weight?h.weight/(h.weight+g.weight):.5),g.y-=b*m,h.x+=y*(m=1-m),h.y+=b*m);if((m=u*d)&&(y=s[0]/2,b=s[1]/2,r=-1,m))for(;++r<_;)l=M[r],l.x+=(y-l.x)*m,l.y+=(b-l.y)*m;if(p)for(ru(t=oa.geom.quadtree(M),u,o),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*f,l.y-=(l.py-(l.py=l.y))*f);c.tick({type:"tick",alpha:u})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(s=n,l):s},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.friction=function(n){return arguments.length?(f=+n,l):f},l.charge=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(m=n*n,l):Math.sqrt(m)},l.alpha=function(n){return arguments.length?(n=+n,u?n>0?u=n:(e.c=null,e.t=NaN,e=null,c.start({type:"end",alpha:u=0})):n>0&&(c.start({type:"start",alpha:u=n}),e=qn(l.tick)),l):u},l.start=function(){function n(n,r){if(!e){for(e=new Array(u),l=0;u>l;++l)e[l]=[];for(l=0;c>l;++l){var i=x[l];e[i.source.index].push(i.target),e[i.target.index].push(i.source)}}for(var a,o=e[t],l=-1,s=o.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;u>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",f)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(i=[],"function"==typeof h)for(t=0;c>t;++t)i[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)i[t]=h;if(a=[],"function"==typeof g)for(t=0;c>t;++t)a[t]=+g.call(this,x[t],t);else for(t=0;c>t;++t)a[t]=g;if(o=[],"function"==typeof p)for(t=0;u>t;++t)o[t]=+p.call(this,M[t],t);else for(t=0;u>t;++t)o[t]=p;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=oa.behavior.drag().origin(y).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",nu)),arguments.length?void this.on("mouseover.force",tu).on("mouseout.force",eu).call(r):r},oa.rebind(l,c,"on")};var ml=20,yl=1,Ml=1/0;oa.layout.hierarchy=function(){function n(u){var i,a=[u],o=[];for(u.depth=0;null!=(i=a.pop());)if(o.push(i),(c=e.call(n,i,i.depth))&&(l=c.length)){for(var l,c,s;--l>=0;)a.push(s=c[l]),s.parent=i,s.depth=i.depth+1;r&&(i.value=0),i.children=c}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return au(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),o}var t=cu,e=ou,r=lu;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(iu(t,function(n){n.children&&(n.value=0)}),au(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},oa.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(a=i.length)){var a,o,l,c=-1;for(r=t.value?r/t.value:0;++cf?-1:1),p=oa.sum(c),v=p?(f-l*g)/p:0,d=oa.range(l),m=[];return null!=e&&d.sort(e===xl?function(n,t){return c[t]-c[n]}:function(n,t){return e(a[n],a[t])}),d.forEach(function(n){m[n]={data:a[n],value:o=c[n],startAngle:s,endAngle:s+=o*v+g,padAngle:h}}),m}var t=Number,e=xl,r=0,u=Ua,i=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n.padAngle=function(t){return arguments.length?(i=t,n):i},n};var xl={};oa.layout.stack=function(){function n(o,l){if(!(h=o.length))return o;var c=o.map(function(e,r){return t.call(n,e,r)}),s=c.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),a.call(n,t,e)]})}),f=e.call(n,s,l);c=oa.permute(c,f),s=oa.permute(s,f);var h,g,p,v,d=r.call(n,s,l),m=c[0].length;for(p=0;m>p;++p)for(u.call(n,c[0][p],v=d[p],s[0][p][1]),g=1;h>g;++g)u.call(n,c[g][p],v+=s[g-1][p][1],s[g][p][1]);return o}var t=y,e=pu,r=vu,u=gu,i=fu,a=hu;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:bl.get(t)||pu,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:_l.get(t)||vu,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(a=t,n):a},n.out=function(t){return arguments.length?(u=t,n):u},n};var bl=oa.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(du),i=n.map(mu),a=oa.range(r).sort(function(n,t){return u[n]-u[t]}),o=0,l=0,c=[],s=[];for(t=0;r>t;++t)e=a[t],l>o?(o+=i[e],c.push(e)):(l+=i[e],s.push(e));return s.reverse().concat(c)},reverse:function(n){return oa.range(n.length).reverse()},"default":pu}),_l=oa.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,a=[],o=0,l=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>o&&(o=r),a.push(r)}for(e=0;i>e;++e)l[e]=(o-a[e])/2;return l},wiggle:function(n){var t,e,r,u,i,a,o,l,c,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=l=c=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,o=f[e][0]-f[e-1][0];s>t;++t){for(r=0,a=(n[t][e][1]-n[t][e-1][1])/(2*o);t>r;++r)a+=(n[r][e][1]-n[r][e-1][1])/o;i+=a*n[t][e][1]}g[e]=l-=u?i/u*o:0,c>l&&(c=l)}for(e=0;h>e;++e)g[e]-=c;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,a=1/u,o=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=a}for(e=0;i>e;++e)o[e]=0;return o},zero:vu});oa.layout.histogram=function(){function n(n,i){for(var a,o,l=[],c=n.map(e,this),s=r.call(this,c,i),f=u.call(this,s,c,i),i=-1,h=c.length,g=f.length-1,p=t?1:1/h;++i0)for(i=-1;++i=s[0]&&o<=s[1]&&(a=l[oa.bisect(f,o,1,g)-1],a.y+=p,a.push(n[i]));return l}var t=!0,e=Number,r=bu,u=Mu;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return xu(n,t)}:En(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},oa.layout.pack=function(){function n(n,i){var a=e.call(this,n,i),o=a[0],l=u[0],c=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(o.x=o.y=0,au(o,function(n){n.r=+s(n.value)}),au(o,Nu),r){var f=r*(t?1:Math.max(2*o.r/l,2*o.r/c))/2;au(o,function(n){n.r+=f}),au(o,Nu),au(o,function(n){n.r-=f})}return Cu(o,l/2,c/2,t?1:1/Math.max(2*o.r/l,2*o.r/c)),a}var t,e=oa.layout.hierarchy().sort(_u),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},uu(n,e)},oa.layout.tree=function(){function n(n,u){var s=a.call(this,n,u),f=s[0],h=t(f);if(au(h,e),h.parent.m=-h.z,iu(h,r),c)iu(f,i);else{var g=f,p=f,v=f;iu(f,function(n){n.xp.x&&(p=n),n.depth>v.depth&&(v=n)});var d=o(g,p)/2-g.x,m=l[0]/(p.x+o(p,g)/2+d),y=l[1]/(v.depth||1);iu(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return s}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,a=0,o=i.length;o>a;++a)r.push((i[a]=u={_:i[a],parent:t,children:(u=i[a].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:a}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Du(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+o(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+o(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,a=t,l=u.parent.children[0],c=u.m,s=i.m,f=a.m,h=l.m;a=Tu(a),u=qu(u),a&&u;)l=qu(l),i=Tu(i),i.a=n,r=a.z+f-u.z-c+o(a._,u._),r>0&&(Ru(Pu(a,n,e),n,r),c+=r,s+=r),f+=a.m,c+=u.m,h+=l.m,s+=i.m;a&&!Tu(i)&&(i.t=a,i.m+=f-s),u&&!qu(l)&&(l.t=u,l.m+=c-h,e=n)}return e}function i(n){n.x*=l[0],n.y=n.depth*l[1]}var a=oa.layout.hierarchy().sort(null).value(null),o=Lu,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(o=t,n):o},n.size=function(t){return arguments.length?(c=null==(l=t)?i:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:i,n):c?l:null},uu(n,a)},oa.layout.cluster=function(){function n(n,i){var a,o=t.call(this,n,i),l=o[0],c=0;au(l,function(n){var t=n.children;t&&t.length?(n.x=Uu(t),n.y=ju(t)):(n.x=a?c+=e(n,a):0,n.y=0,a=n)});var s=Fu(l),f=Hu(l),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return au(l,u?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),o}var t=oa.layout.hierarchy().sort(null).value(null),e=Lu,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},uu(n,t)},oa.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++ut?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var a,o,l,c=f(e),s=[],h=i.slice(),p=1/0,v="slice"===g?c.dx:"dice"===g?c.dy:"slice-dice"===g?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),s.area=0;(l=h.length)>0;)s.push(a=h[l-1]),s.area+=a.area,"squarify"!==g||(o=r(s,v))<=p?(h.pop(),p=o):(s.area-=s.pop().area,u(s,v,c,!1),v=Math.min(c.dx,c.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,v,c,!0),s.length=s.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,a=f(t),o=r.slice(),l=[];for(n(o,a.dx*a.dy/t.value),l.area=0;i=o.pop();)l.push(i),l.area+=i.area,null!=i.z&&(u(l,i.z?a.dx:a.dy,a,!o.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,a=-1,o=n.length;++ae&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,a=n.length,o=e.x,c=e.y,s=t?l(n.area/t):0; -if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++ie.dx)&&(s=e.dx);++ie&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=oa.random.normal.apply(oa,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=oa.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},oa.scale={};var wl={floor:y,ceil:y};oa.scale.linear=function(){return Wu([0,1],[0,1],Mr,!1)};var Sl={s:1,g:1,p:1,r:1,e:1};oa.scale.log=function(){return ri(oa.scale.linear().domain([0,1]),10,!0,[1,10])};var kl=oa.format(".0e"),Nl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};oa.scale.pow=function(){return ui(oa.scale.linear(),1,[0,1])},oa.scale.sqrt=function(){return oa.scale.pow().exponent(.5)},oa.scale.ordinal=function(){return ai([],{t:"range",a:[[]]})},oa.scale.category10=function(){return oa.scale.ordinal().range(El)},oa.scale.category20=function(){return oa.scale.ordinal().range(Al)},oa.scale.category20b=function(){return oa.scale.ordinal().range(Cl)},oa.scale.category20c=function(){return oa.scale.ordinal().range(zl)};var El=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Al=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),Cl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),zl=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);oa.scale.quantile=function(){return oi([],[])},oa.scale.quantize=function(){return li(0,1,[0,1])},oa.scale.threshold=function(){return ci([.5],[0,1])},oa.scale.identity=function(){return si([0,1])},oa.svg={},oa.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),s=a.apply(this,arguments)-Ha,f=o.apply(this,arguments)-Ha,h=Math.abs(f-s),g=s>f?0:1;if(n>c&&(p=c,c=n,n=p),h>=Fa)return t(c,g)+(n?t(n,1-g):"")+"Z";var p,v,d,m,y,M,x,b,_,w,S,k,N=0,E=0,A=[];if((m=(+l.apply(this,arguments)||0)/2)&&(d=i===Ll?Math.sqrt(n*n+c*c):+i.apply(this,arguments),g||(E*=-1),c&&(E=tn(d/c*Math.sin(m))),n&&(N=tn(d/n*Math.sin(m)))),c){y=c*Math.cos(s+E),M=c*Math.sin(s+E),x=c*Math.cos(f-E),b=c*Math.sin(f-E);var C=Math.abs(f-s-2*E)<=ja?0:1;if(E&&mi(y,M,x,b)===g^C){var z=(s+f)/2;y=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else y=M=0;if(n){_=n*Math.cos(f-N),w=n*Math.sin(f-N),S=n*Math.cos(s+N),k=n*Math.sin(s+N);var L=Math.abs(s-f+2*N)<=ja?0:1;if(N&&mi(_,w,S,k)===1-g^L){var q=(s+f)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Da&&(p=Math.min(Math.abs(c-n)/2,+u.apply(this,arguments)))>.001){v=c>n^g?0:1;var T=p,R=p;if(ja>h){var D=null==S?[_,w]:null==x?[y,M]:Re([y,M],[S,k],[x,b],[_,w]),P=y-D[0],j=M-D[1],U=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*U+j*F)/(Math.sqrt(P*P+j*j)*Math.sqrt(U*U+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(p,(n-O)/(H-1)),T=Math.min(p,(c-O)/(H+1))}if(null!=x){var I=yi(null==S?[_,w]:[S,k],[y,M],c,T,g),Y=yi([x,b],[_,w],c,T,g);p===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-g^mi(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",g," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",y,",",M);if(null!=S){var Z=yi([y,M],[S,k],n,-R,g),V=yi([_,w],null==x?[y,M]:[x,b],n,-R,g);p===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",g^mi(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-g," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",y,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",g," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-g," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hi,r=gi,u=fi,i=Ll,a=pi,o=vi,l=di;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(u=En(t),n):u},n.padRadius=function(t){return arguments.length?(i=t==Ll?Ll:En(t),n):i},n.startAngle=function(t){return arguments.length?(a=En(t),n):a},n.endAngle=function(t){return arguments.length?(o=En(t),n):o},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+a.apply(this,arguments)+ +o.apply(this,arguments))/2-Ha;return[Math.cos(t)*n,Math.sin(t)*n]},n};var Ll="auto";oa.svg.line=function(){return Mi(y)};var ql=oa.map({linear:xi,"linear-closed":bi,step:_i,"step-before":wi,"step-after":Si,basis:zi,"basis-open":Li,"basis-closed":qi,bundle:Ti,cardinal:Ei,"cardinal-open":ki,"cardinal-closed":Ni,monotone:Fi});ql.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Tl=[0,2/3,1/3,0],Rl=[0,1/3,2/3,0],Dl=[0,1/6,2/3,1/6];oa.svg.line.radial=function(){var n=Mi(Hi);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wi.reverse=Si,Si.reverse=wi,oa.svg.area=function(){return Oi(y)},oa.svg.area.radial=function(){var n=Oi(Hi);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},oa.svg.chord=function(){function n(n,o){var l=t(this,i,n,o),c=t(this,a,n,o);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?u(l.r,l.p1,l.r,l.p0):u(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+u(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=o.call(n,u,r),a=l.call(n,u,r)-Ha,s=c.call(n,u,r)-Ha;return{r:i,a0:a,a1:s,p0:[i*Math.cos(a),i*Math.sin(a)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>ja)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=Me,a=xe,o=Ii,l=pi,c=vi;return n.radius=function(t){return arguments.length?(o=En(t),n):o},n.source=function(t){return arguments.length?(i=En(t),n):i},n.target=function(t){return arguments.length?(a=En(t),n):a},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},oa.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),a=e.call(this,n,u),o=(i.y+a.y)/2,l=[i,{x:i.x,y:o},{x:a.x,y:o},a];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yi;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},oa.svg.diagonal.radial=function(){var n=oa.svg.diagonal(),t=Yi,e=n.projection;return n.projection=function(n){return arguments.length?e(Zi(t=n)):t},n},oa.svg.symbol=function(){function n(n,r){return(Pl.get(t.call(this,n,r))||$i)(e.call(this,n,r))}var t=Xi,e=Vi;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Pl=oa.map({circle:$i,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Ul)),e=t*Ul;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});oa.svg.symbolTypes=Pl.keys();var jl=Math.sqrt(3),Ul=Math.tan(30*Oa);Aa.transition=function(n){for(var t,e,r=Fl||++Yl,u=Ki(n),i=[],a=Hl||{time:Date.now(),ease:Nr,delay:0,duration:250},o=-1,l=this.length;++oi;i++){u.push(t=[]);for(var e=this[i],o=0,l=e.length;l>o;o++)(r=e[o])&&n.call(r,r.__data__,o,i)&&t.push(r)}return Wi(u,this.namespace,this.id)},Il.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(u){u[r][e].tween.set(n,t)})},Il.attr=function(n,t){function e(){this.removeAttribute(o)}function r(){this.removeAttributeNS(o.space,o.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(o);return e!==n&&(t=a(e,n),function(n){this.setAttribute(o,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(o.space,o.local);return e!==n&&(t=a(e,n),function(n){this.setAttributeNS(o.space,o.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var a="transform"==n?$r:Mr,o=oa.ns.qualify(n);return Ji(this,"attr."+n,t,o.local?i:u)},Il.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=oa.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Il.style=function(n,e,r){function u(){this.style.removeProperty(n)}function i(e){return null==e?u:(e+="",function(){var u,i=t(this).getComputedStyle(this,null).getPropertyValue(n);return i!==e&&(u=Mr(i,e),function(t){this.style.setProperty(n,u(t),r)})})}var a=arguments.length;if(3>a){if("string"!=typeof n){2>a&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ji(this,"style."+n,e,i)},Il.styleTween=function(n,e,r){function u(u,i){var a=e.call(this,u,i,t(this).getComputedStyle(this,null).getPropertyValue(n));return a&&function(t){this.style.setProperty(n,a(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,u)},Il.text=function(n){return Ji(this,"text",n,Gi)},Il.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Il.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=oa.ease.apply(oa,arguments)),Y(this,function(r){r[e][t].ease=n}))},Il.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,u,i){r[e][t].delay=+n.call(r,r.__data__,u,i)}:(n=+n,function(r){r[e][t].delay=n}))},Il.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,u,i){r[e][t].duration=Math.max(1,n.call(r,r.__data__,u,i))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Il.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var u=Hl,i=Fl;try{Fl=e,Y(this,function(t,u,i){Hl=t[r][e],n.call(t,t.__data__,u,i)})}finally{Hl=u,Fl=i}}else Y(this,function(u){var i=u[r][e];(i.event||(i.event=oa.dispatch("start","end","interrupt"))).on(n,t)});return this},Il.transition=function(){for(var n,t,e,r,u=this.id,i=++Yl,a=this.namespace,o=[],l=0,c=this.length;c>l;l++){o.push(n=[]);for(var t=this[l],s=0,f=t.length;f>s;s++)(e=t[s])&&(r=e[a][u],Qi(e,s,a,i,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wi(o,a,i)},oa.svg.axis=function(){function n(n){n.each(function(){var n,c=oa.select(this),s=this.__chart__||e,f=this.__chart__=e.copy(),h=null==l?f.ticks?f.ticks.apply(f,o):f.domain():l,g=null==t?f.tickFormat?f.tickFormat.apply(f,o):y:t,p=c.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Da),d=oa.transition(p.exit()).style("opacity",Da).remove(),m=oa.transition(p.order()).style("opacity",1),M=Math.max(u,0)+a,x=Zu(f),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),oa.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=m.select("line"),C=p.select("text").text(g),z=v.select("text"),L=m.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=na,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*i+"V0H"+x[1]+"V"+q*i)):(n=ta,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*i+","+x[0]+"H0V"+x[1]+"H"+q*i)),E.attr(N,q*u),z.attr(k,q*M),A.attr(S,0).attr(N,q*u),L.attr(w,0).attr(k,q*M),f.rangeBand){var T=f,R=T.rangeBand()/2;s=f=function(n){return T(n)+R}}else s.rangeBand?s=f:d.call(n,f,s);v.call(n,s,f),m.call(n,f,f)})}var t,e=oa.scale.linear(),r=Zl,u=6,i=6,a=3,o=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Vl?t+"":Zl,n):r},n.ticks=function(){return arguments.length?(o=ca(arguments),n):o},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(a=+t,n):a},n.tickSubdivide=function(){return arguments.length&&n},n};var Zl="bottom",Vl={top:1,right:1,bottom:1,left:1};oa.svg.brush=function(){function n(t){t.each(function(){var t=oa.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",i).on("touchstart.brush",i),a=t.selectAll(".background").data([0]);a.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var o=t.selectAll(".resize").data(v,y);o.exit().remove(),o.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Xl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),o.style("display",n.empty()?"none":null);var l,f=oa.transition(t),h=oa.transition(a);c&&(l=Zu(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(f)),s&&(l=Zu(s),h.attr("y",l[0]).attr("height",l[1]-l[0]),u(f)),e(f)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+f[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",f[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1]-f[0])}function u(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function i(){function i(){32==oa.event.keyCode&&(C||(M=null,L[0]-=f[1],L[1]-=h[1],C=2),S())}function v(){32==oa.event.keyCode&&2==C&&(L[0]+=f[1],L[1]+=h[1],C=0,S())}function d(){var n=oa.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(oa.event.altKey?(M||(M=[(f[0]+f[1])/2,(h[0]+h[1])/2]),L[0]=f[+(n[0]s?(u=r,r=s):u=s),v[0]!=r||v[1]!=u?(e?o=null:a=null,v[0]=r,v[1]=u,!0):void 0}function y(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),oa.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=oa.select(oa.event.target),w=l.of(b,arguments),k=oa.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&s,C=_.classed("extent"),z=W(b),L=oa.mouse(b),q=oa.select(t(b)).on("keydown.brush",i).on("keyup.brush",v);if(oa.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",y):q.on("mousemove.brush",d).on("mouseup.brush",y),k.interrupt().selectAll("*").interrupt(),C)L[0]=f[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[f[1-T]-L[0],h[1-R]-L[1]],L[0]=f[T],L[1]=h[R]}else oa.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),oa.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var a,o,l=N(n,"brushstart","brush","brushend"),c=null,s=null,f=[0,0],h=[0,0],g=!0,p=!0,v=$l[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:f,y:h,i:a,j:o},e=this.__chart__||t;this.__chart__=t,Fl?oa.select(this).transition().each("start.brush",function(){a=e.i,o=e.j,f=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(f,t.x),r=xr(h,t.y);return a=o=null,function(u){f=t.x=e(u),h=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){a=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=$l[!c<<1|!s],n):c},n.y=function(t){return arguments.length?(s=t,v=$l[!c<<1|!s],n):s},n.clamp=function(t){return arguments.length?(c&&s?(g=!!t[0],p=!!t[1]):c?g=!!t:s&&(p=!!t),n):c&&s?[g,p]:c?g:s?p:null},n.extent=function(t){var e,r,u,i,l;return arguments.length?(c&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),a=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),(e!=f[0]||r!=f[1])&&(f=[e,r])),s&&(u=t[0],i=t[1],c&&(u=u[1],i=i[1]),o=[u,i],s.invert&&(u=s(u),i=s(i)),u>i&&(l=u,u=i,i=l),(u!=h[0]||i!=h[1])&&(h=[u,i])),n):(c&&(a?(e=a[0],r=a[1]):(e=f[0],r=f[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),s&&(o?(u=o[0],i=o[1]):(u=h[0],i=h[1],s.invert&&(u=s.invert(u),i=s.invert(i)),u>i&&(l=u,u=i,i=l))),c&&s?[[e,u],[r,i]]:c?[e,r]:s&&[u,i])},n.clear=function(){return n.empty()||(f=[0,0],h=[0,0],a=o=null),n},n.empty=function(){return!!c&&f[0]==f[1]||!!s&&h[0]==h[1]},oa.rebind(n,l,"on")};var Xl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},$l=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Bl=ho.format=Mo.timeFormat,Wl=Bl.utc,Jl=Wl("%Y-%m-%dT%H:%M:%S.%LZ");Bl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?ea:Jl,ea.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},ea.toString=Jl.toString,ho.second=On(function(n){return new go(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ho.seconds=ho.second.range,ho.seconds.utc=ho.second.utc.range,ho.minute=On(function(n){return new go(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ho.minutes=ho.minute.range,ho.minutes.utc=ho.minute.utc.range,ho.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new go(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ho.hours=ho.hour.range,ho.hours.utc=ho.hour.utc.range,ho.month=On(function(n){return n=ho.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ho.months=ho.month.range,ho.months.utc=ho.month.utc.range;var Gl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Kl=[[ho.second,1],[ho.second,5],[ho.second,15],[ho.second,30],[ho.minute,1],[ho.minute,5],[ho.minute,15],[ho.minute,30],[ho.hour,1],[ho.hour,3],[ho.hour,6],[ho.hour,12],[ho.day,1],[ho.day,2],[ho.week,1],[ho.month,1],[ho.month,3],[ho.year,1]],Ql=Bl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),nc={range:function(n,t,e){return oa.range(Math.ceil(n/e)*e,+t,e).map(ua)},floor:y,ceil:y};Kl.year=ho.year,ho.scale=function(){return ra(oa.scale.linear(),Kl,Ql)};var tc=Kl.map(function(n){return[n[0].utc,n[1]]}),ec=Wl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);tc.year=ho.year.utc,ho.scale.utc=function(){return ra(oa.scale.linear(),tc,ec)},oa.text=An(function(n){return n.responseText}),oa.json=function(n,t){return Cn(n,"application/json",ia,t)},oa.html=function(n,t){return Cn(n,"text/html",aa,t)},oa.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=oa,define(oa)):"object"==typeof module&&module.exports?module.exports=oa:this.d3=oa}(); \ No newline at end of file +if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++ie.dx)&&(s=e.dx);++ie&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=oa.random.normal.apply(oa,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=oa.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},oa.scale={};var wl={floor:y,ceil:y};oa.scale.linear=function(){return Wu([0,1],[0,1],Mr,!1)};var Sl={s:1,g:1,p:1,r:1,e:1};oa.scale.log=function(){return ri(oa.scale.linear().domain([0,1]),10,!0,[1,10])};var kl=oa.format(".0e"),Nl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};oa.scale.pow=function(){return ui(oa.scale.linear(),1,[0,1])},oa.scale.sqrt=function(){return oa.scale.pow().exponent(.5)},oa.scale.ordinal=function(){return ai([],{t:"range",a:[[]]})},oa.scale.category10=function(){return oa.scale.ordinal().range(El)},oa.scale.category20=function(){return oa.scale.ordinal().range(Al)},oa.scale.category20b=function(){return oa.scale.ordinal().range(Cl)},oa.scale.category20c=function(){return oa.scale.ordinal().range(zl)};var El=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Al=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),Cl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),zl=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);oa.scale.quantile=function(){return oi([],[])},oa.scale.quantize=function(){return li(0,1,[0,1])},oa.scale.threshold=function(){return ci([.5],[0,1])},oa.scale.identity=function(){return si([0,1])},oa.svg={},oa.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),s=a.apply(this,arguments)-Ha,f=o.apply(this,arguments)-Ha,h=Math.abs(f-s),g=s>f?0:1;if(n>c&&(p=c,c=n,n=p),h>=Fa)return t(c,g)+(n?t(n,1-g):"")+"Z";var p,v,d,m,y,M,x,b,_,w,S,k,N=0,E=0,A=[];if((m=(+l.apply(this,arguments)||0)/2)&&(d=i===Ll?Math.sqrt(n*n+c*c):+i.apply(this,arguments),g||(E*=-1),c&&(E=tn(d/c*Math.sin(m))),n&&(N=tn(d/n*Math.sin(m)))),c){y=c*Math.cos(s+E),M=c*Math.sin(s+E),x=c*Math.cos(f-E),b=c*Math.sin(f-E);var C=Math.abs(f-s-2*E)<=ja?0:1;if(E&&mi(y,M,x,b)===g^C){var z=(s+f)/2;y=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else y=M=0;if(n){_=n*Math.cos(f-N),w=n*Math.sin(f-N),S=n*Math.cos(s+N),k=n*Math.sin(s+N);var L=Math.abs(s-f+2*N)<=ja?0:1;if(N&&mi(_,w,S,k)===1-g^L){var q=(s+f)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Da&&(p=Math.min(Math.abs(c-n)/2,+u.apply(this,arguments)))>.001){v=c>n^g?0:1;var T=p,R=p;if(ja>h){var D=null==S?[_,w]:null==x?[y,M]:Re([y,M],[S,k],[x,b],[_,w]),P=y-D[0],j=M-D[1],U=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*U+j*F)/(Math.sqrt(P*P+j*j)*Math.sqrt(U*U+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(p,(n-O)/(H-1)),T=Math.min(p,(c-O)/(H+1))}if(null!=x){var I=yi(null==S?[_,w]:[S,k],[y,M],c,T,g),Y=yi([x,b],[_,w],c,T,g);p===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-g^mi(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",g," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",y,",",M);if(null!=S){var Z=yi([y,M],[S,k],n,-R,g),V=yi([_,w],null==x?[y,M]:[x,b],n,-R,g);p===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",g^mi(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-g," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",y,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",g," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-g," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hi,r=gi,u=fi,i=Ll,a=pi,o=vi,l=di;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(u=En(t),n):u},n.padRadius=function(t){return arguments.length?(i=t==Ll?Ll:En(t),n):i},n.startAngle=function(t){return arguments.length?(a=En(t),n):a},n.endAngle=function(t){return arguments.length?(o=En(t),n):o},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+a.apply(this,arguments)+ +o.apply(this,arguments))/2-Ha;return[Math.cos(t)*n,Math.sin(t)*n]},n};var Ll="auto";oa.svg.line=function(){return Mi(y)};var ql=oa.map({linear:xi,"linear-closed":bi,step:_i,"step-before":wi,"step-after":Si,basis:zi,"basis-open":Li,"basis-closed":qi,bundle:Ti,cardinal:Ei,"cardinal-open":ki,"cardinal-closed":Ni,monotone:Fi});ql.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Tl=[0,2/3,1/3,0],Rl=[0,1/3,2/3,0],Dl=[0,1/6,2/3,1/6];oa.svg.line.radial=function(){var n=Mi(Hi);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wi.reverse=Si,Si.reverse=wi,oa.svg.area=function(){return Oi(y)},oa.svg.area.radial=function(){var n=Oi(Hi);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},oa.svg.chord=function(){function n(n,o){var l=t(this,i,n,o),c=t(this,a,n,o);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?u(l.r,l.p1,l.r,l.p0):u(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+u(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=o.call(n,u,r),a=l.call(n,u,r)-Ha,s=c.call(n,u,r)-Ha;return{r:i,a0:a,a1:s,p0:[i*Math.cos(a),i*Math.sin(a)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>ja)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=Me,a=xe,o=Ii,l=pi,c=vi;return n.radius=function(t){return arguments.length?(o=En(t),n):o},n.source=function(t){return arguments.length?(i=En(t),n):i},n.target=function(t){return arguments.length?(a=En(t),n):a},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},oa.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),a=e.call(this,n,u),o=(i.y+a.y)/2,l=[i,{x:i.x,y:o},{x:a.x,y:o},a];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yi;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},oa.svg.diagonal.radial=function(){var n=oa.svg.diagonal(),t=Yi,e=n.projection;return n.projection=function(n){return arguments.length?e(Zi(t=n)):t},n},oa.svg.symbol=function(){function n(n,r){return(Pl.get(t.call(this,n,r))||$i)(e.call(this,n,r))}var t=Xi,e=Vi;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Pl=oa.map({circle:$i,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Ul)),e=t*Ul;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});oa.svg.symbolTypes=Pl.keys();var jl=Math.sqrt(3),Ul=Math.tan(30*Oa);Aa.transition=function(n){for(var t,e,r=Fl||++Yl,u=Ki(n),i=[],a=Hl||{time:Date.now(),ease:Nr,delay:0,duration:250},o=-1,l=this.length;++oi;i++){u.push(t=[]);for(var e=this[i],o=0,l=e.length;l>o;o++)(r=e[o])&&n.call(r,r.__data__,o,i)&&t.push(r)}return Wi(u,this.namespace,this.id)},Il.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(u){u[r][e].tween.set(n,t)})},Il.attr=function(n,t){function e(){this.removeAttribute(o)}function r(){this.removeAttributeNS(o.space,o.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(o);return e!==n&&(t=a(e,n),function(n){this.setAttribute(o,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(o.space,o.local);return e!==n&&(t=a(e,n),function(n){this.setAttributeNS(o.space,o.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var a="transform"==n?$r:Mr,o=oa.ns.qualify(n);return Ji(this,"attr."+n,t,o.local?i:u)},Il.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=oa.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Il.style=function(n,e,r){function u(){this.style.removeProperty(n)}function i(e){return null==e?u:(e+="",function(){var u,i=t(this).getComputedStyle(this,null).getPropertyValue(n);return i!==e&&(u=Mr(i,e),function(t){this.style.setProperty(n,u(t),r)})})}var a=arguments.length;if(3>a){if("string"!=typeof n){2>a&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ji(this,"style."+n,e,i)},Il.styleTween=function(n,e,r){function u(u,i){var a=e.call(this,u,i,t(this).getComputedStyle(this,null).getPropertyValue(n));return a&&function(t){this.style.setProperty(n,a(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,u)},Il.text=function(n){return Ji(this,"text",n,Gi)},Il.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Il.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=oa.ease.apply(oa,arguments)),Y(this,function(r){r[e][t].ease=n}))},Il.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,u,i){r[e][t].delay=+n.call(r,r.__data__,u,i)}:(n=+n,function(r){r[e][t].delay=n}))},Il.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,u,i){r[e][t].duration=Math.max(1,n.call(r,r.__data__,u,i))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Il.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var u=Hl,i=Fl;try{Fl=e,Y(this,function(t,u,i){Hl=t[r][e],n.call(t,t.__data__,u,i)})}finally{Hl=u,Fl=i}}else Y(this,function(u){var i=u[r][e];(i.event||(i.event=oa.dispatch("start","end","interrupt"))).on(n,t)});return this},Il.transition=function(){for(var n,t,e,r,u=this.id,i=++Yl,a=this.namespace,o=[],l=0,c=this.length;c>l;l++){o.push(n=[]);for(var t=this[l],s=0,f=t.length;f>s;s++)(e=t[s])&&(r=e[a][u],Qi(e,s,a,i,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wi(o,a,i)},oa.svg.axis=function(){function n(n){n.each(function(){var n,c=oa.select(this),s=this.__chart__||e,f=this.__chart__=e.copy(),h=null==l?f.ticks?f.ticks.apply(f,o):f.domain():l,g=null==t?f.tickFormat?f.tickFormat.apply(f,o):y:t,p=c.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Da),d=oa.transition(p.exit()).style("opacity",Da).remove(),m=oa.transition(p.order()).style("opacity",1),M=Math.max(u,0)+a,x=Zu(f),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),oa.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=m.select("line"),C=p.select("text").text(g),z=v.select("text"),L=m.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=na,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*i+"V0H"+x[1]+"V"+q*i)):(n=ta,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*i+","+x[0]+"H0V"+x[1]+"H"+q*i)),E.attr(N,q*u),z.attr(k,q*M),A.attr(S,0).attr(N,q*u),L.attr(w,0).attr(k,q*M),f.rangeBand){var T=f,R=T.rangeBand()/2;s=f=function(n){return T(n)+R}}else s.rangeBand?s=f:d.call(n,f,s);v.call(n,s,f),m.call(n,f,f)})}var t,e=oa.scale.linear(),r=Zl,u=6,i=6,a=3,o=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Vl?t+"":Zl,n):r},n.ticks=function(){return arguments.length?(o=ca(arguments),n):o},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(a=+t,n):a},n.tickSubdivide=function(){return arguments.length&&n},n};var Zl="bottom",Vl={top:1,right:1,bottom:1,left:1};oa.svg.brush=function(){function n(t){t.each(function(){var t=oa.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",i).on("touchstart.brush",i),a=t.selectAll(".background").data([0]);a.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var o=t.selectAll(".resize").data(v,y);o.exit().remove(),o.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Xl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),o.style("display",n.empty()?"none":null);var l,f=oa.transition(t),h=oa.transition(a);c&&(l=Zu(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(f)),s&&(l=Zu(s),h.attr("y",l[0]).attr("height",l[1]-l[0]),u(f)),e(f)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+f[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",f[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1]-f[0])}function u(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function i(){function i(){32==oa.event.keyCode&&(C||(M=null,L[0]-=f[1],L[1]-=h[1],C=2),S())}function v(){32==oa.event.keyCode&&2==C&&(L[0]+=f[1],L[1]+=h[1],C=0,S())}function d(){var n=oa.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(oa.event.altKey?(M||(M=[(f[0]+f[1])/2,(h[0]+h[1])/2]),L[0]=f[+(n[0]s?(u=r,r=s):u=s),v[0]!=r||v[1]!=u?(e?o=null:a=null,v[0]=r,v[1]=u,!0):void 0}function y(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),oa.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=oa.select(oa.event.target),w=l.of(b,arguments),k=oa.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&s,C=_.classed("extent"),z=W(b),L=oa.mouse(b),q=oa.select(t(b)).on("keydown.brush",i).on("keyup.brush",v);if(oa.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",y):q.on("mousemove.brush",d).on("mouseup.brush",y),k.interrupt().selectAll("*").interrupt(),C)L[0]=f[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[f[1-T]-L[0],h[1-R]-L[1]],L[0]=f[T],L[1]=h[R]}else oa.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),oa.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var a,o,l=N(n,"brushstart","brush","brushend"),c=null,s=null,f=[0,0],h=[0,0],g=!0,p=!0,v=$l[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:f,y:h,i:a,j:o},e=this.__chart__||t;this.__chart__=t,Fl?oa.select(this).transition().each("start.brush",function(){a=e.i,o=e.j,f=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(f,t.x),r=xr(h,t.y);return a=o=null,function(u){f=t.x=e(u),h=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){a=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=$l[!c<<1|!s],n):c},n.y=function(t){return arguments.length?(s=t,v=$l[!c<<1|!s],n):s},n.clamp=function(t){return arguments.length?(c&&s?(g=!!t[0],p=!!t[1]):c?g=!!t:s&&(p=!!t),n):c&&s?[g,p]:c?g:s?p:null},n.extent=function(t){var e,r,u,i,l;return arguments.length?(c&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),a=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),(e!=f[0]||r!=f[1])&&(f=[e,r])),s&&(u=t[0],i=t[1],c&&(u=u[1],i=i[1]),o=[u,i],s.invert&&(u=s(u),i=s(i)),u>i&&(l=u,u=i,i=l),(u!=h[0]||i!=h[1])&&(h=[u,i])),n):(c&&(a?(e=a[0],r=a[1]):(e=f[0],r=f[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),s&&(o?(u=o[0],i=o[1]):(u=h[0],i=h[1],s.invert&&(u=s.invert(u),i=s.invert(i)),u>i&&(l=u,u=i,i=l))),c&&s?[[e,u],[r,i]]:c?[e,r]:s&&[u,i])},n.clear=function(){return n.empty()||(f=[0,0],h=[0,0],a=o=null),n},n.empty=function(){return!!c&&f[0]==f[1]||!!s&&h[0]==h[1]},oa.rebind(n,l,"on")};var Xl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},$l=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Bl=ho.format=Mo.timeFormat,Wl=Bl.utc,Jl=Wl("%Y-%m-%dT%H:%M:%S.%LZ");Bl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?ea:Jl,ea.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},ea.toString=Jl.toString,ho.second=On(function(n){return new go(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ho.seconds=ho.second.range,ho.seconds.utc=ho.second.utc.range,ho.minute=On(function(n){return new go(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ho.minutes=ho.minute.range,ho.minutes.utc=ho.minute.utc.range,ho.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new go(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ho.hours=ho.hour.range,ho.hours.utc=ho.hour.utc.range,ho.month=On(function(n){return n=ho.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ho.months=ho.month.range,ho.months.utc=ho.month.utc.range;var Gl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Kl=[[ho.second,1],[ho.second,5],[ho.second,15],[ho.second,30],[ho.minute,1],[ho.minute,5],[ho.minute,15],[ho.minute,30],[ho.hour,1],[ho.hour,3],[ho.hour,6],[ho.hour,12],[ho.day,1],[ho.day,2],[ho.week,1],[ho.month,1],[ho.month,3],[ho.year,1]],Ql=Bl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),nc={range:function(n,t,e){return oa.range(Math.ceil(n/e)*e,+t,e).map(ua)},floor:y,ceil:y};Kl.year=ho.year,ho.scale=function(){return ra(oa.scale.linear(),Kl,Ql)};var tc=Kl.map(function(n){return[n[0].utc,n[1]]}),ec=Wl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);tc.year=ho.year.utc,ho.scale.utc=function(){return ra(oa.scale.linear(),tc,ec)},oa.text=An(function(n){return n.responseText}),oa.json=function(n,t){return Cn(n,"application/json",ia,t)},oa.html=function(n,t){return Cn(n,"text/html",aa,t)},oa.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=oa,define(oa)):"object"==typeof module&&module.exports?module.exports=oa:this.d3=oa}(); diff --git a/vendor/assets/javascripts/franceconnect.js b/vendor/assets/javascripts/franceconnect.js index c85f35d74..e68e19906 100644 --- a/vendor/assets/javascripts/franceconnect.js +++ b/vendor/assets/javascripts/franceconnect.js @@ -147,4 +147,3 @@ var franceConnectKit = {}; } }, false); })(this); - diff --git a/vendor/assets/javascripts/graham_scan.min.js b/vendor/assets/javascripts/graham_scan.min.js index 59b50d143..075e53dd8 100644 --- a/vendor/assets/javascripts/graham_scan.min.js +++ b/vendor/assets/javascripts/graham_scan.min.js @@ -4,4 +4,4 @@ * Date: 14/06/13 * Updated: 25/01/14 * Description: An implementation of the Graham's Scan Convex Hull algorithm in Javascript.*/ -function ConvexHullGrahamScan(){this.anchorPoint=undefined;this.reverse=false;this.points=[]}ConvexHullGrahamScan.prototype={constructor:ConvexHullGrahamScan,Point:function(e,t){this.x=e;this.y=t},_findPolarAngle:function(e,t){var n=57.295779513082;var r=t.x-e.x;var i=t.y-e.y;if(r==0&&i==0){return 0}var s=Math.atan2(i,r)*n;if(this.reverse){if(s<=0){s+=360}}else{if(s>=0){s+=360}}return s},addPoint:function(e,t){if(this.anchorPoint===undefined){this.anchorPoint=new this.Point(e,t)}else if(this.anchorPoint.y>t||this.anchorPoint.y==t&&this.anchorPoint.x>e){this.anchorPoint.y=t;this.anchorPoint.x=e;this.points.unshift(new this.Point(e,t));return}this.points.push(new this.Point(e,t))},_sortPoints:function(){var e=this;return this.points.sort(function(t,n){var r=e._findPolarAngle(e.anchorPoint,t);var i=e._findPolarAngle(e.anchorPoint,n);if(ri){return 1}return 0})},_checkPoints:function(e,t,n){var r;var i=this._findPolarAngle(e,t);var s=this._findPolarAngle(e,n);if(i>s){r=i-s;return!(r>180)}else if(i180}return false},getHull:function(){var e=[],t,n;this.reverse=this.points.every(function(e){return e.x<0&&e.y<0});t=this._sortPoints();n=t.length;if(n<4){return t}e.push(t.shift(),t.shift());while(true){var r,i,s;e.push(t.shift());r=e[e.length-3];i=e[e.length-2];s=e[e.length-1];if(this._checkPoints(r,i,s)){e.splice(e.length-2,1)}if(t.length==0){if(n==e.length){return e}t=e;n=t.length;e=[];e.push(t.shift(),t.shift())}}}} \ No newline at end of file +function ConvexHullGrahamScan(){this.anchorPoint=undefined;this.reverse=false;this.points=[]}ConvexHullGrahamScan.prototype={constructor:ConvexHullGrahamScan,Point:function(e,t){this.x=e;this.y=t},_findPolarAngle:function(e,t){var n=57.295779513082;var r=t.x-e.x;var i=t.y-e.y;if(r==0&&i==0){return 0}var s=Math.atan2(i,r)*n;if(this.reverse){if(s<=0){s+=360}}else{if(s>=0){s+=360}}return s},addPoint:function(e,t){if(this.anchorPoint===undefined){this.anchorPoint=new this.Point(e,t)}else if(this.anchorPoint.y>t||this.anchorPoint.y==t&&this.anchorPoint.x>e){this.anchorPoint.y=t;this.anchorPoint.x=e;this.points.unshift(new this.Point(e,t));return}this.points.push(new this.Point(e,t))},_sortPoints:function(){var e=this;return this.points.sort(function(t,n){var r=e._findPolarAngle(e.anchorPoint,t);var i=e._findPolarAngle(e.anchorPoint,n);if(ri){return 1}return 0})},_checkPoints:function(e,t,n){var r;var i=this._findPolarAngle(e,t);var s=this._findPolarAngle(e,n);if(i>s){r=i-s;return!(r>180)}else if(i180}return false},getHull:function(){var e=[],t,n;this.reverse=this.points.every(function(e){return e.x<0&&e.y<0});t=this._sortPoints();n=t.length;if(n<4){return t}e.push(t.shift(),t.shift());while(true){var r,i,s;e.push(t.shift());r=e[e.length-3];i=e[e.length-2];s=e[e.length-1];if(this._checkPoints(r,i,s)){e.splice(e.length-2,1)}if(t.length==0){if(n==e.length){return e}t=e;n=t.length;e=[];e.push(t.shift(),t.shift())}}}} diff --git a/vendor/assets/javascripts/handlebars.js b/vendor/assets/javascripts/handlebars.js index 289ae458a..68634bafd 100644 --- a/vendor/assets/javascripts/handlebars.js +++ b/vendor/assets/javascripts/handlebars.js @@ -4605,4 +4605,4 @@ return /******/ (function(modules) { // webpackBootstrap /***/ } /******/ ]) }); -; \ No newline at end of file +; diff --git a/vendor/assets/javascripts/leaflet.freedraw.js b/vendor/assets/javascripts/leaflet.freedraw.js index 05b9368ef..4cae9c6f3 100644 --- a/vendor/assets/javascripts/leaflet.freedraw.js +++ b/vendor/assets/javascripts/leaflet.freedraw.js @@ -1,2 +1,2 @@ /*! leaflet.freedraw by Adam Timberlake created on 2015-06-20 */ -!function(a,b,c,d){"use strict";b.freeDraw=function(a){return new b.FreeDraw(a)},b.FreeDraw=b.FeatureGroup.extend({map:null,state:[],defaultPreferences:{},svg:{},element:{},creating:!1,lineFunction:function(){},latLngs:[],options:{},lastNotification:"",markerLayer:b.layerGroup(),hull:{},memory:{},polygons:[],edges:[],mode:1,polygonCount:0,fromPoint:{x:0,y:0},movingEdge:null,boundaryUpdateRequired:!1,silenced:!1,RECOUNT_TIMEOUT:1,initialize:function(a){"undefined"==typeof c&&b.FreeDraw.Throw("D3 is a required library","http://d3js.org/"),"undefined"==typeof d&&b.FreeDraw.Throw("JSClipper is a required library","http://sourceforge.net/p/jsclipper/wiki/Home%206/"),this.fromPoint={x:0,y:0},this.polygons=[],this.edges=[],this.hull={},this._latLngs=[],a=a||{},this.memory=new b.FreeDraw.Memory,this.options=new b.FreeDraw.Options,this.hull=new b.FreeDraw.Hull,this.element=a.element||null,this.setMode(a.mode||this.mode),this.options.setPathClipperPadding(100),b.FreeDraw.Polygon=b.Polygon.extend({options:{className:"leaflet-freedraw-polygon"}})},recreateEdges:function(a){return this.edges=this.edges.filter(function(b){return b._freedraw.polygon!==a?!0:void this.map.removeLayer(b)}.bind(this)),this.createEdges(a)},resurrectOrphans:function(){var a=function(a){setTimeout(function(){this.silently(function(){this.recreateEdges(a)}.bind(this))}.bind(this))},b=this.getPolygons(!0);b.forEach(function(b){b&&b._parts[0]&&a.call(this,b)}.bind(this)),setTimeout(function(){this.notifyBoundaries()}.bind(this))},onAdd:function(d){d.on("zoomend",function(){setTimeout(this.resurrectOrphans.bind(this))}.bind(this)),this.map=d,this.mode=this.mode||b.FreeDraw.MODES.VIEW,this.defaultPreferences={dragging:d.dragging._enabled,touchZoom:d.touchZoom._enabled,doubleClickZoom:d.doubleClickZoom._enabled,scrollWheelZoom:d.scrollWheelZoom._enabled},this.element||(this.element=d._container),this.lineFunction=c.svg.line().x(function(a){return a.x}).y(function(a){return a.y}).interpolate("linear"),this.createD3(),this.map.on(this.options.events[0]||"mousedown touchstart",this.bindEvents().mouseDown),this.map.on(this.options.events[1]||"mousemove touchmove",this.bindEvents().mouseMove),this.map.on(this.options.events[2]||"mouseup touchend",this.bindEvents().mouseUpLeave);var e=a.document.getElementsByTagName("body")[0];e.addEventListener("mouseleave",this.bindEvents().mouseUpLeave),this.setMode(this.mode)},onRemove:function(){this._clearPolygons(),this.map.off(this.options.events[0]||"mousedown touchstart",this.bindEvents().mouseDown),this.map.off(this.options.events[1]||"mousemove touchmove",this.bindEvents().mouseMove),this.map.off(this.options.events[2]||"mousedown touchstart",this.bindEvents().mouseUpLeave);var b=a.document.getElementsByTagName("body")[0];b.removeEventListener("mouseleave",this.bindEvents().mouseUpLeave)},silently:function(a){var b=this.silenced;this.silenced=!0,a.apply(this),b||(this.silenced=!1)},cancelAction:function(){this.creating=!1,this.movingEdge=null,this.destroyD3().createD3()},setMapPermissions:function(a){this.map.dragging[a](),this.map.touchZoom[a](),this.map.doubleClickZoom[a](),this.map.scrollWheelZoom[a](),"enable"===a&&(this.defaultPreferences.dragging||this.map.dragging.disable(),this.defaultPreferences.touchZoom||this.map.touchZoom.disable(),this.defaultPreferences.doubleClickZoom||this.map.doubleClickZoom.disable(),this.defaultPreferences.scrollWheelZoom||this.map.scrollWheelZoom.disable())},setMode:function(a){if(a=0===a?b.FreeDraw.MODES.VIEW:a,this.mode=a,this.fire("mode",{mode:a}),this.map){var c=!!(a&b.FreeDraw.MODES.CREATE),d=c?"disable":"enable";this.map.dragging[d](),!this.boundaryUpdateRequired||this.mode&b.FreeDraw.MODES.EDIT||(this.notifyBoundaries(),this.boundaryUpdateRequired=!1,this.options.memoriseEachEdge||this.memory.save(this.getPolygons(!0))),function(b,c,d,e){e(c,"mode-create"),e(c,"mode-edit"),e(c,"mode-delete"),e(c,"mode-view"),e(c,"mode-append"),a&b.CREATE&&d(c,"mode-create"),a&b.EDIT&&d(c,"mode-edit"),a&b.DELETE&&d(c,"mode-delete"),a&b.VIEW&&d(c,"mode-view"),a&b.APPEND&&d(c,"mode-append")}(b.FreeDraw.MODES,this.map._container,b.DomUtil.addClass,b.DomUtil.removeClass)}},unsetMode:function(a){this.setMode(this.mode^a)},createD3:function(){this.svg=c.select(this.options.element||this.element).append("svg").attr("class",this.options.svgClassName).attr("width",200).attr("height",200)},destroyD3:function(){return this.svg.remove(),this.svg={},this},latLngsToClipperPoints:function(a){return a.map(function(a){var b=this.map.latLngToLayerPoint(a);return{X:b.x,Y:b.y}}.bind(this))},clipperPolygonsToLatLngs:function(a){var c=[];return a.forEach(function(a){a.forEach(function(a){a=b.point(a.X,a.Y);var d=this.map.layerPointToLatLng(a);c.push(d)}.bind(this))}.bind(this)),c},uniqueLatLngs:function(a){var b=[],c=[];return a.forEach(function(a){var d=JSON.stringify(a);-1===b.indexOf(d)&&(b.push(d),c.push(a))}),c},handlePolygonClick:function(a,c){var d=[],e=this.map.mouseEventToContainerPoint(c.originalEvent),f=1/0,g=new b.Point,h=new b.Point,i=[];a._latlngs.forEach(function(a){i.push(this.map.latLngToContainerPoint(a))}.bind(this)),i.forEach(function(a,c){var d=a,j=i[c+1]||i[0],k=b.LineUtil.pointToSegmentDistance(e,d,j);f>k&&(f=k,g=d,h=j)}.bind(this)),i.forEach(function(a,b){var c=i[b+1]||i[0];return a===g&&c===h?(d.push(this.map.containerPointToLatLng(a)),void d.push(this.map.containerPointToLatLng(e))):void d.push(this.map.containerPointToLatLng(a))}.bind(this));var j=this.options.elbowDistance,k=function(){this.mode&b.FreeDraw.MODES.APPEND&&(a.setLatLngs(d),this.destroyEdges(a),this.createEdges(a))}.bind(this);if(this.mode&b.FreeDraw.MODES.APPEND&&!(this.mode&b.FreeDraw.MODES.DELETE)){if(this.options.onlyInDistance&&f>j)return;return void k()}return this.mode&b.FreeDraw.MODES.DELETE&&!(this.mode&b.FreeDraw.MODES.APPEND)?void this.destroyPolygon(a):f>j&&this.mode&b.FreeDraw.MODES.DELETE?void this.destroyPolygon(a):void k()},createPolygon:function(a,c){if(!this.options.multiplePolygons&&this.getPolygons(!0).length>=1){if(!this.options.destroyPrevious)return this.destroyD3().createD3(),!1;this.silently(this.clearPolygons)}if(this.destroyD3().createD3(),this.options.simplifyPolygon&&(a=function(){var b=d.Clipper.CleanPolygon(this.latLngsToClipperPoints(a),1.1),c=d.Clipper.SimplifyPolygon(b,d.PolyFillType.pftNonZero);return this.clipperPolygonsToLatLngs(c)}.apply(this)),a.length<=this.options.invalidLength&&!c)return!1;var e=this.options.polygonClassName,f=new b.FreeDraw.Polygon(a,{smoothFactor:this.options.smoothFactor,className:Array.isArray(e)?e[this.polygons.length]:e});return f.on("click",function(a){this.handlePolygonClick(f,a)}.bind(this)),f.addTo(this.map),this.polygons.push(f),this.createEdges(f),function(){!this.silenced&&f._parts[0]&&(f._latlngs=[],f._parts[0].forEach(function(a){f._latlngs.push(this.map.layerPointToLatLng(a))}.bind(this)))}.bind(this)(),this.options.attemptMerge&&!this.silenced&&this.mergePolygons(),this.silenced||(this.notifyBoundaries(),this.memory.save(this.getPolygons(!0))),f},predefinedPolygon:function(a){return this.createPolygon(a,!0)},undo:function(){this._modifyState("undo")},redo:function(){this._modifyState("redo")},_modifyState:function(a){this.silently(this._clearPolygons.bind(this));var b=this.memory[a]();b.forEach(function(a){this.silently(function(){this.createPolygon(a)}.bind(this))}.bind(this)),this.notifyBoundaries()},getPolygons:function(a){var c=[];if(a){if(!this.map)return[];var d="G";for(var e in this.map._layers)if(this.map._layers.hasOwnProperty(e)){var f=this.map._layers[e];f._container&&f._container.tagName.toUpperCase()===d&&f instanceof b.FreeDraw.Polygon&&c.push(f)}}else this.edges.forEach(function(a){-1===c.indexOf(a._freedraw.polygon)&&a._freedraw.polygon instanceof b.FreeDraw.Polygon&&c.push(a._freedraw.polygon)}.bind(this));return c},mergePolygons:function(){var a=function(){var a=this.getPolygons(),c=[];a.forEach(function(a){c.push(this.latLngsToClipperPoints(a._latlngs))}.bind(this));var e=d.Clipper.SimplifyPolygons(c,d.PolyFillType.pftNonZero);this.silently(function(){this._clearPolygons(),e.forEach(function(a){var c=[];a.forEach(function(a){a=b.point(a.X,a.Y),c.push(this.map.layerPointToLatLng(a))}.bind(this)),this.createPolygon(c,!0)}.bind(this))})}.bind(this);a(),a(),this.getPolygons(!0).forEach(this.trimPolygonEdges.bind(this))},destroyPolygon:function(a){this.map.removeLayer(a);var c=this.polygons.indexOf(a);this.polygons.splice(c,1),this.destroyEdges(a),this.silenced||(this.notifyBoundaries(),this.memory.save(this.getPolygons(!0))),this.options.deleteExitMode&&!this.silenced&&this.setMode(this.mode^b.FreeDraw.MODES.DELETE)},destroyEdges:function(a){this.edges=this.edges.filter(function(b){return b._freedraw.polygon!==a?!0:void this.map.removeLayer(b)}.bind(this))},clearPolygons:function(){this.silently(this._clearPolygons),this.silenced||(this.notifyBoundaries(),this.memory.save(this.getPolygons(!0)))},_clearPolygons:function(){this.getPolygons().forEach(function(a){this.destroyPolygon(a)}.bind(this)),this.silenced||this.notifyBoundaries()},notifyBoundaries:function(){var a=[];this.getPolygons(!0).forEach(function(b){a.push(b._latlngs)}.bind(this)),function(){a.forEach(function(a){var b=a.length-1;if(b&&a[0]&&a[b]){var c=a[0].lat!==a[b].lat,d=a[0].lng!==a[b].lng;(c||d)&&a.push(a[0])}})}.bind(this)(),this.polygonCount=a.length;var b=JSON.stringify(a);this.lastNotification!==b&&(this.lastNotification=b,this.fire("markers",{latLngs:a}),setTimeout(this.emitPolygonCount.bind(this),this.RECOUNT_TIMEOUT))},emitPolygonCount:function(){var a="M0 0",b=this.getPolygons(!0),c=b.every(function(b){var c=b._container.lastChild.getAttribute("d").trim();return c===a});c&&(this.silently(function(){this._clearPolygons(),this.fire("markers",{latLngs:[]}),this.fire("count",{count:this.polygonCount})}.bind(this)),this.polygonCount=0,b.length=0),b.length!==this.polygonCount&&(this.polygonCount=b.length,this.fire("count",{count:this.polygonCount}))},createEdges:function(a){var c=function(a){return a._parts[0]?a._latlngs.map(function(a){return this.map.latLngToLayerPoint(a)}.bind(this)):[]}.bind(this),d=this.uniqueLatLngs(c(a)),e=this.polygons.indexOf(a),f=0;return d?(d.forEach(function(c){var d=new b.DivIcon({className:Array.isArray(this.options.iconClassName)?this.options.iconClassName[e]:this.options.iconClassName}),g=this.map.layerPointToLatLng(c);d=b.marker(g,{icon:d}).addTo(this.map),d._freedraw={polygon:a,polygonId:a._leaflet_id,latLng:d._latlng},this.edges.push(d),f++,d.on("mousedown touchstart",function(a){a.originalEvent.preventDefault(),a.originalEvent.stopPropagation(),this.movingEdge=a.target}.bind(this))}.bind(this)),f):!1},updatePolygonEdge:function(a,c,d){var e=this.map.containerPointToLatLng(new b.Point(c,d));a.setLatLng(e),a._freedraw.latLng=e;var f=[],g=this.edges.filter(function(b){return f.push(b),b._freedraw.polygon===a._freedraw.polygon});this.edges=f;var h=[];g.forEach(function(a){h.push(a.getLatLng())}),a._freedraw.polygon.setLatLngs(h),a._freedraw.polygon.redraw()},bindEvents:function(){return this.events?this.events:(this.events={mouseDown:function(a){if(!this.creating){var c=2;if(a.originalEvent.button!==c){var d=a.originalEvent;this.options.disablePropagation||d.stopPropagation(),d.preventDefault(),this.latLngs=[],this.fromPoint=this.map.latLngToContainerPoint(a.latlng),this.mode&b.FreeDraw.MODES.CREATE&&(this.creating=!0,this.setMapPermissions("disable"))}}}.bind(this),mouseMove:function(a){var b=a.originalEvent;return this.movingEdge?void this._editMouseMove(a):void(this.creating&&this._createMouseMove(b))}.bind(this),mouseUpLeave:function(){return this.movingEdge?(this.options.boundariesAfterEdit?this.boundaryUpdateRequired=!0:this.notifyBoundaries(),this.trimPolygonEdges(this.movingEdge._freedraw.polygon),this.mergePolygons(),this.movingEdge=null,this.options.memoriseEachEdge&&this.memory.save(this.getPolygons(!0)),void setTimeout(this.emitPolygonCount.bind(this),this.RECOUNT_TIMEOUT)):void this._createMouseUp()}.bind(this)},this.events)},_editMouseMove:function(a){var c=this.map.latLngToContainerPoint(a.latlng),d=this.movingEdge._icon.style;d[b.DomUtil.TRANSFORM]=c,this.updatePolygonEdge(this.movingEdge,c.x,c.y)},trimPolygonEdges:function(a){var b=[];a&&0!==a._parts.length&&a._parts[0]&&(a._parts[0].forEach(function(a){b.push(this.map.layerPointToLatLng(a))}.bind(this)),a.setLatLngs(b),a.redraw(),this.destroyEdges(a),this.createEdges(a))},_createMouseMove:function(a){var c=this.map.mouseEventToContainerPoint(a),d=this.map.containerPointToLatLng(c),e=[this.fromPoint,new b.Point(c.x,c.y)];this.svg.append("path").classed("drawing-line",!0).attr("d",this.lineFunction(e)).attr("stroke","#D7217E").attr("stroke-width",2).attr("fill","none"),this.fromPoint.x=c.x,this.fromPoint.y=c.y,this.latLngs.push(d)},_createMouseUp:function(){if(this.creating&&(this.creating=!1,!(this.latLngs.length<=2))){if(this.options.hullAlgorithm){this.hull.setMap(this.map);var a=this.hull[this.options.hullAlgorithm](this.latLngs)}this.latLngs.push(this.latLngs[0]);var c=this.createPolygon(a||this.latLngs);if(!c)return void this.setMapPermissions("enable");this.latLngs=[],this.options.createExitMode&&(this.setMode(this.mode^b.FreeDraw.MODES.CREATE),this.setMapPermissions("enable"))}}}),b.FreeDraw.MODES={NONE:0,VIEW:1,CREATE:2,EDIT:4,DELETE:8,APPEND:16,EDIT_APPEND:20,ALL:31},b.FreeDraw.Throw=function(b,c){throw c&&a.console.error("http://"===c.substr(0,7)||"https://"===c.substr(0,8)?c:"See: https://github.com/Wildhoney/Leaflet.FreeDraw/blob/master/EXCEPTIONS.md#"+c),"Leaflet.FreeDraw: "+b+"."}}(window,window.L,window.d3,window.ClipperLib),function(){"use strict";L.FreeDraw.Hull=function(){},L.FreeDraw.Hull.prototype={map:null,setMap:function(a){this.map=a},brian3kbGrahamScan:function(a){var b=new ConvexHullGrahamScan,c=[],d=[],e=[];a.forEach(function(a){d.push(this.map.latLngToLayerPoint(a))}.bind(this)),d.forEach(function(a){b.addPoint(a.x,a.y)}.bind(this));var f=b.getHull();return f.forEach(function(a){c.push(L.point(a.x,a.y))}.bind(this)),c.push(c[0]),c.forEach(function(a){e.push(this.map.layerPointToLatLng(a))}.bind(this)),e},wildhoneyConcaveHull:function(a){return a.push(a[0]),new ConcaveHull(a).getLatLngs()}}}(),function(){"use strict";L.FreeDraw.Memory=function(){},L.FreeDraw.Memory.prototype={states:[[]],current:0,save:function(a){this.current++,this.states[this.current]&&this.clearFrom(this.current),this.states[this.current]||(this.states[this.current]=[]),a.forEach(function(a){this.states[this.current].push(a._latlngs)}.bind(this))},undo:function(){return this.current--,this.states[this.current]||this.current++,this.states[this.current]},canUndo:function(){return!!this.states[this.current-1]},redo:function(){return this.current++,this.states[this.current]||this.current--,this.states[this.current]},canRedo:function(){return!!this.states[this.current+1]},clearFrom:function(a){this.states.splice(a)}}}(),function(a,b){"use strict";b.FreeDraw.Options=function(){},b.FreeDraw.Options.prototype={multiplePolygons:!0,events:[],simplifyPolygon:!0,invalidLength:3,hullAlgorithm:"wildhoneyConcaveHull",boundariesAfterEdit:!1,createExitMode:!0,attemptMerge:!0,smoothFactor:5,iconClassName:"polygon-elbow",svgClassName:"tracer",polygonClassName:"tracer",deleteExitMode:!1,memoriseEachEdge:!0,destroyPrevious:!1,disablePropagation:!1,elbowDistance:10,onlyInDistance:!1,hullAlgorithms:{"brian3kb/graham_scan_js":{method:"brian3kbGrahamScan",name:"Graham Scan JS",global:"ConvexHullGrahamScan",link:"https://github.com/brian3kb/graham_scan_js"},"Wildhoney/ConcaveHull":{method:"wildhoneyConcaveHull",name:"Concave Hull",global:"ConcaveHull",link:"https://github.com/Wildhoney/ConcaveHull"}},setEvents:function(a){this.events=a},setMemoriseEachEdge:function(a){this.memoriseEachEdge=!!a},addElbowOnlyWithinDistance:function(a){this.onlyInDistance=!!a},setPathClipperPadding:function(a){b.Path.CLIP_PADDING=a},disableStopPropagation:function(){this.disablePropagation=!0},setMaximumDistanceForElbow:function(a){this.elbowDistance=+a},exitModeAfterCreate:function(a){this.createExitMode=!!a},exitModeAfterDelete:function(a){this.deleteExitMode=!!a},destroyPreviousPolygon:function(a){this.destroyPrevious=!!a},allowMultiplePolygons:function(a){this.multiplePolygons=!!a},setSVGClassName:function(a){this.svgClassName=a},setBoundariesAfterEdit:function(a){this.boundariesAfterEdit=!!a},setSmoothFactor:function(a){this.smoothFactor=+a},setIconClassName:function(a){this.iconClassName=a},setPolygonClassName:function(a){this.polygonClassName=a},setHullAlgorithm:function(c){if(!c||this.hullAlgorithms.hasOwnProperty(c)){if(!c)return void(this.hullAlgorithm=!1);c=this.hullAlgorithms[c],"undefined"==typeof a[c.global]&&b.FreeDraw.Throw(c.name+" is a required library for concave/convex hulls",c.link),this.hullAlgorithm=c.method}}}}(window,window.L),function(){"use strict";L.FreeDraw.Utilities={getMySQLMultiPolygon:function(a){var b=[];return a.forEach(function(a){var c=[];a.forEach(function(a){c.push(a.lng+" "+a.lat)}),b.push("(("+c.join(",")+"))")}),"MULTIPOLYGON("+b.join(",")+")"},getMySQLPolygons:function(a){var b=[];return a.forEach(function(a){var c=[];a.forEach(function(a){c.push(a.lng+" "+a.lat)}),b.push("POLYGON(("+c.join(",")+"))")}),b},getJsonPolygons:function(a){var b=[];return a.forEach(function(a){var c=[];a.forEach(function(a){c.push("["+a.lng+", "+a.lat+"]")}),b.push('{ "latLngs": ['+c.join(", ")+"] }")}),b},getElasticSearchPolygons:function(a,b){b=b||"location";var c=[];a.forEach(function(a){a.forEach(function(a){c.push({lat:a.lat,lng:a.lng})})});var d={geo_polygon:{}};return d.geo_polygon[b]={points:c},JSON.stringify(d)}}}(); \ No newline at end of file +!function(a,b,c,d){"use strict";b.freeDraw=function(a){return new b.FreeDraw(a)},b.FreeDraw=b.FeatureGroup.extend({map:null,state:[],defaultPreferences:{},svg:{},element:{},creating:!1,lineFunction:function(){},latLngs:[],options:{},lastNotification:"",markerLayer:b.layerGroup(),hull:{},memory:{},polygons:[],edges:[],mode:1,polygonCount:0,fromPoint:{x:0,y:0},movingEdge:null,boundaryUpdateRequired:!1,silenced:!1,RECOUNT_TIMEOUT:1,initialize:function(a){"undefined"==typeof c&&b.FreeDraw.Throw("D3 is a required library","http://d3js.org/"),"undefined"==typeof d&&b.FreeDraw.Throw("JSClipper is a required library","http://sourceforge.net/p/jsclipper/wiki/Home%206/"),this.fromPoint={x:0,y:0},this.polygons=[],this.edges=[],this.hull={},this._latLngs=[],a=a||{},this.memory=new b.FreeDraw.Memory,this.options=new b.FreeDraw.Options,this.hull=new b.FreeDraw.Hull,this.element=a.element||null,this.setMode(a.mode||this.mode),this.options.setPathClipperPadding(100),b.FreeDraw.Polygon=b.Polygon.extend({options:{className:"leaflet-freedraw-polygon"}})},recreateEdges:function(a){return this.edges=this.edges.filter(function(b){return b._freedraw.polygon!==a?!0:void this.map.removeLayer(b)}.bind(this)),this.createEdges(a)},resurrectOrphans:function(){var a=function(a){setTimeout(function(){this.silently(function(){this.recreateEdges(a)}.bind(this))}.bind(this))},b=this.getPolygons(!0);b.forEach(function(b){b&&b._parts[0]&&a.call(this,b)}.bind(this)),setTimeout(function(){this.notifyBoundaries()}.bind(this))},onAdd:function(d){d.on("zoomend",function(){setTimeout(this.resurrectOrphans.bind(this))}.bind(this)),this.map=d,this.mode=this.mode||b.FreeDraw.MODES.VIEW,this.defaultPreferences={dragging:d.dragging._enabled,touchZoom:d.touchZoom._enabled,doubleClickZoom:d.doubleClickZoom._enabled,scrollWheelZoom:d.scrollWheelZoom._enabled},this.element||(this.element=d._container),this.lineFunction=c.svg.line().x(function(a){return a.x}).y(function(a){return a.y}).interpolate("linear"),this.createD3(),this.map.on(this.options.events[0]||"mousedown touchstart",this.bindEvents().mouseDown),this.map.on(this.options.events[1]||"mousemove touchmove",this.bindEvents().mouseMove),this.map.on(this.options.events[2]||"mouseup touchend",this.bindEvents().mouseUpLeave);var e=a.document.getElementsByTagName("body")[0];e.addEventListener("mouseleave",this.bindEvents().mouseUpLeave),this.setMode(this.mode)},onRemove:function(){this._clearPolygons(),this.map.off(this.options.events[0]||"mousedown touchstart",this.bindEvents().mouseDown),this.map.off(this.options.events[1]||"mousemove touchmove",this.bindEvents().mouseMove),this.map.off(this.options.events[2]||"mousedown touchstart",this.bindEvents().mouseUpLeave);var b=a.document.getElementsByTagName("body")[0];b.removeEventListener("mouseleave",this.bindEvents().mouseUpLeave)},silently:function(a){var b=this.silenced;this.silenced=!0,a.apply(this),b||(this.silenced=!1)},cancelAction:function(){this.creating=!1,this.movingEdge=null,this.destroyD3().createD3()},setMapPermissions:function(a){this.map.dragging[a](),this.map.touchZoom[a](),this.map.doubleClickZoom[a](),this.map.scrollWheelZoom[a](),"enable"===a&&(this.defaultPreferences.dragging||this.map.dragging.disable(),this.defaultPreferences.touchZoom||this.map.touchZoom.disable(),this.defaultPreferences.doubleClickZoom||this.map.doubleClickZoom.disable(),this.defaultPreferences.scrollWheelZoom||this.map.scrollWheelZoom.disable())},setMode:function(a){if(a=0===a?b.FreeDraw.MODES.VIEW:a,this.mode=a,this.fire("mode",{mode:a}),this.map){var c=!!(a&b.FreeDraw.MODES.CREATE),d=c?"disable":"enable";this.map.dragging[d](),!this.boundaryUpdateRequired||this.mode&b.FreeDraw.MODES.EDIT||(this.notifyBoundaries(),this.boundaryUpdateRequired=!1,this.options.memoriseEachEdge||this.memory.save(this.getPolygons(!0))),function(b,c,d,e){e(c,"mode-create"),e(c,"mode-edit"),e(c,"mode-delete"),e(c,"mode-view"),e(c,"mode-append"),a&b.CREATE&&d(c,"mode-create"),a&b.EDIT&&d(c,"mode-edit"),a&b.DELETE&&d(c,"mode-delete"),a&b.VIEW&&d(c,"mode-view"),a&b.APPEND&&d(c,"mode-append")}(b.FreeDraw.MODES,this.map._container,b.DomUtil.addClass,b.DomUtil.removeClass)}},unsetMode:function(a){this.setMode(this.mode^a)},createD3:function(){this.svg=c.select(this.options.element||this.element).append("svg").attr("class",this.options.svgClassName).attr("width",200).attr("height",200)},destroyD3:function(){return this.svg.remove(),this.svg={},this},latLngsToClipperPoints:function(a){return a.map(function(a){var b=this.map.latLngToLayerPoint(a);return{X:b.x,Y:b.y}}.bind(this))},clipperPolygonsToLatLngs:function(a){var c=[];return a.forEach(function(a){a.forEach(function(a){a=b.point(a.X,a.Y);var d=this.map.layerPointToLatLng(a);c.push(d)}.bind(this))}.bind(this)),c},uniqueLatLngs:function(a){var b=[],c=[];return a.forEach(function(a){var d=JSON.stringify(a);-1===b.indexOf(d)&&(b.push(d),c.push(a))}),c},handlePolygonClick:function(a,c){var d=[],e=this.map.mouseEventToContainerPoint(c.originalEvent),f=1/0,g=new b.Point,h=new b.Point,i=[];a._latlngs.forEach(function(a){i.push(this.map.latLngToContainerPoint(a))}.bind(this)),i.forEach(function(a,c){var d=a,j=i[c+1]||i[0],k=b.LineUtil.pointToSegmentDistance(e,d,j);f>k&&(f=k,g=d,h=j)}.bind(this)),i.forEach(function(a,b){var c=i[b+1]||i[0];return a===g&&c===h?(d.push(this.map.containerPointToLatLng(a)),void d.push(this.map.containerPointToLatLng(e))):void d.push(this.map.containerPointToLatLng(a))}.bind(this));var j=this.options.elbowDistance,k=function(){this.mode&b.FreeDraw.MODES.APPEND&&(a.setLatLngs(d),this.destroyEdges(a),this.createEdges(a))}.bind(this);if(this.mode&b.FreeDraw.MODES.APPEND&&!(this.mode&b.FreeDraw.MODES.DELETE)){if(this.options.onlyInDistance&&f>j)return;return void k()}return this.mode&b.FreeDraw.MODES.DELETE&&!(this.mode&b.FreeDraw.MODES.APPEND)?void this.destroyPolygon(a):f>j&&this.mode&b.FreeDraw.MODES.DELETE?void this.destroyPolygon(a):void k()},createPolygon:function(a,c){if(!this.options.multiplePolygons&&this.getPolygons(!0).length>=1){if(!this.options.destroyPrevious)return this.destroyD3().createD3(),!1;this.silently(this.clearPolygons)}if(this.destroyD3().createD3(),this.options.simplifyPolygon&&(a=function(){var b=d.Clipper.CleanPolygon(this.latLngsToClipperPoints(a),1.1),c=d.Clipper.SimplifyPolygon(b,d.PolyFillType.pftNonZero);return this.clipperPolygonsToLatLngs(c)}.apply(this)),a.length<=this.options.invalidLength&&!c)return!1;var e=this.options.polygonClassName,f=new b.FreeDraw.Polygon(a,{smoothFactor:this.options.smoothFactor,className:Array.isArray(e)?e[this.polygons.length]:e});return f.on("click",function(a){this.handlePolygonClick(f,a)}.bind(this)),f.addTo(this.map),this.polygons.push(f),this.createEdges(f),function(){!this.silenced&&f._parts[0]&&(f._latlngs=[],f._parts[0].forEach(function(a){f._latlngs.push(this.map.layerPointToLatLng(a))}.bind(this)))}.bind(this)(),this.options.attemptMerge&&!this.silenced&&this.mergePolygons(),this.silenced||(this.notifyBoundaries(),this.memory.save(this.getPolygons(!0))),f},predefinedPolygon:function(a){return this.createPolygon(a,!0)},undo:function(){this._modifyState("undo")},redo:function(){this._modifyState("redo")},_modifyState:function(a){this.silently(this._clearPolygons.bind(this));var b=this.memory[a]();b.forEach(function(a){this.silently(function(){this.createPolygon(a)}.bind(this))}.bind(this)),this.notifyBoundaries()},getPolygons:function(a){var c=[];if(a){if(!this.map)return[];var d="G";for(var e in this.map._layers)if(this.map._layers.hasOwnProperty(e)){var f=this.map._layers[e];f._container&&f._container.tagName.toUpperCase()===d&&f instanceof b.FreeDraw.Polygon&&c.push(f)}}else this.edges.forEach(function(a){-1===c.indexOf(a._freedraw.polygon)&&a._freedraw.polygon instanceof b.FreeDraw.Polygon&&c.push(a._freedraw.polygon)}.bind(this));return c},mergePolygons:function(){var a=function(){var a=this.getPolygons(),c=[];a.forEach(function(a){c.push(this.latLngsToClipperPoints(a._latlngs))}.bind(this));var e=d.Clipper.SimplifyPolygons(c,d.PolyFillType.pftNonZero);this.silently(function(){this._clearPolygons(),e.forEach(function(a){var c=[];a.forEach(function(a){a=b.point(a.X,a.Y),c.push(this.map.layerPointToLatLng(a))}.bind(this)),this.createPolygon(c,!0)}.bind(this))})}.bind(this);a(),a(),this.getPolygons(!0).forEach(this.trimPolygonEdges.bind(this))},destroyPolygon:function(a){this.map.removeLayer(a);var c=this.polygons.indexOf(a);this.polygons.splice(c,1),this.destroyEdges(a),this.silenced||(this.notifyBoundaries(),this.memory.save(this.getPolygons(!0))),this.options.deleteExitMode&&!this.silenced&&this.setMode(this.mode^b.FreeDraw.MODES.DELETE)},destroyEdges:function(a){this.edges=this.edges.filter(function(b){return b._freedraw.polygon!==a?!0:void this.map.removeLayer(b)}.bind(this))},clearPolygons:function(){this.silently(this._clearPolygons),this.silenced||(this.notifyBoundaries(),this.memory.save(this.getPolygons(!0)))},_clearPolygons:function(){this.getPolygons().forEach(function(a){this.destroyPolygon(a)}.bind(this)),this.silenced||this.notifyBoundaries()},notifyBoundaries:function(){var a=[];this.getPolygons(!0).forEach(function(b){a.push(b._latlngs)}.bind(this)),function(){a.forEach(function(a){var b=a.length-1;if(b&&a[0]&&a[b]){var c=a[0].lat!==a[b].lat,d=a[0].lng!==a[b].lng;(c||d)&&a.push(a[0])}})}.bind(this)(),this.polygonCount=a.length;var b=JSON.stringify(a);this.lastNotification!==b&&(this.lastNotification=b,this.fire("markers",{latLngs:a}),setTimeout(this.emitPolygonCount.bind(this),this.RECOUNT_TIMEOUT))},emitPolygonCount:function(){var a="M0 0",b=this.getPolygons(!0),c=b.every(function(b){var c=b._container.lastChild.getAttribute("d").trim();return c===a});c&&(this.silently(function(){this._clearPolygons(),this.fire("markers",{latLngs:[]}),this.fire("count",{count:this.polygonCount})}.bind(this)),this.polygonCount=0,b.length=0),b.length!==this.polygonCount&&(this.polygonCount=b.length,this.fire("count",{count:this.polygonCount}))},createEdges:function(a){var c=function(a){return a._parts[0]?a._latlngs.map(function(a){return this.map.latLngToLayerPoint(a)}.bind(this)):[]}.bind(this),d=this.uniqueLatLngs(c(a)),e=this.polygons.indexOf(a),f=0;return d?(d.forEach(function(c){var d=new b.DivIcon({className:Array.isArray(this.options.iconClassName)?this.options.iconClassName[e]:this.options.iconClassName}),g=this.map.layerPointToLatLng(c);d=b.marker(g,{icon:d}).addTo(this.map),d._freedraw={polygon:a,polygonId:a._leaflet_id,latLng:d._latlng},this.edges.push(d),f++,d.on("mousedown touchstart",function(a){a.originalEvent.preventDefault(),a.originalEvent.stopPropagation(),this.movingEdge=a.target}.bind(this))}.bind(this)),f):!1},updatePolygonEdge:function(a,c,d){var e=this.map.containerPointToLatLng(new b.Point(c,d));a.setLatLng(e),a._freedraw.latLng=e;var f=[],g=this.edges.filter(function(b){return f.push(b),b._freedraw.polygon===a._freedraw.polygon});this.edges=f;var h=[];g.forEach(function(a){h.push(a.getLatLng())}),a._freedraw.polygon.setLatLngs(h),a._freedraw.polygon.redraw()},bindEvents:function(){return this.events?this.events:(this.events={mouseDown:function(a){if(!this.creating){var c=2;if(a.originalEvent.button!==c){var d=a.originalEvent;this.options.disablePropagation||d.stopPropagation(),d.preventDefault(),this.latLngs=[],this.fromPoint=this.map.latLngToContainerPoint(a.latlng),this.mode&b.FreeDraw.MODES.CREATE&&(this.creating=!0,this.setMapPermissions("disable"))}}}.bind(this),mouseMove:function(a){var b=a.originalEvent;return this.movingEdge?void this._editMouseMove(a):void(this.creating&&this._createMouseMove(b))}.bind(this),mouseUpLeave:function(){return this.movingEdge?(this.options.boundariesAfterEdit?this.boundaryUpdateRequired=!0:this.notifyBoundaries(),this.trimPolygonEdges(this.movingEdge._freedraw.polygon),this.mergePolygons(),this.movingEdge=null,this.options.memoriseEachEdge&&this.memory.save(this.getPolygons(!0)),void setTimeout(this.emitPolygonCount.bind(this),this.RECOUNT_TIMEOUT)):void this._createMouseUp()}.bind(this)},this.events)},_editMouseMove:function(a){var c=this.map.latLngToContainerPoint(a.latlng),d=this.movingEdge._icon.style;d[b.DomUtil.TRANSFORM]=c,this.updatePolygonEdge(this.movingEdge,c.x,c.y)},trimPolygonEdges:function(a){var b=[];a&&0!==a._parts.length&&a._parts[0]&&(a._parts[0].forEach(function(a){b.push(this.map.layerPointToLatLng(a))}.bind(this)),a.setLatLngs(b),a.redraw(),this.destroyEdges(a),this.createEdges(a))},_createMouseMove:function(a){var c=this.map.mouseEventToContainerPoint(a),d=this.map.containerPointToLatLng(c),e=[this.fromPoint,new b.Point(c.x,c.y)];this.svg.append("path").classed("drawing-line",!0).attr("d",this.lineFunction(e)).attr("stroke","#D7217E").attr("stroke-width",2).attr("fill","none"),this.fromPoint.x=c.x,this.fromPoint.y=c.y,this.latLngs.push(d)},_createMouseUp:function(){if(this.creating&&(this.creating=!1,!(this.latLngs.length<=2))){if(this.options.hullAlgorithm){this.hull.setMap(this.map);var a=this.hull[this.options.hullAlgorithm](this.latLngs)}this.latLngs.push(this.latLngs[0]);var c=this.createPolygon(a||this.latLngs);if(!c)return void this.setMapPermissions("enable");this.latLngs=[],this.options.createExitMode&&(this.setMode(this.mode^b.FreeDraw.MODES.CREATE),this.setMapPermissions("enable"))}}}),b.FreeDraw.MODES={NONE:0,VIEW:1,CREATE:2,EDIT:4,DELETE:8,APPEND:16,EDIT_APPEND:20,ALL:31},b.FreeDraw.Throw=function(b,c){throw c&&a.console.error("http://"===c.substr(0,7)||"https://"===c.substr(0,8)?c:"See: https://github.com/Wildhoney/Leaflet.FreeDraw/blob/master/EXCEPTIONS.md#"+c),"Leaflet.FreeDraw: "+b+"."}}(window,window.L,window.d3,window.ClipperLib),function(){"use strict";L.FreeDraw.Hull=function(){},L.FreeDraw.Hull.prototype={map:null,setMap:function(a){this.map=a},brian3kbGrahamScan:function(a){var b=new ConvexHullGrahamScan,c=[],d=[],e=[];a.forEach(function(a){d.push(this.map.latLngToLayerPoint(a))}.bind(this)),d.forEach(function(a){b.addPoint(a.x,a.y)}.bind(this));var f=b.getHull();return f.forEach(function(a){c.push(L.point(a.x,a.y))}.bind(this)),c.push(c[0]),c.forEach(function(a){e.push(this.map.layerPointToLatLng(a))}.bind(this)),e},wildhoneyConcaveHull:function(a){return a.push(a[0]),new ConcaveHull(a).getLatLngs()}}}(),function(){"use strict";L.FreeDraw.Memory=function(){},L.FreeDraw.Memory.prototype={states:[[]],current:0,save:function(a){this.current++,this.states[this.current]&&this.clearFrom(this.current),this.states[this.current]||(this.states[this.current]=[]),a.forEach(function(a){this.states[this.current].push(a._latlngs)}.bind(this))},undo:function(){return this.current--,this.states[this.current]||this.current++,this.states[this.current]},canUndo:function(){return!!this.states[this.current-1]},redo:function(){return this.current++,this.states[this.current]||this.current--,this.states[this.current]},canRedo:function(){return!!this.states[this.current+1]},clearFrom:function(a){this.states.splice(a)}}}(),function(a,b){"use strict";b.FreeDraw.Options=function(){},b.FreeDraw.Options.prototype={multiplePolygons:!0,events:[],simplifyPolygon:!0,invalidLength:3,hullAlgorithm:"wildhoneyConcaveHull",boundariesAfterEdit:!1,createExitMode:!0,attemptMerge:!0,smoothFactor:5,iconClassName:"polygon-elbow",svgClassName:"tracer",polygonClassName:"tracer",deleteExitMode:!1,memoriseEachEdge:!0,destroyPrevious:!1,disablePropagation:!1,elbowDistance:10,onlyInDistance:!1,hullAlgorithms:{"brian3kb/graham_scan_js":{method:"brian3kbGrahamScan",name:"Graham Scan JS",global:"ConvexHullGrahamScan",link:"https://github.com/brian3kb/graham_scan_js"},"Wildhoney/ConcaveHull":{method:"wildhoneyConcaveHull",name:"Concave Hull",global:"ConcaveHull",link:"https://github.com/Wildhoney/ConcaveHull"}},setEvents:function(a){this.events=a},setMemoriseEachEdge:function(a){this.memoriseEachEdge=!!a},addElbowOnlyWithinDistance:function(a){this.onlyInDistance=!!a},setPathClipperPadding:function(a){b.Path.CLIP_PADDING=a},disableStopPropagation:function(){this.disablePropagation=!0},setMaximumDistanceForElbow:function(a){this.elbowDistance=+a},exitModeAfterCreate:function(a){this.createExitMode=!!a},exitModeAfterDelete:function(a){this.deleteExitMode=!!a},destroyPreviousPolygon:function(a){this.destroyPrevious=!!a},allowMultiplePolygons:function(a){this.multiplePolygons=!!a},setSVGClassName:function(a){this.svgClassName=a},setBoundariesAfterEdit:function(a){this.boundariesAfterEdit=!!a},setSmoothFactor:function(a){this.smoothFactor=+a},setIconClassName:function(a){this.iconClassName=a},setPolygonClassName:function(a){this.polygonClassName=a},setHullAlgorithm:function(c){if(!c||this.hullAlgorithms.hasOwnProperty(c)){if(!c)return void(this.hullAlgorithm=!1);c=this.hullAlgorithms[c],"undefined"==typeof a[c.global]&&b.FreeDraw.Throw(c.name+" is a required library for concave/convex hulls",c.link),this.hullAlgorithm=c.method}}}}(window,window.L),function(){"use strict";L.FreeDraw.Utilities={getMySQLMultiPolygon:function(a){var b=[];return a.forEach(function(a){var c=[];a.forEach(function(a){c.push(a.lng+" "+a.lat)}),b.push("(("+c.join(",")+"))")}),"MULTIPOLYGON("+b.join(",")+")"},getMySQLPolygons:function(a){var b=[];return a.forEach(function(a){var c=[];a.forEach(function(a){c.push(a.lng+" "+a.lat)}),b.push("POLYGON(("+c.join(",")+"))")}),b},getJsonPolygons:function(a){var b=[];return a.forEach(function(a){var c=[];a.forEach(function(a){c.push("["+a.lng+", "+a.lat+"]")}),b.push('{ "latLngs": ['+c.join(", ")+"] }")}),b},getElasticSearchPolygons:function(a,b){b=b||"location";var c=[];a.forEach(function(a){a.forEach(function(a){c.push({lat:a.lat,lng:a.lng})})});var d={geo_polygon:{}};return d.geo_polygon[b]={points:c},JSON.stringify(d)}}}(); diff --git a/vendor/assets/javascripts/leaflet.js b/vendor/assets/javascripts/leaflet.js index ee5ff5a1d..da1b8cb97 100644 --- a/vendor/assets/javascripts/leaflet.js +++ b/vendor/assets/javascripts/leaflet.js @@ -6,4 +6,4 @@ !function(t,e,i){var n=t.L,o={};o.version="0.7.7","object"==typeof module&&"object"==typeof module.exports?module.exports=o:"function"==typeof define&&define.amd&&define(o),o.noConflict=function(){return t.L=n,this},t.L=o,o.Util={extend:function(t){var e,i,n,o,s=Array.prototype.slice.call(arguments,1);for(i=0,n=s.length;n>i;i++){o=s[i]||{};for(e in o)o.hasOwnProperty(e)&&(t[e]=o[e])}return t},bind:function(t,e){var i=arguments.length>2?Array.prototype.slice.call(arguments,2):null;return function(){return t.apply(e,i||arguments)}},stamp:function(){var t=0,e="_leaflet_id";return function(i){return i[e]=i[e]||++t,i[e]}}(),invokeEach:function(t,e,i){var n,o;if("object"==typeof t){o=Array.prototype.slice.call(arguments,3);for(n in t)e.apply(i,[n,t[n]].concat(o));return!0}return!1},limitExecByInterval:function(t,e,i){var n,o;return function s(){var a=arguments;return n?void(o=!0):(n=!0,setTimeout(function(){n=!1,o&&(s.apply(i,a),o=!1)},e),void t.apply(i,a))}},falseFn:function(){return!1},formatNum:function(t,e){var i=Math.pow(10,e||5);return Math.round(t*i)/i},trim:function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")},splitWords:function(t){return o.Util.trim(t).split(/\s+/)},setOptions:function(t,e){return t.options=o.extend({},t.options,e),t.options},getParamString:function(t,e,i){var n=[];for(var o in t)n.push(encodeURIComponent(i?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(e&&-1!==e.indexOf("?")?"&":"?")+n.join("&")},template:function(t,e){return t.replace(/\{ *([\w_]+) *\}/g,function(t,n){var o=e[n];if(o===i)throw new Error("No value provided for variable "+t);return"function"==typeof o&&(o=o(e)),o})},isArray:Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},function(){function e(e){var i,n,o=["webkit","moz","o","ms"];for(i=0;it;t++)n._initHooks[t].call(this)}},e},o.Class.include=function(t){o.extend(this.prototype,t)},o.Class.mergeOptions=function(t){o.extend(this.prototype.options,t)},o.Class.addInitHook=function(t){var e=Array.prototype.slice.call(arguments,1),i="function"==typeof t?t:function(){this[t].apply(this,e)};this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(i)};var s="_leaflet_events";o.Mixin={},o.Mixin.Events={addEventListener:function(t,e,i){if(o.Util.invokeEach(t,this.addEventListener,this,e,i))return this;var n,a,r,h,l,u,c,d=this[s]=this[s]||{},p=i&&i!==this&&o.stamp(i);for(t=o.Util.splitWords(t),n=0,a=t.length;a>n;n++)r={action:e,context:i||this},h=t[n],p?(l=h+"_idx",u=l+"_len",c=d[l]=d[l]||{},c[p]||(c[p]=[],d[u]=(d[u]||0)+1),c[p].push(r)):(d[h]=d[h]||[],d[h].push(r));return this},hasEventListeners:function(t){var e=this[s];return!!e&&(t in e&&e[t].length>0||t+"_idx"in e&&e[t+"_idx_len"]>0)},removeEventListener:function(t,e,i){if(!this[s])return this;if(!t)return this.clearAllEventListeners();if(o.Util.invokeEach(t,this.removeEventListener,this,e,i))return this;var n,a,r,h,l,u,c,d,p,_=this[s],m=i&&i!==this&&o.stamp(i);for(t=o.Util.splitWords(t),n=0,a=t.length;a>n;n++)if(r=t[n],u=r+"_idx",c=u+"_len",d=_[u],e){if(h=m&&d?d[m]:_[r]){for(l=h.length-1;l>=0;l--)h[l].action!==e||i&&h[l].context!==i||(p=h.splice(l,1),p[0].action=o.Util.falseFn);i&&d&&0===h.length&&(delete d[m],_[c]--)}}else delete _[r],delete _[u],delete _[c];return this},clearAllEventListeners:function(){return delete this[s],this},fireEvent:function(t,e){if(!this.hasEventListeners(t))return this;var i,n,a,r,h,l=o.Util.extend({},e,{type:t,target:this}),u=this[s];if(u[t])for(i=u[t].slice(),n=0,a=i.length;a>n;n++)i[n].action.call(i[n].context,l);r=u[t+"_idx"];for(h in r)if(i=r[h].slice())for(n=0,a=i.length;a>n;n++)i[n].action.call(i[n].context,l);return this},addOneTimeEventListener:function(t,e,i){if(o.Util.invokeEach(t,this.addOneTimeEventListener,this,e,i))return this;var n=o.bind(function(){this.removeEventListener(t,e,i).removeEventListener(t,n,i)},this);return this.addEventListener(t,e,i).addEventListener(t,n,i)}},o.Mixin.Events.on=o.Mixin.Events.addEventListener,o.Mixin.Events.off=o.Mixin.Events.removeEventListener,o.Mixin.Events.once=o.Mixin.Events.addOneTimeEventListener,o.Mixin.Events.fire=o.Mixin.Events.fireEvent,function(){var n="ActiveXObject"in t,s=n&&!e.addEventListener,a=navigator.userAgent.toLowerCase(),r=-1!==a.indexOf("webkit"),h=-1!==a.indexOf("chrome"),l=-1!==a.indexOf("phantom"),u=-1!==a.indexOf("android"),c=-1!==a.search("android [23]"),d=-1!==a.indexOf("gecko"),p=typeof orientation!=i+"",_=!t.PointerEvent&&t.MSPointerEvent,m=t.PointerEvent&&t.navigator.pointerEnabled||_,f="devicePixelRatio"in t&&t.devicePixelRatio>1||"matchMedia"in t&&t.matchMedia("(min-resolution:144dpi)")&&t.matchMedia("(min-resolution:144dpi)").matches,g=e.documentElement,v=n&&"transition"in g.style,y="WebKitCSSMatrix"in t&&"m11"in new t.WebKitCSSMatrix&&!c,P="MozPerspective"in g.style,L="OTransition"in g.style,x=!t.L_DISABLE_3D&&(v||y||P||L)&&!l,w=!t.L_NO_TOUCH&&!l&&(m||"ontouchstart"in t||t.DocumentTouch&&e instanceof t.DocumentTouch);o.Browser={ie:n,ielt9:s,webkit:r,gecko:d&&!r&&!t.opera&&!n,android:u,android23:c,chrome:h,ie3d:v,webkit3d:y,gecko3d:P,opera3d:L,any3d:x,mobile:p,mobileWebkit:p&&r,mobileWebkit3d:p&&y,mobileOpera:p&&t.opera,touch:w,msPointer:_,pointer:m,retina:f}}(),o.Point=function(t,e,i){this.x=i?Math.round(t):t,this.y=i?Math.round(e):e},o.Point.prototype={clone:function(){return new o.Point(this.x,this.y)},add:function(t){return this.clone()._add(o.point(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(o.point(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},distanceTo:function(t){t=o.point(t);var e=t.x-this.x,i=t.y-this.y;return Math.sqrt(e*e+i*i)},equals:function(t){return t=o.point(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=o.point(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+o.Util.formatNum(this.x)+", "+o.Util.formatNum(this.y)+")"}},o.point=function(t,e,n){return t instanceof o.Point?t:o.Util.isArray(t)?new o.Point(t[0],t[1]):t===i||null===t?t:new o.Point(t,e,n)},o.Bounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;o>n;n++)this.extend(i[n])},o.Bounds.prototype={extend:function(t){return t=o.point(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new o.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new o.Point(this.min.x,this.max.y)},getTopRight:function(){return new o.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var e,i;return t="number"==typeof t[0]||t instanceof o.Point?o.point(t):o.bounds(t),t instanceof o.Bounds?(e=t.min,i=t.max):e=i=t,e.x>=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=o.bounds(t);var e=this.min,i=this.max,n=t.min,s=t.max,a=s.x>=e.x&&n.x<=i.x,r=s.y>=e.y&&n.y<=i.y;return a&&r},isValid:function(){return!(!this.min||!this.max)}},o.bounds=function(t,e){return!t||t instanceof o.Bounds?t:new o.Bounds(t,e)},o.Transformation=function(t,e,i,n){this._a=t,this._b=e,this._c=i,this._d=n},o.Transformation.prototype={transform:function(t,e){return this._transform(t.clone(),e)},_transform:function(t,e){return e=e||1,t.x=e*(this._a*t.x+this._b),t.y=e*(this._c*t.y+this._d),t},untransform:function(t,e){return e=e||1,new o.Point((t.x/e-this._b)/this._a,(t.y/e-this._d)/this._c)}},o.DomUtil={get:function(t){return"string"==typeof t?e.getElementById(t):t},getStyle:function(t,i){var n=t.style[i];if(!n&&t.currentStyle&&(n=t.currentStyle[i]),(!n||"auto"===n)&&e.defaultView){var o=e.defaultView.getComputedStyle(t,null);n=o?o[i]:null}return"auto"===n?null:n},getViewportOffset:function(t){var i,n=0,s=0,a=t,r=e.body,h=e.documentElement;do{if(n+=a.offsetTop||0,s+=a.offsetLeft||0,n+=parseInt(o.DomUtil.getStyle(a,"borderTopWidth"),10)||0,s+=parseInt(o.DomUtil.getStyle(a,"borderLeftWidth"),10)||0,i=o.DomUtil.getStyle(a,"position"),a.offsetParent===r&&"absolute"===i)break;if("fixed"===i){n+=r.scrollTop||h.scrollTop||0,s+=r.scrollLeft||h.scrollLeft||0;break}if("relative"===i&&!a.offsetLeft){var l=o.DomUtil.getStyle(a,"width"),u=o.DomUtil.getStyle(a,"max-width"),c=a.getBoundingClientRect();("none"!==l||"none"!==u)&&(s+=c.left+a.clientLeft),n+=c.top+(r.scrollTop||h.scrollTop||0);break}a=a.offsetParent}while(a);a=t;do{if(a===r)break;n-=a.scrollTop||0,s-=a.scrollLeft||0,a=a.parentNode}while(a);return new o.Point(s,n)},documentIsLtr:function(){return o.DomUtil._docIsLtrCached||(o.DomUtil._docIsLtrCached=!0,o.DomUtil._docIsLtr="ltr"===o.DomUtil.getStyle(e.body,"direction")),o.DomUtil._docIsLtr},create:function(t,i,n){var o=e.createElement(t);return o.className=i,n&&n.appendChild(o),o},hasClass:function(t,e){if(t.classList!==i)return t.classList.contains(e);var n=o.DomUtil._getClass(t);return n.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(n)},addClass:function(t,e){if(t.classList!==i)for(var n=o.Util.splitWords(e),s=0,a=n.length;a>s;s++)t.classList.add(n[s]);else if(!o.DomUtil.hasClass(t,e)){var r=o.DomUtil._getClass(t);o.DomUtil._setClass(t,(r?r+" ":"")+e)}},removeClass:function(t,e){t.classList!==i?t.classList.remove(e):o.DomUtil._setClass(t,o.Util.trim((" "+o.DomUtil._getClass(t)+" ").replace(" "+e+" "," ")))},_setClass:function(t,e){t.className.baseVal===i?t.className=e:t.className.baseVal=e},_getClass:function(t){return t.className.baseVal===i?t.className:t.className.baseVal},setOpacity:function(t,e){if("opacity"in t.style)t.style.opacity=e;else if("filter"in t.style){var i=!1,n="DXImageTransform.Microsoft.Alpha";try{i=t.filters.item(n)}catch(o){if(1===e)return}e=Math.round(100*e),i?(i.Enabled=100!==e,i.Opacity=e):t.style.filter+=" progid:"+n+"(opacity="+e+")"}},testProp:function(t){for(var i=e.documentElement.style,n=0;ni||i===e?e:t),new o.LatLng(this.lat,i)}},o.latLng=function(t,e){return t instanceof o.LatLng?t:o.Util.isArray(t)?"number"==typeof t[0]||"string"==typeof t[0]?new o.LatLng(t[0],t[1],t[2]):null:t===i||null===t?t:"object"==typeof t&&"lat"in t?new o.LatLng(t.lat,"lng"in t?t.lng:t.lon):e===i?null:new o.LatLng(t,e)},o.LatLngBounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;o>n;n++)this.extend(i[n])},o.LatLngBounds.prototype={extend:function(t){if(!t)return this;var e=o.latLng(t);return t=null!==e?e:o.latLngBounds(t),t instanceof o.LatLng?this._southWest||this._northEast?(this._southWest.lat=Math.min(t.lat,this._southWest.lat),this._southWest.lng=Math.min(t.lng,this._southWest.lng),this._northEast.lat=Math.max(t.lat,this._northEast.lat),this._northEast.lng=Math.max(t.lng,this._northEast.lng)):(this._southWest=new o.LatLng(t.lat,t.lng),this._northEast=new o.LatLng(t.lat,t.lng)):t instanceof o.LatLngBounds&&(this.extend(t._southWest),this.extend(t._northEast)),this},pad:function(t){var e=this._southWest,i=this._northEast,n=Math.abs(e.lat-i.lat)*t,s=Math.abs(e.lng-i.lng)*t;return new o.LatLngBounds(new o.LatLng(e.lat-n,e.lng-s),new o.LatLng(i.lat+n,i.lng+s))},getCenter:function(){return new o.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new o.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new o.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t="number"==typeof t[0]||t instanceof o.LatLng?o.latLng(t):o.latLngBounds(t);var e,i,n=this._southWest,s=this._northEast;return t instanceof o.LatLngBounds?(e=t.getSouthWest(),i=t.getNorthEast()):e=i=t,e.lat>=n.lat&&i.lat<=s.lat&&e.lng>=n.lng&&i.lng<=s.lng},intersects:function(t){t=o.latLngBounds(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),s=t.getNorthEast(),a=s.lat>=e.lat&&n.lat<=i.lat,r=s.lng>=e.lng&&n.lng<=i.lng;return a&&r},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t){return t?(t=o.latLngBounds(t),this._southWest.equals(t.getSouthWest())&&this._northEast.equals(t.getNorthEast())):!1},isValid:function(){return!(!this._southWest||!this._northEast)}},o.latLngBounds=function(t,e){return!t||t instanceof o.LatLngBounds?t:new o.LatLngBounds(t,e)},o.Projection={},o.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(t){var e=o.LatLng.DEG_TO_RAD,i=this.MAX_LATITUDE,n=Math.max(Math.min(i,t.lat),-i),s=t.lng*e,a=n*e;return a=Math.log(Math.tan(Math.PI/4+a/2)),new o.Point(s,a)},unproject:function(t){var e=o.LatLng.RAD_TO_DEG,i=t.x*e,n=(2*Math.atan(Math.exp(t.y))-Math.PI/2)*e;return new o.LatLng(n,i)}},o.Projection.LonLat={project:function(t){return new o.Point(t.lng,t.lat)},unproject:function(t){return new o.LatLng(t.y,t.x)}},o.CRS={latLngToPoint:function(t,e){var i=this.projection.project(t),n=this.scale(e);return this.transformation._transform(i,n)},pointToLatLng:function(t,e){var i=this.scale(e),n=this.transformation.untransform(t,i);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},scale:function(t){return 256*Math.pow(2,t)},getSize:function(t){var e=this.scale(t);return o.point(e,e)}},o.CRS.Simple=o.extend({},o.CRS,{projection:o.Projection.LonLat,transformation:new o.Transformation(1,0,-1,0),scale:function(t){return Math.pow(2,t)}}),o.CRS.EPSG3857=o.extend({},o.CRS,{code:"EPSG:3857",projection:o.Projection.SphericalMercator,transformation:new o.Transformation(.5/Math.PI,.5,-.5/Math.PI,.5),project:function(t){var e=this.projection.project(t),i=6378137;return e.multiplyBy(i)}}),o.CRS.EPSG900913=o.extend({},o.CRS.EPSG3857,{code:"EPSG:900913"}),o.CRS.EPSG4326=o.extend({},o.CRS,{code:"EPSG:4326",projection:o.Projection.LonLat,transformation:new o.Transformation(1/360,.5,-1/360,.5)}),o.Map=o.Class.extend({includes:o.Mixin.Events,options:{crs:o.CRS.EPSG3857,fadeAnimation:o.DomUtil.TRANSITION&&!o.Browser.android23,trackResize:!0,markerZoomAnimation:o.DomUtil.TRANSITION&&o.Browser.any3d},initialize:function(t,e){e=o.setOptions(this,e),this._initContainer(t),this._initLayout(),this._onResize=o.bind(this._onResize,this),this._initEvents(),e.maxBounds&&this.setMaxBounds(e.maxBounds),e.center&&e.zoom!==i&&this.setView(o.latLng(e.center),e.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._tileLayersNum=0,this.callInitHooks(),this._addLayers(e.layers)},setView:function(t,e){return e=e===i?this.getZoom():e,this._resetView(o.latLng(t),this._limitZoom(e)),this},setZoom:function(t,e){return this._loaded?this.setView(this.getCenter(),t,{zoom:e}):(this._zoom=this._limitZoom(t),this)},zoomIn:function(t,e){return this.setZoom(this._zoom+(t||1),e)},zoomOut:function(t,e){return this.setZoom(this._zoom-(t||1),e)},setZoomAround:function(t,e,i){var n=this.getZoomScale(e),s=this.getSize().divideBy(2),a=t instanceof o.Point?t:this.latLngToContainerPoint(t),r=a.subtract(s).multiplyBy(1-1/n),h=this.containerPointToLatLng(s.add(r));return this.setView(h,e,{zoom:i})},fitBounds:function(t,e){e=e||{},t=t.getBounds?t.getBounds():o.latLngBounds(t);var i=o.point(e.paddingTopLeft||e.padding||[0,0]),n=o.point(e.paddingBottomRight||e.padding||[0,0]),s=this.getBoundsZoom(t,!1,i.add(n));s=e.maxZoom?Math.min(e.maxZoom,s):s;var a=n.subtract(i).divideBy(2),r=this.project(t.getSouthWest(),s),h=this.project(t.getNorthEast(),s),l=this.unproject(r.add(h).divideBy(2).add(a),s);return this.setView(l,s,e)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,e){return this.setView(t,this._zoom,{pan:e})},panBy:function(t){return this.fire("movestart"),this._rawPanBy(o.point(t)),this.fire("move"),this.fire("moveend")},setMaxBounds:function(t){return t=o.latLngBounds(t),this.options.maxBounds=t,t?(this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds,this)):this.off("moveend",this._panInsideMaxBounds,this)},panInsideBounds:function(t,e){var i=this.getCenter(),n=this._limitCenter(i,this._zoom,t);return i.equals(n)?this:this.panTo(n,e)},addLayer:function(t){var e=o.stamp(t);return this._layers[e]?this:(this._layers[e]=t,!t.options||isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[e]=t,this._updateZoomLevels()),this.options.zoomAnimation&&o.TileLayer&&t instanceof o.TileLayer&&(this._tileLayersNum++,this._tileLayersToLoad++,t.on("load",this._onTileLayerLoad,this)),this._loaded&&this._layerAdd(t),this)},removeLayer:function(t){var e=o.stamp(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&this.fire("layerremove",{layer:t}),this._zoomBoundLayers[e]&&(delete this._zoomBoundLayers[e],this._updateZoomLevels()),this.options.zoomAnimation&&o.TileLayer&&t instanceof o.TileLayer&&(this._tileLayersNum--,this._tileLayersToLoad--,t.off("load",this._onTileLayerLoad,this)),this):this},hasLayer:function(t){return t?o.stamp(t)in this._layers:!1},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},invalidateSize:function(t){if(!this._loaded)return this;t=o.extend({animate:!1,pan:!0},t===!0?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._initialCenter=null;var i=this.getSize(),n=e.divideBy(2).round(),s=i.divideBy(2).round(),a=n.subtract(s);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){this._loaded&&this.fire("unload"),this._initEvents("off");try{delete this._container._leaflet}catch(t){this._container._leaflet=i}return this._clearPanes(),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this},getCenter:function(){return this._checkIfLoaded(),this._initialCenter&&!this._moved()?this._initialCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),e=this.unproject(t.getBottomLeft()),i=this.unproject(t.getTopRight());return new o.LatLngBounds(e,i)},getMinZoom:function(){return this.options.minZoom===i?this._layersMinZoom===i?0:this._layersMinZoom:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===i?this._layersMaxZoom===i?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=o.latLngBounds(t);var n,s=this.getMinZoom()-(e?1:0),a=this.getMaxZoom(),r=this.getSize(),h=t.getNorthWest(),l=t.getSouthEast(),u=!0;i=o.point(i||[0,0]);do s++,n=this.project(l,s).subtract(this.project(h,s)).add(i),u=e?n.x=s);return u&&e?null:e?s:s-1},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new o.Point(this._container.clientWidth,this._container.clientHeight),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(){var t=this._getTopLeftPoint();return new o.Bounds(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._initialTopLeftPoint},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t){var e=this.options.crs;return e.scale(t)/e.scale(this._zoom)},getScaleZoom:function(t){return this._zoom+Math.log(t)/Math.LN2},project:function(t,e){return e=e===i?this._zoom:e,this.options.crs.latLngToPoint(o.latLng(t),e)},unproject:function(t,e){return e=e===i?this._zoom:e,this.options.crs.pointToLatLng(o.point(t),e)},layerPointToLatLng:function(t){var e=o.point(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){var e=this.project(o.latLng(t))._round();return e._subtract(this.getPixelOrigin())},containerPointToLayerPoint:function(t){return o.point(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return o.point(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(o.point(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(o.latLng(t)))},mouseEventToContainerPoint:function(t){return o.DomEvent.getMousePosition(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=o.DomUtil.get(t);if(!e)throw new Error("Map container not found.");if(e._leaflet)throw new Error("Map container is already initialized.");e._leaflet=!0},_initLayout:function(){var t=this._container;o.DomUtil.addClass(t,"leaflet-container"+(o.Browser.touch?" leaflet-touch":"")+(o.Browser.retina?" leaflet-retina":"")+(o.Browser.ielt9?" leaflet-oldie":"")+(this.options.fadeAnimation?" leaflet-fade-anim":""));var e=o.DomUtil.getStyle(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._mapPane=t.mapPane=this._createPane("leaflet-map-pane",this._container),this._tilePane=t.tilePane=this._createPane("leaflet-tile-pane",this._mapPane),t.objectsPane=this._createPane("leaflet-objects-pane",this._mapPane),t.shadowPane=this._createPane("leaflet-shadow-pane"),t.overlayPane=this._createPane("leaflet-overlay-pane"),t.markerPane=this._createPane("leaflet-marker-pane"),t.popupPane=this._createPane("leaflet-popup-pane");var e=" leaflet-zoom-hide";this.options.markerZoomAnimation||(o.DomUtil.addClass(t.markerPane,e),o.DomUtil.addClass(t.shadowPane,e),o.DomUtil.addClass(t.popupPane,e))},_createPane:function(t,e){return o.DomUtil.create("div",t,e||this._panes.objectsPane)},_clearPanes:function(){this._container.removeChild(this._mapPane)},_addLayers:function(t){t=t?o.Util.isArray(t)?t:[t]:[];for(var e=0,i=t.length;i>e;e++)this.addLayer(t[e])},_resetView:function(t,e,i,n){var s=this._zoom!==e;n||(this.fire("movestart"),s&&this.fire("zoomstart")),this._zoom=e,this._initialCenter=t,this._initialTopLeftPoint=this._getNewTopLeftPoint(t),i?this._initialTopLeftPoint._add(this._getMapPanePos()):o.DomUtil.setPosition(this._mapPane,new o.Point(0,0)),this._tileLayersToLoad=this._tileLayersNum;var a=!this._loaded;this._loaded=!0,this.fire("viewreset",{hard:!i}),a&&(this.fire("load"),this.eachLayer(this._layerAdd,this)),this.fire("move"),(s||n)&&this.fire("zoomend"),this.fire("moveend",{hard:!i})},_rawPanBy:function(t){o.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_updateZoomLevels:function(){var t,e=1/0,n=-(1/0),o=this._getZoomSpan();for(t in this._zoomBoundLayers){var s=this._zoomBoundLayers[t];isNaN(s.options.minZoom)||(e=Math.min(e,s.options.minZoom)),isNaN(s.options.maxZoom)||(n=Math.max(n,s.options.maxZoom))}t===i?this._layersMaxZoom=this._layersMinZoom=i:(this._layersMaxZoom=n,this._layersMinZoom=e),o!==this._getZoomSpan()&&this.fire("zoomlevelschange")},_panInsideMaxBounds:function(){this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(e){if(o.DomEvent){e=e||"on",o.DomEvent[e](this._container,"click",this._onMouseClick,this);var i,n,s=["dblclick","mousedown","mouseup","mouseenter","mouseleave","mousemove","contextmenu"];for(i=0,n=s.length;n>i;i++)o.DomEvent[e](this._container,s[i],this._fireMouseEvent,this);this.options.trackResize&&o.DomEvent[e](t,"resize",this._onResize,this)}},_onResize:function(){o.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=o.Util.requestAnimFrame(function(){this.invalidateSize({debounceMoveend:!0})},this,!1,this._container)},_onMouseClick:function(t){!this._loaded||!t._simulated&&(this.dragging&&this.dragging.moved()||this.boxZoom&&this.boxZoom.moved())||o.DomEvent._skipped(t)||(this.fire("preclick"),this._fireMouseEvent(t))},_fireMouseEvent:function(t){if(this._loaded&&!o.DomEvent._skipped(t)){var e=t.type;if(e="mouseenter"===e?"mouseover":"mouseleave"===e?"mouseout":e,this.hasEventListeners(e)){"contextmenu"===e&&o.DomEvent.preventDefault(t);var i=this.mouseEventToContainerPoint(t),n=this.containerPointToLayerPoint(i),s=this.layerPointToLatLng(n);this.fire(e,{latlng:s,layerPoint:n,containerPoint:i,originalEvent:t})}}},_onTileLayerLoad:function(){this._tileLayersToLoad--,this._tileLayersNum&&!this._tileLayersToLoad&&this.fire("tilelayersload")},_clearHandlers:function(){for(var t=0,e=this._handlers.length;e>t;t++)this._handlers[t].disable()},whenReady:function(t,e){return this._loaded?t.call(e||this,this):this.on("load",t,e),this},_layerAdd:function(t){t.onAdd(this),this.fire("layeradd",{layer:t})},_getMapPanePos:function(){return o.DomUtil.getPosition(this._mapPane)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(){return this.getPixelOrigin().subtract(this._getMapPanePos())},_getNewTopLeftPoint:function(t,e){var i=this.getSize()._divideBy(2);return this.project(t,e)._subtract(i)._round()},_latLngToNewLayerPoint:function(t,e,i){var n=this._getNewTopLeftPoint(i,e).add(this._getMapPanePos());return this.project(t,e)._subtract(n)},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,e,i){if(!i)return t;var n=this.project(t,e),s=this.getSize().divideBy(2),a=new o.Bounds(n.subtract(s),n.add(s)),r=this._getBoundsOffset(a,i,e);return this.unproject(n.add(r),e)},_limitOffset:function(t,e){if(!e)return t;var i=this.getPixelBounds(),n=new o.Bounds(i.min.add(t),i.max.add(t));return t.add(this._getBoundsOffset(n,e))},_getBoundsOffset:function(t,e,i){var n=this.project(e.getNorthWest(),i).subtract(t.min),s=this.project(e.getSouthEast(),i).subtract(t.max),a=this._rebound(n.x,-s.x),r=this._rebound(n.y,-s.y);return new o.Point(a,r)},_rebound:function(t,e){return t+e>0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom();return Math.max(e,Math.min(i,t))}}),o.map=function(t,e){return new o.Map(t,e)},o.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.314245179,R_MAJOR:6378137,project:function(t){var e=o.LatLng.DEG_TO_RAD,i=this.MAX_LATITUDE,n=Math.max(Math.min(i,t.lat),-i),s=this.R_MAJOR,a=this.R_MINOR,r=t.lng*e*s,h=n*e,l=a/s,u=Math.sqrt(1-l*l),c=u*Math.sin(h);c=Math.pow((1-c)/(1+c),.5*u);var d=Math.tan(.5*(.5*Math.PI-h))/c;return h=-s*Math.log(d),new o.Point(r,h)},unproject:function(t){for(var e,i=o.LatLng.RAD_TO_DEG,n=this.R_MAJOR,s=this.R_MINOR,a=t.x*i/n,r=s/n,h=Math.sqrt(1-r*r),l=Math.exp(-t.y/n),u=Math.PI/2-2*Math.atan(l),c=15,d=1e-7,p=c,_=.1;Math.abs(_)>d&&--p>0;)e=h*Math.sin(u),_=Math.PI/2-2*Math.atan(l*Math.pow((1-e)/(1+e),.5*h))-u,u+=_;return new o.LatLng(u*i,a)}},o.CRS.EPSG3395=o.extend({},o.CRS,{code:"EPSG:3395",projection:o.Projection.Mercator, transformation:function(){var t=o.Projection.Mercator,e=t.R_MAJOR,i=.5/(Math.PI*e);return new o.Transformation(i,.5,-i,.5)}()}),o.TileLayer=o.Class.extend({includes:o.Mixin.Events,options:{minZoom:0,maxZoom:18,tileSize:256,subdomains:"abc",errorTileUrl:"",attribution:"",zoomOffset:0,opacity:1,unloadInvisibleTiles:o.Browser.mobile,updateWhenIdle:o.Browser.mobile},initialize:function(t,e){e=o.setOptions(this,e),e.detectRetina&&o.Browser.retina&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomOffset++,e.minZoom>0&&e.minZoom--,this.options.maxZoom--),e.bounds&&(e.bounds=o.latLngBounds(e.bounds)),this._url=t;var i=this.options.subdomains;"string"==typeof i&&(this.options.subdomains=i.split(""))},onAdd:function(t){this._map=t,this._animated=t._zoomAnimated,this._initContainer(),t.on({viewreset:this._reset,moveend:this._update},this),this._animated&&t.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||(this._limitedUpdate=o.Util.limitExecByInterval(this._update,150,this),t.on("move",this._limitedUpdate,this)),this._reset(),this._update()},addTo:function(t){return t.addLayer(this),this},onRemove:function(t){this._container.parentNode.removeChild(this._container),t.off({viewreset:this._reset,moveend:this._update},this),this._animated&&t.off({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||t.off("move",this._limitedUpdate,this),this._container=null,this._map=null},bringToFront:function(){var t=this._map._panes.tilePane;return this._container&&(t.appendChild(this._container),this._setAutoZIndex(t,Math.max)),this},bringToBack:function(){var t=this._map._panes.tilePane;return this._container&&(t.insertBefore(this._container,t.firstChild),this._setAutoZIndex(t,Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},setUrl:function(t,e){return this._url=t,e||this.redraw(),this},redraw:function(){return this._map&&(this._reset({hard:!0}),this._update()),this},_updateZIndex:function(){this._container&&this.options.zIndex!==i&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t,e){var i,n,o,s=t.children,a=-e(1/0,-(1/0));for(n=0,o=s.length;o>n;n++)s[n]!==this._container&&(i=parseInt(s[n].style.zIndex,10),isNaN(i)||(a=e(a,i)));this.options.zIndex=this._container.style.zIndex=(isFinite(a)?a:0)+e(1,-1)},_updateOpacity:function(){var t,e=this._tiles;if(o.Browser.ielt9)for(t in e)o.DomUtil.setOpacity(e[t],this.options.opacity);else o.DomUtil.setOpacity(this._container,this.options.opacity)},_initContainer:function(){var t=this._map._panes.tilePane;if(!this._container){if(this._container=o.DomUtil.create("div","leaflet-layer"),this._updateZIndex(),this._animated){var e="leaflet-tile-container";this._bgBuffer=o.DomUtil.create("div",e,this._container),this._tileContainer=o.DomUtil.create("div",e,this._container)}else this._tileContainer=this._container;t.appendChild(this._container),this.options.opacity<1&&this._updateOpacity()}},_reset:function(t){for(var e in this._tiles)this.fire("tileunload",{tile:this._tiles[e]});this._tiles={},this._tilesToLoad=0,this.options.reuseTiles&&(this._unusedTiles=[]),this._tileContainer.innerHTML="",this._animated&&t&&t.hard&&this._clearBgBuffer(),this._initContainer()},_getTileSize:function(){var t=this._map,e=t.getZoom()+this.options.zoomOffset,i=this.options.maxNativeZoom,n=this.options.tileSize;return i&&e>i&&(n=Math.round(t.getZoomScale(e)/t.getZoomScale(i)*n)),n},_update:function(){if(this._map){var t=this._map,e=t.getPixelBounds(),i=t.getZoom(),n=this._getTileSize();if(!(i>this.options.maxZoom||in;n++)this._addTile(a[n],l);this._tileContainer.appendChild(l)}},_tileShouldBeLoaded:function(t){if(t.x+":"+t.y in this._tiles)return!1;var e=this.options;if(!e.continuousWorld){var i=this._getWrapTileNum();if(e.noWrap&&(t.x<0||t.x>=i.x)||t.y<0||t.y>=i.y)return!1}if(e.bounds){var n=this._getTileSize(),o=t.multiplyBy(n),s=o.add([n,n]),a=this._map.unproject(o),r=this._map.unproject(s);if(e.continuousWorld||e.noWrap||(a=a.wrap(),r=r.wrap()),!e.bounds.intersects([a,r]))return!1}return!0},_removeOtherTiles:function(t){var e,i,n,o;for(o in this._tiles)e=o.split(":"),i=parseInt(e[0],10),n=parseInt(e[1],10),(it.max.x||nt.max.y)&&this._removeTile(o)},_removeTile:function(t){var e=this._tiles[t];this.fire("tileunload",{tile:e,url:e.src}),this.options.reuseTiles?(o.DomUtil.removeClass(e,"leaflet-tile-loaded"),this._unusedTiles.push(e)):e.parentNode===this._tileContainer&&this._tileContainer.removeChild(e),o.Browser.android||(e.onload=null,e.src=o.Util.emptyImageUrl),delete this._tiles[t]},_addTile:function(t,e){var i=this._getTilePos(t),n=this._getTile();o.DomUtil.setPosition(n,i,o.Browser.chrome),this._tiles[t.x+":"+t.y]=n,this._loadTile(n,t),n.parentNode!==this._tileContainer&&e.appendChild(n)},_getZoomForUrl:function(){var t=this.options,e=this._map.getZoom();return t.zoomReverse&&(e=t.maxZoom-e),e+=t.zoomOffset,t.maxNativeZoom?Math.min(e,t.maxNativeZoom):e},_getTilePos:function(t){var e=this._map.getPixelOrigin(),i=this._getTileSize();return t.multiplyBy(i).subtract(e)},getTileUrl:function(t){return o.Util.template(this._url,o.extend({s:this._getSubdomain(t),z:t.z,x:t.x,y:t.y},this.options))},_getWrapTileNum:function(){var t=this._map.options.crs,e=t.getSize(this._map.getZoom());return e.divideBy(this._getTileSize())._floor()},_adjustTilePoint:function(t){var e=this._getWrapTileNum();this.options.continuousWorld||this.options.noWrap||(t.x=(t.x%e.x+e.x)%e.x),this.options.tms&&(t.y=e.y-t.y-1),t.z=this._getZoomForUrl()},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_getTile:function(){if(this.options.reuseTiles&&this._unusedTiles.length>0){var t=this._unusedTiles.pop();return this._resetTile(t),t}return this._createTile()},_resetTile:function(){},_createTile:function(){var t=o.DomUtil.create("img","leaflet-tile");return t.style.width=t.style.height=this._getTileSize()+"px",t.galleryimg="no",t.onselectstart=t.onmousemove=o.Util.falseFn,o.Browser.ielt9&&this.options.opacity!==i&&o.DomUtil.setOpacity(t,this.options.opacity),o.Browser.mobileWebkit3d&&(t.style.WebkitBackfaceVisibility="hidden"),t},_loadTile:function(t,e){t._layer=this,t.onload=this._tileOnLoad,t.onerror=this._tileOnError,this._adjustTilePoint(e),t.src=this.getTileUrl(e),this.fire("tileloadstart",{tile:t,url:t.src})},_tileLoaded:function(){this._tilesToLoad--,this._animated&&o.DomUtil.addClass(this._tileContainer,"leaflet-zoom-animated"),this._tilesToLoad||(this.fire("load"),this._animated&&(clearTimeout(this._clearBgBufferTimer),this._clearBgBufferTimer=setTimeout(o.bind(this._clearBgBuffer,this),500)))},_tileOnLoad:function(){var t=this._layer;this.src!==o.Util.emptyImageUrl&&(o.DomUtil.addClass(this,"leaflet-tile-loaded"),t.fire("tileload",{tile:this,url:this.src})),t._tileLoaded()},_tileOnError:function(){var t=this._layer;t.fire("tileerror",{tile:this,url:this.src});var e=t.options.errorTileUrl;e&&(this.src=e),t._tileLoaded()}}),o.tileLayer=function(t,e){return new o.TileLayer(t,e)},o.TileLayer.WMS=o.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",version:"1.1.1",layers:"",styles:"",format:"image/jpeg",transparent:!1},initialize:function(t,e){this._url=t;var i=o.extend({},this.defaultWmsParams),n=e.tileSize||this.options.tileSize;e.detectRetina&&o.Browser.retina?i.width=i.height=2*n:i.width=i.height=n;for(var s in e)this.options.hasOwnProperty(s)||"crs"===s||(i[s]=e[s]);this.wmsParams=i,o.setOptions(this,e)},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,o.TileLayer.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._map,i=this.options.tileSize,n=t.multiplyBy(i),s=n.add([i,i]),a=this._crs.project(e.unproject(n,t.z)),r=this._crs.project(e.unproject(s,t.z)),h=this._wmsVersion>=1.3&&this._crs===o.CRS.EPSG4326?[r.y,a.x,a.y,r.x].join(","):[a.x,r.y,r.x,a.y].join(","),l=o.Util.template(this._url,{s:this._getSubdomain(t)});return l+o.Util.getParamString(this.wmsParams,l,!0)+"&BBOX="+h},setParams:function(t,e){return o.extend(this.wmsParams,t),e||this.redraw(),this}}),o.tileLayer.wms=function(t,e){return new o.TileLayer.WMS(t,e)},o.TileLayer.Canvas=o.TileLayer.extend({options:{async:!1},initialize:function(t){o.setOptions(this,t)},redraw:function(){this._map&&(this._reset({hard:!0}),this._update());for(var t in this._tiles)this._redrawTile(this._tiles[t]);return this},_redrawTile:function(t){this.drawTile(t,t._tilePoint,this._map._zoom)},_createTile:function(){var t=o.DomUtil.create("canvas","leaflet-tile");return t.width=t.height=this.options.tileSize,t.onselectstart=t.onmousemove=o.Util.falseFn,t},_loadTile:function(t,e){t._layer=this,t._tilePoint=e,this._redrawTile(t),this.options.async||this.tileDrawn(t)},drawTile:function(){},tileDrawn:function(t){this._tileOnLoad.call(t)}}),o.tileLayer.canvas=function(t){return new o.TileLayer.Canvas(t)},o.ImageOverlay=o.Class.extend({includes:o.Mixin.Events,options:{opacity:1},initialize:function(t,e,i){this._url=t,this._bounds=o.latLngBounds(e),o.setOptions(this,i)},onAdd:function(t){this._map=t,this._image||this._initImage(),t._panes.overlayPane.appendChild(this._image),t.on("viewreset",this._reset,this),t.options.zoomAnimation&&o.Browser.any3d&&t.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(t){t.getPanes().overlayPane.removeChild(this._image),t.off("viewreset",this._reset,this),t.options.zoomAnimation&&t.off("zoomanim",this._animateZoom,this)},addTo:function(t){return t.addLayer(this),this},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},bringToFront:function(){return this._image&&this._map._panes.overlayPane.appendChild(this._image),this},bringToBack:function(){var t=this._map._panes.overlayPane;return this._image&&t.insertBefore(this._image,t.firstChild),this},setUrl:function(t){this._url=t,this._image.src=this._url},getAttribution:function(){return this.options.attribution},_initImage:function(){this._image=o.DomUtil.create("img","leaflet-image-layer"),this._map.options.zoomAnimation&&o.Browser.any3d?o.DomUtil.addClass(this._image,"leaflet-zoom-animated"):o.DomUtil.addClass(this._image,"leaflet-zoom-hide"),this._updateOpacity(),o.extend(this._image,{galleryimg:"no",onselectstart:o.Util.falseFn,onmousemove:o.Util.falseFn,onload:o.bind(this._onImageLoad,this),src:this._url})},_animateZoom:function(t){var e=this._map,i=this._image,n=e.getZoomScale(t.zoom),s=this._bounds.getNorthWest(),a=this._bounds.getSouthEast(),r=e._latLngToNewLayerPoint(s,t.zoom,t.center),h=e._latLngToNewLayerPoint(a,t.zoom,t.center)._subtract(r),l=r._add(h._multiplyBy(.5*(1-1/n)));i.style[o.DomUtil.TRANSFORM]=o.DomUtil.getTranslateString(l)+" scale("+n+") "},_reset:function(){var t=this._image,e=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),i=this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(e);o.DomUtil.setPosition(t,e),t.style.width=i.x+"px",t.style.height=i.y+"px"},_onImageLoad:function(){this.fire("load")},_updateOpacity:function(){o.DomUtil.setOpacity(this._image,this.options.opacity)}}),o.imageOverlay=function(t,e,i){return new o.ImageOverlay(t,e,i)},o.Icon=o.Class.extend({options:{className:""},initialize:function(t){o.setOptions(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,e){var i=this._getIconUrl(t);if(!i){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n;return n=e&&"IMG"===e.tagName?this._createImg(i,e):this._createImg(i),this._setIconStyles(n,t),n},_setIconStyles:function(t,e){var i,n=this.options,s=o.point(n[e+"Size"]);i="shadow"===e?o.point(n.shadowAnchor||n.iconAnchor):o.point(n.iconAnchor),!i&&s&&(i=s.divideBy(2,!0)),t.className="leaflet-marker-"+e+" "+n.className,i&&(t.style.marginLeft=-i.x+"px",t.style.marginTop=-i.y+"px"),s&&(t.style.width=s.x+"px",t.style.height=s.y+"px")},_createImg:function(t,i){return i=i||e.createElement("img"),i.src=t,i},_getIconUrl:function(t){return o.Browser.retina&&this.options[t+"RetinaUrl"]?this.options[t+"RetinaUrl"]:this.options[t+"Url"]}}),o.icon=function(t){return new o.Icon(t)},o.Icon.Default=o.Icon.extend({options:{iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]},_getIconUrl:function(t){var e=t+"Url";if(this.options[e])return this.options[e];o.Browser.retina&&"icon"===t&&(t+="-2x");var i=o.Icon.Default.imagePath;if(!i)throw new Error("Couldn't autodetect L.Icon.Default.imagePath, set it manually.");return i+"/marker-"+t+".png"}}),o.Icon.Default.imagePath=function(){var t,i,n,o,s,a=e.getElementsByTagName("script"),r=/[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/;for(t=0,i=a.length;i>t;t++)if(n=a[t].src,o=n.match(r))return s=n.split(r)[0],(s?s+"/":"")+"images"}(),o.Marker=o.Class.extend({includes:o.Mixin.Events,options:{icon:new o.Icon.Default,title:"",alt:"",clickable:!0,draggable:!1,keyboard:!0,zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250},initialize:function(t,e){o.setOptions(this,e),this._latlng=o.latLng(t)},onAdd:function(t){this._map=t,t.on("viewreset",this.update,this),this._initIcon(),this.update(),this.fire("add"),t.options.zoomAnimation&&t.options.markerZoomAnimation&&t.on("zoomanim",this._animateZoom,this)},addTo:function(t){return t.addLayer(this),this},onRemove:function(t){this.dragging&&this.dragging.disable(),this._removeIcon(),this._removeShadow(),this.fire("remove"),t.off({viewreset:this.update,zoomanim:this._animateZoom},this),this._map=null},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=o.latLng(t),this.update(),this.fire("move",{latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update(),this},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup),this},update:function(){return this._icon&&this._setPos(this._map.latLngToLayerPoint(this._latlng).round()),this},_initIcon:function(){var t=this.options,e=this._map,i=e.options.zoomAnimation&&e.options.markerZoomAnimation,n=i?"leaflet-zoom-animated":"leaflet-zoom-hide",s=t.icon.createIcon(this._icon),a=!1;s!==this._icon&&(this._icon&&this._removeIcon(),a=!0,t.title&&(s.title=t.title),t.alt&&(s.alt=t.alt)),o.DomUtil.addClass(s,n),t.keyboard&&(s.tabIndex="0"),this._icon=s,this._initInteraction(),t.riseOnHover&&o.DomEvent.on(s,"mouseover",this._bringToFront,this).on(s,"mouseout",this._resetZIndex,this);var r=t.icon.createShadow(this._shadow),h=!1;r!==this._shadow&&(this._removeShadow(),h=!0),r&&o.DomUtil.addClass(r,n),this._shadow=r,t.opacity<1&&this._updateOpacity();var l=this._map._panes;a&&l.markerPane.appendChild(this._icon),r&&h&&l.shadowPane.appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&o.DomEvent.off(this._icon,"mouseover",this._bringToFront).off(this._icon,"mouseout",this._resetZIndex),this._map._panes.markerPane.removeChild(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&this._map._panes.shadowPane.removeChild(this._shadow),this._shadow=null},_setPos:function(t){o.DomUtil.setPosition(this._icon,t),this._shadow&&o.DomUtil.setPosition(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(e)},_initInteraction:function(){if(this.options.clickable){var t=this._icon,e=["dblclick","mousedown","mouseover","mouseout","contextmenu"];o.DomUtil.addClass(t,"leaflet-clickable"),o.DomEvent.on(t,"click",this._onMouseClick,this),o.DomEvent.on(t,"keypress",this._onKeyPress,this);for(var i=0;is?(e.height=s+"px",o.DomUtil.addClass(t,a)):o.DomUtil.removeClass(t,a),this._containerWidth=this._container.offsetWidth},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),e=this._animated,i=o.point(this.options.offset);e&&o.DomUtil.setPosition(this._container,t),this._containerBottom=-i.y-(e?0:t.y),this._containerLeft=-Math.round(this._containerWidth/2)+i.x+(e?0:t.x),this._container.style.bottom=this._containerBottom+"px",this._container.style.left=this._containerLeft+"px"}},_zoomAnimation:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);o.DomUtil.setPosition(this._container,e)},_adjustPan:function(){if(this.options.autoPan){var t=this._map,e=this._container.offsetHeight,i=this._containerWidth,n=new o.Point(this._containerLeft,-e-this._containerBottom);this._animated&&n._add(o.DomUtil.getPosition(this._container));var s=t.layerPointToContainerPoint(n),a=o.point(this.options.autoPanPadding),r=o.point(this.options.autoPanPaddingTopLeft||a),h=o.point(this.options.autoPanPaddingBottomRight||a),l=t.getSize(),u=0,c=0;s.x+i+h.x>l.x&&(u=s.x+i-l.x+h.x),s.x-u-r.x<0&&(u=s.x-r.x),s.y+e+h.y>l.y&&(c=s.y+e-l.y+h.y),s.y-c-r.y<0&&(c=s.y-r.y),(u||c)&&t.fire("autopanstart").panBy([u,c])}},_onCloseButtonClick:function(t){this._close(),o.DomEvent.stop(t)}}),o.popup=function(t,e){return new o.Popup(t,e)},o.Map.include({openPopup:function(t,e,i){if(this.closePopup(),!(t instanceof o.Popup)){var n=t;t=new o.Popup(i).setLatLng(e).setContent(n)}return t._isOpen=!0,this._popup=t,this.addLayer(t)},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&(this.removeLayer(t),t._isOpen=!1),this}}),o.Marker.include({openPopup:function(){return this._popup&&this._map&&!this._map.hasLayer(this._popup)&&(this._popup.setLatLng(this._latlng),this._map.openPopup(this._popup)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(){return this._popup&&(this._popup._isOpen?this.closePopup():this.openPopup()),this},bindPopup:function(t,e){var i=o.point(this.options.icon.options.popupAnchor||[0,0]);return i=i.add(o.Popup.prototype.options.offset),e&&e.offset&&(i=i.add(e.offset)),e=o.extend({offset:i},e),this._popupHandlersAdded||(this.on("click",this.togglePopup,this).on("remove",this.closePopup,this).on("move",this._movePopup,this),this._popupHandlersAdded=!0),t instanceof o.Popup?(o.setOptions(t,e),this._popup=t,t._source=this):this._popup=new o.Popup(e,this).setContent(t),this},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this.togglePopup,this).off("remove",this.closePopup,this).off("move",this._movePopup,this),this._popupHandlersAdded=!1),this},getPopup:function(){return this._popup},_movePopup:function(t){this._popup.setLatLng(t.latlng)}}),o.LayerGroup=o.Class.extend({initialize:function(t){this._layers={};var e,i;if(t)for(e=0,i=t.length;i>e;e++)this.addLayer(t[e])},addLayer:function(t){var e=this.getLayerId(t);return this._layers[e]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var e=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[e]&&this._map.removeLayer(this._layers[e]),delete this._layers[e],this},hasLayer:function(t){return t?t in this._layers||this.getLayerId(t)in this._layers:!1},clearLayers:function(){return this.eachLayer(this.removeLayer,this),this},invoke:function(t){var e,i,n=Array.prototype.slice.call(arguments,1);for(e in this._layers)i=this._layers[e],i[t]&&i[t].apply(i,n);return this},onAdd:function(t){this._map=t,this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t),this._map=null},addTo:function(t){return t.addLayer(this),this},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];for(var e in this._layers)t.push(this._layers[e]);return t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:function(t){return o.stamp(t)}}),o.layerGroup=function(t){return new o.LayerGroup(t)},o.FeatureGroup=o.LayerGroup.extend({includes:o.Mixin.Events,statics:{EVENTS:"click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose"},addLayer:function(t){return this.hasLayer(t)?this:("on"in t&&t.on(o.FeatureGroup.EVENTS,this._propagateEvent,this),o.LayerGroup.prototype.addLayer.call(this,t),this._popupContent&&t.bindPopup&&t.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),"off"in t&&t.off(o.FeatureGroup.EVENTS,this._propagateEvent,this),o.LayerGroup.prototype.removeLayer.call(this,t),this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:t})):this},bindPopup:function(t,e){return this._popupContent=t,this._popupOptions=e,this.invoke("bindPopup",t,e)},openPopup:function(t){for(var e in this._layers){this._layers[e].openPopup(t);break}return this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new o.LatLngBounds;return this.eachLayer(function(e){t.extend(e instanceof o.Marker?e.getLatLng():e.getBounds())}),t},_propagateEvent:function(t){t=o.extend({layer:t.target,target:this},t),this.fire(t.type,t)}}),o.featureGroup=function(t){return new o.FeatureGroup(t)},o.Path=o.Class.extend({includes:[o.Mixin.Events],statics:{CLIP_PADDING:function(){var e=o.Browser.mobile?1280:2e3,i=(e/Math.max(t.outerWidth,t.outerHeight)-1)/2;return Math.max(0,Math.min(.5,i))}()},options:{stroke:!0,color:"#0033ff",dashArray:null,lineCap:null,lineJoin:null,weight:5,opacity:.5,fill:!1,fillColor:null,fillOpacity:.2,clickable:!0},initialize:function(t){o.setOptions(this,t)},onAdd:function(t){this._map=t,this._container||(this._initElements(),this._initEvents()),this.projectLatlngs(),this._updatePath(),this._container&&this._map._pathRoot.appendChild(this._container),this.fire("add"),t.on({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},addTo:function(t){return t.addLayer(this),this},onRemove:function(t){t._pathRoot.removeChild(this._container),this.fire("remove"),this._map=null,o.Browser.vml&&(this._container=null,this._stroke=null,this._fill=null),t.off({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},projectLatlngs:function(){},setStyle:function(t){return o.setOptions(this,t),this._container&&this._updateStyle(),this},redraw:function(){return this._map&&(this.projectLatlngs(),this._updatePath()),this}}),o.Map.include({_updatePathViewport:function(){var t=o.Path.CLIP_PADDING,e=this.getSize(),i=o.DomUtil.getPosition(this._mapPane),n=i.multiplyBy(-1)._subtract(e.multiplyBy(t)._round()),s=n.add(e.multiplyBy(1+2*t)._round());this._pathViewport=new o.Bounds(n,s)}}),o.Path.SVG_NS="http://www.w3.org/2000/svg",o.Browser.svg=!(!e.createElementNS||!e.createElementNS(o.Path.SVG_NS,"svg").createSVGRect),o.Path=o.Path.extend({statics:{SVG:o.Browser.svg},bringToFront:function(){var t=this._map._pathRoot,e=this._container;return e&&t.lastChild!==e&&t.appendChild(e),this},bringToBack:function(){var t=this._map._pathRoot,e=this._container,i=t.firstChild;return e&&i!==e&&t.insertBefore(e,i),this},getPathString:function(){},_createElement:function(t){return e.createElementNS(o.Path.SVG_NS,t)},_initElements:function(){this._map._initPathRoot(),this._initPath(),this._initStyle()},_initPath:function(){this._container=this._createElement("g"),this._path=this._createElement("path"),this.options.className&&o.DomUtil.addClass(this._path,this.options.className),this._container.appendChild(this._path)},_initStyle:function(){this.options.stroke&&(this._path.setAttribute("stroke-linejoin","round"),this._path.setAttribute("stroke-linecap","round")),this.options.fill&&this._path.setAttribute("fill-rule","evenodd"),this.options.pointerEvents&&this._path.setAttribute("pointer-events",this.options.pointerEvents),this.options.clickable||this.options.pointerEvents||this._path.setAttribute("pointer-events","none"),this._updateStyle()},_updateStyle:function(){this.options.stroke?(this._path.setAttribute("stroke",this.options.color),this._path.setAttribute("stroke-opacity",this.options.opacity),this._path.setAttribute("stroke-width",this.options.weight),this.options.dashArray?this._path.setAttribute("stroke-dasharray",this.options.dashArray):this._path.removeAttribute("stroke-dasharray"),this.options.lineCap&&this._path.setAttribute("stroke-linecap",this.options.lineCap),this.options.lineJoin&&this._path.setAttribute("stroke-linejoin",this.options.lineJoin)):this._path.setAttribute("stroke","none"),this.options.fill?(this._path.setAttribute("fill",this.options.fillColor||this.options.color),this._path.setAttribute("fill-opacity",this.options.fillOpacity)):this._path.setAttribute("fill","none")},_updatePath:function(){var t=this.getPathString();t||(t="M0 0"),this._path.setAttribute("d",t)},_initEvents:function(){if(this.options.clickable){(o.Browser.svg||!o.Browser.vml)&&o.DomUtil.addClass(this._path,"leaflet-clickable"),o.DomEvent.on(this._container,"click",this._onMouseClick,this);for(var t=["dblclick","mousedown","mouseover","mouseout","mousemove","contextmenu"],e=0;e';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(n){return!1}}(),o.Path=o.Browser.svg||!o.Browser.vml?o.Path:o.Path.extend({statics:{VML:!0,CLIP_PADDING:.02},_createElement:function(){try{return e.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return e.createElement("')}}catch(t){return function(t){return e.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_initPath:function(){var t=this._container=this._createElement("shape");o.DomUtil.addClass(t,"leaflet-vml-shape"+(this.options.className?" "+this.options.className:"")),this.options.clickable&&o.DomUtil.addClass(t,"leaflet-clickable"),t.coordsize="1 1",this._path=this._createElement("path"),t.appendChild(this._path),this._map._pathRoot.appendChild(t)},_initStyle:function(){this._updateStyle()},_updateStyle:function(){var t=this._stroke,e=this._fill,i=this.options,n=this._container;n.stroked=i.stroke,n.filled=i.fill,i.stroke?(t||(t=this._stroke=this._createElement("stroke"),t.endcap="round",n.appendChild(t)),t.weight=i.weight+"px",t.color=i.color,t.opacity=i.opacity,i.dashArray?t.dashStyle=o.Util.isArray(i.dashArray)?i.dashArray.join(" "):i.dashArray.replace(/( *, *)/g," "):t.dashStyle="",i.lineCap&&(t.endcap=i.lineCap.replace("butt","flat")),i.lineJoin&&(t.joinstyle=i.lineJoin)):t&&(n.removeChild(t),this._stroke=null),i.fill?(e||(e=this._fill=this._createElement("fill"),n.appendChild(e)),e.color=i.fillColor||i.color,e.opacity=i.fillOpacity):e&&(n.removeChild(e),this._fill=null)},_updatePath:function(){var t=this._container.style;t.display="none",this._path.v=this.getPathString()+" ",t.display=""}}),o.Map.include(o.Browser.svg||!o.Browser.vml?{}:{_initPathRoot:function(){if(!this._pathRoot){var t=this._pathRoot=e.createElement("div");t.className="leaflet-vml-container",this._panes.overlayPane.appendChild(t),this.on("moveend",this._updatePathViewport),this._updatePathViewport()}}}),o.Browser.canvas=function(){return!!e.createElement("canvas").getContext}(),o.Path=o.Path.SVG&&!t.L_PREFER_CANVAS||!o.Browser.canvas?o.Path:o.Path.extend({statics:{CANVAS:!0,SVG:!1},redraw:function(){return this._map&&(this.projectLatlngs(),this._requestUpdate()),this},setStyle:function(t){return o.setOptions(this,t),this._map&&(this._updateStyle(),this._requestUpdate()),this},onRemove:function(t){t.off("viewreset",this.projectLatlngs,this).off("moveend",this._updatePath,this),this.options.clickable&&(this._map.off("click",this._onClick,this),this._map.off("mousemove",this._onMouseMove,this)),this._requestUpdate(),this.fire("remove"),this._map=null},_requestUpdate:function(){this._map&&!o.Path._updateRequest&&(o.Path._updateRequest=o.Util.requestAnimFrame(this._fireMapMoveEnd,this._map))},_fireMapMoveEnd:function(){o.Path._updateRequest=null,this.fire("moveend")},_initElements:function(){this._map._initPathRoot(),this._ctx=this._map._canvasCtx},_updateStyle:function(){var t=this.options;t.stroke&&(this._ctx.lineWidth=t.weight,this._ctx.strokeStyle=t.color),t.fill&&(this._ctx.fillStyle=t.fillColor||t.color),t.lineCap&&(this._ctx.lineCap=t.lineCap),t.lineJoin&&(this._ctx.lineJoin=t.lineJoin)},_drawPath:function(){var t,e,i,n,s,a;for(this._ctx.beginPath(),t=0,i=this._parts.length;i>t;t++){for(e=0,n=this._parts[t].length;n>e;e++)s=this._parts[t][e],a=(0===e?"move":"line")+"To",this._ctx[a](s.x,s.y);this instanceof o.Polygon&&this._ctx.closePath()}},_checkIfEmpty:function(){return!this._parts.length},_updatePath:function(){if(!this._checkIfEmpty()){var t=this._ctx,e=this.options;this._drawPath(),t.save(),this._updateStyle(),e.fill&&(t.globalAlpha=e.fillOpacity,t.fill(e.fillRule||"evenodd")),e.stroke&&(t.globalAlpha=e.opacity,t.stroke()),t.restore()}},_initEvents:function(){this.options.clickable&&(this._map.on("mousemove",this._onMouseMove,this),this._map.on("click dblclick contextmenu",this._fireMouseEvent,this))},_fireMouseEvent:function(t){this._containsPoint(t.layerPoint)&&this.fire(t.type,t)},_onMouseMove:function(t){this._map&&!this._map._animatingZoom&&(this._containsPoint(t.layerPoint)?(this._ctx.canvas.style.cursor="pointer",this._mouseInside=!0,this.fire("mouseover",t)):this._mouseInside&&(this._ctx.canvas.style.cursor="",this._mouseInside=!1,this.fire("mouseout",t)))}}),o.Map.include(o.Path.SVG&&!t.L_PREFER_CANVAS||!o.Browser.canvas?{}:{_initPathRoot:function(){var t,i=this._pathRoot;i||(i=this._pathRoot=e.createElement("canvas"),i.style.position="absolute",t=this._canvasCtx=i.getContext("2d"),t.lineCap="round",t.lineJoin="round",this._panes.overlayPane.appendChild(i),this.options.zoomAnimation&&(this._pathRoot.className="leaflet-zoom-animated",this.on("zoomanim",this._animatePathZoom),this.on("zoomend",this._endPathZoom)),this.on("moveend",this._updateCanvasViewport),this._updateCanvasViewport())},_updateCanvasViewport:function(){if(!this._pathZooming){this._updatePathViewport();var t=this._pathViewport,e=t.min,i=t.max.subtract(e),n=this._pathRoot;o.DomUtil.setPosition(n,e),n.width=i.x,n.height=i.y,n.getContext("2d").translate(-e.x,-e.y)}}}),o.LineUtil={simplify:function(t,e){if(!e||!t.length)return t.slice();var i=e*e;return t=this._reducePoints(t,i),t=this._simplifyDP(t,i)},pointToSegmentDistance:function(t,e,i){return Math.sqrt(this._sqClosestPointOnSegment(t,e,i,!0))},closestPointOnSegment:function(t,e,i){return this._sqClosestPointOnSegment(t,e,i)},_simplifyDP:function(t,e){var n=t.length,o=typeof Uint8Array!=i+""?Uint8Array:Array,s=new o(n);s[0]=s[n-1]=1,this._simplifyDPStep(t,s,e,0,n-1);var a,r=[];for(a=0;n>a;a++)s[a]&&r.push(t[a]);return r},_simplifyDPStep:function(t,e,i,n,o){var s,a,r,h=0;for(a=n+1;o-1>=a;a++)r=this._sqClosestPointOnSegment(t[a],t[n],t[o],!0),r>h&&(s=a,h=r);h>i&&(e[s]=1,this._simplifyDPStep(t,e,i,n,s),this._simplifyDPStep(t,e,i,s,o))},_reducePoints:function(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;s>n;n++)this._sqDist(t[n],t[o])>e&&(i.push(t[n]),o=n);return s-1>o&&i.push(t[s-1]),i},clipSegment:function(t,e,i,n){var o,s,a,r=n?this._lastCode:this._getBitCode(t,i),h=this._getBitCode(e,i);for(this._lastCode=h;;){if(!(r|h))return[t,e];if(r&h)return!1;o=r||h,s=this._getEdgeIntersection(t,e,o,i),a=this._getBitCode(s,i),o===r?(t=s,r=a):(e=s,h=a)}},_getEdgeIntersection:function(t,e,i,n){var s=e.x-t.x,a=e.y-t.y,r=n.min,h=n.max;return 8&i?new o.Point(t.x+s*(h.y-t.y)/a,h.y):4&i?new o.Point(t.x+s*(r.y-t.y)/a,r.y):2&i?new o.Point(h.x,t.y+a*(h.x-t.x)/s):1&i?new o.Point(r.x,t.y+a*(r.x-t.x)/s):void 0},_getBitCode:function(t,e){var i=0;return t.xe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i},_sqDist:function(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n},_sqClosestPointOnSegment:function(t,e,i,n){var s,a=e.x,r=e.y,h=i.x-a,l=i.y-r,u=h*h+l*l;return u>0&&(s=((t.x-a)*h+(t.y-r)*l)/u,s>1?(a=i.x,r=i.y):s>0&&(a+=h*s,r+=l*s)),h=t.x-a,l=t.y-r,n?h*h+l*l:new o.Point(a,r)}},o.Polyline=o.Path.extend({initialize:function(t,e){o.Path.prototype.initialize.call(this,e),this._latlngs=this._convertLatLngs(t)},options:{smoothFactor:1,noClip:!1},projectLatlngs:function(){this._originalPoints=[];for(var t=0,e=this._latlngs.length;e>t;t++)this._originalPoints[t]=this._map.latLngToLayerPoint(this._latlngs[t])},getPathString:function(){for(var t=0,e=this._parts.length,i="";e>t;t++)i+=this._getPathPartStr(this._parts[t]);return i},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._latlngs=this._convertLatLngs(t),this.redraw()},addLatLng:function(t){return this._latlngs.push(o.latLng(t)),this.redraw()},spliceLatLngs:function(){var t=[].splice.apply(this._latlngs,arguments);return this._convertLatLngs(this._latlngs,!0),this.redraw(),t},closestLayerPoint:function(t){for(var e,i,n=1/0,s=this._parts,a=null,r=0,h=s.length;h>r;r++)for(var l=s[r],u=1,c=l.length;c>u;u++){e=l[u-1],i=l[u];var d=o.LineUtil._sqClosestPointOnSegment(t,e,i,!0);n>d&&(n=d,a=o.LineUtil._sqClosestPointOnSegment(t,e,i))}return a&&(a.distance=Math.sqrt(n)),a},getBounds:function(){return new o.LatLngBounds(this.getLatLngs())},_convertLatLngs:function(t,e){var i,n,s=e?t:[];for(i=0,n=t.length;n>i;i++){if(o.Util.isArray(t[i])&&"number"!=typeof t[i][0])return;s[i]=o.latLng(t[i])}return s},_initEvents:function(){o.Path.prototype._initEvents.call(this)},_getPathPartStr:function(t){for(var e,i=o.Path.VML,n=0,s=t.length,a="";s>n;n++)e=t[n],i&&e._round(),a+=(n?"L":"M")+e.x+" "+e.y;return a},_clipPoints:function(){var t,e,i,n=this._originalPoints,s=n.length;if(this.options.noClip)return void(this._parts=[n]);this._parts=[];var a=this._parts,r=this._map._pathViewport,h=o.LineUtil;for(t=0,e=0;s-1>t;t++)i=h.clipSegment(n[t],n[t+1],r,t),i&&(a[e]=a[e]||[],a[e].push(i[0]),(i[1]!==n[t+1]||t===s-2)&&(a[e].push(i[1]),e++))},_simplifyPoints:function(){for(var t=this._parts,e=o.LineUtil,i=0,n=t.length;n>i;i++)t[i]=e.simplify(t[i],this.options.smoothFactor)},_updatePath:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),o.Path.prototype._updatePath.call(this))}}),o.polyline=function(t,e){return new o.Polyline(t,e)},o.PolyUtil={},o.PolyUtil.clipPolygon=function(t,e){var i,n,s,a,r,h,l,u,c,d=[1,4,2,8],p=o.LineUtil;for(n=0,l=t.length;l>n;n++)t[n]._code=p._getBitCode(t[n],e);for(a=0;4>a;a++){for(u=d[a],i=[],n=0,l=t.length,s=l-1;l>n;s=n++)r=t[n],h=t[s],r._code&u?h._code&u||(c=p._getEdgeIntersection(h,r,u,e),c._code=p._getBitCode(c,e),i.push(c)):(h._code&u&&(c=p._getEdgeIntersection(h,r,u,e),c._code=p._getBitCode(c,e),i.push(c)),i.push(r));t=i}return t},o.Polygon=o.Polyline.extend({options:{fill:!0},initialize:function(t,e){o.Polyline.prototype.initialize.call(this,t,e),this._initWithHoles(t)},_initWithHoles:function(t){var e,i,n;if(t&&o.Util.isArray(t[0])&&"number"!=typeof t[0][0])for(this._latlngs=this._convertLatLngs(t[0]),this._holes=t.slice(1),e=0,i=this._holes.length;i>e;e++)n=this._holes[e]=this._convertLatLngs(this._holes[e]),n[0].equals(n[n.length-1])&&n.pop();t=this._latlngs,t.length>=2&&t[0].equals(t[t.length-1])&&t.pop()},projectLatlngs:function(){if(o.Polyline.prototype.projectLatlngs.call(this),this._holePoints=[],this._holes){var t,e,i,n;for(t=0,i=this._holes.length;i>t;t++)for(this._holePoints[t]=[],e=0,n=this._holes[t].length;n>e;e++)this._holePoints[t][e]=this._map.latLngToLayerPoint(this._holes[t][e])}},setLatLngs:function(t){return t&&o.Util.isArray(t[0])&&"number"!=typeof t[0][0]?(this._initWithHoles(t),this.redraw()):o.Polyline.prototype.setLatLngs.call(this,t)},_clipPoints:function(){var t=this._originalPoints,e=[];if(this._parts=[t].concat(this._holePoints),!this.options.noClip){for(var i=0,n=this._parts.length;n>i;i++){var s=o.PolyUtil.clipPolygon(this._parts[i],this._map._pathViewport);s.length&&e.push(s)}this._parts=e}},_getPathPartStr:function(t){var e=o.Polyline.prototype._getPathPartStr.call(this,t);return e+(o.Browser.svg?"z":"x")}}),o.polygon=function(t,e){return new o.Polygon(t,e)},function(){function t(t){return o.FeatureGroup.extend({initialize:function(t,e){this._layers={},this._options=e,this.setLatLngs(t)},setLatLngs:function(e){var i=0,n=e.length;for(this.eachLayer(function(t){n>i?t.setLatLngs(e[i++]):this.removeLayer(t)},this);n>i;)this.addLayer(new t(e[i++],this._options));return this},getLatLngs:function(){var t=[];return this.eachLayer(function(e){t.push(e.getLatLngs())}),t}})}o.MultiPolyline=t(o.Polyline),o.MultiPolygon=t(o.Polygon),o.multiPolyline=function(t,e){return new o.MultiPolyline(t,e)},o.multiPolygon=function(t,e){return new o.MultiPolygon(t,e)}}(),o.Rectangle=o.Polygon.extend({initialize:function(t,e){o.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=o.latLngBounds(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}}),o.rectangle=function(t,e){return new o.Rectangle(t,e)},o.Circle=o.Path.extend({initialize:function(t,e,i){o.Path.prototype.initialize.call(this,i),this._latlng=o.latLng(t),this._mRadius=e},options:{fill:!0},setLatLng:function(t){return this._latlng=o.latLng(t),this.redraw()},setRadius:function(t){return this._mRadius=t,this.redraw()},projectLatlngs:function(){var t=this._getLngRadius(),e=this._latlng,i=this._map.latLngToLayerPoint([e.lat,e.lng-t]);this._point=this._map.latLngToLayerPoint(e),this._radius=Math.max(this._point.x-i.x,1)},getBounds:function(){var t=this._getLngRadius(),e=this._mRadius/40075017*360,i=this._latlng;return new o.LatLngBounds([i.lat-e,i.lng-t],[i.lat+e,i.lng+t])},getLatLng:function(){return this._latlng},getPathString:function(){var t=this._point,e=this._radius;return this._checkIfEmpty()?"":o.Browser.svg?"M"+t.x+","+(t.y-e)+"A"+e+","+e+",0,1,1,"+(t.x-.1)+","+(t.y-e)+" z":(t._round(),e=Math.round(e),"AL "+t.x+","+t.y+" "+e+","+e+" 0,23592600")},getRadius:function(){return this._mRadius},_getLatRadius:function(){return this._mRadius/40075017*360},_getLngRadius:function(){return this._getLatRadius()/Math.cos(o.LatLng.DEG_TO_RAD*this._latlng.lat)},_checkIfEmpty:function(){if(!this._map)return!1;var t=this._map._pathViewport,e=this._radius,i=this._point;return i.x-e>t.max.x||i.y-e>t.max.y||i.x+ei;i++)for(l=this._parts[i],n=0,r=l.length,s=r-1;r>n;s=n++)if((e||0!==n)&&(h=o.LineUtil.pointToSegmentDistance(t,l[s],l[n]),u>=h))return!0;return!1}}:{}),o.Polygon.include(o.Path.CANVAS?{_containsPoint:function(t){var e,i,n,s,a,r,h,l,u=!1;if(o.Polyline.prototype._containsPoint.call(this,t,!0))return!0;for(s=0,h=this._parts.length;h>s;s++)for(e=this._parts[s],a=0,l=e.length,r=l-1;l>a;r=a++)i=e[a],n=e[r],i.y>t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u}}:{}),o.Circle.include(o.Path.CANVAS?{_drawPath:function(){var t=this._point;this._ctx.beginPath(),this._ctx.arc(t.x,t.y,this._radius,0,2*Math.PI,!1)},_containsPoint:function(t){var e=this._point,i=this.options.stroke?this.options.weight/2:0;return t.distanceTo(e)<=this._radius+i}}:{}),o.CircleMarker.include(o.Path.CANVAS?{_updateStyle:function(){o.Path.prototype._updateStyle.call(this)}}:{}),o.GeoJSON=o.FeatureGroup.extend({initialize:function(t,e){o.setOptions(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,s=o.Util.isArray(t)?t:t.features;if(s){for(e=0,i=s.length;i>e;e++)n=s[e],(n.geometries||n.geometry||n.features||n.coordinates)&&this.addData(s[e]);return this}var a=this.options;if(!a.filter||a.filter(t)){var r=o.GeoJSON.geometryToLayer(t,a.pointToLayer,a.coordsToLatLng,a);return r.feature=o.GeoJSON.asFeature(t),r.defaultOptions=r.options,this.resetStyle(r),a.onEachFeature&&a.onEachFeature(t,r),this.addLayer(r)}},resetStyle:function(t){var e=this.options.style;e&&(o.Util.extend(t.options,t.defaultOptions),this._setLayerStyle(t,e))},setStyle:function(t){this.eachLayer(function(e){this._setLayerStyle(e,t)},this)},_setLayerStyle:function(t,e){"function"==typeof e&&(e=e(t.feature)),t.setStyle&&t.setStyle(e)}}),o.extend(o.GeoJSON,{geometryToLayer:function(t,e,i,n){var s,a,r,h,l="Feature"===t.type?t.geometry:t,u=l.coordinates,c=[];switch(i=i||this.coordsToLatLng,l.type){case"Point":return s=i(u),e?e(t,s):new o.Marker(s);case"MultiPoint":for(r=0,h=u.length;h>r;r++)s=i(u[r]),c.push(e?e(t,s):new o.Marker(s));return new o.FeatureGroup(c);case"LineString":return a=this.coordsToLatLngs(u,0,i),new o.Polyline(a,n);case"Polygon":if(2===u.length&&!u[1].length)throw new Error("Invalid GeoJSON object.");return a=this.coordsToLatLngs(u,1,i),new o.Polygon(a,n);case"MultiLineString":return a=this.coordsToLatLngs(u,1,i),new o.MultiPolyline(a,n);case"MultiPolygon":return a=this.coordsToLatLngs(u,2,i),new o.MultiPolygon(a,n);case"GeometryCollection":for(r=0,h=l.geometries.length;h>r;r++)c.push(this.geometryToLayer({geometry:l.geometries[r],type:"Feature",properties:t.properties},e,i,n));return new o.FeatureGroup(c);default:throw new Error("Invalid GeoJSON object.")}},coordsToLatLng:function(t){return new o.LatLng(t[1],t[0],t[2])},coordsToLatLngs:function(t,e,i){var n,o,s,a=[];for(o=0,s=t.length;s>o;o++)n=e?this.coordsToLatLngs(t[o],e-1,i):(i||this.coordsToLatLng)(t[o]),a.push(n);return a},latLngToCoords:function(t){var e=[t.lng,t.lat];return t.alt!==i&&e.push(t.alt),e},latLngsToCoords:function(t){for(var e=[],i=0,n=t.length;n>i;i++)e.push(o.GeoJSON.latLngToCoords(t[i]));return e},getFeature:function(t,e){return t.feature?o.extend({},t.feature,{geometry:e}):o.GeoJSON.asFeature(e)},asFeature:function(t){return"Feature"===t.type?t:{type:"Feature",properties:{},geometry:t}}});var a={toGeoJSON:function(){return o.GeoJSON.getFeature(this,{type:"Point",coordinates:o.GeoJSON.latLngToCoords(this.getLatLng())})}};o.Marker.include(a),o.Circle.include(a),o.CircleMarker.include(a),o.Polyline.include({toGeoJSON:function(){return o.GeoJSON.getFeature(this,{type:"LineString",coordinates:o.GeoJSON.latLngsToCoords(this.getLatLngs())})}}),o.Polygon.include({toGeoJSON:function(){var t,e,i,n=[o.GeoJSON.latLngsToCoords(this.getLatLngs())];if(n[0].push(n[0][0]),this._holes)for(t=0,e=this._holes.length;e>t;t++)i=o.GeoJSON.latLngsToCoords(this._holes[t]),i.push(i[0]),n.push(i);return o.GeoJSON.getFeature(this,{type:"Polygon",coordinates:n})}}),function(){function t(t){return function(){var e=[];return this.eachLayer(function(t){e.push(t.toGeoJSON().geometry.coordinates)}),o.GeoJSON.getFeature(this,{type:t,coordinates:e})}}o.MultiPolyline.include({toGeoJSON:t("MultiLineString")}),o.MultiPolygon.include({toGeoJSON:t("MultiPolygon")}),o.LayerGroup.include({toGeoJSON:function(){var e,i=this.feature&&this.feature.geometry,n=[];if(i&&"MultiPoint"===i.type)return t("MultiPoint").call(this);var s=i&&"GeometryCollection"===i.type;return this.eachLayer(function(t){t.toGeoJSON&&(e=t.toGeoJSON(),n.push(s?e.geometry:o.GeoJSON.asFeature(e)))}),s?o.GeoJSON.getFeature(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}})}(),o.geoJson=function(t,e){return new o.GeoJSON(t,e)},o.DomEvent={addListener:function(t,e,i,n){var s,a,r,h=o.stamp(i),l="_leaflet_"+e+h;return t[l]?this:(s=function(e){return i.call(n||t,e||o.DomEvent._getEvent())},o.Browser.pointer&&0===e.indexOf("touch")?this.addPointerListener(t,e,s,h):(o.Browser.touch&&"dblclick"===e&&this.addDoubleTapListener&&this.addDoubleTapListener(t,s,h),"addEventListener"in t?"mousewheel"===e?(t.addEventListener("DOMMouseScroll",s,!1),t.addEventListener(e,s,!1)):"mouseenter"===e||"mouseleave"===e?(a=s,r="mouseenter"===e?"mouseover":"mouseout",s=function(e){return o.DomEvent._checkMouse(t,e)?a(e):void 0},t.addEventListener(r,s,!1)):"click"===e&&o.Browser.android?(a=s,s=function(t){return o.DomEvent._filterClick(t,a)},t.addEventListener(e,s,!1)):t.addEventListener(e,s,!1):"attachEvent"in t&&t.attachEvent("on"+e,s),t[l]=s,this))},removeListener:function(t,e,i){var n=o.stamp(i),s="_leaflet_"+e+n,a=t[s];return a?(o.Browser.pointer&&0===e.indexOf("touch")?this.removePointerListener(t,e,n):o.Browser.touch&&"dblclick"===e&&this.removeDoubleTapListener?this.removeDoubleTapListener(t,n):"removeEventListener"in t?"mousewheel"===e?(t.removeEventListener("DOMMouseScroll",a,!1),t.removeEventListener(e,a,!1)):"mouseenter"===e||"mouseleave"===e?t.removeEventListener("mouseenter"===e?"mouseover":"mouseout",a,!1):t.removeEventListener(e,a,!1):"detachEvent"in t&&t.detachEvent("on"+e,a),t[s]=null,this):this},stopPropagation:function(t){return t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,o.DomEvent._skipped(t),this},disableScrollPropagation:function(t){var e=o.DomEvent.stopPropagation;return o.DomEvent.on(t,"mousewheel",e).on(t,"MozMousePixelScroll",e)},disableClickPropagation:function(t){for(var e=o.DomEvent.stopPropagation,i=o.Draggable.START.length-1;i>=0;i--)o.DomEvent.on(t,o.Draggable.START[i],e);return o.DomEvent.on(t,"click",o.DomEvent._fakeStop).on(t,"dblclick",e)},preventDefault:function(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this},stop:function(t){return o.DomEvent.preventDefault(t).stopPropagation(t)},getMousePosition:function(t,e){if(!e)return new o.Point(t.clientX,t.clientY);var i=e.getBoundingClientRect();return new o.Point(t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop)},getWheelDelta:function(t){var e=0;return t.wheelDelta&&(e=t.wheelDelta/120),t.detail&&(e=-t.detail/3),e},_skipEvents:{},_fakeStop:function(t){o.DomEvent._skipEvents[t.type]=!0},_skipped:function(t){var e=this._skipEvents[t.type];return this._skipEvents[t.type]=!1,e},_checkMouse:function(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(n){return!1}return i!==t},_getEvent:function(){var e=t.event;if(!e)for(var i=arguments.callee.caller;i&&(e=i.arguments[0],!e||t.Event!==e.constructor);)i=i.caller;return e},_filterClick:function(t,e){var i=t.timeStamp||t.originalEvent.timeStamp,n=o.DomEvent._lastClick&&i-o.DomEvent._lastClick;return n&&n>100&&500>n||t.target._simulatedClick&&!t._simulated?void o.DomEvent.stop(t):(o.DomEvent._lastClick=i,e(t))}},o.DomEvent.on=o.DomEvent.addListener,o.DomEvent.off=o.DomEvent.removeListener,o.Draggable=o.Class.extend({includes:o.Mixin.Events,statics:{START:o.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(t,e){this._element=t,this._dragStartTarget=e||t},enable:function(){if(!this._enabled){for(var t=o.Draggable.START.length-1;t>=0;t--)o.DomEvent.on(this._dragStartTarget,o.Draggable.START[t],this._onDown,this);this._enabled=!0}},disable:function(){if(this._enabled){for(var t=o.Draggable.START.length-1;t>=0;t--)o.DomEvent.off(this._dragStartTarget,o.Draggable.START[t],this._onDown,this);this._enabled=!1,this._moved=!1}},_onDown:function(t){if(this._moved=!1,!t.shiftKey&&(1===t.which||1===t.button||t.touches)&&(o.DomEvent.stopPropagation(t),!o.Draggable._disabled&&(o.DomUtil.disableImageDrag(),o.DomUtil.disableTextSelection(),!this._moving))){var i=t.touches?t.touches[0]:t;this._startPoint=new o.Point(i.clientX,i.clientY),this._startPos=this._newPos=o.DomUtil.getPosition(this._element),o.DomEvent.on(e,o.Draggable.MOVE[t.type],this._onMove,this).on(e,o.Draggable.END[t.type],this._onUp,this)}},_onMove:function(t){if(t.touches&&t.touches.length>1)return void(this._moved=!0);var i=t.touches&&1===t.touches.length?t.touches[0]:t,n=new o.Point(i.clientX,i.clientY),s=n.subtract(this._startPoint);(s.x||s.y)&&(o.Browser.touch&&Math.abs(s.x)+Math.abs(s.y)<3||(o.DomEvent.preventDefault(t),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=o.DomUtil.getPosition(this._element).subtract(s),o.DomUtil.addClass(e.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,o.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(s),this._moving=!0,o.Util.cancelAnimFrame(this._animRequest),this._animRequest=o.Util.requestAnimFrame(this._updatePosition,this,!0,this._dragStartTarget)))},_updatePosition:function(){this.fire("predrag"),o.DomUtil.setPosition(this._element,this._newPos),this.fire("drag")},_onUp:function(){o.DomUtil.removeClass(e.body,"leaflet-dragging"),this._lastTarget&&(o.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var t in o.Draggable.MOVE)o.DomEvent.off(e,o.Draggable.MOVE[t],this._onMove).off(e,o.Draggable.END[t],this._onUp);o.DomUtil.enableImageDrag(),o.DomUtil.enableTextSelection(),this._moved&&this._moving&&(o.Util.cancelAnimFrame(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1}}),o.Handler=o.Class.extend({initialize:function(t){this._map=t},enable:function(){this._enabled||(this._enabled=!0,this.addHooks())},disable:function(){this._enabled&&(this._enabled=!1,this.removeHooks())},enabled:function(){return!!this._enabled}}),o.Map.mergeOptions({dragging:!0,inertia:!o.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,inertiaThreshold:o.Browser.touch?32:18,easeLinearity:.25,worldCopyJump:!1}),o.Map.Drag=o.Handler.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new o.Draggable(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDrag,this),t.on("viewreset",this._onViewReset,this),t.whenReady(this._onViewReset,this))}this._draggable.enable()},removeHooks:function(){this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){var t=this._map;t._panAnim&&t._panAnim.stop(),t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(){if(this._map.options.inertia){var t=this._lastTime=+new Date,e=this._lastPos=this._draggable._newPos;this._positions.push(e),this._times.push(t),t-this._times[0]>200&&(this._positions.shift(),this._times.shift())}this._map.fire("move").fire("drag")},_onViewReset:function(){var t=this._map.getSize()._divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.project([0,180]).x},_onPreDrag:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,a=Math.abs(o+i)i.inertiaThreshold||!this._positions[0];if(e.fire("dragend",t),s)e.fire("moveend");else{var a=this._lastPos.subtract(this._positions[0]),r=(this._lastTime+n-this._times[0])/1e3,h=i.easeLinearity,l=a.multiplyBy(h/r),u=l.distanceTo([0,0]),c=Math.min(i.inertiaMaxSpeed,u),d=l.multiplyBy(c/u),p=c/(i.inertiaDeceleration*h),_=d.multiplyBy(-p/2).round();_.x&&_.y?(_=e._limitOffset(_,e.options.maxBounds),o.Util.requestAnimFrame(function(){e.panBy(_,{duration:p,easeLinearity:h,noMoveStart:!0})})):e.fire("moveend")}}}),o.Map.addInitHook("addHandler","dragging",o.Map.Drag),o.Map.mergeOptions({doubleClickZoom:!0}),o.Map.DoubleClickZoom=o.Handler.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom()+(t.originalEvent.shiftKey?-1:1);"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}}),o.Map.addInitHook("addHandler","doubleClickZoom",o.Map.DoubleClickZoom),o.Map.mergeOptions({scrollWheelZoom:!0}),o.Map.ScrollWheelZoom=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this),o.DomEvent.on(this._map._container,"MozMousePixelScroll",o.DomEvent.preventDefault),this._delta=0},removeHooks:function(){o.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll),o.DomEvent.off(this._map._container,"MozMousePixelScroll",o.DomEvent.preventDefault)},_onWheelScroll:function(t){var e=o.DomEvent.getWheelDelta(t);this._delta+=e,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var i=Math.max(40-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(o.bind(this._performZoom,this),i),o.DomEvent.preventDefault(t),o.DomEvent.stopPropagation(t)},_performZoom:function(){var t=this._map,e=this._delta,i=t.getZoom();e=e>0?Math.ceil(e):Math.floor(e),e=Math.max(Math.min(e,4),-4),e=t._limitZoom(i+e)-i,this._delta=0,this._startTime=null,e&&("center"===t.options.scrollWheelZoom?t.setZoom(i+e):t.setZoomAround(this._lastMousePos,i+e))}}),o.Map.addInitHook("addHandler","scrollWheelZoom",o.Map.ScrollWheelZoom),o.extend(o.DomEvent,{_touchstart:o.Browser.msPointer?"MSPointerDown":o.Browser.pointer?"pointerdown":"touchstart",_touchend:o.Browser.msPointer?"MSPointerUp":o.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(t,i,n){function s(t){var e;if(o.Browser.pointer?(_.push(t.pointerId),e=_.length):e=t.touches.length,!(e>1)){var i=Date.now(),n=i-(r||i);h=t.touches?t.touches[0]:t,l=n>0&&u>=n,r=i}}function a(t){if(o.Browser.pointer){var e=_.indexOf(t.pointerId);if(-1===e)return;_.splice(e,1)}if(l){if(o.Browser.pointer){var n,s={};for(var a in h)n=h[a],"function"==typeof n?s[a]=n.bind(h):s[a]=n;h=s}h.type="dblclick",i(h),r=null}}var r,h,l=!1,u=250,c="_leaflet_",d=this._touchstart,p=this._touchend,_=[];t[c+d+n]=s,t[c+p+n]=a;var m=o.Browser.pointer?e.documentElement:t;return t.addEventListener(d,s,!1),m.addEventListener(p,a,!1),o.Browser.pointer&&m.addEventListener(o.DomEvent.POINTER_CANCEL,a,!1),this},removeDoubleTapListener:function(t,i){var n="_leaflet_";return t.removeEventListener(this._touchstart,t[n+this._touchstart+i],!1),(o.Browser.pointer?e.documentElement:t).removeEventListener(this._touchend,t[n+this._touchend+i],!1),o.Browser.pointer&&e.documentElement.removeEventListener(o.DomEvent.POINTER_CANCEL,t[n+this._touchend+i],!1),this}}),o.extend(o.DomEvent,{POINTER_DOWN:o.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:o.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:o.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:o.Browser.msPointer?"MSPointerCancel":"pointercancel",_pointers:[],_pointerDocumentListener:!1,addPointerListener:function(t,e,i,n){switch(e){case"touchstart":return this.addPointerListenerStart(t,e,i,n); -case"touchend":return this.addPointerListenerEnd(t,e,i,n);case"touchmove":return this.addPointerListenerMove(t,e,i,n);default:throw"Unknown touch event type"}},addPointerListenerStart:function(t,i,n,s){var a="_leaflet_",r=this._pointers,h=function(t){"mouse"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&o.DomEvent.preventDefault(t);for(var e=!1,i=0;i1))&&(this._moved||(o.DomUtil.addClass(e._mapPane,"leaflet-touching"),e.fire("movestart").fire("zoomstart"),this._moved=!0),o.Util.cancelAnimFrame(this._animRequest),this._animRequest=o.Util.requestAnimFrame(this._updateOnMove,this,!0,this._map._container),o.DomEvent.preventDefault(t))}},_updateOnMove:function(){var t=this._map,e=this._getScaleOrigin(),i=t.layerPointToLatLng(e),n=t.getScaleZoom(this._scale);t._animateZoom(i,n,this._startCenter,this._scale,this._delta,!1,!0)},_onTouchEnd:function(){if(!this._moved||!this._zooming)return void(this._zooming=!1);var t=this._map;this._zooming=!1,o.DomUtil.removeClass(t._mapPane,"leaflet-touching"),o.Util.cancelAnimFrame(this._animRequest),o.DomEvent.off(e,"touchmove",this._onTouchMove).off(e,"touchend",this._onTouchEnd);var i=this._getScaleOrigin(),n=t.layerPointToLatLng(i),s=t.getZoom(),a=t.getScaleZoom(this._scale)-s,r=a>0?Math.ceil(a):Math.floor(a),h=t._limitZoom(s+r),l=t.getZoomScale(h)/this._scale;t._animateZoom(n,h,i,l)},_getScaleOrigin:function(){var t=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(t)}}),o.Map.addInitHook("addHandler","touchZoom",o.Map.TouchZoom),o.Map.mergeOptions({tap:!0,tapTolerance:15}),o.Map.Tap=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){o.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(o.DomEvent.preventDefault(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new o.Point(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.addClass(n,"leaflet-active"),this._holdTimeout=setTimeout(o.bind(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),o.DomEvent.on(e,"touchmove",this._onMove,this).on(e,"touchend",this._onUp,this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),o.DomEvent.off(e,"touchmove",this._onMove,this).off(e,"touchend",this._onUp,this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],n=i.target;n&&n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.removeClass(n,"leaflet-active"),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new o.Point(e.clientX,e.clientY)},_simulateEvent:function(i,n){var o=e.createEvent("MouseEvents");o._simulated=!0,n.target._simulatedClick=!0,o.initMouseEvent(i,!0,!0,t,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),n.target.dispatchEvent(o)}}),o.Browser.touch&&!o.Browser.pointer&&o.Map.addInitHook("addHandler","tap",o.Map.Tap),o.Map.mergeOptions({boxZoom:!0}),o.Map.BoxZoom=o.Handler.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._moved=!1},addHooks:function(){o.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){o.DomEvent.off(this._container,"mousedown",this._onMouseDown),this._moved=!1},moved:function(){return this._moved},_onMouseDown:function(t){return this._moved=!1,!t.shiftKey||1!==t.which&&1!==t.button?!1:(o.DomUtil.disableTextSelection(),o.DomUtil.disableImageDrag(),this._startLayerPoint=this._map.mouseEventToLayerPoint(t),void o.DomEvent.on(e,"mousemove",this._onMouseMove,this).on(e,"mouseup",this._onMouseUp,this).on(e,"keydown",this._onKeyDown,this))},_onMouseMove:function(t){this._moved||(this._box=o.DomUtil.create("div","leaflet-zoom-box",this._pane),o.DomUtil.setPosition(this._box,this._startLayerPoint),this._container.style.cursor="crosshair",this._map.fire("boxzoomstart"));var e=this._startLayerPoint,i=this._box,n=this._map.mouseEventToLayerPoint(t),s=n.subtract(e),a=new o.Point(Math.min(n.x,e.x),Math.min(n.y,e.y));o.DomUtil.setPosition(i,a),this._moved=!0,i.style.width=Math.max(0,Math.abs(s.x)-4)+"px",i.style.height=Math.max(0,Math.abs(s.y)-4)+"px"},_finish:function(){this._moved&&(this._pane.removeChild(this._box),this._container.style.cursor=""),o.DomUtil.enableTextSelection(),o.DomUtil.enableImageDrag(),o.DomEvent.off(e,"mousemove",this._onMouseMove).off(e,"mouseup",this._onMouseUp).off(e,"keydown",this._onKeyDown)},_onMouseUp:function(t){this._finish();var e=this._map,i=e.mouseEventToLayerPoint(t);if(!this._startLayerPoint.equals(i)){var n=new o.LatLngBounds(e.layerPointToLatLng(this._startLayerPoint),e.layerPointToLatLng(i));e.fitBounds(n),e.fire("boxzoomend",{boxZoomBounds:n})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}}),o.Map.addInitHook("addHandler","boxZoom",o.Map.BoxZoom),o.Map.mergeOptions({keyboard:!0,keyboardPanOffset:80,keyboardZoomOffset:1}),o.Map.Keyboard=o.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(t){this._map=t,this._setPanOffset(t.options.keyboardPanOffset),this._setZoomOffset(t.options.keyboardZoomOffset)},addHooks:function(){var t=this._map._container;-1===t.tabIndex&&(t.tabIndex="0"),o.DomEvent.on(t,"focus",this._onFocus,this).on(t,"blur",this._onBlur,this).on(t,"mousedown",this._onMouseDown,this),this._map.on("focus",this._addHooks,this).on("blur",this._removeHooks,this)},removeHooks:function(){this._removeHooks();var t=this._map._container;o.DomEvent.off(t,"focus",this._onFocus,this).off(t,"blur",this._onBlur,this).off(t,"mousedown",this._onMouseDown,this),this._map.off("focus",this._addHooks,this).off("blur",this._removeHooks,this)},_onMouseDown:function(){if(!this._focused){var i=e.body,n=e.documentElement,o=i.scrollTop||n.scrollTop,s=i.scrollLeft||n.scrollLeft;this._map._container.focus(),t.scrollTo(s,o)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanOffset:function(t){var e,i,n=this._panKeys={},o=this.keyCodes;for(e=0,i=o.left.length;i>e;e++)n[o.left[e]]=[-1*t,0];for(e=0,i=o.right.length;i>e;e++)n[o.right[e]]=[t,0];for(e=0,i=o.down.length;i>e;e++)n[o.down[e]]=[0,t];for(e=0,i=o.up.length;i>e;e++)n[o.up[e]]=[0,-1*t]},_setZoomOffset:function(t){var e,i,n=this._zoomKeys={},o=this.keyCodes;for(e=0,i=o.zoomIn.length;i>e;e++)n[o.zoomIn[e]]=t;for(e=0,i=o.zoomOut.length;i>e;e++)n[o.zoomOut[e]]=-t},_addHooks:function(){o.DomEvent.on(e,"keydown",this._onKeyDown,this)},_removeHooks:function(){o.DomEvent.off(e,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){var e=t.keyCode,i=this._map;if(e in this._panKeys){if(i._panAnim&&i._panAnim._inProgress)return;i.panBy(this._panKeys[e]),i.options.maxBounds&&i.panInsideBounds(i.options.maxBounds)}else{if(!(e in this._zoomKeys))return;i.setZoom(i.getZoom()+this._zoomKeys[e])}o.DomEvent.stop(t)}}),o.Map.addInitHook("addHandler","keyboard",o.Map.Keyboard),o.Handler.MarkerDrag=o.Handler.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new o.Draggable(t,t)),this._draggable.on("dragstart",this._onDragStart,this).on("drag",this._onDrag,this).on("dragend",this._onDragEnd,this),this._draggable.enable(),o.DomUtil.addClass(this._marker._icon,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off("dragstart",this._onDragStart,this).off("drag",this._onDrag,this).off("dragend",this._onDragEnd,this),this._draggable.disable(),o.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(){var t=this._marker,e=t._shadow,i=o.DomUtil.getPosition(t._icon),n=t._map.layerPointToLatLng(i);e&&o.DomUtil.setPosition(e,i),t._latlng=n,t.fire("move",{latlng:n}).fire("drag")},_onDragEnd:function(t){this._marker.fire("moveend").fire("dragend",t)}}),o.Control=o.Class.extend({options:{position:"topright"},initialize:function(t){o.setOptions(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return o.DomUtil.addClass(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this},removeFrom:function(t){var e=this.getPosition(),i=t._controlCorners[e];return i.removeChild(this._container),this._map=null,this.onRemove&&this.onRemove(t),this},_refocusOnMap:function(){this._map&&this._map.getContainer().focus()}}),o.control=function(t){return new o.Control(t)},o.Map.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.removeFrom(this),this},_initControlPos:function(){function t(t,s){var a=i+t+" "+i+s;e[t+s]=o.DomUtil.create("div",a,n)}var e=this._controlCorners={},i="leaflet-",n=this._controlContainer=o.DomUtil.create("div",i+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){this._container.removeChild(this._controlContainer)}}),o.Control.Zoom=o.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=o.DomUtil.create("div",e+" leaflet-bar");return this._map=t,this._zoomInButton=this._createButton(this.options.zoomInText,this.options.zoomInTitle,e+"-in",i,this._zoomIn,this),this._zoomOutButton=this._createButton(this.options.zoomOutText,this.options.zoomOutTitle,e+"-out",i,this._zoomOut,this),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},_zoomIn:function(t){this._map.zoomIn(t.shiftKey?3:1)},_zoomOut:function(t){this._map.zoomOut(t.shiftKey?3:1)},_createButton:function(t,e,i,n,s,a){var r=o.DomUtil.create("a",i,n);r.innerHTML=t,r.href="#",r.title=e;var h=o.DomEvent.stopPropagation;return o.DomEvent.on(r,"click",h).on(r,"mousedown",h).on(r,"dblclick",h).on(r,"click",o.DomEvent.preventDefault).on(r,"click",s,a).on(r,"click",this._refocusOnMap,a),r},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";o.DomUtil.removeClass(this._zoomInButton,e),o.DomUtil.removeClass(this._zoomOutButton,e),t._zoom===t.getMinZoom()&&o.DomUtil.addClass(this._zoomOutButton,e),t._zoom===t.getMaxZoom()&&o.DomUtil.addClass(this._zoomInButton,e)}}),o.Map.mergeOptions({zoomControl:!0}),o.Map.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new o.Control.Zoom,this.addControl(this.zoomControl))}),o.control.zoom=function(t){return new o.Control.Zoom(t)},o.Control.Attribution=o.Control.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){o.setOptions(this,t),this._attributions={}},onAdd:function(t){this._container=o.DomUtil.create("div","leaflet-control-attribution"),o.DomEvent.disableClickPropagation(this._container);for(var e in t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return t.on("layeradd",this._onLayerAdd,this).on("layerremove",this._onLayerRemove,this),this._update(),this._container},onRemove:function(t){t.off("layeradd",this._onLayerAdd).off("layerremove",this._onLayerRemove)},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):void 0},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):void 0},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}},_onLayerAdd:function(t){t.layer.getAttribution&&this.addAttribution(t.layer.getAttribution())},_onLayerRemove:function(t){t.layer.getAttribution&&this.removeAttribution(t.layer.getAttribution())}}),o.Map.mergeOptions({attributionControl:!0}),o.Map.addInitHook(function(){this.options.attributionControl&&(this.attributionControl=(new o.Control.Attribution).addTo(this))}),o.control.attribution=function(t){return new o.Control.Attribution(t)},o.Control.Scale=o.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0,updateWhenIdle:!1},onAdd:function(t){this._map=t;var e="leaflet-control-scale",i=o.DomUtil.create("div",e),n=this.options;return this._addScales(n,e,i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=o.DomUtil.create("div",e+"-line",i)),t.imperial&&(this._iScale=o.DomUtil.create("div",e+"-line",i))},_update:function(){var t=this._map.getBounds(),e=t.getCenter().lat,i=6378137*Math.PI*Math.cos(e*Math.PI/180),n=i*(t.getNorthEast().lng-t.getSouthWest().lng)/180,o=this._map.getSize(),s=this.options,a=0;o.x>0&&(a=n*(s.maxWidth/o.x)),this._updateScales(s,a)},_updateScales:function(t,e){t.metric&&e&&this._updateMetric(e),t.imperial&&e&&this._updateImperial(e)},_updateMetric:function(t){var e=this._getRoundNum(t);this._mScale.style.width=this._getScaleWidth(e/t)+"px",this._mScale.innerHTML=1e3>e?e+" m":e/1e3+" km"},_updateImperial:function(t){var e,i,n,o=3.2808399*t,s=this._iScale;o>5280?(e=o/5280,i=this._getRoundNum(e),s.style.width=this._getScaleWidth(i/e)+"px",s.innerHTML=i+" mi"):(n=this._getRoundNum(o),s.style.width=this._getScaleWidth(n/o)+"px",s.innerHTML=n+" ft")},_getScaleWidth:function(t){return Math.round(this.options.maxWidth*t)-10},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1,e*i}}),o.control.scale=function(t){return new o.Control.Scale(t)},o.Control.Layers=o.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0},initialize:function(t,e,i){o.setOptions(this,i),this._layers={},this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in e)this._addLayer(e[n],n,!0)},onAdd:function(t){return this._initLayout(),this._update(),t.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this),this._container},onRemove:function(t){t.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(t,e){return this._addLayer(t,e),this._update(),this},addOverlay:function(t,e){return this._addLayer(t,e,!0),this._update(),this},removeLayer:function(t){var e=o.stamp(t);return delete this._layers[e],this._update(),this},_initLayout:function(){var t="leaflet-control-layers",e=this._container=o.DomUtil.create("div",t);e.setAttribute("aria-haspopup",!0),o.Browser.touch?o.DomEvent.on(e,"click",o.DomEvent.stopPropagation):o.DomEvent.disableClickPropagation(e).disableScrollPropagation(e);var i=this._form=o.DomUtil.create("form",t+"-list");if(this.options.collapsed){o.Browser.android||o.DomEvent.on(e,"mouseover",this._expand,this).on(e,"mouseout",this._collapse,this);var n=this._layersLink=o.DomUtil.create("a",t+"-toggle",e);n.href="#",n.title="Layers",o.Browser.touch?o.DomEvent.on(n,"click",o.DomEvent.stop).on(n,"click",this._expand,this):o.DomEvent.on(n,"focus",this._expand,this),o.DomEvent.on(i,"click",function(){setTimeout(o.bind(this._onInputClick,this),0)},this),this._map.on("click",this._collapse,this)}else this._expand();this._baseLayersList=o.DomUtil.create("div",t+"-base",i),this._separator=o.DomUtil.create("div",t+"-separator",i),this._overlaysList=o.DomUtil.create("div",t+"-overlays",i),e.appendChild(i)},_addLayer:function(t,e,i){var n=o.stamp(t);this._layers[n]={layer:t,name:e,overlay:i},this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex))},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="";var t,e,i=!1,n=!1;for(t in this._layers)e=this._layers[t],this._addItem(e),n=n||e.overlay,i=i||!e.overlay;this._separator.style.display=n&&i?"":"none"}},_onLayerChange:function(t){var e=this._layers[o.stamp(t.layer)];if(e){this._handlingClick||this._update();var i=e.overlay?"layeradd"===t.type?"overlayadd":"overlayremove":"layeradd"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)}},_createRadioElement:function(t,i){var n='t;t++)e=n[t],i=this._layers[e.layerId],e.checked&&!this._map.hasLayer(i.layer)?this._map.addLayer(i.layer):!e.checked&&this._map.hasLayer(i.layer)&&this._map.removeLayer(i.layer);this._handlingClick=!1,this._refocusOnMap()},_expand:function(){o.DomUtil.addClass(this._container,"leaflet-control-layers-expanded")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")}}),o.control.layers=function(t,e,i){return new o.Control.Layers(t,e,i)},o.PosAnimation=o.Class.extend({includes:o.Mixin.Events,run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._newPos=e,this.fire("start"),t.style[o.DomUtil.TRANSITION]="all "+(i||.25)+"s cubic-bezier(0,0,"+(n||.5)+",1)",o.DomEvent.on(t,o.DomUtil.TRANSITION_END,this._onTransitionEnd,this),o.DomUtil.setPosition(t,e),o.Util.falseFn(t.offsetWidth),this._stepTimer=setInterval(o.bind(this._onStep,this),50)},stop:function(){this._inProgress&&(o.DomUtil.setPosition(this._el,this._getPos()),this._onTransitionEnd(),o.Util.falseFn(this._el.offsetWidth))},_onStep:function(){var t=this._getPos();return t?(this._el._leaflet_pos=t,void this.fire("step")):void this._onTransitionEnd()},_transformRe:/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,_getPos:function(){var e,i,n,s=this._el,a=t.getComputedStyle(s);if(o.Browser.any3d){if(n=a[o.DomUtil.TRANSFORM].match(this._transformRe),!n)return;e=parseFloat(n[1]),i=parseFloat(n[2])}else e=parseFloat(a.left),i=parseFloat(a.top);return new o.Point(e,i,!0)},_onTransitionEnd:function(){o.DomEvent.off(this._el,o.DomUtil.TRANSITION_END,this._onTransitionEnd,this),this._inProgress&&(this._inProgress=!1,this._el.style[o.DomUtil.TRANSITION]="",this._el._leaflet_pos=this._newPos,clearInterval(this._stepTimer),this.fire("step").fire("end"))}}),o.Map.include({setView:function(t,e,n){if(e=e===i?this._zoom:this._limitZoom(e),t=this._limitCenter(o.latLng(t),e,this.options.maxBounds),n=n||{},this._panAnim&&this._panAnim.stop(),this._loaded&&!n.reset&&n!==!0){n.animate!==i&&(n.zoom=o.extend({animate:n.animate},n.zoom),n.pan=o.extend({animate:n.animate},n.pan));var s=this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan);if(s)return clearTimeout(this._sizeTimer),this}return this._resetView(t,e),this},panBy:function(t,e){if(t=o.point(t).round(),e=e||{},!t.x&&!t.y)return this;if(this._panAnim||(this._panAnim=new o.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),e.noMoveStart||this.fire("movestart"),e.animate!==!1){o.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var i=this._getMapPanePos().subtract(t);this._panAnim.run(this._mapPane,i,e.duration||.25,e.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend");return this},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){o.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._floor();return(e&&e.animate)===!0||this.getSize().contains(i)?(this.panBy(i,e),!0):!1}}),o.PosAnimation=o.DomUtil.TRANSITION?o.PosAnimation:o.PosAnimation.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=o.DomUtil.getPosition(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(),this._complete())},_animate:function(){this._animId=o.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(){var t=+new Date-this._startTime,e=1e3*this._duration;e>t?this._runFrame(this._easeOut(t/e)):(this._runFrame(1),this._complete())},_runFrame:function(t){var e=this._startPos.add(this._offset.multiplyBy(t));o.DomUtil.setPosition(this._el,e),this.fire("step")},_complete:function(){o.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),o.Map.mergeOptions({zoomAnimation:!0,zoomAnimationThreshold:4}),o.DomUtil.TRANSITION&&o.Map.addInitHook(function(){this._zoomAnimated=this.options.zoomAnimation&&o.DomUtil.TRANSITION&&o.Browser.any3d&&!o.Browser.android23&&!o.Browser.mobileOpera,this._zoomAnimated&&o.DomEvent.on(this._mapPane,o.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)}),o.Map.include(o.DomUtil.TRANSITION?{_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||i.animate===!1||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n),s=this._getCenterLayerPoint()._add(o);return i.animate===!0||this.getSize().contains(o)?(this.fire("movestart").fire("zoomstart"),this._animateZoom(t,e,s,n,null,!0),!0):!1},_animateZoom:function(t,e,i,n,s,a,r){r||(this._animatingZoom=!0),o.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim"),this._animateToCenter=t,this._animateToZoom=e,o.Draggable&&(o.Draggable._disabled=!0),o.Util.requestAnimFrame(function(){this.fire("zoomanim",{center:t,zoom:e,origin:i,scale:n,delta:s,backwards:a}),setTimeout(o.bind(this._onZoomTransitionEnd,this),250)},this)},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._animatingZoom=!1,o.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),o.Util.requestAnimFrame(function(){this._resetView(this._animateToCenter,this._animateToZoom,!0,!0),o.Draggable&&(o.Draggable._disabled=!1)},this))}}:{}),o.TileLayer.include({_animateZoom:function(t){this._animating||(this._animating=!0,this._prepareBgBuffer());var e=this._bgBuffer,i=o.DomUtil.TRANSFORM,n=t.delta?o.DomUtil.getTranslateString(t.delta):e.style[i],s=o.DomUtil.getScaleString(t.scale,t.origin);e.style[i]=t.backwards?s+" "+n:n+" "+s},_endZoomAnim:function(){var t=this._tileContainer,e=this._bgBuffer;t.style.visibility="",t.parentNode.appendChild(t),o.Util.falseFn(e.offsetWidth);var i=this._map.getZoom();(i>this.options.maxZoom||i.5&&.5>n?(t.style.visibility="hidden",void this._stopLoadingImages(t)):(e.style.visibility="hidden",e.style[o.DomUtil.TRANSFORM]="",this._tileContainer=e,e=this._bgBuffer=t,this._stopLoadingImages(e),void clearTimeout(this._clearBgBufferTimer))},_getLoadedTilesPercentage:function(t){var e,i,n=t.getElementsByTagName("img"),o=0;for(e=0,i=n.length;i>e;e++)n[e].complete&&o++;return o/i},_stopLoadingImages:function(t){var e,i,n,s=Array.prototype.slice.call(t.getElementsByTagName("img"));for(e=0,i=s.length;i>e;e++)n=s[e],n.complete||(n.onload=o.Util.falseFn,n.onerror=o.Util.falseFn,n.src=o.Util.emptyImageUrl,n.parentNode.removeChild(n))}}),o.Map.include({_defaultLocateOptions:{watch:!1,setView:!1,maxZoom:1/0,timeout:1e4,maximumAge:0,enableHighAccuracy:!1},locate:function(t){if(t=this._locateOptions=o.extend(this._defaultLocateOptions,t),!navigator.geolocation)return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=o.bind(this._handleGeolocationResponse,this),i=o.bind(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=t.coords.latitude,i=t.coords.longitude,n=new o.LatLng(e,i),s=180*t.coords.accuracy/40075017,a=s/Math.cos(o.LatLng.DEG_TO_RAD*e),r=o.latLngBounds([e-s,i-a],[e+s,i+a]),h=this._locateOptions;if(h.setView){var l=Math.min(this.getBoundsZoom(r),h.maxZoom);this.setView(n,l)}var u={latlng:n,bounds:r,timestamp:t.timestamp};for(var c in t.coords)"number"==typeof t.coords[c]&&(u[c]=t.coords[c]);this.fire("locationfound",u)}})}(window,document); \ No newline at end of file +case"touchend":return this.addPointerListenerEnd(t,e,i,n);case"touchmove":return this.addPointerListenerMove(t,e,i,n);default:throw"Unknown touch event type"}},addPointerListenerStart:function(t,i,n,s){var a="_leaflet_",r=this._pointers,h=function(t){"mouse"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&o.DomEvent.preventDefault(t);for(var e=!1,i=0;i1))&&(this._moved||(o.DomUtil.addClass(e._mapPane,"leaflet-touching"),e.fire("movestart").fire("zoomstart"),this._moved=!0),o.Util.cancelAnimFrame(this._animRequest),this._animRequest=o.Util.requestAnimFrame(this._updateOnMove,this,!0,this._map._container),o.DomEvent.preventDefault(t))}},_updateOnMove:function(){var t=this._map,e=this._getScaleOrigin(),i=t.layerPointToLatLng(e),n=t.getScaleZoom(this._scale);t._animateZoom(i,n,this._startCenter,this._scale,this._delta,!1,!0)},_onTouchEnd:function(){if(!this._moved||!this._zooming)return void(this._zooming=!1);var t=this._map;this._zooming=!1,o.DomUtil.removeClass(t._mapPane,"leaflet-touching"),o.Util.cancelAnimFrame(this._animRequest),o.DomEvent.off(e,"touchmove",this._onTouchMove).off(e,"touchend",this._onTouchEnd);var i=this._getScaleOrigin(),n=t.layerPointToLatLng(i),s=t.getZoom(),a=t.getScaleZoom(this._scale)-s,r=a>0?Math.ceil(a):Math.floor(a),h=t._limitZoom(s+r),l=t.getZoomScale(h)/this._scale;t._animateZoom(n,h,i,l)},_getScaleOrigin:function(){var t=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(t)}}),o.Map.addInitHook("addHandler","touchZoom",o.Map.TouchZoom),o.Map.mergeOptions({tap:!0,tapTolerance:15}),o.Map.Tap=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){o.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(o.DomEvent.preventDefault(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new o.Point(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.addClass(n,"leaflet-active"),this._holdTimeout=setTimeout(o.bind(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),o.DomEvent.on(e,"touchmove",this._onMove,this).on(e,"touchend",this._onUp,this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),o.DomEvent.off(e,"touchmove",this._onMove,this).off(e,"touchend",this._onUp,this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],n=i.target;n&&n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.removeClass(n,"leaflet-active"),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new o.Point(e.clientX,e.clientY)},_simulateEvent:function(i,n){var o=e.createEvent("MouseEvents");o._simulated=!0,n.target._simulatedClick=!0,o.initMouseEvent(i,!0,!0,t,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),n.target.dispatchEvent(o)}}),o.Browser.touch&&!o.Browser.pointer&&o.Map.addInitHook("addHandler","tap",o.Map.Tap),o.Map.mergeOptions({boxZoom:!0}),o.Map.BoxZoom=o.Handler.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._moved=!1},addHooks:function(){o.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){o.DomEvent.off(this._container,"mousedown",this._onMouseDown),this._moved=!1},moved:function(){return this._moved},_onMouseDown:function(t){return this._moved=!1,!t.shiftKey||1!==t.which&&1!==t.button?!1:(o.DomUtil.disableTextSelection(),o.DomUtil.disableImageDrag(),this._startLayerPoint=this._map.mouseEventToLayerPoint(t),void o.DomEvent.on(e,"mousemove",this._onMouseMove,this).on(e,"mouseup",this._onMouseUp,this).on(e,"keydown",this._onKeyDown,this))},_onMouseMove:function(t){this._moved||(this._box=o.DomUtil.create("div","leaflet-zoom-box",this._pane),o.DomUtil.setPosition(this._box,this._startLayerPoint),this._container.style.cursor="crosshair",this._map.fire("boxzoomstart"));var e=this._startLayerPoint,i=this._box,n=this._map.mouseEventToLayerPoint(t),s=n.subtract(e),a=new o.Point(Math.min(n.x,e.x),Math.min(n.y,e.y));o.DomUtil.setPosition(i,a),this._moved=!0,i.style.width=Math.max(0,Math.abs(s.x)-4)+"px",i.style.height=Math.max(0,Math.abs(s.y)-4)+"px"},_finish:function(){this._moved&&(this._pane.removeChild(this._box),this._container.style.cursor=""),o.DomUtil.enableTextSelection(),o.DomUtil.enableImageDrag(),o.DomEvent.off(e,"mousemove",this._onMouseMove).off(e,"mouseup",this._onMouseUp).off(e,"keydown",this._onKeyDown)},_onMouseUp:function(t){this._finish();var e=this._map,i=e.mouseEventToLayerPoint(t);if(!this._startLayerPoint.equals(i)){var n=new o.LatLngBounds(e.layerPointToLatLng(this._startLayerPoint),e.layerPointToLatLng(i));e.fitBounds(n),e.fire("boxzoomend",{boxZoomBounds:n})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}}),o.Map.addInitHook("addHandler","boxZoom",o.Map.BoxZoom),o.Map.mergeOptions({keyboard:!0,keyboardPanOffset:80,keyboardZoomOffset:1}),o.Map.Keyboard=o.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(t){this._map=t,this._setPanOffset(t.options.keyboardPanOffset),this._setZoomOffset(t.options.keyboardZoomOffset)},addHooks:function(){var t=this._map._container;-1===t.tabIndex&&(t.tabIndex="0"),o.DomEvent.on(t,"focus",this._onFocus,this).on(t,"blur",this._onBlur,this).on(t,"mousedown",this._onMouseDown,this),this._map.on("focus",this._addHooks,this).on("blur",this._removeHooks,this)},removeHooks:function(){this._removeHooks();var t=this._map._container;o.DomEvent.off(t,"focus",this._onFocus,this).off(t,"blur",this._onBlur,this).off(t,"mousedown",this._onMouseDown,this),this._map.off("focus",this._addHooks,this).off("blur",this._removeHooks,this)},_onMouseDown:function(){if(!this._focused){var i=e.body,n=e.documentElement,o=i.scrollTop||n.scrollTop,s=i.scrollLeft||n.scrollLeft;this._map._container.focus(),t.scrollTo(s,o)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanOffset:function(t){var e,i,n=this._panKeys={},o=this.keyCodes;for(e=0,i=o.left.length;i>e;e++)n[o.left[e]]=[-1*t,0];for(e=0,i=o.right.length;i>e;e++)n[o.right[e]]=[t,0];for(e=0,i=o.down.length;i>e;e++)n[o.down[e]]=[0,t];for(e=0,i=o.up.length;i>e;e++)n[o.up[e]]=[0,-1*t]},_setZoomOffset:function(t){var e,i,n=this._zoomKeys={},o=this.keyCodes;for(e=0,i=o.zoomIn.length;i>e;e++)n[o.zoomIn[e]]=t;for(e=0,i=o.zoomOut.length;i>e;e++)n[o.zoomOut[e]]=-t},_addHooks:function(){o.DomEvent.on(e,"keydown",this._onKeyDown,this)},_removeHooks:function(){o.DomEvent.off(e,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){var e=t.keyCode,i=this._map;if(e in this._panKeys){if(i._panAnim&&i._panAnim._inProgress)return;i.panBy(this._panKeys[e]),i.options.maxBounds&&i.panInsideBounds(i.options.maxBounds)}else{if(!(e in this._zoomKeys))return;i.setZoom(i.getZoom()+this._zoomKeys[e])}o.DomEvent.stop(t)}}),o.Map.addInitHook("addHandler","keyboard",o.Map.Keyboard),o.Handler.MarkerDrag=o.Handler.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new o.Draggable(t,t)),this._draggable.on("dragstart",this._onDragStart,this).on("drag",this._onDrag,this).on("dragend",this._onDragEnd,this),this._draggable.enable(),o.DomUtil.addClass(this._marker._icon,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off("dragstart",this._onDragStart,this).off("drag",this._onDrag,this).off("dragend",this._onDragEnd,this),this._draggable.disable(),o.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(){var t=this._marker,e=t._shadow,i=o.DomUtil.getPosition(t._icon),n=t._map.layerPointToLatLng(i);e&&o.DomUtil.setPosition(e,i),t._latlng=n,t.fire("move",{latlng:n}).fire("drag")},_onDragEnd:function(t){this._marker.fire("moveend").fire("dragend",t)}}),o.Control=o.Class.extend({options:{position:"topright"},initialize:function(t){o.setOptions(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return o.DomUtil.addClass(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this},removeFrom:function(t){var e=this.getPosition(),i=t._controlCorners[e];return i.removeChild(this._container),this._map=null,this.onRemove&&this.onRemove(t),this},_refocusOnMap:function(){this._map&&this._map.getContainer().focus()}}),o.control=function(t){return new o.Control(t)},o.Map.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.removeFrom(this),this},_initControlPos:function(){function t(t,s){var a=i+t+" "+i+s;e[t+s]=o.DomUtil.create("div",a,n)}var e=this._controlCorners={},i="leaflet-",n=this._controlContainer=o.DomUtil.create("div",i+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){this._container.removeChild(this._controlContainer)}}),o.Control.Zoom=o.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=o.DomUtil.create("div",e+" leaflet-bar");return this._map=t,this._zoomInButton=this._createButton(this.options.zoomInText,this.options.zoomInTitle,e+"-in",i,this._zoomIn,this),this._zoomOutButton=this._createButton(this.options.zoomOutText,this.options.zoomOutTitle,e+"-out",i,this._zoomOut,this),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},_zoomIn:function(t){this._map.zoomIn(t.shiftKey?3:1)},_zoomOut:function(t){this._map.zoomOut(t.shiftKey?3:1)},_createButton:function(t,e,i,n,s,a){var r=o.DomUtil.create("a",i,n);r.innerHTML=t,r.href="#",r.title=e;var h=o.DomEvent.stopPropagation;return o.DomEvent.on(r,"click",h).on(r,"mousedown",h).on(r,"dblclick",h).on(r,"click",o.DomEvent.preventDefault).on(r,"click",s,a).on(r,"click",this._refocusOnMap,a),r},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";o.DomUtil.removeClass(this._zoomInButton,e),o.DomUtil.removeClass(this._zoomOutButton,e),t._zoom===t.getMinZoom()&&o.DomUtil.addClass(this._zoomOutButton,e),t._zoom===t.getMaxZoom()&&o.DomUtil.addClass(this._zoomInButton,e)}}),o.Map.mergeOptions({zoomControl:!0}),o.Map.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new o.Control.Zoom,this.addControl(this.zoomControl))}),o.control.zoom=function(t){return new o.Control.Zoom(t)},o.Control.Attribution=o.Control.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){o.setOptions(this,t),this._attributions={}},onAdd:function(t){this._container=o.DomUtil.create("div","leaflet-control-attribution"),o.DomEvent.disableClickPropagation(this._container);for(var e in t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return t.on("layeradd",this._onLayerAdd,this).on("layerremove",this._onLayerRemove,this),this._update(),this._container},onRemove:function(t){t.off("layeradd",this._onLayerAdd).off("layerremove",this._onLayerRemove)},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):void 0},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):void 0},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}},_onLayerAdd:function(t){t.layer.getAttribution&&this.addAttribution(t.layer.getAttribution())},_onLayerRemove:function(t){t.layer.getAttribution&&this.removeAttribution(t.layer.getAttribution())}}),o.Map.mergeOptions({attributionControl:!0}),o.Map.addInitHook(function(){this.options.attributionControl&&(this.attributionControl=(new o.Control.Attribution).addTo(this))}),o.control.attribution=function(t){return new o.Control.Attribution(t)},o.Control.Scale=o.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0,updateWhenIdle:!1},onAdd:function(t){this._map=t;var e="leaflet-control-scale",i=o.DomUtil.create("div",e),n=this.options;return this._addScales(n,e,i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=o.DomUtil.create("div",e+"-line",i)),t.imperial&&(this._iScale=o.DomUtil.create("div",e+"-line",i))},_update:function(){var t=this._map.getBounds(),e=t.getCenter().lat,i=6378137*Math.PI*Math.cos(e*Math.PI/180),n=i*(t.getNorthEast().lng-t.getSouthWest().lng)/180,o=this._map.getSize(),s=this.options,a=0;o.x>0&&(a=n*(s.maxWidth/o.x)),this._updateScales(s,a)},_updateScales:function(t,e){t.metric&&e&&this._updateMetric(e),t.imperial&&e&&this._updateImperial(e)},_updateMetric:function(t){var e=this._getRoundNum(t);this._mScale.style.width=this._getScaleWidth(e/t)+"px",this._mScale.innerHTML=1e3>e?e+" m":e/1e3+" km"},_updateImperial:function(t){var e,i,n,o=3.2808399*t,s=this._iScale;o>5280?(e=o/5280,i=this._getRoundNum(e),s.style.width=this._getScaleWidth(i/e)+"px",s.innerHTML=i+" mi"):(n=this._getRoundNum(o),s.style.width=this._getScaleWidth(n/o)+"px",s.innerHTML=n+" ft")},_getScaleWidth:function(t){return Math.round(this.options.maxWidth*t)-10},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1,e*i}}),o.control.scale=function(t){return new o.Control.Scale(t)},o.Control.Layers=o.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0},initialize:function(t,e,i){o.setOptions(this,i),this._layers={},this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in e)this._addLayer(e[n],n,!0)},onAdd:function(t){return this._initLayout(),this._update(),t.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this),this._container},onRemove:function(t){t.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(t,e){return this._addLayer(t,e),this._update(),this},addOverlay:function(t,e){return this._addLayer(t,e,!0),this._update(),this},removeLayer:function(t){var e=o.stamp(t);return delete this._layers[e],this._update(),this},_initLayout:function(){var t="leaflet-control-layers",e=this._container=o.DomUtil.create("div",t);e.setAttribute("aria-haspopup",!0),o.Browser.touch?o.DomEvent.on(e,"click",o.DomEvent.stopPropagation):o.DomEvent.disableClickPropagation(e).disableScrollPropagation(e);var i=this._form=o.DomUtil.create("form",t+"-list");if(this.options.collapsed){o.Browser.android||o.DomEvent.on(e,"mouseover",this._expand,this).on(e,"mouseout",this._collapse,this);var n=this._layersLink=o.DomUtil.create("a",t+"-toggle",e);n.href="#",n.title="Layers",o.Browser.touch?o.DomEvent.on(n,"click",o.DomEvent.stop).on(n,"click",this._expand,this):o.DomEvent.on(n,"focus",this._expand,this),o.DomEvent.on(i,"click",function(){setTimeout(o.bind(this._onInputClick,this),0)},this),this._map.on("click",this._collapse,this)}else this._expand();this._baseLayersList=o.DomUtil.create("div",t+"-base",i),this._separator=o.DomUtil.create("div",t+"-separator",i),this._overlaysList=o.DomUtil.create("div",t+"-overlays",i),e.appendChild(i)},_addLayer:function(t,e,i){var n=o.stamp(t);this._layers[n]={layer:t,name:e,overlay:i},this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex))},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="";var t,e,i=!1,n=!1;for(t in this._layers)e=this._layers[t],this._addItem(e),n=n||e.overlay,i=i||!e.overlay;this._separator.style.display=n&&i?"":"none"}},_onLayerChange:function(t){var e=this._layers[o.stamp(t.layer)];if(e){this._handlingClick||this._update();var i=e.overlay?"layeradd"===t.type?"overlayadd":"overlayremove":"layeradd"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)}},_createRadioElement:function(t,i){var n='t;t++)e=n[t],i=this._layers[e.layerId],e.checked&&!this._map.hasLayer(i.layer)?this._map.addLayer(i.layer):!e.checked&&this._map.hasLayer(i.layer)&&this._map.removeLayer(i.layer);this._handlingClick=!1,this._refocusOnMap()},_expand:function(){o.DomUtil.addClass(this._container,"leaflet-control-layers-expanded")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")}}),o.control.layers=function(t,e,i){return new o.Control.Layers(t,e,i)},o.PosAnimation=o.Class.extend({includes:o.Mixin.Events,run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._newPos=e,this.fire("start"),t.style[o.DomUtil.TRANSITION]="all "+(i||.25)+"s cubic-bezier(0,0,"+(n||.5)+",1)",o.DomEvent.on(t,o.DomUtil.TRANSITION_END,this._onTransitionEnd,this),o.DomUtil.setPosition(t,e),o.Util.falseFn(t.offsetWidth),this._stepTimer=setInterval(o.bind(this._onStep,this),50)},stop:function(){this._inProgress&&(o.DomUtil.setPosition(this._el,this._getPos()),this._onTransitionEnd(),o.Util.falseFn(this._el.offsetWidth))},_onStep:function(){var t=this._getPos();return t?(this._el._leaflet_pos=t,void this.fire("step")):void this._onTransitionEnd()},_transformRe:/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,_getPos:function(){var e,i,n,s=this._el,a=t.getComputedStyle(s);if(o.Browser.any3d){if(n=a[o.DomUtil.TRANSFORM].match(this._transformRe),!n)return;e=parseFloat(n[1]),i=parseFloat(n[2])}else e=parseFloat(a.left),i=parseFloat(a.top);return new o.Point(e,i,!0)},_onTransitionEnd:function(){o.DomEvent.off(this._el,o.DomUtil.TRANSITION_END,this._onTransitionEnd,this),this._inProgress&&(this._inProgress=!1,this._el.style[o.DomUtil.TRANSITION]="",this._el._leaflet_pos=this._newPos,clearInterval(this._stepTimer),this.fire("step").fire("end"))}}),o.Map.include({setView:function(t,e,n){if(e=e===i?this._zoom:this._limitZoom(e),t=this._limitCenter(o.latLng(t),e,this.options.maxBounds),n=n||{},this._panAnim&&this._panAnim.stop(),this._loaded&&!n.reset&&n!==!0){n.animate!==i&&(n.zoom=o.extend({animate:n.animate},n.zoom),n.pan=o.extend({animate:n.animate},n.pan));var s=this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan);if(s)return clearTimeout(this._sizeTimer),this}return this._resetView(t,e),this},panBy:function(t,e){if(t=o.point(t).round(),e=e||{},!t.x&&!t.y)return this;if(this._panAnim||(this._panAnim=new o.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),e.noMoveStart||this.fire("movestart"),e.animate!==!1){o.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var i=this._getMapPanePos().subtract(t);this._panAnim.run(this._mapPane,i,e.duration||.25,e.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend");return this},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){o.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._floor();return(e&&e.animate)===!0||this.getSize().contains(i)?(this.panBy(i,e),!0):!1}}),o.PosAnimation=o.DomUtil.TRANSITION?o.PosAnimation:o.PosAnimation.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=o.DomUtil.getPosition(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(),this._complete())},_animate:function(){this._animId=o.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(){var t=+new Date-this._startTime,e=1e3*this._duration;e>t?this._runFrame(this._easeOut(t/e)):(this._runFrame(1),this._complete())},_runFrame:function(t){var e=this._startPos.add(this._offset.multiplyBy(t));o.DomUtil.setPosition(this._el,e),this.fire("step")},_complete:function(){o.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),o.Map.mergeOptions({zoomAnimation:!0,zoomAnimationThreshold:4}),o.DomUtil.TRANSITION&&o.Map.addInitHook(function(){this._zoomAnimated=this.options.zoomAnimation&&o.DomUtil.TRANSITION&&o.Browser.any3d&&!o.Browser.android23&&!o.Browser.mobileOpera,this._zoomAnimated&&o.DomEvent.on(this._mapPane,o.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)}),o.Map.include(o.DomUtil.TRANSITION?{_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||i.animate===!1||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n),s=this._getCenterLayerPoint()._add(o);return i.animate===!0||this.getSize().contains(o)?(this.fire("movestart").fire("zoomstart"),this._animateZoom(t,e,s,n,null,!0),!0):!1},_animateZoom:function(t,e,i,n,s,a,r){r||(this._animatingZoom=!0),o.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim"),this._animateToCenter=t,this._animateToZoom=e,o.Draggable&&(o.Draggable._disabled=!0),o.Util.requestAnimFrame(function(){this.fire("zoomanim",{center:t,zoom:e,origin:i,scale:n,delta:s,backwards:a}),setTimeout(o.bind(this._onZoomTransitionEnd,this),250)},this)},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._animatingZoom=!1,o.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),o.Util.requestAnimFrame(function(){this._resetView(this._animateToCenter,this._animateToZoom,!0,!0),o.Draggable&&(o.Draggable._disabled=!1)},this))}}:{}),o.TileLayer.include({_animateZoom:function(t){this._animating||(this._animating=!0,this._prepareBgBuffer());var e=this._bgBuffer,i=o.DomUtil.TRANSFORM,n=t.delta?o.DomUtil.getTranslateString(t.delta):e.style[i],s=o.DomUtil.getScaleString(t.scale,t.origin);e.style[i]=t.backwards?s+" "+n:n+" "+s},_endZoomAnim:function(){var t=this._tileContainer,e=this._bgBuffer;t.style.visibility="",t.parentNode.appendChild(t),o.Util.falseFn(e.offsetWidth);var i=this._map.getZoom();(i>this.options.maxZoom||i.5&&.5>n?(t.style.visibility="hidden",void this._stopLoadingImages(t)):(e.style.visibility="hidden",e.style[o.DomUtil.TRANSFORM]="",this._tileContainer=e,e=this._bgBuffer=t,this._stopLoadingImages(e),void clearTimeout(this._clearBgBufferTimer))},_getLoadedTilesPercentage:function(t){var e,i,n=t.getElementsByTagName("img"),o=0;for(e=0,i=n.length;i>e;e++)n[e].complete&&o++;return o/i},_stopLoadingImages:function(t){var e,i,n,s=Array.prototype.slice.call(t.getElementsByTagName("img"));for(e=0,i=s.length;i>e;e++)n=s[e],n.complete||(n.onload=o.Util.falseFn,n.onerror=o.Util.falseFn,n.src=o.Util.emptyImageUrl,n.parentNode.removeChild(n))}}),o.Map.include({_defaultLocateOptions:{watch:!1,setView:!1,maxZoom:1/0,timeout:1e4,maximumAge:0,enableHighAccuracy:!1},locate:function(t){if(t=this._locateOptions=o.extend(this._defaultLocateOptions,t),!navigator.geolocation)return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=o.bind(this._handleGeolocationResponse,this),i=o.bind(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=t.coords.latitude,i=t.coords.longitude,n=new o.LatLng(e,i),s=180*t.coords.accuracy/40075017,a=s/Math.cos(o.LatLng.DEG_TO_RAD*e),r=o.latLngBounds([e-s,i-a],[e+s,i+a]),h=this._locateOptions;if(h.setView){var l=Math.min(this.getBoundsZoom(r),h.maxZoom);this.setView(n,l)}var u={latlng:n,bounds:r,timestamp:t.timestamp};for(var c in t.coords)"number"==typeof t.coords[c]&&(u[c]=t.coords[c]);this.fire("locationfound",u)}})}(window,document); diff --git a/vendor/assets/javascripts/turf-area.js b/vendor/assets/javascripts/turf-area.js index dcfd85a52..1b8193e67 100644 --- a/vendor/assets/javascripts/turf-area.js +++ b/vendor/assets/javascripts/turf-area.js @@ -89,4 +89,4 @@ function ringArea(coords) { function rad(_) { return _ * Math.PI / 180; -} \ No newline at end of file +} diff --git a/vendor/assets/javascripts/typeahead.bundle.js b/vendor/assets/javascripts/typeahead.bundle.js index 64b508ac5..7a08c6d15 100644 --- a/vendor/assets/javascripts/typeahead.bundle.js +++ b/vendor/assets/javascripts/typeahead.bundle.js @@ -2448,4 +2448,4 @@ return $el.length ? $el : null; } })(); -}); \ No newline at end of file +});