leaflet-sidebar-rails 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ebdc9fee6e6d12461f3f6dfb9e7ec2c58b154f76
4
- data.tar.gz: 3b668c63ba7779f5ec09435f51b9809cc7c4f6f4
3
+ metadata.gz: 4bd82e73844a035141ca9a0821883cd76a579b21
4
+ data.tar.gz: 9012751021d56cec7a51e003addfb83be61f3b47
5
5
  SHA512:
6
- metadata.gz: 2702ce5f1ee1c0a916032daa2ee572b9d0e05b0520b226a9666a80ec210f2252d3415a528b2983f4cb49a178d6b92bef97a9e46630c895cbb1bc910b7a098b96
7
- data.tar.gz: 41d1a2d8af726452aff1ac1510b82d86aeef390eb31746eacbab71d14d57cc5bae80ea072180b7d537eb474a5346f6396f5f8f0d6ff4867abdf6076d6b23df56
6
+ metadata.gz: d83ceb1449ca31664ed647a3826d873f8e0af49356eba90c8b8c2ee6bb7c3b66a347c973197d22d293d72ec89f5df6cb817cbb1c1a096b66ef3d864ba1e15a73
7
+ data.tar.gz: 1f18428f98bb3ac13d88618fc6a656a24d6f007149eb9b31595e96894c3a529ca6504797b236763a3aef0501f690ddb5ce7923f3ddea780a310001cc27e0a5b8
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ *.rbc
2
+ *.sassc
3
+ .sass-cache
4
+ capybara-*.html
5
+ .rspec
6
+ .rvmrc
7
+ /.bundle
8
+ /vendor/bundle
9
+ /log/*
10
+ /tmp/*
11
+ /db/*.sqlite3
12
+ /public/system/*
13
+ /coverage/
14
+ /spec/tmp/*
15
+ **.orig
16
+ rerun.txt
17
+ pickle-email-*.html
18
+ .project
19
+ config/initializers/secret_token.rb
20
+ .DS_Store
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in leaflet-markercluster-rails.gemspec
4
+ gemspec
Binary file
@@ -0,0 +1,20 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+
3
+ # Maintain your gem's version:
4
+ require "leaflet-sidebar-rails/version"
5
+
6
+ # Describe your gem and declare its dependencies:
7
+ Gem::Specification.new do |s|
8
+ s.name = "leaflet-sidebar-rails"
9
+ s.version = Leaflet::Sidebar::Rails::VERSION
10
+ s.authors = ["Jack Reed"]
11
+ s.email = ["phillipjreed@gmail.com"]
12
+ s.summary = "Rails plugin for Leaflet-Sidebar plugin"
13
+ s.description = "A responsive sidebar for leaflet maps"
14
+ s.homepage = 'https://github.com/mejackreed/leaflet-sidebar-rails'
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ # s.files = Dir["{app,config,db,lib,vendor}/**/*", "LICENSE.txt", "LICENSE-leaflet-sidebar.txt", "Rakefile", "README.md"]
18
+ s.require_paths = ["lib"]
19
+
20
+ end
@@ -1,7 +1,7 @@
1
1
  module Leaflet
2
2
  module Sidebar
