├── .gitignore ├── README.md ├── composer.json ├── dist ├── css │ ├── -leaflet.routing.icons.png │ ├── -leaflet.routing.icons.svg │ ├── fullscreen.png │ ├── fullscreen@2x.png │ ├── images │ │ ├── geocoder.png │ │ ├── layers-2x.png │ │ ├── layers.png │ │ ├── measure-control.png │ │ └── measure-control.svg │ ├── index.min.css │ ├── leaflet.routing.icons.svg │ ├── libraries.css │ ├── map │ │ └── index.min.css.map │ ├── marker-icon-2x.png │ ├── marker-icon.png │ ├── marker-shadow.png │ ├── modes.icons.svg │ ├── routing-icon.png │ └── throbber.gif └── js │ └── libraries.js ├── favicon.ico ├── gulpfile.js ├── home.html ├── img ├── arrow_redo.png ├── arrow_undo.png ├── g_logo.svg ├── google-logo_26.jpg ├── google-logo_26_hover.png ├── icon_gps_detect.svg ├── l_logo.svg ├── leaflet-images │ ├── layers-2x.png │ ├── layers.png │ ├── marker-icon-2x.png │ ├── marker-icon.png │ └── marker-shadow.png ├── leaflet-logo_26.jpg ├── leaflet-logo_26_hover.png ├── menu-arrow_min.png ├── y_logo.svg ├── yadenx-logo_26.jpg └── yadenx-logo_26_hover.png ├── index.php └── src ├── js ├── index.js └── ui-logic.js └── scss └── index.scss /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | ### JetBrains template 3 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio 4 | 5 | *.iml 6 | 7 | ## Directory-based project format: 8 | .idea/ 9 | # if you remove the above rule, at least ignore the following: 10 | 11 | # User-specific stuff: 12 | # .idea/workspace.xml 13 | # .idea/tasks.xml 14 | # .idea/dictionaries 15 | 16 | # Sensitive or high-churn files: 17 | # .idea/dataSources.ids 18 | # .idea/dataSources.xml 19 | # .idea/sqlDataSources.xml 20 | # .idea/dynamic.xml 21 | # .idea/uiDesigner.xml 22 | 23 | # Gradle: 24 | # .idea/gradle.xml 25 | # .idea/libraries 26 | 27 | # Mongo Explorer plugin: 28 | # .idea/mongoSettings.xml 29 | 30 | ## File-based project format: 31 | *.ipr 32 | *.iws 33 | 34 | ## Plugin-specific files: 35 | 36 | # IntelliJ 37 | /out/ 38 | 39 | # mpeltonen/sbt-idea plugin 40 | .idea_modules/ 41 | 42 | # JIRA plugin 43 | atlassian-ide-plugin.xml 44 | 45 | # Crashlytics plugin (for Android Studio and IntelliJ) 46 | com_crashlytics_export_strings.xml 47 | crashlytics.properties 48 | crashlytics-build.properties 49 | ### Vagrant template 50 | .vagrant/ 51 | /lib/ 52 | /node_modules/ 53 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | All maps in one place! 2 | 3 | Google maps 4 | Yandex maps 5 | OSM and others 6 | 7 | Example: 8 | https://all-maps.herokuapp.com/ 9 | 10 | Example of usage: 11 | https://carries.herokuapp.com/ 12 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /dist/css/-leaflet.routing.icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/-leaflet.routing.icons.png -------------------------------------------------------------------------------- /dist/css/-leaflet.routing.icons.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/css/fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/fullscreen.png -------------------------------------------------------------------------------- /dist/css/fullscreen@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/fullscreen@2x.png -------------------------------------------------------------------------------- /dist/css/images/geocoder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/images/geocoder.png -------------------------------------------------------------------------------- /dist/css/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/images/layers-2x.png -------------------------------------------------------------------------------- /dist/css/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/images/layers.png -------------------------------------------------------------------------------- /dist/css/images/measure-control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/images/measure-control.png -------------------------------------------------------------------------------- /dist/css/images/measure-control.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 41 | 43 | 44 | 46 | image/svg+xml 47 | 49 | 50 | 51 | 52 | 53 | 58 | 60 | 63 | 70 | 75 | 80 | 85 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /dist/css/index.min.css: -------------------------------------------------------------------------------- 1 | body,html{margin:0;padding:0;height:100%;width:100%;line-height:1.5}html body .gm-iv-address{box-sizing:content-box}html body .gm-style>div:nth-child(2){left:initial!important;right:0!important;bottom:10px!important}html body .ymaps-2-1-41-copyright{top:-9px;right:-3px}html body .ymaps-2-1-41-map-copyrights-promo{bottom:11px!important;right:-3px!important}html body .ymaps-2-1-41-map-copyrights-promo iframe{position:relative;float:right;bottom:-4px;right:-3px}html body .leaflet-control-container .leaflet-control{clear:none}html body .leaflet-control-container .leaflet-control-geocoder .leaflet-control-geocoder-form{float:right}html body .leaflet-control-container .leaflet-control-geocoder .leaflet-control-geocoder-form input{padding:0 0 0 10px;margin:0;height:26px;box-shadow:none}html body .leaflet-control-container .leaflet-control-layers-toggle{background-size:90%;width:26px;height:26px}html body .leaflet-control-container .leaflet-routing-container{min-height:26px}html body .leaflet-control-container .leaflet-routing-container .leaflet-routing-collapse-btn{top:-4px}html body .leaflet-control-container .leaflet-routing-container-hide{width:26px;height:26px;padding-top:0}html body .leaflet-control-container .leaflet-routing-container-hide .leaflet-routing-collapse-btn{height:26px;width:26px;background-size:80%;background-repeat:no-repeat;background-position:center;position:static}.main-container{height:100%}.main-container .full-width{display:block;width:100%}.main-container .wrapper-with-padding{padding:20px}.main-container .paragraph-with-padding{padding:15px 0;margin:5px 0}.main-container .hover-pointer{cursor:pointer}.main-container .weight-text{font-weight:700}.main-container .container-maps-and-content{height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.main-container .container-maps-and-content #containerMaps{position:relative;height:100%;width:100%;overflow:hidden;padding:0}.main-container .container-maps-and-content #containerMaps #containerOwnControls{height:43px;width:186px;position:absolute;bottom:0;left:0;background-color:#fff;z-index:2147483647;border-top:1px solid #cacaca}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-gps-control,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-history-controls,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps{height:100%;float:left;display:inline-block;border-right:1px solid #cacaca}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-gps-control__wrapper-buttons,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-history-controls__wrapper-buttons,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps__wrapper-buttons{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:60%}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-gps-control__wrapper-buttons #btnDetectorGps,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-history-controls__wrapper-buttons #container-history-controls-container-btn_redo,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-history-controls__wrapper-buttons #container-history-controls-container-btn_undo,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps__wrapper-buttons #buttonGoogle,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps__wrapper-buttons #buttonLeaflet,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps__wrapper-buttons #buttonYandex{height:100%;display:inline-block;float:left;cursor:pointer;background-repeat:no-repeat;background-position:center}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-gps-control__wrapper-buttons #btnDetectorGps:hover,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-history-controls__wrapper-buttons #container-history-controls-container-btn_redo:hover,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-history-controls__wrapper-buttons #container-history-controls-container-btn_undo:hover,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps__wrapper-buttons #buttonGoogle:hover,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps__wrapper-buttons #buttonLeaflet:hover,.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps__wrapper-buttons #buttonYandex:hover{background-color:#ebebeb}.main-container .container-maps-and-content #containerMaps #containerOwnControls .group-header{height:40%;padding:0 3px;font-size:12px;text-align:center;border-bottom:1px solid #cacaca}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-gps-control{width:18%}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-gps-control__wrapper-buttons #btnDetectorGps{width:100%;background-image:url(/img/icon_gps_detect.svg);background-size:62%}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-history-controls{width:34%}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-history-controls__wrapper-buttons #container-history-controls-container-btn_undo{width:50%;border-right:1px solid #cacaca;background-image:url(/img/arrow_undo.png);background-size:80%}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-history-controls__wrapper-buttons #container-history-controls-container-btn_redo{width:50%;background-image:url(/img/arrow_redo.png);background-size:80%}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-history-controls__wrapper-buttons .disable-btn-history{background-color:#cacaca}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps{width:48%}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps__wrapper-buttons #buttonGoogle{width:33.33%;background-size:auto 80%;background-image:url(/img/google-logo_26_hover.png);border-right:1px solid #cacaca}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps__wrapper-buttons #buttonYandex{width:33.33%;background-size:auto 80%;background-image:url(/img/yadenx-logo_26_hover.png);border-right:1px solid #cacaca}.main-container .container-maps-and-content #containerMaps #containerOwnControls .container-toggle-maps__wrapper-buttons #buttonLeaflet{width:33.33%;background-size:auto 80%;background-image:url(/img/leaflet-logo_26_hover.png)}.main-container .container-maps-and-content #containerMaps #googleMaps,.main-container .container-maps-and-content #containerMaps #leafletMaps,.main-container .container-maps-and-content #containerMaps #yandexMaps{height:100%;width:100%}.main-container .container-maps-and-content #containerContent{height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.main-container .container-maps-and-content #containerContent #containerIcoOpenSlider{display:-ms-flexbox;display:flex;height:100%;cursor:col-resize;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;border-right:1px solid #9e9e9e;border-left:1px solid #9e9e9e}.main-container .container-maps-and-content #containerContent #containerIcoOpenSlider #icoOpenSlider{width:30px;height:90px;background-image:url(/img/menu-arrow_min.png);background-repeat:no-repeat;background-position:center;background-size:60%;cursor:pointer}.main-container .container-maps-and-content #containerContent #rightMenu{display:block;height:100%;width:600px;overflow:auto}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-greeting,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-menu,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-place,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-task,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-settings{padding:0 10px}.main-container .container-maps-and-content #containerContent #rightMenu .btn-add-data{display:block;width:100%}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-datetimepicker{position:relative}.main-container .container-maps-and-content #containerContent #rightMenu .panel-heading{cursor:pointer}.main-container .container-maps-and-content #containerContent #rightMenu .hint-text{font-size:.8em;color:red}.main-container .container-maps-and-content #containerContent #rightMenu .alert-error-listener,.main-container .container-maps-and-content #containerContent #rightMenu .alert-success-listener{display:none}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-menu{list-style:none}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-task-list-by-day .one-day-listener .wrapper-task-list-listener{padding:10px 40px 20px}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-task-list-by-day .one-day-listener .wrapper-task-list-listener .sorted-task-list-listener{padding:0}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-place .wrapper-around-clock-time-work,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-task .around-clock-time-work,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-task .wrapper-around-clock-time-work,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-around-clock-time-work{padding:6px 0}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-task-list-by-day .one-day-listener .wrapper-task-list-listener .sorted-task-list-listener .task-row-listener{position:relative;border-bottom:1px solid grey;padding:6px 0}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-task-list-by-day .one-day-listener .wrapper-task-list-listener .sorted-task-list-listener .task-row-listener .task-name-listener{display:inline-block}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-task-list-by-day .one-day-listener .wrapper-task-list-listener .sorted-task-list-listener .task-row-listener .wrapper-task-icons{display:inline-block;position:absolute;right:20px}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-task-list-by-day .one-day-listener .wrapper-task-list-listener .sorted-task-list-listener .task-row-listener .wrapper-task-icons .icon-edit-task{color:green;cursor:pointer}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-task-list-by-day .one-day-listener .wrapper-task-list-listener .sorted-task-list-listener .task-row-listener .wrapper-task-icons .icon-remove-task{color:red;cursor:pointer}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-task-list-by-day .one-day-listener .wrapper-task-list-listener .sorted-task-list-listener .form-update-create-task{margin:15px 0 0}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-task .wrapper-select-place{margin:15px 0 10px}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-task .wrapper-select-place .wrapper-place-information-for-editing-listener{margin:10px 0 0}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-place{margin:5px 0}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-place .wrapper-around-clock-time-work .label-around-clock-time-work,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-task .wrapper-around-clock-time-work .label-around-clock-time-work,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-around-clock-time-work .label-around-clock-time-work{margin:0}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-place .form-add-place,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-task .form-add-place,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .form-add-place{margin:0 0 30px}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-place .btn-add-new-time-range,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-task .btn-add-new-time-range,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .btn-add-new-time-range{display:block}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-place .wrapper-added-places,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-task .wrapper-added-places,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-added-places{border-top:1px solid #8b0000;padding:30px 0 0}.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-place .wrapper-added-places .wrapper-place-information-for-editing-listener,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-new-task .wrapper-added-places .wrapper-place-information-for-editing-listener,.main-container .container-maps-and-content #containerContent #rightMenu .wrapper-schedule .wrapper-added-places .wrapper-place-information-for-editing-listener{margin:10px 0 0} 2 | /*# sourceMappingURL=map/index.min.css.map */ 3 | -------------------------------------------------------------------------------- /dist/css/leaflet.routing.icons.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/css/libraries.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.flex-video,svg:not(:root){overflow:hidden}abbr,body,code,kbd{color:#0a0a0a}[type=button],[type=submit],button,select{-moz-appearance:none}.invisible,.leaflet-tile{visibility:hidden}.leaflet-routing-alt table,table{border-collapse:collapse}button,img,legend{border:0}body,button,legend{padding:0}h1,h2,h3,h4,h5,h6,p{text-rendering:optimizeLegibility}.input-group,[type=file],select{width:100%}img,select[multiple],textarea[rows]{height:auto}[data-whatinput=mouse] .button,[data-whatinput=mouse] button,a:active,a:hover{outline:0}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{max-width:100%;-ms-interpolation-mode:bicubic;display:inline-block;vertical-align:middle}figure{margin:1em 40px}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}a,b,em,i,small,strong{line-height:inherit}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:not-allowed}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:border-box}.button,[type=button],[type=submit],button,select{-webkit-appearance:none}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-spacing:0}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}body,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400}html{font-size:100%;box-sizing:border-box}*,::after,::before{box-sizing:inherit}body{line-height:1.5;background:#fefefe;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#map_canvas embed,#map_canvas img,#map_canvas object,.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{overflow:visible;background:0 0;border-radius:0;line-height:1}.is-visible{display:block!important}.is-hidden{display:none!important}.row{max-width:75rem;margin-left:auto;margin-right:auto;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.row .row,.row.expanded{max-width:none}.row .row{margin-left:-.625rem;margin-right:-.625rem}.row.collapse>.column,.row.collapse>.columns{padding-left:0;padding-right:0}.column,.columns{-ms-flex:1 1 0px;flex:1 1 0px;padding-left:.625rem;padding-right:.625rem;min-width:initial}@media screen and (min-width:40em){.row .row{margin-left:-.9375rem;margin-right:-.9375rem}.column,.columns{padding-left:.9375rem;padding-right:.9375rem}}.column.row.row,.row.row.columns{float:none;display:block}.row .column.row.row,.row .row.row.columns{padding-left:0;padding-right:0;margin-left:0;margin-right:0}.small-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.small-offset-0{margin-left:0}.small-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.small-offset-1{margin-left:8.33333%}.small-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.small-offset-2{margin-left:16.66667%}.small-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.small-offset-3{margin-left:25%}.small-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.small-offset-4{margin-left:33.33333%}.small-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.small-offset-5{margin-left:41.66667%}.small-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.small-offset-6{margin-left:50%}.small-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.small-offset-7{margin-left:58.33333%}.small-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.small-offset-8{margin-left:66.66667%}.small-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.small-offset-9{margin-left:75%}.small-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.small-offset-10{margin-left:83.33333%}.small-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.small-offset-11{margin-left:91.66667%}.small-up-1{-ms-flex-wrap:wrap;flex-wrap:wrap}.small-up-1>.column,.small-up-1>.columns{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.small-up-2{-ms-flex-wrap:wrap;flex-wrap:wrap}.small-up-2>.column,.small-up-2>.columns{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.small-up-3{-ms-flex-wrap:wrap;flex-wrap:wrap}.small-up-3>.column,.small-up-3>.columns{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.small-up-4{-ms-flex-wrap:wrap;flex-wrap:wrap}.small-up-4>.column,.small-up-4>.columns{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.small-up-5{-ms-flex-wrap:wrap;flex-wrap:wrap}.small-up-5>.column,.small-up-5>.columns{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.small-up-6{-ms-flex-wrap:wrap;flex-wrap:wrap}.small-up-6>.column,.small-up-6>.columns{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.small-up-7{-ms-flex-wrap:wrap;flex-wrap:wrap}.small-up-7>.column,.small-up-7>.columns{-ms-flex:0 0 14.28571%;flex:0 0 14.28571%;max-width:14.28571%}.small-up-8{-ms-flex-wrap:wrap;flex-wrap:wrap}.small-up-8>.column,.small-up-8>.columns{-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.small-collapse>.column,.small-collapse>.columns{padding-left:0;padding-right:0}.small-uncollapse>.column,.small-uncollapse>.columns{padding-left:.625rem;padding-right:.625rem}@media screen and (min-width:40em){.medium-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.medium-offset-0{margin-left:0}.medium-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.medium-offset-1{margin-left:8.33333%}.medium-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.medium-offset-2{margin-left:16.66667%}.medium-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.medium-offset-3{margin-left:25%}.medium-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.medium-offset-4{margin-left:33.33333%}.medium-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.medium-offset-5{margin-left:41.66667%}.medium-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.medium-offset-6{margin-left:50%}.medium-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.medium-offset-7{margin-left:58.33333%}.medium-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.medium-offset-8{margin-left:66.66667%}.medium-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.medium-offset-9{margin-left:75%}.medium-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.medium-offset-10{margin-left:83.33333%}.medium-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.medium-offset-11{margin-left:91.66667%}.medium-order-1{-ms-flex-order:1;order:1}.medium-order-2{-ms-flex-order:2;order:2}.medium-order-3{-ms-flex-order:3;order:3}.medium-order-4{-ms-flex-order:4;order:4}.medium-order-5{-ms-flex-order:5;order:5}.medium-order-6{-ms-flex-order:6;order:6}.medium-up-1{-ms-flex-wrap:wrap;flex-wrap:wrap}.medium-up-1>.column,.medium-up-1>.columns{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.medium-up-2{-ms-flex-wrap:wrap;flex-wrap:wrap}.medium-up-2>.column,.medium-up-2>.columns{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.medium-up-3{-ms-flex-wrap:wrap;flex-wrap:wrap}.medium-up-3>.column,.medium-up-3>.columns{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.medium-up-4{-ms-flex-wrap:wrap;flex-wrap:wrap}.medium-up-4>.column,.medium-up-4>.columns{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.medium-up-5{-ms-flex-wrap:wrap;flex-wrap:wrap}.medium-up-5>.column,.medium-up-5>.columns{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.medium-up-6{-ms-flex-wrap:wrap;flex-wrap:wrap}.medium-up-6>.column,.medium-up-6>.columns{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.medium-up-7{-ms-flex-wrap:wrap;flex-wrap:wrap}.medium-up-7>.column,.medium-up-7>.columns{-ms-flex:0 0 14.28571%;flex:0 0 14.28571%;max-width:14.28571%}.medium-up-8{-ms-flex-wrap:wrap;flex-wrap:wrap}.medium-up-8>.column,.medium-up-8>.columns{-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}}@media screen and (min-width:40em) and (min-width:40em){.medium-expand{-ms-flex:1 1 0px;flex:1 1 0px}}.row.medium-unstack>.column,.row.medium-unstack>.columns{-ms-flex:0 0 100%;flex:0 0 100%}@media screen and (min-width:40em){.row.medium-unstack>.column,.row.medium-unstack>.columns{-ms-flex:1 1 0px;flex:1 1 0px}.medium-collapse>.column,.medium-collapse>.columns{padding-left:0;padding-right:0}.medium-uncollapse>.column,.medium-uncollapse>.columns{padding-left:.9375rem;padding-right:.9375rem}}@media screen and (min-width:64em){.large-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.large-offset-0{margin-left:0}.large-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.large-offset-1{margin-left:8.33333%}.large-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.large-offset-2{margin-left:16.66667%}.large-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.large-offset-3{margin-left:25%}.large-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.large-offset-4{margin-left:33.33333%}.large-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.large-offset-5{margin-left:41.66667%}.large-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.large-offset-6{margin-left:50%}.large-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.large-offset-7{margin-left:58.33333%}.large-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.large-offset-8{margin-left:66.66667%}.large-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.large-offset-9{margin-left:75%}.large-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.large-offset-10{margin-left:83.33333%}.large-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.large-offset-11{margin-left:91.66667%}.large-order-1{-ms-flex-order:1;order:1}.large-order-2{-ms-flex-order:2;order:2}.large-order-3{-ms-flex-order:3;order:3}.large-order-4{-ms-flex-order:4;order:4}.large-order-5{-ms-flex-order:5;order:5}.large-order-6{-ms-flex-order:6;order:6}.large-up-1{-ms-flex-wrap:wrap;flex-wrap:wrap}.large-up-1>.column,.large-up-1>.columns{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.large-up-2{-ms-flex-wrap:wrap;flex-wrap:wrap}.large-up-2>.column,.large-up-2>.columns{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.large-up-3{-ms-flex-wrap:wrap;flex-wrap:wrap}.large-up-3>.column,.large-up-3>.columns{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.large-up-4{-ms-flex-wrap:wrap;flex-wrap:wrap}.large-up-4>.column,.large-up-4>.columns{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.large-up-5{-ms-flex-wrap:wrap;flex-wrap:wrap}.large-up-5>.column,.large-up-5>.columns{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.large-up-6{-ms-flex-wrap:wrap;flex-wrap:wrap}.large-up-6>.column,.large-up-6>.columns{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.large-up-7{-ms-flex-wrap:wrap;flex-wrap:wrap}.large-up-7>.column,.large-up-7>.columns{-ms-flex:0 0 14.28571%;flex:0 0 14.28571%;max-width:14.28571%}.large-up-8{-ms-flex-wrap:wrap;flex-wrap:wrap}.large-up-8>.column,.large-up-8>.columns{-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}}.shrink,legend,textarea{max-width:100%}@media screen and (min-width:64em) and (min-width:64em){.large-expand{-ms-flex:1 1 0px;flex:1 1 0px}}.row.large-unstack>.column,.row.large-unstack>.columns{-ms-flex:0 0 100%;flex:0 0 100%}@media screen and (min-width:64em){.row.large-unstack>.column,.row.large-unstack>.columns{-ms-flex:1 1 0px;flex:1 1 0px}.large-collapse>.column,.large-collapse>.columns{padding-left:0;padding-right:0}.large-uncollapse>.column,.large-uncollapse>.columns{padding-left:.9375rem;padding-right:.9375rem}}.shrink{-ms-flex:0 0 auto;flex:0 0 auto}.align-top.columns,.column.align-top{-ms-flex-item-align:start;align-self:flex-start}.align-bottom.columns,.column.align-bottom{-ms-flex-item-align:end;align-self:flex-end}.align-middle.columns,.column.align-middle{-ms-flex-item-align:center;align-self:center}.align-stretch.columns,.column.align-stretch{-ms-flex-item-align:stretch;align-self:stretch}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}ol,ul{margin-left:1.25rem}dl,ol,p,ul{line-height:1.6;margin-bottom:1rem}li,p{font-size:inherit}em,i{font-style:italic}h1,h2,h3,h4,h5,h6{font-style:normal;color:inherit;margin-top:0;margin-bottom:.5rem;line-height:1.4}code,kbd{font-family:Consolas,"Liberation Mono",Courier,monospace;background-color:#e6e6e6}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#cacaca;line-height:0}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.1875rem}h4{font-size:1.125rem}h5{font-size:1.0625rem}h6{font-size:1rem}@media screen and (min-width:40em){h1{font-size:3rem}h2{font-size:2.5rem}h3{font-size:1.9375rem}h4{font-size:1.5625rem}h5{font-size:1.25rem}h6{font-size:1rem}}a{background-color:transparent;color:#2199e8;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1585cf}a img{border:0}hr{box-sizing:content-box;max-width:75rem;height:0;border-right:0;border-top:0;border-bottom:1px solid #cacaca;border-left:0;margin:1.25rem auto;clear:both}dl,ol,ul{list-style-position:outside}ul{list-style-type:disc}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl dt{margin-bottom:.3rem;font-weight:700}.subheader,code,label{font-weight:400}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}cite{display:block;font-size:.8125rem;color:#8a8a8a}cite:before{content:'\2014 \0020'}abbr{cursor:help;border-bottom:1px dotted #0a0a0a}code{border:1px solid #cacaca;padding:.125rem .3125rem .0625rem}kbd{padding:.125rem .25rem 0;margin:0}.subheader{margin-top:.2rem;margin-bottom:.5rem;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}.no-bullet{margin-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{blockquote,img,pre,tr{page-break-inside:avoid}*{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print,th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='javascript:']:after,a[href^='#']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a}thead{display:table-header-group}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;box-sizing:border-box;width:100%;height:2.4375rem;padding:.5rem;border:1px solid #cacaca;margin:0 0 1rem;font-family:inherit;font-size:1rem;color:#0a0a0a;background-color:#fefefe;box-shadow:inset 0 1px 2px rgba(10,10,10,.1);border-radius:0;transition:box-shadow .5s,border-color .25s ease-in-out;-webkit-appearance:none;-moz-appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{border:1px solid #8a8a8a;background-color:#fefefe;outline:0;box-shadow:0 0 5px #cacaca;transition:box-shadow .5s,border-color .25s ease-in-out}textarea{min-height:50px}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#cacaca}input::-moz-placeholder,textarea::-moz-placeholder{color:#cacaca}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#cacaca}input::placeholder,textarea::placeholder{color:#cacaca}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{border-radius:0}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;margin-left:.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}label{display:block;margin:0;font-size:.875rem;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:flex;margin-bottom:1rem;-ms-flex-align:stretch;align-items:stretch}.input-group-button a,.input-group-button button,.input-group-button input,fieldset{margin:0}.input-group>:first-child,.input-group>:last-child>*{border-radius:0}.input-group-button,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{text-align:center;padding:0 1rem;background:#e6e6e6;color:#0a0a0a;border:1px solid #cacaca;white-space:nowrap;-ms-flex:0 0 auto;flex:0 0 auto;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-ms-flex:1 1 0px;flex:1 1 0px;width:auto;height:auto}.fieldset,select{border:1px solid #cacaca}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;-ms-flex:0 0 auto;flex:0 0 auto}.input-group .input-group-button{display:table-cell}fieldset{border:0;padding:0}legend{margin-bottom:.5rem}.fieldset{padding:1.25rem;margin:1.125rem 0}.fieldset legend{background:#fefefe;padding:0 .1875rem;margin:0 0 0 -.1875rem}select{height:2.4375rem;padding:.5rem 1.5rem .5rem .5rem;margin:0 0 1rem;font-size:1rem;font-family:inherit;line-height:normal;color:#0a0a0a;background-color:#fefefe;border-radius:0;background-image:url("data:image/svg+xml;utf8,");background-size:9px 6px;background-position:right -1rem center;background-origin:content-box;background-repeat:no-repeat}.form-error,.is-invalid-label{color:#ec5840}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{background-image:none}.is-invalid-input:not(:focus){background-color:rgba(236,88,64,.1);border-color:#ec5840}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700}.form-error.is-visible{display:block}.button{display:inline-block;text-align:center;line-height:1;cursor:pointer;transition:background-color .25s ease-out,color .25s ease-out;vertical-align:middle;border:1px solid transparent;border-radius:0;padding:.85em 1em;margin:0 0 1rem;font-size:.9rem;background-color:#2199e8;color:#fefefe}.button:focus,.button:hover{background-color:#1583cc;color:#fefefe}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-left:0;margin-right:0}.button.primary{background-color:#2199e8;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#147cc0;color:#fefefe}.button.secondary{background-color:#777;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5f5f5f;color:#fefefe}.button.success{background-color:#3adb76;color:#fefefe}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#fefefe}.button.warning{background-color:#ffae00;color:#fefefe}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#fefefe}.button.alert{background-color:#ec5840;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#da3116;color:#fefefe}.button.hollow{border:1px solid #2199e8;color:#2199e8}.button.hollow,.button.hollow:focus,.button.hollow:hover{background-color:transparent}.button.hollow:focus,.button.hollow:hover{border-color:#0c4d78;color:#0c4d78}.button.hollow.primary{border:1px solid #2199e8;color:#2199e8}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c4d78;color:#0c4d78}.button.hollow.secondary{border:1px solid #777;color:#777}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3c3c3c;color:#3c3c3c}.button.hollow.success{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert{border:1px solid #ec5840;color:#ec5840}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#881f0e;color:#881f0e}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.disabled:focus,.button.disabled:hover,.button[disabled]:focus,.button[disabled]:hover{background-color:#2199e8;color:#fefefe}.button.dropdown::after{content:'';width:0;height:0;border:.4em inset;border-color:#fefefe transparent transparent;border-top-style:solid;border-bottom-width:0;position:relative;top:.4em;float:right;margin-left:1em;display:inline-block}.button.arrow-only::after{margin-left:0;float:none;top:-.1em}.flex-video{position:relative;height:0;padding-bottom:75%;margin-bottom:1rem}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen{padding-bottom:56.25%}.flex-video.vimeo{padding-top:0}.hide{display:none!important}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.9375em){.hide-for-small-only,.show-for-medium{display:none!important}}@media screen and (min-width:40em) and (max-width:63.9375em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.9375em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.9375em){.show-for-large{display:none!important}}@media screen and (min-width:64em) and (max-width:74.9375em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.9375em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.show-on-focus:active,.show-on-focus:focus{position:static!important;height:auto;width:auto;overflow:visible;clip:auto}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}.hide-for-landscape,.show-for-portrait{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}.hide-for-landscape,.show-for-portrait{display:block!important}}.align-right{-ms-flex-pack:end;justify-content:flex-end}.align-center{-ms-flex-pack:center;justify-content:center}.align-justify{-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-ms-flex-pack:distribute;justify-content:space-around}.align-top{-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}.align-self-top{-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}.align-self-bottom{-ms-flex-item-align:end;align-self:flex-end}.align-middle{-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}.align-self-middle{-ms-flex-item-align:center;align-self:center}.align-stretch{-ms-flex-align:stretch;-ms-grid-row-align:stretch;align-items:stretch}.align-self-stretch{-ms-flex-item-align:stretch;align-self:stretch}.small-order-1{-ms-flex-order:1;order:1}.small-order-2{-ms-flex-order:2;order:2}.small-order-3{-ms-flex-order:3;order:3}.small-order-4{-ms-flex-order:4;order:4}.small-order-5{-ms-flex-order:5;order:5}.small-order-6{-ms-flex-order:6;order:6}@media screen and (min-width:40em){.medium-order-1{-ms-flex-order:1;order:1}.medium-order-2{-ms-flex-order:2;order:2}.medium-order-3{-ms-flex-order:3;order:3}.medium-order-4{-ms-flex-order:4;order:4}.medium-order-5{-ms-flex-order:5;order:5}.medium-order-6{-ms-flex-order:6;order:6}}@media screen and (min-width:64em){.large-order-1{-ms-flex-order:1;order:1}.large-order-2{-ms-flex-order:2;order:2}.large-order-3{-ms-flex-order:3;order:3}.large-order-4{-ms-flex-order:4;order:4}.large-order-5{-ms-flex-order:5;order:5}.large-order-6{-ms-flex-order:6;order:6}}.leaflet-image-layer,.leaflet-layer,.leaflet-map-pane,.leaflet-marker-icon,.leaflet-marker-pane,.leaflet-marker-shadow,.leaflet-overlay-pane,.leaflet-overlay-pane svg,.leaflet-popup-pane,.leaflet-shadow-pane,.leaflet-tile,.leaflet-tile-container,.leaflet-tile-pane,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container img{max-width:none!important}.leaflet-container img.leaflet-image-layer{max-width:15000px!important}.leaflet-tile{filter:inherit}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-tile-pane{z-index:2}.leaflet-objects-pane{z-index:3}.leaflet-overlay-pane{z-index:4}.leaflet-shadow-pane{z-index:5}.leaflet-marker-pane{z-index:6}.leaflet-popup-pane{z-index:7}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:7;pointer-events:auto;float:left;clear:both}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-right .leaflet-control{float:right;margin-right:10px}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-fade-anim .leaflet-popup,.leaflet-fade-anim .leaflet-tile{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup,.leaflet-fade-anim .leaflet-tile-loaded{opacity:1}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-touching .leaflet-zoom-animated,.leaflet-zoom-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-clickable{cursor:pointer}.leaflet-container{overflow:hidden;-ms-touch-action:none;touch-action:none;cursor:-webkit-grab;cursor:-moz-grab;background:#ddd;outline:0;font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-clickable,.leaflet-dragging .leaflet-container{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing}.leaflet-container a{color:#0078A8}.leaflet-container a.leaflet-active{outline:orange solid 2px}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a,.leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px 'Lucida Console',Monaco,monospace;text-indent:1px}.leaflet-control-zoom-out{font-size:20px}.leaflet-touch .leaflet-control-zoom-in{font-size:22px}.leaflet-touch .leaflet-control-zoom-out{font-size:24px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(images/layers.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.7);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale{font-size:11px}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;-moz-box-sizing:content-box;box-sizing:content-box;background:#fff;background:rgba(255,255,255,.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 19px;line-height:1.4}.leaflet-popup-content p{margin:18px 0}.leaflet-popup-tip-container{margin:0 auto;width:40px;height:20px;position:relative;overflow:hidden}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:700;background:0 0}.leaflet-container a.leaflet-popup-close-button:hover{color:#999}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678, M12=.70710678, M21=-.70710678, M22=.70710678)}.leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-draw-section{position:relative}.leaflet-draw-toolbar{margin-top:12px}.leaflet-draw-actions-bottom,.leaflet-draw-toolbar-top{margin-top:0}.leaflet-draw-toolbar-notop a:first-child{border-top-right-radius:0}.leaflet-draw-toolbar-nobottom a:last-child{border-bottom-right-radius:0}.leaflet-draw-toolbar a{background-image:url(images/spritesheet.png);background-repeat:no-repeat}.leaflet-retina .leaflet-draw-toolbar a{background-image:url(images/spritesheet-2x.png);background-size:270px 30px}.leaflet-draw a{display:block;text-align:center;text-decoration:none}.leaflet-draw-actions{display:none;list-style:none;margin:0;padding:0;position:absolute;left:26px;top:0;white-space:nowrap}.leaflet-touch .leaflet-draw-actions{left:32px}.leaflet-right .leaflet-draw-actions{right:26px;left:auto}.leaflet-touch .leaflet-right .leaflet-draw-actions{right:32px;left:auto}.leaflet-draw-actions li{display:inline-block}.leaflet-draw-actions li:first-child a{border-left:none}.leaflet-draw-actions li:last-child a{-webkit-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.leaflet-right .leaflet-draw-actions li:last-child a{-webkit-border-radius:0;border-radius:0}.leaflet-right .leaflet-draw-actions li:first-child a{-webkit-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.leaflet-draw-actions a{background-color:#919187;border-left:1px solid #AAA;color:#FFF;font:11px/19px "Helvetica Neue",Arial,Helvetica,sans-serif;line-height:28px;text-decoration:none;padding-left:10px;padding-right:10px;height:28px}.leaflet-touch .leaflet-draw-actions a{font-size:12px;line-height:30px;height:30px}.leaflet-draw-actions-top{margin-top:1px}.leaflet-draw-actions-bottom a,.leaflet-draw-actions-top a{height:27px;line-height:27px}.leaflet-draw-actions a:hover{background-color:#A0A098}.leaflet-draw-actions-top.leaflet-draw-actions-bottom a{height:26px;line-height:26px}.leaflet-draw-toolbar .leaflet-draw-draw-polyline{background-position:-2px -2px}.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-polyline{background-position:0 -1px}.leaflet-draw-toolbar .leaflet-draw-draw-polygon{background-position:-31px -2px}.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-polygon{background-position:-29px -1px}.leaflet-draw-toolbar .leaflet-draw-draw-rectangle{background-position:-62px -2px}.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-rectangle{background-position:-60px -1px}.leaflet-draw-toolbar .leaflet-draw-draw-circle{background-position:-92px -2px}.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-circle{background-position:-90px -1px}.leaflet-draw-toolbar .leaflet-draw-draw-marker{background-position:-122px -2px}.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-marker{background-position:-120px -1px}.leaflet-draw-toolbar .leaflet-draw-edit-edit{background-position:-152px -2px}.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-edit-edit{background-position:-150px -1px}.leaflet-draw-toolbar .leaflet-draw-edit-remove{background-position:-182px -2px}.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-edit-remove{background-position:-180px -1px}.leaflet-draw-toolbar .leaflet-draw-edit-edit.leaflet-disabled{background-position:-212px -2px}.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-edit-edit.leaflet-disabled{background-position:-210px -1px}.leaflet-draw-toolbar .leaflet-draw-edit-remove.leaflet-disabled{background-position:-242px -2px}.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-edit-remove.leaflet-disabled{background-position:-240px -2px}.leaflet-mouse-marker{background-color:#fff;cursor:crosshair}.leaflet-draw-tooltip{background:#363636;background:rgba(0,0,0,.5);border:1px solid transparent;-webkit-border-radius:4px;border-radius:4px;color:#fff;font:12px/18px "Helvetica Neue",Arial,Helvetica,sans-serif;margin-left:20px;margin-top:-21px;padding:4px 8px;position:absolute;visibility:hidden;white-space:nowrap;z-index:6}.leaflet-draw-tooltip:before{border-right:6px solid #000;border-right-color:rgba(0,0,0,.5);border-top:6px solid transparent;border-bottom:6px solid transparent;content:"";position:absolute;top:7px;left:-7px}.info::before,.leaflet-routing-icon{content:''}.leaflet-error-draw-tooltip{background-color:#F2DEDE;border:1px solid #E6B6BD;color:#B94A48}.leaflet-error-draw-tooltip:before{border-right-color:#E6B6BD}.leaflet-draw-tooltip-single{margin-top:-12px}.leaflet-draw-tooltip-subtext{color:#f8d5e4}.leaflet-draw-guide-dash{font-size:1%;opacity:.6;position:absolute;width:5px;height:5px}.leaflet-edit-marker-selected{background:rgba(254,87,161,.1);border:4px dashed rgba(254,87,161,.6);-webkit-border-radius:4px;border-radius:4px;box-sizing:content-box}.leaflet-edit-move{cursor:move}.leaflet-edit-resize{cursor:pointer}.leaflet-oldie .leaflet-draw-toolbar{border:1px solid #999}.leaflet-control-geocoder .leaflet-control-geocoder-icon,.leaflet-control-geocoder .leaflet-control-geocoder-icon:hover,.leaflet-control-geocoder a,.leaflet-control-geocoder a:hover{border-bottom:none;display:inline-block}.leaflet-control-draw-measure{background-image:url(images/measure-control.png)}.gmruler-label{margin:0;position:absolute;padding:.2em .3em .2em .8em;cursor:pointer;color:#fff;background-color:rgba(22,22,22,.45);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.gmruler-upper-dot{height:7px;width:7px;background-color:#7be500;border-radius:7px;position:absolute;left:0;top:0}#map,body,html{width:100%;height:100%}body,html{margin:0}.info::before{-webkit-background-size:72px 18px;background-size:72px 18px;background-image:url(modes.icons.svg);margin:0;display:inline-block;vertical-align:top;background-repeat:no-repeat;width:18px;height:18px}.info.auto::before{background-position:0 0}.info.bicycle::before{background-position:-18px 0}.info.multimodal::before{background-position:-36px 0}.info.pedestrian::before{background-position:-54px 0}.leaflet-routing-icon-kNone{background-position:0 0}.leaflet-routing-icon-kStart{background-position:-18px 0}.leaflet-routing-icon-kStartRight{background-position:-36px 0}.leaflet-routing-icon-kStartLeft{background-position:-54px 0}.leaflet-routing-icon-kDestination{background-position:-72px 0}.leaflet-routing-icon-kDestinationRight{background-position:-90px 0}.leaflet-routing-icon-kDestinationLeft{background-position:-108px 0}.leaflet-routing-icon-kBecomes{background-position:-126px 0}.leaflet-routing-icon-kContinue{background-position:-144px 0}.leaflet-routing-icon-kSlightRight{background-position:-162px 0}.leaflet-routing-icon-kRight{background-position:-180px 0}.leaflet-routing-icon-kSharpRight{background-position:-198px 0}.leaflet-routing-icon-kUturnRight{background-position:-216px 0}.leaflet-routing-icon-kUturnLeft{background-position:-234px 0}.leaflet-routing-icon-kSharpLeft{background-position:-252px 0}.leaflet-routing-icon-kLeft{background-position:-270px 0}.leaflet-routing-icon-kSlightLeft{background-position:-288px 0}.leaflet-routing-icon-kRampStraight{background-position:-306px 0}.leaflet-routing-icon-kRampRight{background-position:-324px 0}.leaflet-routing-icon-kRampLeft{background-position:-342px 0}.leaflet-routing-icon-kExitRight{background-position:-360px 0}.leaflet-routing-icon-kExitLeft{background-position:-378px 0}.leaflet-routing-icon-kStayStraight{background-position:-396px 0}.leaflet-routing-icon-kStayRight{background-position:-414px 0}.leaflet-routing-icon-kStayLeft{background-position:-432px 0}.leaflet-routing-icon-kMerge{background-position:-450px 0}.leaflet-routing-icon-kRoundaboutEnter{background-position:-468px 0}.leaflet-routing-icon-kRoundaboutExit{background-position:-486px 0}.leaflet-routing-icon-kFerryEnter{background-position:-504px 0}.leaflet-routing-icon-kFerryExit{background-position:-522px 0}.leaflet-routing-icon-kTransitBus{background-position:-540px 0}.leaflet-routing-icon-kTransitCable_car{background-position:-558px 0}.leaflet-routing-icon-kTransitFerry{background-position:-576px 0}.leaflet-routing-icon-kTransitFunicular{background-position:-594px 0}.leaflet-routing-icon-kTransitGondola{background-position:-612px 0}.leaflet-routing-icon-kTransitMetro{background-position:-630px 0}.leaflet-routing-icon-kTransitRail{background-position:-648px 0}.leaflet-routing-icon-kTransitTram{background-position:-666px 0}.leaflet-control-geocoder{border-radius:4px;background:#fff;min-width:26px;min-height:26px}.leaflet-touch .leaflet-control-geocoder{min-width:30px;min-height:30px}.leaflet-control-geocoder .leaflet-control-geocoder-alternatives a{width:inherit;height:inherit;line-height:inherit}.leaflet-control-geocoder-form{display:none;vertical-align:middle}.leaflet-control-geocoder-expanded .leaflet-control-geocoder-form{display:inline-block}.leaflet-control-geocoder-form button,.leaflet-control-geocoder-form-no-error{display:none}.leaflet-control-geocoder-form input{font-size:120%;border:0;background-color:transparent;width:246px}.leaflet-control-geocoder-icon{border-radius:4px;width:26px;height:26px;border:none;background-color:#fff;background-image:url(images/geocoder.png);background-repeat:no-repeat;background-position:center}.leaflet-touch .leaflet-control-geocoder-icon{width:30px;height:30px}.leaflet-control-geocoder-throbber .leaflet-control-geocoder-icon{background-image:url(images/throbber.gif)}.leaflet-control-geocoder-form input:focus{outline:0}.leaflet-control-geocoder-error{margin-top:8px;margin-left:8px;display:block;color:#444}.leaflet-control-geocoder-alternatives{display:block;width:272px;list-style:none;padding:0;margin:0}.leaflet-control-geocoder-alternatives-minimized{display:none;height:0}.leaflet-control-geocoder-alternatives li{white-space:nowrap;display:block;overflow:hidden;padding:5px 8px;text-overflow:ellipsis;border-bottom:1px solid #ccc;cursor:pointer}.leaflet-control-geocoder-alternatives li a,.leaflet-control-geocoder-alternatives li a:hover{width:inherit;height:inherit;line-height:inherit;background:inherit;border-radius:inherit;text-align:left}.leaflet-container.leaflet-fullscreen-on,.leaflet-pseudo-fullscreen{width:100%!important;height:100%!important}.leaflet-control-geocoder-alternatives li:last-child{border-bottom:none}.leaflet-control-geocoder-alternatives li:hover,.leaflet-control-geocoder-selected{background-color:#f5f5f5}.leaflet-control-geocoder-address-context{color:#666}.leaflet-control-fullscreen a{background:url(fullscreen.png) no-repeat #fff;background-size:26px 52px}.leaflet-touch .leaflet-control-fullscreen a{background-position:2px 2px}.leaflet-fullscreen-on .leaflet-control-fullscreen a{background-position:0 -26px}.leaflet-touch.leaflet-fullscreen-on .leaflet-control-fullscreen a{background-position:2px -24px}.leaflet-container:-webkit-full-screen{width:100%!important;height:100%!important}.leaflet-pseudo-fullscreen{position:fixed!important;top:0!important;left:0!important;z-index:99999}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.leaflet-control-fullscreen a{background-image:url(fullscreen@2x.png)}}.leaflet-routing-container,.leaflet-routing-error{width:320px;background-color:#fff;padding-top:4px;transition:all .2s ease;box-sizing:border-box}.leaflet-control-container .leaflet-routing-container-hide{width:32px;height:32px}.leaflet-routing-container h2{font-size:14px}.leaflet-routing-container h3{font-size:12px;font-weight:400}.leaflet-routing-collapsible .leaflet-routing-geocoders{margin-top:20px}.leaflet-routing-alt,.leaflet-routing-error,.leaflet-routing-geocoders{padding:6px;margin-top:2px;margin-bottom:6px;border-bottom:1px solid #ccc;max-height:320px;overflow-y:auto;transition:all .2s ease}.leaflet-control-container .leaflet-routing-container-hide .leaflet-routing-alt,.leaflet-control-container .leaflet-routing-container-hide .leaflet-routing-geocoders{display:none}.leaflet-bar .leaflet-routing-alt:last-child{border-bottom:none}.leaflet-routing-alt-minimized{color:#888;max-height:64px;overflow:hidden;cursor:pointer}.leaflet-routing-alt tr:hover{background-color:#eee;cursor:pointer}.leaflet-routing-alt::-webkit-scrollbar{width:8px}.leaflet-routing-alt::-webkit-scrollbar-track{border-radius:2px;background-color:#eee}.leaflet-routing-alt::-webkit-scrollbar-thumb{border-radius:2px;background-color:#888}.leaflet-routing-icon{background-image:url(leaflet.routing.icons.png);-webkit-background-size:240px 20px;background-size:240px 20px;background-repeat:no-repeat;margin:0;display:inline-block;vertical-align:top;width:20px;height:20px}.leaflet-routing-icon-continue{background-position:0 0}.leaflet-routing-icon-sharp-right{background-position:-20px 0}.leaflet-routing-icon-turn-right{background-position:-40px 0}.leaflet-routing-icon-bear-right{background-position:-60px 0}.leaflet-routing-icon-u-turn{background-position:-80px 0}.leaflet-routing-icon-sharp-left{background-position:-100px 0}.leaflet-routing-icon-turn-left{background-position:-120px 0}.leaflet-routing-icon-bear-left{background-position:-140px 0}.leaflet-routing-icon-depart{background-position:-160px 0}.leaflet-routing-icon-enter-roundabout{background-position:-180px 0}.leaflet-routing-icon-arrive{background-position:-200px 0}.leaflet-routing-icon-via{background-position:-220px 0}.leaflet-routing-geocoders div{padding:4px 0}.leaflet-routing-geocoders input{width:303px;width:calc(100% - 4px);line-height:1.67;border:1px solid #ccc}.leaflet-routing-geocoders button{font:700 18px 'Lucida Console',Monaco,monospace;border:1px solid #ccc;border-radius:4px;background-color:#fff;margin:0 3px 0 0;float:right;cursor:pointer;transition:background-color .2s ease}.leaflet-routing-add-waypoint:after{content:'+'}.leaflet-routing-reverse-waypoints:after{font-weight:400;content:'\21c5'}.leaflet-routing-geocoders button:hover{background-color:#eee}.leaflet-routing-geocoder,.leaflet-routing-geocoders input,.leaflet-routing-remove-waypoint{position:relative}.leaflet-routing-geocoder-result{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif;position:absolute;max-height:0;overflow:hidden;transition:all .5s ease;z-index:1000}.leaflet-routing-geocoder-result table{width:100%;border:1px solid #ccc;border-radius:0 0 4px 4px;background-color:#fff;cursor:pointer}.leaflet-routing-geocoder-result-open{max-height:800px}.leaflet-routing-geocoder-result tr:hover,.leaflet-routing-geocoder-selected{background-color:#eee}.leaflet-routing-geocoder-no-results{font-style:italic;color:#888}.leaflet-routing-remove-waypoint{background-color:transparent;display:inline-block;vertical-align:middle;cursor:pointer}.leaflet-routing-remove-waypoint:after{position:absolute;display:block;width:15px;height:1px;z-index:1;right:1px;top:4px;bottom:0;margin:-16px auto auto;padding:2px 4px 16px 2px;font-size:18px;font-weight:700;content:"\00d7";text-align:center;cursor:pointer;color:#ccc;background:#fff;line-height:1}.leaflet-routing-remove-waypoint:hover{color:#000}.leaflet-routing-instruction-distance{width:48px}.leaflet-routing-collapse-btn{position:absolute;top:0;right:6px;font-size:24px;color:#ccc;font-weight:700}.leaflet-routing-collapse-btn:after{content:'\00d7'}.leaflet-routing-container-hide .leaflet-routing-collapse-btn{position:relative;left:4px;top:4px;display:block;width:26px;height:23px;background-image:url(routing-icon.png)}.leaflet-routing-container-hide .leaflet-routing-collapse-btn:after{content:none}.leaflet-top .leaflet-routing-container.leaflet-routing-container-hide{margin-top:10px!important}.leaflet-right .leaflet-routing-container.leaflet-routing-container-hide{margin-right:10px!important}.leaflet-bottom .leaflet-routing-container.leaflet-routing-container-hide{margin-bottom:10px!important}.leaflet-left .leaflet-routing-container.leaflet-routing-container-hide{margin-left:10px!important}@media only screen and (max-width:640px){.leaflet-routing-container{margin:0!important;padding:0!important;width:100%;height:100%}} -------------------------------------------------------------------------------- /dist/css/map/index.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["index.min.css"],"names":[],"mappings":"AAAM,KAAN,KACE,OAAQ,EACR,QAAS,EACT,OAAQ,KACR,MAAO,KACP,YAAa,IAEf,yBACE,WAAY,YAEd,qCACE,KAAM,kBACN,MAAO,YACP,OAAQ,eAEV,kCACE,IAAK,KACL,MAAO,KAET,6CACE,OAAQ,eACR,MAAO,eACP,oDACE,SAAU,SACV,MAAO,MACP,OAAQ,KACR,MAAO,KAEX,sDACE,MAAO,KAET,8FACE,MAAO,MACP,oGACE,QAAS,EAAE,EAAE,EAAE,KACf,OAAQ,EACR,OAAQ,KACR,WAAY,KAEhB,oEACE,gBAAiB,IACjB,MAAO,KACP,OAAQ,KAEV,gEACE,WAAY,KACZ,8FACE,IAAK,KAET,qEACE,MAAO,KACP,OAAQ,KACR,YAAa,EACb,mGACE,OAAQ,KACR,MAAO,KACP,gBAAiB,IACjB,kBAAmB,UACnB,oBAAqB,OACrB,SAAU,OAsLd,gBACE,OAAQ,KACR,4BACE,QAAS,MACT,MAAO,KACT,sCACE,QAAS,KACX,wCACE,QAAS,KAAK,EACd,OAAQ,IAAI,EACd,+BACE,OAAQ,QACV,6BACE,YAAa,IACf,4CACE,OAAQ,KACR,QAAS,YACT,QAAS,KACT,mBAAoB,IAChB,eAAgB,IACpB,2DACE,SAAU,SACV,OAAQ,KACR,MAAO,KACP,SAAU,OACV,QAAS,EACT,iFACE,OAAQ,KACR,MAAO,MACP,SAAU,SACV,OAAQ,EACR,KAAM,EACN,iBAAkB,KAClB,QAAS,WACT,WAAY,IAAI,MAAM,QACtB,wGAAyG,6GAA8G,wGACrN,OAAQ,KACR,MAAO,KACP,QAAS,aACT,aAAc,IAAI,MAAM,QAC1B,yHAA0H,8HAA+H,yHACvP,oBAAqB,KACrB,iBAAkB,KAClB,gBAAiB,KACjB,YAAa,KACb,OAAQ,IACV,yIAAwT,6KAA9K,6KAA4V,uIAAgR,wIAAxI,uIAC5mB,OAAQ,KACR,QAAS,aACT,MAAO,KACP,OAAQ,QACR,kBAAmB,UACnB,oBAAqB,OACrB,+IAAoU,mLAApL,mLAAwW,6IAA4R,8IAA9I,6IACpoB,iBAAkB,QACtB,+FACE,OAAQ,IACR,QAAS,EAAE,IACX,UAAW,KACX,WAAY,OACZ,cAAe,IAAI,MAAM,QAC3B,wGACE,MAAO,IACP,yIACE,MAAO,KACP,iBAAkB,8BAClB,gBAAiB,IACrB,6GACE,MAAO,IACP,6KACE,MAAO,IACP,aAAc,IAAI,MAAM,QACxB,iBAAkB,yBAClB,gBAAiB,IACnB,6KACE,MAAO,IACP,iBAAkB,yBAClB,gBAAiB,IACnB,mJACE,iBAAkB,QACtB,wGACE,MAAO,IACP,uIACE,MAAO,OACP,gBAAiB,KAAK,IACtB,iBAAkB,mCAClB,aAAc,IAAI,MAAM,QAC1B,uIACE,MAAO,OACP,gBAAiB,KAAK,IACtB,iBAAkB,mCAClB,aAAc,IAAI,MAAM,QAC1B,wIACE,MAAO,OACP,gBAAiB,KAAK,IACtB,iBAAkB,oCACxB,uEAAgJ,wEAAxE,uEACtE,OAAQ,KACR,MAAO,KACX,8DACE,OAAQ,KACR,QAAS,YACT,QAAS,KACT,mBAAoB,IAChB,eAAgB,IACpB,sFACE,QAAS,YACT,QAAS,KACT,OAAQ,KACR,OAAQ,WACR,mBAAoB,OAChB,eAAgB,OACpB,cAAe,OACX,gBAAiB,OACrB,aAAc,IAAI,MAAM,QACxB,YAAa,IAAI,MAAM,QAEvB,qGACE,MAAO,KACP,OAAQ,KACR,iBAAkB,6BAClB,kBAAmB,UACnB,oBAAqB,OACrB,gBAAiB,IACjB,OAAQ,QACZ,yEACE,QAAS,MACT,OAAQ,KACR,MAAO,MACP,SAAU,KACV,2FAA4F,uFAAgR,4FAA5F,2FAA5F,2FAAqR,2FACvc,QAAS,EAAE,KACb,uFACE,QAAS,MACT,MAAO,KACT,iGACE,SAAU,SACZ,wFACE,OAAQ,QACV,oFACE,UAAW,KACX,MAAO,IACT,+FAEA,iGADE,QAAS,KAGX,uFACE,WAAY,KACd,mKACE,QAAS,KAAK,KAAK,KACnB,8LACE,QAAS,EA2B2O,4HAJxP,mHAI4H,2HAA5H,2HACE,QAAS,IAAI,EA3BX,iNACE,SAAU,SACV,cAAe,IAAI,MAAM,KACzB,QAAS,IAAI,EACb,qOACE,QAAS,aACX,qOACE,QAAS,aACT,SAAU,SACV,MAAO,KACP,qPACE,MAAO,MACP,OAAQ,QACV,uPACE,MAAO,IACP,OAAQ,QACd,uNACE,OAAQ,KAAK,EAAE,EACrB,iHACE,OAAQ,KAAK,EAAE,KACf,iKACE,OAAQ,KAAK,EAAE,EAGnB,4FACE,OAAQ,IAAI,EAGwS,0JAA1J,yJAA1J,yJACE,OAAQ,EAC4M,4GAA5G,2GAA5G,2GACE,OAAQ,EAAE,EAAE,KAC0N,oHAApH,mHAApH,mHACE,QAAS,MACyN,kHAAlH,iHAAlH,iHACE,WAAY,IAAI,MAAM,QACtB,QAAS,KAAK,EAAE,EACoT,kKAAlK,iKAAlK,iKACE,OAAQ,KAAK,EAAE","file":"index.min.css","sourceRoot":"/source/","sourcesContent":[]} -------------------------------------------------------------------------------- /dist/css/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/marker-icon-2x.png -------------------------------------------------------------------------------- /dist/css/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/marker-icon.png -------------------------------------------------------------------------------- /dist/css/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/marker-shadow.png -------------------------------------------------------------------------------- /dist/css/modes.icons.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/css/routing-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/routing-icon.png -------------------------------------------------------------------------------- /dist/css/throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/dist/css/throbber.gif -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/favicon.ico -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | require('es6-promise').polyfill(); 2 | 3 | var gulp = require('gulp'), 4 | plumber = require('gulp-plumber'), 5 | rename = require('gulp-rename'), 6 | concat = require('gulp-concat'), 7 | uglify = require('gulp-uglify'), 8 | imagemin = require('gulp-imagemin'), 9 | cache = require('gulp-cache'), 10 | sass = require('gulp-sass'), 11 | cleanCSS = require('gulp-clean-css'), 12 | sourcemaps = require('gulp-sourcemaps'), 13 | postcss = require('gulp-postcss'), 14 | autoprefixer = require('autoprefixer'), 15 | server = require('gulp-develop-server'); 16 | var browserSync = require('browser-sync').create(); 17 | 18 | /* 19 | * reload for somedomain.someextension 20 | * */ 21 | 22 | gulp.task('browser-sync', function() { 23 | browserSync.init({ 24 | // proxy: "http://local.tourist777.ru/", 25 | //tunnel: "my-private-site-329183912" 26 | //open: "ui", 27 | //notify: false 28 | }); 29 | }); 30 | 31 | 32 | /* 33 | * sass -> css 34 | * */ 35 | gulp.task('convert_scss_and_minification', function () { 36 | gulp.src(['src/scss/**/*']) 37 | .pipe(plumber({ 38 | errorHandler: function (error) { 39 | console.log(error.message); 40 | this.emit('end'); 41 | } 42 | })) 43 | .pipe(sass()) 44 | .pipe(postcss([autoprefixer({browsers: ['last 2 versions']})])) 45 | .pipe(rename({suffix: '.min'})) 46 | .pipe(sourcemaps.init()) 47 | .pipe(cleanCSS()) 48 | .pipe(sourcemaps.write('map')) 49 | .pipe(gulp.dest('./dist/css/')) 50 | .pipe(browserSync.stream()); 51 | }); 52 | 53 | /* 54 | * minification of JS 55 | * */ 56 | gulp.task('minification_js', function () { 57 | return gulp.src('./src/js/**/*') 58 | .pipe(sourcemaps.init()) 59 | .pipe(plumber({ 60 | errorHandler: function (error) { 61 | console.log(error.message); 62 | this.emit('end'); 63 | } 64 | })) 65 | //.pipe(concat('concat.js')) 66 | .pipe(rename({suffix: '.min'})) 67 | .pipe(uglify()) 68 | .pipe(sourcemaps.write('map')) 69 | .pipe(gulp.dest('./dist/js/')); 70 | }); 71 | 72 | gulp.task('minification_js_library', function () { 73 | return gulp.src(["lib/bower_components/jquery/dist/jquery.min.js", "lib/button_full_screen/full_screen_control.js", "lib/traffic_control/fraffic_control.js", "lib/leaflet/leaflet.js", "lib/node_modules/leaflet-draw/dist/leaflet.draw.js", "lib/bower_components/google-maps-ruler/dist/google-maps-ruler.js", "lib/ruler_control/ruler_control.js", "lib/geocoding_google_control/geocoding_google_control.js", "lib/route_google_control/route_google_control.js", "lib/leaflet_measurement_control/leaflet.measurecontrol.js", "lib/extension_leaflet/full_screen/Leaflet.fullscreen.min.js", "lib/bing_layer/Bing.js", "lib/leaflet-control-geocoder-1.5.1/dist/Control.Geocoder.js", "lib/leaflet-control-geocoder-1.5.1/my_drop_down_menu/drop_down_menu_providers.js", "lib/leaflet_route_lib_providers/lrm-mapbox-1.0.4.js", "lib/leaflet_route_lib_providers/lrm-graphhopper-1.1.2.min.js", "lib/leaflet_route_lib_providers/lrm-mapzen-master/dist/lrm-mapzen.min.js", "lib/node_modules/leaflet-routing-machine/dist/leaflet-routing-machine.min.js", "lib/node_modules/leaflet-routing-machine/my_control/control_routing_machine.js"]) 74 | .pipe(plumber({ 75 | errorHandler: function (error) { 76 | console.log(error.message); 77 | this.emit('end'); 78 | } 79 | })) 80 | .pipe(concat('libraries.js')) 81 | .pipe(uglify()) 82 | .pipe(gulp.dest('./dist/js/')); 83 | }); 84 | 85 | gulp.task('minification_css_library', function () { 86 | gulp.src(["lib/bower_components/foundation-sites/dist/css/foundation-flex.min.css", "lib/leaflet/leaflet.css", "lib/node_modules/leaflet-draw/dist/leaflet.draw.css", "lib/leaflet_measurement_control/leaflet.measurecontrol.css", "lib/bower_components/google-maps-ruler/google-maps-ruler.css", "lib/leaflet_route_lib_providers/lrm-mapzen-master/dist/lrm-mapzen.css", "lib/leaflet-control-geocoder-1.5.1/dist/Control.Geocoder.css", "lib/extension_leaflet/full_screen/leaflet.fullscreen.css", "lib/node_modules/leaflet-routing-machine/dist/leaflet-routing-machine.css"]) 87 | .pipe(plumber({ 88 | errorHandler: function (error) { 89 | console.log(error.message); 90 | this.emit('end'); 91 | } 92 | })) 93 | .pipe(concat('libraries.css')) 94 | .pipe(cleanCSS()) 95 | .pipe(gulp.dest('./dist/css/')) 96 | }); 97 | 98 | gulp.task('default', ['convert_scss_and_minification', 'browser-sync', 'minification_js_library', 'minification_css_library'], function () { 99 | gulp.watch("src/scss/**/*", ['convert_scss_and_minification']); 100 | //gulp.watch("src/js/**/*", ['minification_js', browserSync.reload]); 101 | //gulp.watch("../views/**/*").on('change', browserSync.reload); 102 | //gulp.watch("../assets/**/*").on('change', browserSync.reload); 103 | gulp.watch("./index.html").on('change', browserSync.reload); 104 | gulp.watch("./src/js/ui-logic.js").on('change', browserSync.reload); 105 | }); -------------------------------------------------------------------------------- /home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | MAPS 9 | 10 | 11 | 12 | 13 |
14 |
16 |
18 |
20 |
22 |
24 |
26 |
28 |
GPS
30 |
32 |
 
