blacklight_allmaps 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +107 -0
  3. data/.gitignore +20 -0
  4. data/.standard.yml +1 -0
  5. data/Gemfile +50 -0
  6. data/app/assets/images/blacklight_allmaps/.keep +0 -0
  7. data/app/assets/stylesheets/blacklight/allmaps/base.scss +4 -1
  8. data/app/assets/stylesheets/blacklight/allmaps/modules/leaflet.opacity.css +76 -0
  9. data/app/jobs/blacklight/allmaps/store_sidecar_annotation.rb +3 -0
  10. data/app/models/concerns/.keep +0 -0
  11. data/blacklight_allmaps.gemspec +34 -0
  12. data/doc/Proposal_Eric_Larson_Ian_Spangler_4CE510.pdf +0 -0
  13. data/doc/allmaps_branding_screenshot.png +0 -0
  14. data/doc/allmaps_screenshot.png +0 -0
  15. data/doc/allmaps_screenshot_window.png +0 -0
  16. data/doc/development.md +72 -0
  17. data/doc/gbl_screenshot.png +0 -0
  18. data/doc/gbl_screenshot_window.png +0 -0
  19. data/doc/georeferenced_facet.png +0 -0
  20. data/doc/screenshot_layers.acorn +0 -0
  21. data/doc/screenshot_layers.png +0 -0
  22. data/lib/blacklight/allmaps/tasks/index.rake +1 -0
  23. data/lib/blacklight/allmaps/version.rb +1 -1
  24. data/lib/blacklight/allmaps.rb +10 -2
  25. data/lib/generators/blacklight/allmaps/blacklight_generator.rb +9 -3
  26. data/lib/generators/blacklight/allmaps/config_generator.rb +7 -1
  27. data/lib/generators/blacklight/allmaps/geoblacklight_generator.rb +10 -1
  28. data/lib/generators/blacklight/allmaps/templates/package.json +6 -0
  29. data/package.json +43 -0
  30. data/rollup.config.js +43 -0
  31. data/solr/blacklight/conf/_rest_managed.json +3 -0
  32. data/solr/blacklight/conf/admin-extra.html +31 -0
  33. data/solr/blacklight/conf/elevate.xml +36 -0
  34. data/solr/blacklight/conf/mapping-ISOLatin1Accent.txt +246 -0
  35. data/solr/blacklight/conf/protwords.txt +21 -0
  36. data/solr/blacklight/conf/schema.xml +388 -0
  37. data/solr/blacklight/conf/scripts.conf +24 -0
  38. data/solr/blacklight/conf/solrconfig.xml +265 -0
  39. data/solr/blacklight/conf/spellings.txt +2 -0
  40. data/solr/blacklight/conf/stopwords.txt +58 -0
  41. data/solr/blacklight/conf/stopwords_en.txt +58 -0
  42. data/solr/blacklight/conf/synonyms.txt +31 -0
  43. data/solr/blacklight/conf/xslt/example.xsl +132 -0
  44. data/solr/blacklight/conf/xslt/example_atom.xsl +67 -0
  45. data/solr/blacklight/conf/xslt/example_rss.xsl +66 -0
  46. data/solr/blacklight/conf/xslt/luke.xsl +337 -0
  47. data/solr/geoblacklight/conf/_rest_managed.json +3 -0
  48. data/solr/geoblacklight/conf/admin-extra.html +31 -0
  49. data/solr/geoblacklight/conf/core.properties +5 -0
  50. data/solr/geoblacklight/conf/elevate.xml +36 -0
  51. data/solr/geoblacklight/conf/mapping-ISOLatin1Accent.txt +246 -0
  52. data/solr/geoblacklight/conf/protwords.txt +21 -0
  53. data/solr/geoblacklight/conf/schema.xml +198 -0
  54. data/solr/geoblacklight/conf/scripts.conf +24 -0
  55. data/solr/geoblacklight/conf/solrconfig.xml +243 -0
  56. data/solr/geoblacklight/conf/spellings.txt +2 -0
  57. data/solr/geoblacklight/conf/stopwords.txt +58 -0
  58. data/solr/geoblacklight/conf/stopwords_en.txt +58 -0
  59. data/solr/geoblacklight/conf/synonyms.txt +31 -0
  60. data/solr/geoblacklight/conf/xslt/example.xsl +132 -0
  61. data/solr/geoblacklight/conf/xslt/example_atom.xsl +67 -0
  62. data/solr/geoblacklight/conf/xslt/example_rss.xsl +66 -0
  63. data/solr/geoblacklight/conf/xslt/luke.xsl +337 -0
  64. data/spec/controllers/annotations_controller_spec.rb +74 -0
  65. data/spec/factories/annotations.rb +12 -0
  66. data/spec/features/show_page_spec.rb +35 -0
  67. data/spec/features/sidebar_spec.rb +28 -0
  68. data/spec/fixtures/blacklight_allmaps_sidecars.yml +1203 -0
  69. data/spec/fixtures/solr_documents/README.md +15 -0
  70. data/spec/fixtures/solr_documents/blacklight/README.md +9 -0
  71. data/spec/fixtures/solr_documents/blacklight/bl_georeferenced.json +40 -0
  72. data/spec/fixtures/solr_documents/geoblacklight/gbl_btaa_northwestern_georeferenced.json +57 -0
  73. data/spec/fixtures/solr_documents/geoblacklight/gbl_harvard-g4124-m2-1855-m3_georefereneced.json +68 -0
  74. data/spec/fixtures/solr_documents/geoblacklight/gbl_not_georeferenced.json +67 -0
  75. data/spec/fixtures/solr_documents/geoblacklight/gbl_osu-0r967h708_georeferenced.json +60 -0
  76. data/spec/fixtures/solr_documents/geoblacklight/gbl_p16022coll230:1933_georeferenced.json +60 -0
  77. data/spec/fixtures/solr_documents/geoblacklight/gbl_p16022coll230:360_georeferenced.json +67 -0
  78. data/spec/fixtures/solr_documents/geoblacklight/gbl_p16022coll230:4038_georeferenced.json +53 -0
  79. data/spec/helpers/blacklight/allmaps/application_helper_spec.rb +28 -0
  80. data/spec/models/blacklight/allmaps/sidecar_allmaps_spec.rb +22 -0
  81. data/spec/spec_helper.rb +53 -0
  82. data/spec/test_app_templates/Gemfile.extra +2 -0
  83. data/spec/test_app_templates/lib/generators/test_app_generator.rb +48 -0
  84. data/vendor/assets/images/fullscreen.png +0 -0
  85. data/vendor/assets/images/fullscreen@2x.png +0 -0
  86. data/vendor/assets/images/layers-2x.png +0 -0
  87. data/vendor/assets/images/layers.png +0 -0
  88. data/vendor/assets/images/marker-icon-2x.png +0 -0
  89. data/vendor/assets/images/marker-icon.png +0 -0
  90. data/vendor/assets/images/marker-shadow.png +0 -0
  91. data/vendor/assets/stylesheets/leaflet.css +640 -0
  92. data/vendor/assets/stylesheets/leaflet.fullscreen.css +40 -0
  93. metadata +85 -2
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators"
4
+
5
+ class TestAppGenerator < Rails::Generators::Base
6
+ source_root "./spec/test_app_templates"
7
+
8
+ # if you need to generate any additional configuration
9
+ # into the test app, this generator will be run immediately
10
+ # after setting up the application
11
+
12
+ def add_gems
13
+ gem "blacklight", "~> 7.0"
14
+
15
+ if ENV["LIGHT"] == "geoblacklight"
16
+ gem "geoblacklight", "~> 4.4"
17
+ end
18
+
19
+ Bundler.with_unbundled_env do
20
+ run "bundle install"
21
+ run "bundle lock --add-platform ruby"
22
+ end
23
+ end
24
+
25
+ def run_blacklight_generator
26
+ say_status("warning", "GENERATING BLACKLIGHT", :yellow)
27
+ generate "blacklight:install", "--devise"
28
+ end
29
+
30
+ def run_geoblacklight_generator
31
+ return unless ENV["LIGHT"] == "geoblacklight"
32
+ say_status("warning", "GENERATING GEOBLACKLIGHT", :yellow)
33
+ generate "geoblacklight:install", "--force"
34
+ end
35
+
36
+ def run_geoblacklight_admin_generator
37
+ say_status("warning", "GENERATING BLACKLIGHT ALLMAPS", :yellow)
38
+ generate "blacklight:allmaps:install", "--force"
39
+ end
40
+
41
+ # Symlink fixture document directories so the test app doesn't have to be
42
+ # regenerated when they are changed or updated.
43
+ def fixtures
44
+ solr_docs_path = Rails.root.join("..", "spec", "fixtures", "solr_documents")
45
+ FileUtils.mkdir_p "spec/fixtures"
46
+ FileUtils.symlink solr_docs_path, "spec/fixtures/solr_documents"
47
+ end
48
+ end
Binary file
Binary file
Binary file
@@ -0,0 +1,640 @@
1
+ /* required styles */
2
+
3
+ .leaflet-pane,
4
+ .leaflet-tile,
5
+ .leaflet-marker-icon,
6
+ .leaflet-marker-shadow,
7
+ .leaflet-tile-container,
8
+ .leaflet-pane > svg,
9
+ .leaflet-pane > canvas,
10
+ .leaflet-zoom-box,
11
+ .leaflet-image-layer,
12
+ .leaflet-layer {
13
+ position: absolute;
14
+ left: 0;
15
+ top: 0;
16
+ }
17
+ .leaflet-container {
18
+ overflow: hidden;
19
+ }
20
+ .leaflet-tile,
21
+ .leaflet-marker-icon,
22
+ .leaflet-marker-shadow {
23
+ -webkit-user-select: none;
24
+ -moz-user-select: none;
25
+ user-select: none;
26
+ -webkit-user-drag: none;
27
+ }
28
+ /* Prevents IE11 from highlighting tiles in blue */
29
+ .leaflet-tile::selection {
30
+ background: transparent;
31
+ }
32
+ /* Safari renders non-retina tile on retina better with this, but Chrome is worse */
33
+ .leaflet-safari .leaflet-tile {
34
+ image-rendering: -webkit-optimize-contrast;
35
+ }
36
+ /* hack that prevents hw layers "stretching" when loading new tiles */
37
+ .leaflet-safari .leaflet-tile-container {
38
+ width: 1600px;
39
+ height: 1600px;
40
+ -webkit-transform-origin: 0 0;
41
+ }
42
+ .leaflet-marker-icon,
43
+ .leaflet-marker-shadow {
44
+ display: block;
45
+ }
46
+ /* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
47
+ /* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
48
+ .leaflet-container .leaflet-overlay-pane svg,
49
+ .leaflet-container .leaflet-marker-pane img,
50
+ .leaflet-container .leaflet-shadow-pane img,
51
+ .leaflet-container .leaflet-tile-pane img,
52
+ .leaflet-container img.leaflet-image-layer,
53
+ .leaflet-container .leaflet-tile {
54
+ max-width: none !important;
55
+ max-height: none !important;
56
+ }
57
+
58
+ .leaflet-container.leaflet-touch-zoom {
59
+ -ms-touch-action: pan-x pan-y;
60
+ touch-action: pan-x pan-y;
61
+ }
62
+ .leaflet-container.leaflet-touch-drag {
63
+ -ms-touch-action: pinch-zoom;
64
+ /* Fallback for FF which doesn't support pinch-zoom */
65
+ touch-action: none;
66
+ touch-action: pinch-zoom;
67
+ }
68
+ .leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
69
+ -ms-touch-action: none;
70
+ touch-action: none;
71
+ }
72
+ .leaflet-container {
73
+ -webkit-tap-highlight-color: transparent;
74
+ }
75
+ .leaflet-container a {
76
+ -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
77
+ }
78
+ .leaflet-tile {
79
+ filter: inherit;
80
+ visibility: hidden;
81
+ }
82
+ .leaflet-tile-loaded {
83
+ visibility: inherit;
84
+ }
85
+ .leaflet-zoom-box {
86
+ width: 0;
87
+ height: 0;
88
+ -moz-box-sizing: border-box;
89
+ box-sizing: border-box;
90
+ z-index: 800;
91
+ }
92
+ /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
93
+ .leaflet-overlay-pane svg {
94
+ -moz-user-select: none;
95
+ }
96
+
97
+ .leaflet-pane { z-index: 400; }
98
+
99
+ .leaflet-tile-pane { z-index: 200; }
100
+ .leaflet-overlay-pane { z-index: 400; }
101
+ .leaflet-shadow-pane { z-index: 500; }
102
+ .leaflet-marker-pane { z-index: 600; }
103
+ .leaflet-tooltip-pane { z-index: 650; }
104
+ .leaflet-popup-pane { z-index: 700; }
105
+
106
+ .leaflet-map-pane canvas { z-index: 100; }
107
+ .leaflet-map-pane svg { z-index: 200; }
108
+
109
+ .leaflet-vml-shape {
110
+ width: 1px;
111
+ height: 1px;
112
+ }
113
+ .lvml {
114
+ behavior: url(#default#VML);
115
+ display: inline-block;
116
+ position: absolute;
117
+ }
118
+
119
+
120
+ /* control positioning */
121
+
122
+ .leaflet-control {
123
+ position: relative;
124
+ z-index: 800;
125
+ pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
126
+ pointer-events: auto;
127
+ }
128
+ .leaflet-top,
129
+ .leaflet-bottom {
130
+ position: absolute;
131
+ z-index: 1000;
132
+ pointer-events: none;
133
+ }
134
+ .leaflet-top {
135
+ top: 0;
136
+ }
137
+ .leaflet-right {
138
+ right: 0;
139
+ }
140
+ .leaflet-bottom {
141
+ bottom: 0;
142
+ }
143
+ .leaflet-left {
144
+ left: 0;
145
+ }
146
+ .leaflet-control {
147
+ float: left;
148
+ clear: both;
149
+ }
150
+ .leaflet-right .leaflet-control {
151
+ float: right;
152
+ }
153
+ .leaflet-top .leaflet-control {
154
+ margin-top: 10px;
155
+ }
156
+ .leaflet-bottom .leaflet-control {
157
+ margin-bottom: 10px;
158
+ }
159
+ .leaflet-left .leaflet-control {
160
+ margin-left: 10px;
161
+ }
162
+ .leaflet-right .leaflet-control {
163
+ margin-right: 10px;
164
+ }
165
+
166
+
167
+ /* zoom and fade animations */
168
+
169
+ .leaflet-fade-anim .leaflet-tile {
170
+ will-change: opacity;
171
+ }
172
+ .leaflet-fade-anim .leaflet-popup {
173
+ opacity: 0;
174
+ -webkit-transition: opacity 0.2s linear;
175
+ -moz-transition: opacity 0.2s linear;
176
+ transition: opacity 0.2s linear;
177
+ }
178
+ .leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
179
+ opacity: 1;
180
+ }
181
+ .leaflet-zoom-animated {
182
+ -webkit-transform-origin: 0 0;
183
+ -ms-transform-origin: 0 0;
184
+ transform-origin: 0 0;
185
+ }
186
+ .leaflet-zoom-anim .leaflet-zoom-animated {
187
+ will-change: transform;
188
+ }
189
+ .leaflet-zoom-anim .leaflet-zoom-animated {
190
+ -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
191
+ -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
192
+ transition: transform 0.25s cubic-bezier(0,0,0.25,1);
193
+ }
194
+ .leaflet-zoom-anim .leaflet-tile,
195
+ .leaflet-pan-anim .leaflet-tile {
196
+ -webkit-transition: none;
197
+ -moz-transition: none;
198
+ transition: none;
199
+ }
200
+
201
+ .leaflet-zoom-anim .leaflet-zoom-hide {
202
+ visibility: hidden;
203
+ }
204
+
205
+
206
+ /* cursors */
207
+
208
+ .leaflet-interactive {
209
+ cursor: pointer;
210
+ }
211
+ .leaflet-grab {
212
+ cursor: -webkit-grab;
213
+ cursor: -moz-grab;
214
+ cursor: grab;
215
+ }
216
+ .leaflet-crosshair,
217
+ .leaflet-crosshair .leaflet-interactive {
218
+ cursor: crosshair;
219
+ }
220
+ .leaflet-popup-pane,
221
+ .leaflet-control {
222
+ cursor: auto;
223
+ }
224
+ .leaflet-dragging .leaflet-grab,
225
+ .leaflet-dragging .leaflet-grab .leaflet-interactive,
226
+ .leaflet-dragging .leaflet-marker-draggable {
227
+ cursor: move;
228
+ cursor: -webkit-grabbing;
229
+ cursor: -moz-grabbing;
230
+ cursor: grabbing;
231
+ }
232
+
233
+ /* marker & overlays interactivity */
234
+ .leaflet-marker-icon,
235
+ .leaflet-marker-shadow,
236
+ .leaflet-image-layer,
237
+ .leaflet-pane > svg path,
238
+ .leaflet-tile-container {
239
+ pointer-events: none;
240
+ }
241
+
242
+ .leaflet-marker-icon.leaflet-interactive,
243
+ .leaflet-image-layer.leaflet-interactive,
244
+ .leaflet-pane > svg path.leaflet-interactive,
245
+ svg.leaflet-image-layer.leaflet-interactive path {
246
+ pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
247
+ pointer-events: auto;
248
+ }
249
+
250
+ /* visual tweaks */
251
+
252
+ .leaflet-container {
253
+ background: #ddd;
254
+ outline: 0;
255
+ }
256
+ .leaflet-container a {
257
+ color: #0078A8;
258
+ }
259
+ .leaflet-container a.leaflet-active {
260
+ outline: 2px solid orange;
261
+ }
262
+ .leaflet-zoom-box {
263
+ border: 2px dotted #38f;
264
+ background: rgba(255,255,255,0.5);
265
+ }
266
+
267
+
268
+ /* general typography */
269
+ .leaflet-container {
270
+ font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
271
+ }
272
+
273
+
274
+ /* general toolbar styles */
275
+
276
+ .leaflet-bar {
277
+ box-shadow: 0 1px 5px rgba(0,0,0,0.65);
278
+ border-radius: 4px;
279
+ }
280
+ .leaflet-bar a,
281
+ .leaflet-bar a:hover {
282
+ background-color: #fff;
283
+ border-bottom: 1px solid #ccc;
284
+ width: 26px;
285
+ height: 26px;
286
+ line-height: 26px;
287
+ display: block;
288
+ text-align: center;
289
+ text-decoration: none;
290
+ color: black;
291
+ }
292
+ .leaflet-bar a,
293
+ .leaflet-control-layers-toggle {
294
+ background-position: 50% 50%;
295
+ background-repeat: no-repeat;
296
+ display: block;
297
+ }
298
+ .leaflet-bar a:hover {
299
+ background-color: #f4f4f4;
300
+ }
301
+ .leaflet-bar a:first-child {
302
+ border-top-left-radius: 4px;
303
+ border-top-right-radius: 4px;
304
+ }
305
+ .leaflet-bar a:last-child {
306
+ border-bottom-left-radius: 4px;
307
+ border-bottom-right-radius: 4px;
308
+ border-bottom: none;
309
+ }
310
+ .leaflet-bar a.leaflet-disabled {
311
+ cursor: default;
312
+ background-color: #f4f4f4;
313
+ color: #bbb;
314
+ }
315
+
316
+ .leaflet-touch .leaflet-bar a {
317
+ width: 30px;
318
+ height: 30px;
319
+ line-height: 30px;
320
+ }
321
+ .leaflet-touch .leaflet-bar a:first-child {
322
+ border-top-left-radius: 2px;
323
+ border-top-right-radius: 2px;
324
+ }
325
+ .leaflet-touch .leaflet-bar a:last-child {
326
+ border-bottom-left-radius: 2px;
327
+ border-bottom-right-radius: 2px;
328
+ }
329
+
330
+ /* zoom control */
331
+
332
+ .leaflet-control-zoom-in,
333
+ .leaflet-control-zoom-out {
334
+ font: bold 18px 'Lucida Console', Monaco, monospace;
335
+ text-indent: 1px;
336
+ }
337
+
338
+ .leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
339
+ font-size: 22px;
340
+ }
341
+
342
+
343
+ /* layers control */
344
+
345
+ .leaflet-control-layers {
346
+ box-shadow: 0 1px 5px rgba(0,0,0,0.4);
347
+ background: #fff;
348
+ border-radius: 5px;
349
+ }
350
+ .leaflet-control-layers-toggle {
351
+ background-image: url(images/layers.png);
352
+ width: 36px;
353
+ height: 36px;
354
+ }
355
+ .leaflet-retina .leaflet-control-layers-toggle {
356
+ background-image: url(images/layers-2x.png);
357
+ background-size: 26px 26px;
358
+ }
359
+ .leaflet-touch .leaflet-control-layers-toggle {
360
+ width: 44px;
361
+ height: 44px;
362
+ }
363
+ .leaflet-control-layers .leaflet-control-layers-list,
364
+ .leaflet-control-layers-expanded .leaflet-control-layers-toggle {
365
+ display: none;
366
+ }
367
+ .leaflet-control-layers-expanded .leaflet-control-layers-list {
368
+ display: block;
369
+ position: relative;
370
+ }
371
+ .leaflet-control-layers-expanded {
372
+ padding: 6px 10px 6px 6px;
373
+ color: #333;
374
+ background: #fff;
375
+ }
376
+ .leaflet-control-layers-scrollbar {
377
+ overflow-y: scroll;
378
+ overflow-x: hidden;
379
+ padding-right: 5px;
380
+ }
381
+ .leaflet-control-layers-selector {
382
+ margin-top: 2px;
383
+ position: relative;
384
+ top: 1px;
385
+ }
386
+ .leaflet-control-layers label {
387
+ display: block;
388
+ }
389
+ .leaflet-control-layers-separator {
390
+ height: 0;
391
+ border-top: 1px solid #ddd;
392
+ margin: 5px -10px 5px -6px;
393
+ }
394
+
395
+ /* Default icon URLs */
396
+ .leaflet-default-icon-path {
397
+ background-image: url(images/marker-icon.png);
398
+ }
399
+
400
+
401
+ /* attribution and scale controls */
402
+
403
+ .leaflet-container .leaflet-control-attribution {
404
+ background: #fff;
405
+ background: rgba(255, 255, 255, 0.7);
406
+ margin: 0;
407
+ }
408
+ .leaflet-control-attribution,
409
+ .leaflet-control-scale-line {
410
+ padding: 0 5px;
411
+ color: #333;
412
+ }
413
+ .leaflet-control-attribution a {
414
+ text-decoration: none;
415
+ }
416
+ .leaflet-control-attribution a:hover {
417
+ text-decoration: underline;
418
+ }
419
+ .leaflet-container .leaflet-control-attribution,
420
+ .leaflet-container .leaflet-control-scale {
421
+ font-size: 11px;
422
+ }
423
+ .leaflet-left .leaflet-control-scale {
424
+ margin-left: 5px;
425
+ }
426
+ .leaflet-bottom .leaflet-control-scale {
427
+ margin-bottom: 5px;
428
+ }
429
+ .leaflet-control-scale-line {
430
+ border: 2px solid #777;
431
+ border-top: none;
432
+ line-height: 1.1;
433
+ padding: 2px 5px 1px;
434
+ font-size: 11px;
435
+ white-space: nowrap;
436
+ overflow: hidden;
437
+ -moz-box-sizing: border-box;
438
+ box-sizing: border-box;
439
+
440
+ background: #fff;
441
+ background: rgba(255, 255, 255, 0.5);
442
+ }
443
+ .leaflet-control-scale-line:not(:first-child) {
444
+ border-top: 2px solid #777;
445
+ border-bottom: none;
446
+ margin-top: -2px;
447
+ }
448
+ .leaflet-control-scale-line:not(:first-child):not(:last-child) {
449
+ border-bottom: 2px solid #777;
450
+ }
451
+
452
+ .leaflet-touch .leaflet-control-attribution,
453
+ .leaflet-touch .leaflet-control-layers,
454
+ .leaflet-touch .leaflet-bar {
455
+ box-shadow: none;
456
+ }
457
+ .leaflet-touch .leaflet-control-layers,
458
+ .leaflet-touch .leaflet-bar {
459
+ border: 2px solid rgba(0,0,0,0.2);
460
+ background-clip: padding-box;
461
+ }
462
+
463
+
464
+ /* popup */
465
+
466
+ .leaflet-popup {
467
+ position: absolute;
468
+ text-align: center;
469
+ margin-bottom: 20px;
470
+ }
471
+ .leaflet-popup-content-wrapper {
472
+ padding: 1px;
473
+ text-align: left;
474
+ border-radius: 12px;
475
+ }
476
+ .leaflet-popup-content {
477
+ margin: 13px 19px;
478
+ line-height: 1.4;
479
+ }
480
+ .leaflet-popup-content p {
481
+ margin: 18px 0;
482
+ }
483
+ .leaflet-popup-tip-container {
484
+ width: 40px;
485
+ height: 20px;
486
+ position: absolute;
487
+ left: 50%;
488
+ margin-left: -20px;
489
+ overflow: hidden;
490
+ pointer-events: none;
491
+ }
492
+ .leaflet-popup-tip {
493
+ width: 17px;
494
+ height: 17px;
495
+ padding: 1px;
496
+
497
+ margin: -10px auto 0;
498
+
499
+ -webkit-transform: rotate(45deg);
500
+ -moz-transform: rotate(45deg);
501
+ -ms-transform: rotate(45deg);
502
+ transform: rotate(45deg);
503
+ }
504
+ .leaflet-popup-content-wrapper,
505
+ .leaflet-popup-tip {
506
+ background: white;
507
+ color: #333;
508
+ box-shadow: 0 3px 14px rgba(0,0,0,0.4);
509
+ }
510
+ .leaflet-container a.leaflet-popup-close-button {
511
+ position: absolute;
512
+ top: 0;
513
+ right: 0;
514
+ padding: 4px 4px 0 0;
515
+ border: none;
516
+ text-align: center;
517
+ width: 18px;
518
+ height: 14px;
519
+ font: 16px/14px Tahoma, Verdana, sans-serif;
520
+ color: #c3c3c3;
521
+ text-decoration: none;
522
+ font-weight: bold;
523
+ background: transparent;
524
+ }
525
+ .leaflet-container a.leaflet-popup-close-button:hover {
526
+ color: #999;
527
+ }
528
+ .leaflet-popup-scrolled {
529
+ overflow: auto;
530
+ border-bottom: 1px solid #ddd;
531
+ border-top: 1px solid #ddd;
532
+ }
533
+
534
+ .leaflet-oldie .leaflet-popup-content-wrapper {
535
+ -ms-zoom: 1;
536
+ }
537
+ .leaflet-oldie .leaflet-popup-tip {
538
+ width: 24px;
539
+ margin: 0 auto;
540
+
541
+ -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
542
+ filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
543
+ }
544
+ .leaflet-oldie .leaflet-popup-tip-container {
545
+ margin-top: -1px;
546
+ }
547
+
548
+ .leaflet-oldie .leaflet-control-zoom,
549
+ .leaflet-oldie .leaflet-control-layers,
550
+ .leaflet-oldie .leaflet-popup-content-wrapper,
551
+ .leaflet-oldie .leaflet-popup-tip {
552
+ border: 1px solid #999;
553
+ }
554
+
555
+
556
+ /* div icon */
557
+
558
+ .leaflet-div-icon {
559
+ background: #fff;
560
+ border: 1px solid #666;
561
+ }
562
+
563
+
564
+ /* Tooltip */
565
+ /* Base styles for the element that has a tooltip */
566
+ .leaflet-tooltip {
567
+ position: absolute;
568
+ padding: 6px;
569
+ background-color: #fff;
570
+ border: 1px solid #fff;
571
+ border-radius: 3px;
572
+ color: #222;
573
+ white-space: nowrap;
574
+ -webkit-user-select: none;
575
+ -moz-user-select: none;
576
+ -ms-user-select: none;
577
+ user-select: none;
578
+ pointer-events: none;
579
+ box-shadow: 0 1px 3px rgba(0,0,0,0.4);
580
+ }
581
+ .leaflet-tooltip.leaflet-clickable {
582
+ cursor: pointer;
583
+ pointer-events: auto;
584
+ }
585
+ .leaflet-tooltip-top:before,
586
+ .leaflet-tooltip-bottom:before,
587
+ .leaflet-tooltip-left:before,
588
+ .leaflet-tooltip-right:before {
589
+ position: absolute;
590
+ pointer-events: none;
591
+ border: 6px solid transparent;
592
+ background: transparent;
593
+ content: "";
594
+ }
595
+
596
+ /* Directions */
597
+
598
+ .leaflet-tooltip-bottom {
599
+ margin-top: 6px;
600
+ }
601
+ .leaflet-tooltip-top {
602
+ margin-top: -6px;
603
+ }
604
+ .leaflet-tooltip-bottom:before,
605
+ .leaflet-tooltip-top:before {
606
+ left: 50%;
607
+ margin-left: -6px;
608
+ }
609
+ .leaflet-tooltip-top:before {
610
+ bottom: 0;
611
+ margin-bottom: -12px;
612
+ border-top-color: #fff;
613
+ }
614
+ .leaflet-tooltip-bottom:before {
615
+ top: 0;
616
+ margin-top: -12px;
617
+ margin-left: -6px;
618
+ border-bottom-color: #fff;
619
+ }
620
+ .leaflet-tooltip-left {
621
+ margin-left: -6px;
622
+ }
623
+ .leaflet-tooltip-right {
624
+ margin-left: 6px;
625
+ }
626
+ .leaflet-tooltip-left:before,
627
+ .leaflet-tooltip-right:before {
628
+ top: 50%;
629
+ margin-top: -6px;
630
+ }
631
+ .leaflet-tooltip-left:before {
632
+ right: 0;
633
+ margin-right: -12px;
634
+ border-left-color: #fff;
635
+ }
636
+ .leaflet-tooltip-right:before {
637
+ left: 0;
638
+ margin-left: -12px;
639
+ border-right-color: #fff;
640
+ }