c80_map 0.1.0

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.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.travis.yml +3 -0
  4. data/CODE_OF_CONDUCT.md +13 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +51 -0
  8. data/Rakefile +1 -0
  9. data/app/admin/c80_map/settings.rb +32 -0
  10. data/app/assets/javascripts/buttons/admin_buttons/button_back_to_map.js +48 -0
  11. data/app/assets/javascripts/buttons/admin_buttons/button_cancel_create.js +21 -0
  12. data/app/assets/javascripts/buttons/admin_buttons/button_complete_create.js +22 -0
  13. data/app/assets/javascripts/buttons/admin_buttons/button_edit.js +80 -0
  14. data/app/assets/javascripts/buttons/admin_buttons/button_new.js +46 -0
  15. data/app/assets/javascripts/buttons/admin_buttons/button_save.js +83 -0
  16. data/app/assets/javascripts/buttons/zoom_buttons.js +61 -0
  17. data/app/assets/javascripts/c80_map.js.coffee +11 -0
  18. data/app/assets/javascripts/events/app_event.js +15 -0
  19. data/app/assets/javascripts/map_objects/area.js +221 -0
  20. data/app/assets/javascripts/map_objects/building.js +309 -0
  21. data/app/assets/javascripts/map_objects/dot.js +14 -0
  22. data/app/assets/javascripts/src/main.js +992 -0
  23. data/app/assets/javascripts/src/state_controller.js +220 -0
  24. data/app/assets/javascripts/src/utils.js +127 -0
  25. data/app/assets/javascripts/svg_elements/helper.js +36 -0
  26. data/app/assets/javascripts/svg_elements/polygon.js +192 -0
  27. data/app/assets/javascripts/view/save_preloader.js +30 -0
  28. data/app/assets/stylesheets/c80_map.scss +2 -0
  29. data/app/assets/stylesheets/map.scss +1435 -0
  30. data/app/assets/stylesheets/view/save_preloader.scss +206 -0
  31. data/app/controllers/c80_map/application_controller.rb +6 -0
  32. data/app/controllers/c80_map/map_ajax_controller.rb +54 -0
  33. data/app/helpers/c80_map/application_helper.rb +33 -0
  34. data/app/models/c80_map/area.rb +5 -0
  35. data/app/models/c80_map/building.rb +73 -0
  36. data/app/models/c80_map/setting.rb +30 -0
  37. data/app/uploaders/c80_map/map_image_uploader.rb +31 -0
  38. data/app/views/c80_map/_map_row.html.erb +15 -0
  39. data/app/views/c80_map/_map_row_index.html.erb +39 -0
  40. data/app/views/c80_map/shared/_save_preloader.html.erb +3 -0
  41. data/bin/console +14 -0
  42. data/bin/setup +7 -0
  43. data/c80_map.gemspec +25 -0
  44. data/config/routes.rb +3 -0
  45. data/db/migrate/20160617130000_create_c80_map_settings.rb +8 -0
  46. data/db/migrate/20160620040202_create_c80_map_areas.rb +9 -0
  47. data/db/migrate/20160620040204_create_c80_map_buildings.rb +8 -0
  48. data/db/seeds/801_fill_map_settings.rb +6 -0
  49. data/lib/c80_map/engine.rb +23 -0
  50. data/lib/c80_map/version.rb +3 -0
  51. data/lib/c80_map.rb +8 -0
  52. metadata +136 -0
