1 | var __assign = (this && this.__assign) || function () {
|
2 | __assign = Object.assign || function(t) {
|
3 | for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4 | s = arguments[i];
|
5 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6 | t[p] = s[p];
|
7 | }
|
8 | return t;
|
9 | };
|
10 | return __assign.apply(this, arguments);
|
11 | };
|
12 | export var events = {
|
13 | onResize: 'resize',
|
14 | onDblClick: 'dblclick',
|
15 | onClick: 'click',
|
16 | onMouseMove: 'mousemove',
|
17 | onMouseOut: 'mouseout',
|
18 | onMoveStart: 'movestart',
|
19 | onMove: 'move',
|
20 | onMoveEnd: 'moveend',
|
21 | onMouseUp: 'mouseup',
|
22 | onMouseDown: 'mousedown',
|
23 | onDragStart: 'dragstart',
|
24 | onDrag: 'drag',
|
25 | onDragEnd: 'dragend',
|
26 | onZoomStart: 'zoomstart',
|
27 | onZoom: 'zoom',
|
28 | onZoomEnd: 'zoomend',
|
29 | onPitch: 'pitch',
|
30 | onPitchStart: 'pitchstart',
|
31 | onPitchEnd: 'pitchend',
|
32 | onWebGlContextLost: 'webglcontextlost',
|
33 | onWebGlContextRestored: 'webglcontextrestored',
|
34 | onRemove: 'remove',
|
35 | onContextMenu: 'contextmenu',
|
36 | onRender: 'render',
|
37 | onError: 'error',
|
38 | onSourceData: 'sourcedata',
|
39 | onDataLoading: 'dataloading',
|
40 | onStyleDataLoading: 'styledataloading',
|
41 | onStyleImageMissing: 'styleimagemissing',
|
42 | onTouchCancel: 'touchcancel',
|
43 | onData: 'data',
|
44 | onSourceDataLoading: 'sourcedataloading',
|
45 | onTouchMove: 'touchmove',
|
46 | onTouchEnd: 'touchend',
|
47 | onTouchStart: 'touchstart',
|
48 | onStyleData: 'styledata',
|
49 | onBoxZoomStart: 'boxzoomstart',
|
50 | onBoxZoomEnd: 'boxzoomend',
|
51 | onBoxZoomCancel: 'boxzoomcancel',
|
52 | onRotateStart: 'rotatestart',
|
53 | onRotate: 'rotate',
|
54 | onRotateEnd: 'rotateend'
|
55 | };
|
56 | export var listenEvents = function (partialEvents, props, map) {
|
57 | return Object.keys(partialEvents).reduce(function (listeners, event) {
|
58 | var propEvent = props[event];
|
59 | if (propEvent) {
|
60 | var listener = function (evt) {
|
61 | propEvent(map, evt);
|
62 | };
|
63 | map.on(partialEvents[event], listener);
|
64 | listeners[event] = listener;
|
65 | }
|
66 | return listeners;
|
67 | }, {});
|
68 | };
|
69 | export var updateEvents = function (listeners, currentProps, map) {
|
70 | var toListenOff = Object.keys(events).filter(function (eventKey) {
|
71 | return listeners[eventKey] && typeof currentProps[eventKey] !== 'function';
|
72 | });
|
73 | toListenOff.forEach(function (key) {
|
74 | map.off(events[key], listeners[key]);
|
75 | delete listeners[key];
|
76 | });
|
77 | var toListenOn = Object.keys(events)
|
78 | .filter(function (key) { return !listeners[key] && typeof currentProps[key] === 'function'; })
|
79 | .reduce(function (acc, next) { return ((acc[next] = events[next]), acc); }, {});
|
80 | var newListeners = listenEvents(toListenOn, currentProps, map);
|
81 | return __assign({}, listeners, newListeners);
|
82 | };
|
83 |
|
\ | No newline at end of file |