@progress/kendo-charts 1.21.0 → 1.23.0-dev.202201120958
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/js/kendo-charts.js +1 -1
- package/dist/cdn/main.js +1 -1
- package/dist/es/barcode/barcode-validator.js +50 -0
- package/dist/es/barcode.js +1 -0
- package/dist/es/common/keys.js +25 -0
- package/dist/es/common.js +1 -0
- package/dist/es/drawing-utils.js +27 -3
- package/dist/es/main.js +1 -0
- package/dist/es/map/attribution.js +157 -0
- package/dist/es/map/crs.js +277 -0
- package/dist/es/map/datums.js +16 -0
- package/dist/es/map/extent.js +129 -0
- package/dist/es/map/layers/bubble.js +185 -0
- package/dist/es/map/layers/layer.js +140 -0
- package/dist/es/map/layers/marker.js +348 -0
- package/dist/es/map/layers/shape.js +390 -0
- package/dist/es/map/layers/tile.js +481 -0
- package/dist/es/map/location.js +201 -0
- package/dist/es/map/map.js +929 -0
- package/dist/es/map/navigator.js +174 -0
- package/dist/es/map/scroller/draggable.js +454 -0
- package/dist/es/map/scroller/fx.js +119 -0
- package/dist/es/map/scroller/observable.js +151 -0
- package/dist/es/map/scroller/scroller.js +746 -0
- package/dist/es/map/scroller/user-events.js +712 -0
- package/dist/es/map/utils.js +450 -0
- package/dist/es/map/zoom.js +139 -0
- package/dist/es/map.js +1 -0
- package/dist/es/qrcode/qrcode-validator.js +24 -0
- package/dist/es/qrcode.js +1 -0
- package/dist/es/services/map-service.js +15 -0
- package/dist/es2015/barcode/barcode-validator.js +48 -0
- package/dist/es2015/barcode.js +1 -0
- package/dist/es2015/common/keys.js +25 -0
- package/dist/es2015/common.js +1 -0
- package/dist/es2015/drawing-utils.js +43 -3
- package/dist/es2015/main.js +1 -0
- package/dist/es2015/map/attribution.js +147 -0
- package/dist/es2015/map/crs.js +233 -0
- package/dist/es2015/map/datums.js +16 -0
- package/dist/es2015/map/extent.js +115 -0
- package/dist/es2015/map/layers/bubble.js +167 -0
- package/dist/es2015/map/layers/layer.js +134 -0
- package/dist/es2015/map/layers/marker.js +328 -0
- package/dist/es2015/map/layers/shape.js +370 -0
- package/dist/es2015/map/layers/tile.js +455 -0
- package/dist/es2015/map/location.js +193 -0
- package/dist/es2015/map/map.js +905 -0
- package/dist/es2015/map/navigator.js +169 -0
- package/dist/es2015/map/scroller/draggable.js +418 -0
- package/dist/es2015/map/scroller/fx.js +112 -0
- package/dist/es2015/map/scroller/observable.js +143 -0
- package/dist/es2015/map/scroller/scroller.js +716 -0
- package/dist/es2015/map/scroller/user-events.js +694 -0
- package/dist/es2015/map/utils.js +450 -0
- package/dist/es2015/map/zoom.js +134 -0
- package/dist/es2015/map.js +1 -0
- package/dist/es2015/qrcode/qrcode-validator.js +22 -0
- package/dist/es2015/qrcode.js +1 -0
- package/dist/es2015/services/map-service.js +15 -0
- package/dist/npm/barcode.d.ts +4 -1
- package/dist/npm/main.d.ts +2 -0
- package/dist/npm/main.js +6227 -329
- package/dist/npm/map.d.ts +4 -0
- package/dist/npm/qrcode.d.ts +3 -0
- package/dist/npm/validation.d.ts +9 -0
- package/dist/systemjs/kendo-charts.js +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Class,
|
|
3
|
+
valueOrDefault
|
|
4
|
+
} from '../common';
|
|
5
|
+
|
|
6
|
+
import { Location } from './location';
|
|
7
|
+
|
|
8
|
+
var math = Math,
|
|
9
|
+
max = math.max,
|
|
10
|
+
min = math.min;
|
|
11
|
+
|
|
12
|
+
export var Extent = (function (Class) {
|
|
13
|
+
function Extent(initialNw, initialSe) {
|
|
14
|
+
Class.call(this);
|
|
15
|
+
var nw = Location.create(initialNw);
|
|
16
|
+
var se = Location.create(initialSe);
|
|
17
|
+
|
|
18
|
+
if (nw.lng + 180 > se.lng + 180 && nw.lat + 90 < se.lat + 90) {
|
|
19
|
+
this.se = nw;
|
|
20
|
+
this.nw = se;
|
|
21
|
+
} else {
|
|
22
|
+
this.se = se;
|
|
23
|
+
this.nw = nw;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if ( Class ) Extent.__proto__ = Class;
|
|
28
|
+
Extent.prototype = Object.create( Class && Class.prototype );
|
|
29
|
+
Extent.prototype.constructor = Extent;
|
|
30
|
+
|
|
31
|
+
var staticAccessors = { World: { configurable: true } };
|
|
32
|
+
|
|
33
|
+
Extent.prototype.contains = function contains (loc) {
|
|
34
|
+
var nw = this.nw, se = this.se, lng = valueOrDefault(loc.lng, loc[1]), lat = valueOrDefault(loc.lat, loc[0]);
|
|
35
|
+
|
|
36
|
+
return loc &&
|
|
37
|
+
lng + 180 >= nw.lng + 180 && lng + 180 <= se.lng + 180 &&
|
|
38
|
+
lat + 90 >= se.lat + 90 && lat + 90 <= nw.lat + 90;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
Extent.prototype.center = function center () {
|
|
42
|
+
var nw = this.nw;
|
|
43
|
+
var se = this.se;
|
|
44
|
+
var lng = nw.lng + (se.lng - nw.lng) / 2;
|
|
45
|
+
var lat = nw.lat + (se.lat - nw.lat) / 2;
|
|
46
|
+
|
|
47
|
+
return new Location(lat, lng);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
Extent.prototype.containsAny = function containsAny (locs) {
|
|
51
|
+
var this$1 = this;
|
|
52
|
+
|
|
53
|
+
var result = false;
|
|
54
|
+
|
|
55
|
+
for (var i = 0; i < locs.length; i++) {
|
|
56
|
+
result = result || this$1.contains(locs[i]);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return result;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
Extent.prototype.include = function include (loc) {
|
|
63
|
+
var nw = this.nw, se = this.se, lng = valueOrDefault(loc.lng, loc[1]), lat = valueOrDefault(loc.lat, loc[0]);
|
|
64
|
+
|
|
65
|
+
nw.lng = min(nw.lng, lng);
|
|
66
|
+
nw.lat = max(nw.lat, lat);
|
|
67
|
+
se.lng = max(se.lng, lng);
|
|
68
|
+
se.lat = min(se.lat, lat);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
Extent.prototype.includeAll = function includeAll (locs) {
|
|
72
|
+
var this$1 = this;
|
|
73
|
+
|
|
74
|
+
for (var i = 0; i < locs.length; i++) {
|
|
75
|
+
this$1.include(locs[i]);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
Extent.prototype.edges = function edges () {
|
|
80
|
+
var nw = this.nw, se = this.se;
|
|
81
|
+
|
|
82
|
+
return {
|
|
83
|
+
nw: this.nw,
|
|
84
|
+
ne: new Location(nw.lat, se.lng),
|
|
85
|
+
se: this.se,
|
|
86
|
+
sw: new Location(se.lat, nw.lng)
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
Extent.prototype.toArray = function toArray () {
|
|
91
|
+
var nw = this.nw, se = this.se;
|
|
92
|
+
|
|
93
|
+
return [
|
|
94
|
+
nw,
|
|
95
|
+
new Location(nw.lat, se.lng),
|
|
96
|
+
se,
|
|
97
|
+
new Location(se.lat, nw.lng)
|
|
98
|
+
];
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
Extent.prototype.overlaps = function overlaps (extent) {
|
|
102
|
+
return this.containsAny(extent.toArray()) ||
|
|
103
|
+
extent.containsAny(this.toArray());
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
Extent.create = function create (a, b) {
|
|
107
|
+
if (a instanceof Extent) {
|
|
108
|
+
return a;
|
|
109
|
+
} else if (a && b) {
|
|
110
|
+
return new Extent(a, b);
|
|
111
|
+
} else if (a && a.length === 4 && !b) {
|
|
112
|
+
return new Extent([
|
|
113
|
+
a[0],
|
|
114
|
+
a[1]
|
|
115
|
+
], [
|
|
116
|
+
a[2],
|
|
117
|
+
a[3]
|
|
118
|
+
]);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
staticAccessors.World.get = function () {
|
|
123
|
+
return new Extent([ 90, -180 ], [ -90, 180 ]);
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
Object.defineProperties( Extent, staticAccessors );
|
|
127
|
+
|
|
128
|
+
return Extent;
|
|
129
|
+
}(Class));
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import {
|
|
2
|
+
geometry as g,
|
|
3
|
+
drawing as d
|
|
4
|
+
} from '@progress/kendo-drawing';
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
Class,
|
|
8
|
+
defined,
|
|
9
|
+
isFunction,
|
|
10
|
+
getter,
|
|
11
|
+
setDefaultOptions
|
|
12
|
+
} from '../../common';
|
|
13
|
+
|
|
14
|
+
import {
|
|
15
|
+
ShapeLayer
|
|
16
|
+
} from './shape';
|
|
17
|
+
|
|
18
|
+
import {
|
|
19
|
+
Location
|
|
20
|
+
} from '../location';
|
|
21
|
+
|
|
22
|
+
export var BubbleLayer = (function (ShapeLayer) {
|
|
23
|
+
function BubbleLayer () {
|
|
24
|
+
ShapeLayer.apply(this, arguments);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if ( ShapeLayer ) BubbleLayer.__proto__ = ShapeLayer;
|
|
28
|
+
BubbleLayer.prototype = Object.create( ShapeLayer && ShapeLayer.prototype );
|
|
29
|
+
BubbleLayer.prototype.constructor = BubbleLayer;
|
|
30
|
+
|
|
31
|
+
BubbleLayer.prototype._readData = function _readData () {
|
|
32
|
+
var data = this.options.data || [];
|
|
33
|
+
return data;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
BubbleLayer.prototype._load = function _load (data) {
|
|
37
|
+
var this$1 = this;
|
|
38
|
+
|
|
39
|
+
this._data = data;
|
|
40
|
+
this.surface.clear();
|
|
41
|
+
|
|
42
|
+
if (data.length === 0) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
var options = this.options;
|
|
47
|
+
var getValue = getter(options.valueField);
|
|
48
|
+
|
|
49
|
+
var newData = data.slice(0);
|
|
50
|
+
newData.sort(function(a, b) {
|
|
51
|
+
return getValue(b) - getValue(a);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
var scaleType = this._scaleType();
|
|
55
|
+
var scale;
|
|
56
|
+
var getLocation = getter(this.options.locationField);
|
|
57
|
+
|
|
58
|
+
for (var i = 0; i < newData.length; i++) {
|
|
59
|
+
var dataItem = newData[i];
|
|
60
|
+
var location = getLocation(dataItem);
|
|
61
|
+
var value = getValue(dataItem);
|
|
62
|
+
|
|
63
|
+
if (defined(location) && defined(value)) {
|
|
64
|
+
if (!scale) {
|
|
65
|
+
scale = new scaleType([
|
|
66
|
+
0,
|
|
67
|
+
value
|
|
68
|
+
], [
|
|
69
|
+
options.minSize,
|
|
70
|
+
options.maxSize
|
|
71
|
+
]);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
location = Location.create(location);
|
|
75
|
+
|
|
76
|
+
var center = this$1.map.locationToView(location);
|
|
77
|
+
var size = scale.map(value);
|
|
78
|
+
var symbol = this$1._createSymbol({
|
|
79
|
+
center: center,
|
|
80
|
+
size: size,
|
|
81
|
+
style: options.style,
|
|
82
|
+
dataItem: dataItem,
|
|
83
|
+
location: location
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
symbol.dataItem = dataItem;
|
|
87
|
+
symbol.location = location;
|
|
88
|
+
symbol.value = value;
|
|
89
|
+
|
|
90
|
+
this$1._drawSymbol(symbol);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
BubbleLayer.prototype._scaleType = function _scaleType () {
|
|
96
|
+
var scale = this.options.scale;
|
|
97
|
+
|
|
98
|
+
if (isFunction(scale)) {
|
|
99
|
+
return scale;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return Scales[scale];
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
BubbleLayer.prototype._createSymbol = function _createSymbol (args) {
|
|
106
|
+
var symbol = this.options.symbol;
|
|
107
|
+
|
|
108
|
+
if (!isFunction(symbol)) {
|
|
109
|
+
symbol = Symbols[symbol];
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return symbol(args);
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
BubbleLayer.prototype._drawSymbol = function _drawSymbol (shape) {
|
|
116
|
+
var args = {
|
|
117
|
+
layer: this,
|
|
118
|
+
shape: shape
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
var cancelled = this.map.trigger('shapeCreated', args);
|
|
122
|
+
|
|
123
|
+
if (!cancelled) {
|
|
124
|
+
this.surface.draw(shape);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
return BubbleLayer;
|
|
129
|
+
}(ShapeLayer));
|
|
130
|
+
|
|
131
|
+
setDefaultOptions(BubbleLayer, {
|
|
132
|
+
// autoBind: true,
|
|
133
|
+
locationField: 'location',
|
|
134
|
+
valueField: 'value',
|
|
135
|
+
minSize: 0,
|
|
136
|
+
maxSize: 100,
|
|
137
|
+
scale: 'sqrt',
|
|
138
|
+
symbol: 'circle',
|
|
139
|
+
// ensure bubble layers are displayed over tile and shape layers
|
|
140
|
+
zIndex: 200
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
var SqrtScale = (function (Class) {
|
|
144
|
+
function SqrtScale(domain, range) {
|
|
145
|
+
Class.call(this);
|
|
146
|
+
|
|
147
|
+
this._domain = domain;
|
|
148
|
+
this._range = range;
|
|
149
|
+
|
|
150
|
+
var domainRange = Math.sqrt(domain[1]) - Math.sqrt(domain[0]);
|
|
151
|
+
var outputRange = range[1] - range[0];
|
|
152
|
+
|
|
153
|
+
this._ratio = outputRange / domainRange;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if ( Class ) SqrtScale.__proto__ = Class;
|
|
157
|
+
SqrtScale.prototype = Object.create( Class && Class.prototype );
|
|
158
|
+
SqrtScale.prototype.constructor = SqrtScale;
|
|
159
|
+
|
|
160
|
+
SqrtScale.prototype.map = function map (value) {
|
|
161
|
+
var rel = (Math.sqrt(value) - Math.sqrt(this._domain[0])) * this._ratio;
|
|
162
|
+
return this._range[0] + rel;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
return SqrtScale;
|
|
166
|
+
}(Class));
|
|
167
|
+
|
|
168
|
+
var Scales = {
|
|
169
|
+
sqrt: SqrtScale
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
var Symbols = {
|
|
173
|
+
circle: function(args) {
|
|
174
|
+
var geo = new g.Circle(args.center, args.size / 2);
|
|
175
|
+
return new d.Circle(geo, args.style);
|
|
176
|
+
},
|
|
177
|
+
|
|
178
|
+
square: function(args) {
|
|
179
|
+
var path = new d.Path(args.style);
|
|
180
|
+
var halfSize = args.size / 2;
|
|
181
|
+
var center = args.center;
|
|
182
|
+
path.moveTo(center.x - halfSize, center.y - halfSize).lineTo(center.x + halfSize, center.y - halfSize).lineTo(center.x + halfSize, center.y + halfSize).lineTo(center.x - halfSize, center.y + halfSize).close();
|
|
183
|
+
return path;
|
|
184
|
+
}
|
|
185
|
+
};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Class,
|
|
3
|
+
addClass,
|
|
4
|
+
deepExtend,
|
|
5
|
+
defined
|
|
6
|
+
} from '../../common';
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
Extent
|
|
10
|
+
} from './../extent';
|
|
11
|
+
|
|
12
|
+
import {
|
|
13
|
+
getSupportedFeatures
|
|
14
|
+
} from '../utils';
|
|
15
|
+
|
|
16
|
+
export var Layer = (function (Class) {
|
|
17
|
+
function Layer(map, options) {
|
|
18
|
+
Class.call(this);
|
|
19
|
+
|
|
20
|
+
this.support = getSupportedFeatures();
|
|
21
|
+
|
|
22
|
+
this._initOptions(options);
|
|
23
|
+
this.map = map;
|
|
24
|
+
|
|
25
|
+
var element = document.createElement("div");
|
|
26
|
+
addClass(element, "k-layer");
|
|
27
|
+
element.style.zIndex = this.options.zIndex;
|
|
28
|
+
element.style.opacity = this.options.opacity;
|
|
29
|
+
|
|
30
|
+
this.element = element;
|
|
31
|
+
|
|
32
|
+
map.scrollElement.appendChild(this.element);
|
|
33
|
+
|
|
34
|
+
this._beforeReset = this._beforeReset.bind(this);
|
|
35
|
+
this._reset = this._reset.bind(this);
|
|
36
|
+
this._resize = this._resize.bind(this);
|
|
37
|
+
this._panEnd = this._panEnd.bind(this);
|
|
38
|
+
|
|
39
|
+
this._activate();
|
|
40
|
+
this._updateAttribution();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if ( Class ) Layer.__proto__ = Class;
|
|
44
|
+
Layer.prototype = Object.create( Class && Class.prototype );
|
|
45
|
+
Layer.prototype.constructor = Layer;
|
|
46
|
+
|
|
47
|
+
Layer.prototype.destroy = function destroy () {
|
|
48
|
+
this._deactivate();
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
Layer.prototype._initOptions = function _initOptions (options) {
|
|
52
|
+
this.options = deepExtend({}, this.options, options);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
Layer.prototype.show = function show () {
|
|
56
|
+
this.reset();
|
|
57
|
+
this._activate();
|
|
58
|
+
this._applyExtent(true);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
Layer.prototype.hide = function hide () {
|
|
62
|
+
this._deactivate();
|
|
63
|
+
this._setVisibility(false);
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
Layer.prototype.reset = function reset () {
|
|
67
|
+
this._beforeReset();
|
|
68
|
+
this._reset();
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
Layer.prototype._reset = function _reset () {
|
|
72
|
+
this._applyExtent();
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
Layer.prototype._beforeReset = function _beforeReset () {
|
|
76
|
+
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
Layer.prototype._resize = function _resize () {
|
|
80
|
+
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
Layer.prototype._panEnd = function _panEnd () {
|
|
84
|
+
this._applyExtent();
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
Layer.prototype._applyExtent = function _applyExtent () {
|
|
88
|
+
var options = this.options;
|
|
89
|
+
var zoom = this.map.zoom();
|
|
90
|
+
var matchMinZoom = !defined(options.minZoom) || zoom >= options.minZoom;
|
|
91
|
+
var matchMaxZoom = !defined(options.maxZoom) || zoom <= options.maxZoom;
|
|
92
|
+
var extent = Extent.create(options.extent);
|
|
93
|
+
var inside = !extent || extent.overlaps(this.map.extent());
|
|
94
|
+
|
|
95
|
+
this._setVisibility(matchMinZoom && matchMaxZoom && inside);
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
Layer.prototype._setVisibility = function _setVisibility (visible) {
|
|
99
|
+
this.element.style.display = visible ? '' : 'none';
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
Layer.prototype._activate = function _activate () {
|
|
103
|
+
var map = this.map;
|
|
104
|
+
|
|
105
|
+
this._deactivate();
|
|
106
|
+
|
|
107
|
+
map.bind('beforeReset', this._beforeReset);
|
|
108
|
+
map.bind('reset', this._reset);
|
|
109
|
+
map.bind('resize', this._resize);
|
|
110
|
+
map.bind('panEnd', this._panEnd);
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
Layer.prototype._deactivate = function _deactivate () {
|
|
114
|
+
var map = this.map;
|
|
115
|
+
|
|
116
|
+
map.unbind('beforeReset', this._beforeReset);
|
|
117
|
+
map.unbind('reset', this._reset);
|
|
118
|
+
map.unbind('resize', this._resize);
|
|
119
|
+
map.unbind('panEnd', this._panEnd);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
Layer.prototype._updateAttribution = function _updateAttribution () {
|
|
123
|
+
var attribution = this.map.attribution;
|
|
124
|
+
|
|
125
|
+
if (attribution) {
|
|
126
|
+
attribution.add(this.options.attribution);
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
Layer.prototype._readData = function _readData () {
|
|
131
|
+
var data = this.options.data || [];
|
|
132
|
+
return data;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
Layer.prototype._hasData = function _hasData () {
|
|
136
|
+
return this._data && this._data.length > 0;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
return Layer;
|
|
140
|
+
}(Class));
|