@progress/kendo-charts 1.22.0 → 1.23.0-dev.202201170838

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/LICENSE.md +1 -1
  2. package/NOTICE.txt +119 -79
  3. package/dist/cdn/js/kendo-charts.js +1 -1
  4. package/dist/cdn/main.js +1 -1
  5. package/dist/es/common/keys.js +25 -0
  6. package/dist/es/common.js +1 -0
  7. package/dist/es/drawing-utils.js +27 -3
  8. package/dist/es/main.js +1 -0
  9. package/dist/es/map/attribution.js +158 -0
  10. package/dist/es/map/crs.js +277 -0
  11. package/dist/es/map/datums.js +16 -0
  12. package/dist/es/map/extent.js +129 -0
  13. package/dist/es/map/layers/bubble.js +185 -0
  14. package/dist/es/map/layers/layer.js +140 -0
  15. package/dist/es/map/layers/marker.js +347 -0
  16. package/dist/es/map/layers/shape.js +389 -0
  17. package/dist/es/map/layers/tile.js +491 -0
  18. package/dist/es/map/location.js +201 -0
  19. package/dist/es/map/map.js +945 -0
  20. package/dist/es/map/navigator.js +175 -0
  21. package/dist/es/map/scroller/draggable.js +454 -0
  22. package/dist/es/map/scroller/fx.js +119 -0
  23. package/dist/es/map/scroller/observable.js +175 -0
  24. package/dist/es/map/scroller/scroller.js +746 -0
  25. package/dist/es/map/scroller/user-events.js +713 -0
  26. package/dist/es/map/utils.js +450 -0
  27. package/dist/es/map/zoom.js +139 -0
  28. package/dist/es/map.js +1 -0
  29. package/dist/es/services/map-service.js +15 -0
  30. package/dist/es2015/common/keys.js +25 -0
  31. package/dist/es2015/common.js +1 -0
  32. package/dist/es2015/drawing-utils.js +43 -3
  33. package/dist/es2015/main.js +1 -0
  34. package/dist/es2015/map/attribution.js +148 -0
  35. package/dist/es2015/map/crs.js +233 -0
  36. package/dist/es2015/map/datums.js +16 -0
  37. package/dist/es2015/map/extent.js +115 -0
  38. package/dist/es2015/map/layers/bubble.js +167 -0
  39. package/dist/es2015/map/layers/layer.js +134 -0
  40. package/dist/es2015/map/layers/marker.js +327 -0
  41. package/dist/es2015/map/layers/shape.js +369 -0
  42. package/dist/es2015/map/layers/tile.js +465 -0
  43. package/dist/es2015/map/location.js +193 -0
  44. package/dist/es2015/map/map.js +915 -0
  45. package/dist/es2015/map/navigator.js +170 -0
  46. package/dist/es2015/map/scroller/draggable.js +418 -0
  47. package/dist/es2015/map/scroller/fx.js +112 -0
  48. package/dist/es2015/map/scroller/observable.js +165 -0
  49. package/dist/es2015/map/scroller/scroller.js +716 -0
  50. package/dist/es2015/map/scroller/user-events.js +695 -0
  51. package/dist/es2015/map/utils.js +450 -0
  52. package/dist/es2015/map/zoom.js +134 -0
  53. package/dist/es2015/map.js +1 -0
  54. package/dist/es2015/services/map-service.js +15 -0
  55. package/dist/npm/main.d.ts +1 -0
  56. package/dist/npm/main.js +6218 -342
  57. package/dist/npm/map.d.ts +4 -0
  58. package/dist/systemjs/kendo-charts.js +1 -1
  59. package/package.json +1 -1
