Skip to content
This repository was archived by the owner on Sep 20, 2019. It is now read-only.

Commit 06b5a3f

Browse files
committed
feat(lf-center): lfCenter or 'lf-center' added which is a dupe of
center. center to be deprecated in 0.9.X . This was still more complicated that I would have preferred. issue #535 resolved
1 parent 17f0408 commit 06b5a3f

11 files changed

+843
-626
lines changed

dist/angular-leaflet-directive.js

Lines changed: 235 additions & 175 deletions
Large diffs are not rendered by default.

dist/angular-leaflet-directive.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/angular-leaflet-directive_dev_mapped.js

Lines changed: 234 additions & 174 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/angular-leaflet-directive_dev_mapped.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/0101-basic-center-example.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<meta name="viewport" content="width=device-width, initial-scale=1.0">
55
<script src="../bower_components/angular/angular.min.js"></script>
66
<script src="../bower_components/leaflet/dist/leaflet.js"></script>
7-
<script src="../dist/angular-leaflet-directive.min.js"></script>
7+
<script src="../dist/angular-leaflet-directive_dev_mapped.js"></script>
88
<link rel="stylesheet" href="../bower_components/leaflet/dist/leaflet.css" />
99
<script>
1010
var app = angular.module('demoapp', ['leaflet-directive']);
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<!DOCTYPE html>
2+
<html ng-app="demoapp">
3+
<head>
4+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
5+
<script src="../bower_components/angular/angular.min.js"></script>
6+
<script src="../bower_components/leaflet/dist/leaflet.js"></script>
7+
<script src="../dist/angular-leaflet-directive_dev_mapped.js"></script>
8+
<link rel="stylesheet" href="../bower_components/leaflet/dist/leaflet.css" />
9+
<script>
10+
var app = angular.module('demoapp', ['leaflet-directive']);
11+
app.controller('BasicCenterController', [ '$scope', function($scope) {
12+
angular.extend($scope, {
13+
london: {
14+
lat: 51.505,
15+
lng: -0.09,
16+
zoom: 4
17+
}
18+
});
19+
}]);
20+
</script>
21+
<style>
22+
input {
23+
width: 120px;
24+
margin-right: 10px;
25+
}
26+
</style>
27+
</head>
28+
<body ng-controller="BasicCenterController">
29+
<leaflet lf-center="london" width="100%" height="480px"></leaflet>
30+
<h1>Center map example</h1>
31+
<ul>
32+
<li><input type="number" step="any" ng-model="london.lat" /> Latitude</li>
33+
<li><input type="number" step="any" ng-model="london.lng" /> Longitude</li>
34+
<li><input type="number" step="any" ng-model="london.zoom" /> Zoom</li>
35+
</ul>
36+
</body>
37+
</html>

src/directives/center.js

Lines changed: 193 additions & 172 deletions
Large diffs are not rendered by default.

src/directives/leaflet.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ angular.module("leaflet-directive", []).directive('leaflet',
55
replace: true,
66
scope: {
77
center : '=',
8+
lfCenter : '=',
89
defaults : '=',
910
maxbounds : '=',
1011
bounds : '=',
@@ -93,7 +94,7 @@ angular.module("leaflet-directive", []).directive('leaflet',
9394
var map = new L.Map(element[0], leafletMapDefaults.getMapCreationDefaults(attrs.id));
9495
ctrl._leafletMap.resolve(map);
9596

96-
if (!isDefined(attrs.center)) {
97+
if (!isDefined(attrs.center) && !isDefined(attrs.lfCenter)) {
9798
map.setView([defaults.center.lat, defaults.center.lng], defaults.center.zoom);
9899
}
99100

src/directives/maxbounds.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ angular.module("leaflet-directive").directive('maxbounds', function ($log, leafl
1818
map.setMaxBounds();
1919
return;
2020
}
21-
21+
2222
var leafletBounds = leafletBoundsHelpers.createLeafletBounds(maxbounds);
2323
if(isNumber(maxbounds.pad)) {
2424
leafletBounds = leafletBounds.pad(maxbounds.pad);
2525
}
2626

2727
map.setMaxBounds(leafletBounds);
28-
if (!attrs.center) {
28+
if (!attrs.center && !attrs.lfCenter) {
2929
map.fitBounds(leafletBounds);
3030
}
3131
});

src/services/leafletHelpers.js

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
angular.module("leaflet-directive").factory('leafletHelpers', function ($q, $log) {
1+
angular.module("leaflet-directive").service('leafletHelpers', function ($q, $log) {
22
var _errorHeader = '[AngularJS - Leaflet] ';
33
var _copy = angular.copy;
44
var _clone = _copy;
@@ -100,7 +100,45 @@ angular.module("leaflet-directive").factory('leafletHelpers', function ($q, $log
100100
return !_isDefined(value);
101101
};
102102

103+
// BEGIN DIRECT PORT FROM AngularJS code base
104+
105+
var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
106+
107+
var MOZ_HACK_REGEXP = /^moz([A-Z])/;
108+
109+
var PREFIX_REGEXP = /^((?:x|data)[\:\-_])/i;
110+
111+
/**
112+
Converts snake_case to camelCase.
113+
Also there is special case for Moz prefix starting with upper case letter.
114+
@param name Name to normalize
115+
*/
116+
117+
var camelCase = function(name) {
118+
return name.replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) {
119+
if (offset) {
120+
return letter.toUpperCase();
121+
} else {
122+
return letter;
123+
}
124+
}).replace(MOZ_HACK_REGEXP, "Moz$1");
125+
};
126+
127+
128+
/**
129+
Converts all accepted directives format into proper directive name.
130+
@param name Name to normalize
131+
*/
132+
133+
var directiveNormalize = function(name) {
134+
return camelCase(name.replace(PREFIX_REGEXP, ""));
135+
};
136+
137+
// END AngularJS port
138+
103139
return {
140+
camelCase: camelCase,
141+
directiveNormalize: directiveNormalize,
104142
copy:_copy,
105143
clone:_clone,
106144
errorHeader: _errorHeader,

0 commit comments

Comments
 (0)