@bmlt-enabled/croutonjs 3.20.12 → 3.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/crouton-gmaps.js CHANGED
@@ -13260,7 +13260,6 @@ function CroutonLocalization(language) {
13260
13260
  },
13261
13261
  "css-direction": 'bmlt-rtl',
13262
13262
  "share": "مشاركة",
13263
- 'tabular': "جدول",
13264
13263
  'google_directions': 'اتجاهات جوجل للاجتماع',
13265
13264
  "no_meetings_for_this_day": "لا توجد اجتماعات لهذا اليوم.",
13266
13265
  'all': 'الجميع',
@@ -13294,9 +13293,9 @@ function CroutonLocalization(language) {
13294
13293
  "formats": "Struktur",
13295
13294
  "map": "Kort",
13296
13295
  "neighborhood": "Neighborhood",
13297
- "near_me": "Near Me",
13298
- "text_search": "Text Search",
13299
- "click_search": "Click Search",
13296
+ "near_me": "Find nearby meetings",
13297
+ "text_search": "Find meetings there",
13298
+ "click_search": "Find meetings near to a point on the map",
13300
13299
  "pan_and_zoom": "Pan + Zoom",
13301
13300
  "languages": "Languages",
13302
13301
  "common_needs": "Common Needs",
@@ -13318,7 +13317,6 @@ function CroutonLocalization(language) {
13318
13317
  "no_meetings_for_this_day": "No meetings for this day.",
13319
13318
  'css-textalign': '',
13320
13319
  'css-floatdirection': '',
13321
- 'tabular': "As table",
13322
13320
  'google_directions': 'Google directions to meeting',
13323
13321
  'all': 'All',
13324
13322
  'menu': 'Menu',
@@ -13369,7 +13367,6 @@ function CroutonLocalization(language) {
13369
13367
  GS: "Group Support Forum"
13370
13368
  },
13371
13369
  "share": "Teilen",
13372
- 'tabular': "Als Tabelle",
13373
13370
  'google_directions': 'Google Routenplaner',
13374
13371
  "no_meetings_for_this_day": "Keine Meetings an diesem Tag.",
13375
13372
  'css-textalign': '',
@@ -13390,7 +13387,7 @@ function CroutonLocalization(language) {
13390
13387
  'filter by visibility': "Zeige nur Meetings, die gerade auf dem Karte stehen",
13391
13388
  'go': "Los!"
13392
13389
  },
13393
- "en-AU": {
13390
+ "en-AU": {
13394
13391
  "days_of_the_week" : ["", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
13395
13392
  "weekday" : "Weekday",
13396
13393
  "city" : "City",
@@ -13404,10 +13401,10 @@ function CroutonLocalization(language) {
13404
13401
  "postal_codes" : "Postcodes",
13405
13402
  "formats" : "Formats",
13406
13403
  "map" : "Map",
13407
- "neighborhood": "Neighborhood",
13408
- "near_me": "Near Me",
13409
- "text_search": "Text Search",
13410
- "click_search": "Click Search",
13404
+ "neighborhood": "Neighbourhood",
13405
+ "near_me": "Find nearby meetings",
13406
+ "text_search": "Find meetings there",
13407
+ "click_search": "Find meetings near to a point on the map",
13411
13408
  "languages": "Languages",
13412
13409
  "common_needs": "Common Needs",
13413
13410
  "meeting_count": "Weekly Meetings:",
@@ -13425,7 +13422,6 @@ function CroutonLocalization(language) {
13425
13422
  GS: "Group Support Forum"
13426
13423
  },
13427
13424
  "share": "share",
13428
- 'tabular': "As table",
13429
13425
  'google_directions': 'Google directions to meeting',
13430
13426
  "no_meetings_for_this_day": "No meetings for this day.",
13431
13427
  'css-textalign': '',
@@ -13437,7 +13433,7 @@ function CroutonLocalization(language) {
13437
13433
  'show meetings near...': 'Show meetings near...',
13438
13434
  'filter meetings': 'Filter meetings',
13439
13435
  'visible meeting list': 'Visible meetings as list',
13440
- 'enter a city or zip code': 'Enter a city or zip code',
13436
+ 'enter a city or zip code': 'Enter a city and state',
13441
13437
  'toggle fullscreen mode': 'Toggle fullscreen mode',
13442
13438
  'close': "Close",
13443
13439
  'meeting page': "Meeting Page",
@@ -13462,9 +13458,9 @@ function CroutonLocalization(language) {
13462
13458
  "formats" : "Formats",
13463
13459
  "map" : "Map",
13464
13460
  "neighborhood": "Neighborhood",
13465
- "near_me": "Near Me",
13466
- "text_search": "Text Search",
13467
- "click_search": "Click Search",
13461
+ "near_me": "Find nearby meetings",
13462
+ "text_search": "Find meetings there",
13463
+ "click_search": "Find meetings near to a point on the map",
13468
13464
  "pan_and_zoom": "Pan + Zoom",
13469
13465
  "languages": "Languages",
13470
13466
  "common_needs": "Common Needs",
@@ -13483,7 +13479,6 @@ function CroutonLocalization(language) {
13483
13479
  GS: "Group Support Forum"
13484
13480
  },
13485
13481
  "share": "share",
13486
- 'tabular': "As table",
13487
13482
  'google_directions': 'Google directions to meeting',
13488
13483
  "no_meetings_for_this_day": "No meetings for this day.",
13489
13484
  'css-textalign': '',
@@ -13520,9 +13515,9 @@ function CroutonLocalization(language) {
13520
13515
  "formats" : "Formats",
13521
13516
  "map" : "Map",
13522
13517
  "neighborhood": "Neighborhood",
13523
- "near_me": "Near Me",
13524
- "text_search": "Text Search",
13525
- "click_search": "Click Search",
13518
+ "near_me": "Find nearby meetings",
13519
+ "text_search": "Find meetings there",
13520
+ "click_search": "Find meetings near to a point on the map",
13526
13521
  "pan_and_zoom": "Pan + Zoom",
13527
13522
  "languages": "Languages",
13528
13523
  "common_needs": "Common Needs",
@@ -13541,7 +13536,6 @@ function CroutonLocalization(language) {
13541
13536
  GS: "Group Support Forum"
13542
13537
  },
13543
13538
  "share": "share",
13544
- 'tabular': "As table",
13545
13539
  'google_directions': 'Google directions to meeting',
13546
13540
  "no_meetings_for_this_day": "No meetings for this day.",
13547
13541
  'css-textalign': '',
@@ -13578,9 +13572,9 @@ function CroutonLocalization(language) {
13578
13572
  "formats" : "Formats",
13579
13573
  "map" : "Map",
13580
13574
  "neighborhood": "Neighborhood",
13581
- "near_me": "Near Me",
13582
- "text_search": "Text Search",
13583
- "click_search": "Click Search",
13575
+ "near_me": "Find nearby meetings",
13576
+ "text_search": "Find meetings there",
13577
+ "click_search": "Find meetings near to a point on the map",
13584
13578
  "pan_and_zoom": "Pan + Zoom",
13585
13579
  "languages": "Languages",
13586
13580
  "common_needs": "Common Needs",
@@ -13599,7 +13593,6 @@ function CroutonLocalization(language) {
13599
13593
  GS: "Group Support Forum"
13600
13594
  },
13601
13595
  "share": "share",
13602
- 'tabular': "As table",
13603
13596
  'google_directions': 'Google directions to meeting',
13604
13597
  "no_meetings_for_this_day": "No meetings for this day.",
13605
13598
  'css-textalign': '',
@@ -13636,15 +13629,14 @@ function CroutonLocalization(language) {
13636
13629
  "formats" : "Formats",
13637
13630
  "map" : "Map",
13638
13631
  "neighborhood": "Neighborhood",
13639
- "near_me": "Near Me",
13640
- "text_search": "Text Search",
13641
- "click_search": "Click Search",
13632
+ "near_me": "Find nearby meetings",
13633
+ "text_search": "Find meetings there",
13634
+ "click_search": "Find meetings near to a point on the map",
13642
13635
  "pan_and_zoom": "Pan + Zoom",
13643
13636
  "languages": "Languages",
13644
13637
  "common_needs": "Common Needs",
13645
13638
  "meeting_count": "Weekly Meetings:",
13646
13639
  "venue_types": "Venue Types",
13647
- 'tabular': "As table",
13648
13640
  'google_directions': 'Google directions to meeting',
13649
13641
  "venue_type_choices": {
13650
13642
  IN_PERSON: "In Person",
@@ -13718,7 +13710,6 @@ function CroutonLocalization(language) {
13718
13710
  "share": "compartir",
13719
13711
  "no_meetings_for_this_day": "No hay reuniones en este día",
13720
13712
  'css-textalign': 'Alineación de texto CSS',
13721
- 'tabular': 'Formato tabla',
13722
13713
  'google_directions': 'Indicaciones de Google',
13723
13714
  'css-floatdirection': "Dirección float-CSS",
13724
13715
  'all': 'Todos',
@@ -13752,9 +13743,9 @@ function CroutonLocalization(language) {
13752
13743
  "formats" : "فورمت ها",
13753
13744
  "map" : "نقشه",
13754
13745
  "neighborhood": "Neighborhood",
13755
- "near_me": "Near Me",
13756
- "text_search": "Text Search",
13757
- "click_search": "Click Search",
13746
+ "near_me": "Find nearby meetings",
13747
+ "text_search": "Find meetings there",
13748
+ "click_search": "Find meetings near to a point on the map",
13758
13749
  "pan_and_zoom": "Pan + Zoom",
13759
13750
  "languages": "Languages",
13760
13751
  "common_needs": "Common Needs",
@@ -13773,7 +13764,6 @@ function CroutonLocalization(language) {
13773
13764
  GS: "Group Support Forum"
13774
13765
  },
13775
13766
  "share": "share",
13776
- 'tabular': "As table",
13777
13767
  'google_directions': 'Google directions to meeting',
13778
13768
  "no_meetings_for_this_day": "No meetings for this day.",
13779
13769
  "css-direction": 'bmlt-rtl',
@@ -13829,7 +13819,6 @@ function CroutonLocalization(language) {
13829
13819
  GS: "Group Support Forum"
13830
13820
  },
13831
13821
  "share": "Partager",
13832
- "tabular": "Liste",
13833
13822
  "google_directions": "Itinéraire sur Google Maps",
13834
13823
  "no_meetings_for_this_day": "Pas de réunion aujourd'hui.",
13835
13824
  "css-textalign": "css-textalign",
@@ -13886,7 +13875,6 @@ function CroutonLocalization(language) {
13886
13875
  GS: "Forum supporto gruppi"
13887
13876
  },
13888
13877
  "share": "Condividi",
13889
- 'tabular': "Tabellare",
13890
13878
  'google_directions': 'Mappa',
13891
13879
  "no_meetings_for_this_day": "Nessuna riunione per questo giorno.",
13892
13880
  'css-textalign': '',
@@ -13943,7 +13931,6 @@ function CroutonLocalization(language) {
13943
13931
  GS: "Group Support Forum"
13944
13932
  },
13945
13933
  "share": "share",
13946
- 'tabular': "As table",
13947
13934
  'google_directions': 'Google directions to meeting',
13948
13935
  "no_meetings_for_this_day": "No meetings for this day.",
13949
13936
  'css-textalign': '',
@@ -14000,7 +13987,6 @@ function CroutonLocalization(language) {
14000
13987
  GS: "Group Support Forum"
14001
13988
  },
14002
13989
  "share": "share",
14003
- 'tabular': "As table",
14004
13990
  'google_directions': 'Google directions to meeting',
14005
13991
  "no_meetings_for_this_day": "No meetings for this day.",
14006
13992
  'css-textalign': '',
@@ -14057,7 +14043,6 @@ function CroutonLocalization(language) {
14057
14043
  GS: "Group Support Forum"
14058
14044
  },
14059
14045
  "share": "Compartilhar",
14060
- 'tabular': "As table",
14061
14046
  'google_directions': 'Google directions to meeting',
14062
14047
  "no_meetings_for_this_day": "No meetings for this day.",
14063
14048
  'css-textalign': '',
@@ -14106,7 +14091,6 @@ function CroutonLocalization(language) {
14106
14091
  VIRTUAL: "Онлайн",
14107
14092
  },
14108
14093
  "share": "поделиться",
14109
- 'tabular': "Как таблица",
14110
14094
  'google_directions': 'На карте',
14111
14095
  "service_body_types": {
14112
14096
  AS: "Area Service Committee",
@@ -14171,7 +14155,6 @@ function CroutonLocalization(language) {
14171
14155
  GS: "Group Support Forum"
14172
14156
  },
14173
14157
  "share": "share",
14174
- 'tabular': "As table",
14175
14158
  'google_directions': 'Google directions to meeting',
14176
14159
  "no_meetings_for_this_day": "No meetings for this day.",
14177
14160
  'css-textalign': '',
@@ -14337,9 +14320,9 @@ this["hbs_Crouton"]["templates"]["header"] = Handlebars.template({"1":function(c
14337
14320
  return ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"include_weekday_button") : stack1),{"name":"if","hash":{},"fn":container.program(2, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":4},"end":{"line":5,"column":11}}})) != null ? stack1 : "")
14338
14321
  + ((stack1 = lookupProperty(helpers,"each").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"button_filters") : stack1),{"name":"each","hash":{},"fn":container.program(4, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":4},"end":{"line":8,"column":13}}})) != null ? stack1 : "")
14339
14322
  + ((stack1 = lookupProperty(helpers,"each").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"button_format_filters") : stack1),{"name":"each","hash":{},"fn":container.program(6, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":9,"column":4},"end":{"line":11,"column":13}}})) != null ? stack1 : "")
14340
- + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"map_page") : stack1),{"name":"if","hash":{},"fn":container.program(8, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":12,"column":4},"end":{"line":15,"column":11}}})) != null ? stack1 : "")
14323
+ + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"map_page") : stack1),{"name":"if","hash":{},"fn":container.program(8, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":12,"column":4},"end":{"line":14,"column":11}}})) != null ? stack1 : "")
14341
14324
  + "\n"
14342
- + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"dropdownData") : depth0),{"name":"each","hash":{},"fn":container.program(10, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":17,"column":4},"end":{"line":26,"column":13}}})) != null ? stack1 : "")
14325
+ + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"dropdownData") : depth0),{"name":"each","hash":{},"fn":container.program(10, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":16,"column":4},"end":{"line":25,"column":13}}})) != null ? stack1 : "")
14343
14326
  + " </div>\n";
14344
14327
  },"2":function(container,depth0,helpers,partials,data) {
14345
14328
  var lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14363,7 +14346,7 @@ this["hbs_Crouton"]["templates"]["header"] = Handlebars.template({"1":function(c
14363
14346
  return " <div class=\"bmlt-button-container\"><a id=\"filterButton_"
14364
14347
  + alias2(alias1((depth0 != null ? lookupProperty(depth0,"field") : depth0), depth0))
14365
14348
  + "\" tabindex=0 data-field=\""
14366
- + alias2(alias1((depth0 != null ? lookupProperty(depth0,"field") : depth0), depth0))
14349
+ + alias2(alias1((depth0 != null ? lookupProperty(depth0,"title") : depth0), depth0))
14367
14350
  + "\" class=\"filterButton filterButtonLogic btn btn-primary btn-sm\">"
14368
14351
  + alias2((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,"title") : depth0),{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":7,"column":180},"end":{"line":7,"column":202}}}))
14369
14352
  + "</a></div>\n";
@@ -14383,17 +14366,15 @@ this["hbs_Crouton"]["templates"]["header"] = Handlebars.template({"1":function(c
14383
14366
  + alias2(alias1((depth0 != null ? lookupProperty(depth0,"title") : depth0), depth0))
14384
14367
  + "</a></div>\n";
14385
14368
  },"8":function(container,depth0,helpers,partials,data) {
14386
- var alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
14369
+ var lookupProperty = container.lookupProperty || function(parent, propertyName) {
14387
14370
  if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
14388
14371
  return parent[propertyName];
14389
14372
  }
14390
14373
  return undefined
14391
14374
  };
14392
14375
 
14393
- return " <div class=\"bmlt-button-container\"><a id=\"filterButton_embeddedMapPage\" tabindex=0 data-field=\"embeddedMapPage\" class=\"filterButton displayTypeLogic btn btn-primary btn-sm\">"
14394
- + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"map",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":13,"column":181},"end":{"line":13,"column":198}}}))
14395
- + "</a></div>\n <div class=\"bmlt-button-container\"><a id=\"displayTypeButton_tablePages\" tabindex=0 data-field=\"tablePages\" class=\"filterButton displayTypeLogic btn btn-primary btn-sm hide\">"
14396
- + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"tabular",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":14,"column":181},"end":{"line":14,"column":202}}}))
14376
+ return " <div class=\"bmlt-button-container\"><a id=\"filterButton_embeddedMapPage\" tabindex=0 data-field=\"embeddedMapPage\" class=\"filterButton btn btn-primary btn-sm\">"
14377
+ + container.escapeExpression((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),"map",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":13,"column":164},"end":{"line":13,"column":181}}}))
14397
14378
  + "</a></div>\n";
14398
14379
  },"10":function(container,depth0,helpers,partials,data,blockParams,depths) {
14399
14380
  var stack1, helper, alias1=container.escapeExpression, alias2=depth0 != null ? depth0 : (container.nullContext || {}), alias3=container.hooks.helperMissing, alias4="function", lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14406,17 +14387,17 @@ this["hbs_Crouton"]["templates"]["header"] = Handlebars.template({"1":function(c
14406
14387
  return " <div class=\"bmlt-dropdown-container\">\n <select class=\"crouton-select filter-dropdown\" style=\"width:"
14407
14388
  + alias1(container.lambda(((stack1 = (depths[1] != null ? lookupProperty(depths[1],"config") : depths[1])) != null ? lookupProperty(stack1,"dropdown_width") : stack1), depth0))
14408
14389
  + ";\" data-placeholder=\""
14409
- + alias1(((helper = (helper = lookupProperty(helpers,"placeholder") || (depth0 != null ? lookupProperty(depth0,"placeholder") : depth0)) != null ? helper : alias3),(typeof helper === alias4 ? helper.call(alias2,{"name":"placeholder","hash":{},"data":data,"loc":{"start":{"line":19,"column":116},"end":{"line":19,"column":131}}}) : helper)))
14390
+ + alias1(((helper = (helper = lookupProperty(helpers,"placeholder") || (depth0 != null ? lookupProperty(depth0,"placeholder") : depth0)) != null ? helper : alias3),(typeof helper === alias4 ? helper.call(alias2,{"name":"placeholder","hash":{},"data":data,"loc":{"start":{"line":18,"column":116},"end":{"line":18,"column":131}}}) : helper)))
14410
14391
  + "\" data-pointer=\""
14411
- + alias1(((helper = (helper = lookupProperty(helpers,"pointer") || (depth0 != null ? lookupProperty(depth0,"pointer") : depth0)) != null ? helper : alias3),(typeof helper === alias4 ? helper.call(alias2,{"name":"pointer","hash":{},"data":data,"loc":{"start":{"line":19,"column":147},"end":{"line":19,"column":158}}}) : helper)))
14392
+ + alias1(((helper = (helper = lookupProperty(helpers,"pointer") || (depth0 != null ? lookupProperty(depth0,"pointer") : depth0)) != null ? helper : alias3),(typeof helper === alias4 ? helper.call(alias2,{"name":"pointer","hash":{},"data":data,"loc":{"start":{"line":18,"column":147},"end":{"line":18,"column":158}}}) : helper)))
14412
14393
  + "\" id="
14413
- + alias1(((helper = (helper = lookupProperty(helpers,"elementId") || (depth0 != null ? lookupProperty(depth0,"elementId") : depth0)) != null ? helper : alias3),(typeof helper === alias4 ? helper.call(alias2,{"name":"elementId","hash":{},"data":data,"loc":{"start":{"line":19,"column":163},"end":{"line":19,"column":176}}}) : helper)))
14394
+ + alias1(((helper = (helper = lookupProperty(helpers,"elementId") || (depth0 != null ? lookupProperty(depth0,"elementId") : depth0)) != null ? helper : alias3),(typeof helper === alias4 ? helper.call(alias2,{"name":"elementId","hash":{},"data":data,"loc":{"start":{"line":18,"column":163},"end":{"line":18,"column":176}}}) : helper)))
14414
14395
  + ">\n <option value=\"a-\">"
14415
- + alias1((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias3).call(alias2,"all",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":20,"column":25},"end":{"line":20,"column":42}}}))
14396
+ + alias1((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias3).call(alias2,"all",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":19,"column":25},"end":{"line":19,"column":42}}}))
14416
14397
  + " "
14417
- + alias1(((helper = (helper = lookupProperty(helpers,"placeholder") || (depth0 != null ? lookupProperty(depth0,"placeholder") : depth0)) != null ? helper : alias3),(typeof helper === alias4 ? helper.call(alias2,{"name":"placeholder","hash":{},"data":data,"loc":{"start":{"line":20,"column":43},"end":{"line":20,"column":58}}}) : helper)))
14398
+ + alias1(((helper = (helper = lookupProperty(helpers,"placeholder") || (depth0 != null ? lookupProperty(depth0,"placeholder") : depth0)) != null ? helper : alias3),(typeof helper === alias4 ? helper.call(alias2,{"name":"placeholder","hash":{},"data":data,"loc":{"start":{"line":19,"column":43},"end":{"line":19,"column":58}}}) : helper)))
14418
14399
  + "</option>\n"
14419
- + ((stack1 = lookupProperty(helpers,"each").call(alias2,(lookupProperty(helpers,"call")||(depth0 && lookupProperty(depth0,"call"))||alias3).call(alias2,(depth0 != null ? lookupProperty(depth0,"uniqueData") : depth0),((stack1 = (depths[1] != null ? lookupProperty(depths[1],"meetings") : depths[1])) != null ? lookupProperty(stack1,"meetingData") : stack1),{"name":"call","hash":{},"data":data,"loc":{"start":{"line":21,"column":14},"end":{"line":21,"column":55}}}),{"name":"each","hash":{},"fn":container.program(11, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":21,"column":6},"end":{"line":23,"column":15}}})) != null ? stack1 : "")
14400
+ + ((stack1 = lookupProperty(helpers,"each").call(alias2,(lookupProperty(helpers,"call")||(depth0 && lookupProperty(depth0,"call"))||alias3).call(alias2,(depth0 != null ? lookupProperty(depth0,"uniqueData") : depth0),((stack1 = (depths[1] != null ? lookupProperty(depths[1],"meetings") : depths[1])) != null ? lookupProperty(stack1,"meetingData") : stack1),{"name":"call","hash":{},"data":data,"loc":{"start":{"line":20,"column":14},"end":{"line":20,"column":55}}}),{"name":"each","hash":{},"fn":container.program(11, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":20,"column":6},"end":{"line":22,"column":15}}})) != null ? stack1 : "")
14420
14401
  + " </select>\n </div>\n";
14421
14402
  },"11":function(container,depth0,helpers,partials,data,blockParams,depths) {
14422
14403
  var alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14427,9 +14408,9 @@ this["hbs_Crouton"]["templates"]["header"] = Handlebars.template({"1":function(c
14427
14408
  };
14428
14409
 
14429
14410
  return " <option value=\"a-"
14430
- + alias3((lookupProperty(helpers,"call")||(depth0 && lookupProperty(depth0,"call"))||alias2).call(alias1,(depths[1] != null ? lookupProperty(depths[1],"objectPointer") : depths[1]),depth0,{"name":"call","hash":{},"data":data,"loc":{"start":{"line":22,"column":24},"end":{"line":22,"column":54}}}))
14411
+ + alias3((lookupProperty(helpers,"call")||(depth0 && lookupProperty(depth0,"call"))||alias2).call(alias1,(depths[1] != null ? lookupProperty(depths[1],"objectPointer") : depths[1]),depth0,{"name":"call","hash":{},"data":data,"loc":{"start":{"line":21,"column":24},"end":{"line":21,"column":54}}}))
14431
14412
  + "\">"
14432
- + alias3((lookupProperty(helpers,"call")||(depth0 && lookupProperty(depth0,"call"))||alias2).call(alias1,(depths[1] != null ? lookupProperty(depths[1],"optionName") : depths[1]),depth0,{"name":"call","hash":{},"data":data,"loc":{"start":{"line":22,"column":56},"end":{"line":22,"column":83}}}))
14413
+ + alias3((lookupProperty(helpers,"call")||(depth0 && lookupProperty(depth0,"call"))||alias2).call(alias1,(depths[1] != null ? lookupProperty(depths[1],"optionName") : depths[1]),depth0,{"name":"call","hash":{},"data":data,"loc":{"start":{"line":21,"column":56},"end":{"line":21,"column":83}}}))
14433
14414
  + "</option>\n";
14434
14415
  },"13":function(container,depth0,helpers,partials,data) {
14435
14416
  var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14439,9 +14420,9 @@ this["hbs_Crouton"]["templates"]["header"] = Handlebars.template({"1":function(c
14439
14420
  return undefined
14440
14421
  };
14441
14422
 
14442
- return ((stack1 = (lookupProperty(helpers,"ifEquals")||(depth0 && lookupProperty(depth0,"ifEquals"))||container.hooks.helperMissing).call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"view_by") : stack1),"weekdays",{"name":"ifEquals","hash":{},"fn":container.program(14, data, 0),"inverse":container.program(16, data, 0),"data":data,"loc":{"start":{"line":31,"column":4},"end":{"line":35,"column":17}}})) != null ? stack1 : "")
14423
+ return ((stack1 = (lookupProperty(helpers,"ifEquals")||(depth0 && lookupProperty(depth0,"ifEquals"))||container.hooks.helperMissing).call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"view_by") : stack1),"weekdays",{"name":"ifEquals","hash":{},"fn":container.program(14, data, 0),"inverse":container.program(16, data, 0),"data":data,"loc":{"start":{"line":30,"column":4},"end":{"line":34,"column":17}}})) != null ? stack1 : "")
14443
14424
  + " <ul class=\"nav nav-tabs\">\n"
14444
- + ((stack1 = lookupProperty(helpers,"each").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"day_sequence") : stack1),{"name":"each","hash":{},"fn":container.program(18, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":37,"column":12},"end":{"line":39,"column":21}}})) != null ? stack1 : "")
14425
+ + ((stack1 = lookupProperty(helpers,"each").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"day_sequence") : stack1),{"name":"each","hash":{},"fn":container.program(18, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":36,"column":12},"end":{"line":38,"column":21}}})) != null ? stack1 : "")
14445
14426
  + " </ul>\n </div>\n";
14446
14427
  },"14":function(container,depth0,helpers,partials,data) {
14447
14428
  var lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14452,7 +14433,7 @@ this["hbs_Crouton"]["templates"]["header"] = Handlebars.template({"1":function(c
14452
14433
  };
14453
14434
 
14454
14435
  return " <div class=\"bmlt-page "
14455
- + container.escapeExpression((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),"css-direction",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":32,"column":30},"end":{"line":32,"column":57}}}))
14436
+ + container.escapeExpression((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),"css-direction",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":31,"column":30},"end":{"line":31,"column":57}}}))
14456
14437
  + " show\" id=\"nav-days\">\n";
14457
14438
  },"16":function(container,depth0,helpers,partials,data) {
14458
14439
  var lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14463,7 +14444,7 @@ this["hbs_Crouton"]["templates"]["header"] = Handlebars.template({"1":function(c
14463
14444
  };
14464
14445
 
14465
14446
  return " <div class=\"bmlt-page "
14466
- + container.escapeExpression((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),"css-direction",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":34,"column":30},"end":{"line":34,"column":57}}}))
14447
+ + container.escapeExpression((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),"css-direction",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":33,"column":30},"end":{"line":33,"column":57}}}))
14467
14448
  + " hide\" id=\"nav-days\">\n";
14468
14449
  },"18":function(container,depth0,helpers,partials,data) {
14469
14450
  var alias1=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14476,7 +14457,7 @@ this["hbs_Crouton"]["templates"]["header"] = Handlebars.template({"1":function(c
14476
14457
  return " <li><a href=\"#tab"
14477
14458
  + alias1(container.lambda(depth0, depth0))
14478
14459
  + "\" data-toggle=\"tab\">"
14479
- + alias1((lookupProperty(helpers,"getDayOfTheWeek")||(depth0 && lookupProperty(depth0,"getDayOfTheWeek"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"getDayOfTheWeek","hash":{},"data":data,"loc":{"start":{"line":38,"column":61},"end":{"line":38,"column":85}}}))
14460
+ + alias1((lookupProperty(helpers,"getDayOfTheWeek")||(depth0 && lookupProperty(depth0,"getDayOfTheWeek"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"getDayOfTheWeek","hash":{},"data":data,"loc":{"start":{"line":37,"column":61},"end":{"line":37,"column":85}}}))
14480
14461
  + "</a></li>\n";
14481
14462
  },"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data,blockParams,depths) {
14482
14463
  var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14488,9 +14469,9 @@ this["hbs_Crouton"]["templates"]["header"] = Handlebars.template({"1":function(c
14488
14469
 
14489
14470
  return container.escapeExpression((lookupProperty(helpers,"startup")||(depth0 && lookupProperty(depth0,"startup"))||container.hooks.helperMissing).call(alias1,depth0,{"name":"startup","hash":{},"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":16}}}))
14490
14471
  + "\n"
14491
- + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"header") : stack1),{"name":"if","hash":{},"fn":container.program(1, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":28,"column":7}}})) != null ? stack1 : "")
14472
+ + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"header") : stack1),{"name":"if","hash":{},"fn":container.program(1, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":27,"column":7}}})) != null ? stack1 : "")
14492
14473
  + "\n"
14493
- + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"has_tabs") : stack1),{"name":"if","hash":{},"fn":container.program(13, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":30,"column":0},"end":{"line":42,"column":7}}})) != null ? stack1 : "");
14474
+ + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"config") : depth0)) != null ? lookupProperty(stack1,"has_tabs") : stack1),{"name":"if","hash":{},"fn":container.program(13, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":29,"column":0},"end":{"line":41,"column":7}}})) != null ? stack1 : "");
14494
14475
  },"useData":true,"useDepths":true});
14495
14476
  this["hbs_Crouton"]["templates"]["main"] = Handlebars.template({"1":function(container,depth0,helpers,partials,data) {
14496
14477
  var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14670,8 +14651,19 @@ this["hbs_Crouton"]["templates"]["mapMenu"] = Handlebars.template({"1":function(
14670
14651
  + alias1((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias3).call(alias2,"go",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":49,"column":59},"end":{"line":49,"column":75}}}))
14671
14652
  + "</button>\n </div>\n </div>\n</div>\n\n";
14672
14653
  },"usePartial":true,"useData":true,"useDepths":true});
14673
- this["hbs_Crouton"]["templates"]["mapSearch"] = Handlebars.template({"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) {
14674
- var alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
14654
+ this["hbs_Crouton"]["templates"]["mapSearch"] = Handlebars.template({"1":function(container,depth0,helpers,partials,data) {
14655
+ var lookupProperty = container.lookupProperty || function(parent, propertyName) {
14656
+ if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
14657
+ return parent[propertyName];
14658
+ }
14659
+ return undefined
14660
+ };
14661
+
14662
+ return " <div class=\"modal-search\">\n <button id=\"bmltsearch-clicksearch\" class=\"filter-button\">"
14663
+ + container.escapeExpression((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),"click_search",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":19,"column":86},"end":{"line":20,"column":48}}}))
14664
+ + "</button>\n </div>\n";
14665
+ },"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) {
14666
+ var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
14675
14667
  if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
14676
14668
  return parent[propertyName];
14677
14669
  }
@@ -14682,17 +14674,27 @@ this["hbs_Crouton"]["templates"]["mapSearch"] = Handlebars.template({"compiler":
14682
14674
  + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"Open Search Dialog",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":1,"column":58},"end":{"line":1,"column":90}}}))
14683
14675
  + "\">\n <span class=\"menu-button-label\" style=\"position:initial;\">"
14684
14676
  + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"Search for meetings",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":2,"column":62},"end":{"line":2,"column":95}}}))
14685
- + "</span>\n</button>\n<div id=\"bmltsearch_modal\" class=\"modal\" style=\"display: none;\">\n <div id=\"bmltsearch_content\" class=\"modal-content\">\n <span id=\"close_search\" class=\"modal-close\">x</span>\n <span class=\"modal-title\">"
14686
- + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"Search for meetings",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":7,"column":34},"end":{"line":7,"column":67}}}))
14687
- + "</span>\n <table>\n <tr><td><div class=\"modal-search\">\n <input id=\"bmltsearch-goto-text\" type=\"text\" placeholder=\""
14688
- + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"Enter a city or zip code",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":10,"column":70},"end":{"line":10,"column":108}}}))
14689
- + "\" style=\"margin-bottom:5px;\">\n <button id=\"bmltsearch-text-button\" class=\"filter-button\">"
14690
- + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"text_search",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":11,"column":70},"end":{"line":11,"column":95}}}))
14691
- + "</button>\n </div></td></tr>\n <tr><td><div class=\"modal-search\">\n <button id=\"bmltsearch-nearbyMeetings\" class=\"filter-button\">"
14692
- + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"near_me",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":14,"column":77},"end":{"line":14,"column":98}}}))
14693
- + "</button>\n </div></td></tr>\n <tr><td><div class=\"modal-search\">\n <button id=\"bmltsearch-clicksearch\" class=\"filter-button\">"
14694
- + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"click_search",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":17,"column":74},"end":{"line":17,"column":100}}}))
14695
- + "</button>\n </div></td></tr></table>\n </div>\n</div>";
14677
+ + "</span>\n</button>\n<div id=\"bmltsearch_modal\" class=\"modal\" style=\"display: none;\">\n <div id=\"bmltsearch_content\" class=\"modal-content\">\n <span id=\"close_search\" class=\"modal-close\">x</span>\n <div id=\"modal-search-page\">\n <div class=\"modal-title\">"
14678
+ + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"Search for meetings",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":8,"column":37},"end":{"line":8,"column":70}}}))
14679
+ + "</div>\n <div id=\"modal-search-box\" class=\"modal-search\">\n <input id=\"bmltsearch-goto-text\" type=\"text\"\n placeholder=\""
14680
+ + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"Enter a city or zip code",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":11,"column":45},"end":{"line":11,"column":83}}}))
14681
+ + "\" style=\"margin-bottom:5px;\">\n <button id=\"bmltsearch-text-button\" class=\"filter-button\">"
14682
+ + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"text_search",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":12,"column":86},"end":{"line":12,"column":111}}}))
14683
+ + "</button>\n </div>\n <div class=\"modal-search\">\n <button id=\"bmltsearch-nearbyMeetings\" class=\"filter-button\">"
14684
+ + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"near_me",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":15,"column":89},"end":{"line":15,"column":110}}}))
14685
+ + "</button>\n </div>\n"
14686
+ + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"hasClickSearch") : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":17,"column":16},"end":{"line":22,"column":23}}})) != null ? stack1 : "")
14687
+ + " <button id=\"show-search-parameters\" class=\"advanced-search-button\">"
14688
+ + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"Adjust Search",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":23,"column":79},"end":{"line":23,"column":106}}}))
14689
+ + "</button>\n </div>\n <div id=\"modal-seach-parameters\">\n <div class=\"modal-title\">"
14690
+ + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"Configure Search",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":26,"column":37},"end":{"line":26,"column":67}}}))
14691
+ + "</div>\n <input type=\"number\" id=\"search_parameter\" name=\"search_parameter\" maxlength=\"3\" size=\"3\">\n <p>"
14692
+ + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"This number represents:",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":28,"column":15},"end":{"line":28,"column":52}}}))
14693
+ + "</p>\n <input type=\"radio\" id=\"search_radius\" name=\"map_search_type\" value=\"radius\">\n <label id=\"search_radius_label\" for=\"search_radius\"></label><br>\n <input type=\"radio\" id=\"search_count\" name=\"map_search_type\" value=\"count\">\n <label for=\"search_count\">"
14694
+ + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"Approx. number of meetings in result",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":32,"column":38},"end":{"line":32,"column":88}}}))
14695
+ + "</label><br>\n <button id=\"show-search-page\" class=\"advanced-search-button\">"
14696
+ + alias3((lookupProperty(helpers,"getWord")||(depth0 && lookupProperty(depth0,"getWord"))||alias2).call(alias1,"Back",{"name":"getWord","hash":{},"data":data,"loc":{"start":{"line":33,"column":73},"end":{"line":33,"column":91}}}))
14697
+ + "</button>\n </div>\n </div>\n</div>";
14696
14698
  },"useData":true});
14697
14699
  this["hbs_Crouton"]["templates"]["meetings"] = Handlebars.template({"1":function(container,depth0,helpers,partials,data) {
14698
14700
  var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=container.escapeExpression, alias4=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14956,6 +14958,9 @@ var croutonDefaultTemplates = {
14956
14958
  "<div class='location-information'>{{this.formatted_location_info}}</div>",
14957
14959
  "{{#if this.virtual_meeting_additional_info}}",
14958
14960
  " <div class='meeting-additional-info'>{{this.virtual_meeting_additional_info}}</div>",
14961
+ "{{/if}}",
14962
+ "{{#if this.distance}}",
14963
+ " <div class='meeting-distance'>{{getWord 'Distance'}}: {{this.distance}}</div>",
14959
14964
  "{{/if}}"
14960
14965
  ].join('\n'),
14961
14966
 
@@ -14987,7 +14992,6 @@ var croutonDefaultTemplates = {
14987
14992
  " {{getWord 'meeting details'}}",
14988
14993
  " </a>",
14989
14994
  " </div>",
14990
- " <div class='geo hide'>{{this.latitude}},{{this.longitude}}</div>",
14991
14995
  " {{/unless}}",
14992
14996
  "{{/isNotTemporarilyClosed}}"
14993
14997
  ].join('\n'),
@@ -15094,7 +15098,7 @@ var croutonDefaultTemplates = {
15094
15098
  This meeting is in <a href="{{serviceBodyUrl}}">{{serviceBodyName}}</a><br/>
15095
15099
  {{> offerIcsButton}}
15096
15100
  </td>`,
15097
- marker_contents_template:
15101
+ marker_contents_template:
15098
15102
  `<h4>{{meeting_name}}</h4>
15099
15103
  <div class="active">
15100
15104
  <div class="marker_div_location_text">{{{this.location_text}}}</div>
@@ -16155,6 +16159,7 @@ function Crouton(config) {
16155
16159
  self.mutex = false;
16156
16160
  self.filtering = false;
16157
16161
  self.masterFormatCodes = [];
16162
+ self.currentView = "weekday";
16158
16163
  self.max_filters = 10; // TODO: needs to be refactored so that dropdowns are treated dynamically
16159
16164
  self.config = {
16160
16165
  on_complete: null, // Javascript function to callback when data querying is completed.
@@ -16171,6 +16176,7 @@ function Crouton(config) {
16171
16176
  int_include_unpublished: 0, // Includes unpublished meeting
16172
16177
  button_filters: [
16173
16178
  {'title': 'City', 'field': 'location_municipality'},
16179
+ {'title': 'Distance', 'field': 'distance_in_km'},
16174
16180
  ],
16175
16181
  button_format_filters: [],
16176
16182
  default_filter_dropdown: "", // Sets the default format for the dropdowns, the names will match the `has_` fields dropdowns without `has_. Example: `formats=closed`.
@@ -16191,8 +16197,6 @@ function Crouton(config) {
16191
16197
  has_common_needs: false, // Shows the Common Needs dropdown
16192
16198
  has_venues: true, // Shows the venue types dropdown
16193
16199
  has_meeting_count: false, // Shows the meeting count
16194
- show_distance: false, // Determines distance on page load
16195
- distance_search: 0, // Makes a distance based search with results either number of / or distance from coordinates
16196
16200
  recurse_service_bodies: false,// Recurses service bodies when making service bodies request
16197
16201
  service_body: [], // Array of service bodies to return data for.
16198
16202
  formats: '', // Return only meetings with these formats (format shared-id, not key-string)
@@ -16236,7 +16240,9 @@ function Crouton(config) {
16236
16240
  maxZoom: 18
16237
16241
  },
16238
16242
  minZoom: 6,
16239
- maxZoom: 17
16243
+ maxZoom: 17,
16244
+ distance_units: 'miles',
16245
+ noMap: false
16240
16246
  };
16241
16247
 
16242
16248
  self.setConfig(config);
@@ -16369,6 +16375,10 @@ function Crouton(config) {
16369
16375
  }
16370
16376
  }
16371
16377
 
16378
+ if (self.config.map_search) {
16379
+ self.queryable_data_keys.push('distance_in_km');
16380
+ self.queryable_data_keys.push('distance_in_miles');
16381
+ }
16372
16382
  self.collectDataKeys(self.config['meeting_data_template']);
16373
16383
  self.collectDataKeys(self.config['metadata_template']);
16374
16384
  self.collectDataKeys(self.config['observer_template']);
@@ -16387,6 +16397,9 @@ function Crouton(config) {
16387
16397
  return prev +'&formats[]='+id;
16388
16398
  }, '');
16389
16399
  }
16400
+ if (self.config.map_search && self.config['venue_types'].length === 0) {
16401
+ self.config['venue_types'].push('-2');
16402
+ }
16390
16403
  if (self.config['venue_types']) {
16391
16404
  url += self.config['venue_types'].reduce(function(prev,id) {
16392
16405
  return prev +'&venue_types[]='+id;
@@ -16398,16 +16411,7 @@ function Crouton(config) {
16398
16411
  url += "&advanced_published=-1"
16399
16412
  }
16400
16413
 
16401
- if (self.config['distance_search'] !== 0) {
16402
- return retrieveGeolocation().then((position) => {
16403
- url += '&lat_val=' + position.latitude + '&long_val=' + position.longitude + '&sort_results_by_distance=1';
16404
- url += (self.config['distance_units'] === "km" ? '&geo_width_km=' : '&geo_width=') + self.config['distance_search'];
16405
- return self.getMeetings(url);
16406
- }).catch((error) => {
16407
- console.error(error.message);
16408
- return self.getMeetings(url); // Proceed without geolocation if error occurs
16409
- });
16410
- } else if (self.config['custom_query'] != null) {
16414
+ if (self.config['custom_query'] != null) {
16411
16415
  url += self.config['custom_query'] + '&sort_keys=' + self.config['sort_keys'];
16412
16416
  return self.getMeetings(url);
16413
16417
  } else if (self.config['service_body'].length > 0) {
@@ -16452,18 +16456,28 @@ function Crouton(config) {
16452
16456
  jQuery(id).removeClass("hide").addClass("show");
16453
16457
  };
16454
16458
 
16455
- self.showView = function (viewName, resetFilters=true) {
16456
- if (resetFilters) {
16457
- self.resetFilter();
16458
- }
16459
- if (viewName === "byday") {
16460
- self.byDayView();
16461
- } else if (viewName === "day" || viewName === "weekday") {
16462
- self.dayView();
16463
- } else if (viewName === "city") {
16464
- self.filteredView("location_municipality");
16459
+ self.showView = function (viewName, showingNow=0) {
16460
+ self.currentView = viewName;
16461
+ if (showingNow > 0) {
16462
+ self.showingNow = showingNow;
16463
+ } else showingNow = self.showingNow ? self.showingNow : self.meetingData.length; ;
16464
+
16465
+ if (viewName.endsWith('day')) {
16466
+ if (!self.config['has_tabs'] || (self.config['filter_tabs'] && self.config['filter_tabs'] >= showingNow)) {
16467
+ self.byDayView();
16468
+
16469
+ jQuery(".bmlt-data-rows").each(function (index, value) {
16470
+ if (jQuery(value).find(".bmlt-data-row.hide").length === jQuery(value).find(".bmlt-data-row").length) {
16471
+ jQuery(value).find(".meeting-header").addClass("hide");
16472
+ }
16473
+ });
16474
+ } else {
16475
+ self.dayView();
16476
+ }
16477
+ } else if (viewName=='map') {
16478
+ self.mapView();
16465
16479
  } else {
16466
- self.filteredView(viewName);
16480
+ self.filteredView(self.config.button_filters.find((bf) => bf.title.toLowerCase() === viewName).field);
16467
16481
  }
16468
16482
  };
16469
16483
 
@@ -16472,8 +16486,10 @@ function Crouton(config) {
16472
16486
  self.highlightButton("#day");
16473
16487
  jQuery('.bmlt-page').each(function (index) {
16474
16488
  self.hidePage("#" + this.id);
16489
+ self.hidePage("#days");
16475
16490
  self.showPage("#byday");
16476
- self.showPage("#nav-days");
16491
+ self.hidePage("#nav-days");
16492
+ self.hidePage("#tabs-content");
16477
16493
  return;
16478
16494
  });
16479
16495
  };
@@ -16497,9 +16513,32 @@ function Crouton(config) {
16497
16513
  jQuery('.bmlt-page').each(function (index) {
16498
16514
  self.hidePage("#" + this.id);
16499
16515
  self.showPage("#byfield_" + field);
16516
+ jQuery("#byfield_" + field).find('.meeting-header').each(function(index) {
16517
+ // This is an awkward way of doing things, but I don't want to mess with
16518
+ // the generated HTML at this point.
16519
+ let flag = false;
16520
+ let item = jQuery(this);
16521
+ const main = item;
16522
+ while(item = item.next()) {
16523
+ if (item.length === 0) break;
16524
+ if (item.hasClass('meeting-header')) break;
16525
+ if (!item.hasClass('hide')) {
16526
+ flag = true;
16527
+ break;
16528
+ }
16529
+ }
16530
+ if (!flag) main.addClass('hide');
16531
+ })
16500
16532
  return;
16501
16533
  });
16502
16534
  };
16535
+ self.mapView = function() {
16536
+ self.lowlightButton("#day");
16537
+ self.lowlightButton(".filterButton");
16538
+ self.highlightButton("#filterButton_embeddedMapPage");
16539
+ self.filteredView("embeddedMapPage", false);
16540
+ croutonMap.showMap(false,false);
16541
+ }
16503
16542
  self.lowlightButton = function (id) {
16504
16543
  jQuery(id).removeClass("buttonHighlight").addClass("buttonLowlight");
16505
16544
  };
@@ -16531,9 +16570,6 @@ function Crouton(config) {
16531
16570
  jQuery(".bmlt-data-row").not("[data-" + dataType + "~='" + dataValue + "']").addClass("hide");
16532
16571
  }
16533
16572
  });
16534
- if (!filteringDropdown) {
16535
- self.filtering = false;
16536
- }
16537
16573
  var showingNow = [];
16538
16574
  jQuery(".bmlt-data-row").not(".hide").each(function (index, value) {
16539
16575
  jQuery(value).addClass((index % 2) ? 'oddRow' : 'evenRow');
@@ -16544,41 +16580,11 @@ function Crouton(config) {
16544
16580
  self.updateMeetingCount(showingNow);
16545
16581
  self.updateFilters();
16546
16582
  if (croutonMap) croutonMap.fillMap(showingNow);
16547
- if (self.config.map_page) {
16548
- if (!jQuery('#byfield_embeddedMapPage').hasClass('hide')) {
16549
- jQuery('#displayTypeButton_tablePages').removeClass('hide');
16550
- jQuery('#filterButton_embeddedMapPage').addClass('hide');
16551
- }
16552
- }
16553
-
16554
- if (!self.config.map_page || jQuery('#byfield_embeddedMapPage').hasClass('hide')) {
16555
- self.showFilteredMeetingsAsTable(showingNow.length);
16556
- }
16557
- self.filtering = true;
16583
+ self.showView(self.currentView, showingNow.length);
16558
16584
  };
16559
- self.showFilteredMeetingsAsTable = function (showingNow) {
16560
- if (self.config['filter_tabs'] && self.config['filter_tabs'] <= showingNow) {
16561
- self.showPage("#nav-days");
16562
- self.showPage("#tabs-content");
16563
- } else {
16564
- self.lowlightButton(".filterButton");
16565
- self.lowlightButton("#day");
16566
- self.showPage("#byday");
16567
-
16568
- jQuery(".bmlt-data-rows").each(function (index, value) {
16569
- if (jQuery(value).find(".bmlt-data-row.hide").length === jQuery(value).find(".bmlt-data-row").length) {
16570
- jQuery(value).find(".meeting-header").addClass("hide");
16571
- }
16572
- });
16573
- }
16574
- }
16575
16585
  self.resetFilter = function () {
16576
16586
  croutonMap.filterVisible(false);
16577
- if (self.config.map_page) {
16578
- if (self.filtering) croutonMap.fillMap();
16579
- jQuery('#displayTypeButton_tablePages').addClass('hide');
16580
- jQuery('#filterButton_embeddedMapPage').removeClass('hide');
16581
- } else if (self.config.show_map) croutonMap.fillMap();
16587
+ if ((self.config.map_page && self.filtering) || self.config.show_map) croutonMap.fillMap();
16582
16588
  self.filtering = false;
16583
16589
  self.updateFilters();
16584
16590
  self.updateMeetingCount();
@@ -16618,7 +16624,7 @@ function Crouton(config) {
16618
16624
  crouton_Handlebars.registerPartial('bydays', hbs_Crouton.templates['byday']);
16619
16625
  crouton_Handlebars.registerPartial('formatPopup', hbs_Crouton.templates['formatPopup']);
16620
16626
  window.crouton = self;
16621
- croutonMap.initialize(self.createBmltMapElement(),self.meetingData,context,null,fitBounds,callback);
16627
+ croutonMap.initialize(self.createBmltMapElement(),self.meetingData,context,null,fitBounds,callback,self.config['noMap']);
16622
16628
  }
16623
16629
  self.getCurrentLocation = function(callback) {
16624
16630
  retrieveGeolocation().then(position => {
@@ -16701,31 +16707,6 @@ function Crouton(config) {
16701
16707
  });
16702
16708
  }
16703
16709
 
16704
- self.showLocation = function(position) {
16705
- var latitude = position.latitude;
16706
- var longitude = position.longitude;
16707
- var distanceUnit;
16708
- var distanceCalculation;
16709
-
16710
- if (self.config['distance_units'] === "km") {
16711
- distanceUnit = "km";
16712
- distanceCalculation = "K";
16713
- } else if (self.config['distance_units'] === "nm") {
16714
- distanceUnit = "nm";
16715
- distanceCalculation = "N";
16716
- } else {
16717
- distanceUnit = "mi";
16718
- distanceCalculation = "M";
16719
- }
16720
-
16721
- jQuery( ".geo" ).each(function() {
16722
- var target = jQuery( this ).html();
16723
- var arr = target.split(',');
16724
- var distance_result = self.distance(latitude, longitude, arr[0], arr[1], distanceCalculation);
16725
- jQuery( this ).removeClass("hide").addClass("show").html(distance_result.toFixed(1) + ' ' + distanceUnit);
16726
- });
16727
- };
16728
-
16729
16710
  self.errorHandler = function(msg) {
16730
16711
  jQuery('.geo').removeClass("hide").addClass("show").html('');
16731
16712
  };
@@ -16982,6 +16963,22 @@ function Crouton(config) {
16982
16963
  );
16983
16964
  }
16984
16965
 
16966
+ meetingData[m]['distance'] = '';
16967
+ if (self.config['distance_units'] === "km") {
16968
+ if (meetingData[m]['distance_in_km']) {
16969
+ const d = meetingData[m]['distance_in_km'];
16970
+ if (d < 1) {
16971
+ meetingData[m]['distance'] = Math.round( d * 1000) + 'm';
16972
+ }
16973
+ else {
16974
+ meetingData[m]['distance'] = (Math.round(d * 10) / 10).toFixed(1) + 'km';
16975
+ }
16976
+ }
16977
+ } else if (meetingData[m]['distance_in_miles']) {
16978
+ const d = meetingData[m]['distance_in_miles'];
16979
+ meetingData[m]['distance'] = (Math.round(d * 100) / 100).toFixed(2) + ' miles';
16980
+ }
16981
+
16985
16982
  meetings.push(meetingData[m])
16986
16983
  }
16987
16984
 
@@ -17046,7 +17043,6 @@ Crouton.prototype.setConfig = function(config) {
17046
17043
  self.config.show_map = false;
17047
17044
  self.config.map_page = true;
17048
17045
  }
17049
- self.config["distance_search"] = parseInt(self.config["distance_search"] || 0);
17050
17046
  self.config["day_sequence"] = [];
17051
17047
  self.config.day_sequence.push(self.config.int_start_day_id);
17052
17048
  for (var i = 1; i < 7; i++) {
@@ -17058,13 +17054,10 @@ Crouton.prototype.setConfig = function(config) {
17058
17054
  }
17059
17055
  }
17060
17056
 
17061
- if (self.config["view_by"] === "weekday") {
17057
+ if (self.config["view_by"].endsWith('day')) {
17062
17058
  self.config["include_weekday_button"] = true;
17063
17059
  }
17064
-
17065
- if (!self.config["has_tabs"]) {
17066
- self.config["view_by"] = "byday";
17067
- }
17060
+ self.currentView = self.config["view_by"];
17068
17061
 
17069
17062
  if (self.config["template_path"] == null) {
17070
17063
  self.config["template_path"] = "templates"
@@ -17234,6 +17227,11 @@ Crouton.prototype.searchMap = function() {
17234
17227
  }
17235
17228
  Crouton.prototype.render = function(doMeetingMap = false) {
17236
17229
  var self = this;
17230
+
17231
+ if (!self.config.map_search) {
17232
+ self.config.button_filters = self.config.button_filters.filter((b) => !b.field.startsWith('distance'));
17233
+ if (self.config['view_by'] == 'distance') self.config['view_by'] = 'weekday';
17234
+ }
17237
17235
  self.lock(function() {
17238
17236
  var body = jQuery("body");
17239
17237
  if (self.config['theme'] !== '') {
@@ -17297,6 +17295,7 @@ Crouton.prototype.render = function(doMeetingMap = false) {
17297
17295
 
17298
17296
  for (var f = 0; f < self.config.button_filters.length; f++) {
17299
17297
  var groupByName = self.config.button_filters[f]['field'];
17298
+ if (groupByName.startsWith('distance')) continue;
17300
17299
  var groupByData = getUniqueValuesOfKey(daysOfTheWeekMeetings, groupByName).sort();
17301
17300
  for (var i = 0; i < groupByData.length; i++) {
17302
17301
  var groupByMeetings = daysOfTheWeekMeetings.filterByObjectKeyValue(groupByName, groupByData[i]);
@@ -17335,15 +17334,20 @@ Crouton.prototype.render = function(doMeetingMap = false) {
17335
17334
 
17336
17335
  var buttonFiltersDataSorted = {};
17337
17336
  for (var b = 0; b < self.config.button_filters.length; b++) {
17338
- var sortKey = [];
17339
17337
  var groupByName = self.config.button_filters[b]['field'];
17338
+ buttonFiltersDataSorted[groupByName] = {};
17339
+ if (groupByName.startsWith('distance')) {
17340
+ buttonFiltersDataSorted[groupByName]['Sorted by Distance'] = [...self.meetingData].sort((a,b) => a['distance_in_km'] - b['distance_in_km']);
17341
+ continue;
17342
+ }
17343
+ var sortKey = [];
17344
+
17340
17345
  for (var buttonFiltersDataItem in buttonFiltersData[groupByName]) {
17341
17346
  sortKey.push(buttonFiltersDataItem);
17342
17347
  }
17343
17348
 
17344
17349
  sortKey.sort();
17345
17350
 
17346
- buttonFiltersDataSorted[groupByName] = {};
17347
17351
  for (var s = 0; s < sortKey.length; s++) {
17348
17352
  buttonFiltersDataSorted[groupByName][sortKey[s]] = buttonFiltersData[groupByName][sortKey[s]]
17349
17353
  }
@@ -17474,35 +17478,20 @@ Crouton.prototype.render = function(doMeetingMap = false) {
17474
17478
  });
17475
17479
 
17476
17480
  jQuery('.filter-dropdown').on('select2:select', function (e) {
17477
- jQuery('.bmlt-page:not(#byfield_embeddedMapPage)').each(function () {
17478
- self.hidePage(this);
17479
- });
17480
17481
  self.filteredPage();
17481
- if (!self.filtering) self.showView(self.config['view_by'] === 'byday' ? 'byday' : 'day');
17482
17482
  });
17483
17483
 
17484
17484
  jQuery("#day").on('click', function () {
17485
- self.showView(self.config['view_by'] === 'byday' ? 'byday' : 'day');
17485
+ self.showView('day');
17486
17486
  });
17487
17487
 
17488
17488
  jQuery(".filterButtonLogic").on('click', function (e) {
17489
- self.filteredView(e.target.attributes['data-field'].value);
17490
- });
17491
- jQuery(".displayTypeLogic").on('click', function (e) {
17492
- jQuery(".displayTypeLogic").each(function() {
17493
- if (e.target == this) jQuery(this).addClass("hide");
17494
- else jQuery(this).removeClass("hide");
17495
- })
17496
- });
17497
- jQuery('#displayTypeButton_tablePages').on('click', function (e) {
17498
- self.hidePage('#byfield_embeddedMapPage');
17499
- const knt = self.showingNowCount ? self.showingNowCount : self.meetingData.length;
17500
- self.showFilteredMeetingsAsTable(knt);
17489
+ self.showView(e.target.attributes['data-field'].value.toLowerCase());
17501
17490
  });
17502
17491
  jQuery('#filterButton_embeddedMapPage').on('click', function (e) {
17503
- self.filteredView(e.target.attributes['data-field'].value, false);
17504
- croutonMap.showMap(false,false);
17492
+ self.showView('map')
17505
17493
  });
17494
+ /****
17506
17495
  jQuery('.custom-ul').on('click', 'a', function (event) {
17507
17496
  jQuery('.bmlt-page').each(function (index) {
17508
17497
  self.hidePage("#" + this.id);
@@ -17510,7 +17499,7 @@ Crouton.prototype.render = function(doMeetingMap = false) {
17510
17499
  return;
17511
17500
  });
17512
17501
  });
17513
-
17502
+ */
17514
17503
  if (self.config['has_tabs']) {
17515
17504
  jQuery('.nav-tabs a').on('click', function (e) {
17516
17505
  e.preventDefault();
@@ -17526,17 +17515,12 @@ Crouton.prototype.render = function(doMeetingMap = false) {
17526
17515
 
17527
17516
  self.showPage(".bmlt-header");
17528
17517
  self.showPage(".bmlt-tabs");
17529
- self.showView(self.config['view_by'], false);
17530
17518
 
17531
17519
  if (self.config['default_filter_dropdown'] !== "") {
17532
17520
  var filter = self.config['default_filter_dropdown'].toLowerCase().split("=");
17533
17521
  jQuery("#filter-dropdown-" + filter[0]).val('a-' + filter[1]).trigger('change').trigger('select2:select');
17534
17522
  }
17535
17523
 
17536
- if (self.config['show_distance']) {
17537
- self.getCurrentLocation(self.showLocation);
17538
- }
17539
-
17540
17524
  if (self.config['show_map'] && !self.config['refresh_map'] && !doMeetingMap) {
17541
17525
  croutonMap.initialize(self.createBmltMapElement(), self.meetingData);
17542
17526
  jQuery("#bmlt-map").removeClass("hide");
@@ -17550,6 +17534,9 @@ Crouton.prototype.render = function(doMeetingMap = false) {
17550
17534
  if (self.config['refresh_map']) {
17551
17535
  croutonMap.refreshMeetings(self.meetingData, true, true);
17552
17536
  }
17537
+ if (self.config['view_by'] == 'map' && !self.config['map_page'])
17538
+ self.config['view_by'] = 'day';
17539
+ self.showView(self.config['view_by'], self.meetingData.length);
17553
17540
  if (self.config['on_complete'] != null && isFunction(self.config['on_complete'])) {
17554
17541
  self.config['on_complete']();
17555
17542
  }
@@ -17557,13 +17544,12 @@ Crouton.prototype.render = function(doMeetingMap = false) {
17557
17544
  });
17558
17545
  });
17559
17546
  Crouton.prototype.forceShowMap = function() {
17560
- if (self.config.map_page && jQuery('#byfield_embeddedMapPage').hasClass('hide')) {
17561
- jQuery('#filterButton_embeddedMapPage').click();
17547
+ if (this.config.map_page && jQuery('#byfield_embeddedMapPage').hasClass('hide')) {
17548
+ this.mapView();
17562
17549
  }
17563
17550
  }
17564
17551
  };
17565
17552
 
17566
-
17567
17553
  function getTrueResult(options, ctx) {
17568
17554
  return options.fn !== undefined ? options.fn(ctx) : true;
17569
17555
  }
@@ -17841,7 +17827,7 @@ function getUniqueFormats(array){
17841
17827
  return array.reduce(function(carry, val){
17842
17828
  if (!(val.formats_expanded)) return carry;
17843
17829
  return carry.concat(val.formats_expanded.filter((item) => carry.map(f => f.key).indexOf(item.key) < 0));
17844
- },[]);
17830
+ },[]).sortByKey('name');
17845
17831
  }
17846
17832
  function getUniqueFormatsOfType(array, type){
17847
17833
  return array.reduce(function(carry, val){
@@ -17851,7 +17837,7 @@ function getUniqueFormatsOfType(array, type){
17851
17837
  carry = carry.concat(fmts.filter((item) => carry.map(f => f.key).indexOf(item.key) < 0));
17852
17838
  }
17853
17839
  return carry;
17854
- },[]);
17840
+ },[]).sortByKey('name');
17855
17841
  }
17856
17842
  Crouton.prototype.renderMeetingCount = function() {
17857
17843
  var self = this;
@@ -17865,8 +17851,6 @@ Crouton.prototype.simulateFilterDropdown = function() {
17865
17851
  self.hidePage(this);
17866
17852
  });
17867
17853
  self.filteredPage();
17868
- if (!self.filtering && !self.config.map_page)
17869
- self.showView(self.config['view_by'] === 'byday' ? 'byday' : 'day', false);
17870
17854
  }
17871
17855
  Crouton.prototype.getAdjustedDateTime = function(meeting_day, meeting_time, meeting_time_zone) {
17872
17856
  var timeZoneAware = this.config['auto_tz_adjust'] === true || this.config['auto_tz_adjust'] === "true";
@@ -18073,7 +18057,7 @@ function MeetingMap(inConfig) {
18073
18057
  * \brief Load the map and set it up. *
18074
18058
  ****************************************************************************************/
18075
18059
 
18076
- function loadMap(inDiv, menuContext, handlebarMapOptions=null,cb=null) {
18060
+ function loadMap(inDiv, menuContext, handlebarMapOptions=null,cb=null,hide=false) {
18077
18061
  if (inDiv) {
18078
18062
  crouton_Handlebars.registerPartial("markerContentsTemplate", config['marker_contents_template']);
18079
18063
  gInDiv = inDiv;
@@ -18093,7 +18077,7 @@ function MeetingMap(inConfig) {
18093
18077
  }
18094
18078
  let loc = {latitude: config.lat, longitude: config.lng, zoom: config.zoom};
18095
18079
  if (handlebarMapOptions) loc = {latitude: handlebarMapOptions.lat, longitude: handlebarMapOptions.lng};
18096
- if (gDelegate.createMap(inDiv, loc)) {
18080
+ if (gDelegate.createMap(inDiv, loc, hide)) {
18097
18081
  gDelegate.addListener('zoomend', function (ev) {
18098
18082
  if (shouldRedrawMarkers() && gAllMeetings) {
18099
18083
  if (listOnlyVisible) {
@@ -18119,12 +18103,19 @@ function MeetingMap(inConfig) {
18119
18103
  };
18120
18104
  };
18121
18105
  var gSearchModal;
18122
- function createSearchButton(menuContext) {
18123
- var template = hbs_Crouton.templates['mapSearch'];
18124
- var controlDiv = document.createElement('div');
18125
- controlDiv.innerHTML = template();
18106
+ function createSearchButton() {
18107
+ const template = hbs_Crouton.templates['mapSearch'];
18108
+ const controlDiv = document.createElement('div');
18109
+ const params = {'hasClickSearch': gDelegate.hasClickSearch()}
18110
+ controlDiv.innerHTML = template(params);
18126
18111
  controlDiv.querySelector("#map-search-button").addEventListener('click', showBmltSearchDialog);
18127
18112
  controlDiv.querySelector("#bmltsearch-nearbyMeetings").addEventListener('click', nearMeSearch);
18113
+ controlDiv.querySelector("#bmltsearch-goto-text").addEventListener('keypress', function (event) {
18114
+ if (event.key === "Enter") {
18115
+ event.preventDefault();
18116
+ document.getElementById("bmltsearch-text-button").click();
18117
+ }
18118
+ });
18128
18119
  controlDiv.querySelector("#bmltsearch-text-button").addEventListener('click', function () {
18129
18120
  let text = document.getElementById("bmltsearch-goto-text").value.trim();
18130
18121
  if (text === "") return;
@@ -18132,7 +18123,35 @@ function MeetingMap(inConfig) {
18132
18123
  gDelegate.callGeocoder(text, null, mapSearchGeocode);
18133
18124
  closeModalWindow(gSearchModal);
18134
18125
  });
18135
- controlDiv.querySelector("#bmltsearch-clicksearch").addEventListener('click', clickSearch);
18126
+ controlDiv.querySelector("#modal-seach-parameters").style.display = 'none';
18127
+ controlDiv.querySelector("#show-search-parameters").addEventListener('click', function (e) {
18128
+ const controlDiv = e.target.parentElement.parentElement;
18129
+ let w = config.map_search.width;
18130
+ let checked = '#search_radius';
18131
+ if (w < 0) {
18132
+ w = -w;
18133
+ checked = '#search_count';
18134
+ }
18135
+ controlDiv.querySelector(checked).checked = true;
18136
+ controlDiv.querySelector('#search_parameter').value = w;
18137
+ controlDiv.querySelector("#modal-seach-parameters").style.display = 'block';
18138
+ controlDiv.querySelector("#modal-search-page").style.display = 'none';
18139
+ controlDiv.querySelector("#search_radius_label").innerHTML = crouton.localization.getWord('Radius of search in $$').replace('$$', crouton.config.distance_units);
18140
+ });
18141
+ controlDiv.querySelector("#show-search-page").addEventListener('click', function (e) {
18142
+ const controlDiv = e.target.parentElement.parentElement;
18143
+ let w = controlDiv.querySelector('#search_parameter').value;
18144
+ if (controlDiv.querySelector('#search_count')) {
18145
+ w = -Math.round(w);
18146
+ if (w == 0) w = -1;
18147
+ }
18148
+ config.map_search.width = w;
18149
+ controlDiv.querySelector("#modal-seach-parameters").style.display = 'none';
18150
+ controlDiv.querySelector("#modal-search-page").style.display = 'block';
18151
+ });
18152
+
18153
+
18154
+ if (gDelegate.hasClickSearch()) controlDiv.querySelector("#bmltsearch-clicksearch").addEventListener('click', clickSearch);
18136
18155
  [...controlDiv.getElementsByClassName('modal-close')].forEach((elem)=>elem.addEventListener('click', (e)=>closeModalWindow(e.target)));
18137
18156
  gSearchModal = controlDiv.querySelector("#bmltsearch_modal");
18138
18157
  gSearchModal.parentElement.removeChild(gSearchModal);
@@ -18227,14 +18246,14 @@ function MeetingMap(inConfig) {
18227
18246
  function hasMapSearch() {
18228
18247
  return 'map_search' in config;
18229
18248
  }
18230
- function loadFromCrouton(inDiv_id, meetings_responseObject, menuContext = null, handlebarMapOptions = null, fitBounds = true, callback) {
18249
+ function loadFromCrouton(inDiv_id, meetings_responseObject, menuContext = null, handlebarMapOptions = null, fitBounds = true, callback, hide) {
18231
18250
  if (!gDelegate.isApiLoaded()) {
18232
- preloadApiLoadedCallback(loadFromCrouton, [inDiv_id, meetings_responseObject, menuContext, handlebarMapOptions, fitBounds, callback]);
18251
+ preloadApiLoadedCallback(loadFromCrouton, [inDiv_id, meetings_responseObject, menuContext, handlebarMapOptions, fitBounds, callback, hide]);
18233
18252
  gDelegate.loadApi();
18234
18253
  return;
18235
18254
  }
18236
18255
  let inDiv = document.getElementById(inDiv_id);
18237
- loadMap(inDiv, menuContext, handlebarMapOptions,callback);
18256
+ loadMap(inDiv, menuContext, handlebarMapOptions, callback, hide);
18238
18257
  loadAllMeetings(meetings_responseObject, fitBounds, true);
18239
18258
  };
18240
18259
  function loadPopupMap(inDiv_id, meeting, handlebarMapOptions = null) {
@@ -18309,10 +18328,14 @@ function MeetingMap(inConfig) {
18309
18328
  };
18310
18329
  };
18311
18330
  function mapSearchGeocode(resp) {
18312
- let latlng = gDelegate.getGeocodeCenter(resp);
18331
+ showThrobber();
18313
18332
  if (document.getElementById("bmltsearch-goto-text"))
18314
18333
  document.getElementById("bmltsearch-goto-text").value = "";
18315
- showThrobber();
18334
+ let latlng = gDelegate.getGeocodeCenter(resp);
18335
+ if (!latlng) {
18336
+ hideThrobber();
18337
+ return;
18338
+ }
18316
18339
  crouton.searchByCoordinates(latlng.lat, latlng.lng, config.map_search.width);
18317
18340
  }
18318
18341
  function loadAllMeetings(meetings_responseObject, fitBounds=true, fitAll=false) {
@@ -18498,6 +18521,7 @@ function MeetingMap(inConfig) {
18498
18521
  return false;
18499
18522
  }
18500
18523
  function drawMarkers(expand = false) {
18524
+ if (!gDelegate.hasClickSearch()) return;
18501
18525
  gDelegate.clearAllMarkers();
18502
18526
  gDelegate.removeClusterLayer();
18503
18527
  // This calculates which markers are the red "multi" markers.
@@ -18795,7 +18819,14 @@ function MapDelegate(in_config) {
18795
18819
  var firstScriptTag = document.getElementsByTagName('script')[0];
18796
18820
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
18797
18821
  };
18798
- function createMap(inDiv, inCenter) {
18822
+ function createMap(inDiv, inCenter, inHidden = false) {
18823
+ if ( inHidden ) {
18824
+ gDiv = inDiv;
18825
+ gDiv.style.height = 'auto';
18826
+ gDiv.style.marginBottom = '10px';
18827
+ gMainMap = null;
18828
+ return gDiv;
18829
+ }
18799
18830
  g_icon_image_single = new google.maps.MarkerImage ( config.BMLTPlugin_images+"/NAMarker.png", new google.maps.Size(23, 32), new google.maps.Point(0,0), new google.maps.Point(12, 32) );
18800
18831
  g_icon_image_multi = new google.maps.MarkerImage ( config.BMLTPlugin_images+"/NAMarkerG.png", new google.maps.Size(23, 32), new google.maps.Point(0,0), new google.maps.Point(12, 32) );
18801
18832
  g_icon_image_selected = new google.maps.MarkerImage ( config.BMLTPlugin_images+"/NAMarkerSel.png", new google.maps.Size(23, 32), new google.maps.Point(0,0), new google.maps.Point(12, 32) );
@@ -18835,6 +18866,7 @@ function MapDelegate(in_config) {
18835
18866
  return gMainMap;
18836
18867
  }
18837
18868
  function addListener(ev,f,once) {
18869
+ if (!gMainMap) return;
18838
18870
  var e = ev;
18839
18871
  switch (ev) {
18840
18872
  case "zoomend":
@@ -18850,9 +18882,11 @@ function MapDelegate(in_config) {
18850
18882
  }
18851
18883
  }
18852
18884
  function removeListener(f) {
18885
+ if (!gMainMap) return;
18853
18886
  f.remove();
18854
18887
  }
18855
18888
  function fitBounds(locations) {
18889
+ if (!gMainMap) return;
18856
18890
  google.maps.event.addListenerOnce(gMainMap, "bounds_changed", function () {
18857
18891
  gMainMap.setZoom(parseInt(Math.min(gMainMap.getZoom(), config.maxZoom)));
18858
18892
  });
@@ -18866,6 +18900,7 @@ function MapDelegate(in_config) {
18866
18900
  gMainMap.fitBounds(bounds);
18867
18901
  }
18868
18902
  function setViewToPosition(position, filterMeetings, f) {
18903
+ if (!gMainMap) return;
18869
18904
  var latlng = new google.maps.LatLng(position.latitude, position.longitude);
18870
18905
  gMainMap.setCenter(latlng);
18871
18906
  gMainMap.setZoom(getZoomAdjust(false, filterMeetings));
@@ -18873,6 +18908,7 @@ function MapDelegate(in_config) {
18873
18908
  }
18874
18909
  function clearAllMarkers ()
18875
18910
  {
18911
+ if (!gMainMap) return;
18876
18912
  gAllMarkers && gAllMarkers.forEach(function(m) {
18877
18913
  m && m.marker.info_win && gAllMarkers[c].marker.info_win_.close();
18878
18914
  m.marker.setMap( null );
@@ -18918,34 +18954,42 @@ function MapDelegate(in_config) {
18918
18954
  return ret;
18919
18955
  }
18920
18956
  function setZoom(filterMeetings, force=0) {
18957
+ if (!gMainMap) return;
18921
18958
  (force > 0) ? gMainMap.setZoom(force) :
18922
18959
  gMainMap.setZoom(getZoomAdjust(false,filterMeetings));
18923
18960
  }
18924
18961
  function getZoom() {
18962
+ if (!gMainMap) return 12;
18925
18963
  return gMainMap.getZoom();
18926
18964
  }
18927
18965
  function zoomOut(filterMeetings) {
18966
+ if (!gMainMap) return;
18928
18967
  gMainMap.setZoom(getZoomAdjust(true,filterMeetings));
18929
18968
  }
18930
18969
  function contains(bounds, lat, lng) {
18970
+ if (!gMainMap) return true;
18931
18971
  return bounds.contains(new google.maps.LatLng ( lat, lng));
18932
18972
  }
18933
18973
  function getBounds() {
18974
+ if (!gMainMap) return null;
18934
18975
  return gMainMap.getBounds();
18935
18976
  }
18936
18977
  function fromLatLngToPoint(lat, lng) {
18978
+ if (!gMainMap) return null;
18937
18979
  var latLng = new google.maps.LatLng ( lat, lng);
18938
18980
  var scale = 1 << gMainMap.getZoom();
18939
18981
  var worldPoint = gMainMap.getProjection().fromLatLngToPoint(latLng);
18940
18982
  return new google.maps.Point(worldPoint.x * scale, worldPoint.y * scale);
18941
18983
  };
18942
18984
  function setZoom(filterMeetings) {
18985
+ if (!gMainMap) return;
18943
18986
  gMainMap.setZoom(getZoomAdjust(false,filterMeetings));
18944
18987
  }
18945
18988
  function createClusterLayer() {
18946
18989
  gIsClustering = true;
18947
18990
  }
18948
18991
  function removeClusterLayer() {
18992
+ if (!gMainMap) return;
18949
18993
  gIsClustering =false;
18950
18994
  gMarkerClusterer && gMarkerClusterer.setMap(null);
18951
18995
  gMarkerClusterer = null;
@@ -18956,6 +19000,7 @@ function MapDelegate(in_config) {
18956
19000
  }
18957
19001
  }
18958
19002
  function addClusterLayer() {
19003
+ if (!gMainMap) return;
18959
19004
  let markers = gAllMarkers.map((m)=>m.marker);
18960
19005
  if (gIsClustering) {
18961
19006
  gMarkerClusterer = new markerClusterer.MarkerClusterer( { 'map': gMainMap, 'markers': markers, 'imagePath': 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'} );
@@ -19005,6 +19050,7 @@ function createMarker ( inCoords, ///< The long/lat for the marker.
19005
19050
  inIds
19006
19051
  )
19007
19052
  {
19053
+ if (!gMainMap) return;
19008
19054
  var in_main_icon = (multi ? g_icon_image_multi : g_icon_image_single)
19009
19055
  var marker = null;
19010
19056
 
@@ -19049,6 +19095,10 @@ function createMarker ( inCoords, ///< The long/lat for the marker.
19049
19095
  gAllMarkers[gAllMarkers.length] = {ids: inIds, marker: marker};
19050
19096
  };
19051
19097
  function addControl(div,pos,cb) {
19098
+ if (!gMainMap) {
19099
+ gDiv.appendChild(div);
19100
+ return;
19101
+ }
19052
19102
  var p = pos;
19053
19103
  switch(pos) {
19054
19104
  case 'topright':
@@ -19080,10 +19130,12 @@ function addControl(div,pos,cb) {
19080
19130
  * \brief This catches the AJAX response, and fills in the response form. *
19081
19131
  ****************************************************************************************/
19082
19132
  function fitAndZoom(ev) {
19133
+ if (!gMainMap) return;
19083
19134
  gMainMap.fitBounds(this.response[0].geometry.viewport);
19084
19135
  gMainMap.setZoom(getZoomAdjust(true,this.filterMeetings));
19085
19136
  }
19086
19137
  function openMarker(id) {
19138
+ if (!gMainMap) return;
19087
19139
  marker = gAllMarkers.find((m) => m.ids.includes(id));
19088
19140
  if (marker) {
19089
19141
  google.maps.event.trigger(marker.marker, 'click')
@@ -19137,6 +19189,7 @@ function geoCallback( in_geocode_response ) {
19137
19189
  function invalidateSize() {
19138
19190
  }
19139
19191
  function clickSearch(ev, cb) {
19192
+ if (!gMainMap) return;
19140
19193
  gMainMap.setOptions({
19141
19194
  draggableCursor: 'crosshair',
19142
19195
  zoomControl: false,
@@ -19152,11 +19205,15 @@ function geoCallback( in_geocode_response ) {
19152
19205
  })
19153
19206
  };
19154
19207
  function afterInit(f) {
19208
+ if (!gMainMap) return;
19155
19209
  if (typeof gMainMap.getBounds() !== 'undefined') f();
19156
19210
  else addListener('idle', f, true);
19157
19211
  }
19158
19212
  function modalOn() {}
19159
19213
  function modalOff() {}
19214
+ function hasClickSearch() {
19215
+ return gMainMap != null;
19216
+ }
19160
19217
  this.createMap = createMap;
19161
19218
  this.addListener = addListener;
19162
19219
  this.addControl = addControl;
@@ -19184,6 +19241,7 @@ function geoCallback( in_geocode_response ) {
19184
19241
  this.modalOff = modalOff;
19185
19242
  this.removeListener = removeListener;
19186
19243
  this.afterInit = afterInit;
19244
+ this.hasClickSearch = hasClickSearch;
19187
19245
  }
19188
19246
  MapDelegate.prototype.createMap = null;
19189
19247
  MapDelegate.prototype.addListener = null;
@@ -19212,6 +19270,7 @@ MapDelegate.prototype.getGeocodeCenter = null;
19212
19270
  MapDelegate.prototype.modalOn = null;
19213
19271
  MapDelegate.prototype.modalOff = null;
19214
19272
  MapDelegate.prototype.afterInit = null;
19273
+ MapDelegate.prototype.hasClickSearch = null;
19215
19274
  var markerClusterer=function(t){"use strict";function e(t,e){var s={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(s[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(t);o<r.length;o++)e.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(t,r[o])&&(s[r[o]]=t[r[o]])}return s}class s{static isAdvancedMarkerAvailable(t){return google.maps.marker&&!0===t.getMapCapabilities().isAdvancedMarkersAvailable}static isAdvancedMarker(t){return google.maps.marker&&t instanceof google.maps.marker.AdvancedMarkerElement}static setMap(t,e){this.isAdvancedMarker(t)?t.map=e:t.setMap(e)}static getPosition(t){if(this.isAdvancedMarker(t)){if(t.position){if(t.position instanceof google.maps.LatLng)return t.position;if(t.position.lat&&t.position.lng)return new google.maps.LatLng(t.position.lat,t.position.lng)}return new google.maps.LatLng(null)}return t.getPosition()}static getVisible(t){return!!this.isAdvancedMarker(t)||t.getVisible()}}class r{constructor(t){let{markers:e,position:s}=t;this.markers=e,s&&(s instanceof google.maps.LatLng?this._position=s:this._position=new google.maps.LatLng(s))}get bounds(){if(0===this.markers.length&&!this._position)return;const t=new google.maps.LatLngBounds(this._position,this._position);for(const e of this.markers)t.extend(s.getPosition(e));return t}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter((t=>s.getVisible(t))).length}push(t){this.markers.push(t)}delete(){this.marker&&(s.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}const o=(t,e,r,o)=>{const n=i(t.getBounds(),e,o);return r.filter((t=>n.contains(s.getPosition(t))))},i=(t,e,s)=>{const{northEast:r,southWest:o}=h(t,e),i=l({northEast:r,southWest:o},s);return c(i,e)},n=(t,e,s)=>{const r=i(t,e,s),o=r.getNorthEast(),n=r.getSouthWest();return[n.lng(),n.lat(),o.lng(),o.lat()]},a=(t,e)=>{const s=(e.lat-t.lat)*Math.PI/180,r=(e.lng-t.lng)*Math.PI/180,o=Math.sin(s/2),i=Math.sin(r/2),n=o*o+Math.cos(t.lat*Math.PI/180)*Math.cos(e.lat*Math.PI/180)*i*i;return 6371*(2*Math.atan2(Math.sqrt(n),Math.sqrt(1-n)))},h=(t,e)=>({northEast:e.fromLatLngToDivPixel(t.getNorthEast()),southWest:e.fromLatLngToDivPixel(t.getSouthWest())}),l=(t,e)=>{let{northEast:s,southWest:r}=t;return s.x+=e,s.y-=e,r.x-=e,r.y+=e,{northEast:s,southWest:r}},c=(t,e)=>{let{northEast:s,southWest:r}=t;const o=e.fromDivPixelToLatLng(r),i=e.fromDivPixelToLatLng(s);return new google.maps.LatLngBounds(o,i)};class u{constructor(t){let{maxZoom:e=16}=t;this.maxZoom=e}noop(t){let{markers:e}=t;return m(e)}}class p extends u{constructor(t){var{viewportPadding:s=60}=t;super(e(t,["viewportPadding"])),this.viewportPadding=60,this.viewportPadding=s}calculate(t){let{markers:e,map:s,mapCanvasProjection:r}=t;return s.getZoom()>=this.maxZoom?{clusters:this.noop({markers:e}),changed:!1}:{clusters:this.cluster({markers:o(s,r,e,this.viewportPadding),map:s,mapCanvasProjection:r})}}}const m=t=>t.map((t=>new r({position:s.getPosition(t),markers:[t]})));function d(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var g=function t(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var r,o,i;if(Array.isArray(e)){if((r=e.length)!=s.length)return!1;for(o=r;0!=o--;)if(!t(e[o],s[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===s.toString();if((r=(i=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(s,i[o]))return!1;for(o=r;0!=o--;){var n=i[o];if(!t(e[n],s[n]))return!1}return!0}return e!=e&&s!=s},f=d(g);const k=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class w{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[e,s]=new Uint8Array(t,0,2);if(219!==e)throw new Error("Data does not appear to be in a KDBush format.");const r=s>>4;if(1!==r)throw new Error(`Got v${r} data when expected v1.`);const o=k[15&s];if(!o)throw new Error("Unrecognized array type.");const[i]=new Uint16Array(t,2,1),[n]=new Uint32Array(t,4,1);return new w(n,i,o,t)}constructor(t,e=64,s=Float64Array,r){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+e,2),65535),this.ArrayType=s,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const o=k.indexOf(this.ArrayType),i=2*t*this.ArrayType.BYTES_PER_ELEMENT,n=t*this.IndexArrayType.BYTES_PER_ELEMENT,a=(8-n%8)%8;if(o<0)throw new Error(`Unexpected typed array class: ${s}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+n+a,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+i+n+a),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+n+a,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+o]),new Uint16Array(this.data,2,1)[0]=e,new Uint32Array(this.data,4,1)[0]=t)}add(t,e){const s=this._pos>>1;return this.ids[s]=s,this.coords[this._pos++]=t,this.coords[this._pos++]=e,s}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return y(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,e,s,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:o,coords:i,nodeSize:n}=this,a=[0,o.length-1,0],h=[];for(;a.length;){const l=a.pop()||0,c=a.pop()||0,u=a.pop()||0;if(c-u<=n){for(let n=u;n<=c;n++){const a=i[2*n],l=i[2*n+1];a>=t&&a<=s&&l>=e&&l<=r&&h.push(o[n])}continue}const p=u+c>>1,m=i[2*p],d=i[2*p+1];m>=t&&m<=s&&d>=e&&d<=r&&h.push(o[p]),(0===l?t<=m:e<=d)&&(a.push(u),a.push(p-1),a.push(1-l)),(0===l?s>=m:r>=d)&&(a.push(p+1),a.push(c),a.push(1-l))}return h}within(t,e,s){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:o,nodeSize:i}=this,n=[0,r.length-1,0],a=[],h=s*s;for(;n.length;){const l=n.pop()||0,c=n.pop()||0,u=n.pop()||0;if(c-u<=i){for(let s=u;s<=c;s++)C(o[2*s],o[2*s+1],t,e)<=h&&a.push(r[s]);continue}const p=u+c>>1,m=o[2*p],d=o[2*p+1];C(m,d,t,e)<=h&&a.push(r[p]),(0===l?t-s<=m:e-s<=d)&&(n.push(u),n.push(p-1),n.push(1-l)),(0===l?t+s>=m:e+s>=d)&&(n.push(p+1),n.push(c),n.push(1-l))}return a}}function y(t,e,s,r,o,i){if(o-r<=s)return;const n=r+o>>1;M(t,e,n,r,o,i),y(t,e,s,r,n-1,1-i),y(t,e,s,n+1,o,1-i)}function M(t,e,s,r,o,i){for(;o>r;){if(o-r>600){const n=o-r+1,a=s-r+1,h=Math.log(n),l=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*l*(n-l)/n)*(a-n/2<0?-1:1);M(t,e,s,Math.max(r,Math.floor(s-a*l/n+c)),Math.min(o,Math.floor(s+(n-a)*l/n+c)),i)}const n=e[2*s+i];let a=r,h=o;for(v(t,e,r,s),e[2*o+i]>n&&v(t,e,r,o);a<h;){for(v(t,e,a,h),a++,h--;e[2*a+i]<n;)a++;for(;e[2*h+i]>n;)h--}e[2*r+i]===n?v(t,e,r,h):(h++,v(t,e,h,o)),h<=s&&(r=h+1),s<=h&&(o=h-1)}}function v(t,e,s,r){x(t,s,r),x(e,2*s,2*r),x(e,2*s+1,2*r+1)}function x(t,e,s){const r=t[e];t[e]=t[s],t[s]=r}function C(t,e,s,r){const o=t-s,i=e-r;return o*o+i*i}const P={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:t=>t},_=Math.fround||(E=new Float32Array(1),t=>(E[0]=+t,E[0]));var E;const A=3,b=5,L=6;class O{constructor(t){this.options=Object.assign(Object.create(P),t),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(t){const{log:e,minZoom:s,maxZoom:r}=this.options;e&&console.time("total time");const o=`prepare ${t.length} points`;e&&console.time(o),this.points=t;const i=[];for(let e=0;e<t.length;e++){const s=t[e];if(!s.geometry)continue;const[r,o]=s.geometry.coordinates,n=_(T(r)),a=_(j(o));i.push(n,a,1/0,e,-1,1),this.options.reduce&&i.push(0)}let n=this.trees[r+1]=this._createTree(i);e&&console.timeEnd(o);for(let t=r;t>=s;t--){const s=+Date.now();n=this.trees[t]=this._createTree(this._cluster(n,t)),e&&console.log("z%d: %d clusters in %dms",t,n.numItems,+Date.now()-s)}return e&&console.timeEnd("total time"),this}getClusters(t,e){let s=((t[0]+180)%360+360)%360-180;const r=Math.max(-90,Math.min(90,t[1]));let o=180===t[2]?180:((t[2]+180)%360+360)%360-180;const i=Math.max(-90,Math.min(90,t[3]));if(t[2]-t[0]>=360)s=-180,o=180;else if(s>o){const t=this.getClusters([s,r,180,i],e),n=this.getClusters([-180,r,o,i],e);return t.concat(n)}const n=this.trees[this._limitZoom(e)],a=n.range(T(s),j(i),T(o),j(r)),h=n.data,l=[];for(const t of a){const e=this.stride*t;l.push(h[e+b]>1?Z(h,e,this.clusterProps):this.points[h[e+A]])}return l}getChildren(t){const e=this._getOriginId(t),s=this._getOriginZoom(t),r="No cluster with the specified id.",o=this.trees[s];if(!o)throw new Error(r);const i=o.data;if(e*this.stride>=i.length)throw new Error(r);const n=this.options.radius/(this.options.extent*Math.pow(2,s-1)),a=i[e*this.stride],h=i[e*this.stride+1],l=o.within(a,h,n),c=[];for(const e of l){const s=e*this.stride;i[s+4]===t&&c.push(i[s+b]>1?Z(i,s,this.clusterProps):this.points[i[s+A]])}if(0===c.length)throw new Error(r);return c}getLeaves(t,e,s){e=e||10,s=s||0;const r=[];return this._appendLeaves(r,t,e,s,0),r}getTile(t,e,s){const r=this.trees[this._limitZoom(t)],o=Math.pow(2,t),{extent:i,radius:n}=this.options,a=n/i,h=(s-a)/o,l=(s+1+a)/o,c={features:[]};return this._addTileFeatures(r.range((e-a)/o,h,(e+1+a)/o,l),r.data,e,s,o,c),0===e&&this._addTileFeatures(r.range(1-a/o,h,1,l),r.data,o,s,o,c),e===o-1&&this._addTileFeatures(r.range(0,h,a/o,l),r.data,-1,s,o,c),c.features.length?c:null}getClusterExpansionZoom(t){let e=this._getOriginZoom(t)-1;for(;e<=this.options.maxZoom;){const s=this.getChildren(t);if(e++,1!==s.length)break;t=s[0].properties.cluster_id}return e}_appendLeaves(t,e,s,r,o){const i=this.getChildren(e);for(const e of i){const i=e.properties;if(i&&i.cluster?o+i.point_count<=r?o+=i.point_count:o=this._appendLeaves(t,i.cluster_id,s,r,o):o<r?o++:t.push(e),t.length===s)break}return o}_createTree(t){const e=new w(t.length/this.stride|0,this.options.nodeSize,Float32Array);for(let s=0;s<t.length;s+=this.stride)e.add(t[s],t[s+1]);return e.finish(),e.data=t,e}_addTileFeatures(t,e,s,r,o,i){for(const n of t){const t=n*this.stride,a=e[t+b]>1;let h,l,c;if(a)h=I(e,t,this.clusterProps),l=e[t],c=e[t+1];else{const s=this.points[e[t+A]];h=s.properties;const[r,o]=s.geometry.coordinates;l=T(r),c=j(o)}const u={type:1,geometry:[[Math.round(this.options.extent*(l*o-s)),Math.round(this.options.extent*(c*o-r))]],tags:h};let p;p=a||this.options.generateId?e[t+A]:this.points[e[t+A]].id,void 0!==p&&(u.id=p),i.features.push(u)}}_limitZoom(t){return Math.max(this.options.minZoom,Math.min(Math.floor(+t),this.options.maxZoom+1))}_cluster(t,e){const{radius:s,extent:r,reduce:o,minPoints:i}=this.options,n=s/(r*Math.pow(2,e)),a=t.data,h=[],l=this.stride;for(let s=0;s<a.length;s+=l){if(a[s+2]<=e)continue;a[s+2]=e;const r=a[s],c=a[s+1],u=t.within(a[s],a[s+1],n),p=a[s+b];let m=p;for(const t of u){const s=t*l;a[s+2]>e&&(m+=a[s+b])}if(m>p&&m>=i){let t,i=r*p,n=c*p,d=-1;const g=((s/l|0)<<5)+(e+1)+this.points.length;for(const r of u){const h=r*l;if(a[h+2]<=e)continue;a[h+2]=e;const c=a[h+b];i+=a[h]*c,n+=a[h+1]*c,a[h+4]=g,o&&(t||(t=this._map(a,s,!0),d=this.clusterProps.length,this.clusterProps.push(t)),o(t,this._map(a,h)))}a[s+4]=g,h.push(i/m,n/m,1/0,g,-1,m),o&&h.push(d)}else{for(let t=0;t<l;t++)h.push(a[s+t]);if(m>1)for(const t of u){const s=t*l;if(!(a[s+2]<=e)){a[s+2]=e;for(let t=0;t<l;t++)h.push(a[s+t])}}}}return h}_getOriginId(t){return t-this.points.length>>5}_getOriginZoom(t){return(t-this.points.length)%32}_map(t,e,s){if(t[e+b]>1){const r=this.clusterProps[t[e+L]];return s?Object.assign({},r):r}const r=this.points[t[e+A]].properties,o=this.options.map(r);return s&&o===r?Object.assign({},o):o}}function Z(t,e,s){return{type:"Feature",id:t[e+A],properties:I(t,e,s),geometry:{type:"Point",coordinates:[(r=t[e],360*(r-.5)),S(t[e+1])]}};var r}function I(t,e,s){const r=t[e+b],o=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r,i=t[e+L],n=-1===i?{}:Object.assign({},s[i]);return Object.assign(n,{cluster:!0,cluster_id:t[e+A],point_count:r,point_count_abbreviated:o})}function T(t){return t/360+.5}function j(t){const e=Math.sin(t*Math.PI/180),s=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return s<0?0:s>1?1:s}function S(t){const e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}class z extends u{constructor(t){var{maxZoom:s,radius:r=60}=t,o=e(t,["maxZoom","radius"]);super({maxZoom:s}),this.state={zoom:-1},this.superCluster=new O(Object.assign({maxZoom:this.maxZoom,radius:r},o))}calculate(t){let e=!1;const r={zoom:t.map.getZoom()};if(!f(t.markers,this.markers)){e=!0,this.markers=[...t.markers];const r=this.markers.map((t=>{const e=s.getPosition(t);return{type:"Feature",geometry:{type:"Point",coordinates:[e.lng(),e.lat()]},properties:{marker:t}}}));this.superCluster.load(r)}return e||(this.state.zoom<=this.maxZoom||r.zoom<=this.maxZoom)&&(e=!f(this.state,r)),this.state=r,e&&(this.clusters=this.cluster(t)),{clusters:this.clusters,changed:e}}cluster(t){let{map:e}=t;return this.superCluster.getClusters([-180,-90,180,90],Math.round(e.getZoom())).map((t=>this.transformCluster(t)))}transformCluster(t){let{geometry:{coordinates:[e,o]},properties:i}=t;if(i.cluster)return new r({markers:this.superCluster.getLeaves(i.cluster_id,1/0).map((t=>t.properties.marker)),position:{lat:o,lng:e}});const n=i.marker;return new r({markers:[n],position:s.getPosition(n)})}}class U{constructor(t,e){this.markers={sum:t.length};const s=e.map((t=>t.count)),r=s.reduce(((t,e)=>t+e),0);this.clusters={count:e.length,markers:{mean:r/e.length,sum:r,min:Math.min(...s),max:Math.max(...s)}}}}class B{render(t,e,r){let{count:o,position:i}=t;const n=`<svg fill="${o>Math.max(10,e.clusters.markers.mean)?"#ff0000":"#0000ff"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50">\n<circle cx="120" cy="120" opacity=".6" r="70" />\n<circle cx="120" cy="120" opacity=".3" r="90" />\n<circle cx="120" cy="120" opacity=".2" r="110" />\n<text x="50%" y="50%" style="fill:#fff" text-anchor="middle" font-size="50" dominant-baseline="middle" font-family="roboto,arial,sans-serif">${o}</text>\n</svg>`,a=`Cluster of ${o} markers`,h=Number(google.maps.Marker.MAX_ZINDEX)+o;if(s.isAdvancedMarkerAvailable(r)){const t=(new DOMParser).parseFromString(n,"image/svg+xml").documentElement;t.setAttribute("transform","translate(0 25)");const e={map:r,position:i,zIndex:h,title:a,content:t};return new google.maps.marker.AdvancedMarkerElement(e)}const l={position:i,zIndex:h,title:a,icon:{url:`data:image/svg+xml;base64,${btoa(n)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(l)}}class D{constructor(){!function(t,e){for(let s in e.prototype)t.prototype[s]=e.prototype[s]}(D,google.maps.OverlayView)}}var N;t.MarkerClustererEvents=void 0,(N=t.MarkerClustererEvents||(t.MarkerClustererEvents={})).CLUSTERING_BEGIN="clusteringbegin",N.CLUSTERING_END="clusteringend",N.CLUSTER_CLICK="click";const F=(t,e,s)=>{s.fitBounds(e.bounds)};return t.AbstractAlgorithm=u,t.AbstractViewportAlgorithm=p,t.Cluster=r,t.ClusterStats=U,t.DefaultRenderer=B,t.GridAlgorithm=class extends p{constructor(t){var{maxDistance:s=4e4,gridSize:r=40}=t;super(e(t,["maxDistance","gridSize"])),this.clusters=[],this.state={zoom:-1},this.maxDistance=s,this.gridSize=r}calculate(t){let{markers:e,map:s,mapCanvasProjection:r}=t;const i={zoom:s.getZoom()};let n=!1;return this.state.zoom>=this.maxZoom&&i.zoom>=this.maxZoom||(n=!f(this.state,i)),this.state=i,s.getZoom()>=this.maxZoom?{clusters:this.noop({markers:e}),changed:n}:{clusters:this.cluster({markers:o(s,r,e,this.viewportPadding),map:s,mapCanvasProjection:r})}}cluster(t){let{markers:e,map:s,mapCanvasProjection:r}=t;return this.clusters=[],e.forEach((t=>{this.addToClosestCluster(t,s,r)})),this.clusters}addToClosestCluster(t,e,o){let n=this.maxDistance,h=null;for(let e=0;e<this.clusters.length;e++){const r=this.clusters[e],o=a(r.bounds.getCenter().toJSON(),s.getPosition(t).toJSON());o<n&&(n=o,h=r)}if(h&&i(h.bounds,o,this.gridSize).contains(s.getPosition(t)))h.push(t);else{const e=new r({markers:[t]});this.clusters.push(e)}}},t.MarkerClusterer=class extends D{constructor(t){let{map:e,markers:s=[],algorithmOptions:r={},algorithm:o=new z(r),renderer:i=new B,onClusterClick:n=F}=t;super(),this.markers=[...s],this.clusters=[],this.algorithm=o,this.renderer=i,this.onClusterClick=n,e&&this.setMap(e)}addMarker(t,e){this.markers.includes(t)||(this.markers.push(t),e||this.render())}addMarkers(t,e){t.forEach((t=>{this.addMarker(t,!0)})),e||this.render()}removeMarker(t,e){const r=this.markers.indexOf(t);return-1!==r&&(s.setMap(t,null),this.markers.splice(r,1),e||this.render(),!0)}removeMarkers(t,e){let s=!1;return t.forEach((t=>{s=this.removeMarker(t,!0)||s})),s&&!e&&this.render(),s}clearMarkers(t){this.markers.length=0,t||this.render()}render(){const e=this.getMap();if(e instanceof google.maps.Map&&e.getProjection()){google.maps.event.trigger(this,t.MarkerClustererEvents.CLUSTERING_BEGIN,this);const{clusters:r,changed:o}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(o||null==o){const t=new Set;for(const e of r)1==e.markers.length&&t.add(e.markers[0]);const e=[];for(const r of this.clusters)null!=r.marker&&(1==r.markers.length?t.has(r.marker)||s.setMap(r.marker,null):e.push(r.marker));this.clusters=r,this.renderClusters(),requestAnimationFrame((()=>e.forEach((t=>s.setMap(t,null)))))}google.maps.event.trigger(this,t.MarkerClustererEvents.CLUSTERING_END,this)}}onAdd(){this.idleListener=this.getMap().addListener("idle",this.render.bind(this)),this.render()}onRemove(){google.maps.event.removeListener(this.idleListener),this.reset()}reset(){this.markers.forEach((t=>s.setMap(t,null))),this.clusters.forEach((t=>t.delete())),this.clusters=[]}renderClusters(){const e=new U(this.markers,this.clusters),r=this.getMap();this.clusters.forEach((o=>{1===o.markers.length?o.marker=o.markers[0]:(o.marker=this.renderer.render(o,e,r),o.markers.forEach((t=>s.setMap(t,null))),this.onClusterClick&&o.marker.addListener("click",(e=>{google.maps.event.trigger(this,t.MarkerClustererEvents.CLUSTER_CLICK,o),this.onClusterClick(e,o,r)}))),s.setMap(o.marker,r)}))}},t.MarkerUtils=s,t.NoopAlgorithm=class extends u{constructor(t){super(e(t,[]))}calculate(t){let{markers:e,map:s,mapCanvasProjection:r}=t;return{clusters:this.cluster({markers:e,map:s,mapCanvasProjection:r}),changed:!1}}cluster(t){return this.noop(t)}},t.SuperClusterAlgorithm=z,t.SuperClusterViewportAlgorithm=class extends p{constructor(t){var{maxZoom:s,radius:r=60,viewportPadding:o=60}=t,i=e(t,["maxZoom","radius","viewportPadding"]);super({maxZoom:s,viewportPadding:o}),this.superCluster=new O(Object.assign({maxZoom:this.maxZoom,radius:r},i)),this.state={zoom:-1,view:[0,0,0,0]}}calculate(t){const e={zoom:Math.round(t.map.getZoom()),view:n(t.map.getBounds(),t.mapCanvasProjection,this.viewportPadding)};let r=!f(this.state,e);if(!f(t.markers,this.markers)){r=!0,this.markers=[...t.markers];const e=this.markers.map((t=>{const e=s.getPosition(t);return{type:"Feature",geometry:{type:"Point",coordinates:[e.lng(),e.lat()]},properties:{marker:t}}}));this.superCluster.load(e)}return r&&(this.clusters=this.cluster(t),this.state=e),{clusters:this.clusters,changed:r}}cluster(t){let{map:e,mapCanvasProjection:s}=t;const r={zoom:Math.round(e.getZoom()),view:n(e.getBounds(),s,this.viewportPadding)};return this.superCluster.getClusters(r.view,r.zoom).map((t=>this.transformCluster(t)))}transformCluster(t){let{geometry:{coordinates:[e,o]},properties:i}=t;if(i.cluster)return new r({markers:this.superCluster.getLeaves(i.cluster_id,1/0).map((t=>t.properties.marker)),position:{lat:o,lng:e}});const n=i.marker;return new r({markers:[n],position:s.getPosition(n)})}},t.defaultOnClusterClickHandler=F,t.distanceBetweenPoints=a,t.extendBoundsToPaddedViewport=i,t.extendPixelBounds=l,t.filterMarkersToPaddedViewport=o,t.getPaddedViewport=n,t.noop=m,t.pixelBoundsToLatLngBounds=c,Object.defineProperty(t,"__esModule",{value:!0}),t}({});
19216
19275
  //# sourceMappingURL=index.min.js.map
19217
19276