@@ -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));
@@ -0,0 +1,347 @@
1
+ import {
2
+ Class,
3
+ addClass,
4
+ isArray,
5
+ getter,
6
+ deepExtend,
7
+ setDefaultOptions
8
+ } from '../../common';
9
+
10
+ import { Layer } from './layer';
11
+ import { Location } from '../location';
12
+
13
+ import {
14
+ proxy,
15
+ on,
16
+ off,
17
+ toHyphens,
18
+ toPixels
19
+ } from '../utils';
20
+
21
+ var CLICK = "click";
22
+ var MOUSE_ENTER = "mouseenter";
23
+ var MOUSE_LEAVE = "mouseleave";
24
+
25
+ var extend = Object.assign;
26
+ var MARKER_CLASS = ".k-marker";
27
+
28
+ var doc = document;
29
+ var math = Math;
30
+
31
+ export var MarkerLayer = (function (Layer) {
32
+ function MarkerLayer(map, options) {
33
+ Layer.call(this, map, options);
34
+
35
+ this._markerClickHandler = proxy(this._markerClick, this);
36
+ on(this.element, CLICK, MARKER_CLASS, this._markerClickHandler);
37
+
38
+ this.items = [];
39
+
40
+ this._load(this._readData());
41
+ }
42
+
43
+ if ( Layer ) MarkerLayer.__proto__ = Layer;
44
+ MarkerLayer.prototype = Object.create( Layer && Layer.prototype );
45
+ MarkerLayer.prototype.constructor = MarkerLayer;
46
+
47
+ MarkerLayer.prototype.destroy = function destroy () {
48
+ Layer.prototype.destroy.call(this);
49
+ off(this.element, CLICK, this._markerClickHandler);
50
+ this.clear();
51
+ };
52
+
53
+ MarkerLayer.prototype.add = function add (args) {
54
+ var this$1 = this;
55
+
56
+ if (isArray(args)) {
57
+ for (var i = 0; i < args.length; i++) {
58
+ this$1._addOne(args[i]);
59
+ }
60
+ } else {
61
+ return this._addOne(args);
62
+ }
63
+ };
64
+
65
+ MarkerLayer.prototype.remove = function remove (marker) {
66
+ marker.destroy();
67
+ var index = (this.items || []).indexOf(marker);
68
+
69
+ if (index > -1) {
70
+ this.items.splice(index, 1);
71
+ }
72
+ };
73
+
74
+ MarkerLayer.prototype.clear = function clear () {
75
+ var this$1 = this;
76
+
77
+ for (var i = 0; i < this.items.length; i++) {
78
+ this$1.items[i].destroy();
79
+ }
80
+
81
+ this.items = [];
82
+ };
83
+
84
+ MarkerLayer.prototype.update = function update (marker) {
85
+ var location = marker.location();
86
+
87
+ if (location) {
88
+ marker.showAt(this.map.locationToView(location));
89
+
90
+ var args = {
91
+ marker: marker,
92
+ layer: this
93
+ };
94
+
95
+ this.map.trigger('markerActivate', args);
96
+ }
97
+ };
98
+
99
+ MarkerLayer.prototype._reset = function _reset () {
100
+ var this$1 = this;
101
+
102
+ Layer.prototype._reset.call(this);
103
+
104
+ var items = this.items;
105
+
106
+ for (var i = 0; i < items.length; i++) {
107
+ this$1.update(items[i]);
108
+ }
109
+ };
110
+
111
+ MarkerLayer.prototype.bind = function bind (options, dataItem) {
112
+ var marker = Marker.create(options, this.options);
113
+ marker.dataItem = dataItem;
114
+
115
+ var args = {
116
+ marker: marker,
117
+ layer: this
118
+ };
119
+
120
+ var cancelled = this.map.trigger('markerCreated', args);
121
+
122
+ if (!cancelled) {
123
+ this.add(marker);
124
+ return marker;
125
+ }
126
+ };
127
+
128
+ MarkerLayer.prototype._addOne = function _addOne (arg) {
129
+ var marker = Marker.create(arg, this.options);
130
+ marker.addTo(this);
131
+ return marker;
132
+ };
133
+
134
+ MarkerLayer.prototype._readData = function _readData () {
135
+ var data = this.options.data || [];
136
+ return data;
137
+ };
138
+
139
+ MarkerLayer.prototype._load = function _load (data) {
140
+ var this$1 = this;
141
+
142
+ this._data = data;
143
+ this.clear();
144
+
145
+ var getLocation = getter(this.options.locationField);
146
+ var getTitle = getter(this.options.titleField);
147
+
148
+ for (var i = 0; i < data.length; i++) {
149
+ var dataItem = data[i];
150
+
151
+ this$1.bind({
152
+ location: getLocation(dataItem),
153
+ title: getTitle(dataItem)
154
+ }, dataItem);
155
+ }
156
+ };
157
+
158
+ MarkerLayer.prototype._markerClick = function _markerClick (e) {
159
+ var layers = this.map.layers || [];
160
+ var marker = e.target._kendoNode;
161
+
162
+ var args = {
163
+ // marker: $(e.target).data('kendoMarker'),
164
+ // marker: e.target.getAttribute("data-kendoMarker"),
165
+ layer: this,
166
+ layerIndex: layers.indexOf(this),
167
+ marker: marker,
168
+ markerIndex: (this.items || []).indexOf(marker),
169
+ originalEvent: e
170
+ };
171
+
172
+ this.map.trigger('markerClick', args);
173
+ };
174
+
175
+ MarkerLayer.prototype._markerMouseEnter = function _markerMouseEnter (e) {
176
+ var args = this._createMarkerEventArgs(e);
177
+ this.map.trigger("markerMouseEnter", args);
178
+ };
179
+
180
+ MarkerLayer.prototype._markerMouseLeave = function _markerMouseLeave (e) {
181
+ var args = this._createMarkerEventArgs(e);
182
+ this.map.trigger("markerMouseLeave", args);
183
+ };
184
+
185
+ MarkerLayer.prototype._createMarkerEventArgs = function _createMarkerEventArgs (e) {
186
+ var marker = e.marker;
187
+
188
+ var args = extend({}, {
189
+ layer: this,
190
+ layerIndex: this.map.layers.indexOf(this),
191
+ marker: marker,
192
+ markerIndex: (this.items || []).indexOf(marker)
193
+ }, e);
194
+
195
+ return args;
196
+ };
197
+
198
+ return MarkerLayer;
199
+ }(Layer));
200
+
201
+ setDefaultOptions(MarkerLayer, {
202
+ zIndex: 1000,
203
+ autoBind: true,
204
+ locationField: 'location',
205
+ titleField: 'title'
206
+ });
207
+
208
+ export var Marker = (function (Class) {
209
+ function Marker(options) {
210
+ Class.call(this);
211
+ this.options = options || {};
212
+ }
213
+
214
+ if ( Class ) Marker.__proto__ = Class;
215
+ Marker.prototype = Object.create( Class && Class.prototype );
216
+ Marker.prototype.constructor = Marker;
217
+
218
+ Marker.prototype.destroy = function destroy () {
219
+ this.layer = null;
220
+ this.unbindEvents();
221
+ this.hide();
222
+ };
223
+
224
+ Marker.prototype.addTo = function addTo (parent) {
225
+ this.layer = parent.markers || parent;
226
+ this.layer.items.push(this);
227
+ this.layer.update(this);
228
+ };
229
+
230
+ Marker.prototype.location = function location (value) {
231
+ if (value) {
232
+ this.options.location = Location.create(value).toArray();
233
+
234
+ if (this.layer) {
235
+ this.layer.update(this);
236
+ }
237
+
238
+ return this;
239
+ }
240
+
241
+ return Location.create(this.options.location);
242
+ };
243
+
244
+ Marker.prototype.showAt = function showAt (point) {
245
+ this.render();
246
+
247
+ this.element.style.left = toPixels(math.round(point.x));
248
+ this.element.style.top = toPixels(math.round(point.y));
249
+
250
+ if (this.tooltip && this.tooltip.popup) {
251
+ this.tooltip.popup._position();
252
+ }
253
+ };
254
+
255
+ Marker.prototype.hide = function hide () {
256
+ if (this.element) {
257
+ this.element.remove();
258
+ this.element = null;
259
+ }
260
+ if (this.tooltip) {
261
+ this.tooltip.destroy();
262
+ this.tooltip = null;
263
+ }
264
+ };
265
+
266
+ Marker.prototype.bindEvents = function bindEvents () {
267
+ if (!this.element) {
268
+ return;
269
+ }
270
+
271
+ this._mouseEnterHandler = proxy(this._mouseEnter, this);
272
+ on(this.element, MOUSE_ENTER, MARKER_CLASS, this._mouseEnterHandler);
273
+ this._mouseLeaveHandler = proxy(this._mouseLeave, this);
274
+ on(this.element, MOUSE_LEAVE, MARKER_CLASS, this._mouseLeaveHandler);
275
+ };
276
+
277
+ Marker.prototype.unbindEvents = function unbindEvents () {
278
+ if (!this.element) {
279
+ return;
280
+ }
281
+
282
+ off(this.element, MOUSE_ENTER, this._mouseEnterHandler);
283
+ off(this.element, MOUSE_LEAVE, this._mouseLeaveHandler);
284
+ };
285
+
286
+ Marker.prototype.render = function render () {
287
+ if (!this.element) {
288
+ var options = this.options;
289
+ var layer = this.layer;
290
+
291
+ var element = doc.createElement('span');
292
+ addClass(element, 'k-marker k-icon k-i-marker-' + toHyphens(options.shape || 'pin'));
293
+
294
+ element.setAttribute("title", options.title);
295
+
296
+ var attributes = options.attributes || {};
297
+ Object.keys(attributes).forEach(function(key) {
298
+ element.setAttributett(key, attributes[key]);
299
+ });
300
+
301
+ element._kendoNode = this;
302
+ element.style.zIndex = options.zIndex;
303
+
304
+ this.element = element;
305
+
306
+ if (layer) {
307
+ layer.element.appendChild(this.element);
308
+ }
309
+
310
+ this.bindEvents();
311
+
312
+ this.renderTooltip();
313
+ }
314
+ };
315
+
316
+ Marker.prototype._mouseEnter = function _mouseEnter (e) {
317
+ var args = this._createEventArgs(e);
318
+ this.layer._markerMouseEnter(args);
319
+ };
320
+
321
+ Marker.prototype._mouseLeave = function _mouseLeave (e) {
322
+ var args = this._createEventArgs(e);
323
+ this.layer._markerMouseLeave(args);
324
+ };
325
+
326
+ Marker.prototype._createEventArgs = function _createEventArgs (e) {
327
+ var args = {
328
+ marker: this,
329
+ originalEvent: e
330
+ };
331
+
332
+ return args;
333
+ };
334
+
335
+ Marker.prototype.renderTooltip = function renderTooltip () {
336
+ };
337
+
338
+ Marker.create = function create (arg, defaults) {
339
+ if (arg instanceof Marker) {
340
+ return arg;
341
+ }
342
+
343
+ return new Marker(deepExtend({}, defaults, arg));
344
+ };
345
+
346
+ return Marker;
347
+ }(Class));