33 |
34 |
36 |
38 |
History
40 |
42 |
 
44 |
 
48 |
50 |
Maps
52 |
54 |
 
56 |
 
58 |
 
63 |
64 |
65 |
 
66 |
67 |
68 |

You can open this site in two browser tabs and they will be synchronized!

69 |

Contact: artamonovdev@gmail.com

70 |
71 |
72 |
73 |
74 |
75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /img/arrow_redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/arrow_redo.png -------------------------------------------------------------------------------- /img/arrow_undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/arrow_undo.png -------------------------------------------------------------------------------- /img/g_logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /img/google-logo_26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/google-logo_26.jpg -------------------------------------------------------------------------------- /img/google-logo_26_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/google-logo_26_hover.png -------------------------------------------------------------------------------- /img/icon_gps_detect.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /img/l_logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /img/leaflet-images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/leaflet-images/layers-2x.png -------------------------------------------------------------------------------- /img/leaflet-images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/leaflet-images/layers.png -------------------------------------------------------------------------------- /img/leaflet-images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/leaflet-images/marker-icon-2x.png -------------------------------------------------------------------------------- /img/leaflet-images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/leaflet-images/marker-icon.png -------------------------------------------------------------------------------- /img/leaflet-images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/leaflet-images/marker-shadow.png -------------------------------------------------------------------------------- /img/leaflet-logo_26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/leaflet-logo_26.jpg -------------------------------------------------------------------------------- /img/leaflet-logo_26_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/leaflet-logo_26_hover.png -------------------------------------------------------------------------------- /img/menu-arrow_min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/menu-arrow_min.png -------------------------------------------------------------------------------- /img/y_logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image/svg+xml -------------------------------------------------------------------------------- /img/yadenx-logo_26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/yadenx-logo_26.jpg -------------------------------------------------------------------------------- /img/yadenx-logo_26_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artamonovdev/all-maps/0fe164149ede1a6d6656bc12c6181b0089ab5904/img/yadenx-logo_26_hover.png -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/js/ui-logic.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Обращаться по поводу разработки: artamonovdev@gmail.com 3 | */ 4 | $(document).ready(function () { 5 | var $rightMenu = $('#rightMenu'); 6 | var $containerIcoOpenSlider = $('#containerIcoOpenSlider'); 7 | var $icoOpenSlider = $('#icoOpenSlider'); 8 | var savedWidthOfBlock = 400; 9 | var defaultWidthOfBlock = savedWidthOfBlock; 10 | 11 | var resizeMaps = function () { 12 | $(document).trigger('resize_maps'); 13 | }; 14 | 15 | $icoOpenSlider.bind('mousedown mouseup', function (event) { 16 | event.stopPropagation(); 17 | }); 18 | 19 | $icoOpenSlider.click(function (event) { 20 | console.log('click toggle side'); 21 | if ($rightMenu.css('display') !== 'none') { 22 | // hide 23 | // save previous width of block 24 | savedWidthOfBlock = $rightMenu.outerWidth(); 25 | $(this).css('transform', 'rotateY(0deg)'); 26 | $rightMenu.css({ 27 | 'display': 'none', 28 | 'width': '0px' 29 | }); 30 | 31 | // resize maps 32 | resizeMaps(); 33 | } else { 34 | // show 35 | $(this).css('transform', 'rotateY(180deg)'); 36 | $rightMenu.css({ 37 | 'display': 'block' 38 | }); 39 | if (savedWidthOfBlock > 100) { 40 | $rightMenu.css({ 41 | 'width': (savedWidthOfBlock + 'px') 42 | }); 43 | } else { 44 | $rightMenu.css({ 45 | 'width': (defaultWidthOfBlock + 'px') 46 | }); 47 | } 48 | } 49 | event.stopPropagation(); 50 | }); 51 | 52 | $containerIcoOpenSlider.on('mousedown', function () { 53 | console.log('mousedown'); 54 | $rightMenu.css({ 55 | 'display': 'block' 56 | }); 57 | $icoOpenSlider.css('transform', 'rotateY(180deg)'); 58 | var menuWidth; 59 | var halfWidthLeftPanel = parseInt($containerIcoOpenSlider.outerWidth() / 1.5); 60 | $(document).on('mousemove.slider', function (event) { 61 | console.log('mousemove'); 62 | //console.log(event); 63 | //clearTimeout(timeoutMove); 64 | //timeoutMove = setTimeout(function () { 65 | // change width of right menu 66 | 67 | menuWidth = window.innerWidth - event.pageX - halfWidthLeftPanel; 68 | $rightMenu.css('width', menuWidth + 'px'); 69 | console.log('change width ' + menuWidth); 70 | //}, 10); 71 | event.stopPropagation(); 72 | }); 73 | $(document).on('mouseup.slider', function (event) { 74 | console.log('mouseup'); 75 | $(document).off('.slider'); 76 | resizeMaps(); 77 | event.stopPropagation(); 78 | }); 79 | }); 80 | }); -------------------------------------------------------------------------------- /src/scss/index.scss: -------------------------------------------------------------------------------- 1 | html, body { 2 | margin: 0; 3 | padding: 0; 4 | height: 100%; 5 | width: 100%; 6 | line-height: 1.5; 7 | } 8 | 9 | 10 | html body { 11 | // google 12 | 13 | .gm-iv-address { 14 | box-sizing: content-box; 15 | } 16 | .gm-style > div:nth-child(2) { 17 | left: initial !important; 18 | right: 0 !important; 19 | bottom: 10px !important; 20 | } 21 | 22 | // yandex - not need container from DIV 23 | .ymaps-2-1-41-copyright { 24 | //display: none; 25 | top: -9px; 26 | right: -3px; 27 | } 28 | 29 | .ymaps-2-1-41-map-copyrights-promo { 30 | bottom: 11px !important; 31 | right: -3px !important; 32 | iframe { 33 | position: relative; 34 | float: right; 35 | bottom: -4px; 36 | right: -3px; 37 | } 38 | } 39 | 40 | //leaflet 41 | .leaflet-control-container { 42 | .leaflet-control { 43 | clear: none; 44 | } 45 | 46 | .leaflet-control-geocoder { 47 | .leaflet-control-geocoder-form { 48 | float: right; 49 | input { 50 | padding: 0 0 0 10px; 51 | margin: 0; 52 | height: 26px; 53 | box-shadow: none; 54 | } 55 | } 56 | } 57 | 58 | .leaflet-control-layers-toggle { 59 | background-size: 90%; 60 | width: 26px; 61 | height: 26px; 62 | } 63 | 64 | .leaflet-routing-container { 65 | min-height: 26px; 66 | .leaflet-routing-collapse-btn { 67 | top: -4px; 68 | } 69 | } 70 | 71 | .leaflet-routing-container-hide { 72 | width: 26px; 73 | height: 26px; 74 | padding-top: 0; 75 | .leaflet-routing-collapse-btn { 76 | height: 26px; 77 | width: 26px; 78 | background-size: 80%; 79 | background-repeat: no-repeat; 80 | background-position: center; 81 | position: static; 82 | } 83 | } 84 | } 85 | } 86 | 87 | /* 88 | .main-container { 89 | //margin: 10px; 90 | height: 100%; 91 | .container-maps-and-content { 92 | height: 100%; 93 | display: flex; 94 | flex-direction: row; 95 | #containerMaps { 96 | position: relative; 97 | height: 100%; 98 | width: 100%; 99 | border: 2px solid red; 100 | overflow: hidden; 101 | padding: 0; 102 | // style for all maps 103 | #containerOwnControls { 104 | height: 43px; 105 | position: absolute; 106 | bottom: 0; 107 | left: 0; 108 | background-color: white; 109 | z-index: 2147483647; 110 | .container-history-controls { 111 | height: 100%; 112 | width: 53px; 113 | display: inline-block; 114 | border-top: 1px solid #cacaca; 115 | border-right: 1px solid #cacaca; 116 | .container-history-controls-title { 117 | font-size: 12px; 118 | text-align: center; 119 | } 120 | .container-history-controls-container-btn { 121 | height: 27px; 122 | margin: 0; 123 | padding: 0; 124 | #container-history-controls-container-btn_undo { 125 | cursor: pointer; 126 | margin: 0; 127 | padding: 0; 128 | height: 26px; 129 | width: 27px; 130 | border-top: 1px solid #cacaca; 131 | border-right: 1px solid #cacaca; 132 | background-image: url("/img/arrow_undo.png"); 133 | background-repeat: no-repeat; 134 | background-size: 80%; 135 | background-position: center; 136 | display: inline-block; 137 | &:hover { 138 | background-color: #ebebeb; 139 | } 140 | } 141 | #container-history-controls-container-btn_redo { 142 | cursor: pointer; 143 | margin: 0; 144 | padding: 0; 145 | height: 26px; 146 | width: 25px; 147 | border-top: 1px solid #cacaca; 148 | background-image: url("/img/arrow_redo.png"); 149 | background-repeat: no-repeat; 150 | background-size: 80%; 151 | background-position: center; 152 | display: inline-block; 153 | &:hover { 154 | background-color: #ebebeb; 155 | } 156 | } 157 | .disable-btn-history { 158 | background-color: #cacaca; 159 | } 160 | #container-history-controls-container-btn_redo.disable-btn-history:hover { 161 | background-color: #cacaca; 162 | } 163 | #container-history-controls-container-btn_undo.disable-btn-history:hover { 164 | background-color: #cacaca; 165 | } 166 | } 167 | } 168 | .container-toggle-maps { 169 | display: inline-block; 170 | width: 81px; 171 | .container-toggle-maps-title { 172 | font-size: 12px; 173 | text-align: center; 174 | border-top: 1px solid #cacaca; 175 | border-right: 1px solid #cacaca; 176 | } 177 | .container-toggle-maps-buttons { 178 | & > div { 179 | display: inline-block; 180 | padding: 0; 181 | margin: 0; 182 | height: 26px; 183 | width: 27px; 184 | //padding: 4px 0; 185 | //background-color: rgba(230, 230, 230, 0.41); 186 | border: 1px solid #cacaca; 187 | background-size: auto 90%; 188 | background-repeat: no-repeat; 189 | background-position: center; 190 | cursor: pointer; 191 | &:hover { 192 | background-color: #ebebeb; 193 | } 194 | } 195 | #buttonGoogle { 196 | border-left: none; 197 | border-right: none; 198 | background-image: url("/img/google-logo_26_hover.png"); 199 | } 200 | #buttonYandex { 201 | border-right: none; 202 | background-image: url("/img/yadenx-logo_26_hover.png"); 203 | } 204 | #buttonLeaflet { 205 | background-image: url("/img/leaflet-logo_26_hover.png") 206 | } 207 | } 208 | } 209 | } 210 | #googleMaps, #yandexMaps, #leafletMaps { 211 | height: 100%; 212 | width: 100%; 213 | } 214 | #yandexMaps { 215 | 216 | } 217 | #googleMaps { 218 | //display: block; 219 | } 220 | #leafletMaps { 221 | //display: none; 222 | } 223 | } 224 | #containerContent { 225 | height: 100%; 226 | display: flex; 227 | flex-direction: row; 228 | border: 2px solid #2c2c2c; 229 | #containerIcoOpenSlider { 230 | display: flex; 231 | height: 100%; 232 | cursor: col-resize; 233 | flex-direction: column; 234 | justify-content: center; 235 | !* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#91bfe5+0,f5f5f5+100 *! 236 | background: rgb(145,191,229); !* Old browsers *! 237 | background: -moz-linear-gradient(left, rgba(145,191,229,1) 0%, rgba(245,245,245,1) 100%); !* FF3.6-15 *! 238 | background: -webkit-linear-gradient(left, rgba(145,191,229,1) 0%,rgba(245,245,245,1) 100%); !* Chrome10-25,Safari5.1-6 *! 239 | background: linear-gradient(to right, rgba(145,191,229,1) 0%,rgba(245,245,245,1) 100%); !* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ *! 240 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#91bfe5', endColorstr='#f5f5f5',GradientType=1 ); !* IE6-9 *! 241 | 242 | &:hover { 243 | background-color: #bcbcbc; 244 | } 245 | #icoOpenSlider { 246 | width: 30px; 247 | height: 90px; 248 | background-image: url("/img/menu-arrow_min.png"); 249 | background-repeat: no-repeat; 250 | background-position: center; 251 | background-size: 60%; 252 | cursor: pointer; 253 | } 254 | } 255 | #rightMenu { 256 | display: none; 257 | height: 100%; 258 | width: 0px; 259 | overflow: auto; 260 | .right-menu-text { 261 | padding: 10px; 262 | } 263 | } 264 | } 265 | } 266 | }*/ 267 | 268 | .main-container { 269 | //margin: 10px; 270 | height: 100%; 271 | .full-width { 272 | display: block; 273 | width: 100%; 274 | } 275 | .wrapper-with-padding { 276 | padding: 20px; 277 | } 278 | .paragraph-with-padding { 279 | padding: 15px 0; 280 | margin: 5px 0; 281 | } 282 | .hover-pointer { 283 | cursor: pointer; 284 | } 285 | .weight-text { 286 | font-weight: bold; 287 | } 288 | 289 | .container-maps-and-content { 290 | height: 100%; 291 | display: flex; 292 | flex-direction: row; 293 | #containerMaps { 294 | position: relative; 295 | height: 100%; 296 | width: 100%; 297 | overflow: hidden; 298 | padding: 0; 299 | 300 | #containerOwnControls { 301 | height: 43px; 302 | width: 186px; 303 | position: absolute; 304 | bottom: 0; 305 | left: 0; 306 | background-color: white; 307 | z-index: 2147483647; 308 | border-top: 1px solid #cacaca; 309 | 310 | %one-group { 311 | height: 100%; 312 | float: left; 313 | display: inline-block; 314 | border-right: 1px solid #cacaca; 315 | } 316 | 317 | %wrapper-buttons { 318 | -webkit-user-select: none; 319 | -moz-user-select: none; 320 | -ms-user-select: none; 321 | user-select: none; 322 | height: 60%; 323 | } 324 | 325 | %button { 326 | height: 100%; 327 | display: inline-block; 328 | float: left; 329 | cursor: pointer; 330 | background-repeat: no-repeat; 331 | background-position: center; 332 | &:hover { 333 | background-color: #ebebeb; 334 | } 335 | } 336 | 337 | .group-header { 338 | height: 40%; 339 | padding: 0 3px; 340 | font-size: 12px; 341 | text-align: center; 342 | border-bottom: 1px solid #cacaca; 343 | } 344 | 345 | .container-gps-control { 346 | @extend %one-group; 347 | width: 18%; 348 | &__wrapper-buttons { 349 | @extend %wrapper-buttons; 350 | #btnDetectorGps { 351 | @extend %button; 352 | width: 100%; 353 | background-image: url("/img/icon_gps_detect.svg"); 354 | background-size: 62%; 355 | } 356 | } 357 | } 358 | .container-history-controls { 359 | @extend %one-group; 360 | width: 34%; 361 | &__wrapper-buttons { 362 | @extend %wrapper-buttons; 363 | #container-history-controls-container-btn_undo { 364 | @extend %button; 365 | width: 50%; 366 | border-right: 1px solid #cacaca; 367 | background-image: url("/img/arrow_undo.png"); 368 | background-size: 80%; 369 | } 370 | #container-history-controls-container-btn_redo { 371 | @extend %button; 372 | width: 50%; 373 | background-image: url("/img/arrow_redo.png"); 374 | background-size: 80%; 375 | } 376 | .disable-btn-history { 377 | background-color: #cacaca; 378 | } 379 | } 380 | } 381 | .container-toggle-maps { 382 | @extend %one-group; 383 | width: 48%; 384 | &__wrapper-buttons { 385 | @extend %wrapper-buttons; 386 | #buttonGoogle { 387 | @extend %button; 388 | width: 33.33%; 389 | background-size: auto 80%; 390 | background-image: url("/img/google-logo_26_hover.png"); 391 | border-right: 1px solid #cacaca; 392 | } 393 | #buttonYandex { 394 | @extend %button; 395 | width: 33.33%; 396 | background-size: auto 80%; 397 | background-image: url("/img/yadenx-logo_26_hover.png"); 398 | border-right: 1px solid #cacaca; 399 | } 400 | #buttonLeaflet { 401 | @extend %button; 402 | width: 33.33%; 403 | background-size: auto 80%; 404 | background-image: url("/img/leaflet-logo_26_hover.png"); 405 | } 406 | } 407 | } 408 | } 409 | #googleMaps, #yandexMaps, #leafletMaps { 410 | height: 100%; 411 | width: 100%; 412 | } 413 | } 414 | #containerContent { 415 | height: 100%; 416 | display: flex; 417 | flex-direction: row; 418 | #containerIcoOpenSlider { 419 | display: flex; 420 | height: 100%; 421 | cursor: col-resize; 422 | flex-direction: column; 423 | justify-content: center; 424 | border-right: 1px solid #9e9e9e; 425 | border-left: 1px solid #9e9e9e; 426 | /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#91bfe5+0,f5f5f5+100 */ 427 | //background: rgb(145,191,229); /* Old browsers */ 428 | //background: -moz-linear-gradient(left, rgba(145,191,229,1) 0%, rgba(245,245,245,1) 100%); /* FF3.6-15 */ 429 | //background: -webkit-linear-gradient(left, rgba(145,191,229,1) 0%,rgba(245,245,245,1) 100%); /* Chrome10-25,Safari5.1-6 */ 430 | //background: linear-gradient(to right, rgba(145,191,229,1) 0%,rgba(245,245,245,1) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ 431 | //filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#91bfe5', endColorstr='#f5f5f5',GradientType=1 ); /* IE6-9 */ 432 | 433 | //&:hover { 434 | // background-color: #bcbcbc; 435 | //} 436 | #icoOpenSlider { 437 | width: 30px; 438 | height: 90px; 439 | background-image: url("/img/menu-arrow_min.png"); 440 | background-repeat: no-repeat; 441 | background-position: center; 442 | background-size: 60%; 443 | cursor: pointer; 444 | } 445 | } 446 | #rightMenu { 447 | display: block; 448 | height: 100%; 449 | width: 600px; 450 | overflow: auto; 451 | 452 | %padding-general-block { 453 | padding: 0 10px; 454 | } 455 | 456 | .btn-add-data { 457 | display: block; 458 | width: 100%; 459 | } 460 | .wrapper-datetimepicker { 461 | position: relative; 462 | } 463 | .panel-heading { 464 | cursor: pointer; 465 | } 466 | .hint-text { 467 | font-size: 0.8em; 468 | color: red; 469 | } 470 | .alert-error-listener { 471 | display: none; 472 | } 473 | .alert-success-listener { 474 | display: none; 475 | } 476 | 477 | .wrapper-greeting { 478 | @extend %padding-general-block; 479 | } 480 | .wrapper-menu { 481 | @extend %padding-general-block; 482 | list-style: none; 483 | } 484 | .wrapper-schedule { 485 | @extend %padding-general-block; 486 | .wrapper-task-list-by-day { 487 | .one-day-listener { 488 | .wrapper-task-list-listener { 489 | padding: 10px 40px 20px 40px; 490 | .sorted-task-list-listener { 491 | padding: 0; 492 | .task-row-listener { 493 | position: relative; 494 | border-bottom: 1px solid grey; 495 | padding: 6px 0; 496 | .task-name-listener { 497 | display: inline-block; 498 | } 499 | .wrapper-task-icons { 500 | display: inline-block; 501 | position: absolute; 502 | right: 20px; 503 | .icon-edit-task { 504 | color: green; 505 | cursor: pointer; 506 | } 507 | .icon-remove-task { 508 | color: red; 509 | cursor: pointer; 510 | } 511 | } 512 | } 513 | .form-update-create-task { 514 | margin: 15px 0 0 0; 515 | } 516 | } 517 | } 518 | } 519 | } 520 | } 521 | .wrapper-new-task { 522 | @extend %padding-general-block; 523 | .wrapper-select-place { 524 | margin: 15px 0 10px 0; 525 | .wrapper-place-information-for-editing-listener { 526 | margin: 10px 0 0 0; 527 | } 528 | } 529 | .around-clock-time-work { 530 | padding: 6px 0; 531 | } 532 | } 533 | .wrapper-new-place { 534 | @extend %padding-general-block; 535 | margin: 5px 0; 536 | 537 | } 538 | .wrapper-settings { 539 | @extend %padding-general-block; 540 | } 541 | 542 | .wrapper-schedule, .wrapper-new-task, .wrapper-new-place { 543 | .wrapper-around-clock-time-work { 544 | padding: 6px 0 6px 0; 545 | .label-around-clock-time-work { 546 | margin: 0; 547 | } 548 | } 549 | .form-add-place { 550 | margin: 0 0 30px 0; 551 | } 552 | .btn-add-new-time-range { 553 | display: block; 554 | } 555 | .wrapper-added-places { 556 | border-top: 1px solid darkred; 557 | padding: 30px 0 0 0; 558 | .wrapper-place-information-for-editing-listener { 559 | margin: 10px 0 0 0; 560 | } 561 | } 562 | } 563 | } 564 | } 565 | } 566 | } --------------------------------------------------------------------------------