@@ -0,0 +1,1435 @@
1
+ %ebutton {
2
+ background-color: #1F283E;
3
+ color: #fff !important;
4
+ display: block;
5
+ font-size: 14px;
6
+ font-weight: bold;
7
+ cursor: pointer;
8
+ text-align: center;
9
+ line-height: 37px;
10
+ width: 40px;
11
+ height: 40px;
12
+ position: relative;
13
+ z-index: 99999;
14
+
15
+ transition: all 0.2s ease-in-out;
16
+ -webkit-transition: all 0.2s ease-in-out;
17
+ -moz-transition: all 0.2s ease-in-out;
18
+ -ms-transition: all 0.2s ease-in-out;
19
+ -o-transition: all 0.2s ease-in-out;
20
+
21
+ &:after {
22
+ position: absolute;
23
+ top: 2px;
24
+ left: 0;
25
+ right: 0;
26
+ bottom: 0;
27
+ display: block;
28
+ color: #ffffff;
29
+ font-weight: bold;
30
+ font-family: Arial, Helvetica, sans-serif;
31
+ font-size: 20px;
32
+ }
33
+ }
34
+
35
+ .ebutton {
36
+ @extend %ebutton;
37
+ }
38
+
39
+ //----------------------------------------------------------------------------------------------------------------------
40
+
41
+ .melem {
42
+ background-color: #fff;
43
+ font-size: 0;
44
+ overflow: hidden;
45
+
46
+ * {
47
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
48
+ }
49
+
50
+ > * {
51
+ opacity: 1;
52
+ -webkit-transition: opacity 0.6s;
53
+ -moz-transition: opacity 0.6s;
54
+ transition: opacity 0.6s;
55
+ }
56
+
57
+ a {
58
+ color: #333;
59
+ text-decoration: none !important;
60
+ }
61
+
62
+ input,
63
+ button {
64
+ outline: none;
65
+ }
66
+
67
+ }
68
+
69
+ /* Fullscreen */
70
+ :-webkit-full-screen {
71
+ width: 100%;
72
+ height: 100% !important;
73
+ }
74
+
75
+ :-webkit-full-screen .mapplic-fullscreen-button {
76
+ background-image: url(image_url('be_map/fullscreen-exit.png'));
77
+ }
78
+
79
+ /* Preloader */
80
+ .melem.mloading {
81
+ background: #f4f4f4 url(image_url('be_map/mloader.gif')) no-repeat center;
82
+ }
83
+
84
+ .melem.merror {
85
+ background: #f4f4f4 url(image_url('be_map/error-icon.png')) no-repeat center;
86
+ }
87
+
88
+ .melem.mloading > * {
89
+ opacity: 0;
90
+ }
91
+
92
+ /* Main elements */
93
+ .mcontainer {
94
+ background-color: #f8f8f8;
95
+ display: inline-block;
96
+ overflow: hidden;
97
+ position: relative;
98
+ width: 70%;
99
+ height: 100%;
100
+
101
+ .overlay_layers img {
102
+ z-index: 3;
103
+ }
104
+
105
+ #masked {
106
+ position: absolute;
107
+ top:0;
108
+ left:0;
109
+ right:0;
110
+ bottom:0;
111
+ background: transparent url(image_path('anim_lines.gif')) repeat 0 0;
112
+ font-size: 300px;
113
+ opacity: 0.4;
114
+
115
+ -webkit-transition: opacity 0.02s;
116
+ -moz-transition: opacity 0.02s;
117
+ transition: opacity 0.02s;
118
+
119
+ &.hiddn {
120
+ display: none;
121
+ }
122
+ }
123
+
124
+ }
125
+
126
+ :-webkit-full-screen .mcontainer {
127
+ width: 80%;
128
+ }
129
+
130
+ .mmap {
131
+ position: absolute;
132
+ left: 0;
133
+ top: 0;
134
+ overflow: visible !important;
135
+ }
136
+
137
+ /* Map layer */
138
+ .mlayer {
139
+ top: 0;
140
+ left: 0;
141
+ width: 100%;
142
+ height: 100%;
143
+ position: absolute;
144
+
145
+ &.main_map {
146
+ -webkit-transition: opacity 0.2s;
147
+ -moz-transition: opacity 0.2s;
148
+ transition: opacity 0.2s;
149
+ }
150
+ }
151
+
152
+ .mlayer img {
153
+ width: 100%;
154
+ }
155
+
156
+ .mmap .mmap-image {
157
+ position: absolute;
158
+ top: 0;
159
+ left: 0;
160
+ width: 100%;
161
+ height: 100%;
162
+ -webkit-touch-callout: none;
163
+ -webkit-user-select: none;
164
+ -khtml-user-select: none;
165
+ -moz-user-select: none;
166
+ -ms-user-select: none;
167
+ user-select: none;
168
+ }
169
+
170
+ .mmap.mzoomable .mmap-image {
171
+ cursor: url(image_url('be_map/openhand.cur')), default;
172
+ }
173
+
174
+ .mmap.mzoomable.mdragging .mmap-image {
175
+ cursor: url(image_url('be_map/closedhand.cur')), move;
176
+ }
177
+
178
+ .mapplic-locations {
179
+ position: absolute;
180
+ top: 0;
181
+ left: 0;
182
+ width: 100%;
183
+ height: 100%;
184
+ }
185
+
186
+ .mapplic-pin {
187
+ background-image: url(images/pin.png);
188
+ background-size: 18px 24px;
189
+ background-repeat: no-repeat;
190
+ background-position: center;
191
+ width: 18px;
192
+ height: 24px;
193
+ margin-top: -23px;
194
+ margin-left: -9px;
195
+ position: absolute;
196
+ }
197
+
198
+ .mapplic-pin.iconpin {
199
+ background-image: url(images/pin-large.png);
200
+ background-size: 30px 42px;
201
+ color: #fff;
202
+ font-size: 14px;
203
+ font-weight: normal;
204
+ line-height: 36px;
205
+ text-align: center;
206
+ width: 30px;
207
+ height: 42px;
208
+ margin-top: -42px;
209
+ margin-left: -15px;
210
+ }
211
+
212
+ .mapplic-pin.orange {
213
+ background-image: url(images/pin-orange.png);
214
+ }
215
+
216
+ .mapplic-pin.yellow {
217
+ background-image: url(images/pin-yellow.png);
218
+ }
219
+
220
+ .mapplic-pin.green {
221
+ background-image: url(images/pin-green.png);
222
+ }
223
+
224
+ .mapplic-pin.blue {
225
+ background-image: url(images/pin-blue.png);
226
+ }
227
+
228
+ .mapplic-pin.purple {
229
+ background-image: url(images/pin-purple.png);
230
+ }
231
+
232
+ .mapplic-pin.white {
233
+ background-image: url(images/pin-white.png);
234
+ }
235
+
236
+ .mapplic-pin.iconpin.orange {
237
+ background-image: url(images/pin-orange-large.png);
238
+ }
239
+
240
+ .mapplic-pin.iconpin.yellow {
241
+ background-image: url(images/pin-yellow-large.png);
242
+ }
243
+
244
+ .mapplic-pin.iconpin.green {
245
+ background-image: url(images/pin-green-large.png);
246
+ }
247
+
248
+ .mapplic-pin.iconpin.blue {
249
+ background-image: url(images/pin-blue-large.png);
250
+ }
251
+
252
+ .mapplic-pin.iconpin.purple {
253
+ background-image: url(images/pin-purple-large.png);
254
+ }
255
+
256
+ .mapplic-pin.iconpin.white {
257
+ background-image: url(images/pin-purple-white.png);
258
+ }
259
+
260
+ .mapplic-pin.circular {
261
+ background-image: none;
262
+ background-color: #fb7575;
263
+ border-radius: 6px;
264
+ box-shadow: 0 -2px 0 rgba(0, 0, 0, 0.1) inset;
265
+ width: 12px;
266
+ height: 12px;
267
+ margin-left: -6px;
268
+ margin-top: -6px;
269
+ }
270
+
271
+ .mapplic-pin.transparent {
272
+ background-image: none;
273
+ background-color: #fb7575;
274
+ border-radius: 10px;
275
+ width: 20px;
276
+ height: 20px;
277
+ margin-left: -10px;
278
+ margin-top: -10px;
279
+ opacity: 0.5 !important;
280
+ }
281
+
282
+ .mapplic-pin.mapplic-animate {
283
+ -webkit-animation: bounce-in 0.4s forwards;
284
+ animation: bounce-in 0.4s forwards;
285
+ }
286
+
287
+ @-webkit-keyframes bounce-in {
288
+ 0% {
289
+ margin-top: -120px;
290
+ opacity: 0;
291
+ }
292
+ 33% {
293
+ margin-top: -25px;
294
+ opacity: 1;
295
+ }
296
+ 66% {
297
+ margin-top: -30px;
298
+ }
299
+ 100% {
300
+ margin-top: -23px;
301
+ opacity: 1;
302
+ }
303
+ }
304
+
305
+ /* Minimap */
306
+ .mapplic-minimap {
307
+ border: 1px solid rgba(0, 0, 0, 0.2);
308
+ border-radius: 2px;
309
+ position: absolute;
310
+ width: 140px;
311
+ margin: 10px;
312
+ bottom: 0;
313
+ right: 0;
314
+ opacity: 0.5;
315
+ overflow: hidden;
316
+ -webkit-transition: opacity 0.6s;
317
+ -moz-transition: opacity 0.6s;
318
+ transition: opacity 0.6s;
319
+ -webkit-touch-callout: none;
320
+ -webkit-user-select: none;
321
+ -khtml-user-select: none;
322
+ -moz-user-select: none;
323
+ -ms-user-select: none;
324
+ user-select: none;
325
+ }
326
+
327
+ .mapplic-minimap img {
328
+ width: 100%;
329
+ }
330
+
331
+ .mapplic-minimap-overlay {
332
+ background-color: rgba(0, 0, 0, 0.4);
333
+ position: absolute;
334
+ width: 100%;
335
+ height: 100%;
336
+ top: 0;
337
+ left: 0;
338
+ }
339
+
340
+ .mapplic-minimap .mapplic-minimap-active {
341
+ position: absolute;
342
+ opacity: 1;
343
+ top: 0;
344
+ left: 0;
345
+ -webkit-transition: clip 0.1s;
346
+ -moz-transition: clip 0.1s;
347
+ transition: clip 0.1s;
348
+ }
349
+
350
+ .mapplic-minimap-background {
351
+ -webkit-filter: blur(2px);
352
+ }
353
+
354
+ /* Clear Button */
355
+ .mapplic-clear-button {
356
+ background-color: #fff;
357
+ background-image: url(images/reset.png);
358
+ background-size: 16px 16px;
359
+ background-repeat: no-repeat;
360
+ background-position: center;
361
+ border: 1px solid #eee;
362
+ border-bottom: 1px solid #ddd;
363
+ border-radius: 3px;
364
+ margin: 10px;
365
+ width: 28px;
366
+ height: 28px;
367
+ position: absolute;
368
+ bottom: 0;
369
+ left: 0;
370
+ }
371
+
372
+ .mapplic-clear-button:active {
373
+ background-color: #eee;
374
+ }
375
+
376
+ /* Zoom Buttons */
377
+
378
+ #container_buttons {
379
+ position: relative;
380
+ height: 0;
381
+
382
+ &:after {
383
+ position: absolute;
384
+ display: block;
385
+ background-color: transparent;
386
+ top: -700px;
387
+ left: -969px;
388
+ width: 1000px;
389
+ height: 800px;
390
+ }
391
+
392
+ &:before {
393
+ position: absolute;
394
+ display: block;
395
+ background-color: transparent;
396
+ top: -700px;
397
+ left: 1037px;
398
+ width: 1000px;
399
+ height: 800px;
400
+ }
401
+
402
+ .mzoom_buttons {
403
+ margin: 10px;
404
+ position: absolute;
405
+ left: 50px;
406
+ bottom: 10px !important;
407
+
408
+ transition: all 0.2s ease-in-out;
409
+ -webkit-transition: all 0.2s ease-in-out;
410
+ -moz-transition: all 0.2s ease-in-out;
411
+ -ms-transition: all 0.2s ease-in-out;
412
+ -o-transition: all 0.2s ease-in-out;
413
+
414
+ a {
415
+ @extend %ebutton;
416
+
417
+ &:active, &:focus, &:hover {
418
+ background-color: #2c3959;
419
+ }
420
+
421
+ &.mapplic-zoomin-button {
422
+ border-radius: 1px 1px 0 0;
423
+ &:after {
424
+ content: '+';
425
+ }
426
+ }
427
+
428
+ &.mapplic-zoomout-button {
429
+ border-radius: 0 0 1px 1px;
430
+ border-top: none;
431
+ &:after {
432
+ content: '-';
433
+ }
434
+ }
435
+
436
+ &.mapplic-edit-button {
437
+ border-radius: 0 0 1px 1px;
438
+ border-top: none;
439
+
440
+ &:after {
441
+ content: 'ред';
442
+ font-size: 14px;
443
+ }
444
+
445
+ &.editing, &.edit_area, &.edit_building {
446
+ background-color: #a10000;
447
+ }
448
+ }
449
+
450
+ &.mapplic-new-button {
451
+ border-radius: 0 0 1px 1px;
452
+ border-top: none;
453
+ background-color: #a10000;
454
+ opacity: 0;
455
+
456
+ &:after {
457
+ content: '+';
458
+ }
459
+
460
+ }
461
+
462
+ &.mapplic-save-button {
463
+ border-radius: 0 0 1px 1px;
464
+ border-top: none;
465
+ background-color: #a10000;
466
+ display: none;
467
+ border-bottom: 1px solid #14233C;
468
+
469
+ &:after {
470
+ content: '\f0c7';
471
+ font-family: 'FontAwesome';
472
+ font-size: 21px;
473
+ font-weight: normal;
474
+ }
475
+
476
+ &:active, &:focus, &:hover {
477
+ background-color: #ba0000;
478
+ }
479
+
480
+ &.mapplic-disabled {
481
+ &:active, &:focus, &:hover {
482
+ background-color: #8f8f8f;
483
+ }
484
+ }
485
+
486
+ }
487
+
488
+ &.mapplic-disabled {
489
+ background-color: #8f8f8f;
490
+ cursor: default;
491
+ }
492
+
493
+ }
494
+
495
+ }
496
+
497
+ .back_to_map_button {
498
+ margin: 10px;
499
+ position: absolute;
500
+ left: 100px;
501
+ bottom: 10px !important;
502
+ display: none;
503
+
504
+ a {
505
+ @extend %ebutton;
506
+ padding-left: 15px;
507
+ padding-right: 15px;
508
+ width: auto;
509
+
510
+ }
511
+
512
+ }
513
+
514
+ .status_bar {
515
+ position: absolute;
516
+ bottom: 20px !important;
517
+ left: 108px;
518
+ font-size: 14px;
519
+
520
+ > * {
521
+ display: none;
522
+ }
523
+
524
+ div.status_block {
525
+
526
+ > * {
527
+ float: left;
528
+ line-height: 37px;
529
+ padding: 0 15px;
530
+ }
531
+
532
+ span.message {
533
+ background-color: #CCA87C;
534
+ color: #fff;
535
+ display: block;
536
+ height: 40px;
537
+ }
538
+
539
+ a {
540
+ @extend %ebutton;
541
+ width: auto;
542
+ }
543
+
544
+ &#map_creating {
545
+
546
+ a#cancelCreating {
547
+ background-color: #a10000;
548
+ }
549
+ }
550
+
551
+ &#map_editing {
552
+
553
+ }
554
+
555
+ }
556
+
557
+ }
558
+
559
+ }
560
+
561
+ /* Fullscreen Button */
562
+ .mapplic-fullscreen-button {
563
+ background-color: #fff;
564
+ background-image: url(image_path('fullscreen.png'));
565
+ background-repeat: no-repeat;
566
+ background-position: center;
567
+ border: 1px solid #eee;
568
+ border-bottom: 1px solid #ddd;
569
+ border-radius: 2px;
570
+ margin: 10px;
571
+ width: 28px;
572
+ height: 28px;
573
+ position: absolute;
574
+ top: 0;
575
+ left: 0;
576
+ }
577
+
578
+ /* Levels */
579
+ .mapplic-levels {
580
+ position: absolute;
581
+ top: 0;
582
+ right: 0;
583
+ margin: 10px;
584
+ overflow: hidden;
585
+ }
586
+
587
+ .mapplic-levels > * {
588
+ border: 1px solid #eee;
589
+ display: block;
590
+ width: 100%;
591
+ -webkit-box-sizing: border-box;
592
+ -moz-box-sizing: border-box;
593
+ box-sizing: border-box;
594
+ }
595
+
596
+ .mlevels_select {
597
+ background-color: #fff;
598
+ border-top: none;
599
+ color: #666;
600
+ margin: 0;
601
+ padding: 6px 2px;
602
+ font-size: 14px;
603
+ outline: none;
604
+ }
605
+
606
+ .mapplic-levels a {
607
+ background-color: #fff;
608
+ background-repeat: no-repeat;
609
+ background-position: center;
610
+ cursor: pointer;
611
+ height: 24px;
612
+ width: 100%;
613
+ }
614
+
615
+ .mapplic-levels a:active {
616
+ background-color: #f8f8f8;
617
+ }
618
+
619
+ .mapplic-levels .mapplic-levels-up {
620
+ background-image: url(images/arrow-up.png);
621
+ background-size: 8px 4px;
622
+ border-radius: 3px 3px 0 0;
623
+ }
624
+
625
+ .mapplic-levels .mapplic-levels-down {
626
+ background-image: url(images/arrow-down.png);
627
+ background-size: 8px 4px;
628
+ border-top: none;
629
+ border-radius: 0 0 3px 3px;
630
+ }
631
+
632
+ .mapplic-levels a.mapplic-disabled {
633
+ background-color: #eee;
634
+ cursor: default;
635
+ }
636
+
637
+ /* Sidebar */
638
+ .mapplic-sidebar {
639
+ background-color: #f8f8f8;
640
+ width: 30%;
641
+ height: 100%;
642
+ float: left;
643
+ position: relative;
644
+ }
645
+
646
+ :-webkit-full-screen .mapplic-sidebar {
647
+ width: 20%;
648
+ }
649
+
650
+ /* Search */
651
+ .mapplic-search-form {
652
+ background-color: #f8f8f8;
653
+ border-bottom: 1px solid #eee;
654
+ border-right: 1px solid #f4f4f4;
655
+ padding: 14px 12px;
656
+ margin: 0;
657
+ width: 100%;
658
+ position: absolute;
659
+ -webkit-box-sizing: border-box;
660
+ -moz-box-sizing: border-box;
661
+ box-sizing: border-box;
662
+ }
663
+
664
+ .mapplic-search-input {
665
+ background-image: url(images/viewer.png);
666
+ background-size: 17px 16px;
667
+ background-repeat: no-repeat;
668
+ background-position: 8px;
669
+ border: 2px solid #eee;
670
+ border-radius: 2px;
671
+ font-size: 14px;
672
+ font-family: inherit;
673
+ line-height: 20px;
674
+ height: 38px;
675
+ margin: 0;
676
+ padding: 8px 32px;
677
+ width: 100%;
678
+ -webkit-box-sizing: border-box;
679
+ -moz-box-sizing: border-box;
680
+ box-sizing: border-box;
681
+
682
+ -webkit-transition: border-color 0.1s;
683
+ -moz-transition: border-color 0.1s;
684
+ transition: border-color 0.1s;
685
+ }
686
+
687
+ .mapplic-search-input:focus {
688
+ border-color: #6ed8dd;
689
+ }
690
+
691
+ .mapplic-search-clear {
692
+ background-image: url(images/cross.png);
693
+ background-size: 8px 8px;
694
+ background-repeat: no-repeat;
695
+ background-color: transparent;
696
+ background-position: center;
697
+ border: none;
698
+ cursor: pointer;
699
+ display: none;
700
+ position: absolute;
701
+ top: 14px;
702
+ right: 14px;
703
+ margin: 2px 0;
704
+ width: 34px;
705
+ height: 34px;
706
+ }
707
+
708
+ .mapplic-not-found {
709
+ color: #bbb;
710
+ display: none;
711
+ font-size: 13px;
712
+ padding: 0 30px;
713
+ position: absolute;
714
+ text-align: center;
715
+ top: 100px;
716
+ }
717
+
718
+ /* List */
719
+ .mapplic-list-container {
720
+ padding-top: 67px;
721
+ height: 100%;
722
+ overflow-y: auto;
723
+ -webkit-box-sizing: border-box;
724
+ -moz-box-sizing: border-box;
725
+ box-sizing: border-box;
726
+ }
727
+
728
+ .mapplic-list {
729
+ list-style: none;
730
+ padding: 0;
731
+ margin: 0;
732
+ overflow-y: auto;
733
+ height: 100%;
734
+ }
735
+
736
+ .mapplic-list-container ol {
737
+ border-color: #eee;
738
+ list-style: none;
739
+ padding: 0;
740
+ margin: 0;
741
+ }
742
+
743
+ .mapplic-list-container li {
744
+ border-color: inherit;
745
+ }
746
+
747
+ .mapplic-list-category > a {
748
+ background-color: #888;
749
+ box-shadow: 0 -2px 0 rgba(0, 0, 0, 0.05) inset;
750
+ color: #fff;
751
+ display: block;
752
+ font-size: 14px;
753
+ line-height: 26px;
754
+ padding: 10px 12px;
755
+ white-space: nowrap;
756
+ overflow: hidden;
757
+ text-overflow: ellipsis;
758
+ box-sizing: border-box;
759
+ }
760
+
761
+ .mapplic-list-category ol {
762
+ border-bottom: 2px solid #eee !important;
763
+ }
764
+
765
+ .mapplic-list-thumbnail {
766
+ border-radius: 2px;
767
+ float: left;
768
+ margin-right: 10px;
769
+ }
770
+
771
+ .mapplic-list-category > a .mapplic-list-count {
772
+ background-color: rgba(0, 0, 0, 0.1);
773
+ border-radius: 2px;
774
+ float: right;
775
+ font-size: 12px;
776
+ font-weight: bold;
777
+ line-height: 20px;
778
+ padding: 0 6px;
779
+ margin-left: 10px;
780
+ text-align: center;
781
+ margin-top: 4px;
782
+ -webkit-transition: border-radius 0.2s;
783
+ -moz-transition: border-radius 0.2s;
784
+ transition: border-radius 0.2s;
785
+
786
+ }
787
+
788
+ .mapplic-list-location {
789
+ border-bottom: 1px solid #eee;
790
+ margin: 0;
791
+ }
792
+
793
+ .mapplic-list-location > a {
794
+ background-color: #fff;
795
+ border-left: 1px solid transparent;
796
+ display: block;
797
+ font-size: 14px;
798
+ padding: 10px;
799
+ min-height: 50px;
800
+ -webkit-transition: border 0.2s;
801
+ -moz-transition: border 0.2s;
802
+ transition: border 0.2s;
803
+ }
804
+
805
+ .mapplic-list-location > a:hover {
806
+ background-color: #f4fcfc;
807
+ border-left: 2px solid;
808
+ border-color: inherit;
809
+ }
810
+
811
+ .mapplic-list-location h4 {
812
+ color: #444;
813
+ font-size: 16px;
814
+ font-weight: normal;
815
+ margin: 4px 0 8px 0;
816
+ text-align: left;
817
+ }
818
+
819
+ .mapplic-list-location span {
820
+ /* 42 -20 13 30*/
821
+ color: #bbb;
822
+ font-size: 13px;
823
+ font-weight: normal;
824
+ }
825
+
826
+ /* Tooltip */
827
+ .mapplic-tooltip {
828
+ background-color: #fff;
829
+ border-radius: 2px;
830
+ box-shadow: 0 0 6px rgba(0, 0, 0, 0.2);
831
+ display: none;
832
+ max-width: 260px;
833
+ min-width: 120px;
834
+ margin-top: -76px;
835
+ padding: 16px;
836
+ position: absolute;
837
+ -webkit-transition: margin 0.1s;
838
+ -moz-transition: margin 0.1s;
839
+ transition: margin 0.1s;
840
+ }
841
+
842
+ .mapplic-tooltip-title {
843
+ color: #333;
844
+ font-size: 20px;
845
+ font-weight: normal;
846
+ margin: 0 30px 12px 0;
847
+ }
848
+
849
+ .mapplic-hovertip {
850
+ min-width: 30px;
851
+ padding: 6px 14px;
852
+ pointer-events: none;
853
+ }
854
+
855
+ .mapplic-hovertip .mapplic-tooltip-title {
856
+ margin: 0;
857
+ font-size: 16px;
858
+ line-height: 24px;
859
+ text-align: center;
860
+ }
861
+
862
+ .mapplic-bottom .mapplic-tooltip-triangle {
863
+ border-color: transparent transparent #fff transparent;
864
+ border-width: 0 7px 8px 7px;
865
+ top: 0;
866
+ margin-top: -8px;
867
+ }
868
+
869
+ .mapplic-tooltip-content {
870
+ max-height: 160px;
871
+ overflow-y: auto;
872
+ }
873
+
874
+ .mapplic-tooltip-content p {
875
+ margin-top: 0;
876
+ }
877
+
878
+ .mapplic-tooltip-image {
879
+ width: 46%;
880
+ height: 100%;
881
+ /*margin: 5px 20px 5px 0;*/
882
+ margin: -16px 16px -16px -16px;
883
+ float: left;
884
+ }
885
+
886
+ .mapplic-tooltip-description,
887
+ .mapplic-tooltip p {
888
+ color: #aaa;
889
+ font-size: 13px;
890
+ line-height: 20px;
891
+ }
892
+
893
+ .mapplic-tooltip-link {
894
+ background-color: #6CB5F4;
895
+ border-radius: 2px;
896
+ color: #fff !important;
897
+ float: right;
898
+ font-size: 14px;
899
+ line-height: 32px;
900
+ padding: 0 12px;
901
+ margin-top: 10px;
902
+ -webkit-transition: background-color 0.2s;
903
+ -moz-transition: background-color 0.2s;
904
+ transition: background-color 0.2s;
905
+ }
906
+
907
+ .mapplic-tooltip-link:hover {
908
+ background-color: #888;
909
+ }
910
+
911
+ .mapplic-tooltip img {
912
+ max-width: 100%;
913
+ }
914
+
915
+ .mapplic-tooltip-close {
916
+ background-image: url(images/cross.png);
917
+ background-position: center;
918
+ background-repeat: no-repeat;
919
+ background-size: 8px 8px;
920
+ background-color: transparent;
921
+ border: none;
922
+ cursor: pointer;
923
+ float: right;
924
+ margin: -10px -14px 0 0;
925
+ padding: 10px 12px;
926
+ width: 10px;
927
+ height: 10px;
928
+ opacity: 0.5;
929
+ -webkit-transition: opacity 0.2s;
930
+ -moz-transition: opacity 0.2s;
931
+ transition: opacity 0.2s;
932
+ }
933
+
934
+ .mapplic-tooltip-close:hover {
935
+ opacity: 1.0;
936
+ }
937
+
938
+ .mapplic-tooltip-triangle {
939
+ border-color: #fff transparent transparent transparent;
940
+ border-style: solid;
941
+ border-width: 8px 7px 0 7px;
942
+ width: 0;
943
+ height: 0;
944
+ position: absolute;
945
+ bottom: 0;
946
+ left: 50%;
947
+ margin-bottom: -8px;
948
+ margin-left: -7px;
949
+ -webkit-transition: left 0.1s;
950
+ -moz-transition: left 0.1s;
951
+ transition: left 0.1s;
952
+ }
953
+
954
+ /* Tooltip down */
955
+ .mapplic-tooltip-down .mapplic-tooltip-triangle {
956
+ border-width: 0 7px 8px 7px;
957
+ border-color: transparent transparent #fff transparent;
958
+ top: 0;
959
+ margin-top: -8px;
960
+ }
961
+
962
+ /* Coordinates */
963
+ .mapplic-coordinates {
964
+ background-color: rgba(255, 255, 255, 0.9);
965
+ color: #333;
966
+ position: absolute;
967
+ margin: 10px;
968
+ margin-left: -80px;
969
+ padding: 4px 6px;
970
+ font-size: 14px;
971
+ top: 0;
972
+ left: 50%;
973
+ pointer-events: none;
974
+ }
975
+
976
+ /* Responsive layout */
977
+ @media all and (max-width: 667px) {
978
+ .mapplic-container,
979
+ .mapplic-sidebar {
980
+ width: 100%;
981
+ }
982
+
983
+ .mapplic-tooltip {
984
+ max-width: 240px;
985
+ }
986
+
987
+ .mapplic-minimap {
988
+ width: 120px;
989
+ }
990
+
991
+ .mapplic-element {
992
+ height: auto !important;
993
+ }
994
+
995
+ .mapplic-fullscreen-button {
996
+ display: none;
997
+ }
998
+
999
+ .mapplic-search-form {
1000
+ border-right: none;
1001
+ }
1002
+ }
1003
+
1004
+ /* RETINA */
1005
+ @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx) {
1006
+ .mapplic-search-clear,
1007
+ .mapplic-tooltip-close {
1008
+ background-image: url(images/cross@2x.png);
1009
+ }
1010
+
1011
+ .mapplic-levels .mapplic-levels-up {
1012
+ background-image: url(images/arrow-up@2x.png);
1013
+ }
1014
+
1015
+ .mapplic-levels .mapplic-levels-down {
1016
+ background-image: url(images/arrow-down@2x.png);
1017
+ }
1018
+
1019
+ a.mapplic-zoomin-button {
1020
+ background-image: url(images/plus@2x.png);
1021
+ }
1022
+
1023
+ a.mapplic-zoomout-button {
1024
+ background-image: url(images/minus@2x.png);
1025
+ }
1026
+
1027
+ .mapplic-search-input {
1028
+ background-image: url(images/viewer@2x.png);
1029
+ }
1030
+
1031
+ .mapplic-pin {
1032
+ background-image: url(images/pin@2x.png);
1033
+ }
1034
+ .mapplic-pin.orange {
1035
+ background-image: url(images/pin-orange@2x.png);
1036
+ }
1037
+ .mapplic-pin.yellow {
1038
+ background-image: url(images/pin-yellow@2x.png);
1039
+ }
1040
+ .mapplic-pin.green {
1041
+ background-image: url(images/pin-green@2x.png);
1042
+ }
1043
+ .mapplic-pin.blue {
1044
+ background-image: url(images/pin-blue@2x.png);
1045
+ }
1046
+ .mapplic-pin.purple {
1047
+ background-image: url(images/pin-purple@2x.png);
1048
+ }
1049
+ .mapplic-pin.white {
1050
+ background-image: url(images/pin-white@2x.png);
1051
+ }
1052
+
1053
+ .mapplic-pin.iconpin {
1054
+ background-image: url(images/pin-large@2x.png);
1055
+ }
1056
+ .mapplic-pin.iconpin.orange {
1057
+ background-image: url(images/pin-orange-large@2x.png);
1058
+ }
1059
+ .mapplic-pin.iconpin.yellow {
1060
+ background-image: url(images/pin-yellow-large@2x.png);
1061
+ }
1062
+ .mapplic-pin.iconpin.green {
1063
+ background-image: url(images/pin-green-large@2x.png);
1064
+ }
1065
+ .mapplic-pin.iconpin.blue {
1066
+ background-image: url(images/pin-blue-large@2x.png);
1067
+ }
1068
+ .mapplic-pin.iconpin.purple {
1069
+ background-image: url(images/pin-purple-large@2x.png);
1070
+ }
1071
+ .mapplic-pin.iconpin.white {
1072
+ background-image: url(images/pin-white-large@2x.png);
1073
+ }
1074
+
1075
+ .mapplic-clear-button {
1076
+ background-image: url(images/reset@2x.png);
1077
+ }
1078
+ }
1079
+
1080
+ /* Map */
1081
+ .mapplic-element svg {
1082
+ width: 100%;
1083
+ height: 100%;
1084
+ }
1085
+
1086
+ .mapplic-element svg a {
1087
+ cursor: pointer;
1088
+ }
1089
+
1090
+ .mapplic-active,
1091
+ a.mapplic-active > path,
1092
+ g.mapplic-active > * {
1093
+ fill: #343F4B;
1094
+ opacity: 1.0;
1095
+ }
1096
+
1097
+ .mapplic-clickable:not(g),
1098
+ g.mapplic-clickable > * {
1099
+ cursor: pointer;
1100
+ opacity: 0.4;
1101
+ -webkit-transition: opacity 0.2s;
1102
+ -moz-transition: opacity 0.2s;
1103
+ transition: opacity 0.2s;
1104
+ }
1105
+
1106
+ .mapplic-clickable:not(g):hover,
1107
+ g.mapplic-clickable:hover > * {
1108
+ opacity: 0.8;
1109
+ }
1110
+
1111
+ .mmap-image *[id^=nopointer] {
1112
+ pointer-events: none;
1113
+ }
1114
+
1115
+ [id^=landmarks] .mapplic-clickable {
1116
+ cursor: pointer;
1117
+ }
1118
+
1119
+
1120
+ .building_info {
1121
+ position: absolute;
1122
+ z-index: 5;
1123
+ top:10px;
1124
+ padding: 20px;
1125
+ background-color: #ededed;
1126
+ display: none;
1127
+ font-size: 14px;
1128
+
1129
+ -webkit-transition: all 0.8s cubic-bezier(.25,.8,.25,1);
1130
+ -moz-transition: all 0.8s cubic-bezier(.25,.8,.25,1);
1131
+ transition: all 0.8s cubic-bezier(.25,.8,.25,1);
1132
+
1133
+ box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
1134
+
1135
+ h2 {
1136
+ @include frankRegular(21px);
1137
+ margin: -20px -20px 10px -20px;
1138
+ padding: 20px;
1139
+ text-transform: uppercase;
1140
+ color: #ffffff;
1141
+ background-color: #54658E;
1142
+ }
1143
+
1144
+ ul {
1145
+ list-style: none;
1146
+ margin-left: 0;
1147
+ padding-left: 0;
1148
+ @include frankRegular(15px);
1149
+
1150
+ li {
1151
+ overflow: hidden;
1152
+
1153
+ -webkit-transition: all 0.3s;
1154
+ -moz-transition: all 0.3s;
1155
+ transition: all 0.3s;
1156
+
1157
+ span {
1158
+ color: #6f6f6f;
1159
+ }
1160
+ }
1161
+ }
1162
+
1163
+ h5 {
1164
+ border-top: 1px solid #14233C;
1165
+ color: #1f283e;
1166
+ margin-top: 18px;
1167
+ padding-top: 18px;
1168
+ @include frankRegular(21px);
1169
+ }
1170
+
1171
+
1172
+
1173
+ }
1174
+
1175
+ .area_order_button {
1176
+ position: absolute;
1177
+ z-index: 5;
1178
+ padding: 20px;
1179
+ background-color: #ececec;
1180
+ display: none;
1181
+ font-size: 14px;
1182
+
1183
+
1184
+ -webkit-transition: all 0.8s cubic-bezier(.25,.8,.25,1);
1185
+ -moz-transition: all 0.8s cubic-bezier(.25,.8,.25,1);
1186
+ transition: all 0.8s cubic-bezier(.25,.8,.25,1);
1187
+ box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
1188
+
1189
+ > * {
1190
+ float:left;
1191
+ }
1192
+
1193
+ h5 {
1194
+
1195
+ }
1196
+
1197
+ ul {
1198
+ list-style: none;
1199
+ margin:0;
1200
+ padding:0;
1201
+ li {
1202
+ float: left;
1203
+ margin-right: 5px;
1204
+
1205
+ div.checkbox:after {
1206
+ top:8px;
1207
+ }
1208
+ }
1209
+ }
1210
+
1211
+ a {
1212
+ width: auto;
1213
+ padding: 0 15px;
1214
+ float: right;
1215
+ }
1216
+ }
1217
+
1218
+ //----------------------------------------------------------------------------------------------------------------------
1219
+
1220
+ div#map_wrapper {
1221
+ position: relative;
1222
+
1223
+ div.mcontainer {
1224
+ background-color: #D9D9D9;
1225
+
1226
+ #svg {
1227
+ position: absolute;
1228
+ top: 0;
1229
+ left: 0;
1230
+ width: 100%;
1231
+ height: 100%;
1232
+ z-index: 2;
1233
+ display: inline-block;
1234
+
1235
+ rect.helper {
1236
+ fill: #FFF;
1237
+ stroke: #000;
1238
+ stroke-width: 2px;
1239
+ display: none;
1240
+ cursor: pointer;
1241
+ &:hover {
1242
+ fill:blue;
1243
+ stroke: red;
1244
+ }
1245
+ }
1246
+
1247
+ polygon, polyline {
1248
+ fill: rgba(255,255,255,0);
1249
+ stroke: rgba(255,255,255,0);
1250
+ cursor: pointer;
1251
+
1252
+ &:hover, &.hover {
1253
+ fill: rgba(255,255,255,0.5);
1254
+ stroke: rgba(255,255,255,0.1);
1255
+ }
1256
+
1257
+ -webkit-transition: stroke 0.6s, fill 0.4s;
1258
+ -moz-transition: stroke 0.6s, fill 0.4s;
1259
+ transition: stroke 0.6s, fill 0.4s;
1260
+
1261
+ }
1262
+
1263
+ g.free {
1264
+ polygon, polyline {
1265
+ fill: rgba(0, 255, 19, 0.30);
1266
+ stroke: rgba(51, 51, 51, 0.36);
1267
+ cursor: pointer;
1268
+
1269
+ &:hover, &.hover {
1270
+ fill: rgba(0, 255, 19, 0.50);
1271
+ stroke: rgba(251, 251, 251, 0.86);
1272
+ }
1273
+
1274
+ }
1275
+ }
1276
+
1277
+ g.busy {
1278
+ polygon, polyline {
1279
+ fill: rgba(255, 4, 0, 0.30);
1280
+ stroke: rgba(255, 4, 0, 0.30);
1281
+ cursor: pointer;
1282
+
1283
+ &:hover, &.hover {
1284
+ fill: rgba(255, 4, 0, 0.40);
1285
+ stroke: rgba(251, 251, 251, 0.86);
1286
+ }
1287
+
1288
+ }
1289
+ }
1290
+
1291
+ g.viewing_area {
1292
+ polygon, polyline {
1293
+ /*background: transparent url(image_path('loader_button.gif')) no-repeat 0 0;*/
1294
+ fill: rgba(0, 255, 19, 0.10);
1295
+ stroke: rgba(255, 246, 242, 0.59);
1296
+ stroke-width: 2px;
1297
+ stroke-dasharray: 10;
1298
+ animation: dash 555s linear;
1299
+
1300
+ &:hover,&.hover {
1301
+ fill: rgba(0, 255, 19, 0.50);
1302
+ stroke: rgba(255, 246, 242, 0.79);
1303
+ }
1304
+ }
1305
+ }
1306
+
1307
+ }
1308
+
1309
+ #svg_overlay {
1310
+ position: absolute;
1311
+ top: 0;
1312
+ left: 0;
1313
+ width: 100%;
1314
+ height: 100%;
1315
+ z-index: 4;
1316
+ display: inline-block;
1317
+
1318
+ rect.helper {
1319
+ opacity: 0;
1320
+ }
1321
+
1322
+ polygon, polyline {
1323
+ fill: rgba(255,255,255,0);
1324
+ stroke: rgba(255,255,255,0);
1325
+ cursor: pointer;
1326
+ }
1327
+
1328
+ }
1329
+
1330
+ &.editing,
1331
+ &.edit_area,
1332
+ &.edit_building {
1333
+ #svg {
1334
+
1335
+ rect.helper {
1336
+ display: block;
1337
+ }
1338
+
1339
+ polygon, polyline {
1340
+ fill: rgba(103, 232, 237, 0.30);
1341
+ stroke: rgba(0, 255, 19, 0.90);
1342
+ &:hover {
1343
+ fill: rgba(103, 232, 237, 0.60);
1344
+ stroke: rgba(255, 0, 169, 0.99);
1345
+ }
1346
+ }
1347
+
1348
+ g.free {
1349
+ polygon, polyline {
1350
+ fill: rgba(0, 255, 19, 0.20);
1351
+ stroke: rgba(255, 255, 255, 0.90);
1352
+ cursor: pointer;
1353
+
1354
+ &:hover, &.hover {
1355
+ fill: rgba(0, 255, 19, 0.50);
1356
+ stroke: rgba(0, 0, 0, 0.80);
1357
+ }
1358
+
1359
+ }
1360
+ }
1361
+
1362
+ g.busy {
1363
+ polygon, polyline {
1364
+ fill: rgba(255, 4, 0, 0.30);
1365
+ stroke: rgba(255, 255, 255, 0.90);
1366
+ cursor: pointer;
1367
+
1368
+ &:hover, &.hover {
1369
+ fill: rgba(255, 4, 0, 0.40);
1370
+ stroke: rgba(0, 0, 0, 0.80);
1371
+ }
1372
+
1373
+ }
1374
+ }
1375
+
1376
+ }
1377
+ }
1378
+
1379
+ &.creating {
1380
+ #svg {
1381
+
1382
+ rect.helper {
1383
+ display: block;
1384
+ }
1385
+
1386
+ polygon, polyline {
1387
+ fill: rgba(255, 61, 0, 0.50);
1388
+ stroke: rgba(255,255,255,0.8);
1389
+ &:hover {
1390
+ fill: rgba(255, 4, 0, 0.70);
1391
+ stroke: rgba(255,255,255,0.9);
1392
+ }
1393
+ }
1394
+
1395
+ }
1396
+ }
1397
+
1398
+ }
1399
+
1400
+ }
1401
+
1402
+ @keyframes dash {
1403
+ to {
1404
+ stroke-dashoffset: 10000;
1405
+ }
1406
+ }
1407
+
1408
+ .popover {
1409
+ z-index: 100;
1410
+ position: absolute;
1411
+ }
1412
+
1413
+ .popover-content {
1414
+ ul {
1415
+ margin: 0;
1416
+ padding: 0 0 0 10px;
1417
+ list-style: disc;
1418
+ }
1419
+ }
1420
+
1421
+ #div_afa {
1422
+ > ul {
1423
+ list-style: none;
1424
+ padding: 0;
1425
+
1426
+ > li {
1427
+ float: left;
1428
+ margin-bottom: 10px;
1429
+
1430
+ ul {
1431
+
1432
+ }
1433
+ }
1434
+ }
1435
+ }