3
3
  module Rails
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.2"
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,162 @@
1
+ L.Control.Sidebar = L.Control.extend({
2
+
3
+ includes: L.Mixin.Events,
4
+
5
+ options: {
6
+ closeButton: true,
7
+ position: 'left',
8
+ autoPan: true,
9
+ },
10
+
11
+ initialize: function (placeholder, options) {
12
+ L.setOptions(this, options);
13
+
14
+ // Find content container
15
+ var content = this._contentContainer = L.DomUtil.get(placeholder);
16
+
17
+ // Remove the content container from its original parent
18
+ content.parentNode.removeChild(content);
19
+
20
+ var l = 'leaflet-';
21
+
22
+ // Create sidebar container
23
+ var container = this._container =
24
+ L.DomUtil.create('div', l + 'sidebar ' + this.options.position);
25
+
26
+ // Style and attach content container
27
+ L.DomUtil.addClass(content, l + 'control');
28
+ container.appendChild(content);
29
+
30
+ // Create close button and attach it if configured
31
+ if (this.options.closeButton) {
32
+ var close = this._closeButton =
33
+ L.DomUtil.create('a', 'close', container);
34
+ close.innerHTML = '×';
35
+ }
36
+ },
37
+ addTo: function (map) {
38
+ var container = this._container;
39
+ var content = this._contentContainer;
40
+
41
+ // Attach event to close button
42
+ if (this.options.closeButton) {
43
+ var close = this._closeButton;
44
+
45
+ L.DomEvent.on(close, 'click', this.hide, this);
46
+ }
47
+
48
+ // Attach sidebar container to controls container
49
+ var controlContainer = map._controlContainer;
50
+ controlContainer.insertBefore(container, controlContainer.firstChild);
51
+
52
+ this._map = map;
53
+
54
+ // Make sure we don't drag the map when we interact with the content
55
+ var stop = L.DomEvent.stopPropagation;
56
+ L.DomEvent
57
+ .on(content, 'click', stop)
58
+ .on(content, 'mousedown', stop)
59
+ .on(content, 'touchstart', stop)
60
+ .on(content, 'dblclick', stop)
61
+ .on(content, 'mousewheel', stop)
62
+ .on(content, 'MozMousePixelScroll', stop);
63
+
64
+ return this;
65
+ },
66
+
67
+ removeFrom: function (map) {
68
+ //if the control is visible, hide it before removing it.
69
+ this.hide();
70
+
71
+ var content = this._contentContainer;
72
+
73
+ // Remove sidebar container from controls container
74
+ var controlContainer = map._controlContainer;
75
+ controlContainer.removeChild(this._container);
76
+
77
+ //disassociate the map object
78
+ this._map = null;
79
+
80
+ // Unregister events to prevent memory leak
81
+ var stop = L.DomEvent.stopPropagation;
82
+ L.DomEvent
83
+ .off(content, 'click', stop)
84
+ .off(content, 'mousedown', stop)
85
+ .off(content, 'touchstart', stop)
86
+ .off(content, 'dblclick', stop)
87
+ .off(content, 'mousewheel', stop)
88
+ .off(content, 'MozMousePixelScroll', stop);
89
+
90
+ if (this._closeButton && this._close) {
91
+ var close = this._closeButton;
92
+
93
+ L.DomEvent.off(close, 'click', this.hide, this);
94
+ }
95
+
96
+ return this;
97
+ },
98
+
99
+ isVisible: function () {
100
+ return L.DomUtil.hasClass(this._container, 'visible');
101
+ },
102
+
103
+ show: function () {
104
+ if (!this.isVisible()) {
105
+ L.DomUtil.addClass(this._container, 'visible');
106
+ if (this.options.autoPan) {
107
+ this._map.panBy([-this.getOffset() / 2, 0], {
108
+ duration: 0.5
109
+ });
110
+ }
111
+ this.fire('show');
112
+ }
113
+ },
114
+
115
+ hide: function (e) {
116
+ if (this.isVisible()) {
117
+ L.DomUtil.removeClass(this._container, 'visible');
118
+ if (this.options.autoPan) {
119
+ this._map.panBy([this.getOffset() / 2, 0], {
120
+ duration: 0.5
121
+ });
122
+ }
123
+ this.fire('hide');
124
+ }
125
+ if(e) {
126
+ L.DomEvent.stopPropagation(e);
127
+ }
128
+ },
129
+
130
+ toggle: function () {
131
+ if (this.isVisible()) {
132
+ this.hide();
133
+ } else {
134
+ this.show();
135
+ }
136
+ },
137
+
138
+ getContainer: function () {
139
+ return this._contentContainer;
140
+ },
141
+
142
+ getCloseButton: function () {
143
+ return this._closeButton;
144
+ },
145
+
146
+ setContent: function (content) {
147
+ this.getContainer().innerHTML = content;
148
+ return this;
149
+ },
150
+
151
+ getOffset: function () {
152
+ if (this.options.position === 'right') {
153
+ return -this._container.offsetWidth;
154
+ } else {
155
+ return this._container.offsetWidth;
156
+ }
157
+ }
158
+ });
159
+
160
+ L.control.sidebar = function (placeholder, options) {
161
+ return new L.Control.Sidebar(placeholder, options);
162
+ };
@@ -0,0 +1,169 @@
1
+ .leaflet-sidebar {
2
+ position: absolute;
3
+ height: 100%;
4
+
5
+ -webkit-box-sizing: border-box;
6
+ -moz-box-sizing: border-box;
7
+ box-sizing: border-box;
8
+ padding: 10px;
9
+
10
+ z-index: 2000;
11
+ }
12
+
13
+ .leaflet-sidebar.left {
14
+ left: -500px;
15
+ transition: left 0.5s, width 0.5s;
16
+
17
+ padding-right: 0;
18
+ }
19
+
20
+ .leaflet-sidebar.right {
21
+ right: -500px;
22
+ transition: right 0.5s, width 0.5s;
23
+
24
+ padding-left: 0;
25
+ }
26
+
27
+ .leaflet-sidebar.left.visible {
28
+ left: 0;
29
+ }
30
+
31
+ .leaflet-sidebar.right.visible {
32
+ right: 0;
33
+ }
34
+
35
+ .leaflet-left {
36
+ transition: left 0.5s;
37
+ }
38
+
39
+ .leaflet-right {
40
+ transition: right 0.5s;
41
+ }
42
+
43
+ .leaflet-sidebar > .leaflet-control {
44
+ height: 100%;
45
+ width: 100%;
46
+
47
+ overflow: auto;
48
+ -webkit-overflow-scrolling: touch;
49
+
50
+ -webkit-box-sizing: border-box;
51
+ -moz-box-sizing: border-box;
52
+ box-sizing: border-box;
53
+ padding: 8px 24px;
54
+
55
+ font-size: 1.1em;
56
+
57
+ background: white;
58
+ box-shadow: 0 1px 7px rgba(0,0,0,0.65);
59
+ -webkit-border-radius: 4px;
60
+ border-radius: 4px;
61
+ }
62
+
63
+ .leaflet-touch .leaflet-sidebar > .leaflet-control {
64
+ box-shadow: none;
65
+ border: 2px solid rgba(0,0,0,0.2);
66
+ background-clip: padding-box;
67
+ }
68
+
69
+ @media(max-width:767px){
70
+ .leaflet-sidebar {
71
+ width: 100%;
72
+ padding: 0;
73
+ }
74
+
75
+ .leaflet-sidebar.left {
76
+ left: -100%;
77
+ }
78
+
79
+ .leaflet-sidebar.right {
80
+ right: -100%;
81
+ }
82
+
83
+ .leaflet-sidebar.left.visible {
84
+ left: 0;
85
+ }
86
+
87
+ .leaflet-sidebar.right.visible {
88
+ right: 0;
89
+ }
90
+
91
+ .leaflet-sidebar > .leaflet-control {
92
+ box-shadow: none;
93
+ -webkit-border-radius: 0;
94
+ border-radius: 0;
95
+ }
96
+
97
+ .leaflet-sidebar.left.visible ~ .leaflet-left {
98
+ left: 100%;
99
+ }
100
+
101
+ .leaflet-sidebar.right.visible ~ .leaflet-right {
102
+ right: 100%;
103
+ }
104
+
105
+ .leaflet-touch .leaflet-sidebar > .leaflet-control {
106
+ border: 0;
107
+ }
108
+ }
109
+
110
+ @media(min-width:768px) and (max-width:991px){
111
+ .leaflet-sidebar {
112
+ width: 305px;
113
+ }
114
+
115
+ .leaflet-sidebar.left.visible ~ .leaflet-left {
116
+ left: 305px;
117
+ }
118
+
119
+ .leaflet-sidebar.right.visible ~ .leaflet-right {
120
+ right: 305px;
121
+ }
122
+ }
123
+
124
+ @media(min-width:992px) and (max-width:1199px){
125
+ .leaflet-sidebar {
126
+ width: 390px;
127
+ }
128
+
129
+ .leaflet-sidebar.left.visible ~ .leaflet-left {
130
+ left: 390px;
131
+ }
132
+
133
+ .leaflet-sidebar.right.visible ~ .leaflet-right {
134
+ right: 390px;
135
+ }
136
+ }
137
+
138
+ @media(min-width:1200px){
139
+ .leaflet-sidebar {
140
+ width: 460px;
141
+ }
142
+
143
+ .leaflet-sidebar.left.visible ~ .leaflet-left {
144
+ left: 460px;
145
+ }
146
+
147
+ .leaflet-sidebar.right.visible ~ .leaflet-right {
148
+ right: 460px;
149
+ }
150
+ }
151
+
152
+ .leaflet-sidebar .close {
153
+ position: absolute;
154
+ right: 20px;
155
+ top: 20px;
156
+ width: 31px;
157
+ height: 31px;
158
+
159
+ color: #333;
160
+ font-size: 25pt;
161
+ line-height: 1em;
162
+ text-align: center;
163
+ background: white;
164
+ -webkit-border-radius: 16px;
165
+ border-radius: 16px;
166
+ cursor: pointer;
167
+
168
+ z-index: 8;
169
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leaflet-sidebar-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Reed
@@ -17,11 +17,17 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - ".gitignore"
21
+ - Gemfile
20
22
  - LICENSE-leaflet-sidebar.txt
21
23
  - LICENSE.txt
22
24
  - README.md
25
+ - leaflet-sidebar-rails-0.0.1.gem
26
+ - leaflet-sidebar-rails.gemspec
23
27
  - lib/leaflet-sidebar-rails.rb
24
28
  - lib/leaflet-sidebar-rails/version.rb
29
+ - vendor/assets/javascripts/L.Control.Sidebar.js
30
+ - vendor/assets/stylesheets/L.Control.Sidebar.css
25
31
  homepage: https://github.com/mejackreed/leaflet-sidebar-rails
26
32
  licenses: []
27
33
  metadata: {}