@deck.gl/arcgis 9.4.0-alpha.1 → 9.4.0-alpha.2
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/dist.dev.js +420 -814
- package/dist/index.cjs +74 -55
- package/dist/index.cjs.map +2 -2
- package/dist.min.js +4 -3
- package/package.json +9 -5
package/dist/index.cjs
CHANGED
|
@@ -797,14 +797,6 @@ var PROJECTION_MODE = {
|
|
|
797
797
|
*/
|
|
798
798
|
IDENTITY: 0
|
|
799
799
|
};
|
|
800
|
-
var RECOGNIZERS = {
|
|
801
|
-
multipan: [import_mjolnir.Pan, { threshold: 10, direction: import_mjolnir.InputDirection.Vertical, pointers: 2 }],
|
|
802
|
-
pinch: [import_mjolnir.Pinch, {}, null, ["multipan"]],
|
|
803
|
-
pan: [import_mjolnir.Pan, { threshold: 1 }, ["pinch"], ["multipan"]],
|
|
804
|
-
dblclick: [import_mjolnir.Tap, { event: "dblclick", taps: 2, enable: false }],
|
|
805
|
-
dblclickdrag: [import_mjolnir.DoubleClickDrag, { event: "dblclickdrag", enable: false }, ["dblclick"], null],
|
|
806
|
-
click: [import_mjolnir.Tap, { event: "click" }, ["dblclickdrag"], ["dblclick", "dblclickdrag"]]
|
|
807
|
-
};
|
|
808
800
|
|
|
809
801
|
// ../core/src/viewports/viewport.ts
|
|
810
802
|
var DEGREES_TO_RADIANS = Math.PI / 180;
|
|
@@ -1864,6 +1856,8 @@ var Controller = class {
|
|
|
1864
1856
|
this._customEvents = [];
|
|
1865
1857
|
this._eventStartBlocked = null;
|
|
1866
1858
|
this._panMove = false;
|
|
1859
|
+
this._multiPanMode = null;
|
|
1860
|
+
this._multiPanStartCenter = null;
|
|
1867
1861
|
this._doubleClickDragAnchor = null;
|
|
1868
1862
|
this._suppressDoubleClickUntil = 0;
|
|
1869
1863
|
this.invertPan = false;
|
|
@@ -1876,6 +1870,8 @@ var Controller = class {
|
|
|
1876
1870
|
this.doubleClickDragZoom = true;
|
|
1877
1871
|
this.touchZoom = true;
|
|
1878
1872
|
this.touchRotate = false;
|
|
1873
|
+
this.multiTouchDrag = null;
|
|
1874
|
+
this.trackpadGesture = false;
|
|
1879
1875
|
this.keyboard = true;
|
|
1880
1876
|
this.transitionManager = new TransitionManager({
|
|
1881
1877
|
...opts,
|
|
@@ -1923,11 +1919,11 @@ var Controller = class {
|
|
|
1923
1919
|
case "panend":
|
|
1924
1920
|
return this._onPanEnd(event);
|
|
1925
1921
|
case "pinchstart":
|
|
1926
|
-
return eventStartBlocked ? false : this._onPinchStart(event);
|
|
1922
|
+
return eventStartBlocked || !this._isTrackpadGestureAllowed(event) ? false : this._onPinchStart(event);
|
|
1927
1923
|
case "pinchmove":
|
|
1928
|
-
return this._onPinch(event);
|
|
1924
|
+
return this._isTrackpadGestureAllowed(event) ? this._onPinch(event) : false;
|
|
1929
1925
|
case "pinchend":
|
|
1930
|
-
return this._onPinchEnd(event);
|
|
1926
|
+
return this._isTrackpadGestureAllowed(event) ? this._onPinchEnd(event) : false;
|
|
1931
1927
|
case "multipanstart":
|
|
1932
1928
|
return eventStartBlocked ? false : this._onMultiPanStart(event);
|
|
1933
1929
|
case "multipanmove":
|
|
@@ -2018,13 +2014,18 @@ var Controller = class {
|
|
|
2018
2014
|
doubleClickDragZoom = false,
|
|
2019
2015
|
touchZoom = true,
|
|
2020
2016
|
touchRotate = false,
|
|
2017
|
+
multiTouchDrag = touchRotate ? "rotate" : null,
|
|
2018
|
+
trackpadGesture = false,
|
|
2021
2019
|
keyboard = true
|
|
2022
2020
|
} = props;
|
|
2023
2021
|
const isInteractive = Boolean(this.onViewStateChange);
|
|
2024
2022
|
this.toggleEvents(EVENT_TYPES.WHEEL, isInteractive && scrollZoom);
|
|
2025
2023
|
this.toggleEvents(EVENT_TYPES.PAN, isInteractive);
|
|
2026
|
-
this.toggleEvents(
|
|
2027
|
-
|
|
2024
|
+
this.toggleEvents(
|
|
2025
|
+
EVENT_TYPES.PINCH,
|
|
2026
|
+
isInteractive && (touchZoom || multiTouchDrag === "rotate")
|
|
2027
|
+
);
|
|
2028
|
+
this.toggleEvents(EVENT_TYPES.MULTI_PAN, isInteractive && Boolean(multiTouchDrag));
|
|
2028
2029
|
this.toggleEvents(EVENT_TYPES.DOUBLE_CLICK, isInteractive && doubleClickZoom);
|
|
2029
2030
|
this.toggleEvents(EVENT_TYPES.DOUBLE_CLICK_DRAG, isInteractive && doubleClickDragZoom);
|
|
2030
2031
|
this.toggleEvents(EVENT_TYPES.KEYBOARD, isInteractive && keyboard);
|
|
@@ -2034,7 +2035,9 @@ var Controller = class {
|
|
|
2034
2035
|
this.doubleClickZoom = doubleClickZoom;
|
|
2035
2036
|
this.doubleClickDragZoom = doubleClickDragZoom;
|
|
2036
2037
|
this.touchZoom = touchZoom;
|
|
2037
|
-
this.touchRotate =
|
|
2038
|
+
this.touchRotate = multiTouchDrag === "rotate";
|
|
2039
|
+
this.multiTouchDrag = multiTouchDrag;
|
|
2040
|
+
this.trackpadGesture = trackpadGesture;
|
|
2038
2041
|
this.keyboard = keyboard;
|
|
2039
2042
|
const dimensionChanged = !oldProps || oldProps.height !== props.height || oldProps.width !== props.width || oldProps.maxBounds !== props.maxBounds;
|
|
2040
2043
|
if (dimensionChanged && props.maxBounds) {
|
|
@@ -2209,6 +2212,9 @@ var Controller = class {
|
|
|
2209
2212
|
if (!this.scrollZoom) {
|
|
2210
2213
|
return false;
|
|
2211
2214
|
}
|
|
2215
|
+
if (this.trackpadGesture && event.device !== "mouse") {
|
|
2216
|
+
return false;
|
|
2217
|
+
}
|
|
2212
2218
|
const pos = this.getCenter(event);
|
|
2213
2219
|
if (!this.isPointInBounds(pos, event)) {
|
|
2214
2220
|
return false;
|
|
@@ -2236,60 +2242,73 @@ var Controller = class {
|
|
|
2236
2242
|
return true;
|
|
2237
2243
|
}
|
|
2238
2244
|
_onMultiPanStart(event) {
|
|
2239
|
-
const
|
|
2240
|
-
if (!this.
|
|
2245
|
+
const { multiTouchDrag } = this;
|
|
2246
|
+
if (!multiTouchDrag || !this._isMultiPanEventAllowed(event, multiTouchDrag)) {
|
|
2241
2247
|
return false;
|
|
2242
2248
|
}
|
|
2243
|
-
const
|
|
2249
|
+
const currentCenter = event.offsetCenter;
|
|
2250
|
+
if (!this.isPointInBounds(this.getCenter(event), event)) {
|
|
2251
|
+
return false;
|
|
2252
|
+
}
|
|
2253
|
+
const isTrackpad = event.pointerType === "trackpad";
|
|
2254
|
+
const startCenter = {
|
|
2255
|
+
x: currentCenter.x - (isTrackpad ? 0 : event.deltaX),
|
|
2256
|
+
y: currentCenter.y - (isTrackpad ? 0 : event.deltaY)
|
|
2257
|
+
};
|
|
2258
|
+
const startEvent = { ...event, offsetCenter: startCenter };
|
|
2259
|
+
const pos = this.getCenter(startEvent);
|
|
2260
|
+
const newControllerState = multiTouchDrag === "pan" ? this.controllerState.panStart({ pos }) : this.controllerState.rotateStart({ pos });
|
|
2261
|
+
this._multiPanMode = multiTouchDrag;
|
|
2262
|
+
this._multiPanStartCenter = startCenter;
|
|
2244
2263
|
this.updateViewport(newControllerState, NO_TRANSITION_PROPS, { isDragging: true });
|
|
2245
2264
|
return true;
|
|
2246
2265
|
}
|
|
2247
2266
|
_onMultiPan(event) {
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
}
|
|
2251
|
-
if (!this.isDragging()) {
|
|
2267
|
+
const { mode, event: panEvent } = this._getMultiPanEvent(event);
|
|
2268
|
+
if (!mode || !panEvent || !this.isDragging()) {
|
|
2252
2269
|
return false;
|
|
2253
2270
|
}
|
|
2254
|
-
|
|
2255
|
-
pos[0] -= event.deltaX;
|
|
2256
|
-
const newControllerState = this.controllerState.rotate({ pos });
|
|
2257
|
-
this.updateViewport(newControllerState, NO_TRANSITION_PROPS, {
|
|
2258
|
-
isDragging: true,
|
|
2259
|
-
isRotating: true
|
|
2260
|
-
});
|
|
2261
|
-
return true;
|
|
2271
|
+
return mode === "pan" ? this._onPanMove(panEvent) : this._onPanRotate(panEvent);
|
|
2262
2272
|
}
|
|
2263
2273
|
_onMultiPanEnd(event) {
|
|
2264
|
-
|
|
2274
|
+
const { mode, event: panEvent } = this._getMultiPanEvent(event);
|
|
2275
|
+
if (!mode || !panEvent || !this.isDragging()) {
|
|
2276
|
+
this._resetMultiPan();
|
|
2265
2277
|
return false;
|
|
2266
2278
|
}
|
|
2267
|
-
const
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
transitionEasing: INERTIA_EASING
|
|
2278
|
-
},
|
|
2279
|
-
{
|
|
2280
|
-
isDragging: false,
|
|
2281
|
-
isRotating: true
|
|
2282
|
-
}
|
|
2283
|
-
);
|
|
2284
|
-
this.blockEvents(inertia);
|
|
2285
|
-
} else {
|
|
2286
|
-
const newControllerState = this.controllerState.rotateEnd();
|
|
2287
|
-
this.updateViewport(newControllerState, null, {
|
|
2288
|
-
isDragging: false,
|
|
2289
|
-
isRotating: false
|
|
2290
|
-
});
|
|
2279
|
+
const handled = mode === "pan" ? this._onPanMoveEnd(panEvent) : this._onPanRotateEnd(panEvent);
|
|
2280
|
+
this._resetMultiPan();
|
|
2281
|
+
return handled;
|
|
2282
|
+
}
|
|
2283
|
+
_isTrackpadGestureAllowed(event) {
|
|
2284
|
+
return event.pointerType !== "trackpad" || this.trackpadGesture;
|
|
2285
|
+
}
|
|
2286
|
+
_isMultiPanEventAllowed(event, mode) {
|
|
2287
|
+
if (event.pointerType === "trackpad") {
|
|
2288
|
+
return this.trackpadGesture && (mode === "pan" ? this.dragPan : this.dragRotate);
|
|
2291
2289
|
}
|
|
2292
|
-
return
|
|
2290
|
+
return event.pointerType === "touch" && (mode === "pan" ? this.dragPan : this.dragRotate);
|
|
2291
|
+
}
|
|
2292
|
+
_getMultiPanEvent(event) {
|
|
2293
|
+
const mode = this._multiPanMode;
|
|
2294
|
+
const startCenter = this._multiPanStartCenter;
|
|
2295
|
+
if (!mode || !startCenter) {
|
|
2296
|
+
return { mode: null, event: null };
|
|
2297
|
+
}
|
|
2298
|
+
return {
|
|
2299
|
+
mode,
|
|
2300
|
+
event: {
|
|
2301
|
+
...event,
|
|
2302
|
+
offsetCenter: {
|
|
2303
|
+
x: startCenter.x + event.deltaX,
|
|
2304
|
+
y: startCenter.y + event.deltaY
|
|
2305
|
+
}
|
|
2306
|
+
}
|
|
2307
|
+
};
|
|
2308
|
+
}
|
|
2309
|
+
_resetMultiPan() {
|
|
2310
|
+
this._multiPanMode = null;
|
|
2311
|
+
this._multiPanStartCenter = null;
|
|
2293
2312
|
}
|
|
2294
2313
|
// Default handler for the `pinchstart` event.
|
|
2295
2314
|
_onPinchStart(event) {
|